ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvYWRhLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjI1NzAxCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9hdXRvbG9hZC9hZGEudmltCkBAIC0wLDAgKzEsNTk1IEBACisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICBEZXNjcmlwdGlvbjogUGVyZm9ybSBBZGEgc3BlY2lmaWMgY29tcGxldGlvbiAmIHRhZ2dpbmcuCisiICAgICBMYW5ndWFnZTogQWRhICgyMDA1KQorIgkgICAkSWQkCisiICAgTWFpbnRhaW5lcjogTWFydGluIEtyaXNjaGlrCisiCQlOZWlsIEJpcmQgPG5laWxAZm54d2ViLmNvbT4KKyIgICAgICAkQXV0aG9yJAorIgkgJERhdGUkCisiICAgICAgVmVyc2lvbjogNC4yCisiICAgICRSZXZpc2lvbiQKKyIgICAgICRIZWFkVVJMOiBodHRwczovL3N2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2F1dG9sb2FkL2FkYS52aW0gJAorIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCisiCQkyNi4wNS4yMDA2IE1LICcgc2hvdWxkIG5vdCBiZSBpbiBpc2tleXdvcmQuCisiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCisiCQkwMi4xMC4yMDA2IE1LIEJldHRlciBmb2xkaW5nLgorIgkJMTUuMTAuMjAwNiBNSyBCcmFtJ3Mgc3VnZ2VzdGlvbiBmb3IgcnVudGltZSBpbnRlZ3JhdGlvbgorIgkJMDUuMTEuMjAwNiBNSyBCcmFtIHN1Z2dlc3RlZCBub3QgdG8gdXNlIGluY2x1ZGUgcHJvdGVjdGlvbiBmb3IKKyIJCQkgICAgICBhdXRvbG9hZAorIgkJMDUuMTEuMjAwNiBNSyBCcmFtIHN1Z2dlc3RlZCB0byBzYXZlIG9uIHNwYWNlcworIiAgICBIZWxwIFBhZ2U6IGZ0LWFkYS1mdW5jdGlvbnMKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgdmVyc2lvbiA8IDcwMAorICAgZmluaXNoCitlbmRpZiAKKworIiBTZWN0aW9uOiBDb25zdGFudHMge3t7MQorIgorbGV0IGc6YWRhI0RvdFdvcmRSZWdleAkgICA9ICdcYVx3KlwoXF9zKlwuXF9zKlxhXHcqXCkqJworbGV0IGc6YWRhI1dvcmRSZWdleAkgICA9ICdcYVx3KicKK2xldCBnOmFkYSNDb21tZW50CSAgID0gIlxcdl4oXCJbXlwiXSpcInwnLid8W15cIiddKXstfVxcenNcXHMqLS0uKiIKK2xldCBnOmFkYSNLZXl3b3JkcwkgICA9IFtdCisKKyIgU2VjdGlvbjogZzphZGEjS2V5d29yZHMge3t7MQorIgorIiBTZWN0aW9uOiBhZGQgQWRhIGtleXdvcmRzIHt7ezIKKyIKK2ZvciBJdGVtIGluIFsnYWJvcnQnLCAnZWxzZScsICduZXcnLCAncmV0dXJuJywgJ2FicycsICdlbHNpZicsICdub3QnLCAncmV2ZXJzZScsICdhYnN0cmFjdCcsICdlbmQnLCAnbnVsbCcsICdhY2NlcHQnLCAnZW50cnknLCAnc2VsZWN0JywgJ2FjY2VzcycsICdleGNlcHRpb24nLCAnb2YnLCAnc2VwYXJhdGUnLCAnYWxpYXNlZCcsICdleGl0JywgJ29yJywgJ3N1YnR5cGUnLCAnYWxsJywgJ290aGVycycsICdzeW5jaHJvbml6ZWQnLCAnYW5kJywgJ2ZvcicsICdvdXQnLCAnYXJyYXknLCAnZnVuY3Rpb24nLCAnb3ZlcnJpZGluZycsICd0YWdnZWQnLCAnYXQnLCAndGFzaycsICdnZW5lcmljJywgJ3BhY2thZ2UnLCAndGVybWluYXRlJywgJ2JlZ2luJywgJ2dvdG8nLCAncHJhZ21hJywgJ3RoZW4nLCAnYm9keScsICdwcml2YXRlJywgJ3R5cGUnLCAnaWYnLCAncHJvY2VkdXJlJywgJ2Nhc2UnLCAnaW4nLCAncHJvdGVjdGVkJywgJ3VudGlsJywgJ2NvbnN0YW50JywgJ2ludGVyZmFjZScsICd1c2UnLCAnaXMnLCAncmFpc2UnLCAnZGVjbGFyZScsICdyYW5nZScsICd3aGVuJywgJ2RlbGF5JywgJ2xpbWl0ZWQnLCAncmVjb3JkJywgJ3doaWxlJywgJ2RlbHRhJywgJ2xvb3AnLCAncmVtJywgJ3dpdGgnLCAnZGlnaXRzJywgJ3JlbmFtZXMnLCAnZG8nLCAnbW9kJywgJ3JlcXVldWUnLCAneG9yJ10KKyAgICBsZXQgZzphZGEjS2V5d29yZHMgKz0gW3sKKwkgICAgXCAnd29yZCc6ICBJdGVtLAorCSAgICBcICdtZW51JzogICdrZXl3b3JkJywKKwkgICAgXCAnaW5mbyc6ICAnQWRhIGtleXdvcmQuJywKKwkgICAgXCAna2luZCc6ICAnaycsCisJICAgIFwgJ2ljYXNlJzogMX1dCitlbmRmb3IKKworIiBTZWN0aW9uOiBHTkFUIFByb2plY3QgRmlsZXMge3t7MworIgoraWYgZXhpc3RzICgnZzphZGFfd2l0aF9nbmF0X3Byb2plY3RfZmlsZXMnKQorICAgIGZvciBJdGVtIGluIFsncHJvamVjdCddCisgICAgICAgbGV0IGc6YWRhI0tleXdvcmRzICs9IFt7CisJICAgICAgIFwgJ3dvcmQnOiAgSXRlbSwKKwkgICAgICAgXCAnbWVudSc6ICAna2V5d29yZCcsCisJICAgICAgIFwgJ2luZm8nOiAgJ0dOQVQgcHJvamVjdGZpbGUga2V5d29yZC4nLAorCSAgICAgICBcICdraW5kJzogICdrJywKKwkgICAgICAgXCAnaWNhc2UnOiAxfV0KKyAgICBlbmRmb3IKK2VuZGlmCisKKyIgU2VjdGlvbjogYWRkCXN0YW5kYXJ0IGV4Y2VwdGlvbiB7e3syCisiCitmb3IgSXRlbSBpbiBbJ0NvbnN0cmFpbnRfRXJyb3InLCAnUHJvZ3JhbV9FcnJvcicsICdTdG9yYWdlX0Vycm9yJywgJ1Rhc2tpbmdfRXJyb3InLCAnU3RhdHVzX0Vycm9yJywgJ01vZGVfRXJyb3InLCAnTmFtZV9FcnJvcicsICdVc2VfRXJyb3InLCAnRGV2aWNlX0Vycm9yJywgJ0VuZF9FcnJvcicsICdEYXRhX0Vycm9yJywgJ0xheW91dF9FcnJvcicsICdMZW5ndGhfRXJyb3InLCAnUGF0dGVybl9FcnJvcicsICdJbmRleF9FcnJvcicsICdUcmFuc2xhdGlvbl9FcnJvcicsICdUaW1lX0Vycm9yJywgJ0FyZ3VtZW50X0Vycm9yJywgJ1RhZ19FcnJvcicsICdQaWN0dXJlX0Vycm9yJywgJ1Rlcm1pbmF0b3JfRXJyb3InLCAnQ29udmVyc2lvbl9FcnJvcicsICdQb2ludGVyX0Vycm9yJywgJ0RlcmVmZXJlbmNlX0Vycm9yJywgJ1VwZGF0ZV9FcnJvciddCisgICAgbGV0IGc6YWRhI0tleXdvcmRzICs9IFt7CisJICAgIFwgJ3dvcmQnOiAgSXRlbSwKKwkgICAgXCAnbWVudSc6ICAnZXhjZXB0aW9uJywKKwkgICAgXCAnaW5mbyc6ICAnQWRhIHN0YW5kYXJ0IGV4Y2VwdGlvbi4nLAorCSAgICBcICdraW5kJzogICd4JywKKwkgICAgXCAnaWNhc2UnOiAxfV0KK2VuZGZvcgorCisiIFNlY3Rpb246IGFkZAlHTkFUIGV4Y2VwdGlvbiB7e3szCisiCitpZiBleGlzdHMgKCdnOmFkYV9nbmF0X2V4dGVuc2lvbnMnKQorICAgIGZvciBJdGVtIGluIFsnQXNzZXJ0X0ZhaWx1cmUnXQorCWxldCBnOmFkYSNLZXl3b3JkcyArPSBbeworCQlcICd3b3JkJzogIEl0ZW0sCisJCVwgJ21lbnUnOiAgJ2V4Y2VwdGlvbicsCisJCVwgJ2luZm8nOiAgJ0dOQVQgZXhjZXB0aW9uLicsCisJCVwgJ2tpbmQnOiAgJ3gnLAorCQlcICdpY2FzZSc6IDF9XQorICAgIGVuZGZvcgorZW5kaWYKKworIiBTZWN0aW9uOiBhZGQgQWRhIGJ1aWxkaW4gdHlwZXMge3t7MgorIgorZm9yIEl0ZW0gaW4gWydCb29sZWFuJywgJ0ludGVnZXInLCAnTmF0dXJhbCcsICdQb3NpdGl2ZScsICdGbG9hdCcsICdDaGFyYWN0ZXInLCAnV2lkZV9DaGFyYWN0ZXInLCAnV2lkZV9XaWRlX0NoYXJhY3RlcicsICdTdHJpbmcnLCAnV2lkZV9TdHJpbmcnLCAnV2lkZV9XaWRlX1N0cmluZycsICdEdXJhdGlvbiddCisgICAgbGV0IGc6YWRhI0tleXdvcmRzICs9IFt7CisJICAgIFwgJ3dvcmQnOiAgSXRlbSwKKwkgICAgXCAnbWVudSc6ICAndHlwZScsCisJICAgIFwgJ2luZm8nOiAgJ0FkYSBidWlsZGluIHR5cGUuJywKKwkgICAgXCAna2luZCc6ICAndCcsCisJICAgIFwgJ2ljYXNlJzogMX1dCitlbmRmb3IKKworIiBTZWN0aW9uOiBhZGQgR05BVCBidWlsZGluIHR5cGVzIHt7ezMKKyIKK2lmIGV4aXN0cyAoJ2c6YWRhX2duYXRfZXh0ZW5zaW9ucycpCisgICAgZm9yIEl0ZW0gaW4gWydTaG9ydF9JbnRlZ2VyJywgJ1Nob3J0X1Nob3J0X0ludGVnZXInLCAnTG9uZ19JbnRlZ2VyJywgJ0xvbmdfTG9uZ19JbnRlZ2VyJywgJ1Nob3J0X0Zsb2F0JywgJ1Nob3J0X1Nob3J0X0Zsb2F0JywgJ0xvbmdfRmxvYXQnLCAnTG9uZ19Mb25nX0Zsb2F0J10KKwlsZXQgZzphZGEjS2V5d29yZHMgKz0gW3sKKwkJXCAnd29yZCc6ICBJdGVtLAorCQlcICdtZW51JzogICd0eXBlJywKKwkJXCAnaW5mbyc6ICAnR05BVCBidWlsZGluIHR5cGUuJywKKwkJXCAna2luZCc6ICAndCcsCisJCVwgJ2ljYXNlJzogMX1dCisgICAgZW5kZm9yCitlbmRpZgorCisiIFNlY3Rpb246IGFkZCBBZGEgQXR0cmlidXRlcyB7e3syCisiCitmb3IgSXRlbSBpbiBbJycnQWNjZXNzJywgJycnQWRkcmVzcycsICcnJ0FkamFjZW50JywgJycnQWZ0JywgJycnQWxpZ25tZW50JywgJycnQmFzZScsICcnJ0JpdF9PcmRlcicsICcnJ0JvZHlfVmVyc2lvbicsICcnJ0NhbGxhYmxlJywgJycnQ2FsbGVyJywgJycnQ2VpbGluZycsICcnJ0NsYXNzJywgJycnQ29tcG9uZW50X1NpemUnLCAnJydDb21wb3NlJywgJycnQ29uc3RyYWluZWQnLCAnJydDb3B5X1NpZ24nLCAnJydDb3VudCcsICcnJ0RlZmluaXRlJywgJycnRGVsdGEnLCAnJydEZW5vcm0nLCAnJydEaWdpdHMnLCAnJydFbWF4JywgJycnRXhwb25lbnQnLCAnJydFeHRlcm5hbF9UYWcnLCAnJydFcHNpbG9uJywgJycnRmlyc3QnLCAnJydGaXJzdF9CaXQnLCAnJydGbG9vcicsICcnJ0ZvcmUnLCAnJydGcmFjdGlvbicsICcnJ0lkZW50aXR5JywgJycnSW1hZ2UnLCAnJydJbnB1dCcsICcnJ0xhcmdlJywgJycnTGFzdCcsICcnJ0xhc3RfQml0JywgJycnTGVhZGluZ19QYXJ0JywgJycnTGVuZ3RoJywgJycnTWFjaGluZScsICcnJ01hY2hpbmVfRW1heCcsICcnJ01hY2hpbmVfRW1pbicsICcnJ01hY2hpbmVfTWFudGlzc2EnLCAnJydNYWNoaW5lX092ZXJmbG93cycsICcnJ01hY2hpbmVfUmFkaXgnLCAnJydNYWNoaW5lX1JvdW5kaW5nJywgJycnTWFjaGluZV9Sb3VuZHMnLCAnJydNYW50aXNzYScsICcnJ01heCcsICcnJ01heF9TaXplX0luX1N0b3JhZ2VfRWxlbWVudHMnLCAnJydNaW4nLCAnJydNb2QnLCAnJydNb2RlbCcsICcnJ01vZGVsX0VtaW4nLCAnJydNb2RlbF9FcHNpbG9uJywgJycnTW9kZWxfTWFudGlzc2EnLCAnJydNb2RlbF9TbWFsbCcsICcnJ01vZHVsdXMnLCAnJydPdXRwdXQnLCAnJydQYXJ0aXRpb25fSUQnLCAnJydQb3MnLCAnJydQb3NpdGlvbicsICcnJ1ByZWQnLCAnJydQcmlvcml0eScsICcnJ1JhbmdlJywgJycnUmVhZCcsICcnJ1JlbWFpbmRlcicsICcnJ1JvdW5kJywgJycnUm91bmRpbmcnLCAnJydTYWZlX0VtYXgnLCAnJydTYWZlX0ZpcnN0JywgJycnU2FmZV9MYXJnZScsICcnJ1NhZmVfTGFzdCcsICcnJ1NhZmVfU21hbGwnLCAnJydTY2FsZScsICcnJ1NjYWxpbmcnLCAnJydTaWduZWRfWmVyb3MnLCAnJydTaXplJywgJycnU21hbGwnLCAnJydTdG9yYWdlX1Bvb2wnLCAnJydTdG9yYWdlX1NpemUnLCAnJydTdHJlYW1fU2l6ZScsICcnJ1N1Y2MnLCAnJydUYWcnLCAnJydUZXJtaW5hdGVkJywgJycnVHJ1bmNhdGlvbicsICcnJ1VuYmlhc2VkX1JvdW5kaW5nJywgJycnVW5jaGVja2VkX0FjY2VzcycsICcnJ1ZhbCcsICcnJ1ZhbGlkJywgJycnVmFsdWUnLCAnJydWZXJzaW9uJywgJycnV2lkZV9JbWFnZScsICcnJ1dpZGVfVmFsdWUnLCAnJydXaWRlX1dpZGVfSW1hZ2UnLCAnJydXaWRlX1dpZGVfVmFsdWUnLCAnJydXaWRlX1dpZGVfV2lkdGgnLCAnJydXaWRlX1dpZHRoJywgJycnV2lkdGgnLCAnJydXcml0ZSddCisgICAgbGV0IGc6YWRhI0tleXdvcmRzICs9IFt7CisJICAgIFwgJ3dvcmQnOiAgSXRlbSwKKwkgICAgXCAnbWVudSc6ICAnYXR0cmlidXRlJywKKwkgICAgXCAnaW5mbyc6ICAnQWRhIGF0dHJpYnV0ZS4nLAorCSAgICBcICdraW5kJzogICdhJywKKwkgICAgXCAnaWNhc2UnOiAxfV0KK2VuZGZvcgorCisiIFNlY3Rpb246IGFkZCBHTkFUIEF0dHJpYnV0ZXMge3t7MworIgoraWYgZXhpc3RzICgnZzphZGFfZ25hdF9leHRlbnNpb25zJykKKyAgICBmb3IgSXRlbSBpbiBbJycnQWJvcnRfU2lnbmFsJywgJycnQWRkcmVzc19TaXplJywgJycnQXNtX0lucHV0JywgJycnQXNtX091dHB1dCcsICcnJ0FTVF9FbnRyeScsICcnJ0JpdCcsICcnJ0JpdF9Qb3NpdGlvbicsICcnJ0NvZGVfQWRkcmVzcycsICcnJ0RlZmF1bHRfQml0X09yZGVyJywgJycnRWxhYm9yYXRlZCcsICcnJ0VsYWJfQm9keScsICcnJ0VsYWJfU3BlYycsICcnJ0VtYXgnLCAnJydFbnVtX1JlcCcsICcnJ0Vwc2lsb24nLCAnJydGaXhlZF9WYWx1ZScsICcnJ0hhc19BY2Nlc3NfVmFsdWVzJywgJycnSGFzX0Rpc2NyaW1pbmFudHMnLCAnJydJbWcnLCAnJydJbnRlZ2VyX1ZhbHVlJywgJycnTWFjaGluZV9TaXplJywgJycnTWF4X0ludGVycnVwdF9Qcmlvcml0eScsICcnJ01heF9Qcmlvcml0eScsICcnJ01heGltdW1fQWxpZ25tZW50JywgJycnTWVjaGFuaXNtX0NvZGUnLCAnJydOdWxsX1BhcmFtZXRlcicsICcnJ09iamVjdF9TaXplJywgJycnUGFzc2VkX0J5X1JlZmVyZW5jZScsICcnJ1JhbmdlX0xlbmd0aCcsICcnJ1N0b3JhZ2VfVW5pdCcsICcnJ1RhcmdldF9OYW1lJywgJycnVGljaycsICcnJ1RvX0FkZHJlc3MnLCAnJydUeXBlX0NsYXNzJywgJycnVUVUX0FkZHJlc3MnLCAnJydVbmNvbnN0cmFpbmVkX0FycmF5JywgJycnVW5pdmVyc2FsX0xpdGVyYWxfU3RyaW5nJywgJycnVW5yZXN0cmljdGVkX0FjY2VzcycsICcnJ1ZBRFNfU2l6ZScsICcnJ1ZhbHVlX1NpemUnLCAnJydXY2hhcl9UX1NpemUnLCAnJydXb3JkX1NpemUnXQorICAgIGxldCBnOmFkYSNLZXl3b3JkcyArPSBbeworCSAgICBcICd3b3JkJzogIEl0ZW0sCisJICAgIFwgJ21lbnUnOiAgJ2F0dHJpYnV0ZScsCisJICAgIFwgJ2luZm8nOiAgJ0dOQVQgYXR0cmlidXRlLicsCisJICAgIFwgJ2tpbmQnOiAgJ2EnLAorCSAgICBcICdpY2FzZSc6IDF9XQorICAgIGVuZGZvcgorZW5kaWYKKworIiBTZWN0aW9uOiBhZGQgQWRhIFByYWdtYXMge3t7MgorIgorZm9yIEl0ZW0gaW4gWydBbGxfQ2FsbHNfUmVtb3RlJywgJ0Fzc2VydCcsICdBc3NlcnRpb25fUG9saWN5JywgJ0FzeW5jaHJvbm91cycsICdBdG9taWMnLCAnQXRvbWljX0NvbXBvbmVudHMnLCAnQXR0YWNoX0hhbmRsZXInLCAnQ29udHJvbGxlZCcsICdDb252ZW50aW9uJywgJ0RldGVjdF9CbG9ja2luZycsICdEaXNjYXJkX05hbWVzJywgJ0VsYWJvcmF0ZScsICdFbGFib3JhdGVfQWxsJywgJ0VsYWJvcmF0ZV9Cb2R5JywgJ0V4cG9ydCcsICdJbXBvcnQnLCAnSW5saW5lJywgJ0luc3BlY3Rpb25fUG9pbnQnLCAnSW50ZXJmYWNlIChPYnNvbGVzY2VudCknLCAnSW50ZXJydXB0X0hhbmRsZXInLCAnSW50ZXJydXB0X1ByaW9yaXR5JywgJ0xpbmtlcl9PcHRpb25zJywgJ0xpc3QnLCAnTG9ja2luZ19Qb2xpY3knLCAnTWVtb3J5X1NpemUgKE9ic29sZXNjZW50KScsICdOb19SZXR1cm4nLCAnTm9ybWFsaXplX1NjYWxhcnMnLCAnT3B0aW1pemUnLCAnUGFjaycsICdQYWdlJywgJ1BhcnRpdGlvbl9FbGFib3JhdGlvbl9Qb2xpY3knLCAnUHJlZWxhYm9yYWJsZV9Jbml0aWFsaXphdGlvbicsICdQcmVlbGFib3JhdGUnLCAnUHJpb3JpdHknLCAnUHJpb3JpdHlfU3BlY2lmaWNfRGlzcGF0Y2hpbmcnLCAnUHJvZmlsZScsICdQdXJlJywgJ1F1ZXVlaW5nX1BvbGljeScsICdSZWxhdGl2ZV9EZWFkbGluZScsICdSZW1vdGVfQ2FsbF9JbnRlcmZhY2UnLCAnUmVtb3RlX1R5cGVzJywgJ1Jlc3RyaWN0aW9ucycsICdSZXZpZXdhYmxlJywgJ1NoYXJlZCAoT2Jzb2xlc2NlbnQpJywgJ1NoYXJlZF9QYXNzaXZlJywgJ1N0b3JhZ2VfU2l6ZScsICdTdG9yYWdlX1VuaXQgKE9ic29sZXNjZW50KScsICdTdXBwcmVzcycsICdTeXN0ZW1fTmFtZSAoT2Jzb2xlc2NlbnQpJywgJ1Rhc2tfRGlzcGF0Y2hpbmdfUG9saWN5JywgJ1VuY2hlY2tlZF9VbmlvbicsICdVbnN1cHByZXNzJywgJ1ZvbGF0aWxlJywgJ1ZvbGF0aWxlX0NvbXBvbmVudHMnXQorICAgIGxldCBnOmFkYSNLZXl3b3JkcyArPSBbeworCSAgICBcICd3b3JkJzogIEl0ZW0sCisJICAgIFwgJ21lbnUnOiAgJ3ByYWdtYScsCisJICAgIFwgJ2luZm8nOiAgJ0FkYSBwcmFnbWEuJywKKwkgICAgXCAna2luZCc6ICAncCcsCisJICAgIFwgJ2ljYXNlJzogMX1dCitlbmRmb3IKKworIiBTZWN0aW9uOiBhZGQgR05BVCBQcmFnbWFzIHt7ezMKKyIKK2lmIGV4aXN0cyAoJ2c6YWRhX2duYXRfZXh0ZW5zaW9ucycpCisgICAgZm9yIEl0ZW0gaW4gWydBYm9ydF9EZWZlcicsICdBZGFfODMnLCAnQWRhXzk1JywgJ0FkYV8wNScsICdBbm5vdGF0ZScsICdBc3RfRW50cnknLCAnQ19QYXNzX0J5X0NvcHknLCAnQ29tbWVudCcsICdDb21tb25fT2JqZWN0JywgJ0NvbXBpbGVfVGltZV9XYXJuaW5nJywgJ0NvbXBsZXhfUmVwcmVzZW50YXRpb24nLCAnQ29tcG9uZW50X0FsaWdubWVudCcsICdDb252ZW50aW9uX0lkZW50aWZpZXInLCAnQ1BQX0NsYXNzJywgJ0NQUF9Db25zdHJ1Y3RvcicsICdDUFBfVmlydHVhbCcsICdDUFBfVnRhYmxlJywgJ0RlYnVnJywgJ0VsYWJvcmF0aW9uX0NoZWNrcycsICdFbGltaW5hdGUnLCAnRXhwb3J0X0V4Y2VwdGlvbicsICdFeHBvcnRfRnVuY3Rpb24nLCAnRXhwb3J0X09iamVjdCcsICdFeHBvcnRfUHJvY2VkdXJlJywgJ0V4cG9ydF9WYWx1ZScsICdFeHBvcnRfVmFsdWVkX1Byb2NlZHVyZScsICdFeHRlbmRfU3lzdGVtJywgJ0V4dGVybmFsJywgJ0V4dGVybmFsX05hbWVfQ2FzaW5nJywgJ0ZpbmFsaXplX1N0b3JhZ2VfT25seScsICdGbG9hdF9SZXByZXNlbnRhdGlvbicsICdJZGVudCcsICdJbXBvcnRfRXhjZXB0aW9uJywgJ0ltcG9ydF9GdW5jdGlvbicsICdJbXBvcnRfT2JqZWN0JywgJ0ltcG9ydF9Qcm9jZWR1cmUnLCAnSW1wb3J0X1ZhbHVlZF9Qcm9jZWR1cmUnLCAnSW5pdGlhbGl6ZV9TY2FsYXJzJywgJ0lubGluZV9BbHdheXMnLCAnSW5saW5lX0dlbmVyaWMnLCAnSW50ZXJmYWNlX05hbWUnLCAnSW50ZXJydXB0X1N0YXRlJywgJ0tlZXBfTmFtZXMnLCAnTGljZW5zZScsICdMaW5rX1dpdGgnLCAnTGlua2VyX0FsaWFzJywgJ0xpbmtlcl9TZWN0aW9uJywgJ0xvbmdfRmxvYXQnLCAnTWFjaGluZV9BdHRyaWJ1dGUnLCAnTWFpbl9TdG9yYWdlJywgJ09ic29sZXNjZW50JywgJ1Bhc3NpdmUnLCAnUG9sbGluZycsICdQcm9maWxlX1dhcm5pbmdzJywgJ1Byb3BhZ2F0ZV9FeGNlcHRpb25zJywgJ1BzZWN0X09iamVjdCcsICdQdXJlX0Z1bmN0aW9uJywgJ1Jlc3RyaWN0aW9uX1dhcm5pbmdzJywgJ1NvdXJjZV9GaWxlX05hbWUnLCAnU291cmNlX0ZpbGVfTmFtZV9Qcm9qZWN0JywgJ1NvdXJjZV9SZWZlcmVuY2UnLCAnU3RyZWFtX0NvbnZlcnQnLCAnU3R5bGVfQ2hlY2tzJywgJ1N1YnRpdGxlJywgJ1N1cHByZXNzX0FsbCcsICdTdXBwcmVzc19FeGNlcHRpb25fTG9jYXRpb25zJywgJ1N1cHByZXNzX0luaXRpYWxpemF0aW9uJywgJ1Rhc2tfSW5mbycsICdUYXNrX05hbWUnLCAnVGFza19TdG9yYWdlJywgJ1RocmVhZF9Cb2R5JywgJ1RpbWVfU2xpY2UnLCAnVGl0bGUnLCAnVW5pbXBsZW1lbnRlZF9Vbml0JywgJ1VuaXZlcnNhbF9EYXRhJywgJ1VucmVmZXJlbmNlZCcsICdVbnJlc2VydmVfQWxsX0ludGVycnVwdHMnLCAnVXNlX1ZBRFNfU2l6ZScsICdWYWxpZGl0eV9DaGVja3MnLCAnV2FybmluZ3MnLCAnV2Vha19FeHRlcm5hbCddCisJbGV0IGc6YWRhI0tleXdvcmRzICs9IFt7CisJCVwgJ3dvcmQnOiAgSXRlbSwKKwkJXCAnbWVudSc6ICAncHJhZ21hJywKKwkJXCAnaW5mbyc6ICAnR05BVCBwcmFnbWEuJywKKwkJXCAna2luZCc6ICAncCcsCisJCVwgJ2ljYXNlJzogMX1dCisgICAgZW5kZm9yCitlbmRpZgorIiAxfX19CisKKyIgU2VjdGlvbjogZzphZGEjQ3RhZ3NfS2luZHMge3t7MQorIgorbGV0IGc6YWRhI0N0YWdzX0tpbmRzID0geworICAgXCAnUCc6IFsicGFja3NwZWMiLAkgICJwYWNrYWdlIHNwZWNpZmljYXRpb25zIl0sCisgICBcICdwJzogWyJwYWNrYWdlIiwJICAicGFja2FnZXMiXSwKKyAgIFwgJ1QnOiBbInR5cGVzcGVjIiwJICAidHlwZSBzcGVjaWZpY2F0aW9ucyJdLAorICAgXCAndCc6IFsidHlwZSIsCSAgInR5cGVzIl0sCisgICBcICdVJzogWyJzdWJzcGVjIiwJICAic3VidHlwZSBzcGVjaWZpY2F0aW9ucyJdLAorICAgXCAndSc6IFsic3VidHlwZSIsCSAgInN1YnR5cGVzIl0sCisgICBcICdjJzogWyJjb21wb25lbnQiLCAgICJyZWNvcmQgdHlwZSBjb21wb25lbnRzIl0sCisgICBcICdsJzogWyJsaXRlcmFsIiwJICAiZW51bSB0eXBlIGxpdGVyYWxzIl0sCisgICBcICdWJzogWyJ2YXJzcGVjIiwJICAidmFyaWFibGUgc3BlY2lmaWNhdGlvbnMiXSwKKyAgIFwgJ3YnOiBbInZhcmlhYmxlIiwJICAidmFyaWFibGVzIl0sCisgICBcICdmJzogWyJmb3JtYWwiLAkgICJnZW5lcmljIGZvcm1hbCBwYXJhbWV0ZXJzIl0sCisgICBcICduJzogWyJjb25zdGFudCIsCSAgImNvbnN0YW50cyJdLAorICAgXCAneCc6IFsiZXhjZXB0aW9uIiwgICAidXNlciBkZWZpbmVkIGV4Y2VwdGlvbnMiXSwKKyAgIFwgJ1InOiBbInN1YnByb2dzcGVjIiwgInN1YnByb2dyYW0gc3BlY2lmaWNhdGlvbnMiXSwKKyAgIFwgJ3InOiBbInN1YnByb2dyYW0iLCAgInN1YnByb2dyYW1zIl0sCisgICBcICdLJzogWyJ0YXNrc3BlYyIsCSAgInRhc2sgc3BlY2lmaWNhdGlvbnMiXSwKKyAgIFwgJ2snOiBbInRhc2siLAkgICJ0YXNrcyJdLAorICAgXCAnTyc6IFsicHJvdGVjdHNwZWMiLCAicHJvdGVjdGVkIGRhdGEgc3BlY2lmaWNhdGlvbnMiXSwKKyAgIFwgJ28nOiBbInByb3RlY3RlZCIsICAgInByb3RlY3RlZCBkYXRhIl0sCisgICBcICdFJzogWyJlbnRyeXNwZWMiLCAgICJ0YXNrL3Byb3RlY3RlZCBkYXRhIGVudHJ5IHNwZWNpZmljYXRpb25zIl0sCisgICBcICdlJzogWyJlbnRyeSIsCSAgInRhc2svcHJvdGVjdGVkIGRhdGEgZW50cmllcyJdLAorICAgXCAnYic6IFsibGFiZWwiLAkgICJsYWJlbHMiXSwKKyAgIFwgJ2knOiBbImlkZW50aWZpZXIiLCAgImxvb3AvZGVjbGFyZSBpZGVudGlmaWVycyJdLAorICAgXCAnYSc6IFsiYXV0b3ZhciIsCSAgImF1dG9tYXRpYyB2YXJpYWJsZXMiXSwKKyAgIFwgJ3knOiBbImFubm9uIiwJICAibG9vcHMgYW5kIGJsb2NrcyB3aXRoIG5vIGlkZW50aWZpZXIiXX0KKworIiBTZWN0aW9uOiBhZGEjV29yZCAoLi4uKSB7e3sxCisiCisiIEV4dHJhY3QgY3VycmVudCBBZGEgd29yZCBhY3Jvc3MgbXVsdGlwbGUgbGluZXMKKyIgQWRhV29yZCAoW2xpbmUsIGNvbHVtbl0pXAorIgorZnVuY3Rpb24gYWRhI1dvcmQgKC4uLikKKyAgIGlmIGE6MCA+IDEKKyAgICAgIGxldCBsOkxpbmVfTnIgICAgPSBhOjEKKyAgICAgIGxldCBsOkNvbHVtbl9OciAgPSBhOjIgLSAxCisgICBlbHNlCisgICAgICBsZXQgbDpMaW5lX05yICAgID0gbGluZSgnLicpCisgICAgICBsZXQgbDpDb2x1bW5fTnIgID0gY29sKCcuJykgLSAxCisgICBlbmRpZgorCisgICBsZXQgbDpMaW5lID0gc3Vic3RpdHV0ZSAoZ2V0bGluZSAobDpMaW5lX05yKSwgZzphZGEjQ29tbWVudCwgJycsICcnICkKKworICAgIiBDb3BlIHdpdGggdGFnIHNlYXJjaGluZyBmb3IgaXRlbXMgaW4gY29tbWVudHM7IGlmIHdlIGFyZSwgZG9uJ3QgbG9vcAorICAgIiBiYWNrYXJkcyBsb29raW5nIGZvciBwcmV2aW91cyBsaW5lcworICAgaWYgbDpDb2x1bW5fTnIgPiBzdHJsZW4obDpMaW5lKQorICAgICAgIiBXZSB3ZXJlIGluIGEgY29tbWVudAorICAgICAgbGV0IGw6TGluZSA9IGdldGxpbmUobDpMaW5lX05yKQorICAgICAgbGV0IGw6U2VhcmNoX1ByZXZfTGluZXMgPSAwCisgICBlbHNlCisgICAgICBsZXQgbDpTZWFyY2hfUHJldl9MaW5lcyA9IDEKKyAgIGVuZGlmCisKKyAgICIgR28gYmFja3dhcmRzIHVudGlsIHdlIGZpbmQgYSBtYXRjaCAoQWRhIElEKSB0aGF0ICpkb2Vzbid0KiBpbmNsdWRlIG91cgorICAgIiBsb2NhdGlvbiAtIGkuZS4sIHRoZSBwcmV2aW91cyBJRC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBjdXJyZW50ICdjb3JyZWN0JworICAgIiBtYXRjaCB3aWxsIHRvZ2dsZSBtYXRjaGluZy9ub3QgbWF0Y2hpbmcgYXMgd2UgdHJhdmVyc2UgY2hhcmFjdGVycworICAgIiBiYWNrd2FyZHMuIFRodXMsIHdlIGhhdmUgdG8gZmluZCB0aGUgcHJldmlvdXMgdW5yZWxhdGVkIG1hdGNoLCBleGNsdWRlCisgICAiIGl0LCB0aGVuIHVzZSB0aGUgbmV4dCBmdWxsIG1hdGNoIChvdXJzKS4KKyAgICIgUmVtZW1iZXIgdG8gY29udmVydCB2aW0gY29sdW1uICdsOkNvbHVtbl9OcicgWzEuLm5dIHRvIHN0cmluZyBvZmZzZXQgWzAuLihuLTEpXQorICAgIiAuLi4gYnV0IHN0YXJ0LCBoZXJlLCBvbmUgYWZ0ZXIgdGhlIHJlcXVpcmVkIGNoYXIuCisgICBsZXQgbDpOZXdfQ29sdW1uID0gbDpDb2x1bW5fTnIgKyAxCisgICB3aGlsZSAxCisgICAgICBsZXQgbDpOZXdfQ29sdW1uID0gbDpOZXdfQ29sdW1uIC0gMQorICAgICAgaWYgbDpOZXdfQ29sdW1uIDwgMAorCSAiIEhhdmUgdG8gaW5jbHVkZSBwcmV2aW91cyBsOkxpbmUgZnJvbSBmaWxlCisJIGxldCBsOkxpbmVfTnIgPSBsOkxpbmVfTnIgLSAxCisJIGlmIGw6TGluZV9OciA8IDEgIHx8ICAhbDpTZWFyY2hfUHJldl9MaW5lcworCSAgICAiIFN0YXJ0IG9mIGZpbGUgb3IgbWF0Y2hpbmcgaW4gYSBjb21tZW50CisJICAgIGxldCBsOkxpbmVfTnIgICAgID0gMQorCSAgICBsZXQgbDpOZXdfQ29sdW1uICA9IDAKKwkgICAgbGV0IGw6T3VyX01hdGNoICAgPSBtYXRjaCAobDpMaW5lLCBnOmFkYSNXb3JkUmVnZXggKQorCSAgICBicmVhaworCSBlbmRpZgorCSAiIEdldCBwcmV2aW91cyBsOkxpbmUsIGFuZCBwcmVwZW5kIGl0IHRvIG91ciBzZWFyY2ggc3RyaW5nCisJIGxldCBsOk5ld19MaW5lICAgID0gc3Vic3RpdHV0ZSAoZ2V0bGluZSAobDpMaW5lX05yKSwgZzphZGEjQ29tbWVudCwgJycsICcnICkKKwkgbGV0IGw6TmV3X0NvbHVtbiAgPSBzdHJsZW4gKGw6TmV3X0xpbmUpIC0gMQorCSBsZXQgbDpDb2x1bW5fTnIgICA9IGw6Q29sdW1uX05yICsgbDpOZXdfQ29sdW1uCisJIGxldCBsOkxpbmUJICAgPSBsOk5ld19MaW5lIC4gbDpMaW5lCisgICAgICBlbmRpZgorICAgICAgIiBDaGVjayB0byBzZWUgaWYgdGhpcyBpcyBhIG1hdGNoIGV4Y2x1ZGluZyAndXMnCisgICAgICBsZXQgbDpNYXRjaF9FbmQgPSBsOk5ld19Db2x1bW4gKworCQkgICAgICBcIG1hdGNoZW5kIChzdHJwYXJ0IChsOkxpbmUsbDpOZXdfQ29sdW1uKSwgZzphZGEjV29yZFJlZ2V4ICkgLSAxCisgICAgICBpZiBsOk1hdGNoX0VuZCA+PSBsOk5ld19Db2x1bW4gICYmCisgICAgICAgXCBsOk1hdGNoX0VuZCA8IGw6Q29sdW1uX05yCisJICIgWWVzCisJIGxldCBsOk91cl9NYXRjaCA9IGw6TWF0Y2hfRW5kKzEgKworCQkJIFwgbWF0Y2ggKHN0cnBhcnQgKGw6TGluZSxsOk1hdGNoX0VuZCsxKSwgZzphZGEjV29yZFJlZ2V4ICkKKwkgYnJlYWsKKyAgICAgIGVuZGlmCisgICBlbmR3aGlsZQorCisgICAiIEdvdCBhbnl0aGluZz8KKyAgIGlmIGw6T3VyX01hdGNoIDwgMAorICAgICAgcmV0dXJuICcnCisgICBlbHNlCisgICAgICBsZXQgbDpMaW5lID0gc3RycGFydCAobDpMaW5lLCBsOk91cl9NYXRjaCkKKyAgIGVuZGlmCisKKyAgICIgTm93IHNpbXBseSBhZGQgZnVydGhlciBsaW5lcyB1bnRpbCB0aGUgbWF0Y2ggZ2V0cyBubyBiaWdnZXIKKyAgIGxldCBsOk1hdGNoX1N0cmluZyA9IG1hdGNoc3RyIChsOkxpbmUsIGc6YWRhI1dvcmRSZWdleCkKKyAgIGxldCBsOkxhc3RfTGluZSAgICA9IGxpbmUgKCckJykKKyAgIGxldCBsOkxpbmVfTnIgICAgICA9IGxpbmUgKCcuJykgKyAxCisgICB3aGlsZSBsOkxpbmVfTnIgPD0gbDpMYXN0X0xpbmUKKyAgICAgIGxldCBsOkxhc3RfTWF0Y2ggPSBsOk1hdGNoX1N0cmluZworICAgICAgbGV0IGw6TGluZSA9IGw6TGluZSAuCisJIFwgc3Vic3RpdHV0ZSAoZ2V0bGluZSAobDpMaW5lX05yKSwgZzphZGEjQ29tbWVudCwgJycsICcnKQorICAgICAgbGV0IGw6TWF0Y2hfU3RyaW5nID0gbWF0Y2hzdHIgKGw6TGluZSwgZzphZGEjV29yZFJlZ2V4KQorICAgICAgaWYgbDpNYXRjaF9TdHJpbmcgPT0gbDpMYXN0X01hdGNoCisJIGJyZWFrCisgICAgICBlbmRpZgorICAgZW5kd2hpbGUKKworICAgIiBTdHJpcCB3aGl0ZXNwYWNlICYgcmV0dXJuCisgICByZXR1cm4gc3Vic3RpdHV0ZSAobDpNYXRjaF9TdHJpbmcsICdcc1wrJywgJycsICdnJykKK2VuZGZ1bmN0aW9uIGFkYSNXb3JkCisKKyIgU2VjdGlvbjogYWRhI0xpc3RfVGFnICguLi4pIHt7ezEKKyIKKyIgIExpc3QgdGFncyBpbiBxdWlja2ZpeCB3aW5kb3cKKyIKK2Z1bmN0aW9uIGFkYSNMaXN0X1RhZyAoLi4uKQorICAgaWYgYTowID4gMQorICAgICAgbGV0IGw6VGFnX1dvcmQgPSBhZGEjV29yZCAoYToxLCBhOjIpCisgICBlbHNlaWYgYTowID4gMAorICAgICAgbGV0IGw6VGFnX1dvcmQgPSBhOjEKKyAgIGVsc2UKKyAgICAgIGxldCBsOlRhZ19Xb3JkID0gYWRhI1dvcmQgKCkKKyAgIGVuZGlmCisKKyAgIGVjaG8gIlNlYXJjaGluZyBmb3IiIGw6VGFnX1dvcmQKKworICAgbGV0IGw6UGF0dGVybiA9ICdeJyAuIGw6VGFnX1dvcmQgLiAnJCcKKyAgIGxldCBsOlRhZ19MaXN0ID0gdGFnbGlzdCAobDpQYXR0ZXJuKQorICAgbGV0IGw6RXJyb3JfTGlzdCA9IFtdCisgICAiCisgICAiIGFkZCBzeW1ib2xzCisgICAiCisgICBmb3IgVGFnX0l0ZW0gaW4gbDpUYWdfTGlzdAorICAgICAgaWYgbDpUYWdfSXRlbVsna2luZCddID09ICcnCisJIGxldCBsOlRhZ19JdGVtWydraW5kJ10gPSAncycKKyAgICAgIGVuZGlmCisKKyAgICAgIGxldCBsOkVycm9yX0xpc3QgKz0gWworCSBcIGw6VGFnX0l0ZW1bJ2ZpbGVuYW1lJ10gLiAnfCcgLgorCSBcIGw6VGFnX0l0ZW1bJ2NtZCddCSAgLiAnfCcgLgorCSBcIGw6VGFnX0l0ZW1bJ2tpbmQnXQkgIC4gIlx0IiAuCisJIFwgbDpUYWdfSXRlbVsnbmFtZSddIF0KKyAgIGVuZGZvcgorICAgc2V0IGVycm9yZm9ybWF0PSVmXHwlbFx8JW0KKyAgIGNleHByIGw6RXJyb3JfTGlzdAorICAgY3dpbmRvdworZW5kZnVuY3Rpb24gYWRhI0xpc3RfVGFnCisKKyIgU2VjdGlvbjogYWRhI0p1bXBfVGFnIChXb3JkLCBNb2RlKSB7e3sxCisiCisiIFdvcmQgdGFnIC0gaW5jbHVkZSAnLicgYW5kIGlmIEFkYSBtYWtlIHVwcGVyY2FzZQorIgorZnVuY3Rpb24gYWRhI0p1bXBfVGFnIChXb3JkLCBNb2RlKQorICAgaWYgYTpXb3JkID09ICcnCisgICAgICAiIEdldCBjdXJyZW50IHdvcmQKKyAgICAgIGxldCBsOldvcmQgPSBhZGEjV29yZCgpCisgICAgICBpZiBsOldvcmQgPT0gJycKKwkgdGhyb3cgIk5PVF9GT1VORDogbm8gaWRlbnRpZmllciBmb3VuZC4iCisgICAgICBlbmRpZgorICAgZWxzZQorICAgICAgbGV0IGw6V29yZCA9IGE6V29yZAorICAgZW5kaWYKKworICAgZWNobyAiU2VhcmNoaW5nIGZvciAiIC4gbDpXb3JkCisKKyAgIHRyeQorICAgICAgZXhlY3V0ZSBhOk1vZGUgbDpXb3JkCisgICBjYXRjaCAvLio6RTQyNjouKi8KKyAgICAgIGxldCBpZ25vcmVjYXNlID0gJmlnbm9yZWNhc2UKKyAgICAgIHNldCBpZ25vcmVjYXNlCisgICAgICBleGVjdXRlIGE6TW9kZSBsOldvcmQKKyAgICAgIGxldCAmaWdub3JlY2FzZSA9IGlnbm9yZWNhc2UKKyAgIGVuZHRyeQorCisgICByZXR1cm4KK2VuZGZ1bmN0aW9uIGFkYSNKdW1wX1RhZworCisiIFNlY3Rpb246IGFkYSNJbnNlcnRfQmFja3NwYWNlICgpIHt7ezEKKyIKKyIgQmFja3NwYWNlIGF0IGVuZCBvZiBsaW5lIGFmdGVyIGF1dG8taW5zZXJ0ZWQgY29tbWVudHN0cmluZyAnLS0gJyB3aXBlcyBpdAorIgorZnVuY3Rpb24gYWRhI0luc2VydF9CYWNrc3BhY2UgKCkKKyAgIGxldCBsOkxpbmUgPSBnZXRsaW5lICgnLicpCisgICBpZiBjb2wgKCcuJykgPiBzdHJsZW4gKGw6TGluZSkgJiYKKyAgICBcIG1hdGNoIChsOkxpbmUsICctLSAkJykgIT0gLTEgJiYKKyAgICBcIG1hdGNoICgmY29tbWVudHMsJy0tJykgIT0gLTEKKyAgICAgIHJldHVybiAiXDxicz5cPGJzPlw8YnM+IgorICAgZWxzZQorICAgICAgcmV0dXJuICJcPGJzPiIKKyAgIGVuZGlmCisKKyAgIHJldHVybgorZW5kZnVuY3Rpb24gYWRhI0luc2VydEJhY2tzcGFjZQorCisiIFNlY3Rpb246IEluc2VydCBDb21wbGV0aW9ucyB7e3sxCisiCisiIFNlY3Rpb246IGFkYSNVc2VyX0NvbXBsZXRlKGZpbmRzdGFydCwgYmFzZSkge3t7MgorIgorIiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZm9yIHRoZSAnY29tcGxldGUnIG9wdGlvbi4KKyIKK2Z1bmN0aW9uISBhZGEjVXNlcl9Db21wbGV0ZShmaW5kc3RhcnQsIGJhc2UpCisgICBpZiBhOmZpbmRzdGFydCA9PSAxCisgICAgICAiCisgICAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKKyAgICAgICIKKyAgICAgIGxldCBsaW5lID0gZ2V0bGluZSAoJy4nKQorICAgICAgbGV0IHN0YXJ0ID0gY29sICgnLicpIC0gMQorICAgICAgd2hpbGUgc3RhcnQgPiAwICYmIGxpbmVbc3RhcnQgLSAxXSA9fiAnXGlcfCcnJworCSBsZXQgc3RhcnQgLT0gMQorICAgICAgZW5kd2hpbGUKKyAgICAgIHJldHVybiBzdGFydAorICAgZWxzZQorICAgICAgIgorICAgICAgIiBsb29rIHVwIG1hdGNoZXMKKyAgICAgICIKKyAgICAgIGxldCBsOlBhdHRlcm4gPSAnXicgLiBhOmJhc2UgLiAnLiokJworICAgICAgIgorICAgICAgIiBhZGQga2V5d29yZHMKKyAgICAgICIKKyAgICAgIGZvciBUYWdfSXRlbSBpbiBnOmFkYSNLZXl3b3JkcworCSBpZiBsOlRhZ19JdGVtWyd3b3JkJ10gPX4/IGw6UGF0dGVybgorCSAgICBpZiBjb21wbGV0ZV9hZGQgKGw6VGFnX0l0ZW0pID09IDAKKwkgICAgICAgcmV0dXJuIFtdCisJICAgIGVuZGlmCisJICAgIGlmIGNvbXBsZXRlX2NoZWNrICgpCisJICAgICAgIHJldHVybiBbXQorCSAgICBlbmRpZgorCSBlbmRpZgorICAgICAgZW5kZm9yCisgICAgICByZXR1cm4gW10KKyAgIGVuZGlmCitlbmRmdW5jdGlvbiBhZGEjVXNlcl9Db21wbGV0ZQorCisiIFNlY3Rpb246IGFkYSNDb21wbGV0aW9uIChjbWQpIHt7ezIKKyIKKyIgV29yZCBjb21wbGV0aW9uICheTi9eUi9eWF5dKSAtIGZvcmNlICcuJyBpbmNsdXNpb24KK2Z1bmN0aW9uIGFkYSNDb21wbGV0aW9uIChjbWQpCisgICBzZXQgaXNrZXl3b3JkKz00NgorICAgcmV0dXJuIGE6Y21kIC4gIlw8Qy1SPj1hZGEjQ29tcGxldGlvbl9FbmQgKClcPENSPiIKK2VuZGZ1bmN0aW9uIGFkYSNDb21wbGV0aW9uCisKKyIgU2VjdGlvbjogYWRhI0NvbXBsZXRpb25fRW5kICgpIHt7ezIKKyIKK2Z1bmN0aW9uIGFkYSNDb21wbGV0aW9uX0VuZCAoKQorICAgc2V0IGlza2V5d29yZC09NDYKKyAgIHJldHVybiAnJworZW5kZnVuY3Rpb24gYWRhI0NvbXBsZXRpb25fRW5kCisKKyIgU2VjdGlvbjogYWRhI0NyZWF0ZV9UYWdzIHt7ezEKKyIKK2Z1bmN0aW9uIGFkYSNDcmVhdGVfVGFncyAob3B0aW9uKQorICAgaWYgYTpvcHRpb24gPT0gJ2ZpbGUnCisgICAgICBsZXQgbDpGaWxlbmFtZSA9IGZuYW1lbW9kaWZ5IChidWZuYW1lICgnJScpLCAnOnAnKQorICAgZWxzZWlmIGE6b3B0aW9uID09ICdkaXInCisgICAgICBsZXQgbDpGaWxlbmFtZSA9CisJIFwgZm5hbWVtb2RpZnkgKGJ1Zm5hbWUgKCclJyksICc6cDpoJykgLiAiKi5hZGEgIiAuCisJIFwgZm5hbWVtb2RpZnkgKGJ1Zm5hbWUgKCclJyksICc6cDpoJykgLiAiKi5hZGIgIiAuCisJIFwgZm5hbWVtb2RpZnkgKGJ1Zm5hbWUgKCclJyksICc6cDpoJykgLiAiKi5hZHMiCisgICBlbHNlCisgICAgICBsZXQgbDpGaWxlbmFtZSA9IGE6b3B0aW9uCisgICBlbmRpZgorICAgZXhlY3V0ZSAnIWN0YWdzIC0tZXhjbWQ9bnVtYmVyICcgLiBsOkZpbGVuYW1lCitlbmRmdW5jdGlvbiBhZGEjQ3JlYXRlX1RhZ3MKKworZnVuY3Rpb24gYWRhI1N3aXRjaF9TZXNzaW9uIChOZXdfU2Vzc2lvbikgICAie3t7MQorICAgaWYgYTpOZXdfU2Vzc2lvbiAhPSB2OnRoaXNfc2Vzc2lvbgorICAgICAgIgorICAgICAgIiAgV2UgYWN0dWFseSBnb3QgYSBuZXcgc2Vzc2lvbiAtIG90aGVyd2lzZSB0aGVyZQorICAgICAgIiAgaXMgbm90aGluZyB0byBkby4KKyAgICAgICIKKyAgICAgIGlmIHN0cmxlbiAodjp0aGlzX3Nlc3Npb24pID4gMAorCSBleGVjdXRlICdta3Nlc3Npb24hICcgLiB2OnRoaXNfc2Vzc2lvbgorICAgICAgZW5kaWYKKworICAgICAgbGV0IHY6dGhpc19zZXNzaW9uID0gYTpOZXdfU2Vzc2lvbgorCisgICAgICBpZiBmaWxlcmVhZGFibGUgKHY6dGhpc19zZXNzaW9uKQorCSBleGVjdXRlICdzb3VyY2UgJyAuIHY6dGhpc19zZXNzaW9uCisgICAgICBlbmRpZgorCisgICAgICBhdWdyb3VwIGFkYV9zZXNzaW9uCisJIGF1dG9jbWQhCisJIGF1dG9jbWQgVmltTGVhdmVQcmUgKiBleGVjdXRlICdta3Nlc3Npb24hICcgLiB2OnRoaXNfc2Vzc2lvbgorICAgICAgYXVncm91cCBFTkQKKyAgIGVuZGlmCisKKyAgIHJldHVybgorZW5kZnVuY3Rpb24gYWRhI1N3aXRjaF9TZXNzaW9uCSAifX19MQorCisiIFNlY3Rpb246IEdOQVQgUHJldHR5IFByaW50ZXIgZm9sZGluZyB7e3sxCisiCitpZiBleGlzdHMoJ2c6YWRhX2ZvbGRpbmcnKSAmJiBnOmFkYV9mb2xkaW5nWzBdID09ICdnJworICAgIgorICAgIiBMaW5lcyBjb25zaXN0aW5nIG9ubHkgb2YgJyknICc7JyBhcmUgZHVlIHRvIGEgZ25hdCBwcmV0dHkgYnVnIGFuZAorICAgIiBoYXZlIHRoZSBzYW1lIGxldmVsIGFzIHRoZSBsaW5lIGFib3ZlIChjYW4ndCBoYXBwZW4gaW4gdGhlIGZpcnN0CisgICAiIGxpbmUpLgorICAgIgorICAgbGV0IHM6Rm9sZF9Db2xsYXRlID0gJ15cKFs7KV0qJFx8JworCisgICAiCisgICAiIHNvbWUgbG9uZSBzdGF0ZW1lbnRzIGFyZSBmb2xkZWQgd2l0aCB0aGUgbGluZSBhYm92ZQorICAgIgorICAgaWYgc3RyaWR4IChnOmFkYV9mb2xkaW5nLCAnaScpID49IDAKKyAgICAgIGxldCBzOkZvbGRfQ29sbGF0ZSAuPSAnXHNcK1w8aXNcPiRcfCcKKyAgIGVuZGlmCisgICBpZiBzdHJpZHggKGc6YWRhX2ZvbGRpbmcsICdiJykgPj0gMAorICAgICAgbGV0IHM6Rm9sZF9Db2xsYXRlIC49ICdcc1wrXDxiZWdpblw+JFx8JworICAgZW5kaWYKKyAgIGlmIHN0cmlkeCAoZzphZGFfZm9sZGluZywgJ3AnKSA+PSAwCisgICAgICBsZXQgczpGb2xkX0NvbGxhdGUgLj0gJ1xzXCtcPHByaXZhdGVcPiRcfCcKKyAgIGVuZGlmCisgICBpZiBzdHJpZHggKGc6YWRhX2ZvbGRpbmcsICd4JykgPj0gMAorICAgICAgbGV0IHM6Rm9sZF9Db2xsYXRlIC49ICdcc1wrXDxleGNlcHRpb25cPiRcfCcKKyAgIGVuZGlmCisKKyAgICIgV2UgYWxzbyBoYW5kbGUgZW1wdHkgbGluZXMgYW5kCisgICAiIGNvbW1lbnRzIGhlcmUuCisgICBsZXQgczpGb2xkX0NvbGxhdGUgLj0gJy0tXCknCisKKyAgIGZ1bmN0aW9uIGFkYSNQcmV0dHlfUHJpbnRfRm9sZGluZyAoTGluZSkJCQkgICAgICIge3t7MgorICAgICAgbGV0IGw6VGV4dCA9IGdldGxpbmUgKGE6TGluZSkKKworICAgICAgaWYgbDpUZXh0ID1+IHM6Rm9sZF9Db2xsYXRlCisJICIKKwkgIiAgZm9sZCB3aXRoIGxpbmUgYWJvdmUKKwkgIgorCSBsZXQgbDpMZXZlbCA9ICI9IgorICAgICAgZWxzZWlmIGw6VGV4dCA9fiAnXlxzXCsoJworCSAiCisJICIgZ25hdCBvdXRkZW50cyBhIGxpbmUgd2hpY2ggc3RhcmRzIHdpdGggYSAoIGJ5IG9uZSBjaGFyYWN0ZXJzIHNvCisJICIgdGhhdCBwYXJhbWV0ZXJzIHdoaWNoIGZvbGxvdyBhcmUgYWxpZ25lZC4KKwkgIgorCSBsZXQgbDpMZXZlbCA9IChpbmRlbnQgKGE6TGluZSkgKyAxKSAvICZzaGlmdHdpZHRoCisgICAgICBlbHNlCisJIGxldCBsOkxldmVsID0gaW5kZW50IChhOkxpbmUpIC8gJnNoaWZ0d2lkdGgKKyAgICAgIGVuZGlmCisKKyAgICAgIHJldHVybiBsOkxldmVsCisgICBlbmRmdW5jdGlvbiBhZGEjUHJldHR5X1ByaW50X0ZvbGRpbmcJCQkJICAgICAiIH19fTIKK2VuZGlmCisKKyIgU2VjdGlvbjogT3B0aW9ucyBhbmQgTWVudXMge3t7MQorIgorIiBTZWN0aW9uOiBhZGEjU3dpdGNoX1N5bnRheF9PcHRpb25zIHt7ezIKKyIKK2Z1bmN0aW9uIGFkYSNTd2l0Y2hfU3ludGF4X09wdGlvbiAob3B0aW9uKQorICAgc3ludGF4IG9mZgorICAgaWYgZXhpc3RzICgnZzphZGFfJyAuIGE6b3B0aW9uKQorICAgICAgdW5sZXQgZzphZGFfe2E6b3B0aW9ufQorICAgICAgZWNobyAgYTpvcHRpb24gLiAnbm93IG9mZicKKyAgIGVsc2UKKyAgICAgIGxldCBnOmFkYV97YTpvcHRpb259PTEKKyAgICAgIGVjaG8gIGE6b3B0aW9uIC4gJ25vdyBvbicKKyAgIGVuZGlmCisgICBzeW50YXggb24KK2VuZGZ1bmN0aW9uIGFkYSNTd2l0Y2hfU3ludGF4X09wdGlvbgorCisiIFNlY3Rpb246IGFkYSNNYXBfTWVudSB7e3syCisiCitmdW5jdGlvbiBhZGEjTWFwX01lbnUgKFRleHQsIEtleXMsIENvbW1hbmQpCisgICBpZiBhOktleXNbMF0gPT0gJzonCisgICAgICBleGVjdXRlCisJXCAiNTBhbWVudSAiIC4KKwlcICJBZGEuIiAgICAgLiBlc2NhcGUoYTpUZXh0LCAnICcpIC4KKwlcICI8VGFiPiIgICAgLiBhOktleXMgLgorCVwgIiA6IgkgICAgIC4gYTpDb21tYW5kIC4gIjxDUj4iCisgICAgICBleGVjdXRlCisJXCAiY29tbWFuZCAtYnVmZmVyICIgLgorCVwgYTpLZXlzWzE6XSAuCisJXCIgOiIgLiBhOkNvbW1hbmQgLiAiPENSPiIKKyAgIGVsc2VpZiBhOktleXNbMF0gPT0gJzwnCisgICAgICBleGVjdXRlCisJXCAiNTBhbWVudSAiIC4KKwlcICJBZGEuIiAgICAgLiBlc2NhcGUoYTpUZXh0LCAnICcpIC4KKwlcICI8VGFiPiIgICAgLiBhOktleXMgLgorCVwgIiA6IgkgICAgIC4gYTpDb21tYW5kIC4gIjxDUj4iCisgICAgICBleGVjdXRlCisJXCAibm5vcmVtYXAgPGJ1ZmZlcj4gIgkgLgorCVwgYTpLZXlzCQkgLgorCVwiIDoiIC4gYTpDb21tYW5kIC4gIjxDUj4iCisgICAgICBleGVjdXRlCisJXCAiaW5vcmVtYXAgPGJ1ZmZlcj4gIgkgLgorCVwgYTpLZXlzCQkgLgorCVwiIDxDLU8+OiIgLiBhOkNvbW1hbmQgLiAiPENSPiIKKyAgIGVsc2UKKyAgICAgIGV4ZWN1dGUKKwlcICI1MGFtZW51ICIgLgorCVwgIkFkYS4iICAuIGVzY2FwZShhOlRleHQsICcgJykgLgorCVwgIjxUYWI+IiAuIGVzY2FwZShnOm1hcGxlYWRlciAuICJhIiAuIGE6S2V5cyAsICdcJykgLgorCVwgIiA6IgkgIC4gYTpDb21tYW5kIC4gIjxDUj4iCisgICAgICBleGVjdXRlCisJXCAibm5vcmVtYXAgPGJ1ZmZlcj4iIC4KKwlcIGVzY2FwZShnOm1hcGxlYWRlciAuICJhIiAuIGE6S2V5cyAsICdcJykgLgorCVwiIDoiIC4gYTpDb21tYW5kCisgICAgICBleGVjdXRlCisJXCAiaW5vcmVtYXAgPGJ1ZmZlcj4iIC4KKwlcIGVzY2FwZShnOm1hcGxlYWRlciAuICJhIiAuIGE6S2V5cyAsICdcJykgLgorCVwiIDxDLU8+OiIgLiBhOkNvbW1hbmQKKyAgIGVuZGlmCisgICByZXR1cm4KK2VuZGZ1bmN0aW9uCisKKyIgU2VjdGlvbjogYWRhI01hcF9Qb3B1cCB7e3syCisiCitmdW5jdGlvbiBhZGEjTWFwX1BvcHVwIChUZXh0LCBLZXlzLCBDb21tYW5kKQorICAgZXhlY3V0ZQorICAgICBcICI1MGFtZW51ICIgLgorICAgICBcICJQb3BVcC4iICAgLiBlc2NhcGUoYTpUZXh0LCAnICcpIC4KKyAgICAgXCAiPFRhYj4iCSAgLiBlc2NhcGUoZzptYXBsZWFkZXIgLiAiYSIgLiBhOktleXMgLCAnXCcpIC4KKyAgICAgXCAiIDoiCSAgLiBhOkNvbW1hbmQgLiAiPENSPiIKKworICAgY2FsbCBhZGEjTWFwX01lbnUgKGE6VGV4dCwgYTpLZXlzLCBhOkNvbW1hbmQpCisgICByZXR1cm4KK2VuZGZ1bmN0aW9uIGFkYSNNYXBfUG9wdXAKKworIiB9fX0xCisKK2xvY2t2YXIgIGc6YWRhI1dvcmRSZWdleAorbG9ja3ZhciAgZzphZGEjRG90V29yZFJlZ2V4Citsb2NrdmFyICBnOmFkYSNDb21tZW50Citsb2NrdmFyISBnOmFkYSNLZXl3b3JkcworbG9ja3ZhciEgZzphZGEjQ3RhZ3NfS2luZHMKKworZmluaXNoICIgMX19fQorCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICAgQ29weXJpZ2h0IChDKSAyMDA2CU1hcnRpbiBLcmlzY2hpaworIgorIiAgIFZpbSBpcyBDaGFyaXR5d2FyZSAtIHNlZSAiOmhlbHAgbGljZW5zZSIgb3IgdWdhbmRhLnR4dCBmb3IgbGljZW5jZSBkZXRhaWxzLgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiB2aW06IHRleHR3aWR0aD03OCB3cmFwIHRhYnN0b3A9OCBzaGlmdHdpZHRoPTMgc29mdHRhYnN0b3A9MyBub2V4cGFuZHRhYgorIiB2aW06IGZvbGRtZXRob2Q9bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL2duYXQudmltIGIvcnVudGltZS9hdXRvbG9hZC9nbmF0LnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Zjk5NDUwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9hdXRvbG9hZC9nbmF0LnZpbQpAQCAtMCwwICsxLDEzOSBAQAorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiAgRGVzY3JpcHRpb246IFZpbSBBZGEvR05BVCBjb21waWxlciBmaWxlCisiICAgICBMYW5ndWFnZTogQWRhIChHTkFUKQorIiAgICAgICAgICAkSWQkCisiICAgIENvcHlyaWdodDogQ29weXJpZ2h0IChDKSAyMDA2IE1hcnRpbiBLcmlzY2hpaworIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpaworIiAgICAgICRBdXRob3IkCisiICAgICAgICAkRGF0ZSQKKyIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgJFJldmlzaW9uJAorIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvZ25hdC52aW0gJAorIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCisiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCisiCQkwNS4wOC4yMDA2IE1LIEFkZCBzZXNzaW9uIHN1cHBvcnQKKyIgICAgICAgICAgICAgICAxNS4xMC4yMDA2IE1LIEJyYW0ncyBzdWdnZXN0aW9uIGZvciBydW50aW1lIGludGVncmF0aW9uCisiICAgICAgICAgICAgICAgMDUuMTEuMjAwNiBNSyBCcmFtIHN1Z2dlc3RlZCBub3QgdG8gdXNlIGluY2x1ZGUgcHJvdGVjdGlvbiBmb3IKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9sb2FkCisiCQkwNS4xMS4yMDA2IE1LIEJyYW0gc3VnZ2VzdGVkIHRvIHNhdmUgb24gc3BhY2VzCisiICAgIEhlbHAgUGFnZTogY29tcGlsZXItZ25hdAorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpZiB2ZXJzaW9uIDwgNzAwCisgICAgZmluaXNoCitlbmRpZgorCitmdW5jdGlvbiBnbmF0I01ha2UgKCkgZGljdAkJCQkJICAgICAiIHt7ezEKKyAgIGxldCAmbDptYWtlcHJnCSA9IHNlbGYuR2V0X0NvbW1hbmQoJ01ha2UnKQorICAgbGV0ICZsOmVycm9yZm9ybWF0ID0gc2VsZi5FcnJvcl9Gb3JtYXQKKyAgIHdhbGwKKyAgIG1ha2UKKyAgIGNvcGVuCisgICBzZXQgd3JhcAorICAgd2luY21kIFcKK2VuZGZ1bmN0aW9uIGduYXQjTWFrZQkJCQkJCSAgICAgIiB9fX0xCisKK2Z1bmN0aW9uIGduYXQjUHJldHR5ICgpIGRpY3QJCQkJCSAgICAgIiB7e3sxCisgICBleGVjdXRlICIhIiAuIHNlbGYuR2V0X0NvbW1hbmQoJ1ByZXR0eScpCitlbmRmdW5jdGlvbiBnbmF0I01ha2UJCQkJCQkgICAgICIgfX19MQorCitmdW5jdGlvbiBnbmF0I0ZpbmQgKCkgZGljdAkJCQkJICAgICAiIHt7ezEKKyAgIGV4ZWN1dGUgIiEiIC4gc2VsZi5HZXRfQ29tbWFuZCgnRmluZCcpCitlbmRmdW5jdGlvbiBnbmF0I0ZpbmQJCQkJCQkgICAgICIgfX19MQorCitmdW5jdGlvbiBnbmF0I1RhZ3MgKCkgZGljdAkJCQkJICAgICAiIHt7ezEKKyAgIGV4ZWN1dGUgIiEiIC4gc2VsZi5HZXRfQ29tbWFuZCgnVGFncycpCisgICBlZGl0IHRhZ3MKKyAgIGNhbGwgZ25hdCNJbnNlcnRfVGFnc19IZWFkZXIgKCkKKyAgIHVwZGF0ZQorICAgcXVpdAorZW5kZnVuY3Rpb24gZ25hdCNUYWdzCQkJCQkJICAgICAiIH19fTEKKworZnVuY3Rpb24gZ25hdCNTZXRfUHJvamVjdF9GaWxlICguLi4pIGRpY3QJCQkgICAgICIge3t7MQorICAgaWYgYTowID4gMAorICAgICAgbGV0IHNlbGYuUHJvamVjdF9GaWxlID0gYToxCisKKyAgICAgIGlmICEgZmlsZXJlYWRhYmxlIChzZWxmLlByb2plY3RfRmlsZSkKKwkgbGV0IHNlbGYuUHJvamVjdF9GaWxlID0gZmluZGZpbGUgKAorCSAgICBcIGZuYW1lbW9kaWZ5IChzZWxmLlByb2plY3RfRmlsZSwgJzpyJyksCisJICAgIFwgJEFEQV9QUk9KRUNUX1BBVEgsCisJICAgIFwgMSkKKyAgICAgIGVuZGlmCisgICBlbHNlaWYgc3RybGVuIChzZWxmLlByb2plY3RfRmlsZSkgPiAwCisgICAgICBsZXQgc2VsZi5Qcm9qZWN0X0ZpbGUgPSBicm93c2UgKDAsICdHTkFUIFByb2plY3QgRmlsZT8nLCAnJywgc2VsZi5Qcm9qZWN0X0ZpbGUpCisgICBlbHNlaWYgZXhwYW5kICgiJTplIikgPT0gJ2dwcicKKyAgICAgIGxldCBzZWxmLlByb2plY3RfRmlsZSA9IGJyb3dzZSAoMCwgJ0dOQVQgUHJvamVjdCBGaWxlPycsICcnLCBleHBhbmQgKCIlOmUiKSkKKyAgIGVsc2UKKyAgICAgIGxldCBzZWxmLlByb2plY3RfRmlsZSA9IGJyb3dzZSAoMCwgJ0dOQVQgUHJvamVjdCBGaWxlPycsICcnLCAnZGVmYXVsdC5ncHInKQorICAgZW5kaWYKKworICAgaWYgc3RybGVuICh2OnRoaXNfc2Vzc2lvbikgPiAwCisgICAgICBleGVjdXRlICdta3Nlc3Npb24hICcgLiB2OnRoaXNfc2Vzc2lvbgorICAgZW5kaWYKKworICAgaWYgc3RybGVuIChzZWxmLlByb2plY3RfRmlsZSkgPiAwCisgICAgICBjYWxsIGFkYSNTd2l0Y2hfU2Vzc2lvbiAoCisJIFwgZXhwYW5kKCd+JykgLiAiL3ZpbWZpbGVzL3Nlc3Npb24vIiAuCisJIFwgZm5hbWVtb2RpZnkgKHNlbGYuUHJvamVjdF9GaWxlLCAiOnQ6ciIpIC4gIi52aW0iKQorICAgZWxzZQorICAgICAgY2FsbCBhZGEjU3dpdGNoX1Nlc3Npb24gKCcnKQorICAgZW5kaWYKKworICAgcmV0dXJuCitlbmRmdW5jdGlvbiBnbmF0I1NldF9Qcm9qZWN0X0ZpbGUJCQkJICAgICAiIH19fTEKKworZnVuY3Rpb24gZ25hdCNHZXRfQ29tbWFuZCAoQ29tbWFuZCkgZGljdAkJCSAgICAgIiB7e3sxCisgICBsZXQgbDpDb21tYW5kID0gZXZhbCAoJ3NlbGYuJyAuIGE6Q29tbWFuZCAuICdfQ29tbWFuZCcpCisgICByZXR1cm4gZXZhbCAobDpDb21tYW5kKQorZW5kZnVuY3Rpb24gZ25hdCNHZXRfQ29tbWFuZAkJCQkJICAgICAiIH19fTEKKworZnVuY3Rpb24gZ25hdCNTZXRfU2Vzc2lvbiAoLi4uKSBkaWN0CQkJCSAgICAgIiB7e3sxCisgICBpZiBhcmdjKCkgPT0gMSAmJiBmbmFtZW1vZGlmeSAoYXJndigwKSwgJzplJykgPT0gJ2dwcicKKyAgICAgIGNhbGwgc2VsZi5TZXRfUHJvamVjdF9GaWxlIChhcmd2KDApKQorICAgZWxzZWlmICBzdHJsZW4gKHY6c2VydmVybmFtZSkgPiAwCisgICAgICBjYWxsIHNlbGYuU2V0X1Byb2plY3RfRmlsZSAodjpzZXJ2ZXJuYW1lIC4gJy5ncHInKQorICAgZW5kaWYKK2VuZGZ1bmN0aW9uIGduYXQjU2V0X1Nlc3Npb24JCQkJCSAgICAgIiB9fX0xCisKK2Z1bmN0aW9uIGduYXQjTmV3ICgpCQkJCQkJICAgICAiIHt7ezEKKyAgIGxldCBsOlJldHZhbCA9IHsKKyAgICAgIFwgJ01ha2UnCSAgICAgIDogZnVuY3Rpb24gKCdnbmF0I01ha2UnKSwKKyAgICAgIFwgJ1ByZXR0eScJICAgICAgOiBmdW5jdGlvbiAoJ2duYXQjUHJldHR5JyksCisgICAgICBcICdGaW5kJwkgICAgICA6IGZ1bmN0aW9uICgnZ25hdCNGaW5kJyksCisgICAgICBcICdUYWdzJwkgICAgICA6IGZ1bmN0aW9uICgnZ25hdCNUYWdzJyksCisgICAgICBcICdTZXRfUHJvamVjdF9GaWxlJyA6IGZ1bmN0aW9uICgnZ25hdCNTZXRfUHJvamVjdF9GaWxlJyksCisgICAgICBcICdTZXRfU2Vzc2lvbicgICAgICA6IGZ1bmN0aW9uICgnZ25hdCNTZXRfU2Vzc2lvbicpLAorICAgICAgXCAnR2V0X0NvbW1hbmQnICAgICAgOiBmdW5jdGlvbiAoJ2duYXQjR2V0X0NvbW1hbmQnKSwKKyAgICAgIFwgJ1Byb2plY3RfRmlsZScgICAgIDogJycsCisgICAgICBcICdNYWtlX0NvbW1hbmQnICAgICA6ICciZ25hdCBtYWtlIC1QICIgLiBzZWxmLlByb2plY3RfRmlsZSAuICIgIC1GIC1nbmF0ZWYgICInLAorICAgICAgXCAnUHJldHR5X0NvbW1hbmQnICAgOiAnImduYXQgcHJldHR5IC1QICIgLiBzZWxmLlByb2plY3RfRmlsZSAuICIgIicsCisgICAgICBcICdGaW5kX1Byb2dyYW0nICAgICA6ICciZ25hdCBmaW5kIC1QICIgLiBzZWxmLlByb2plY3RfRmlsZSAuICIgLUYgIicsCisgICAgICBcICdUYWdzX0NvbW1hbmQnICAgICA6ICciZ25hdCB4cmVmIC1QICIgLiBzZWxmLlByb2plY3RfRmlsZSAuICIgLXYgICouQUQqIicsCisgICAgICBcICdFcnJvcl9Gb3JtYXQnICAgICA6ICclZjolbDolYzogJXRycm9yOiAlbSwnICAgLgorCQkJICAgXCAnJWY6JWw6JWM6ICV0YXJuaW5nOiAlbSwnIC4KKwkJCSAgIFwgJyVmOiVsOiVjOiAoJXR0eWxlKSAlbSd9CisKKyAgIHJldHVybiBsOlJldHZhbAorZW5kZnVuY3Rpb24gZ25hdCNOZXcJCQkJCQkgICIgfX19MQorCitmdW5jdGlvbiBnbmF0I0luc2VydF9UYWdzX0hlYWRlciAoKQkJCQkgICIge3t7MQorICAgMWluc2VydAorIV9UQUdfRklMRV9GT1JNQVQgICAgICAgMQkgL2V4dGVuZGVkIGZvcm1hdDsgLS1mb3JtYXQ9MSB3aWxsIG5vdCBhcHBlbmQgOyIgdG8gbGluZXMvCishX1RBR19GSUxFX1NPUlRFRCAgICAgICAxCSAvMD11bnNvcnRlZCwgMT1zb3J0ZWQsIDI9Zm9sZGNhc2UvCishX1RBR19QUk9HUkFNX0FVVEhPUiAgICBBZGFDb3JlCSAvaW5mb0BhZGFjb3JlLmNvbS8KKyFfVEFHX1BST0dSQU1fTkFNRSAgICAgIGduYXR4cmVmIC8vCishX1RBR19QUk9HUkFNX1VSTCAgICAgICBodHRwOi8vd3d3LmFkYWNvcmUuY29tICAvb2ZmaWNpYWwgc2l0ZS8KKyFfVEFHX1BST0dSQU1fVkVSU0lPTiAgIDUuMDV3ICAgLy8KKy4KKyAgIHJldHVybgorZW5kZnVuY3Rpb24gZ25hdCNJbnNlcnRfVGFnc19IZWFkZXIJCQkJICAiIH19fTEKKworZmluaXNoICIgMX19fQorCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICAgQ29weXJpZ2h0IChDKSAyMDA2ICBNYXJ0aW4gS3Jpc2NoaWsKKyIKKyIgICBWaW0gaXMgQ2hhcml0eXdhcmUgLSBzZWUgIjpoZWxwIGxpY2Vuc2UiIG9yIHVnYW5kYS50eHQgZm9yIGxpY2VuY2UgZGV0YWlscy4KKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgdmltOiB0ZXh0d2lkdGg9MCB3cmFwIHRhYnN0b3A9OCBzaGlmdHdpZHRoPTMgc29mdHRhYnN0b3A9MyBub2V4cGFuZHRhYgorIiB2aW06IGZvbGRtZXRob2Q9bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3RmlsZUhhbmRsZXJzLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndGaWxlSGFuZGxlcnMudmltCmluZGV4IDg5NWNkOTkuLjVmYjA1YmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndGaWxlSGFuZGxlcnMudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndGaWxlSGFuZGxlcnMudmltCkBAIC0xLDggKzEsOCBAQAogIiBuZXRyd0ZpbGVIYW5kbGVyczogY29udGFpbnMgdmFyaW91cyBleHRlbnNpb24tYmFzZWQgZmlsZSBoYW5kbGVycyBmb3IKICIgICAgICAgICAgICAgICAgICAgIG5ldHJ3J3MgYnJvd3NlcnMnIHggY29tbWFuZCAoImVYZWN1dGUgbGF1bmNoZXIiKQogIiBBdXRob3I6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgotIiBEYXRlOgkJTWF5IDAxLCAyMDA2Ci0iIFZlcnNpb246CTgKKyIgRGF0ZToJCU1heSAzMCwgMjAwNgorIiBWZXJzaW9uOgk5CiAiIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDUgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKICIgICAgICAgICAgICAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIHRvIHVzZSBhbmQgZGlzdHJpYnV0ZSB0aGlzIGNvZGUsCiAiICAgICAgICAgICAgICAgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIHByb3ZpZGVkIHRoYXQgdGhpcyBjb3B5cmlnaHQKQEAgLTIyLDE2ICsyMiw0MSBAQAogZW5kaWYKIGxldCBzOmtlZXBjcG89ICZjcG8KIHNldCBjcG8mdmltCi1sZXQgZzpsb2FkZWRfbmV0cndGaWxlSGFuZGxlcnM9ICJ2OCIKK2xldCBnOmxvYWRlZF9uZXRyd0ZpbGVIYW5kbGVycz0gInY5IgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBuZXRyd0ZpbGVIYW5kbGVycyNJbnZva2U6IHt7ezEKIGZ1biEgbmV0cndGaWxlSGFuZGxlcnMjSW52b2tlKGV4dGVuLGZuYW1lKQogIiAgY2FsbCBEZnVuYygibmV0cndGaWxlSGFuZGxlcnMjSW52b2tlKGV4dGVuPCIuYTpleHRlbi4iPiBmbmFtZTwiLmE6Zm5hbWUuIj4pIikKKyAgbGV0IGZuYW1lPSBhOmZuYW1lCisgICIgbGlzdCBvZiBzdXBwb3J0ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLiAgQ29uc2lkZXIgcmNzLHYgLS0tIHRoYXQgY2FuIGJlCisgICIgc3VwcG9ydGVkIHdpdGggYSBORkhfcmNzQ09NTUF2KCkgaGFuZGxlcgorICBpZiBhOmZuYW1lID1+ICdbQDosJCE9XC0rJT87fl0nCisgICBsZXQgc3BlY2lhbHM9IHsKK1wgICAnQCcgOiAnQVQnLAorXCAgICc6JyA6ICdDT0xPTicsCitcICAgJywnIDogJ0NPTU1BJywKK1wgICAnJCcgOiAnRE9MTEFSJywKK1wgICAnIScgOiAnRVhDTEFNQVRJT04nLAorXCAgICc9JyA6ICdFUVVBTCcsCitcICAgJy0nIDogJ01JTlVTJywKK1wgICAnKycgOiAnUExVUycsCitcICAgJyUnIDogJ1BFUkNFTlQnLAorXCAgICc/JyA6ICdRVUVTVElPTicsCitcICAgJzsnIDogJ1NFTUlDT0xPTicsCitcICAgJ34nIDogJ1RJTERFJ30KKyAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdbQDosJCE9XC0rJT87fl0nLCdcPXNwZWNpYWxzW3N1Ym1hdGNoKDApXScsJ2dlJykKKyIgICBjYWxsIERlY2hvKCdmbmFtZTwnLmZuYW1lLic+IGRvbmUgd2l0aCBkaWN0aW9uYXJ5JykKKyAgZW5kaWYKIAotICBpZiBhOmV4dGVuICE9ICIiICYmIGV4aXN0cygiKnM6TkZIXyIuYTpleHRlbikKLSIgICBjYWxsIERlY2hvKCJsZXQgcmV0PSBuZXRyd0ZpbGVIYW5kbGVycyNORkhfIi5hOmV4dGVuLicoIicuYTpmbmFtZS4nIiknKQotICAgZXhlICJsZXQgcmV0PSBzOk5GSF8iLmE6ZXh0ZW4uJygiJy5hOmZuYW1lLiciKScKKyAgaWYgYTpleHRlbiAhPSAiIiAmJiBleGlzdHMoIipORkhfIi5hOmV4dGVuKQorICAgIiBzdXBwb3J0IHVzZXIgTkZIXyooKSBmdW5jdGlvbnMKKyIgICBjYWxsIERlY2hvKCJsZXQgcmV0PSBuZXRyd0ZpbGVIYW5kbGVycyNORkhfIi5hOmV4dGVuLicoIicuZm5hbWUuJyIpJykKKyAgIGV4ZSAibGV0IHJldD0gTkZIXyIuYTpleHRlbi4nKCInLmZuYW1lLiciKScKKyAgZWxzZWlmIGE6ZXh0ZW4gIT0gIiIgJiYgZXhpc3RzKCIqczpORkhfIi5hOmV4dGVuKQorICAgIiB1c2UgYnVpbHRpbi1ORkhfKigpIGZ1bmN0aW9ucworIiAgIGNhbGwgRGVjaG8oImxldCByZXQ9IG5ldHJ3RmlsZUhhbmRsZXJzI05GSF8iLmE6ZXh0ZW4uJygiJy5mbmFtZS4nIiknKQorICAgZXhlICJsZXQgcmV0PSBzOk5GSF8iLmE6ZXh0ZW4uJygiJy5mbmFtZS4nIiknCiAgIGVuZGlmCiAgIAogIiAgY2FsbCBEcmV0KCJuZXRyd0ZpbGVIYW5kbGVycyNJbnZva2UgMCA6IHJldD0iLnJldCkKQEAgLTQ4LDEwICs3MywxMCBAQAogCiAgIGlmIGV4ZWN1dGFibGUoIm1vemlsbGEiKQogIiAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZyAhbW96aWxsYSAiLnBhZ2UpCi0gICBleGUgIiFtb3ppbGxhIFwiIi5wYWdlLiciJworICAgZXhlICIhbW96aWxsYSAiLmc6bmV0cndfc2hxLnBhZ2UuZzpuZXRyd19zaHEKICAgZWxzZWlmIGV4ZWN1dGFibGUoIm5ldHNjYXBlIikKICIgICBjYWxsIERlY2hvKCJleGVjdXRpbmcgIW5ldHNjYXBlICIucGFnZSkKLSAgIGV4ZSAiIW5ldHNjYXBlIFwiIi5wYWdlLiciJworICAgZXhlICIhbmV0c2NhcGUgIi5nOm5ldHJ3X3NocS4ucGFnZS5nOm5ldHJ3X3NocQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9odG1sIDAiKQogICAgcmV0dXJuIDAKQEAgLTcxLDEwICs5NiwxMCBAQAogCiAgIGlmIGV4ZWN1dGFibGUoIm1vemlsbGEiKQogIiAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZyAhbW96aWxsYSAiLnBhZ2UpCi0gICBleGUgIiFtb3ppbGxhIFwiIi5wYWdlLiciJworICAgZXhlICIhbW96aWxsYSAiLmc6bmV0cndfc2hxLnBhZ2UuZzpuZXRyd19zaHEKICAgZWxzZWlmIGV4ZWN1dGFibGUoIm5ldHNjYXBlIikKICIgICBjYWxsIERlY2hvKCJleGVjdXRpbmcgIW5ldHNjYXBlICIucGFnZSkKLSAgIGV4ZSAiIW5ldHNjYXBlIFwiIi5wYWdlLiciJworICAgZXhlICIhbmV0c2NhcGUgIi5nOm5ldHJ3X3NocS5wYWdlLmc6bmV0cndfc2hxCiAgIGVsc2UKICIgICBjYWxsIERyZXQoInM6TkZIX2h0bSAwIikKICAgIHJldHVybiAwCkBAIC05MCwxMCArMTE1LDEwIEBACiAiICBjYWxsIERmdW5jKCJzOk5GSF9qcGcoanBnZmlsZTwiLmE6anBnZmlsZS4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoImdpbXAiKQotICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuYTpqcGdmaWxlCisgICBleGUgInNpbGVudCEgIWdpbXAgLXMgIi5nOm5ldHJ3X3NocS5hOmpwZ2ZpbGUuZzpuZXRyd19zaHEKICAgZWxzZWlmIGV4ZWN1dGFibGUoZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVC5FWEUiKQogIiAgIGNhbGwgRGVjaG8oInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLmVzY2FwZShhOmpwZ2ZpbGUsIiBbXXwnIikpCi0gICBleGUgIiEiLmV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQgXCIiLmE6anBnZmlsZS4nIicKKyAgIGV4ZSAiISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLmc6bmV0cndfc2hxLmE6anBnZmlsZS5nOm5ldHJ3X3NocQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9qcGcgMCIpCiAgICByZXR1cm4gMApAQCAtMTA5LDkgKzEzNCw5IEBACiAiICBjYWxsIERmdW5jKCJzOk5GSF9naWYoZ2lmZmlsZTwiLmE6Z2lmZmlsZS4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoImdpbXAiKQotICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuYTpnaWZmaWxlCisgICBleGUgInNpbGVudCEgIWdpbXAgLXMgIi5nOm5ldHJ3X3NocS5hOmdpZmZpbGUuZzpuZXRyd19zaHEKICAgZWxzZWlmIGV4ZWN1dGFibGUoZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVC5FWEUiKQotICAgZXhlICJzaWxlbnQhICEiLmV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQgXCIiLmE6Z2lmZmlsZS4nIicKKyAgIGV4ZSAic2lsZW50ISAhIi5leHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5UICIuZzpuZXRyd19zaHEuYTpnaWZmaWxlLmc6bmV0cndfc2hxCiAgIGVsc2UKICIgICBjYWxsIERyZXQoInM6TkZIX2dpZiAwIikKICAgIHJldHVybiAwCkBAIC0xMjcsOSArMTUyLDkgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX3BuZyhwbmdmaWxlPCIuYTpwbmdmaWxlLiI+KSIpCiAKICAgaWYgZXhlY3V0YWJsZSgiZ2ltcCIpCi0gICBleGUgInNpbGVudCEgIWdpbXAgLXMgIi5hOnBuZ2ZpbGUKKyAgIGV4ZSAic2lsZW50ISAhZ2ltcCAtcyAiLmc6bmV0cndfc2hxLmE6cG5nZmlsZS5nOm5ldHJ3X3NocQogICBlbHNlaWYgZXhlY3V0YWJsZShleHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5ULkVYRSIpCi0gICBleGUgInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCBcIiIuYTpwbmdmaWxlLiciJworICAgZXhlICJzaWxlbnQhICEiLmV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQgIi5nOm5ldHJ3X3NocS5hOnBuZ2ZpbGUuZzpuZXRyd19zaHEKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfcG5nIDAiKQogICAgcmV0dXJuIDAKQEAgLTE0NSw5ICsxNzAsOSBAQAogIiAgY2FsbCBEZnVuYygiczpORkhfcG5tKHBubWZpbGU8Ii5hOnBubWZpbGUuIj4pIikKIAogICBpZiBleGVjdXRhYmxlKCJnaW1wIikKLSAgIGV4ZSAic2lsZW50ISAhZ2ltcCAtcyAiLmE6cG5tZmlsZQorICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuZzpuZXRyd19zaHEuYTpwbm1maWxlLmc6bmV0cndfc2hxCiAgIGVsc2VpZiBleGVjdXRhYmxlKGV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQuRVhFIikKLSAgIGV4ZSAic2lsZW50ISAhIi5leHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5UIFwiIi5hOnBubWZpbGUuJyInCisgICBleGUgInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLmc6bmV0cndfc2hxLmE6cG5tZmlsZS5nOm5ldHJ3X3NocQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9wbm0gMCIpCiAgICByZXR1cm4gMApAQCAtMTY1LDcgKzE5MCw3IEBACiAgIGlmIGV4ZWN1dGFibGUoImdpbXAiKQogICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuYTpibXBmaWxlCiAgIGVsc2VpZiBleGVjdXRhYmxlKGV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQuRVhFIikKLSAgIGV4ZSAic2lsZW50ISAhIi5leHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5UIFwiIi5hOmJtcGZpbGUuJyInCisgICBleGUgInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLmc6bmV0cndfc2hxLmE6Ym1wZmlsZS5nOm5ldHJ3X3NocQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9ibXAgMCIpCiAgICByZXR1cm4gMApAQCAtMTgwLDcgKzIwNSw5IEBACiBmdW4hIHM6TkZIX3BkZihwZGYpCiAiICBjYWxsIERmdW5jKCJzOk5GSF9wZGYocGRmPCIuYTpwZGYuIj4pIikKICAgaWYgZXhlY3V0YWJsZSgiZ3MiKQotICAgZXhlICdzaWxlbnQhICFncyAiJy5hOnBkZi4nIicKKyAgIGV4ZSAnc2lsZW50ISAhZ3MgJy5nOm5ldHJ3X3NocS5hOnBkZi5nOm5ldHJ3X3NocQorICBlbHNlaWYgZXhlY3V0YWJsZSgicGRmdG90ZXh0IikKKyAgIGV4ZSAnc2lsZW50ISBwZGZ0b3RleHQgLW5vcGdicmsgJy5nOm5ldHJ3X3NocS5hOnBkZi5nOm5ldHJ3X3NocQogICBlbHNlCiAiICBjYWxsIERyZXQoInM6TkZIX3BkZiAwIikKICAgIHJldHVybiAwCkBAIC0xOTYsNyArMjIzLDcgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX2RvYyhkb2M8Ii5hOmRvYy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vd3JpdGVyIikKLSAgIGV4ZSAnc2lsZW50ISAhb293cml0ZXIgIicuYTpkb2MuJyInCisgICBleGUgJ3NpbGVudCEgIW9vd3JpdGVyICcuZzpuZXRyd19zaHEuYTpkb2MuZzpuZXRyd19zaHEKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgY2FsbCBEcmV0KCJzOk5GSF9kb2MgMCIpCkBAIC0yMTMsNyArMjQwLDcgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX3N4dyhzeHc8Ii5hOnN4dy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vd3JpdGVyIikKLSAgIGV4ZSAnc2lsZW50ISAhb293cml0ZXIgIicuYTpzeHcuJyInCisgICBleGUgJ3NpbGVudCEgIW9vd3JpdGVyICcuZzpuZXRyd19zaHEuYTpzeHcuZzpuZXRyd19zaHEKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfc3h3IDAiKQpAQCAtMjMwLDcgKzI1Nyw3IEBACiAiICBjYWxsIERmdW5jKCJzOk5GSF94bHMoeGxzPCIuYTp4bHMuIj4pIikKIAogICBpZiBleGVjdXRhYmxlKCJvb2NhbGMiKQotICAgZXhlICdzaWxlbnQhICFvb2NhbGMgIicuYTp4bHMuJyInCisgICBleGUgJ3NpbGVudCEgIW9vY2FsYyAnLmc6bmV0cndfc2hxLmE6eGxzLmc6bmV0cndfc2hxCiAgICByZWRyYXchCiAgIGVsc2UKICIgIGNhbGwgRHJldCgiczpORkhfeGxzIDAiKQpAQCAtMjQ3LDE1ICsyNzQsMTUgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX3BzKHBzPCIuYTpwcy4iPikiKQogICBpZiBleGVjdXRhYmxlKCJncyIpCiAiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCEgIWdzICIuYTpwcykKLSAgIGV4ZSAic2lsZW50ISAhZ3MgIi5hOnBzCisgICBleGUgInNpbGVudCEgIWdzICIuZzpuZXRyd19zaHEuYTpwcy5nOm5ldHJ3X3NocQogICAgcmVkcmF3IQogICBlbHNlaWYgZXhlY3V0YWJsZSgiZ2hvc3RzY3JpcHQiKQogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICFnaG9zdHNjcmlwdCAiLmE6cHMpCi0gICBleGUgInNpbGVudCEgIWdob3N0c2NyaXB0ICIuYTpwcworICAgZXhlICJzaWxlbnQhICFnaG9zdHNjcmlwdCAiLmc6bmV0cndfc2hxLmE6cHMuZzpuZXRyd19zaHEKICAgIHJlZHJhdyEKICAgZWxzZWlmIGV4ZWN1dGFibGUoImdzd2luMzIiKQotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICFnc3dpbjMyIFwiIi5hOnBzLiciJykKLSAgIGV4ZSAic2lsZW50ISAhZ3N3aW4zMiBcIiIuYTpwcy4nIicKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISAhZ3N3aW4zMiAiLmc6bmV0cndfc2hxLmE6cHMuZzpuZXRyd19zaHEpCisgICBleGUgInNpbGVudCEgIWdzd2luMzIgIi5nOm5ldHJ3X3NocS5hOnBzLmc6bmV0cndfc2hxCiAgICByZWRyYXchCiAgIGVsc2UKICIgICBjYWxsIERyZXQoInM6TkZIX3BzIDAiKQpAQCAtMjcxLDE2ICsyOTgsMTYgQEAKIGZ1biEgczpORkhfZXBzKGVwcykKICIgIGNhbGwgRGZ1bmMoInM6TkZIX2VwcygpIikKICAgaWYgZXhlY3V0YWJsZSgiZ3MiKQotICAgZXhlICJzaWxlbnQhICFncyAiLmE6ZXBzCisgICBleGUgInNpbGVudCEgIWdzICIuZzpuZXRyd19zaHEuYTplcHMuZzpuZXRyd19zaHEKICAgIHJlZHJhdyEKICAgZWxzZWlmIGV4ZWN1dGFibGUoImdob3N0c2NyaXB0IikKLSAgIGV4ZSAic2lsZW50ISAhZ2hvc3RzY3JpcHQgIi5hOmVwcworICAgZXhlICJzaWxlbnQhICFnaG9zdHNjcmlwdCAiLmc6bmV0cndfc2hxLmE6ZXBzLmc6bmV0cndfc2hxCiAgICByZWRyYXchCiAgIGVsc2VpZiBleGVjdXRhYmxlKCJnaG9zdHNjcmlwdCIpCi0gICBleGUgInNpbGVudCEgIWdob3N0c2NyaXB0ICIuYTplcHMKKyAgIGV4ZSAic2lsZW50ISAhZ2hvc3RzY3JpcHQgIi5nOm5ldHJ3X3NocS5hOmVwcy5nOm5ldHJ3X3NocQogICAgcmVkcmF3IQogICBlbHNlaWYgZXhlY3V0YWJsZSgiZ3N3aW4zMiIpCi0gICBleGUgInNpbGVudCEgIWdzd2luMzIgXCIiLmE6ZXBzLiciJworICAgZXhlICJzaWxlbnQhICFnc3dpbjMyICIuZzpuZXRyd19zaHEuYTplcHMuZzpuZXRyd19zaHEKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfZXBzIDAiKQpAQCAtMzI1LDQgKzM1Miw0IEBACiBsZXQgJmNwbz0gczprZWVwY3BvCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiAgTW9kZWxpbmVzOiB7e3sxCi0iICB2aW06IHRzPTQgZmRtPW1hcmtlcgorIiAgdmltOiBmZG09bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3Rhci52aW0gYi9ydW50aW1lL2F1dG9sb2FkL3Rhci52aW0KaW5kZXggOTAwNGYzOS4uNmMxNzIzOCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC90YXIudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvdGFyLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgdGFyLnZpbTogSGFuZGxlcyBicm93c2luZyB0YXJmaWxlcwogIiAgICAgICAgICAgIEFVVE9MT0FEIFBPUlRJT04KLSIgRGF0ZToJCQlNYXkgMDIsIDIwMDYKLSIgVmVyc2lvbjoJCTkKLSIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFIENhbXBiZWxsLCBKciA8ZHJjaGlwTk9TUEFNIGF0IGNhbXBiZWxsZmFtaWx5IGRvdCBiaXo+CisiIERhdGU6CQkJU2VwIDI5LCAyMDA2CisiIFZlcnNpb246CQkxMQorIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNLU5PU1BBTT4KICIgTGljZW5zZToJCVZpbSBMaWNlbnNlICAoc2VlIHZpbSdzIDpoZWxwIGxpY2Vuc2UpCiAiCiAiCUNvbnRhaW5zIG1hbnkgaWRlYXMgZnJvbSBNaWNoYWVsIFRvcmVuJ3MgPHRhci52aW0+CkBAIC0xOCwxMyArMTgsMTMgQEAKICIgICAgICAgICAgICAgICBvZiB0aGlzIHNvZnR3YXJlLgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBJbml0aWFsaXphdGlvbjoge3t7MQorIiBMb2FkIE9uY2U6IHt7ezEKIGxldCBzOmtlZXBjcG89ICZjcG8KIHNldCBjcG8mdmltCi1pZiBleGlzdHMoImc6bG9hZGVkX3RhciIpCitpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF90YXIiKSB8fCB2OnZlcnNpb24gPCA3MDAKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfdGFyPSAidjkiCitsZXQgZzpsb2FkZWRfdGFyPSAidjExIgogImNhbGwgRGVjaG8oImxvYWRpbmcgYXV0b2xvYWQvdGFyLnZpbSIpCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MSw2ICs0MSwxMyBAQAogaWYgIWV4aXN0cygiZzp0YXJfd3JpdGVvcHRpb25zIikKICBsZXQgZzp0YXJfd3JpdGVvcHRpb25zPSAidWYiCiBlbmRpZgoraWYgIWV4aXN0cygiZzp0YXJfc2hxIikKKyBpZiBoYXMoInVuaXgiKQorICBsZXQgZzp0YXJfc2hxPSAiJyIKKyBlbHNlCisgIGxldCBnOnRhcl9zaHE9ICciJworIGVuZGlmCitlbmRpZgogCiAiIC0tLS0tLS0tLS0tLS0tLS0KICIgIEZ1bmN0aW9uczoge3t7MQpAQCAtNTUsOCArNjIsOSBAQAogCiAgICIgc2FuaXR5IGNoZWNrcwogICBpZiAhZXhlY3V0YWJsZShnOnRhcl9jbWQpCisgICByZWRyYXchCiAgICBlY2hvaGwgRXJyb3IgfCBlY2hvICcqKiplcnJvcioqKiAodGFyI0Jyb3dzZSkgIicuZzp0YXJfY21kLiciIG5vdCBhdmFpbGFibGUgb24geW91ciBzeXN0ZW0nCi0gICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCisiICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgbGV0ICZyZXBvcnQ9IHJlcGtlZXAKICIgICBjYWxsIERyZXQoInRhciNCcm93c2UiKQogICAgcmV0dXJuCkBAIC02NSw4ICs3Myw5IEBACiAiICAgY2FsbCBEZWNobygnYTp0YXJmaWxlPCcuYTp0YXJmaWxlLic+IG5vdCBmaWxlcmVhZGFibGUnKQogICAgaWYgYTp0YXJmaWxlICF+IyAnXlxhXCs6Ly8nCiAgICAgIiBpZiBpdHMgYW4gdXJsLCBkb24ndCBjb21wbGFpbiwgbGV0IHVybC1oYW5kbGVycyBzdWNoIGFzIHZpbSBkbyBpdHMgdGhpbmcKKyAgICByZWRyYXchCiAgICAgZWNob2hsIEVycm9yIHwgZWNobyAiKioqZXJyb3IqKiogKHRhciNCcm93c2UpIEZpbGUgbm90IHJlYWRhYmxlPCIuYTp0YXJmaWxlLiI+IiB8IGVjaG9obCBOb25lCi0gICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQorIiAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBlbmRpZgogICAgbGV0ICZyZXBvcnQ9IHJlcGtlZXAKICIgICBjYWxsIERyZXQoInRhciNCcm93c2UgOiBmaWxlPCIuYTp0YXJmaWxlLiI+IG5vdCByZWFkYWJsZSIpCkBAIC05OSwzMCArMTA4LDI2IEBACiAgIGVuZGlmCiAgIGxldCBjdXJsYXN0PSBsaW5lKCIkIikKICAgaWYgdGFyZmlsZSA9fiMgJ1wuXChnelx8dGd6XCkkJwotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgZ3ppcCAtZCAtYyAnIi50YXJmaWxlLiInfCB0YXIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKLSAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgJyIudGFyZmlsZS4iJ3wgdGFyIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50IHIhIGd6aXAgLWQgLWMgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgLSAiKQorICAgZXhlICJzaWxlbnQgciEgZ3ppcCAtZCAtYyAiLmc6dGFyX3NocS50YXJmaWxlLmc6dGFyX3NocS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIKICAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmJ6MiQnCi0iICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISBiemlwMiAtZCAtYyAnIi50YXJmaWxlLiInfCB0YXIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKLSAgIGV4ZSAic2lsZW50IHIhIGJ6aXAyIC1kIC1jICciLnRhcmZpbGUuIid8IHRhciAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgLSAiCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISBiemlwMiAtZCAtYyAiLmc6dGFyX3NocS50YXJmaWxlLmc6dGFyX3NocS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCisgICBleGUgInNpbGVudCByISBiemlwMiAtZCAtYyAiLmc6dGFyX3NocS50YXJmaWxlLmc6dGFyX3NocS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIKICAgZWxzZQotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgJyIudGFyZmlsZS4iJyIpCi0gICBleGUgInNpbGVudCByISAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAnIi50YXJmaWxlLiInIgorIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEpCisgICBleGUgInNpbGVudCByISAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAiLmc6dGFyX3NocS50YXJmaWxlLmc6dGFyX3NocQogICBlbmRpZgogICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKKyAgIHJlZHJhdyEKICAgIGVjaG9obCBXYXJuaW5nTXNnIHwgZWNobyAiKioqd2FybmluZyoqKiAodGFyI0Jyb3dzZSkgcGxlYXNlIGNoZWNrIHlvdXIgZzp0YXJfYnJvd3Nlb3B0aW9uczwiLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIj4iCi0gICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCisiICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogIiAgIGNhbGwgRHJldCgidGFyI0Jyb3dzZSA6IGE6dGFyZmlsZTwiLmE6dGFyZmlsZS4iPiIpCi0gICBzaWxlbnQgJWQKLSAgIGxldCBlaWtlZXA9ICZlaQotICAgc2V0IGVpPUJ1ZlJlYWRDbWQsRmlsZVJlYWRDbWQKLSAgIGV4ZSAiciAiLmE6dGFyZmlsZQotICAgbGV0ICZlaT0gZWlrZWVwCi0gICAxZAogICAgcmV0dXJuCiAgIGVuZGlmCi0gIGlmIGxpbmUoIiQiKSA9PSBjdXJsYXN0IHx8ICggbGluZSgiJCIpID09IChjdXJsYXN0ICsgMSkgJiYgZ2V0bGluZSgiJCIpID1+PyAnXGNcJSh3YXJuaW5nXHxlcnJvclx8aW5hcHByb3ByaWF0ZVx8dW5yZWNvZ25pemVkXCknKQorICBpZiBsaW5lKCIkIikgPT0gY3VybGFzdCB8fCAoIGxpbmUoIiQiKSA9PSAoY3VybGFzdCArIDEpICYmIGdldGxpbmUoIiQiKSA9fiAnXGNcJSh3YXJuaW5nXHxlcnJvclx8aW5hcHByb3ByaWF0ZVx8dW5yZWNvZ25pemVkXCknKQorICAgcmVkcmF3IQogICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKip3YXJuaW5nKioqICh0YXIjQnJvd3NlKSAiLmE6dGFyZmlsZS4iIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgdGFyIGZpbGUiIHwgZWNob2hsIE5vbmUKLSAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKKyIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBzaWxlbnQgJWQKICAgIGxldCBlaWtlZXA9ICZlaQogICAgc2V0IGVpPUJ1ZlJlYWRDbWQsRmlsZVJlYWRDbWQKQEAgLTE5MCwxNCArMTk1LDE0IEBACiAiICBjYWxsIERlY2hvKCJmbmFtZTwiLmZuYW1lLiI+IikKIAogICBpZiB0YXJmaWxlID1+IyAnXC5cKGd6XHx0Z3pcKSQnCi0iICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISBnemlwIC1kIC1jICciLnRhcmZpbGUuIid8IHRhciAtT1B4ZiAtICciLmZuYW1lLiInIikKLSAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgJyIudGFyZmlsZS4iJ3wgdGFyIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAnIi5mbmFtZS4iJyIKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50IHIhIGd6aXAgLWQgLWMgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuInwgIi5nOnRhcl9jbWQuIiAtT1B4ZiAtICciLmZuYW1lLiInIikKKyAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gJyIuZm5hbWUuIiciCiAgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5iejIkJwotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgYnppcDIgLWQgLWMgJyIudGFyZmlsZS4iJ3wgdGFyIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAnIi5mbmFtZS4iJyIpCi0gICBleGUgInNpbGVudCByISBiemlwMiAtZCAtYyAnIi50YXJmaWxlLiInfCB0YXIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICciLmZuYW1lLiInIgorIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgYnppcDIgLWQgLWMgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gJyIuZm5hbWUuIiciKQorICAgZXhlICJzaWxlbnQgciEgYnppcDIgLWQgLWMgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gJyIuZm5hbWUuIiciCiAgIGVsc2UKLSIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50IHIhIHRhciAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iICciLnRhcmZpbGUuIicgJyIuZm5hbWUuIiciKQotICAgZXhlICJzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iICciLnRhcmZpbGUuIicgJyIuZm5hbWUuIiciCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuIiAiLmc6dGFyX3NocS5mbmFtZS5nOnRhcl9zaHEpCisgICBleGUgInNpbGVudCByISAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgIi5nOnRhcl9zaHEudGFyZmlsZS5nOnRhcl9zaHEuIiAiLmc6dGFyX3NocS5mbmFtZS5nOnRhcl9zaHEKICAgZW5kaWYKICAgbGV0IHc6dGFyZmlsZT0gYTpmbmFtZQogICBleGUgImZpbGUgdGFyZmlsZToiLmZuYW1lCkBAIC0yMTksMTUgKzIyNCwxNyBAQAogCiAgICIgc2FuaXR5IGNoZWNrcwogICBpZiAhZXhlY3V0YWJsZShnOnRhcl9jbWQpCisgICByZWRyYXchCiAgICBlY2hvaGwgRXJyb3IgfCBlY2hvICcqKiplcnJvcioqKiAodGFyI0Jyb3dzZSkgIicuZzp0YXJfY21kLiciIG5vdCBhdmFpbGFibGUgb24geW91ciBzeXN0ZW0nCi0gICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCisiICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgbGV0ICZyZXBvcnQ9IHJlcGtlZXAKICIgICBjYWxsIERyZXQoInRhciNXcml0ZSIpCiAgICByZXR1cm4KICAgZW5kaWYKICAgaWYgIWV4aXN0cygiKm1rZGlyIikKKyAgIHJlZHJhdyEKICAgIGVjaG9obCBFcnJvciB8IGVjaG8gIioqKmVycm9yKioqICh0YXIjV3JpdGUpIHNvcnJ5LCBta2RpcigpIGRvZXNuJ3Qgd29yayBvbiB5b3VyIHN5c3RlbSIgfCBlY2hvaGwgTm9uZQotICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQorIiAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgIGxldCAmcmVwb3J0PSByZXBrZWVwCiAiICAgY2FsbCBEcmV0KCJ0YXIjV3JpdGUiKQogICAgcmV0dXJuCkBAIC0yNDYsOCArMjUzLDkgQEAKICAgdHJ5CiAgICBleGUgImNkICIuZXNjYXBlKHRtcGRpciwnIFwnKQogICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTM0NC8KKyAgIHJlZHJhdyEKICAgIGVjaG9obCBFcnJvciB8IGVjaG8gIioqKmVycm9yKioqICh0YXIjV3JpdGUpIGNhbm5vdCBjZCB0byB0ZW1wb3JhcnkgZGlyZWN0b3J5IiB8IEVjaG9obCBOb25lCi0gICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCisiICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgbGV0ICZyZXBvcnQ9IHJlcGtlZXAKICIgICBjYWxsIERyZXQoInRhciNXcml0ZSIpCiAgICByZXR1cm4KQEAgLTI4Miw4ICsyOTAsOSBAQAogICBlbmRpZgogCiAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAorICAgcmVkcmF3IQogICAgZWNob2hsIEVycm9yIHwgZWNobyAiKioqZXJyb3IqKiogKHRhciNXcml0ZSkgc29ycnksIHVuYWJsZSB0byB1cGRhdGUgIi50YXJmaWxlLiIgd2l0aCAiLmZuYW1lIHwgZWNob2hsIE5vbmUKLSAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKKyIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgIGVsc2UKIAogIiAgIGNhbGwgRGVjaG8oInRhcmZpbGU8Ii50YXJmaWxlLiI+IGZuYW1lPCIuZm5hbWUuIj4iKQpAQCAtMzA5LDE2ICszMTgsMTggQEAKICIgICBjYWxsIERlY2hvKCJ0YXIgLS1kZWxldGUgLWYgJyIudGFyZmlsZS4iJyAnIi5mbmFtZS4iJyIpCiAgICBjYWxsIHN5c3RlbSgidGFyIC0tZGVsZXRlIC1mICciLnRhcmZpbGUuIicgJyIuZm5hbWUuIiciKQogICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwCisgICAgcmVkcmF3IQogICAgIGVjaG9obCBFcnJvciB8IGVjaG8gIioqKmVycm9yKioqICh0YXIjV3JpdGUpIHNvcnJ5LCB1bmFibGUgdG8gdXBkYXRlICIudGFyZmlsZS4iIHdpdGggIi5mbmFtZSB8IGVjaG9obCBOb25lCi0gICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQorIiAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBlbHNlCiAgCiAgICAgIiB1cGRhdGUgdGFyZmlsZSB3aXRoIG5ldyBmaWxlIAogIiAgICBjYWxsIERlY2hvKCJ0YXIgLSIuZzp0YXJfd3JpdGVvcHRpb25zLiIgJyIudGFyZmlsZS4iJyAnIi5mbmFtZS4iJyIpCiAgICAgY2FsbCBzeXN0ZW0oInRhciAtIi5nOnRhcl93cml0ZW9wdGlvbnMuIiAnIi50YXJmaWxlLiInICciLmZuYW1lLiInIikKICAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKKyAgICAgcmVkcmF3IQogICAgICBlY2hvaGwgRXJyb3IgfCBlY2hvICIqKiplcnJvcioqKiAodGFyI1dyaXRlKSBzb3JyeSwgdW5hYmxlIHRvIHVwZGF0ZSAiLnRhcmZpbGUuIiB3aXRoICIuZm5hbWUgfCBlY2hvaGwgTm9uZQotICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCisiICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICAgZWxzZWlmIGV4aXN0cygiY29tcHJlc3MiKQogIiAgICAgY2FsbCBEZWNobygiY2FsbCBzeXN0ZW0oIi5jb21wcmVzcy4iKSIpCiAgICAgIGNhbGwgc3lzdGVtKGNvbXByZXNzKQpAQCAtMzc2LDQgKzM4Nyw0IEBACiAiIE1vZGVsaW5lcyBBbmQgUmVzdG9yYXRpb246IHt7ezEKIGxldCAmY3BvPSBzOmtlZXBjcG8KIHVubGV0IHM6a2VlcGNwbwotIiB2aW06dHM9OCBmZG09bWFya2VyCisiICB2aW06dHM9OCBmZG09bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbG9ycy9rb2VobGVyLnZpbSBiL3J1bnRpbWUvY29sb3JzL2tvZWhsZXIudmltCmluZGV4IGNjMGExNzIuLjZhYWEyNDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29sb3JzL2tvZWhsZXIudmltCisrKyBiL3J1bnRpbWUvY29sb3JzL2tvZWhsZXIudmltCkBAIC0yLDcgKzIsNyBAQAogIiB2aW06IHR3PTAgdHM9NCBzdz00CiAiIFZpbSBjb2xvciBmaWxlCiAiIE1haW50YWluZXI6CVJvbiBBYXJvbiA8cm9uQHJvbndhcmUub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBNYXIgMjYKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgRGVjIDEwCiAKIGhpIGNsZWFyCiBzZXQgYmFja2dyb3VuZD1kYXJrCkBAIC0xMywxMSArMTMsMTEgQEAKIGhpIE5vcm1hbAkJICBndWlmZz13aGl0ZSAgZ3VpYmc9YmxhY2sKIGhpIFNjcm9sbGJhcgkgIGd1aWZnPWRhcmtjeWFuIGd1aWJnPWN5YW4KIGhpIE1lbnUJCQkgIGd1aWZnPWJsYWNrIGd1aWJnPWN5YW4KLWhpIFNwZWNpYWxLZXkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya3JlZCAgZ3VpZmc9Qmx1ZQotaGkgTm9uVGV4dAkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya3JlZCAgZ3VpPWJvbGQJZ3VpZmc9Qmx1ZQotaGkgRGlyZWN0b3J5CSAgdGVybT1ib2xkICBjdGVybT1ib2xkICBjdGVybWZnPWJyb3duCWd1aWZnPUJsdWUKLWhpIEVycm9yTXNnCQkgIHRlcm09c3RhbmRvdXQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9Z3JleSAgY3Rlcm1iZz1ibHVlICBndWlmZz1XaGl0ZSAgZ3VpYmc9UmVkCi1oaSBTZWFyY2gJCSAgdGVybT1yZXZlcnNlCWN0ZXJtZmc9d2hpdGUgIGN0ZXJtYmc9cmVkCWd1aWZnPXdoaXRlICBndWliZz1SZWQKK2hpIFNwZWNpYWxLZXkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya3JlZCAgZ3VpZmc9I2NjMDAwMAoraGkgTm9uVGV4dAkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya3JlZCAgZ3VpPWJvbGQgICAgICBndWlmZz0jY2MwMDAwCitoaSBEaXJlY3RvcnkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9YnJvd24gIGd1aWZnPSNjYzgwMDAKK2hpIEVycm9yTXNnCQkgIHRlcm09c3RhbmRvdXQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9Z3JleSAgY3Rlcm1iZz1yZWQgIGd1aWZnPVdoaXRlICBndWliZz1SZWQKK2hpIFNlYXJjaAkJICB0ZXJtPXJldmVyc2UgIGN0ZXJtZmc9d2hpdGUgIGN0ZXJtYmc9cmVkICAgICAgZ3VpZmc9d2hpdGUgIGd1aWJnPVJlZAogaGkgTW9yZU1zZwkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya2dyZWVuCWd1aT1ib2xkICBndWlmZz1TZWFHcmVlbgogaGkgTW9kZU1zZwkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgIGd1aT1ib2xkICBndWlmZz1XaGl0ZQlndWliZz1CbHVlCiBoaSBMaW5lTnIJCSAgdGVybT11bmRlcmxpbmUgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya2N5YW4JZ3VpZmc9WWVsbG93CkBAIC0yNiwyMCArMjYsMjAgQEAKIGhpIFN0YXR1c0xpbmVOQyAgIHRlcm09cmV2ZXJzZQljdGVybWZnPXdoaXRlIGN0ZXJtYmc9bGlnaHRibHVlIGd1aWZnPXdoaXRlIGd1aWJnPWJsdWUKIGhpIFRpdGxlCQkgIHRlcm09Ym9sZCAgY3Rlcm09Ym9sZCAgY3Rlcm1mZz1kYXJrbWFnZW50YSAgZ3VpPWJvbGQJZ3VpZmc9TWFnZW50YQogaGkgVmlzdWFsCQkgIHRlcm09cmV2ZXJzZQljdGVybT1yZXZlcnNlICBndWk9cmV2ZXJzZQotaGkgV2FybmluZ01zZwkgIHRlcm09c3RhbmRvdXQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya2JsdWUgIGd1aWZnPVJlZAoraGkgV2FybmluZ01zZwkgIHRlcm09c3RhbmRvdXQgIGN0ZXJtPWJvbGQgIGN0ZXJtZmc9ZGFya3JlZCBndWlmZz1SZWQKIGhpIEN1cnNvcgkJICBndWlmZz1iZwlndWliZz1HcmVlbgogaGkgQ29tbWVudAkJICB0ZXJtPWJvbGQgIGN0ZXJtPWJvbGQgY3Rlcm1mZz1jeWFuICBndWlmZz0jODBhMGZmCiBoaSBDb25zdGFudAkJICB0ZXJtPXVuZGVybGluZSAgY3Rlcm09Ym9sZCBjdGVybWZnPW1hZ2VudGEgIGd1aWZnPSNmZmEwYTAKIGhpIFNwZWNpYWwJCSAgdGVybT1ib2xkICBjdGVybT1ib2xkIGN0ZXJtZmc9cmVkICBndWlmZz1PcmFuZ2UKIGhpIElkZW50aWZpZXIJICB0ZXJtPXVuZGVybGluZSAgIGN0ZXJtZmc9YnJvd24gIGd1aWZnPSM0MGZmZmYKIGhpIFN0YXRlbWVudAkgIHRlcm09Ym9sZCAgY3Rlcm09Ym9sZCBjdGVybWZnPXllbGxvdwlndWk9Ym9sZCAgZ3VpZmc9I2ZmZmY2MAotaGkgUHJlUHJvYwkJICB0ZXJtPXVuZGVybGluZSAgY3Rlcm1mZz1kYXJrYmx1ZQlndWlmZz0jZmY4MGZmCitoaSBQcmVQcm9jCQkgIHRlcm09dW5kZXJsaW5lICBjdGVybWZnPWRhcmttYWdlbnRhICAgZ3VpZmc9I2ZmODBmZgogaGkgVHlwZQkJCSAgdGVybT11bmRlcmxpbmUgIGN0ZXJtPWJvbGQgY3Rlcm1mZz1saWdodGdyZWVuICBndWk9Ym9sZCAgZ3VpZmc9IzYwZmY2MAogaGkgRXJyb3IJCSAgdGVybT1yZXZlcnNlCWN0ZXJtZmc9ZGFya2N5YW4gIGN0ZXJtYmc9YmxhY2sgIGd1aWZnPVJlZAlndWliZz1CbGFjawogaGkgVG9kbwkJCSAgdGVybT1zdGFuZG91dCAgY3Rlcm1mZz1ibGFjawljdGVybWJnPWRhcmtjeWFuICBndWlmZz1CbHVlICBndWliZz1ZZWxsb3cKLWhpIEN1cnNvckxpbmUJICB0ZXJtPXVuZGVybGluZSAgZ3VpYmc9IzU1NTU1NQotaGkgQ3Vyc29yQ29sdW1uCSAgdGVybT11bmRlcmxpbmUgIGd1aWJnPSM1NTU1NTUKLWhpIE1hdGNoUGFyZW4JICB0ZXJtPXJldmVyc2UgIGd1aWJnPUJsdWUKK2hpIEN1cnNvckxpbmUJICB0ZXJtPXVuZGVybGluZSAgZ3VpYmc9IzU1NTU1NSBjdGVybT11bmRlcmxpbmUKK2hpIEN1cnNvckNvbHVtbgkgIHRlcm09dW5kZXJsaW5lICBndWliZz0jNTU1NTU1IGN0ZXJtPXVuZGVybGluZQoraGkgTWF0Y2hQYXJlbgkgIHRlcm09cmV2ZXJzZSAgY3Rlcm1mZz1ibHVlIGd1aWJnPUJsdWUKIGhpIFRhYkxpbmUJCSAgdGVybT1ib2xkLHJldmVyc2UgIGN0ZXJtPWJvbGQgY3Rlcm1mZz1saWdodGJsdWUgY3Rlcm1iZz13aGl0ZSBndWk9Ym9sZCBndWlmZz1ibHVlIGd1aWJnPXdoaXRlCiBoaSBUYWJMaW5lRmlsbAkgIHRlcm09Ym9sZCxyZXZlcnNlICBjdGVybT1ib2xkIGN0ZXJtZmc9bGlnaHRibHVlIGN0ZXJtYmc9d2hpdGUgZ3VpPWJvbGQgZ3VpZmc9Ymx1ZSBndWliZz13aGl0ZQogaGkgVGFiTGluZVNlbAkgIHRlcm09cmV2ZXJzZQljdGVybWZnPXdoaXRlIGN0ZXJtYmc9bGlnaHRibHVlIGd1aWZnPXdoaXRlIGd1aWJnPWJsdWUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvZGVjYWRhLnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvZGVjYWRhLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjA5ZDM5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9jb21waWxlci9kZWNhZGEudmltCkBAIC0wLDAgKzEsNTQgQEAKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgIERlc2NyaXB0aW9uOiBWaW0gQWRhL0RlYyBBZGEgY29tcGlsZXIgZmlsZQorIiAgICAgTGFuZ3VhZ2U6IEFkYSAoRGVjIEFkYSkKKyIgICAgICAgICAgJElkJAorIiAgICBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNiBNYXJ0aW4gS3Jpc2NoaWsKKyIgICBNYWludGFpbmVyOglNYXJ0aW4gS3Jpc2NoaWsKKyIgICAgICAkQXV0aG9yJAorIiAgICAgICAgJERhdGUkCisiICAgICAgVmVyc2lvbjogNC4yCisiICAgICRSZXZpc2lvbiQKKyIgICAgICRIZWFkVVJMOiBodHRwczovL3N2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2NvbXBpbGVyL2RlY2FkYS52aW0gJAorIiAgICAgIEhpc3Rvcnk6IDIxLjA3LjIwMDYgTUsgTmV3IERlYyBBZGEKKyIgICAgICAgICAgICAgICAxNS4xMC4yMDA2IE1LIEJyYW0ncyBzdWdnZXN0aW9uIGZvciBydW50aW1lIGludGVncmF0aW9uCisiICAgIEhlbHAgUGFnZTogY29tcGlsZXItZGVjYWRhCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lmIChleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQkgICAgJiYKKyAgIFwgY3VycmVudF9jb21waWxlciA9PSAiZGVjYWRhIikgIHx8CisgICBcIHZlcnNpb24gPCA3MDAKKyAgIGZpbmlzaAorZW5kaWYKKworbGV0IGN1cnJlbnRfY29tcGlsZXIgPSAiZGVjYWRhIgorCitpZiAhZXhpc3RzKCJnOmRlY2FkYSIpCisgICBsZXQgZzpkZWNhZGEgPSBkZWNhZGEjTmV3ICgpCitlbmRpZgorCitpZiBleGlzdHMoIjpDb21waWxlclNldCIpICE9IDIKKyAgICIKKyAgICIgcGx1Z2luIGxvYWRlZCBieSBvdGhlciBtZWFucyB0aGVuIHRoZSAiY29tcGlsZXIiIGNvbW1hbmQKKyAgICIKKyAgIGNvbW1hbmQgLW5hcmdzPSogQ29tcGlsZXJTZXQgc2V0bG9jYWwgPGFyZ3M+CitlbmRpZgorCitjYWxsIGc6ZGVjYWRhLlNldF9TZXNzaW9uICgpCisKK2V4ZWN1dGUgIkNvbXBpbGVyU2V0IG1ha2Vwcmc9IiAgICAgLiBlc2NhcGUgKGc6ZGVjYWRhLk1ha2VfQ29tbWFuZCwgJyAnKQorZXhlY3V0ZSAiQ29tcGlsZXJTZXQgZXJyb3Jmb3JtYXQ9IiAuIGVzY2FwZSAoZzpkZWNhZGEuRXJyb3JfRm9ybWF0LCAnICcpCisKK2NhbGwgYWRhI01hcF9NZW51ICgKKyAgXCdEZWMgQWRhLkJ1aWxkJywKKyAgXCc8Rjc+JywKKyAgXCdjYWxsIGRlY2FkYS5NYWtlICgpJykKKworZmluaXNoICIgMX19fQorCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICAgQ29weXJpZ2h0IChDKSAyMDA2ICBNYXJ0aW4gS3Jpc2NoaWsKKyIKKyIgICBWaW0gaXMgQ2hhcml0eXdhcmUgLSBzZWUgIjpoZWxwIGxpY2Vuc2UiIG9yIHVnYW5kYS50eHQgZm9yIGxpY2VuY2UgZGV0YWlscy4KKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgdmltOiB0ZXh0d2lkdGg9Nzggd3JhcCB0YWJzdG9wPTggc2hpZnR3aWR0aD0zIHNvZnR0YWJzdG9wPTMgbm9leHBhbmR0YWIKKyIgdmltOiBmb2xkbWV0aG9kPW1hcmtlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9nbmF0LnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvZ25hdC52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThlOWNlOAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvZ25hdC52aW0KQEAgLTAsMCArMSw3MSBAQAorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiAgRGVzY3JpcHRpb246IFZpbSBBZGEvR05BVCBjb21waWxlciBmaWxlCisiICAgICBMYW5ndWFnZTogQWRhIChHTkFUKQorIiAgICAgICAgICAkSWQkCisiICAgIENvcHlyaWdodDogQ29weXJpZ2h0IChDKSAyMDA2IE1hcnRpbiBLcmlzY2hpaworIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpaworIiAgICAgICRBdXRob3IkCisiICAgICAgICAkRGF0ZSQKKyIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgJFJldmlzaW9uJAorIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vY29tcGlsZXIvZ25hdC52aW0gJAorIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCisiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCisiICAgICAgICAgICAgICAgMTUuMTAuMjAwNiBNSyBCcmFtJ3Mgc3VnZ2VzdGlvbiBmb3IgcnVudGltZSBpbnRlZ3JhdGlvbgorIiAgICBIZWxwIFBhZ2U6IGNvbXBpbGVyLWduYXQKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgKGV4aXN0cygiY3VycmVudF9jb21waWxlciIpCSAgICAmJgorICAgXCBjdXJyZW50X2NvbXBpbGVyID09ICJnbmF0IikgICAgfHwKKyAgIFwgdmVyc2lvbiA8IDcwMAorICAgZmluaXNoCitlbmRpZgorCitsZXQgY3VycmVudF9jb21waWxlciA9ICJnbmF0IgorCitpZiAhZXhpc3RzKCJnOmduYXQiKQorICAgbGV0IGc6Z25hdCA9IGduYXQjTmV3ICgpCisKKyAgIGNhbGwgYWRhI01hcF9NZW51ICgKKyAgICAgIFwgJ0dOQVQuQnVpbGQnLAorICAgICAgXCAnPEY3PicsCisgICAgICBcICdjYWxsIGduYXQuTWFrZSAoKScpCisgICBjYWxsIGFkYSNNYXBfTWVudSAoCisgICAgICBcICdHTkFULlByZXR0eSBQcmludCcsCisgICAgICBcICc6R25hdFByZXR0eScsCisgICAgICBcICdjYWxsIGduYXQuUHJldHR5ICgpJykKKyAgIGNhbGwgYWRhI01hcF9NZW51ICgKKyAgICAgIFwgJ0dOQVQuVGFncycsCisgICAgICBcICc6R25hdFRhZ3MnLAorICAgICAgXCAnY2FsbCBnbmF0LlRhZ3MgKCknKQorICAgY2FsbCBhZGEjTWFwX01lbnUgKAorICAgICAgXCAnR05BVC5GaW5kJywKKyAgICAgIFwgJzpHbmF0RmluZCcsCisgICAgICBcICdjYWxsIGduYXQuRmluZCAoKScpCisgICBjYWxsIGFkYSNNYXBfTWVudSAoCisgICAgICBcICdHTkFULlNldCBQcm9qZWN0ZmlsZVwuXC5cLicsCisgICAgICBcICc6U2V0UHJvamVjdCcsCisgICAgICBcICdjYWxsIGduYXQuU2V0X1Byb2plY3RfRmlsZSAoKScpCitlbmRpZgorCitpZiBleGlzdHMoIjpDb21waWxlclNldCIpICE9IDIKKyAgICIKKyAgICIgcGx1Z2luIGxvYWRlZCBieSBvdGhlciBtZWFucyB0aGVuIHRoZSAiY29tcGlsZXIiIGNvbW1hbmQKKyAgICIKKyAgIGNvbW1hbmQgLW5hcmdzPSogQ29tcGlsZXJTZXQgc2V0bG9jYWwgPGFyZ3M+CitlbmRpZgorCitjYWxsIGc6Z25hdC5TZXRfU2Vzc2lvbiAoKQorCitleGVjdXRlICJDb21waWxlclNldCBtYWtlcHJnPSIgICAgIC4gZXNjYXBlIChnOmduYXQuR2V0X0NvbW1hbmQoJ01ha2UnKSwgJyAnKQorZXhlY3V0ZSAiQ29tcGlsZXJTZXQgZXJyb3Jmb3JtYXQ9IiAuIGVzY2FwZSAoZzpnbmF0LkVycm9yX0Zvcm1hdCwgJyAnKQorCitmaW5pc2ggIiAxfX19CisKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgICBDb3B5cmlnaHQgKEMpIDIwMDYgIE1hcnRpbiBLcmlzY2hpaworIgorIiAgIFZpbSBpcyBDaGFyaXR5d2FyZSAtIHNlZSAiOmhlbHAgbGljZW5zZSIgb3IgdWdhbmRhLnR4dCBmb3IgbGljZW5jZSBkZXRhaWxzLgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiB2aW06IHRleHR3aWR0aD0wIHdyYXAgdGFic3RvcD04IHNoaWZ0d2lkdGg9MyBzb2Z0dGFic3RvcD0zIG5vZXhwYW5kdGFiCisiIHZpbTogZm9sZG1ldGhvZD1tYXJrZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvbWNzLnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvbWNzLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODVkYTdkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9jb21waWxlci9tY3MudmltCkBAIC0wLDAgKzEsMjQgQEAKKyIgVmltIGNvbXBpbGVyIGZpbGUKKyIgQ29tcGlsZXI6ICAgIE1vbm8gQyMgQ29tcGlsZXIKKyIgTWFpbnRhaW5lcjogIEphcmVrIFNvYmllY2tpIDxoYXJpamFyaUBnbzIucGw+CisiIExhdGVzdCBSZXZpc2lvbjogMjAwNi0wNi0xOAorCitpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQorICBmaW5pc2gKK2VuZGlmCitsZXQgY3VycmVudF9jb21waWxlciA9ICJtY3MiCisKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwby09QworCitzZXRsb2NhbCBlcnJvcmZvcm1hdD0KKyAgICAgICAgIFwlRSVmKCVsXFwsJWMpOlwgZXJyb3JcIENTJW46JW0sCisgICAgICAgICBcJVclZiglbFxcLCVjKTpcIHdhcm5pbmdcIENTJW46JW0sCisgICAgICAgICBcJUUlPnN5bnRheFwgZXJyb3JcXCwlbSwlWiVmKCVsXFwsJWMpOlwgZXJyb3JcIENTJW46JW0sCisgICAgICAgICBcJUQlKlxcYVslKlxcZF06XCBFbnRlcmluZ1wgZGlyZWN0b3J5XCBgJWYnLAorICAgICAgICAgXCVYJSpcXGFbJSpcXGRdOlwgTGVhdmluZ1wgZGlyZWN0b3J5XCBgJWYnLAorICAgICAgICAgXCVETWFraW5nXCAlKlxcYVwgaW5cICVmLAorICAgICAgICAgXCVHLSUuJSMKKworbGV0ICZjcG8gPSBzOmNwb19zYXZlCit1bmxldCBzOmNwb19zYXZlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9hZGEudHh0IGIvcnVudGltZS9kb2MvYWRhLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzY3YWUwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvYWRhLnR4dApAQCAtMCwwICsxLDUxNSBAQAorKmFkYS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTm92IDEyCisKKworCQkgICAgQURBIEZJTEUgVFlQRSBQTFVHLUlOUyBSRUZFUkVOQ0UgTUFOVUFMfgorCitBREEJCQkJCQkJCSAgICAgICphZGEudmltKgorCisxLiAgU3ludGF4IEhpZ2hsaWdodGluZwkJCSAgICB8ZnQtYWRhLXN5bnRheHwKKzIuICBQbHVnLWluCQkJCSAgICB8ZnQtYWRhLXBsdWdpbnwKKzMuICBPbW5pIENvbXBsZXRpb24JCQkgICAgfGZ0LWFkYS1vbW5pfAorICAgIDMuMSBPbW5pIENvbXBsZXRpb24gd2l0aCAiZ25hdCB4cmVmIgl8Z25hdC14cmVmfAorICAgIDMuMiBPbW5pIENvbXBsZXRpb24gd2l0aCAiY3RhZ3MiCQl8YWRhLWN0YWdzfAorNC4gIENvbXBpbGVyIFN1cHBvcnQJCQkgICAgfGFkYS1jb21waWxlcnwKKyAgICA0LjEgR05BVAkJCQkJfGNvbXBpbGVyLWduYXR8CisgICAgNC4xIERlYyBBZGEJCQkJCXxjb21waWxlci1kZWNhZGF8Cis1LiAgUmVmZXJlbmNlcwkJCQkgICAgfGFkYS1yZWZlcmVuY2V8CisgICAgNS4xIE9wdGlvbnMJCQkJCXxmdC1hZGEtb3B0aW9uc3wKKyAgICA1LjIgRnVuY3Rpb25zCQkJCXxmdC1hZGEtZnVuY3Rpb25zfAorICAgIDUuMyBDb21tYW5kcwkJCQl8ZnQtYWRhLWNvbW1hbmRzfAorICAgIDUuNCBWYXJpYWJsZXMJCQkJfGZ0LWFkYS12YXJpYWJsZXN8CisgICAgNS41IENvbnN0YW50cwkJCQl8ZnQtYWRhLWNvbnN0YW50c3wKKzguICBFeHRyYSBQbHVnLWlucwkJCSAgICB8YWRhLWV4dHJhLXBsdWdpbnN8CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorMS4gU3ludGF4IEhpZ2hsaWdodGluZyB+CisJCQkJCQkJICAgICAgICpmdC1hZGEtc3ludGF4KgorCitUaGlzIG1vZGUgaXMgZGVzaWduZWQgZm9yIHRoZSAyMDA1IGVkaXRpb24gb2YgQWRhICgiQWRhIDIwMDUiKSwgd2hpY2ggaW5jbHVkZXMKK3N1cHBvcnQgZm9yIG9iamVjdGVkLXByb2dyYW1taW5nLCBwcm90ZWN0ZWQgdHlwZXMsIGFuZCBzbyBvbi4gIEl0IGhhbmRsZXMgY29kZQord3JpdHRlbiBmb3IgdGhlIG9yaWdpbmFsIEFkYSBsYW5ndWFnZSAoIkFkYTgzIiwgIkFkYTg3IiwgIkFkYTk1IikgYXMgd2VsbCwKK3Rob3VnaCBjb2RlIHdoaWNoIHVzZXMgQWRhIDIwMDUtb25seSBrZXl3b3JkcyB3aWxsIGJlIHdyb25nbHkgY29sb3JlZCAoc3VjaAorY29kZSBzaG91bGQgYmUgZml4ZWQgYW55d2F5KS4gIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEFkYSwgc2VlCitodHRwOi8vd3d3LmFkYXBvd2VyLmNvbS4KKworVGhlIEFkYSBtb2RlIGhhbmRsZXMgYSBudW1iZXIgb2Ygc2l0dWF0aW9ucyBjbGVhbmx5LgorCitGb3IgZXhhbXBsZSwgaXQga25vd3MgdGhhdCB0aGUgIi0iIGluICItNSIgaXMgYSBudW1iZXIsIGJ1dCB0aGUgc2FtZSBjaGFyYWN0ZXIKK2luICJBLTUiIGlzIGFuIG9wZXJhdG9yLiAgTm9ybWFsbHksIGEgIndpdGgiIG9yICJ1c2UiIGNsYXVzZSByZWZlcmVuY2luZworYW5vdGhlciBjb21waWxhdGlvbiB1bml0IGlzIGNvbG91cmVkIHRoZSBzYW1lIHdheSBhcyBDJ3MgIiNpbmNsdWRlIiBpcyBjb2xvdXJlZC4KK0lmIHlvdSBoYXZlICJDb25kaXRpb25hbCIgb3IgIlJlcGVhdCIgZ3JvdXBzIGNvbG91cmVkIGRpZmZlcmVudGx5LCB0aGVuICJlbmQKK2lmIiBhbmQgImVuZCBsb29wIiB3aWxsIGJlIGNvbG91cmVkIGFzIHBhcnQgb2YgdGhvc2UgcmVzcGVjdGl2ZSBncm91cHMuCisKK1lvdSBjYW4gc2V0IHRoZXNlIHRvIGRpZmZlcmVudCBjb2xvdXJzIHVzaW5nIHZpbSdzICJoaWdobGlnaHQiIGNvbW1hbmQgKGUuZy4sCit0byBjaGFuZ2UgaG93IGxvb3BzIGFyZSBkaXNwbGF5ZWQsIGVudGVyIHRoZSBjb21tYW5kICI6aGkgUmVwZWF0IiBmb2xsb3dlZCBieQordGhlIGNvbG91ciBzcGVjaWZpY2F0aW9uOyBvbiBzaW1wbGUgdGVybWluYWxzIHRoZSBjb2xvdXIgc3BlY2lmaWNhdGlvbgorY3Rlcm1mZz1XaGl0ZSBvZnRlbiBzaG93cyB3ZWxsKS4KKworVGhlcmUgYXJlIHNldmVyYWwgb3B0aW9ucyB5b3UgY2FuIHNlbGVjdCBpbiB0aGlzIEFkYSBtb2RlLiBTZWV8ZnQtYWRhLW9wdGlvbnN8Citmb3IgYSBjb21wbGV0ZSBsaXN0LgorCitUbyBlbmFibGUgdGhlbSwgYXNzaWduIGEgdmFsdWUgdG8gdGhlIG9wdGlvbi4gIEZvciBleGFtcGxlLCB0byB0dXJuIG9uZSBvbjoKKyA+CisgICAgPiBsZXQgZzphZGFfc3RhbmRhcmRfdHlwZXMgPSAxCis+CitUbyBkaXNhYmxlIHRoZW0gdXNlICI6dW5sZXQiLiAgRXhhbXBsZToKKz4KKyAgICA+IHVubGV0IGc6YWRhX3N0YW5kYXJkX3R5cGVzCisKK1lvdSBjYW4ganVzdCB1c2UgIjoiIGFuZCB0eXBlIHRoZXNlIGludG8gdGhlIGNvbW1hbmQgbGluZSB0byBzZXQgdGhlc2UKK3RlbXBvcmFyaWx5IGJlZm9yZSBsb2FkaW5nIGFuIEFkYSBmaWxlLiAgWW91IGNhbiBtYWtlIHRoZXNlIG9wdGlvbiBzZXR0aW5ncworcGVybWFuZW50IGJ5IGFkZGluZyB0aGUgImxldCIgY29tbWFuZChzKSwgd2l0aG91dCBhIGNvbG9uLCB0byB5b3VyICJ+Ly52aW1yYyIKK2ZpbGUuCisKK0V2ZW4gb24gYSBzbG93ICg5ME1oeikgUEMgdGhpcyBtb2RlIHdvcmtzIHF1aWNrbHksIGJ1dCBpZiB5b3UgZmluZCB0aGUKK3BlcmZvcm1hbmNlIHVuYWNjZXB0YWJsZSwgdHVybiBvbiB8ZzphZGFfd2l0aHVzZV9vcmRpbmFyeXwuCisKK1N5bnRheCBmb2xkaW5nIGluc3RydWN0aW9ucyAofGZvbGQtc3ludGF4fCkgYXJlIGFkZGVkIHdoZW4gfGc6YWRhX2ZvbGRpbmd8IGlzCitzZXQuCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorMi4gRmlsZSB0eXBlIFBsdWctaW4gfgorCQkJCQkgICAgICAgKmZ0LWFkYS1pbmRlbnQqICpmdC1hZGEtcGx1Z2luKgorCitUaGUgQWRhIHBsdWctaW4gcHJvdmlkZXMgc3VwcG9ydCBmb3I6CisKKyAtIGF1dG8gaW5kZW50aW5nCSh8aW5kZW50LnR4dHwpCisgLSBpbnNlcnQgY29tcGxldGlvbgkofGlfQ1RSTC1OfCkKKyAtIHVzZXIgY29tcGxldGlvbgkofGlfQ1RSTC1YX0NUUkwtVXwpCisgLSB0YWcgc2VhcmNoZXMJCSh8dGFnc3JjaC50eHR8KQorIC0gUXVpY2sgRml4CQkofHF1aWNrZml4LnR4dHwpCisgLSBiYWNrc3BhY2UgaGFuZGxpbmcJKHwnYmFja3NwYWNlJ3wpCisgLSBjb21tZW50IGhhbmRsaW5nCSh8J2NvbW1lbnRzJ3wsIHwnY29tbWVudHN0cmluZyd8KQorCitUaGUgcGx1Zy1pbiBvbmx5IGFjdGl2YXRlcyB0aGUgZmVhdHVyZXMgb2YgdGhlIEFkYSBtb2RlIHdoZW5ldmVyIGFuIEFkYQorZmlsZXMgaXMgb3BlbmVkIGFuZCBhZGQgYWRkcyBBZGEgcmVsYXRlZCBlbnRyaWVzIHRvIHRoZSBtYWluIGFuZCBwb3AtdXAgbWVudS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiszLiBPbW5pIENvbXBsZXRpb24gfgorCQkJCQkJCQkgKmZ0LWFkYS1vbW5pKgorCitUaGUgQWRhIG9tbmktY29tcGxldGlvbnMgKHxpX0NUUkwtWF9DVFJMLU98KSB1c2VzIHRhZ3MgZGF0YWJhc2UgY3JlYXRlZCBlaXRoZXIKK2J5ICJnbmF0IHhyZWYgLXYiIG9yIHRoZSAiZXh1YmVyYW50IEN0YWdzIChodHRwOi8vY3RhZ3Muc291cmNlZm9yZ2UubmV0KS4gIFRoZQorY29tcGxldGUgZnVuY3Rpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGRldGVjdCB3aGljaCB0b29sIHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUKK3RhZ3MgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiszLjEgT21uaSBDb21wbGV0aW9uIHdpdGggImduYXQgeHJlZiIgfgorCQkJCQkJCQkgICAqZ25hdC14cmVmKgorCitHTkFUIFhSRUYgdXNlcyB0aGUgY29tcGlsZXIgaW50ZXJuYWwgaW5mb3JtYXRpb25zIChhbGktZmlsZXMpIHRvIHByb2R1Y2UgdGhlCit0YWdzIGZpbGUuIFRoaXMgaGFzIHRoZSBhZHZhbnRhZ2UgdG8gYmUgMTAwJSBjb3JyZWN0IGFuZCB0aGUgb3B0aW9uIG9mIGRlZXAKK25lc3RlZCBhbmFseXNpcy4gSG93ZXZlciB0aGUgY29kZSBtdXN0IGNvbXBpbGUsIHRoZSBnZW5lcmF0b3IgaXMgcXVpdGUKK3Nsb3cgYW5kIHRoZSBjcmVhdGVkIHRhZ3MgZmlsZSBjb250YWlucyBvbmx5IHRoZSBiYXNpYyBDdGFncyBpbmZvcm1hdGlvbnMgZm9yCitlYWNoIGVudHJ5IC0gbm90IGVub3VnaCBmb3Igc29tZSBvZiB0aGUgbW9yZSBhZHZhbmNlZCBWaW0gY29kZSBicm93c2VyCitwbHVnLWlucy4KKworTk9URTogImduYXQgeHJlZiAtdiIgaXMgdmVyeSB0cmlja3kgdG8gdXNlIGFzIGl0IGhhcyBhbG1vc3Qgbm8gZGlhZ25vc3RpYworICAgICAgIG91dHB1dCAtIElmIG5vdGhpbmcgaXMgcHJpbnRlZCB0aGVuIHVzdWFsbHkgdGhlIHBhcmFtZXRlcnMgYXJlIHdyb25nLgorICAgICAgIEhlcmUgc29tZSBpbXBvcnRhbnQgdGlwczoKKworMSkgIFlvdSBuZWVkIHRvIGNvbXBpbGUgeW91ciBjb2RlIGZpcnN0IGFuZCB1c2UgdGhlICItYU8iIG9wdGlvbiB0byBwb2ludCB0bworICAgIHlvdXIgLmFsaSBmaWxlcy4KKzIpICAiZ25hdCB4cmVmIC12IC4uL0luY2x1ZGUvYWRhY2wuYWRzIiB3b24ndCB3b3JrIC0gdXNlICB0aGUgImduYXQgeHJlZiAtdgorICAgIC1hSS4uL0luY2x1ZGUgYWRhY2wuYWRzIiBpbnN0ZWFkLgorMykgICJnbmF0IHhyZWYgLXYgLWFJLi4vSW5jbHVkZSAqLmFkPyIgd29uJ3Qgd29yayAtIHVzZSAiY2QgLi4vSW5jbHVkZSIgYW5kCisgICAgdGhlbiAiZ25hdCB4cmVmIC12ICouYWQ/IgorNCkgIFByb2plY3QgbWFuYWdlciBzdXBwb3J0IGlzIGNvbXBsZXRlbHkgYnJva2VuIC0gZG9uJ3QgZXZlbiB0cnkgImduYXQgeHJlZgorICAgIC1QYWRhY2wuZ3ByIi4KKzUpICBWSU0gaXMgZmFzdGVyIHdoZW4gdGhlIHRhZ3MgZmlsZSBpcyBzb3J0ZWQgLSB1c2UgInNvcnQgLS11bmlxdWUKKyAgICAtLWlnbm9yZS1jYXNlIC0tb3V0cHV0PXRhZ3MgdGFncyIgLgorNikgIFJlbWVtYmVyIHRvIGluc2VydCAiIV9UQUdfRklMRV9TT1JURUQgMiAlc29ydCB1aSIgYXMgZmlyc3QgbGluZSB0byBtYXJrCisgICAgdGhlIGZpbGUgYXNzb3J0ZWQuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMy4yIE9tbmkgQ29tcGxldGlvbiB3aXRoICJjdGFncyJ+CisJCQkJCQkJCSAgICphZGEtY3RhZ3MqCisKK0V4dWJlcmFudCBDdGFncyB1c2VzIGl0J3Mgb3duIG11bHRpLWxhbmd1YWdlIGNvZGUgcGFyc2VyLiBUaGUgcGFyc2VyIGlzIHF1aXRlCitmYXN0LCBwcm9kdWNlcyBhIGxvdCBvZiBleHRyYSBpbmZvcm1hdGlvbnMgKGhlbmNlIHRoZSBuYW1lICJFeHViZXJhbnQgQ3RhZ3MiKQorYW5kIGNhbiBydW4gb24gZmlsZXMgd2hpY2ggY3VycmVudGx5IGRvIG5vdCBjb21waWxlLgorCitUaGVyZSBhcmUgYWxzbyBsb3RzIG9mIG90aGVyIFZpbS10b29scyB3aGljaCB1c2UgZXh1YmVyYW50IEN0YWdzLgorCitZb3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgYSB2ZXJzaW9uIG9mIHRoZSBFeHViZXJhbnQgQ3RhZ3Mgd2hpY2ggaGFzIEFkYQorc3VwcG9ydCBwYXRjaGVkIGluLiBTdWNoIGEgdmVyc2lvbiBpcyBhdmFpbGFibGUgZnJvbSB0aGUgR05VIEFkYSBQcm9qZWN0CisoaHR0cDovL2dudWFkYS5zb3VyY2Vmb3JnZS5uZXQpLgorCitUaGUgQWRhIHBhcnNlciBmb3IgRXh1YmVyYW50IEN0YWdzIGlzIGZhaXJseSBuZXcgLSBkb24ndCBleHBlY3QgY29tcGxldGUKK3N1cHBvcnQgeWV0LgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzQuICBDb21waWxlciBTdXBwb3J0IH4KKwkJCQkJCQkJKmFkYS1jb21waWxlcioKKworVGhlIEFkYSBtb2RlIHN1cHBvcnRzIG1vcmUgdGhlbiBvbmUgQWRhIGNvbXBpbGVyIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgbG9hZCB0aGUKK2NvbXBpbGVyIHNldCBpbnxnOmFkYV9kZWZhdWx0X2NvbXBpbGVyfHdoZW5ldmVyIGFuIEFkYSBzb3VyY2UgaXMgb3BlbmVkLiBUaGUKK3Byb3ZpZGVkIGNvbXBpbGVyIHBsdWctaW5zIGFyZSBzcGxpdCBpbnRvIHRoZSBhY3R1YWwgY29tcGlsZXIgcGx1Zy1pbiBhbmQgYQorY29sbGVjdGlvbiBvZiBzdXBwb3J0IGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLiBUaGlzIGFsbG93cyB0aGUgZWFzeQorZGV2ZWxvcG1lbnQgb2Ygc3BlY2lhbGl6ZWQgY29tcGlsZXIgcGx1Zy1pbnMgZmluZSB0dW5lZCB0byB5b3VyIGRldmVsb3BtZW50CitlbnZpcm9ubWVudC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis0LjEgR05BVCB+CisJCQkJCQkJICAgICAgICpjb21waWxlci1nbmF0KgorCitHTkFUIGlzIHRoZSBvbmx5IGZyZWUgKGJlZXIgYW5kIHNwZWVjaCkgQWRhIGNvbXBpbGVyIGF2YWlsYWJsZS4gVGhlcmUgYXJlCitzZXZlcmFsIHZlcnNpb24gYXZhaWxhYmxlIHdoaWNoIGRpZmZlcmVudGlhdGUgaW4gdGhlIGxpY2VuY2UgdGVybXMgdXNlZC4KKworVGhlIEdOQVQgY29tcGlsZXIgcGx1Zy1pbiB3aWxsIHBlcmZvcm0gYSBjb21waWxlIG9uIHByZXNzaW5nIDxGNz4gYW5kIHRoZW4KK2ltbWVkaWF0ZWx5IHNob3dzIHRoZSByZXN1bHQuIFlvdSBjYW4gc2V0IHRoZSBwcm9qZWN0IGZpbGUgdG8gYmUgdXNlZCBieQorc2V0dGluZzoKKyA+CisgPiBjYWxsIGc6Z25hdC5TZXRfUHJvamVjdF9GaWxlICgnbXlfcHJvamVjdC5ncHInKQorCitTZXR0aW5nIGEgcHJvamVjdCBmaWxlIHdpbGwgYWxzbyBjcmVhdGUgYSBWaW0gc2Vzc2lvbiAofHZpZXdzLXNlc3Npb25zfCkgc28gLQorbGlrZSB3aXRoIHRoZSBHUFMgLSBvcGVuZWQgZmlsZXMsIHdpbmRvdyBwb3NpdGlvbnMgZXRjLiB3aWxsIHJlbWVtYmVyZWQKK3NlcGFyYXRlbHkgZm9yIGFsbCBwcm9qZWN0cy4KKworCQkJCQkJCQkqZ25hdF9tZW1iZXJzKgorR05BVCBPQkpFQ1QgfgorCisJCQkJCQkJICAgICAgICpnOmduYXQuTWFrZSgpKgorZzpnbmF0Lk1ha2UoKQorCQlDYWxsc3xnOmduYXQuTWFrZV9Db21tYW5kfGFuZCBkaXNwbGF5cyB0aGUgcmVzdWx0IGluc2lkZSBhCisgICAgICAgICAgICAgICB8cXVpY2tmaXh8IHdpbmRvdy4KKworCQkJCQkJCSAgICAgKmc6Z25hdC5QcmV0dHkoKSoKK2c6Z25hdC5QcmV0dHkoKQorCQlDYWxsc3xnOmduYXQuUHJldHR5X0NvbW1hbmR8CisKKwkJCQkJCQkgICAgICAgKmc6Z25hdC5GaW5kKCkqCitnOmduYXQuRmluZCgpCisJCUNhbGxzfGc6Z25hdC5GaW5kX0NvbW1hbmR8CisKKwkJCQkJCQkgICAgICAgKmc6Z25hdC5UYWdzKCkqCitnOmduYXQuVGFncygpCisJCUNhbGxzfGc6Z25hdC5UYWdzX0NvbW1hbmR8CisKKwkJCQkJCSAgICpnOmduYXQuU2V0X1Byb2plY3RfRmlsZSgpKgorZzpnbmF0LlNldF9Qcm9qZWN0X0ZpbGUoW3tmaWxlfV0pCisJCVNldCBnbmF0IHByb2plY3QgZmlsZSBhbmQgbG9hZCBhc3NvY2lhdGVkIHNlc3Npb24uICBBbiBvcGVuCisJCXByb2plY3Qgd2lsbCBiZSBjbG9zZWQgYW5kIHRoZSBzZXNzaW9uIHdyaXR0ZW4uICBJZiBjYWxsZWQKKwkJd2l0aG91dCBmaWxlIG5hbWUgdGhlIGZpbGUgc2VsZWN0b3Igb3BlbnMgZm9yIHNlbGVjdGlvbiBvZiBhCisJCXByb2plY3QgZmlsZS4gSWYgY2FsbGVkIHdpdGggYW4gZW1wdHkgc3RyaW5nIHRoZW4gdGhlIHByb2plY3QKKwkJYW5kIGFzc29jaWF0ZWQgc2Vzc2lvbiBhcmUgY2xvc2VkLgorCisJCQkJCQkJICpnOmduYXQuUHJvamVjdF9GaWxlKgorZzpnbmF0LlByb2plY3RfRmlsZQlzdHJpbmcKKwkJQ3VycmVudCBwcm9qZWN0IGZpbGUuCisKKwkJCQkJCQkgKmc6Z25hdC5NYWtlX0NvbW1hbmQqCitnOmduYXQuTWFrZV9Db21tYW5kCXN0cmluZworCQlFeHRlcm5hbCBjb21tYW5kIHVzZWQgZm9yfGc6Z25hdC5NYWtlKCl8ICh8J21ha2VwcmcnfCkuCisKKwkJCQkJCSAgICAgICAqZzpnbmF0LlByZXR0eV9Qcm9ncmFtKgorZzpnbmF0LlByZXR0eV9Qcm9ncmFtCXN0cmluZworCQlFeHRlcm5hbCBjb21tYW5kIHVzZWQgZm9yfGc6Z25hdC5QcmV0dHkoKXwKKworCQkJCQkJCSAqZzpnbmF0LkZpbmRfUHJvZ3JhbSoKK2c6Z25hdC5GaW5kX1Byb2dyYW0Jc3RyaW5nCisJCUV4dGVybmFsIGNvbW1hbmQgdXNlZCBmb3J8ZzpnbmF0LkZpbmQoKXwKKworCQkJCQkJCSAqZzpnbmF0LlRhZ3NfQ29tbWFuZCoKK2c6Z25hdC5UYWdzX0NvbW1hbmQJc3RyaW5nCisJCUV4dGVybmFsIGNvbW1hbmQgdXNlZCBmb3J8ZzpnbmF0LlRhZ3MoKXwKKworCQkJCQkJCSAqZzpnbmF0LkVycm9yX0Zvcm1hdCoKK2c6Z25hdC5FcnJvcl9Gb3JtYXQJc3RyaW5nCisJCUVycm9yIGZvcm1hdCAofCdlcnJvcmZvcm1hdCd8KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzQuMiBEZWMgQWRhIH4KKwkJCQkJICAgICpjb21waWxlci1ocGFkYSogKmNvbXBpbGVyLWRlY2FkYSoKKwkJCQkJKmNvbXBpbGVyLXZheGFkYSogKmNvbXBpbGVyLWNvbXBhcWFkYSoKKworRGVjIEFkYSAoYWxzbyBrbm93biBieSAtIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIgLSBWQVggQWRhLCBEZWMgQWRhLCBDb21wYXEgQWRhCithbmQgSFAgQWRhKSBpcyBhIGZhaXJseSBkYXRlZCBBZGEgODMgY29tcGlsZXIuIFN1cHBvcnQgaXMgYmFzaWM6IDxGNz4gd2lsbAorY29tcGlsZSB0aGUgY3VycmVudCB1bml0LgorCitUaGUgRGVjIEFkYSBjb21waWxlciBleHBlY3RzIHRoZSBwYWNrYWdlIG5hbWUgYW5kIG5vdCB0aGUgZmlsZSBuYW1lIHRvIGJlCitwYXNzZWQgYSBwYXJhbWV0ZXIuIFRoZSBjb21waWxlciBwbHVnLWluIHN1cHBvcnRzIHRoZSB1c3VhbCBmaWxlIG5hbWUKK2NvbnZlbnRpb24gdG8gY29udmVydCB0aGUgZmlsZSBpbnRvIGEgdW5pdCBuYW1lLiBGb3Igc2VwYXJhdGVzIGJvdGggJy0nIGFuZAorJ19fJyBhcmUgYWxsb3dlZC4KKworCQkJCQkJCSAgICAgICpkZWNhZGFfbWVtYmVycyoKK0RFQyBBREEgT0JKRUNUIH4KKworCQkJCQkJCSAgICAgKmc6ZGVjYWRhLk1ha2UoKSoKK2c6ZGVjYWRhLk1ha2UoKQkJZnVuY3Rpb24KKwkJQ2FsbHN8ZzpkZWNhZGEuTWFrZV9Db21tYW5kfGFuZCBkaXNwbGF5cyB0aGUgcmVzdWx0IGluc2lkZSBhCisgICAgICAgICAgICAgICB8cXVpY2tmaXh8IHdpbmRvdy4KKworCQkJCQkJCSpnOmRlY2FkYS5Vbml0X05hbWUoKSoKK2c6ZGVjYWRhLlVuaXRfTmFtZSgpCWZ1bmN0aW9uCisJCUdldCB0aGUgVW5pdCBuYW1lIGZvciB0aGUgY3VycmVudCBmaWxlLgorCisJCQkJCQkgICAgICAgKmc6ZGVjYWRhLk1ha2VfQ29tbWFuZCoKK2c6ZGVjYWRhLk1ha2VfQ29tbWFuZAlzdHJpbmcKKwkJRXh0ZXJuYWwgY29tbWFuZCB1c2VkIGZvcnxnOmRlY2FkYXQuTWFrZSgpfCAofCdtYWtlcHJnJ3wpLgorCisJCQkJCQkgICAgICAgKmc6ZGVjYWRhLkVycm9yX0Zvcm1hdCoKK2c6ZGVjYWRhLkVycm9yX0Zvcm1hdHwJc3RyaW5nCisJCUVycm9yIGZvcm1hdCAofCdlcnJvcmZvcm1hdCd8KS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis1LiBSZWZlcmVuY2VzIH4KKwkJCQkJCQkgICAgICAgKmFkYS1yZWZlcmVuY2UqCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNS4xIE9wdGlvbnMgfgorCQkJCQkJCSAgICAgICpmdC1hZGEtb3B0aW9ucyoKKworCQkJCQkJCSpnOmFkYV9zdGFuZGFyZF90eXBlcyoKK2c6YWRhX3N0YW5kYXJkX3R5cGVzCWJvb2wgKHRydWUgd2hlbiBleGlzdHMpCisJCUhpZ2hsaWdodCB0eXBlcyBpbiBwYWNrYWdlIFN0YW5kYXJkIChlLmcuLCAiRmxvYXQiKQorCisJCQkJCQkJICAqZzphZGFfc3BhY2VfZXJyb3JzKgorCQkJCQkJICAqZzphZGFfbm9fdHJhaWxfc3BhY2VfZXJyb3IqCisJCQkJCQkgICAgKmc6YWRhX25vX3RhYl9zcGFjZV9lcnJvcioKKwkJCQkJCQkgKmc6YWRhX2FsbF90YWJfdXNhZ2UqCitnOmFkYV9zcGFjZV9lcnJvcnMJIGJvb2wgKHRydWUgd2hlbiBleGlzdHMpCisJCUhpZ2hsaWdodCBleHRyYW5lb3VzIGVycm9ycyBpbiBzcGFjZXMgLi4uCisJCWc6YWRhX25vX3RyYWlsX3NwYWNlX2Vycm9yCisJCSAgICAtIGJ1dCBpZ25vcmUgdHJhaWxpbmcgc3BhY2VzIGF0IHRoZSBlbmQgb2YgYSBsaW5lCisJCWc6YWRhX25vX3RhYl9zcGFjZV9lcnJvcgorCQkgICAgLSBidXQgaWdub3JlIHRhYnMgYWZ0ZXIgc3BhY2VzCisJCWc6YWRhX2FsbF90YWJfdXNhZ2UKKwkJICAgIC0gaGlnaGxpZ2h0IGFsbCB0YWIgdXNlCisKKwkJCQkJCQkgICAqZzphZGFfbGluZV9lcnJvcnMqCitnOmFkYV9saW5lX2Vycm9ycwkgIGJvb2wgKHRydWUgd2hlbiBleGlzdHMpCisJCUhpZ2hsaWdodCBsaW5lcyB3aGljaCBhcmUgdG8gbG9uZy4gTm90ZTogVGhpcyBoaWdobGlnaHRpbmcKKwkJb3B0aW9uIGlzIHF1aXRlIENQVSBpbnRlbnNpdmUuCisKKwkJCQkJCQkgKmc6YWRhX3JhaW5ib3dfY29sb3IqCitnOmFkYV9yYWluYm93X2NvbG9yCSAgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJVXNlIHJhaW5ib3cgY29sb3VycyBmb3IgJygnIGFuZCAnKScuIFlvdSBuZWVkIHRoZQorCQlyYWluYm93X3BhcmVudGhlc2lzIGZvciB0aGlzIHRvIHdvcmsKKworCQkJCQkJCSAgICAgICAqZzphZGFfZm9sZGluZyoKK2c6YWRhX2ZvbGRpbmcJCSAgc2V0ICgnc2lncGZ0JykKKwkJVXNlIGZvbGRpbmcgZm9yIEFkYSBzb3VyY2VzLgorCQkgICAgJ3MnOiAgICBhY3RpdmF0ZSBzeW50YXggZm9sZGluZyBvbiBsb2FkCisJCQkncCc6ICAgIGZvbGQgcGFja2FnZXMKKwkJCSdmJzogICAgZm9sZCBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMKKwkJCSd0JzogICAgZm9sZCB0eXBlcworCQkJJ2MnOiAgICBmb2xkIGNvbmRpdGlvbmFscworCQkgICAgJ2cnOiAgICBhY3RpdmF0ZSBnbmF0IHByZXR0eSBwcmludCBmb2xkaW5nIG9uIGxvYWQKKwkJCSdpJzogICAgbG9uZSAnaXMnIGZvbGRlZCB3aXRoIGxpbmUgYWJvdmUKKwkJCSdiJzoJbG9uZSAnYmVnaW4nIGZvbGRlZCB3aXRoIGxpbmUgYWJvdmUKKwkJCSdwJzoJbG9uZSAncHJpdmF0ZScgZm9sZGVkIHdpdGggbGluZSBhYm92ZQorCQkJJ3gnOglsb25lICdleGNlcHRpb24nIGZvbGRlZCB3aXRoIGxpbmUgYWJvdmUKKwkJICAgICdpJzogICAgYWN0aXZhdGUgaW5kZW50IGZvbGRpbmcgb24gbG9hZAorCisJCU5vdGU6IFN5bnRheCBmb2xkaW5nIGlzIGluIGFuIGVhcmx5ICh1bnVzZWFibGUpIHN0YWdlIGFuZAorCQkgICAgICBpbmRlbnQgb3IgZ25hdCBwcmV0dHkgZm9sZGluZyBpcyBzdWdnZXN0ZWQuCisKKwkJRm9yIGduYXQgcHJldHR5IGZvbGRpbmcgdG8gd29yayB0aGUgZm9sbG93aW5nIHNldHRpbmdzIGFyZQorCQlzdWdnZXN0ZWQ6IC1jbDMgLU03OSAtYzIgLWMzIC1jNCAtQTEgLUEyIC1BMyAtQTQgLUE1CisKKwkJRm9yIGluZGVudCBmb2xkaW5nIHRvIHdvcmsgdGhlIGZvbGxvd2luZyBzZXR0aW5ncyBhcmUKKwkJc3VnZ2VzdGVkOiBzaGlmdHdpZHRoPTMgc29mdHRhYnN0b3A9MworCisJCQkJCQkJCSpnOmFkYV9hYmJyZXYqCitnOmFkYV9hYmJyZXYJCSAgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJQWRkIHNvbWUgYWJicmV2aWF0aW9ucy4gVGhpcyBmZWF0dXJlIG1vcmUgb3IgbGVzcyBzdXBlcnNlZGVkCisJCWJ5IHRoZSB2YXJpb3VzIGNvbXBsZXRpb24gbWV0aG9kcy4KKworCQkJCQkJICAgICAgKmc6YWRhX3dpdGh1c2Vfb3JkaW5hcnkqCitnOmFkYV93aXRodXNlX29yZGluYXJ5CSAgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJU2hvdyAid2l0aCIgYW5kICJ1c2UiIGFzIG9yZGluYXJ5IGtleXdvcmRzICh3aGVuIHVzZWQgdG8KKwkJcmVmZXJlbmNlIG90aGVyIGNvbXBpbGF0aW9uIHVuaXRzIHRoZXkncmUgbm9ybWFsbHkgaGlnaGxpZ2h0ZWQKKwkJc3BlY2lhbGx5KS4KKworCQkJCQkJCSAqZzphZGFfYmVnaW5fcHJlcHJvYyoKK2c6YWRhX2JlZ2luX3ByZXByb2MJICBib29sICh0cnVlIHdoZW4gZXhpc3RzKQorCQlTaG93IGFsbCBiZWdpbi1saWtlIGtleXdvcmRzIHVzaW5nIHRoZSBjb2xvdXJpbmcgb2YgQworCQlwcmVwcm9jZXNzb3IgY29tbWFuZHMuCisKKwkJCQkJCSAgICAqZzphZGFfb21uaV93aXRoX2tleXdvcmRzKgorZzphZGFfb21uaV93aXRoX2tleXdvcmRzCisJCUFkZCBLZXl3b3JkcywgUHJhZ21hcywgQXR0cmlidXRlcyB0byBvbW5pLWNvbXBsZXRpb25zCisJCSh8Y29tcGwtb21uaXwpLiBOb3RlOiBZb3UgY2FuIGFsd2F5cyBjb21wbGV0ZSB0aGVuIHdpdGggdXNlcgorCQljb21wbGV0aW9uICh8aV9DVFJMLVhfQ1RSTC1VfCkuCisKKwkJCQkJCSAgICAgICpnOmFkYV9leHRlbmRlZF90YWdnaW5nKgorZzphZGFfZXh0ZW5kZWRfdGFnZ2luZwkgIGVudW0gKCdqdW1wJywgJ2xpc3QnKQorCQl1c2UgZXh0ZW5kZWQgdGFnZ2luZywgdHdvIG9wdGlvbnMgYXJlIGF2YWlsYWJsZQorCQkgICAgJ2p1bXAnOiB1c2UgdGp1bXAgdG8ganVtcC4KKwkJICAgICdsaXN0JzogYWRkIHRhZ3MgcXVpY2sgZml4IGxpc3QuCisJCU5vcm1hbCB0YWdnaW5nIGRvZXMgbm90IHN1cHBvcnQgZnVuY3Rpb24gb3Igb3BlcmF0b3IKKwkJb3ZlcmxvYWRpbmcgYXMgdGhlc2UgZmVhdHVyZXMgYXJlIG5vdCBhdmFpbGFibGUgaW4gQyBhbmQKKwkJdGFnZ2luZyB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgZm9yIEMuCisKKwkJCQkJCSAgICpnOmFkYV9leHRlbmRlZF9jb21wbGV0aW9uKgorZzphZGFfZXh0ZW5kZWRfY29tcGxldGlvbgorCQlVc2VzIGV4dGVuZGVkIGNvbXBsZXRpb24gZm9yIDxDLU4+IGFuZCA8Qy1SPiBjb21wbGV0aW9ucworCQkofGlfQ1RSTC1OfCkuIEluIHRoaXMgbW9kZSB0aGUgJy4nIGlzIHVzZWQgYXMgcGFydCBvZiB0aGUKKwkJaWRlbnRpZmllciBzbyB0aGF0ICdPYmplY3QuTWV0aG9kJyBvciAnUGFja2FnZS5Qcm9jZWR1cmUnIGFyZQorCQljb21wbGV0ZWQgdG9nZXRoZXIuCisKKwkJCQkJCSAgICAgICAqZzphZGFfZ25hdF9leHRlbnNpb25zKgorZzphZGFfZ25hdF9leHRlbnNpb25zCSAgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJIFN1cHBvcnQgR05BVCBleHRlbnNpb25zLgorCisJCQkJCSAgICAgICAqZzphZGFfd2l0aF9nbmF0X3Byb2plY3RfZmlsZXMqCitnOmFkYV93aXRoX2duYXRfcHJvamVjdF9maWxlcwkgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJIEFkZCBnbmF0IHByb2plY3QgZmlsZSBrZXl3b3JkcyBhbmQgQXR0cmlidXRlcy4KKworCQkJCQkJICAgICAgKmc6YWRhX2RlZmF1bHRfY29tcGlsZXIqCitnOmFkYV9kZWZhdWx0X2NvbXBpbGVyCSAgc3RyaW5nCisJCXNldCBkZWZhdWx0IGNvbXBpbGVyLiBDdXJyZW50bHkgc3VwcG9ydGVkIGlzICdnbmF0JyBhbmQKKwkJJ2RlY2FkYScuCisKK0FuICJleGlzdHMiIHR5cGUgaXMgYSBib29sZWFuIGlzIGNvbnNpZGVyZWQgdHJ1ZSB3aGVuIHRoZSB2YXJpYWJsZSBpcyBkZWZpbmVkCithbmQgZmFsc2Ugd2hlbiB0aGUgdmFyaWFibGUgaXMgdW5kZWZpbmVkLiBUaGUgdmFsdWUgd2hpY2ggdGhlIHZhcmlhYmxlIGlzCitzZXQgbWFrZXMgbm8gZGlmZmVyZW5jZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis1LjMgQ29tbWFuZHMgfgorCQkJCQkJCSAgICAgKmZ0LWFkYS1jb21tYW5kcyoKKworOkFkYVJhaW5ib3cJCQkJCQkJICo6QWRhUmFpbmJvdyoKKwkJVG9nZ2xlcyByYWluYm93IGNvbG91ciAofGc6YWRhX3JhaW5ib3dfY29sb3J8KSBtb2RlIGZvcgorCQknKCcgYW5kICcpJworCis6QWRhTGluZXMJCQkJCQkJICAgKjpBZGFMaW5lcyoKKwkJVG9nZ2xlcyBsaW5lIGVycm9yICh8ZzphZGFfbGluZV9lcnJvcnN8KSBkaXNwbGF5CisKKzpBZGFTcGFjZXMJCQkJCQkJICAqOkFkYVNwYWNlcyoKKwkJVG9nZ2xlcyBzcGFjZSBlcnJvciAofGc6YWRhX3NwYWNlX2Vycm9yc3wpIGRpc3BsYXkuCisKKzpBZGFUYWdEaXIJCQkJCQkJICAqOkFkYVRhZ0RpcioKKwkJQ3JlYXRlcyB0YWdzIGZpbGUgZm9yIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgZmlsZS4KKworOkFkYVRhZ0ZpbGUJCQkJCQkJICo6QWRhVGFnRmlsZSoKKwkJQ3JlYXRlcyB0YWdzIGZpbGUgZm9yIHRoZSBjdXJyZW50IGZpbGUuCisKKzpBZGFUeXBlcwkJCQkJCQkgICAqOkFkYVR5cGVzKgorCQlUb2dnbGVzIHN0YW5kYXJkIHR5cGVzICh8ZzphZGFfc3RhbmRhcmRfdHlwZXN8KSBjb2xvdXIuCisKKzpHbmF0RmluZAkJCQkJCQkgICAqOkduYXRGaW5kKgorCQlDYWxscyB8ZzpnbmF0LkZpbmQoKXwKKworOkduYXRQcmV0dHkJCQkJCQkJICo6R25hdFByZXR0eSoKKwkJQ2FsbHMgfGc6Z25hdC5QcmV0dHkoKXwKKworOkduYXRUYWdzCQkJCQkJCSAgICo6R25hdFRhZ3MqCisJCUNhbGxzIHxnOmduYXQuVGFncygpfAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzUuMyBWYXJpYWJsZXMgfgorCQkJCQkJCSAgICAqZnQtYWRhLXZhcmlhYmxlcyoKKworCQkJCQkJCQkgICAgICAqZzpnbmF0KgorZzpnbmF0CQkJICAgIG9iamVjdAorCQlDb250cm9sIG9iamVjdCB3aGljaCBtYW5hZ2VzIEdOQVQgY29tcGlsZXMuICBUaGUgb2JqZWN0CisJCWlzIGNyZWF0ZWQgd2hlbiB0aGUgZmlyc3QgQWRhIHNvdXJjZSBjb2RlIGlzIGxvYWRlZCBwcm92aWRlZAorCQl0aGF0IHxnOmFkYV9kZWZhdWx0X2NvbXBpbGVyfGlzIHNldCB0byAnZ25hdCcuIFNlZXxnbmF0X21lbWJlcnN8CisJCWZvciBkZXRhaWxzLgorCisJCQkJCQkJCSAgICAqZzpkZWNhZGEqCitnOmRlY2FkYQkJICAgICAgb2JqZWN0CisJCUNvbnRyb2wgb2JqZWN0IHdoaWNoIG1hbmFnZXMgRGVjIEFkYSBjb21waWxlcy4JVGhlIG9iamVjdAorCQlpcyBjcmVhdGVkIHdoZW4gdGhlIGZpcnN0IEFkYSBzb3VyY2UgY29kZSBpcyBsb2FkZWQgcHJvdmlkZWQKKwkJdGhhdCB8ZzphZGFfZGVmYXVsdF9jb21waWxlcnxpcyBzZXQgdG8gJ2RlY2FkYScuIFNlZQorCSAgICAgICB8ZGVjYWRhX21lbWJlcnN8Zm9yIGRldGFpbHMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNS40IENvbnN0YW50cyB+CisJCQkJCQkJICAgICpmdC1hZGEtY29uc3RhbnRzKgorCitBbGwgY29uc3RhbnRzIGFyZSBsb2NrZWQuIFNlZSB8OmxvY2t2YXJ8IGZvciBkZXRhaWxzLgorCisJCQkJCQkJICAgICAqZzphZGEjV29yZFJlZ2V4KgorZzphZGEjV29yZFJlZ2V4CQlzdHJpbmcKKwkJUmVndWxhciBleHByZXNzaW9uIHRvIHNlYXJjaCBmb3IgQWRhIHdvcmRzCisKKwkJCQkJCQkgICpnOmFkYSNEb3RXb3JkUmVnZXgqCitnOmFkYSNEb3RXb3JkUmVnZXgJc3RyaW5nCisJCVJlZ3VsYXIgZXhwcmVzc2lvbiB0byBzZWFyY2ggZm9yIEFkYSB3b3JkcyBzZXBhcmF0ZWQgYnkgZG90cy4KKworCQkJCQkJCSAgICAgICAqZzphZGEjQ29tbWVudCoKK2c6YWRhI0NvbW1lbnQJCXN0cmluZworCQlSZWd1bGFyIGV4cHJlc3Npb24gdG8gc2VhcmNoIGZvciBBZGEgY29tbWVudHMKKworCQkJCQkJCSAgICAgICpnOmFkYSNLZXl3b3JkcyoKK2c6YWRhI0tleXdvcmRzCQlsaXN0IG9mIGRpY3Rpb25hcmllcworCQlMaXN0IG9mIGtleXdvcmRzLCBhdHRyaWJ1dGVzIGV0Yy4gcHAuIGluIHRoZSBmb3JtYXQgdXNlZCBieQorCQlvbW5pIGNvbXBsZXRpb24uIFNlZSB8Y29tcGxldGUtaXRlbXN8IGZvciBkZXRhaWxzLgorCisJCQkJCQkJICAgKmc6YWRhI0N0YWdzX0tpbmRzKgorZzphZGEjQ3RhZ3NfS2luZHMJZGljdGlvbmFyeSBvZiBsaXN0cworCQlEaWN0aW9uYXJ5IG9mIHRoZSB2YXJpb3VzIGtpbmRzIG9mIGl0ZW1zIHdoaWNoIHRoZSBBZGEgc3VwcG9ydAorCQlmb3IgQ3RhZ3MgZ2VuZXJhdGVzLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzUuMiBGdW5jdGlvbnMgfgorCQkJCQkJCSAgICAqZnQtYWRhLWZ1bmN0aW9ucyoKKworYWRhI1dvcmQoW3tsaW5lfSwge2NvbH1dKQkJCQkJICAqYWRhI1dvcmQoKSoKKwkJUmV0dXJuIGZ1bGwgbmFtZSBvZiBBZGEgZW50aXR5IHVuZGVyIHRoZSBjdXJzb3IgKG9yIGF0IGdpdmVuCisJCWxpbmUvY29sdW1uKSwgc3RyaXBwaW5nIHdoaXRlIHNwYWNlL25ld2xpbmVzIGFzIG5lY2Vzc2FyeS4KKworYWRhI0xpc3RfVGFnKFt7bGluZX0sIHtjb2x9XSkJCQkJICAgICAgKmFkYSNMaXN0dGFncygpKgorCQlMaXN0IGFsbCBvY2N1cnJlbmNlcyBvZiB0aGUgQWRhIGVudGl0eSB1bmRlciB0aGUgY3Vyc29yIChvciBhdAorCQlnaXZlbiBsaW5lL2NvbHVtbikgaW5zaWRlIHRoZSBxdWljay1maXggd2luZG93CisKK2FkYSNKdW1wX1RhZyAoe2lkZW50fSwge21vZGV9KQkJCQkgICAgICAqYWRhI0p1bXBfVGFnKCkqCisJCUxpc3QgYWxsIG9jY3VycmVuY2VzIG9mIHRoZSBBZGEgZW50aXR5IHVuZGVyIHRoZSBjdXJzb3IgKG9yIGF0CisJCWdpdmVuIGxpbmUvY29sdW1uKSBpbiB0aGUgdGFnIGp1bXAgbGlzdC4gTW9kZSBjYW4gZWl0aGVyIGJlCisJCSd0anVtcCcgb3IgJ3N0anVtcCcuCisKK2FkYSNDcmVhdGVfVGFncyAoe29wdGlvbn0pCQkJCSAgICphZGEjQ3JlYXRlX1RhZ3MoKSoKKwkJQ3JlYXRlcyB0YWcgZmlsZSB1c2luZyBDdGFncy4gVGhlIG9wdGlvbiBjYW4gZWl0aGVyIGJlICdmaWxlJworCQlmb3IgdGhlIGN1cnJlbnQgZmlsZSwgJ2RpcicgZm9yIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQKKwkJZmlsZSBvciBhIGZpbGUgbmFtZS4KKworZ25hdCNJbnNlcnRfVGFnc19IZWFkZXIoKQkJCSAgICpnbmF0I0luc2VydF9UYWdzX0hlYWRlcigpKgorCQlBZGRzIHRoZSB0YWcgZmlsZSBoZWFkZXIgKCFfVEFHXykgaW5mb3JtYXRpb25zIHRvIHRoZSBjdXJyZW50CisJCWZpbGUgd2hpY2ggYXJlIG1pc3NpbmcgZnJvbSB0aGUgR05BVCBYUkVGIG91dHB1dC4KKworYWRhI1N3aXRjaF9TeW50YXhfT3B0aW9uICh7b3B0aW9ufSkJCSAgKmFkYSNTd2l0Y2hfU3ludGF4X09wdGlvbigpKgorCQlUb2dnbGVzIGhpZ2hsaWdodGluZyBvcHRpb25zIG9uIG9yIG9mZi4gVXNlZCBmb3IgdGhlIEFkYSBtZW51LgorCisJCQkJCQkJCSAgKmduYXQjTmV3KCkqCitnbmF0I05ldyAoKQorCQlDcmVhdGUgYSBuZXcgZ25hdCBvYmplY3QuIFNlZSB8ZzpnbmF0fCBmb3IgZGV0YWlscy4KKworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzguIEV4dHJhIFBsdWdpbnMgfgorCQkJCQkJCSAgICphZGEtZXh0cmEtcGx1Z2lucyoKKworWW91IGNhbiBvcHRpb25hbGx5IGluc3RhbGwgdGhlIGZvbGxvd2luZyBleHRyYSBwbHVnLWluLiBUaGV5IHdvcmsgd2VsbCB3aXRoIEFkYQorYW5kIGVuaGFuY2UgdGhlIGFiaWxpdHkgb2YgdGhlIEFkYSBtb2RlLjoKKworYmFja3VwLnZpbQorCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTE1MzcKKwlLZWVwcyBhcyBtYW55IGJhY2t1cHMgYXMgeW91IGxpa2Ugc28geW91IGRvbid0IGhhdmUgdG8uCisKK3JhaW5ib3dfcGFyZW50aHNpcy52aW0KKwlodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0xNTYxCisJVmVyeSBoZWxwZnVsIHNpbmNlIEFkYSB1c2VzIG9ubHkgJygnIGFuZCAnKScuCisKK25lcmRfY29tbWVudHMudmltCisJaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MTIxOAorCUV4Y2VsbGVudCBjb21tZW50aW5nIGFuZCB1bmNvbW1lbnRpbmcgc3VwcG9ydCBmb3IgYWxtb3N0IGFueQorCXByb2dyYW1taW5nIGxhbmd1YWdlLgorCittYXRjaGl0LnZpbQorCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTM5CisJJyUnIGp1bXBpbmcgZm9yIGFueSBsYW5ndWFnZS4gVGhlIG5vcm1hbCAnJScganVtcCBvbmx5IHdvcmtzIGZvciAne30nCisJc3R5bGUgbGFuZ3VhZ2VzLiBUaGUgQWRhIG1vZGUgd2lsbCBzZXQgdGhlIG5lZWRlZCBzZWFyY2ggcGF0dGVycy4KKwordGFnbGlzdC52aW0KKwlodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0yNzMKKwlTb3VyY2UgY29kZSBleHBsb3JlciBzaWRlYmFyLiBUaGVyZSBpcyBhIHBhdGNoIGZvciBBZGEgYXZhaWxhYmxlLgorCitUaGUgR05VIEFkYSBQcm9qZWN0IGRpc3RyaWJ1dGlvbiAoaHR0cDovL2dudWFkYS5zb3VyY2Vmb3JnZS5uZXQpIG9mIFZpbQorY29udGFpbnMgYWxsIG9mIHRoZSBhYm92ZS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cit2aW06IHRleHR3aWR0aD03OCBub3dyYXAgdGFic3RvcD04IHNoaWZ0d2lkdGg9NCBzb2Z0dGFic3RvcD00IG5vZXhwYW5kdGFiCit2aW06IGZpbGV0eXBlPWhlbHAgZW5jb2Rpbmc9bGF0aW4xCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9hcmFiaWMudHh0IGIvcnVudGltZS9kb2MvYXJhYmljLnR4dAppbmRleCAyZGRhM2NhLi45NWNlMjBmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9hcmFiaWMudHh0CisrKyBiL3J1bnRpbWUvZG9jL2FyYWJpYy50eHQKQEAgLTEsNCArMSw0IEBACi0qYXJhYmljLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmFyYWJpYy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgTmFkaW0gU2hhaWtsaQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZmFyc2kudHh0IGIvcnVudGltZS9kb2MvZmFyc2kudHh0CmluZGV4IGQ2NTVjYWYuLmRkNTdjNWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ZhcnNpLnR4dAorKysgYi9ydW50aW1lL2RvYy9mYXJzaS50eHQKQEAgLTEsNCArMSw0IEBACi0qZmFyc2kudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmZhcnNpLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IE1vcnRhemEgR2hhc3NhYiBTaGlyYW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dCBiL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dAppbmRleCA1OGIzM2I4Li40YjhiZmFmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9maWxldHlwZS50eHQKKysrIGIvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZpbGV0eXBlLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjgKKypmaWxldHlwZS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1hciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDMsNiArNDMsOCBAQAogCUJ1Zk5ld0ZpbGUgYW5kIEJ1ZlJlYWQgZXZlbnRzLiAgSWYgdGhlIGZpbGUgdHlwZSBpcyBub3QgZm91bmQgYnkgdGhlCiAJbmFtZSwgdGhlIGZpbGUgJFZJTVJVTlRJTUUvc2NyaXB0cy52aW0gaXMgdXNlZCB0byBkZXRlY3QgaXQgZnJvbSB0aGUKIAljb250ZW50cyBvZiB0aGUgZmlsZS4KKwlXaGVuIHRoZSBHVUkgaXMgcnVubmluZyBvciB3aWxsIHN0YXJ0IHNvb24sIHRoZSBtZW51LnZpbSBzY3JpcHQgaXMKKwlhbHNvIHNvdXJjZWQuICBTZWUgfCdnby1NJ3wgYWJvdXQgYXZvaWRpbmcgdGhhdC4KIAogVG8gYWRkIHlvdXIgb3duIGZpbGUgdHlwZXMsIHNlZSB8bmV3LWZpbGV0eXBlfCBiZWxvdy4gIFRvIHNlYXJjaCBmb3IgaGVscCBvbiBhCiBmaWxldHlwZSBwcmVwZW5kICJmdC0iIGFuZCBvcHRpb25hbGx5IGFwcGVuZCAiLXN5bnRheCIsICItaW5kZW50IiBvcgpAQCAtMzA0LDI0ICszMDYsMjggQEAKIAogCXNldCBydW50aW1lcGF0aAogCi1wcm9kdWNlcyB0aGlzIG91dHB1dDogPgorcHJvZHVjZXMgdGhpcyBvdXRwdXQ6CiAKLQlydW50aW1lcGF0aD0vZXRjL3ZpbSx+Ly52aW0sL3Vzci9sb2NhbC9zaGFyZS92aW0vdmltNjAKKwlydW50aW1lcGF0aD0vZXRjL3ZpbSx+Ly52aW0sL3Vzci9sb2NhbC9zaGFyZS92aW0vdmltNjAgfgogCi10aGVuIFZpbSB3aWxsIGxvYWQgYWxsIHBsdWdpbnMgaW4gdGhlc2UgZGlyZWN0b3JpZXM6ID4KK3RoZW4gVmltIHdpbGwgbG9hZCBhbGwgcGx1Z2lucyBpbiB0aGVzZSBkaXJlY3RvcmllcyBhbmQgYmVsb3c6CiAKLQkvZXRjL3ZpbS9wbHVnaW4vCi0Jfi8udmltL3BsdWdpbi8KLQkvdXNyL2xvY2FsL3NoYXJlL3ZpbS92aW02MC9wbHVnaW4vCisJL2V0Yy92aW0vcGx1Z2luLyAgfgorCX4vLnZpbS9wbHVnaW4vICB+CisJL3Vzci9sb2NhbC9zaGFyZS92aW0vdmltNjAvcGx1Z2luLyAgfgogCiBOb3RlIHRoYXQgdGhlIGxhc3Qgb25lIGlzIHRoZSB2YWx1ZSBvZiAkVklNUlVOVElNRSB3aGljaCBoYXMgYmVlbiBleHBhbmRlZC4KIAogV2hhdCBpZiBpdCBsb29rcyBsaWtlIHlvdXIgcGx1Z2luIGlzIG5vdCBiZWluZyBsb2FkZWQ/ICBZb3UgY2FuIGZpbmQgb3V0IHdoYXQKIGhhcHBlbnMgd2hlbiBWaW0gc3RhcnRzIHVwIGJ5IHVzaW5nIHRoZSB8LVZ8IGFyZ3VtZW50OiA+Ci0JdmltIC1WMQorCisJdmltIC1WMgorCiBZb3Ugd2lsbCBzZWUgYSBsb3Qgb2YgbWVzc2FnZXMsIGluIGJldHdlZW4gdGhlbSBpcyBhIHJlbWFyayBhYm91dCBsb2FkaW5nIHRoZQotcGx1Z2lucy4gIEl0IHN0YXJ0cyB3aXRoOiA+Ci0JU2VhcmNoaW5nIGZvciAicGx1Z2luLyoudmltIiBpbgorcGx1Z2lucy4gIEl0IHN0YXJ0cyB3aXRoOgorCisJU2VhcmNoaW5nIGZvciAicGx1Z2luLyoqLyoudmltIiBpbiB+CisKIFRoZXJlIHlvdSBjYW4gc2VlIHdoZXJlIFZpbSBsb29rcyBmb3IgeW91ciBwbHVnaW4gc2NyaXB0cy4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWJyZXcudHh0IGIvcnVudGltZS9kb2MvaGVicmV3LnR4dAppbmRleCBmZGU1N2JjLi4yMzFkNzc2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9oZWJyZXcudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlYnJldy50eHQKQEAgLTEsNCArMSw0IEBACi0qaGVicmV3LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDAzIE1heSAxMQorKmhlYnJldy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDMgTWF5IDExCiAKIAogCSAgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFJvbiBBYXJvbiAoYW5kIEF2bmVyIExvdHRlbSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hvd3RvLnR4dCBiL3J1bnRpbWUvZG9jL2hvd3RvLnR4dAppbmRleCA1OTg3OGI4Li5hYzY5ZDU1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ob3d0by50eHQKKysrIGIvcnVudGltZS9kb2MvaG93dG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKmhvd3RvLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMgorKmhvd3RvLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMDIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW50cm8udHh0IGIvcnVudGltZS9kb2MvaW50cm8udHh0CmluZGV4IDBkY2JlYjcuLjJkZWIzY2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnRyby50eHQKQEAgLTEsNCArMSw0IEBACi0qaW50cm8udHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyMAorKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDIwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19hbWlnYS50eHQgYi9ydW50aW1lL2RvYy9vc19hbWlnYS50eHQKaW5kZXggZGZjNDBiNy4uNjU1ZTZmYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfYW1pZ2EudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX2FtaWdhLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19hbWlnYS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfYW1pZ2EudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX2Rvcy50eHQgYi9ydW50aW1lL2RvYy9vc19kb3MudHh0CmluZGV4IGQ0NDc1NWEuLjA5ZDZjYmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX2Rvcy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfZG9zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19kb3MudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDMwCisqb3NfZG9zLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dCBiL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dAppbmRleCBhMWIxYjgzLi5iZjY2ZjlkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc193aW4zMi50eHQKKysrIGIvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3dpbjMyLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKKypvc193aW4zMi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IEFwciAyMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHZW9yZ2UgUmVpbGx5CkBAIC0yNjksNyArMjY5LDcgQEAKIFEuIEhvdyBkbyBJIGdldCB0byBzZWUgdGhlIG91dHB1dCBvZiAiOm1ha2UiIHdoaWxlIGl0J3MgcnVubmluZz8KIEEuIEJhc2ljYWxseSB3aGF0IHlvdSBuZWVkIGlzIHRvIHB1dCBhIHRlZSBwcm9ncmFtIHRoYXQgd2lsbCBjb3B5IGl0cyBpbnB1dAogICAgKHRoZSBvdXRwdXQgZnJvbSBtYWtlKSB0byBib3RoIHN0ZG91dCBhbmQgdG8gdGhlIGVycm9yZmlsZS4gIFlvdSBjYW4gZmluZCBhCi0gICBjb3B5IG9mIHRlZSAoYW5kIGEgbnVtYmVyIG9mIG90aGVyIEdOVSB0b29scyB0b29scykgYXQKKyAgIGNvcHkgb2YgdGVlIChhbmQgYSBudW1iZXIgb2Ygb3RoZXIgR05VIHRvb2xzKSBhdAogICAgaHR0cDovL2dudXdpbjMyLnNvdXJjZWZvcmdlLm5ldCBvciBodHRwOi8vdW54dXRpbHMuc291cmNlZm9yZ2UubmV0CiAgICBBbHRlcm5hdGl2ZWx5LCB0cnkgdGhlIG1vcmUgcmVjZW50IEN5Z251cyB2ZXJzaW9uIG9mIHRoZSBHTlUgdG9vbHMgYXQKICAgIGh0dHA6Ly93d3cuY3lnd2luLmNvbSAgT3RoZXIgVW5peC1zdHlsZSB0b29scyBmb3IgV2luMzIgYXJlIGxpc3RlZCBhdApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGF0dGVybi50eHQgYi9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dAppbmRleCA0ZTAwNDkzLi4wZWZkNTIyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dAorKysgYi9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwYXR0ZXJuLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCisqcGF0dGVybi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTU4Nyw3ICs1ODcsNyBAQAogCXtWaSBkb2VzIG5vdCBoYXZlIGFueSBvZiB0aGVzZX0KIAogCW4gYW5kIG0gYXJlIHBvc2l0aXZlIGRlY2ltYWwgbnVtYmVycyBvciB6ZXJvCi0KKwkJCQkJCQkJKm5vbi1ncmVlZHkqCiAJSWYgYSAiLSIgYXBwZWFycyBpbW1lZGlhdGVseSBhZnRlciB0aGUgInsiLCB0aGVuIGEgc2hvcnRlc3QgbWF0Y2gKIAlmaXJzdCBhbGdvcml0aG0gaXMgdXNlZCAoc2VlIGV4YW1wbGUgYmVsb3cpLiAgSW4gcGFydGljdWxhciwgIlx7LX0iIGlzCiAJdGhlIHNhbWUgYXMgIioiIGJ1dCB1c2VzIHRoZSBzaG9ydGVzdCBtYXRjaCBmaXJzdCBhbGdvcml0aG0uICBCVVQ6IEEKQEAgLTk2OSw3ICs5NjksNyBAQAogCVt4eXpdCQlhbnkgJ3gnLCAneScgb3IgJ3onCiAJW2EtekEtWl0kCWFueSBhbHBoYWJldGljIGNoYXJhY3RlciBhdCB0aGUgZW5kIG9mIGEgbGluZQogCVxjW2Etel0kCXNhbWUKLQorCQkJCQkJCQkqL1tcbl0qCiAJV2l0aCAiXF8iIHByZXBlbmRlZCB0aGUgY29sbGVjdGlvbiBhbHNvIGluY2x1ZGVzIHRoZSBlbmQtb2YtbGluZS4KIAlUaGUgc2FtZSBjYW4gYmUgZG9uZSBieSBpbmNsdWRpbmcgIlxuIiBpbiB0aGUgY29sbGVjdGlvbi4gIFRoZQogCWVuZC1vZi1saW5lIGlzIGFsc28gbWF0Y2hlZCB3aGVuIHRoZSBjb2xsZWN0aW9uIHN0YXJ0cyB3aXRoICJeIiEgIFRodXMKQEAgLTEwNDIsNiArMTA0Miw3IEBACiAJCVx0CTxUYWI+CiAJCVxyCTxDUj4JKE5PVCBlbmQtb2YtbGluZSEpCiAJCVxiCTxCUz4KKwkJXG4JbGluZSBicmVhaywgc2VlIGFib3ZlIHwvW1xuXXwKIAkJXGQxMjMJZGVjaW1hbCBudW1iZXIgb2YgY2hhcmFjdGVyCiAJCVxvNDAJb2N0YWwgbnVtYmVyIG9mIGNoYXJhY3RlciB1cCB0byAwMzc3CiAJCVx4MjAJaGV4YWRlY2ltYWwgbnVtYmVyIG9mIGNoYXJhY3RlciB1cCB0byAweGZmCkBAIC0xMDY4LDYgKzEwNjksOCBAQAogCVlvdSBkb24ndCBvZnRlbiBoYXZlIHRvIHVzZSBpdCwgYnV0IGl0IGlzIHBvc3NpYmxlLiAgRXhhbXBsZTogPgogCQkvXDxyXCVbW2VvXWFkXVw+CiA8CU1hdGNoZXMgdGhlIHdvcmRzICJyIiwgInJlIiwgInJvIiwgInJlYSIsICJyb2EiLCAicmVhZCIgYW5kICJyb2FkIi4KKwlUaGVyZSBjYW4gYmUgbm8gXChcKSwgXCUoXCkgb3IgXHooXCkgaXRlbXMgaW5zaWRlIHRoZSBbXSBhbmQgXCVbXSBkb2VzCisJbm90IG5lc3QuCiAJe25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSArc3ludGF4IGZlYXR1cmV9CiAKIAkJCQkqL1wlZCogKi9cJXgqICovXCVvKiAqL1wldSogKi9cJVUqICpFNjc4KgpAQCAtMTE0NSw3ICsxMTQ4LDcgQEAKIHRoaXMuCiAKIFRoZSBvcmRlciBvZiBjb21wb3NpbmcgY2hhcmFjdGVycyBtYXR0ZXJzLCBldmVuIHRob3VnaCBjaGFuZ2luZyB0aGUgb3JkZXIKLWRvZW4ndCBjaGFuZ2Ugd2hhdCBhIGNoYXJhY3RlciBsb29rcyBsaWtlLiAgVGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuCitkb2Vzbid0IGNoYW5nZSB3aGF0IGEgY2hhcmFjdGVyIGxvb2tzIGxpa2UuICBUaGlzIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA5LiBDb21wYXJlIHdpdGggUGVybCBwYXR0ZXJucwkJCQkqcGVybC1wYXR0ZXJucyoKQEAgLTEyMTksNiArMTIyMiwxMCBAQAogCQknaWdub3JlY2FzZScgZG9lcyBub3QgYXBwbHksIHVzZSB8L1xjfCBpbiB0aGUgcGF0dGVybiB0bwogCQlpZ25vcmUgY2FzZS4gIE90aGVyd2lzZSBjYXNlIGlzIG5vdCBpZ25vcmVkLgogCisJCVdoZW4gbWF0Y2hpbmcgZW5kLW9mLWxpbmUgYW5kIFZpbSByZWRyYXdzIG9ubHkgcGFydCBvZiB0aGUKKwkJZGlzcGxheSB5b3UgbWF5IGdldCB1bmV4cGVjdGVkIHJlc3VsdHMuICBUaGF0IGlzIGJlY2F1c2UgVmltCisJCWxvb2tzIGZvciBhIG1hdGNoIGluIHRoZSBsaW5lIHdoZXJlIHJlZHJhd2luZyBzdGFydHMuCisKIAkJQWxzbyBzZWUgfG1hdGNoYXJnKCl8LCBpdCByZXR1cm5zIHRoZSBoaWdobGlnaHQgZ3JvdXAgYW5kCiAJCXBhdHRlcm4gb2YgYSBwcmV2aW91cyA6bWF0Y2ggY29tbWFuZC4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfc3BlYy50eHQgYi9ydW50aW1lL2RvYy9waV9zcGVjLnR4dAppbmRleCA5ZWZmYmU4Li5iMDc1ODczIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9zcGVjLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV9zcGVjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9zcGVjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcGlfc3BlYy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogYnkgR3VzdGF2byBOaWVtZXllciB+CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1b3Rlcy50eHQgYi9ydW50aW1lL2RvYy9xdW90ZXMudHh0CmluZGV4IGVkNjJhYzIuLjBmYmQ4YmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3F1b3Rlcy50eHQKKysrIGIvcnVudGltZS9kb2MvcXVvdGVzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdW90ZXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcXVvdGVzLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JlbW90ZS50eHQgYi9ydW50aW1lL2RvYy9yZW1vdGUudHh0CmluZGV4IDQ0ZDgyY2MuLjViODdjYzAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JlbW90ZS50eHQKKysrIGIvcnVudGltZS9kb2MvcmVtb3RlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyZW1vdGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCisqcmVtb3RlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQgYi9ydW50aW1lL2RvYy9yZXBlYXQudHh0CmluZGV4IGQ3MGY3OGEuLjRhMTA4YjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQKKysrIGIvcnVudGltZS9kb2MvcmVwZWF0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyZXBlYXQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCisqcmVwZWF0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBKYW4gMDcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTUzLDYgKzUzLDEzIEBACiA6W3JhbmdlXXZbZ2xvYmFsXS97cGF0dGVybn0vW2NtZF0KIAkJCVNhbWUgYXMgOmchLgogCitJbnN0ZWFkIG9mIHRoZSAnLycgd2hpY2ggc3Vycm91bmRzIHRoZSB7cGF0dGVybn0sIHlvdSBjYW4gdXNlIGFueSBvdGhlcgorc2luZ2xlIGJ5dGUgY2hhcmFjdGVyLCBidXQgbm90IGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsICdcJywgJyInIG9yICd8Jy4KK1RoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGluY2x1ZGUgYSAnLycgaW4gdGhlIHNlYXJjaCBwYXR0ZXJuIG9yCityZXBsYWNlbWVudCBzdHJpbmcuCisKK0ZvciB0aGUgZGVmaW5pdGlvbiBvZiBhIHBhdHRlcm4sIHNlZSB8cGF0dGVybnwuCisKIFRoZSBnbG9iYWwgY29tbWFuZHMgd29yayBieSBmaXJzdCBzY2FubmluZyB0aHJvdWdoIHRoZSBbcmFuZ2VdIGxpbmVzIGFuZAogbWFya2luZyBlYWNoIGxpbmUgd2hlcmUgYSBtYXRjaCBvY2N1cnMgKGZvciBhIG11bHRpLWxpbmUgcGF0dGVybiwgb25seSB0aGUKIHN0YXJ0IG9mIHRoZSBtYXRjaCBtYXR0ZXJzKS4KQEAgLTY1Niw0ICs2NjMsNyBAQAogLSBQcm9maWxpbmcgbWF5IGdpdmUgd2VpcmQgcmVzdWx0cyBvbiBtdWx0aS1wcm9jZXNzb3Igc3lzdGVtcywgd2hlbiBzbGVlcAogICBtb2RlIGtpY2tzIGluIG9yIHRoZSBwcm9jZXNzb3IgZnJlcXVlbmN5IGlzIHJlZHVjZWQgdG8gc2F2ZSBwb3dlci4KIAorLSBUaGUgInNlbGYiIHRpbWUgaXMgd3Jvbmcgd2hlbiBhIGZ1bmN0aW9uIGlzIHVzZWQgcmVjdXJzaXZlbHkuCisKKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Njcm9sbC50eHQgYi9ydW50aW1lL2RvYy9zY3JvbGwudHh0CmluZGV4IGMxNzc0ZjUuLjJjZjBiZWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Njcm9sbC50eHQKKysrIGIvcnVudGltZS9kb2Mvc2Nyb2xsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzY3JvbGwudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0Cisqc2Nyb2xsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBdWcgMjcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIyMyw3ICsyMjMsNyBAQAogYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgYnkgY2xlYXJpbmcgdGhlICdqdW1wJyBmbGFnIGZyb20gdGhlICdzY3JvbGxvcHQnCiBvcHRpb24uCiAKLQkJCQkJCQkqc3luY2JpbmQqICo6c3luY2JpbmQqCisJCQkJCQkqc3luY2JpbmQqICo6c3luY2JpbmQqICo6c3luYyoKIDpzeW5jYmluZAkJRm9yY2UgYWxsICdzY3JvbGxiaW5kJyB3aW5kb3dzIHRvIGhhdmUgdGhlIHNhbWUKIAkJCXJlbGF0aXZlIG9mZnNldC4gIEkuZS4sIHdoZW4gYW55IG9mIHRoZSAnc2Nyb2xsYmluZCcKIAkJCXdpbmRvd3MgaXMgc2Nyb2xsZWQgdG8gdGhlIHRvcCBvZiBpdHMgYnVmZmVyLCBhbGwgb2YKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dCBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAppbmRleCBhODBjZWFmLi5iNmYwYzFmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zcGVsbC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBBcHIgMjIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTYsNiArMTYsMTAgQEAKIFNwZWxsIGNoZWNraW5nIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB0aGUgfCtzeW50YXh8IGZlYXR1cmUgaGFzIGJlZW4gZGlzYWJsZWQKIGF0IGNvbXBpbGUgdGltZS4KIAorTm90ZTogVGhlcmUgYWxzbyBpcyBhIHZpbXNwZWxsIHBsdWdpbi4gIElmIHlvdSBoYXZlIGl0IHlvdSBjYW4gZG8gIjpoZWxwCit2aW1zcGVsbCIgdG8gZmluZCBhYm91dCBpdC4gIEJ1dCB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIGdldCByaWQgb2YgdGhlCitwbHVnaW4gYW5kIHVzZSB0aGUgJ3NwZWxsJyBvcHRpb24gaW5zdGVhZCwgaXQgd29ya3MgYmV0dGVyLgorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEuIFF1aWNrIHN0YXJ0CQkJCQkJKnNwZWxsLXF1aWNrc3RhcnQqCiAKQEAgLTQwOSw2ICs0MTMsNyBAQAogRm9yIHRoZSBzZWNvbmQgbWV0aG9kIGFkZGluZyB0aGUgQE5vU3BlbGwgY2x1c3RlciB3aWxsIGRpc2FibGUgc3BlbGwgY2hlY2tpbmcKIGFnYWluLiAgVGhpcyBjYW4gYmUgdXNlZCwgZm9yIGV4YW1wbGUsIHRvIGFkZCBAU3BlbGwgdG8gdGhlIGNvbW1lbnRzIG9mIGEKIHByb2dyYW0sIGFuZCBhZGQgQE5vU3BlbGwgZm9yIGl0ZW1zIHRoYXQgc2hvdWxkbid0IGJlIGNoZWNrZWQuCitBbHNvIHNlZSB8OnN5bi1zcGVsbHwgZm9yIHRleHQgdGhhdCBpcyBub3QgaW4gYSBzeW50YXggaXRlbS4KIAogCiBWSU0gU0NSSVBUUwpAQCAtNDY1LDcgKzQ3MCw3IEBACiBZb3UgY2FuIGNyZWF0ZSBhIFZpbSBzcGVsbCBmaWxlIGZyb20gdGhlIC5hZmYgYW5kIC5kaWMgZmlsZXMgdGhhdCBNeXNwZWxsCiB1c2VzLiAgTXlzcGVsbCBpcyB1c2VkIGJ5IE9wZW5PZmZpY2Uub3JnIGFuZCBNb3ppbGxhLiAgWW91IHNob3VsZCBiZSBhYmxlIHRvCiBmaW5kIHRoZW0gaGVyZToKLQlodHRwOi8vbGluZ3Vjb21wb25lbnQub3Blbm9mZmljZS5vcmcvc3BlbGxfZGljLmh0bWwKKwlodHRwOi8vd2lraS5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy93aWtpL0RpY3Rpb25hcmllcwogWW91IGNhbiBhbHNvIHVzZSBhIHBsYWluIHdvcmQgbGlzdC4gIFRoZSByZXN1bHRzIGFyZSB0aGUgc2FtZSwgdGhlIGNob2ljZQogZGVwZW5kcyBvbiB3aGF0IHdvcmQgbGlzdHMgeW91IGNhbiBmaW5kLgogCkBAIC01NDYsNyArNTUxLDcgQEAKIDIuIE1ha2UgYSBjb3B5IG9mIHRoZXNlIGZpbGVzIHRvIHh4X1lZLm9yaWcuYWZmIGFuZCB4eF9ZWS5vcmlnLmRpYy4KIDMuIENoYW5nZSB0aGUgeHhfWVkuYWZmIGFuZCB4eF9ZWS5kaWMgZmlsZXMgdG8gcmVtb3ZlIGJhZCB3b3JkcywgYWRkIG1pc3NpbmcKICAgIHdvcmRzLCBkZWZpbmUgd29yZCBjaGFyYWN0ZXJzIHdpdGggRk9ML0xPVy9VUFAsIGV0Yy4gIFRoZSBkaXN0cmlidXRlZAotICAgInNyYy9zcGVsbC8qLmRpZmYiIGZpbGVzIGNhbiBiZSB1c2VkLgorICAgIiouZGlmZiIgZmlsZXMgY2FuIGJlIHVzZWQuCiA0LiBTdGFydCBWaW0gd2l0aCB0aGUgcmlnaHQgbG9jYWxlIGFuZCB1c2UgfDpta3NwZWxsfCB0byBnZW5lcmF0ZSB0aGUgVmltCiAgICBzcGVsbCBmaWxlLgogNS4gVHJ5IG91dCB0aGUgc3BlbGwgZmlsZSB3aXRoICI6c2V0IHNwZWxsIHNwZWxsbGFuZz14eCIgaWYgeW91IHdyb3RlIGl0IGluCkBAIC02NDYsNyArNjUxLDcgQEAKICAgb25seSBBU0NJSSBsZXR0ZXJzIGZvciBtb3N0IG9mIHRoZSB3b3Jkcy4KIAogVGhlIGRlZmF1bHQgInNwZWxsZmlsZS52aW0iIHBsdWdpbiB1c2VzIHRoaXMgYXV0b2NvbW1hbmQsIGlmIHlvdSBkZWZpbmUgeW91cgotYXV0b2NvbW1hbmQgYWZ0ZXJ3YXJzIHlvdSBtYXkgd2FudCB0byB1c2UgIjphdSEgU3BlbGxGaWxlTWlzc2luZyIgdG8gb3ZlcnJ1bGUKK2F1dG9jb21tYW5kIGFmdGVyd2FyZHMgeW91IG1heSB3YW50IHRvIHVzZSAiOmF1ISBTcGVsbEZpbGVNaXNzaW5nIiB0byBvdmVycnVsZQogaXQuICBJZiB5b3UgZGVmaW5lIHlvdXIgYXV0b2NvbW1hbmQgYmVmb3JlIHRoZSBwbHVnaW4gaXMgbG9hZGVkIGl0IHdpbGwgbm90aWNlCiB0aGlzIGFuZCBub3QgZG8gYW55dGhpbmcuCiAKQEAgLTEzMzIsNyArMTMzNyw3IEBACiAKIE9ubHkgY2FzZS1mb2xkZWQgbGV0dGVycyBuZWVkIHRvIGJlIGluY2x1ZGVkLgogCi1BYm92ZSBhbm90aGVyIHdheSB0byByZXN0cmljdCBjb21wb3VuZGluZyB3YXMgbWVudGlvbmVkIGFib3ZlOiBBZGRpbmcgdGhlCitBbm90aGVyIHdheSB0byByZXN0cmljdCBjb21wb3VuZGluZyB3YXMgbWVudGlvbmVkIGFib3ZlOiBBZGRpbmcgdGhlCiB8c3BlbGwtQ09NUE9VTkRGT1JCSURGTEFHfCBmbGFnIHRvIGFuIGFmZml4IGNhdXNlcyBhbGwgd29yZHMgdGhhdCBhcmUgbWFkZQogd2l0aCB0aGF0IGFmZml4IG5vdCBiZSBiZSB1c2VkIGZvciBjb21wb3VuZGluZy4KIApAQCAtMTUxMCw3ICsxNTE1LDcgQEAKIAkJRW5hYmxlcyB1c2luZyB0d28gcHJlZml4ZXMuICBOb3Qgc3VwcG9ydGVkLgogCiBDT01QT1VORAkoSHVuc3BlbGwpCQkJCSpzcGVsbC1DT01QT1VORCoKLQkJVGhpcyBpcyBvbmUgbGluZSB3aXRoIHRoZSBjb3VudCBvZiBDT01QT1VORCBpdGVtcywgZm9sbG93ZCBieQorCQlUaGlzIGlzIG9uZSBsaW5lIHdpdGggdGhlIGNvdW50IG9mIENPTVBPVU5EIGl0ZW1zLCBmb2xsb3dlZCBieQogCQl0aGF0IG1hbnkgQ09NUE9VTkQgbGluZXMgd2l0aCBhIHBhdHRlcm4uCiAJCVJlbW92ZSB0aGUgZmlyc3QgbGluZSB3aXRoIHRoZSBjb3VudCBhbmQgcmVuYW1lIHRoZSBvdGhlcgogCQlpdGVtcyB0byBDT01QT1VORFJVTEUgfHNwZWxsLUNPTVBPVU5EUlVMRXwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3NxbC50eHQgYi9ydW50aW1lL2RvYy9zcWwudHh0CmluZGV4IDlkNTQxZjguLjA3OWMzOTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3NxbC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3FsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzcWwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IFdlZCBBcHIgMjYgMjAwNiAzOjA1OjMzIFBNCisqc3FsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogV2VkIEFwciAyNiAyMDA2IDM6MDU6MzMgUE0KIAogYnkgRGF2aWQgRmlzaGJ1cm4KIApAQCAtNjMyLDcgKzYzMiw3IEBACiAJLSBXaGVuIGNvbXBsZXRpbmcgdGFibGVzLCBwcm9jZWR1cmUgb3Igdmlld3MgYW5kIHVzaW5nIGRiZXh0LnZpbSAzLjAwCiAJICBvciBoaWdoZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB3aWxsIGFsc28gaW5jbHVkZSB0aGUgb3duZXIgbmFtZS4KIAkgIFdoZW4gY29tcGxldGluZyB0aGVzZSBvYmplY3RzIGFuZCBvbW5pX3NxbF9pbmNsdWRlX293bmVyIGlzIGVuYWJsZWQKLQkgIHRoZSBvd25lciBuYW1lIHdpbGwgYmUgYmUgcmVwbGFjZWQuID4KKwkgIHRoZSBvd25lciBuYW1lIHdpbGwgYmUgcmVwbGFjZWQuID4KIAogICAgIG9tbmlfc3FsX3ByZWNhY2hlX3N5bnRheF9ncm91cHMKIDwJLSBEZWZhdWx0OgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0IGIvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CmluZGV4IGI2NzZjNWEuLjYwZDhjYjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dAorKysgYi9ydW50aW1lL2RvYy9zdGFydGluZy50eHQKQEAgLTEsNCArMSw0IEBACi0qc3RhcnRpbmcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNQorKnN0YXJ0aW5nLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXByIDIyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMTEsMTIgKzMxMSwxNiBAQAogCQlNZXNzYWdlcyB3aWxsIGJlIGdpdmVuIGZvciBlYWNoIGZpbGUgdGhhdCBpcyAiOnNvdXJjZSJkIGFuZAogCQlmb3IgcmVhZGluZyBvciB3cml0aW5nIGEgdmltaW5mbyBmaWxlLiAgQ2FuIGJlIHVzZWQgdG8gZmluZAogCQlvdXQgd2hhdCBpcyBoYXBwZW5pbmcgdXBvbiBzdGFydHVwIGFuZCBleGl0LiAge25vdCBpbiBWaX0KKwkJRXhhbXBsZTogPgorCQkJdmltIC1WOCBmb29iYXIKIAogLVZbTl17ZmlsZW5hbWV9CiAJCUxpa2UgLVYgYW5kIHNldCAndmVyYm9zZWZpbGUnIHRvIHtmaWxlbmFtZX0uICBUaGUgcmVzdWx0IGlzCiAJCXRoYXQgbWVzc2FnZXMgYXJlIG5vdCBkaXNwbGF5ZWQgYnV0IHdyaXR0ZW4gdG8gdGhlIGZpbGUKIAkJe2ZpbGVuYW1lfS4gIHtmaWxlbmFtZX0gbXVzdCBub3Qgc3RhcnQgd2l0aCBhIGRpZ2l0LgotCisJCUV4YW1wbGU6ID4KKwkJCXZpbSAtVjIwdmltbG9nIGZvb2JhcgorPAogCQkJCQkJCSotRCoKIC1ECQlEZWJ1Z2dpbmcuICBHbyB0byBkZWJ1Z2dpbmcgbW9kZSB3aGVuIGV4ZWN1dGluZyB0aGUgZmlyc3QKIAkJY29tbWFuZCBmcm9tIGEgc2NyaXB0LiB8ZGVidWctbW9kZXwKQEAgLTUzNyw3ICs1NDEsNyBAQAogCQlTZWUgfC0tcmVtb3RlLWV4cHJ8LiB7bm90IGluIFZpfQogCiAtLXNlcnZlcmxpc3QJT3V0cHV0IGEgbGlzdCBvZiBWaW0gc2VydmVyIG5hbWVzIGFuZCBleGl0LiAgU2VlCi0JCVNlZSB8LS1zZXJ2ZXJsaXN0fC4ge25vdCBpbiBWaX0KKwkJfC0tc2VydmVybGlzdHwuIHtub3QgaW4gVml9CiAKIC0tc29ja2V0aWQge2lkfQkJCQkJCSotLXNvY2tldGlkKgogCQlHVEsrIEdVSSBWaW0gb25seS4gIE1ha2UgZ3ZpbSB0cnkgdG8gdXNlIEd0a1BsdWcgbWVjaGFuaXNtLCBzbwpAQCAtOTA1LDkgKzkwOSwxMCBAQAogcmVzZXR0aW5nIG90aGVyIG9wdGlvbnMgKHNlZSAnY29tcGF0aWJsZScpLiAgQnV0IG9ubHkgdGhlIG9wdGlvbnMgdGhhdCBoYXZlCiBub3QgYmVlbiBzZXQgb3IgcmVzZXQgd2lsbCBiZSBjaGFuZ2VkLiAgVGhpcyBoYXMgdGhlIHNhbWUgZWZmZWN0IGxpa2UgdGhlCiB2YWx1ZSBvZiAnY29tcGF0aWJsZScgaGFkIHRoaXMgdmFsdWUgd2hlbiBzdGFydGluZyBWaW0uICBOb3RlIHRoYXQgdGhpcwotZG9lc24ndCBoYXBwZW4gZm9yIHRoZSBzeXN0ZW0td2lkZSB2aW1yYyBmaWxlLiAgSXQgZG9lcyBhbHNvIGhhcHBlbiBmb3IgZ3ZpbXJjCi1maWxlcy4gIFRoZSAkTVlWSU1SQyBvciAkTVlHVklNUkMgZmlsZSB3aWxsIGJlIHNldCB0byB0aGUgZmlyc3QgZm91bmQgdmltcmMKLWFuZC9vciBndmltcmMgZmlsZS4KK2RvZXNuJ3QgaGFwcGVuIGZvciB0aGUgc3lzdGVtLXdpZGUgdmltcmMgZmlsZSBub3Igd2hlbiBWaW0gd2FzIHN0YXJ0ZWQgd2l0aAordGhlIHwtdXwgY29tbWFuZCBsaW5lIGFyZ3VtZW50LiAgSXQgZG9lcyBhbHNvIGhhcHBlbiBmb3IgZ3ZpbXJjIGZpbGVzLiAgVGhlCiskTVlWSU1SQyBvciAkTVlHVklNUkMgZmlsZSB3aWxsIGJlIHNldCB0byB0aGUgZmlyc3QgZm91bmQgdmltcmMgYW5kL29yIGd2aW1yYworZmlsZS4KIAogQnV0IHRoZXJlIGlzIGEgc2lkZSBlZmZlY3Qgb2Ygc2V0dGluZyBvciByZXNldHRpbmcgJ2NvbXBhdGlibGUnIGF0IHRoZSBtb21lbnQKIGEgLnZpbXJjIGZpbGUgaXMgZm91bmQ6IE1hcHBpbmdzIGFyZSBpbnRlcnByZXRlZCB0aGUgbW9tZW50IHRoZXkgYXJlCkBAIC0xMjAwLDggKzEyMDUsOCBAQAogICAgaW5jbHVkaW5nIGhpZGRlbiBhbmQgdW5sb2FkZWQgYnVmZmVycy4gIE90aGVyd2lzZSBvbmx5IGJ1ZmZlcnMgaW4gd2luZG93cwogICAgYXJlIHJlc3RvcmVkLgogOC4gUmVzdG9yZXMgYWxsIHdpbmRvd3Mgd2l0aCB0aGUgc2FtZSBsYXlvdXQuICBJZiAnc2Vzc2lvbm9wdGlvbnMnIGNvbnRhaW5zCi0gICBjb250YWlucyAiaGVscCIsIGhlbHAgd2luZG93cyBhcmUgcmVzdG9yZWQuICBJZiAnc2Vzc2lvbm9wdGlvbnMnIGNvbnRhaW5zCi0gICAiYmxhbmsiLCB3aW5kb3dzIGVkaXRpbmcgYSBidWZmZXIgd2l0aG91dCBhIG5hbWUgd2lsbCBiZSByZXN0b3JlZC4KKyAgICJoZWxwIiwgaGVscCB3aW5kb3dzIGFyZSByZXN0b3JlZC4gIElmICdzZXNzaW9ub3B0aW9ucycgY29udGFpbnMgImJsYW5rIiwKKyAgIHdpbmRvd3MgZWRpdGluZyBhIGJ1ZmZlciB3aXRob3V0IGEgbmFtZSB3aWxsIGJlIHJlc3RvcmVkLgogICAgSWYgJ3Nlc3Npb25vcHRpb25zJyBjb250YWlucyAid2luc2l6ZSIgYW5kIG5vIChoZWxwL2JsYW5rKSB3aW5kb3dzIHdlcmUKICAgIGxlZnQgb3V0LCB0aGUgd2luZG93IHNpemVzIGFyZSByZXN0b3JlZCAocmVsYXRpdmUgdG8gdGhlIHNjcmVlbiBzaXplKS4KICAgIE90aGVyd2lzZSwgdGhlIHdpbmRvd3MgYXJlIGp1c3QgZ2l2ZW4gc2Vuc2libGUgc2l6ZXMuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zeW50YXgudHh0IGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dAppbmRleCBmYTdiMDQzLi4zNzJiN2E5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zeW50YXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDAzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ2Nyw1MiArNDY3LDkgQEAKIGFiZWxfY3BwX2NvbW1lbnRzX2lsbGVnYWwJZG8gbm90IGludGVycHJldCAnLy8nIGFzIGlubGluZSBjb21tZW50IGxlYWRlcgogCiAKLUFEQQkJCQkJCSphZGEudmltKiAqZnQtYWRhLXN5bnRheCoKK0FEQQogCi1UaGlzIG1vZGUgaXMgZGVzaWduZWQgZm9yIHRoZSAxOTk1IGVkaXRpb24gb2YgQWRhICgiQWRhOTUiKSwgd2hpY2gKLWluY2x1ZGVzIHN1cHBvcnQgZm9yIG9iamVjdGVkLXByb2dyYW1taW5nLCBwcm90ZWN0ZWQgdHlwZXMsIGFuZCBzbyBvbi4KLUl0IGhhbmRsZXMgY29kZSB3cml0dGVuIGZvciB0aGUgb3JpZ2luYWwgQWRhIGxhbmd1YWdlCi0oIkFkYTgzIiBvciAiQWRhODciKSBhcyB3ZWxsLCB0aG91Z2ggQWRhODMgY29kZSB3aGljaCB1c2VzIEFkYTk1LW9ubHkKLWtleXdvcmRzIHdpbGwgYmUgd3JvbmdseSBjb2xvcmVkIChzdWNoIGNvZGUgc2hvdWxkIGJlIGZpeGVkIGFueXdheSkuCi1Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBBZGEsIHNlZSBodHRwOi8vd3d3LmFkYXBvd2VyLmNvbS4KLQotVGhlIEFkYSBtb2RlIGhhbmRsZXMgYSBudW1iZXIgb2Ygc2l0dWF0aW9ucyBjbGVhbmx5LgotRm9yIGV4YW1wbGUsIGl0IGtub3dzIHRoYXQgdGhlICItIiBpbiAiLTUiIGlzIGEgbnVtYmVyLCBidXQgdGhlIHNhbWUKLWNoYXJhY3RlciBpbiAiQS01IiBpcyBhbiBvcGVyYXRvci4gIE5vcm1hbGx5LCBhICJ3aXRoIiBvciAidXNlIiBjbGF1c2UKLXJlZmVyZW5jaW5nIGFub3RoZXIgY29tcGlsYXRpb24gdW5pdCBpcyBjb2xvcmVkIHRoZSBzYW1lIHdheSBhcyBDJ3MKLSIjaW5jbHVkZSIgaXMgY29sb3JlZC4JSWYgeW91IGhhdmUgIkNvbmRpdGlvbmFsIiBvciAiUmVwZWF0IgotZ3JvdXBzIGNvbG9yZWQgZGlmZmVyZW50bHksIHRoZW4gImVuZCBpZiIgYW5kICJlbmQgbG9vcCIgd2lsbCBiZQotY29sb3JlZCBhcyBwYXJ0IG9mIHRob3NlIHJlc3BlY3RpdmUgZ3JvdXBzLgotWW91IGNhbiBzZXQgdGhlc2UgdG8gZGlmZmVyZW50IGNvbG9ycyB1c2luZyB2aW0ncyAiaGlnaGxpZ2h0IiBjb21tYW5kCi0oZS5nLiwgdG8gY2hhbmdlIGhvdyBsb29wcyBhcmUgZGlzcGxheWVkLCBlbnRlciB0aGUgY29tbWFuZAotIjpoaSBSZXBlYXQiIGZvbGxvd2VkIGJ5IHRoZSBjb2xvciBzcGVjaWZpY2F0aW9uOyBvbiBzaW1wbGUgdGVybWluYWxzCi10aGUgY29sb3Igc3BlY2lmaWNhdGlvbiBjdGVybWZnPVdoaXRlIG9mdGVuIHNob3dzIHdlbGwpLgotCi1UaGVyZSBhcmUgc2V2ZXJhbCBvcHRpb25zIHlvdSBjYW4gc2VsZWN0IGluIHRoaXMgQWRhIG1vZGUuCi1UbyBlbmFibGUgdGhlbSwgYXNzaWduIGEgdmFsdWUgdG8gdGhlIG9wdGlvbi4gIEZvciBleGFtcGxlLCB0byB0dXJuIG9uZSBvbjoKLSAgIGxldCBhZGFfc3RhbmRhcmRfdHlwZXMgPSAxCi1UbyBkaXNhYmxlIHRoZW0gdXNlICI6dW5sZXQiLiAgRXhhbXBsZToKLSAgIHVubGV0IGFkYV9zdGFuZGFyZF90eXBlcyA9IDEKLVlvdSBjYW4ganVzdCB1c2UgIjoiIGFuZCB0eXBlIHRoZXNlIGludG8gdGhlIGNvbW1hbmQgbGluZSB0byBzZXQgdGhlc2UKLXRlbXBvcmFyaWx5IGJlZm9yZSBsb2FkaW5nIGFuIEFkYSBmaWxlLiAgWW91IGNhbiBtYWtlIHRoZXNlIG9wdGlvbiBzZXR0aW5ncwotcGVybWFuZW50IGJ5IGFkZGluZyB0aGUgImxldCIgY29tbWFuZChzKSwgd2l0aG91dCBhIGNvbG9uLAotdG8geW91ciAifi8udmltcmMiIGZpbGUuCi0KLUhlcmUgYXJlIHRoZSBBZGEgbW9kZSBvcHRpb25zOgotCi1WYXJpYWJsZQkJIEFjdGlvbgl+Ci1hZGFfc3RhbmRhcmRfdHlwZXMJIEhpZ2hsaWdodCB0eXBlcyBpbiBwYWNrYWdlIFN0YW5kYXJkIChlLmcuLCAiRmxvYXQiKQotYWRhX3NwYWNlX2Vycm9ycwkgSGlnaGxpZ2h0IGV4dHJhbmVvdXMgZXJyb3JzIGluIHNwYWNlcy4uLgotYWRhX25vX3RyYWlsX3NwYWNlX2Vycm9yICAgYnV0IGlnbm9yZSB0cmFpbGluZyBzcGFjZXMgYXQgdGhlIGVuZCBvZiBhIGxpbmUKLWFkYV9ub190YWJfc3BhY2VfZXJyb3IJICAgYnV0IGlnbm9yZSB0YWJzIGFmdGVyIHNwYWNlcwotYWRhX3dpdGh1c2Vfb3JkaW5hcnkJIFNob3cgIndpdGgiIGFuZCAidXNlIiBhcyBvcmRpbmFyeSBrZXl3b3JkcwotCQkJICAgKHdoZW4gdXNlZCB0byByZWZlcmVuY2Ugb3RoZXIgY29tcGlsYXRpb24gdW5pdHMKLQkJCSAgIHRoZXkncmUgbm9ybWFsbHkgaGlnaGxpZ2h0ZWQgc3BlY2lhbGx5KS4KLWFkYV9iZWdpbl9wcmVwcm9jCSBTaG93IGFsbCBiZWdpbi1saWtlIGtleXdvcmRzIHVzaW5nIHRoZSBjb2xvcmluZwotCQkJICAgb2YgQyBwcmVwcm9jZXNzb3IgY29tbWFuZHMuCi0KLUV2ZW4gb24gYSBzbG93ICg5ME1oeikgUEMgdGhpcyBtb2RlIHdvcmtzIHF1aWNrbHksIGJ1dCBpZiB5b3UgZmluZAotdGhlIHBlcmZvcm1hbmNlIHVuYWNjZXB0YWJsZSwgdHVybiBvbiBhZGFfd2l0aHVzZV9vcmRpbmFyeS4KK1NlZSB8ZnQtYWRhLXN5bnRheHwKIAogCiBBTlQJCQkJCQkqYW50LnZpbSogKmZ0LWFudC1zeW50YXgqCkBAIC05MDMsMTAgKzg2MCw2IEBACiBvciA+CiAJLy8gdmltOnN5bnRheD1jLmRveHlnZW4KIAotVG8gdXNlIGRveHlnZW4gZm9ybWF0dGluZyBvbiB0b3Agb2YgYW55IGZpbGV0eXBlLCBhZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyCi0udmltcmMgZm9yIGVhY2ggZmlsZXR5cGUsIHJlcGxhY2luZyB7ZmlsZXR5cGV9IHdpdGggdGhlIHJlbGV2ZW50IHZhbHVlLiA+Ci0JOmxldCBnOnN5bnRheF9leHRyYV97ZmlsZXR5cGV9PSdkb3h5Z2VuJwotCiBJdCBjYW4gYWxzbyBiZSBkb25lIGF1dG9tYXRpY2x5IGZvciBjLCBjcHAgYW5kIGlkbCBmaWxlcyBieSBzZXR0aW5nIHRoZSBnbG9iYWwKIG9yIGJ1ZmZlci1sb2NhbCB2YXJpYWJsZSBsb2FkX2RveHlnZW5fc3ludGF4LiAgVGhpcyBpcyBkb25lIGJ5IGFkZGluZyB0aGUKIGZvbGxvd2luZyB0byB5b3VyIC52aW1yYy4gPgpAQCAtMjMzOSw2ICsyMjkyLDggQEAKIAogVGhpcyB3aWxsIHNldCB0aGUgJ2ZvbGRtZXRob2QnIG9wdGlvbiB0byAic3ludGF4IiBhbmQgYWxsb3cgZm9sZGluZyBvZgogY2xhc3NlcywgbW9kdWxlcywgbWV0aG9kcywgY29kZSBibG9ja3MsIGhlcmVkb2NzIGFuZCBjb21tZW50cy4KKworCiBTQ0hFTUUJCQkJCQkqc2NoZW1lLnZpbSogKmZ0LXNjaGVtZS1zeW50YXgqCiAKIEJ5IGRlZmF1bHQgb25seSBSNVJTIGtleXdvcmRzIGFyZSBoaWdobGlnaHRlZCBhbmQgcHJvcGVybHkgaW5kZW50ZWQuCkBAIC0yNTk4LDYgKzI1NTMsMTYgQEAKIGluY3JlYXNlIHRoZW0uCVRoaXMgcHJpbWFyaWx5IGFmZmVjdHMgc3luY2hyb25pemluZyAoaS5lLiBqdXN0IHdoYXQgZ3JvdXAsCiBpZiBhbnksIGlzIHRoZSB0ZXh0IGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiBzdXBwb3NlZCB0byBiZSBpbj8pLgogCisqdGV4LW1vcmVjb21tYW5kcyogKnRleC1wYWNrYWdlKgorV2lzaCBUbyBIaWdobGlnaHQgTW9yZSBDb21tbWFuZHM/IH4KKworTGFUZVggaXMgYSBwcm9ncmFtbWFibGUgbGFuZ3VhZ2UsIGFuZCBzbyB0aGVyZSBhcmUgdGhvdXNhbmRzIG9mIHBhY2thZ2VzIGZ1bGwKK29mIHNwZWNpYWxpemVkIExhVGVYIGNvbW1hbmRzLCBzeW50YXgsIGFuZCBmb250cy4gIElmIHlvdSdyZSB1c2luZyBzdWNoIGEKK3BhY2thZ2UgeW91J2xsIG9mdGVuIHdpc2ggdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3ludGF4L3RleC52aW0gd291bGQgc3VwcG9ydAoraXQuICBIb3dldmVyLCBjbGVhcmx5IHRoaXMgaXMgaW1wcmFjdGljYWwuICBTbyBwbGVhc2UgY29uc2lkZXIgdXNpbmcgdGhlCit0ZWNobmlxdWVzIGluIHxteXN5bnRheGZpbGUtYWRkfCB0byBleHRlbmQgb3IgbW9kaWZ5IHRoZSBoaWdobGlnaHRpbmcgcHJvdmlkZWQKK2J5IHN5bnRheC90ZXgudmltLgorCiAqdGV4LWVycm9yKgogRXhjZXNzaXZlIEVycm9yIEhpZ2hsaWdodGluZz8gfgogCkBAIC00Mzk2LDcgKzQzNjEsNyBAQAogIyBNYWtlIGEgaGlnaGxpZ2h0IGZpbGUgZm9yIHR5cGVzLiAgUmVxdWlyZXMgRXh1YmVyYW50IGN0YWdzIGFuZCBhd2sKIHR5cGVzOiB0eXBlcy52aW0KIHR5cGVzLnZpbTogKi5bY2hdCi0JY3RhZ3MgLWk9Z3N0dVMgLW8tICouW2NoXSB8XAorCWN0YWdzIC0tYy1raW5kcz1nc3R1IC1vLSAqLltjaF0gfFwKIAkJYXdrICdCRUdJTntwcmludGYoInN5bnRheCBrZXl3b3JkIFR5cGVcdCIpfVwKIAkJCXtwcmludGYoIiVzICIsICQkMSl9RU5Ee3ByaW50ICIifScgPiAkQAogCkBAIC00NTA0LDcgKzQ0NjksNyBAQAogCiBbTm90ZTogVGhlIGN1cnNvckNvbG9yIGlzIHJlcXVpcmVkIHRvIHdvcmsgYXJvdW5kIGEgYnVnLCB3aGljaCBjaGFuZ2VzIHRoZQogY3Vyc29yIGNvbG9yIHRvIHRoZSBjb2xvciBvZiB0aGUgbGFzdCBkcmF3biB0ZXh0LiAgVGhpcyBoYXMgYmVlbiBmaXhlZCBieSBhCi1uZXdlciB2ZXJzaW9uIG9mIHh0ZXJtLCBidXQgbm90IGV2ZXJ5Ym9keSBpcyBpdCB1c2luZyB5ZXQuXQorbmV3ZXIgdmVyc2lvbiBvZiB4dGVybSwgYnV0IG5vdCBldmVyeWJvZHkgaXMgdXNpbmcgaXQgeWV0Ll0KIAogVG8gZ2V0IHRoZXNlIHJpZ2h0IGF3YXksIHJlbG9hZCB0aGUgLlhkZWZhdWx0cyBmaWxlIHRvIHRoZSBYIE9wdGlvbiBkYXRhYmFzZQogTWFuYWdlciAoeW91IG9ubHkgbmVlZCB0byBkbyB0aGlzIHdoZW4geW91IGp1c3QgY2hhbmdlZCB0aGUgLlhkZWZhdWx0cyBmaWxlKTogPgpAQCAtNDUyMCw3ICs0NDg1LDcgQEAKIAlYVGVybSpjdXJzb3JDb2xvcjoJV2hpdGUKIAogCQkJCQkJCSpocHRlcm0tY29sb3IqCi1UaGVzZSBzZXR0aW5ncyB3b3JrIChtb3JlIG9yIGxlc3MpIGZvciBhIGhwdGVybSwgd2hpY2ggb25seSBzdXBwb3J0cyA4CitUaGVzZSBzZXR0aW5ncyB3b3JrIChtb3JlIG9yIGxlc3MpIGZvciBhbiBocHRlcm0sIHdoaWNoIG9ubHkgc3VwcG9ydHMgOAogZm9yZWdyb3VuZCBjb2xvcnM6ID4KICAgIDppZiBoYXMoInRlcm1pbmZvIikKICAgIDogIHNldCB0X0NvPTgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3NyY2gudHh0IGIvcnVudGltZS9kb2MvdGFnc3JjaC50eHQKaW5kZXggMGFjZGYyYy4uNzFiYmEwOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFnc3JjaC50eHQKKysrIGIvcnVudGltZS9kb2MvdGFnc3JjaC50eHQKQEAgLTEsNCArMSw0IEBACi0qdGFnc3JjaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnRhZ3NyY2gudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDEzMDE2ZjYuLmExYzg1ZjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBNYXkgMDcKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAwNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMCw5ICszMCw0NzYgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitQYXRjaCB0byBtYWtlIHZpcnRjb2woWzEyMywgJyQnXSkgZG8gdGhlIHJpZ2h0IHRoaW5nLiAoTWljaGFlbCBTY2hhYXApCisKK0luc2VydCBtb2RlIGNvbXBsZXRpb246IENUUkwtTiBhbmQgQ1RSTC1QIHdvcmsgZGlmZmVyZW50bHkgYW5kIHRoZXkgYm90aCBkb24ndAord29yayBhcyBleHBlY3RlZC4gKEJlcm5oYXJkIFdhbGxlLCAyMDA3IEZlYiAyNykKKworZ2xvYigpIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBzaW5nbGUgcXVvdGVzIGFuZCAnc2hlbGwnIHNldCB0byAvYmluL3NoLgorKEFkcmkgVmVyaG9lZiwgQ2hhcmxlcyBDYW1wYmVsbCAyMDA3IE1hciAyNikKKworU3BsaXR0aW5nIHF1aWNrZml4IHdpbmRvdyBtZXNzZXMgdXAgd2luZG93IGxheW91dC4gKE1hcml1cyBHZWRtaW5hcywgMjAwNyBBcHIKKzI1KQorCitSZXBsYWNlIGNjb21wbGV0ZS52aW0gYnkgY3BwY29tcGxldGUudmltIGZyb20gd3d3LnZpbS5vcmc/ICBzY3JpcHQgMTUyMAorKE1hcnRpbiBTdHViZW5zY2hyb3R0KQorICAgIGN0YWdzIC1SIC0tYysrLWtpbmRzPStwIC0tZmllbGRzPStpYVMgLS1leHRyYT0rcSAuCisKK01ha2luZyB0aGUgR2VybWFuIHNoYXJwIHMgdXBwZXJjYXNlIGRvZXNuJ3Qgd29yayBwcm9wZXJseTogb25lIGNoYXJhY3RlciBsZXNzCitpcyB1cHBlcmNhc2VkIGluICJnVWUiLgorQWxzbzogbGF0aW4yIGhhcyB0aGUgc2FtZSBjaGFyYWN0ZXIgYnV0IGl0IGlzbid0IHVwcGVyY2FzZWQgdGhlcmUuCisKK01hYzogQWZ0ZXIgYSAiOnZzcGxpdCIgdGhlIGxlZnQgc2Nyb2xsYmFyIGRvZXNuJ3QgYXBwZWFyIHVudGlsICdjb2x1bW5zJyBpcworY2hhbmdlZCBvciB0aGUgd2luZG93IGlzIHJlc2l6ZWQuCisKK01hYzogUGF0Y2ggZm9yIE1hYyBHVUkgdGFibGluZS4gKE5pY29sYXMgV2ViZXIsIDIwMDYgSnVsIDE4LCBVcGRhdGUgMjAwNyBGZWIpCisgICAgTmV3IHVwZGF0ZSB2NiB+L3RtcC9ndWl0YWIudjYuZGlmZiAoS3lsZSBXaGVlbGVyKQorCitXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGEgInAiIG9mIGEgYmxvY2sganVzdCBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUKK2luc2VydHMgYmVmb3JlIHRoZSBjdXJzb3IuIChFbmdlbGtlKQorCitVc2luZyBBYXAgdG8gYnVpbGQgVmltOiBhZGQgcmVtYXJrcyBhYm91dCBob3cgdG8gc2V0IHBlcnNvbmFsIHByZWZlcmVuY2VzLgorRXhhbXBsZSBvbiBodHRwOi8vd3d3LmNhbG1hci53cy90bXAvYWFwLmh0bWwKKworR1RLOiAnYnNkaXInIGRvZXNuJ3Qgd29yay4gIFNvbWV0aW1lcyBnZXQgYSAiZ3RrIGNyaXRpY2FsIGVycm9yIi4KK01vdmVkIHNvbWUgY29kZSB0byBhcHBlbmQgZmlsZSBuYW1lIHRvIGZ1cnRoZXIgZG93biBpbiBndWlfZ3RrLmMKK2d1aV9tY2hfYnJvd3NlKCksIGJ1dCAibGFzdCIgdmFsdWUgb2YgJ2JzZGlyJyBzdGlsbCBkb2Vzbid0IHdvcmsuCisKK0Mgc3ludGF4OiAiI2RlZmluZSB4IHsiICBUaGUgbWFjcm8gc2hvdWxkIHRlcm1pbmF0ZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLAorbm90IGNvbnRpbnVlIGluIHRoZSBuZXh0IGxpbmUuIChLZWx2aW4gTGVlLCAyMDA2IE1heSAyNCkKKworQyBzeW50YXg6IHt9IGluc2lkZSAoKSBjYXVzZXMgZm9sbG93aW5nIHt9IHRvIGJlIGhpZ2hsaWdodGVkIGFzIGVycm9yLgorKE1pY2hhbGlzIEdpYW5uYWtpZGlzLCAyMDA2IEp1biAxKQorCitHbm9tZSBpbXByb3ZlbWVudHM6IEVkd2FyZCBDYXRtdXIsIDIwMDcgSmFuIDcKKyAgICBBbHNvIHVzZSBTYXZlL0Rpc2NhcmQgZm9yIG90aGVyIEdVSXMKKworTmV3IFBIUCBzeW50YXggZmlsZSwgdXNlIGl0PyAoUGV0ZXIgSG9kZ2UpCisKKydmb2xkY29sdW1uJyBpbiBtb2RlbGluZSBhcHBsaWVkIHRvIHdyb25nIHdpbmRvdyB3aGVuIHVzaW5nIGEgc2Vzc2lvbi4gKFRlZW11CitMaWtvbmVuLCBNYXJjaCAxOSkKKworU3ludGF4IGhpZ2hsaWdodGluZyB3cm9uZyBmb3IgdHJhbnNwYXJlbnQgcmVnaW9uLiAoRG91ZyBLZWFybnMsIDIwMDcgRmViIDI2KQorCitNb3JlIEFtaWdhT1M0IHBhdGNoZXMuIChQZXRlciBCZW5ndHNzb24sIE5vdiA5KQorCitBZGQgdjpzZWFyY2hmb3J3YXJkIHZhcmlhYmxlLiAgUGF0Y2ggYnkgWWFrb3YgTGVybmVyLCAyMDA2IE5vdiAxOC4KKworUmVkcmF3IHByb2JsZW0gaW4gbG9vcC4gKFlha292IExlcm5lciwgMjAwNiBTZXAgNykKKworQWRkIG9wdGlvbiBzZXR0aW5ncyB0byBoZWxwIGZ0cGx1Z2luLiAoRGF2aWQgRWdndW0sIDIwMDYgRGVjIDE4KQorCitVc2UgbmV3IGR1dGNoIHdvcmRsaXN0IGZvciBzcGVsbGluZz8gIGh0dHA6Ly93d3cub3BlbnRhYWwub3JnLworU2VlIHJlbWFya3MgZnJvbSBBZHJpLCAyMDA3IEZlYiA5LgorCitXaGVuIG9wZW5pbmcgcXVpY2tmaXggd2luZG93LCBkaXNhYmxlIHNwZWxsIGNoZWNraW5nPworCitXaW4zMjogV2hlbiAnZW5jb2RpbmcnIGlzICJsYXRpbjEiICdpZ25vcmVjYXNlJyBkb2Vzbid0IHdvcmsgZm9yIGNoYXJhY3RlcnMKK3dpdGggdW1sYXV0LiAoSm9hY2hpbSBIb2ZtYW5uKSAgdG91cHBlcl90YWJbXSBhbmQgdG9sb3dlcl90YWJbXSBhcmUgbm90IGZpbGxlZAorcHJvcGVybHk/CisKK0NvbXBsZXRpb246IFNjYW5uaW5nIGZvciB0YWdzIGRvZXNuJ3QgY2hlY2sgZm9yIHR5cGVkIGtleSBub3cgYW5kIHRoZW4/CitIYW5ncyBmb3IgYWJvdXQgNSBzZWNvbmRzLiAgQXBwZWFycyB0byBiZSBjYXVzZWQgYnkgZmluZGluZyBpbmNsdWRlIGZpbGVzIHdpdGgKKyJmb28vKioiIGluICdwYXRoJy4gIChLYWxpc2lhaywgMjAwNiBKdWx5IDE1KQorCitDb21wbGV0aW9uOiBXaGVuICdjb21wbGV0ZW9wdCcgaGFzICJsb25nZXN0IiBhbmQgdGhlcmUgaXMgb25lIG1hdGNoIHRoZQorbWVzc2FnZSBpcyAiYmFjayBhdCBvcmlnaW5hbCIgYW5kIHR5cGluZyBhIGNoYXIgZG9lc24ndCBsZWF2ZSBjb21wbGV0aW9uIG1vZGUuCisoSWdvciBQcmlzY2hlcG9mZiwgMjAwNiBPY3QgNSkKKworQ29tcGxldGlvbjogV2hlbiB1c2luZyBDVFJMLVggTyBhbmQgdGhlcmUgaXMgb25seSAic3RydWN0LiIgYmVmb3JlIHRoZSBjdXJzb3IsCit0eXBpbmcgb25lIGNoYXIgdG8gcmVkdWNlIHRoZSBtYXRjaGVzLCB0aGVuIEJTIGNvbXBsZXRpb24gc3RvcHMuICBTaG91bGQga2VlcAorY29tcGxldGlvbiBpZiBzdGlsbCBubyBsZXNzIHRoYW4gd2hhdCB3ZSBzdGFydGVkIHdpdGguCisKK0NvbXBsZXRpb246IGRvbid0IHN0b3AgY29tcGxldGlvbiB3aGVuIHR5cGluZyBhIHNwYWNlIHdoZW4gY29tcGxldGluZyBmdWxsCitsaW5lcz8gIEFsc28gd2hlbiBjb21wbGV0aW5nIGZpbGUgbmFtZXM/ICBPbmx5IHN0b3AgY29tcGxldGlvbiB3aGVuIHRoZXJlIGFyZQorbm8gbWF0Y2hlcz8KK0FmdGVyIHVzaW5nIEJTIGNvbXBsZXRpb24gb25seSBzdG9wcyB3aGVuIHR5cGluZyBhIHNwYWNlLiAgTWFueSBwZW9wbGUgd2FudCB0bworc3RvcCBhdCBub24td29yZCBjaGFyYWN0ZXJzLCBlLmcuLCAnKCcuICBBZGQgYW4gb3B0aW9uIGZvciB0aGlzPyAgT3IgY2hlY2sKK3ZpbV9pc3dvcmRjKCkgYmVmb3JlIGNhbGxpbmcgaW5zX2NvbXBsX2FkZGxlYWRlcigpPworCitzZWFyY2hwb3MoKSBkb2Vzbid0IHVzZSBtYXRjaCB1bmRlciBjdXJzb3IgYXQgc3RhcnQgb2YgbGluZS4gKFZpa3RvcgorS29qb3VoYXJvdiwgMjAwNiBOb3YgMTYpCisKK1doZW4gRkVBVF9CWVRFT0ZGIGlzIGRlZmluZWQgYnV0IEZFQVRfTkVUQkVBTlNfSU5URyBpcyBub3QgY29tcGlsaW5nIGZhaWxzLgorQWRkIEZFQVRfQllURU9GRiB0byB0aGUgY2hlY2sgYXQgbGluZSAxMTgwIGluIGZlYXR1cmUuaAorCitDb2xvciBmb3IgY1VzZXJMYWJlbCBzaG91bGQgZGlmZmVyIGZyb20gY2FzZSBsYWJlbCwgc28gdGhhdCBhIG1pc3Rha2UgaW4gYQorc3dpdGNoIGxpc3QgaXMgbm90aWNlZDoKKyAgICBzd2l0Y2ggKGkpCisgICAgeworICAgIGNhc2UgMToKKyAgICBmb29iYXI6CisgICAgfQorCisiOnMiIGNvbW1hbmQgcmVtb3ZlcyBjb21iaW5pbmcgY2hhcmFjdGVycy4gKFJvbiBBYXJvbiwgMjAwNiBNYXkgMTcsIDIwMDYgRGVjIDcpCisKK0xvb2sgYXQgaHR0cDovL3d3dy5ndGstc2VydmVyLm9yZy8gLiAgSXQgaGFzIGEgVmltIHNjcmlwdCBpbXBsZW1lbnRhdGlvbi4KKworQ2hhbmdlcyBmb3IgV2luMzIgbWFrZWZpbGUuIChNaWtlIFdpbGxpYW1zLCAyMDA3IEphbiAyMiwgQWxleGVpIEFsZXhhbmRyb3YsCisyMDA3IEZlYiA4KQorCitQYXRjaCBmb3IgV2luMzIgY2xpcGJvYXJkIHVuZGVyIEN5Z3dpbi4gKEZyb2RhayBCYWtzaWssIEZlYiAxNSkKKyAgICBTdXRjbGlmZmUgc2F5cyBpdCB3b3JrcyB3ZWxsLgorCitXaW4zMjogUGF0Y2ggZm9yIGNvbnZlcnRfZmlsdGVyVygpLiAoVGFybyBNdXJhb2thLCAyMDA3IE1hciAyKQorCitXaW4zMjogWFBNIHN1cHBvcnQgb25seSB3b3JrcyB3aXRoIHBhdGggd2l0aG91dCBzcGFjZXMuICBQYXRjaCBieSBNYXRoaWFzCitNaWNoYWVsaXMsIDIwMDYgSnVuIDkuICBBbm90aGVyIHBhdGNoIGZvciBtb3JlIHBhdGggbmFtZXMsIDIwMDYgTWF5IDMxLgorTmV3IHZlcnNpb246IGh0dHA6Ly9tZW1iZXJzLnRjbmV0LmNoL21pY2hhZWxpcy92aW0vcGF0Y2hlcy56aXAgKGFsc28gZm9yIG90aGVyCitwYXRjaGVzIGJ5IE1hdGhpYXMsIHNlZSBtYWlsIEZlYiAyMikKKworV2luMzI6IGNvbXBpbGluZyB3aXRoIG5vcm1hbCBmZWF0dXJlcyBhbmQgT0xFIGZhaWxzLiAgUGF0Y2ggYnkgTWF0aGlhcworTWljaGFlbGlzLCAyMDA2IEp1biA0LgorCitXaW4zMjogZWNobyBkb2Vzbid0IHdvcmsgZm9yIGd2aW0uZXhlLm1uZi4gIFVzZSBpbmxpbmUgZmlsZS4gIFBhdGNoIGJ5IE1hdGhpYXMKK01pY2hhZWxpcy4gIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL3ZpbWRldi9tZXNzYWdlLzQzNzY1CitQYXRjaCB0aGF0IGluY2x1ZGVzIHRoaXMgYW5kIGRvZXMgbW9yZSBieSBHZW9yZ2UgUmVpbGx5LCAyMDA3IEZlYiAxMgorCitXaW4xNjogaW5jbHVkZSBwYXRjaGVzIHRvIG1ha2UgV2luMTYgdmVyc2lvbiB3b3JrLiAoVmluY2UgTmVncmksIDIwMDYgTWF5IDIyKQorCitXaW4zMjogYWZ0ZXIgIltJIiBzaG93aW5nIG1hdGNoZXMsIHNjcm9sbCB3aGVlbCBtZXNzZXMgdXAgc2NyZWVuLiAoVHNha2lyaWRpcywKKzIwMDcgRmViIDE4KQorCitXaW4zMjogdXNpbmcgQ1RSTC1TIGluIEluc2VydCBtb2RlIGRvZXNuJ3QgcmVtb3ZlIHRoZSAiKyIgZnJvbSB0aGUgdGFiIHBhZ2VzCitsYWJlbC4gIChUc2FraXJpZGlzLCAyMDA3IEZlYiAxOCkKKworV2luMzI6IHJlbW90ZSBlZGl0aW5nIGRvZXNuJ3Qgd29yayB3aGVuIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBuYW1lIGNvbnRhaW5zCisiW10iLiAoSXZhbiBUaXNoY2hlbmtvLCAyMDA3IE1hcmNoIDEpCisKK1dpbjY0OiBkaWZmLmV4ZSBjcmFzaGVzIG9uIFdpbjY0LiAoSnVsaWFubmUgQmFpbGV5LCAyMDA2IERlYyAxMikKK0J1aWxkIGFub3RoZXIgZGlmZi5leGUgc29tZWhvdz8KKworV2luNjQ6IFNlZWsgZXJyb3IgaW4gc3dhcCBmaWxlIGZvciBhIHZlcnkgYmlnIGZpbGUgKDMgR2J5dGUpLiAgQ2hlY2sgc3RvcmluZworcG9pbnRlciBpbiBsb25nIGFuZCBzZWVrIG9mZnNldCBpbiA2NCBiaXQgdmFyLgorCitXaGVuIGRvaW5nICJndmltIC0tcmVtb3RlLXRhYiBmb28iIHdoaWxlIGd2aW0gaXMgbWluaW1pemVkIHRoZSB0YWIgcGFnZXMgbGluZQorb25seSBzaG93cyB0aGUgY3VycmVudCBsYWJlbCwgbm90IHRoZSBvdGhlcnMuCisKK1Byb2JsZW0gZmluZGluZyBzd2FwIGZpbGUgZm9yIHJlY292ZXJ5LiAoR2F1dGFtIEl5ZXIsIDIwMDYgTWF5IDE2KQorCitXaGVuIHNldHRpbmcgJ2tleW1hcCcgdHdpY2UgdGhlIGI6a2V5bWFwX25hbWUgdmFyaWFibGUgaXNuJ3Qgc2V0LiAoTWlsYW4KK0JlcnRhLCAyMDA3IE1hciA5KSAgSGFzIHNvbWV0aGluZyB0byBkbyB3aXRoICdpbWluc2VydCcuCisKK1Byb2JsZW0gd2l0aCBDdXJzb3JIb2xkST8gIChNYXggRHlja2hvZmYsIDIwMDYgTm92IDEwKQorCitVVEYtODogbWFwcGluZyBhIG11bHRpLWJ5dGUga2V5IHdoZXJlIHRoZSBzZWNvbmQgYnl0ZSBpcyAweDgwIGRvZXNuJ3QgYXBwZWFyCit0byB3b3JrLiAoVG9ueSBNZWNoZWx5bmNrLCAyMDA3IE1hcmNoIDIpCisKK1RoZSBzdHIyc3BlY2lhbCgpIGZ1bmN0aW9uIGRvZXNuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBwcm9wZXJseS4KK1BhdGNoIGZyb20gVmxhZGltaXIgVmljaG5pYWtvdiwgMjAwNyBBcHIgMjQuCitmaW5kX3NwZWNpYWxfa2V5KCkgYWxzbyBoYXMgdGhpcyBwcm9ibGVtLgorCitJbiBkZWJ1ZyBtb2RlLCB1c2luZyBDVFJMLVIgPSB0byBldmFsdWF0ZSBhIGZ1bmN0aW9uIGNhdXNlcyBzdGVwcGluZyB0aHJvdWdoCit0aGUgZnVuY3Rpb24uIChIYXJpIEtyaXNobmEgRGFyYSwgMjAwNiBKdW4gMjgpCisKKyI6bGV0ICZzaGlmdHdpZHRoID0gJ2FzZGYnIiBkb2Vzbid0IHByb2R1Y2UgYW4gZXJyb3IgbWVzc2FnZS4KKworQysrIGluZGVudGluZyB3cm9uZyB3aXRoICI9Ii4gKEphbWVzIEthbnplLCAyMDA3IEphbiAyNikKKworInp1ZyIgcmVwb3J0cyB3cm9uZyBmaWxlLiBwcm9ibGVtIHdpdGggTmFtZWJ1ZmY/IChMYXdyZW5jZSBLZXN0ZWxvb3QsIDIwMDYgU2VwCisxMCkKKworIjpsb2NrdmFyIiBzaG91bGQgdXNlIGNvcHlJRCB0byBhdm9pZCBlbmRsZXNzIGxvb3AuCisKK0d2aW06IGRpYWxvZyBmb3IgY2xvc2luZyBWaW0gc2hvdWxkIGNoZWNrIGlmIFZpbSBpcyBidXN5IHdyaXRpbmcgYSBmaWxlLiAgVGhlbgordXNlIGEgZGlmZmVyZW50IGRpYWxvZzogImJ1c3kgc2F2aW5nLCByZWFsbHkgcXVpdD8geWVzIC8gbm8iLgorCitXaW4zMjogZWRpdGluZyByZW1vdGUgZmlsZSBkOlxhWzFdXGFhLnR4dCBkb2Vzbid0IHdvcmsuIChMaXUgWXViYW8sIDIwMDYgTWF5CisyOSkKKworInp3IiBkb2Vzbid0IGFwcGVhciB0byB3b3JrLiAoTHVpcyBBIEZsb3JpdCwgMjAwNiBKdW4gMjMsIDI0KQorCisiZHciIGluIGEgbGluZSB3aXRoIG9uZSBjaGFyYWN0ZXIgZGVsZXRlcyB0aGUgbGluZS4gIFZpIGFuZCBudmkgZG9uJ3QgZG8gdGhpcy4KK0lzIGl0IGludGVudGlvbmFsIG9yIG5vdD8gKEtqZWxsIEFybmUgUmVrYWEpCisKK0NoZWNrIG90aGVyIGludGVyZmFjZXMgZm9yIGNoYW5naW5nIGN1cmJ1ZiBpbiBhIHdyb25nIHdheS4gIFBhdGNoIGxpa2UgZm9yCitpZl9ydWJ5LmMuCisKK1NwZWxsIGNoZWNraW5nIGluIHBvcHVwIG1lbnU6IElmIHRoZSBvbmx5IHByb2JsZW0gaXMgdGhlIGNhc2Ugb2YgdGhlIGZpcnN0CitjaGFyYWN0ZXIsIGRvbid0IG9mZmVyICJpZ25vcmUiIGFuZCAiYWRkIHRvIHdvcmQgbGlzdCIuCisKKyI6aGVscGdyZXAiIHNob3VsZCB1c2UgdGhlIGRpcmVjdG9yeSBmcm9tICdoZWxwZmlsZScuCisKK1RoZSBuZWVkX2ZpbGVpbmZvIGZsYWcgaXMgbWVzc3kuICBJbnN0ZWFkIG1ha2UgdGhlIG1lc3NhZ2UgcmlnaHQgYXdheSBhbmQgcHV0CitpdCBpbiBrZWVwX21zZz8KKworTW9yZS1wcm9tcHQgaXMgc2tpcHBlZCB3aGVuIGRvaW5nIHRoaXM7IChSYW5kYWxsIFcuIE1vcnJpcywgSnVuIDE3KQorICAgIDphdQorICAgIDxTcGFjZT4KKyAgICBiCisgICAgPFNwYWNlPgorCitFZGl0aW5nIGEgZmlsZSByZW1vdGVseSB0aGF0IG1hdGNoZXMgJ3dpbGRpZ25vcmUnIHJlc3VsdHMgaW4gYSAibm8gbWF0Y2giCitlcnJvci4gIFNob3VsZCBvbmx5IGhhcHBlbiB3aGVuIHRoZXJlIGFyZSB3aWxkYXJkcywgbm90IHdoZW4gZ2l2aW5nIHRoZSBmaWxlCituYW1lIGxpdGVyYWxseSwgYW5kIGVzcC4gaWYgdGhlcmUgaXMgb25seSBvbmUgbmFtZS4KKworV2hlbiAnZXhwYW5kdGFiJyBpcyBzZXQgdGhlbiBhIFRhYiBjb3BpZWQgZm9yICdjb3B5aW5kZW50JyBpcyBleHBhbmRlZCB0bworc3BhY2VzLCBldmVuIHdoZW4gJ3ByZXNlcnZlaW5kZW50JyBpcyBzZXQuIChBbGV4ZWkgQWxleGFuZHJvdiwgTWFyIDcpCisKIFRlc3QgNjEgZmFpbHMgc29tZXRpbWVzLiAgVGhpcyBpcyBhIHRpbWluZyBwcm9ibGVtOiAic2xlZXAgMiIgc29tZXRpbWVzIHRha2VzCiBsb25nZXIgdGhhbiAyIHNlY29uZHMuCiAKK1ZNUzogd2hpbGUgZWRpdGluZyBhIGZpbGUgZm91bmQgaW4gY29tcGxleCwgVmltIHdpbGwgc2F2ZSBmaWxlIGludG8gdGhlIGZpcnN0CitkaXJlY3Rvcnkgb2YgdGhlIHBhdGggYW5kIG5vdCB0byB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIGZpbGUuCisoWm9sdGFuIEFycGFkZmZ5KQorCitpbnB1dCgpIGNvbXBsZXRpb24gc2hvdWxkIG5vdCBpbnNlcnQgYSBiYWNrc2xhc2ggdG8gZXNjYXBlIGEgc3BhY2UgaW4gYSBmaWxlCituYW1lPworCitnZXRwb3MoKS9zZXRwb3MoKSBkb24ndCBpbmNsdWRlIGN1cnN3YW50LiAgZ2V0cG9zKCkgY291bGQgcmV0dXJuIGEgZmlmdGgKK2VsZW1lbnQuICBzZXRwb3MoKSBjb3VsZCBhY2NlcHQgYW4gb3B0aW9uYWwgZmlmdGggZWxlbWVudC4KKworUnVieSBjb21wbGV0aW9uIGlzIGluc2VjdXJlLiAgQ2FuIHRoaXMgYmUgZml4ZWQ/CisKKyI6Y29uZmlybSB3IiBkb2VzIGdpdmUgYSBwcm9tcHQgd2hlbiAncmVhZG9ubHknIGlzIHNldCwgYnV0IG5vdCB3aGVuIHRoZSBmaWxlCitwZXJtaXNzaW9ucyBhcmUgcmVhZC1vbmx5LiAgQm90aCBjYW4gYmUgb3ZlcnJ1bGVkIGJ5ICI6dyEiIHRodXMgaXQgd291bGQgYmUKK2xvZ2ljYWwgdG8gZ2V0IGEgcHJvbXB0IGZvciBib3RoLiAoTWljaGFlbCBTY2hhYXApCisKK1doZW4gJ2JhY2t1cHNraXAnIGlzIHNldCBmcm9tICRURU1QIHNwZWNpYWwgY2hhcmFjdGVycyBuZWVkIHRvIGJlIGVzY2FwZWQuCisocGF0Y2ggYnkgR3JlbWJvd2lldHosIDIwMDcgRmViIDI2LCBub3QgcXVpdGUgcmlnaHQpCitBbm90aGVyIHByb2JsZW0gaXMgdGhhdCBmaWxlX3BhdF90b19yZWdfcGF0KCkgZG9lc24ndCByZWNvZ25pemUgIlxcIiwgc28gIlxcKCIgCit3aWxsIGJlIHNlZW4gYXMgYSBwYXRoIHNlcGFyYXRvciBwbHVzICJcKCIuCisKKyI6cHl0aG9uIG9zLmNoZGlyKCcvdG1wJykiIG1ha2VzIHNob3J0IGJ1ZmZlciBuYW1lcyBpbnZhbGlkLiAoWGF2aWVyIGRlIEdheWUpCitDaGVjayBkaXJlY3RvcnkgYW5kIGNhbGwgc2hvcnRlbl9mbmFtZXMoKT8KKworYXVjbWRfcHJlcGJ1ZigpIHNob3VsZCBhbHNvIHVzZSBhIHdpbmRvdyBpbiBhbm90aGVyIHRhYiBwYWdlLgorCitTdWJzdGl0dXRpbmcgYW4gYXJlYSB3aXRoIGEgbGluZSBicmVhayB3aXRoIGFsbW9zdCB0aGUgc2FtZSBhcmVhIGRvZXMgY2hhbmdlCit0aGUgVmlzdWFsIGFyZWEuICBDYW4gdGhpcyBiZSBmaXhlZD8gKEphbWVzIFZlZ2EsIDIwMDYgU2VwdCAxNSkKKworV2luZG93cyBpbnN0YWxsZXIgY291bGQgYWRkIGEgIm9wZW4gaW4gbmV3IHRhYiBvZiBleGlzdGluZyBWaW0iIG1lbnUgZW50cnkuCisKKzpzL2UvRS9sIG5vdCBvbmx5IGxpc3RzIGJ1dCBhbHNvIHNob3dzIGxpbmUgbnVtYmVyLiAgSXMgdGhhdCByaWdodD8KKyhZYWtvdiBMZXJuZXIsIDIwMDYgSnVsIDI3KQorCitHVUk6IFdoZW4gY29tYmluaW5nIGZnIGVuIGJnIG1ha2Ugc3VyZSB0aGV5IGFyZSBub3QgZXF1YWwuCisKK1VzZSBkaWZmZXJlbnQgcHRfYnIgZGljdGlvbmFyeSBmb3Igc3BlbGwgY2hlY2tpbmcuIChKYWNrc29uIEEuIEFxdWlubywgMjAwNgorSnVuIDUpCisKK01hYzogVXNpbmcgZ3ZpbTogbmV0cncgd2luZG93IGRpc2FwcGVhcnMuIChOaWNrIExvLCAyMDA2IEp1biAyMSkKKworV2hlbiAnYm9tYicgaXMgc2V0IG9yIHJlc2V0IHRoZSBmaWxlIHNob3VsZCBiZSBjb25zaWRlcmVkIG1vZGlmaWVkLiAoVG9ueQorTWVjaGVseW5jaykgIEhhbmRsZSBsaWtlICdlbmRvZmxpbmUnLgorCitBZGQgYW4gb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGNoYXJhY3RlciB0byB1c2Ugd2hlbiBhIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXIgaXMKK21vdmVkIHRvIHRoZSBuZXh0IGxpbmUuICBEZWZhdWx0ICc+Jywgc2V0IHRvIGEgc3BhY2UgdG8gYmxhbmsgaXQgb3V0LiAgQ2hlY2sKK3RoYXQgY2hhciBpcyBzaW5nbGUgd2lkdGggd2hlbiBpdCdzIHNldCAoY29tcGFyZSB3aXRoICdsaXN0Y2hhcnMnKS4KKworVXBkYXRlIG1haW4uYWFwIGZvciBpbnN0YWxsaW5nIG9uIHRoZSBNYWMuCisKK1RoZSBnZW5lcmF0ZWQgdmltLmJhdCBjYW4gYXZvaWQgdGhlIGxvb3AgZm9yIE5ULiAoQ2FybCBabW9sYSwgMjAwNiBTZXAgMykKKworU2Vzc2lvbiBmaWxlIGNyZWF0aW9uOiAnYXV0b2NoZGlyJyBjYXVzZXMgdHJvdWJsZS4gIEtlZXAgaXQgb2ZmIHVudGlsIGFmdGVyCitsb2FkaW5nIGFsbCBmaWxlcy4KKworQyBjb21wbGV0aW9uOiBkb2Vzbid0IHdvcmsgYWZ0ZXIgYWFbMF0tPiwgd2hlcmUgYWEgaXMgYW4gYXJyYXkgb2Ygc3RydWN0dXJlcy4KKyhXLiBkZSBIb29nLCAyMDA2IEF1ZyAxMikKKworVGhlIHNwZWxsZmlsZSBwbHVnaW4gY2hlY2tzIGZvciBhIHdyaXRhYmxlICJzcGVsbCIgZGlyZWN0b3J5LiAgQSB1c2VyIG1heSBoYXZlCithIHdyaXRhYmxlIHJ1bnRpbWUgZGlyZWN0b3J5IHdpdGhvdXQgYSAic3BlbGwiIGRpcmVjdG9yeSwgaXQgY291bGQgYmUgY3JlYXRlZAordGhlbi4KKworVGhlc2UgdHdvIGFiYnJldmlhdGlvbnMgZG9uJ3QgZ2l2ZSB0aGUgc2FtZSByZXN1bHQ6CisJbGV0IGFzZGZhc2RmID0gInh5elw8TGVmdD4iCisJY2FiYnIgWFhYIDxDLVI+PWFzZGZhc2RmPENSPgorCWNhYmJyIFlZWSB4eXo8TGVmdD4KKworTWljaGFlbCBEaWV0cmljaDogbWF4aW1pemVkIGd2aW0gc29tZXRpbWVzIGRpc3BsYXlzIG91dHB1dCBvZiBleHRlcm5hbCBjb21tYW5kCitwYXJ0bHkuICgyMDA2IERlYyA3KQorCitJbiBGaWxlQ2hhbmdlZFNoZWxsIGNvbW1hbmQgaXQncyBubyBsb25nZXIgYWxsb3dlZCB0byBzd2l0Y2ggdG8gYW5vdGhlcgorYnVmZmVyLiAgQnV0IHRoZSBjaGFuZ2VkIGJ1ZmZlciBtYXkgZGlmZmVyIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLCBob3cgdG8KK3JlbG9hZCBpdCB0aGVuPworCitOZXcgc3ludGF4IGZpbGVzIGZvciBmc3RhYiBhbmQgcmVzb2x2IGZyb20gUmFkdSBEaW5laXUsIERhdmlkIE5lY2FzIGRpZAorcHJldmlvdXMgdmVyc2lvbi4KKworRm9yIEFhcDogaW5jbHVkZSBhIGNvbmZpZy5hcmcuZXhhbXBsZSBmaWxlIHdpdGggaGludHMgaG93IHRvIHVzZSBjb25maWcuYXJnLgorCitMaW51eCBkaXN0cmlidXRpb25zOgorLSBTdWdnZXN0IGNvbXBpbGluZyB4dGVybSB3aXRoIC0tZW5hYmxlLXRjYXAtcXVlcnksIHNvIHRoYXQgbnIgb2YgY29sb3JzIGlzCisgIGtub3duIHRvIFZpbS4gIDg4IGNvbG9ycyBpbnN0ZWFkIG9mIDE2IHdvcmtzIGJldHRlci4gIFNlZSAiOmhlbHAKKyAgeGZyZWUteHRlcm0iLgorLSBTdWdnZXN0IGluY2x1ZGluZyBiYXJlICJ2aSIgYW5kICJ2aW0iIHdpdGggWDExLCBzeW50YXgsIGV0Yy4KKworQ29tcGxldGlvbiBtZW51OiBGb3IgYSB3cmFwcGluZyBsaW5lLCBjb21wbGV0aW5nIGEgbG9uZyBmaWxlIG5hbWUsIG9ubHkgdGhlCitzdGFydCBvZiB0aGUgcGF0aCBpcyBzaG93biBpbiB0aGUgbWVudS4gIFNob3VsZCBtb3ZlIHRoZSBtZW51IHRvIHRoZSByaWdodCB0bworc2hvdyBtb3JlIHRleHQgb2YgdGhlIGNvbXBsZXRpb25zLiAgU2hvcnRlbiB0aGUgaXRlbXMgdGhhdCBkb24ndCBmaXQgaW4gdGhlCittaWRkbGU/CisKK1doZW4gcnVubmluZyBpbnNpZGUgc2NyZWVuIGl0J3MgcG9zc2libGUgdG8ga2lsbCB0aGUgWCBzZXJ2ZXIgYW5kIHJlc3RhcnQgaXQKKyh1c2luZyBwdHkncyB0aGUgcHJvZ3JhbSBjYW4ga2VlcCBvbiBydW5uaW5nKS4gIFZpbSBkaWVzIGJlY2F1c2UgaXQgbG9vc2VzIHRoZQorY29ubmVjdGlvbiB0byB0aGUgWCBzZXJ2ZXIuICBDYW4gVmltIHNpbXBseSBxdWl0IHVzaW5nIHRoZSBYIHNlcnZlciBpbnN0ZWFkIG9mCitkeWluZz8gIEFsc28gcmVsZXZhbnQgd2hlbiBydW5uaW5nIGluIGEgY29uc29sZS4KKworQWNjZXNzaW5nIGZpbGUjdmFyIGluIGEgZnVuY3Rpb24gc2hvdWxkIG5vdCBuZWVkIHRoZSBnOiBwcmVwZW5kZWQuCisKK1doZW4gIjpjbiIgbW92ZXMgdG8gYW4gZXJyb3IgaW4gdGhlIHNhbWUgbGluZSB0aGUgbWVzc2FnZSBpc24ndCBzaG9ydGVuZWQuCitPbmx5IHNraXAgc2hvcnRlbmluZyBmb3IgIjpjYyI/CisKK1dpbjMyOiBUaGUgbWF0Y2hwYXJlbiBwbHVnaW4gZG9lc24ndCB1cGRhdGUgdGhlIG1hdGNoIHdoZW4gc2Nyb2xsaW5nIHdpdGggdGhlCittb3VzZSB3aGVlbC4gKElseWEgQm9iaXIsIDIwMDYgSnVuIDI3KQorCitXcml0ZSAibWFraW5nIHZpbSB3b3JrIGJldHRlciIgZm9yIHRoZSBkb2NzIChtb3N0bHkgcG9pbnRlcnMpOiAqbmljZSoKKyAgICAtIHNvdXJjaW5nICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCisgICAgLSBzZXR0aW5nICdtb3VzZScgdG8gImEiCisgICAgLSBnZXR0aW5nIGNvbG9ycyBpbiB4dGVybQorICAgIC0gY29tcGlsaW5nIFZpbSB3aXRoIFgxMSwgR1VJLCBldGMuCisKK1Byb2JsZW0gd2l0aCAiOmNhbGwiIGFuZCBkaWN0aW9uYXJ5IGZ1bmN0aW9uLiBIYXJpIEtyaXNobmEgRGFyYSwgQ2hhcmxlcworQ2FtcGJlbGwgMjAwNiBKdWwgMDYuCisKK1N5bnRheCBITCBlcnJvciBjYXVzZWQgYnkgImNvbnRhaW5lZGluIi4gKFBldGVyIEhvZGdlLCAyMDA2IE9jdCA2KQorCitHVEs6IFdoZW4gbWF4aW1pemluZyBWaW0gdGhlIHJlc3VsdCBpcyBzbGlnaHRseSBzbWFsbGVyLCB0aGUgZmlsbGVyIGJvcmRlciBpcworbm90IHRoZXJlLCBhbmQgdGhlICJtYXhpbWl6ZSIgYnV0dG9uIGlzIHN0aWxsIHRoZXJlLiAgQ2xpY2tpbmcgaXQgYWdhaW4gZG9lcworZ2l2ZSBhIG1heGltaXplZCB3aW5kb3cuIChEYXJyZW4gSGllYmVydCkKK1Byb2JsZW0gaXMgdGhhdCBndWlfbWNoX3NldF90ZXh0X2FyZWFfcG9zKCkgaXMgaW52b2tlZCB0byBjaGFuZ2UgdGhlIHRleHQgYXJlYQorc2l6ZSwgd2hpY2ggY2F1c2VzIHRoZSB0b3BsZXZlbCB3aW5kb3cgdG8gcmVzaXplLiAgV2hlbiBkb2luZyB0aGlzIHdoaWxlIHRoZQorc2l6ZSBpcyBhbHJlYWR5IHJpZ2h0IHRoZSBmaWxsZXIgcmVtYWlucyB0aGVyZS4KK0RldGVjdCB1c2luZyB0aGUgbWF4aW1pemUgYnV0dG9uIChHZGtXaW5kb3dTdGF0ZSBiaXQKK0dES19XSU5ET1dfU1RBVEVfTUFYSU1JWkVEKSBhbmQgc2V0IGl0IGFnYWluPworCitBbm90aGVyIHJlc2l6aW5nIHByb2JsZW0gd2hlbiBzZXR0aW5nICdjb2x1bW5zJyBhbmQgJ2xpbmVzJyB0byBhIHZlcnkgbGFyZ2UKK251bWJlci4gKFRvbnkgTWVjaGVseW5jaywgMjAwNyBGZWIgNikKKworTXV0dCBmaWxlcyBhcmUgbm90IGFsd2F5cyByZWNvZ25pemVkLiAgQ2hhbmdlIHBhdHRlcm4gdG8gaW5jbHVkZQorbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiAoR2FyeSBKb2huc29uLCAyMDA2IEp1bCAyNSkKKworUHJvYmxlbSB3aXRoIHVzaW5nIDpyZWRpciBpbiB1c2VyIGNvbW1hbmQgY29tcGxldGlvbiBmdW5jdGlvbj8gKEhhcmkgS3Jpc2huYQorRGFyYSwgMjAwNiBKdW5lIDIxKQorCitBZnRlciBzdGFydGluZyBWaW0sIHVzaW5nICcwIHRvIGp1bXAgc29tZXdoZXJlIGluIGEgZmlsZSwgIjpzcCIgZG9lc24ndCBjZW50ZXIKK3RoZSBjdXJzb3IgbGluZS4gIEl0IHdvcmtzIE9LIGFmdGVyIHNvbWUgb3RoZXIgY29tbWFuZHMuCisKK1NjcmVlbiByZWRyYXdpbmcgd2hlbiBjb250aW51b3VzbHkgdXBkYXRpbmcgdGhlIGJ1ZmZlciBhbmQgcmVzaXppbmcgdGhlCit0ZXJtaW5hbC4gKFlha292IExlcm5lciwgMjAwNiBTZXB0IDcpCisKK1dpbjMyOiBJcyBpdCBwb3NzaWJsZSB0byBoYXZlIGJvdGggcG9zdHNjcmlwdCBhbmQgV2luMzIgcHJpbnRpbmc/CitEb2VzIG11bHRpLWJ5dGUgcHJpbnRpbmcgd2l0aCAiOmhhcmRjb3B5IiB3b3JrPyAgQWRkIHJlbWFyayBpbiBkb2N1bWVudGF0aW9uCithYm91dCB0aGlzLgorCisndGhlc2F1cnVzJyBkb2Vzbid0IHdvcmsgd2hlbiAnaW5mZXJjYXNlJyBpcyBzZXQuIChNb2hzaW4sIDIwMDYgTWF5IDMwKQorCitUaGVyZSBzaG91bGQgYmUgc29tZXRoaW5nIGFib3V0IHNwZWxsIGNoZWNraW5nIGluIHRoZSB1c2VyIG1hbnVhbC4KKworQ2hlY2s6IFJ1bm5pbmcgVmltIGluIGEgY29uc29sZSBhbmQgc3RpbGwgaGF2aW5nIGNvbm5lY3QgdG8gdGhlIFggc2VydmVyIGZvcgorY29weS9wYXN0ZTogaXMgc3RvcHBpbmcgdGhlIFggc2VydmVyIGhhbmRsZWQgZ3JhY2VmdWxseT8gIFNob3VsZCBjYXRjaCB0aGUgWAorZXJyb3IgYW5kIHN0b3AgdXNpbmcgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlci4KKworUHJvYmxlbSB3aXRoICdjZHBhdGgnIG9uIE1TLVdpbmRvd3Mgd2hlbiBhIGRpcmVjdG9yeSBpcyBlcXVhbCB0byAkSE9NRS4gKDIwMDYKK0p1bCAyNiwgR2FyeSBKb2huc29uKQorCitJbiB0aGUgTmV0YmVhbnMgaW50ZXJmYWNlIGFkZCBhICJ2aW1ldmFsIiBmdW5jdGlvbiwgc28gdGhhdCB0aGUgb3RoZXIgc2lkZSBjYW4KK2NoZWNrIHRoZSByZXN1bHQgb2YgaGFzKCJwYXRjaDEzIikuCisKKyI6cHkiIGFza3MgZm9yIGFuIGFyZ3VtZW50LCAiOnB5IGFzZCIgdGhlbiBnaXZlcyB0aGUgZXJyb3IgdGhhdCAiOnB5IiBpc24ndAoraW1wbGVtZW50ZWQuICBTaG91bGQgYWxyZWFkeSBoYXBwZW4gZm9yICI6cHkiLgorCitBZGQgY29tbWFuZCBtb2RpZmllciB0aGF0IHNraXBzIHdpbGRjYXJkIGV4cGFuc2lvbiwgc28gdGhhdCB5b3UgZG9uJ3QgbmVlZCB0bworcHV0IGJhY2tzbGFzaGVzIGJlZm9yZSBzcGVjaWFsIGNoYXJzLCBvbmx5IGZvciB3aGl0ZSBzcGFjZS4KKworV2luMzIgR1VJOiBjb25maXJtKCkgd2l0aCB6ZXJvIGRlZmF1bHQgc2hvdWxkIG5vdCBoYXZlIGEgY2hvaWNlIHNlbGVjdGVkLgorCitXaW4zMjogV2hlbiB0aGUgR1VJIHRhYiBwYWdlcyBsaW5lIGlzIGRpc3BsYXllZCBWaW0ganVtcHMgZnJvbSB0aGUgc2Vjb25kYXJ5Cit0byB0aGUgcHJpbWFyeSBtb25pdG9yLiAoQWZ0b24gTGV3aXMsIDIwMDcgTWFyIDkpICBPbGQgcmVzaXppbmcgcHJvYmxlbT8KKworR1RLIEdVSTogV2hlbiB0aGUgY29tcGxldGlvbiBwb3B1cCBtZW51IGlzIHVzZWQgc2Nyb2xsaW5nIGFub3RoZXIgd2luZG93IGJ5Cit0aGUgc2Nyb2xsYmFyIGlzIE9LLCBidXQgdXNpbmcgdGhlIHNjcm9sbCB3aGVlbCBpdCBiZWhhdmVzIGxpbmUgPEVudGVyPi4KKworImNpdCIgdXNlZCBvbiA8Zm9vPjwvZm9vPiBkZWxldGVzIDxmb28+LiAgU2hvdWxkIG5vdCBkZWxldGUgYW55dGhpbmcgYW5kIHN0YXJ0CitpbnNlcnRpb24sIGxpa2UgImNpJyIgZG9lcyBvbiAiIi4gKE1pY2hhbCBCb3pvbikKKworQWxsb3cgbW9yZSB0aGFuIDMgIjptYXRjaCIgaXRlbXMuCisKK1RoZSBtYWdpYyBjbGlwYm9hcmQgZm9ybWF0ICJWaW1DbGlwYm9hcmQyIiBhcHBlYXJzIGluIHNldmVyYWwgcGxhY2VzLiAgU2hvdWxkCitiZSBvbmx5IG9uZS4KKworSXQncyBkaWZmaWN1bHQgdG8gZGVidWcgbnVtYmVyZWQgZnVuY3Rpb25zIChmdW5jdGlvbiBpbiBhIERpY3Rpb25hcnkpLiAgUHJpbnQKK3RoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSByZXNvbHZpbmcgaXQgdG8gYSBudW1iZXI/CisJbGV0IGQgPSB7fQorCWZ1biEgZC5mb28oKQorCSAgZWNobyAiaGVyZSIKKwllbmRmdW4KKwljYWxsIGQuZm9vKDkpCisKK0FkZCBhIG1hcmsgZm9yIHRoZSBvdGhlciBlbmQgb2YgdGhlIFZpc3VhbCBhcmVhIChWSXN1YWwgcG9zKS4gICc8IGFuZCAnPiBhcmUKK29ubHkgc2V0IGFmdGVyIFZpc3VhbCBtb2RlZCBpcyBlbmRlZC4KKworU21hbGwgcHJvYmxlbSBkaXNwbGF5aW5nIGRpZmYgZmlsbGVyIGxpbmUgd2hlbiBvcGVuaW5nIHdpbmRvd3Mgd2l0aCBhIHNjcmlwdC4KKyhEYXZpZCBMdXllciwgMjAwNyBNYXIgMSB+L01haWwvb2xkbWFpbC9tb29sL2luLjE1ODcyICkKKworV2hlbiBwYXR0ZXJuIGZvciAiOnNvcnQiIGlzIGVtcHR5LCB1c2UgbGFzdCBzZWFyY2ggcGF0dGVybi4gIEFsbG93cyB0cnlpbmcgb3V0Cit0aGUgcGF0dGVybiBmaXJzdC4gKEJyaWFuIE1jS2VlKQorCitJcyBpdCBhbGxvd2VkIHRoYXQgJ2JhY2t1cGV4dCcgaXMgZW1wdHk/ICBQcm9ibGVtcyB3aGVuIGJhY2t1cCBpcyBpbiBzYW1lIGRpcgorYXMgb3JpZ2luYWwgZmlsZT8gIElmIGl0J3MgT0sgZG9uJ3QgY29tcGFyZSB3aXRoICdwYXRjaG1vZGUnLiAoVGhpZXJyeSBDbG9zZW4pCisKK1BhdGNoIGZvciBzdXBwb3J0aW5nIGNvdW50IGJlZm9yZSBDUiBpbiBxdWlja2ZpeCB3aW5kb3cuIChBT1lBTUEgU2hvdGFybywgMjAwNworSmFuIDEpCisKK1BhdGNoIGZvciBhZGRpbmcgIjpsc2NzY29wZSIuIChOYXZkZWVwIFBhcmhhciwgMjAwNyBBcHIgMjY7IHVwZGF0ZSBBcHIgMjgpCisKK1BhdGNoIGZvciBpbXByb3ZpbmcgcmVnZXhwIHNwZWVkIGJ5IG5vdCBmcmVlaW5nIG1lbW9yeS4gKEFsZXhlaSBBbGV4YW5kcm92LAorMjAwNyBGZWIgNikKKworeHRlcm0gc2hvdWxkIGJlIGFibGUgdG8gcGFzcyBmb2N1cyBjaGFuZ2VzIHRvIFZpbSwgc28gdGhhdCBWaW0gY2FuIGNoZWNrIGZvcgorYnVmZmVycyB0aGF0IGNoYW5nZWQuICBQZXJoYXBzIGluIG1pc2MuYywgZnVuY3Rpb24gc2VsZWN0d2luZG93KCkuCitYdGVybSAyMjQgc3VwcG9ydHMgaXQhCisKK09tbmkgY29tcGxldGlvbiB0YWtlcyB0aGUgd3Jvbmcgc3RydWN0dXJlIGZvciB2YXJpYWJsZSBhcmd1bWVudHMuIChCaWxsCitNY0NhcnRoeSwgMjAwNyBGZWIgMTgpCisKK1doZW4gY29tcGxldGluZyBmcm9tIGFub3RoZXIgZmlsZSB0aGF0IHVzZXMgYSBkaWZmZXJlbnQgZW5jb2RpbmcgY29tcGxldGlvbgordGV4dCBoYXMgdGhlIHdyb25nIGVuY29kaW5nLiAgRS5nLiwgd2hlbiAnZW5jb2RpbmcnIGlzIHV0Zi04IGFuZCBmaWxlIGlzCitsYXRpbjEuICBFeGFtcGxlIGZyb20gR29tYmF1bHQgRGFtaWVuLCAyMDA3IE1hciAyNC4KKworQ29tcGxldGluZyAiOmVjaG9obCIgYXJndW1lbnQgc2hvdWxkIGluY2x1ZGUgIk5vbmUiLiAoT3JpIEF2dGFsaW9uKQorCisKK1ZpbSA3LjI6CistICAgU2VhcmNoIG9mZnNldCBkb2Vzbid0IHdvcmsgZm9yIG11bHRpYnl0ZSBjaGFyYWN0ZXIuICBQYXRjaCBmcm9tIFl1a2loaXJvCisgICAgTmFrYWRhaXJhLCAyMDA2IEp1bCAxOC4KKyAgICBDaGFuZ2VzIHRoZSBvZmZzZXQgZnJvbSBjb3VudGluZyBieXRlcyB0byBjb3VudGluZyBjaGFyYWN0ZXJzLgorLSAgIFJlbmFtZSB0aGUgdHV0b3IgZmlsZXMgZnJvbSB0dXRvci5nci4qIHRvIHR1dG9yLmVsLiouICBHcmVlY2UgdnMgR3JlZWsuCisgICAgTWFrZSBhbGwgdHV0b3IgZmlsZXMgYXZhaWxhYmxlIGluIHV0Zi04LgorLSAgIFJlbW92ZSAhIGZvciAiOmNnZXRmaWxlIiBhbmQgIjpsZ2V0ZmlsZSIuIChwYXRjaCBmcm9tIFllZ2FwcGFuIExha3NobWFuYW4sCisgICAgMjAwNyBNYXIgOSkKKy0gICBBZGQgYmxvd2Zpc2ggZW5jcnlwdGlvbi4gIE9wZW5zc2wgaGFzIGFuIGltcGxlbWVudGF0aW9uLiAgQWxzbyBieSBQYXVsCisgICAgS29jaGVyIChMR1BMKSwgY2xvc2UgdG8gb3JpZ2luYWwuICBNb2hzaW4gYWxzbyBoYXMgc29tZSBpZGVhcy4KKyAgICBUYWtlIGZvdXIgYnl0ZXMgYW5kIHR1cm4gdGhlbSBpbnRvIHVuc2lnbmVkIHRvIGF2b2lkIGJ5dGUtb3JkZXIgcHJvYmxlbXMuCisgICAgTmVlZCB0byBidWZmZXIgdXAgdG8gNyBieXRlcyB0byBhbGlnbiBvbiA4IGJ5dGUgYm91bmRhcmllcy4KKy0gICBSZW5hbWUgZG9jL3NxbC52aW0gZG9jL2Z0X3NxbC52aW0uCistICAgQ2hhbmdlICJjb21tYW5kLWxpbmUiIHRvICJbQ29tbWFuZCBMaW5lXSIgZm9yIHRoZSBjb21tYW5kIGxpbmUgYnVmZmVyCisgICAgbmFtZSBpbiBleF93aW5kb3coKS4KKy0gICBNb3ZlIGluY2x1ZGluZyBmY250bC5oIHRvIHZpbS5oLCBiZWZvcmUgT19OT0ZPTExPVywgYW5kIHJlbW92ZSBpdCBmcm9tIGFsbAorICAgIC5jIGZpbGVzLgorLSAgICI6e3JhbmdlfXNvdXJjZSI6IHNvdXJjZSB0aGUgbGluZXMgZnJvbSB0aGUgZmlsZS4KKwlZb3UgY2FuIGFscmVhZHkgeWFuayBsaW5lcyBhbmQgdXNlIDpAIiB0byBleGVjdXRlIHRoZW0uCisJTW9zdCBvZiBkb19zb3VyY2UoKSB3b3VsZCBub3QgYmUgdXNlZCwgbmVlZCBhIG5ldyBmdW5jdGlvbi4KKwlJdCdzIGVhc3kgd2hlbiBub3QgZG9pbmcgYnJlYWtwb2ludHMgb3IgcHJvZmlsaW5nLgorCisKK1BhdGNoZXM6CistICAgQWRkICdjc2NvcGVpZ25vcmVjYXNlJyBvcHRpb24uIChMaWFuZyBXZW56aGksIDIwMDYgU2VwdCAzKQorLSAgIEFyZ3VtZW50IGZvciBmZWVka2V5cygpIHRvIHByZXBlbmQgdG8gdHlwZWFoZWFkIChZYWtvdiBMZXJuZXIsIDIwMDYgT2N0CisgICAgMjEpCistICAgTG9hZCBpbnRsLmRsbCB0b28sIG5vdCBvbmx5IGxpYmludGwuZGxsLiAoTWlrZSBXaWxsaWFtcywgMjAwNiBNYXkgOSwgZG9jcworICAgIHBhdGNoIE1heSAxMCkKKy0gICBFeHRyYSBhcmd1bWVudCB0byBzdHJ0cmFucygpIHRvIHRyYW5zbGF0ZSBzcGVjaWFsIGtleXMgdG8gdGhlaXIgbmFtZSAoRXJpYworICAgIEFybm9sZCwgMjAwNiBNYXkgMjIpCistICAgJ3RocmVnbG9va2V4cCcgb3B0aW9uOiBvbmx5IG1hdGNoIHdpdGggZmlyc3Qgd29yZCBpbiB0aGVzYXVydXMgZmlsZS4KKyAgICAoSmFrc29uIEEuIEFxdWlubywgMjAwNiBKdW4gMTQpCistICAgTWFjOiBpbmRpY2F0ZSB3aGV0aGVyIGEgYnVmZmVyIHdhcyBtb2RpZmllZC4gKE5pY29sYXMgV2ViZXIsIDIwMDYgSnVuIDMwKQorLSAgIEFsbG93IG5lZ2F0aXZlICducndpZHRoJyBmb3IgbGVmdCBhbGlnbmluZy4gKE5hdGhhbiBMYXJlZG8sIDIwMDYgQXVnIDE2KQorLSAgIG1sX2FwcGVuZF9zdHJpbmcoKTogZWZmaWNpZW50bHkgYXBwZW5kIHRvIGFuIGV4aXN0aW5nIGxpbmUuIChCcmFkCisgICAgQmV2ZXJpZGdlLCAyMDA2IEF1ZyAyNikgIFVzZSBpbiBzb21lIHNpdHVhdGlvbnMsIGUuZy4sIHdoZW4gcGFzdGluZyBhCisgICAgY2hhcmFjdGVyIGF0IGEgdGltZT8KKy0gICBnZXR0YWJ2YXIoKSBhbmQgc2V0dGFidmFyKCkgZnVuY3Rpb25zLiAoWWVnYXBwYW4gTGFrc2htYW5hbiwgMjAwNiBTZXAgOCkKKy0gICByZWNvZ25pemUgaGV4IG51bWJlcnMgYmV0dGVyLiAoTWFyayBNYW5uaW5nLCAyMDA2IFNlcCAxMykKKwogCiBBd2FpdGluZyB1cGRhdGVkIHBhdGNoZXM6CiA5ICAgTWFjIHVuaWNvZGUgcGF0Y2ggKERhIFdvb24gSnVuZywgRWNrZWhhcmQgQmVybnMpOgpAQCAtNDQsNiArNTExLDggQEAKICAgICAtIFdpdGggJ25vcGFzdGUnIHBhc3RpbmcgaXMgd3JvbmcsIHdpdGggJ3Bhc3RlJyBDb21tYW5kLVYgZG9lc24ndCB3b3JrLgogICAgICAgKEFsYW4gU2NobWl0dCkKICAgICAtIHJlbW92ZSAnbWFjYXRzdWknIG9wdGlvbiB3aGVuIHRoaXMgaGFzIGJlZW4gZml4ZWQuCisgICAgLSB3aGVuICdtYWNhdHN1aScgaXMgb2ZmIHNob3VsZCB3ZSBhbHdheXMgY29udmVydCB0byAibWFjcm9tYW4iIGFuZCBpZ25vcmUKKyAgICAgICd0ZXJtZW5jb2RpbmcnPwogOSAgIEhUTUwgaW5kZW50aW5nIGNhbiBiZSBzbG93LiAgQ2F1c2VkIGJ5IHVzaW5nIHNlYXJjaHBhaXIoKS4gIENhbiBzZWFyY2goKQogICAgIGJlIHVzZWQgaW5zdGVhZD8KIDggICBXaW4zMjogQWRkIG1pbmlkdW1wIGdlbmVyYXRpb24uIChHZW9yZ2UgUmVpbGx5LCAyMDA2IEFwciAyNCkKQEAgLTg5LDYgKzU1OCw4IEBACiAJCQkgICAgKDIwMDMgTWF5IDEzKQogICAgIHJhaXNld2luKCkJCXJhaXNlIGd2aW0gd2luZG93IChzZWUgSGllckFzc2lzdCBwYXRjaCBmb3IKIAkJCSAgICBUY2wgaW1wbGVtZW50YXRpb24gfi92aW0vSGllckFzc2lzdC8gKQorICAgIHRhZ2xpc3QoKQkJYWRkIGFyZ3VtZW50IHRvIHNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgbWF0Y2hlcy4KKwkJCXVzZWZ1bCBmb3IgaW50ZXJhY3RpdmUgdGhpbmdzIG9yIGNvbXBsZXRpb24uCiA3ICAgTWFrZSBnbG9icGF0aCgpIGFsc28gd29yayB3aXRoIHVwd2FyZHMgc2VhcmNoLiAoQnJpYW4gTWVkbGV5KQogNyAgIEFkZCBwYXRjaCBmcm9tIEJlbm9pdCBDZXJyaW5hIHRvIGludGVncmF0ZSBWaW0gYW5kIFBlcmwgZnVuY3Rpb25zCiAgICAgYmV0dGVyLiAgTm93IGFsc28gd29ya3MgZm9yIFJ1YnkgKDIwMDEgTm92IDEwKQpAQCAtMjExLDYgKzY4Miw4IEBACiBXaW4zMiBHVUkga25vd24gYnVnczoKIC0gICBXaW4zMjogdGVhcm9mZiBtZW51IHdpbmRvdyBzaG91bGQgaGF2ZSBhIHNjcm9sbGJhciB3aGVuIGl0J3MgdGFsbGVyIHRoYW4KICAgICB0aGUgc2NyZWVuLgorOCAgIG5vbi1BU0NJSSBmb250IG5hbWVzIGRvbid0IHdvcmsuICBOZWVkIHRvIGNvbnZlcnQgZnJvbSAnZW5jb2RpbmcnIGFuZCB1c2UKKyAgICB0aGUgd2lkZSBmdW5jdGlvbnMuCiA4ICAgT24gV2luZG93cyA5OCB0aGUgdW5pY293cyBsaWJyYXJ5IGlzIG5lZWRlZCB0byBzdXBwb3J0IGZ1bmN0aW9ucyB3aXRoIFVDUzIKICAgICBmaWxlIG5hbWVzLiAgQ2FuIHdlIGxvYWQgdW5pY293cy5kbGwgZHluYW1pY2FsbHk/CiA4ICAgV2hlbiB0aGUgcHJpbWFyeSBtb25pdG9yIGlzIGJlbG93IG9yIHJpZ2h0IG9mIHRoZSBzZWNvbmRhcnkgbW9uaXRvciBhbmQKQEAgLTI1Miw3ICs3MjUsNiBAQAogICAgIG1vdXNlIHBvc2l0aW9uLiAgQ2F0Y2ggV01fTU9VU0VBQ1RJVkFURS4gKEx1ZXZlbHNtZXllcikKIDggICBXaW4zMjogV2hlbiBtb3VzZSBpcyBoaWRkZW4gYW5kIGluIHRoZSB0b29sYmFyLCBtb3ZpbmcgaXQgd29uJ3QgbWFrZSBpdAogICAgIGFwcGVhci4gKFNhbWkgU2Fsb25lbikKLTggICBXaW5kb3dzIE5UOiB3cml0aW5nIHRvIGF1eC4qIG1ha2VzIFZpbSBoYW5nLiAoQWNldmVkbykKIDggICBXaW4zMiBHVUk6IFdpdGggbWF4aW1pemVkIHdpbmRvdywgIjpzZXQgZ28tPXIiIGRvZXNuJ3QgdXNlIHRoZSBzcGFjZSB0aGF0CiAgICAgY29tZXMgYXZhaWxhYmxlLiAoUG91Y2V0KSAgSXQgd29ya3MgT0sgb24gV2luIDk4IGJ1dCBkb2Vzbid0IHdvcmsgb24gV2luCiAgICAgTlQgNC4wLiAgTGVhdmVzIGEgZ3JleSBhcmVhIHdoZXJlIHRoZSBzY3JvbGxiYXIgd2FzLiAgIjpzZXQgZ28rPXIiIGFsc28KQEAgLTU2OSwxMiArMTA0MSwxNiBAQAogOCAgIElucHV0dGluZyBVbmljb2RlIGNoYXJhY3RlcnMgZG9lcyBub3Qgd29yayBpbiB0aGUgdGVybWluYWwuICBUaGV5IGFwcGVhcgogICAgIHRvIGFycml2ZSBhcyB1cHBlciBhbmQgbG93ZXIgYnl0ZXMuIChEYXZpZCBCcm93biwgMjAwNCBBcHJpbCAxNykKIDggICBUeXBpbmcgVW5pY29kZSBjaGFyYWN0ZXJzIGRvZXNuJ3Qgd29yayBhdCBhbGwgaW4gdGhlIEdVSS4KKzggICBpbnB1dGRpYWxvZygpIGRvZXNuJ3QgcmVzaXplIHdoZW4gZ2l2aW5nIG1vcmUgdGV4dCBsaW5lcy4gKERhdmlkIEZpc2hidXJuLAorICAgIDIwMDYgU2VwdCAyOCkKIDkgICBQcm9ibGVtcyBpbiBDYXJib24gdmVyc2lvbiBmb3IgT1MgWDogKEJlbmppIEZpc2hlcikKICAgICAtIGtleWJvYXJkIHNob3J0Y3V0cyBpbiB0aGUgbWVudXMgZ2V0IGxvc3QuCiA4ICAgVGhlIFZpbS9BYm91dCBtZW51IGRvZXNuJ3Qgd29yay4KIDggICAiOmd1aSIgZG9lc24ndCBmb3JrLiAgRW5hYmxpbmcgdGhlIGNvZGUgaW4gZ3VpLmMgdG8gZm9yayBjYXVzZXMgYSBTRUdWLgogOCAgIERlZmluZSB2aW1fbWtkaXIoKSBmb3IgTWFjaW50b3NoLgogOCAgIERlZmluZSBtY2hfd3JpdGFibGUoKSBmb3IgTWFjaW50b3NoLgorOCAgIFNvbWUgZmlsZSBzeXN0ZW1zIGFyZSBjYXNlLXNlbnNpdGl2ZSwgc29tZSBhcmUgbm90LiAgVHVybgorICAgIENBU0VfSU5TRU5TSVRJVkVfRklMRU5BTUUgaW50byBhbiBvcHRpb24sIGF0IGxlYXN0IGZvciBjb21wbGV0aW9uLgogOSAgIFdoZW4gRGlza0xvY2sgaXMgcnVubmluZywgdXNpbmcgYSBzd2FwIGZpbGUgY2F1c2VzIGEgY3Jhc2guICBBcHBlYXJzIHRvIGJlCiAgICAgYSBwcm9ibGVtIHdpdGggd3JpdGluZyBhIGZpbGUgdGhhdCBzdGFydHMgd2l0aCBhIGRvdC4gKEdpYWNhbG9uZSkKIDkgICBPbiBHMyBNYWMsIE9TIHZlcnNpb24gOCwgY29udHJvbCBzdHJpcCBjYXVzZXMgY2hhcmFjdGVycyBtZXNzZWQgdXAgd2hlbgpAQCAtNTg3LDYgKzEwNjMsMTAgQEAKIAogCiAiU21hbGwiIHByb2JsZW1zOgorLSAgIFdoZW4gdXNpbmcgZV9zZWN1cmUgaW4gZG9fb25lX2NtZCgpIG1lbnRpb24gdGhlIGNvbW1hbmQgYmVpbmcgZXhlY3V0ZWQsCisgICAgb3RoZXJ3aXNlIGl0J3Mgbm90IGNsZWFyIHdoZXJlIGl0IGNvbWVzIGZyb20uCis4ICAgV2hlbiBkaXNhYmxpbmcgRkVBVF9DTURMX0NPTVBMIGNvbXBpbGF0aW9uIGZhaWxzLiAgV291bGQgbmVlZCB0byBhdm9pZAorICAgIHVzaW5nIHBhcnNlX2NvbXBsX2FyZygpIGluIGV2YWwuYyBhbmQgdWNfc2Nhbl9hdHRyKCkuCiA5ICAgRm9yIFR1cmtpc2ggdmltX3RvbG93ZXIoKSBhbmQgdmltX3RvdXBwZXIoKSBhbHNvIG5lZWQgdG8gdXNlIHV0Zl8KICAgICBmdW5jdGlvbnMgZm9yIGNoYXJhY3RlcnMgYmVsb3cgMHg4MC4gKFNlcnRhY3lpbGRpeikKIDkgICBXaGVuIHRoZSBsYXN0IGVkaXRlZCBmaWxlIGlzIGEgaGVscCBmaWxlLCB1c2luZyAnMCBpbiBhIG5ldyBWaW0gZG9lc24ndApAQCAtNjA2LDExICsxMDg2LDEwIEBACiA4ICAgV2hlbiByZWRpcmVjdGluZyBhbmQgdXNpbmcgIjpzaWxlbnQiIHRoZSBjdXJyZW50IGNvbHVtbiBmb3IgZGlzcGxheWluZyBhbmQKICAgICByZWRpcmVjdGlvbiBjYW4gYmUgZGlmZmVyZW50LiAgVXNlIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gaG9sZCB0aGUgY29sdW1uCiAgICAgZm9yIHJlZGlyZWN0aW9uLgotNyAgIFRoZXJlIGlzIG5vIHdheSB0byBjaGFuZ2UgZGlyZWN0b3J5IGFuZCBnbyBiYWNrIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGxvY2FsCi0gICAgYW5kL29yIGdsb2JhbCBkaXJlY3RvcnkuICBBZGQgYSB3YXkgdG8gZmluZCBvdXQgaWYgdGhlIGN1cnJlbnQgd2luZG93IHVzZXMKLSAgICBhIGxvY2FsIGRpcmVjdG9yeS4gIEFkZCBjZGNtZCgpIHRoYXQgcmV0dXJucyAiOmNkIiBvciAiOmxjZCI/CiA3ICAgVGhlIG1lc3NhZ2VzIGZvciAidmltIC0taGVscCIgYW5kICJ2aW0gLS12ZXJzaW9uIiBkb24ndCB1c2UKICAgICAndGVybWVuY29kaW5nJy4KKy0gICBDb3VsZCB0aGUgaGl0LWVudGVyIHByb21wdCBiZSBhdm9pZGVkIHdoZW4gYSBtZXNzYWdlIG9ubHkgb3ZlcmxhcHMgdGhlCisgICAgJ3Nob3djbWQnIGFyZWE/ICBDbGVhciB0aGF0IGFyZWEgd2hlbiB0aGUgbmV4dCBjbWQgaXMgdHlwZWQuCiA4ICAgV2hlbiAnc2Nyb2xsYmluZCcgaXMgc2V0LCBhIHdpbmRvdyB3b24ndCBzY3JvbGwgaG9yaXpvbnRhbGx5IGlmIHRoZSBjdXJzb3IKICAgICBsaW5lIGlzIHRvbyBzaG9ydC4gIEFkZCBhIHdvcmQgaW4gJ3Njcm9sbG9wdCcgdG8gYWxsb3cgbW92aW5nIHRoZSBjdXJzb3IKICAgICB0byBsb25nZXIgbGluZSB0aGF0IGlzIHZpc2libGUuICBBIHNpbWlsYXIgdGhpbmcgaXMgZG9uZSBmb3IgdGhlIEdVSSB3aGVuCkBAIC02MjksNiArMTEwOCw3IEBACiA4ICAgV2hlbiBkb2luZyBJbnNlcnQgbW9kZSBjb21wbGV0aW9uIGEgbWFwcGluZyBjYW5ub3QgcmVjdXJzaXZlbHkgY2FsbAogICAgIGVkaXQoKSwgYmVjYXVzZSB0aGUgY29tcGxldGlvbiBpbmZvcm1hdGlvbiBpcyBnbG9iYWwuICBQdXQgZXZlcnl0aGluZyBpbgogICAgIGFuIGFsbG9jYXRlZCBzdHJ1Y3R1cmU/Cis2ICAgUHl0aG9uOiAiOnB5IHJhd19pbnB1dCgncHJvbXB0JykiIGRvZXNuJ3Qgd29yay4gKE1hbnUgSGFjaykKIDggICBDb21tYW5kIGxpbmUgY29tcGxldGlvbjogYnVmZmVycyAiZm9vLnR4dCIgYW5kICIuLi9iL2Zvby50eHQiLCBjb21wbGV0aW5nCiAgICAgIjpidWYgZm9vPFRhYj4iIGRvZXNuJ3QgZmluZCB0aGUgc2Vjb25kIG9uZS4gKEdlb3JnZSBWLiBSZWlsbHkpCiA3ICAgT3V0cHV0IGZvciAiOnNjcmlwdG5hbWVzIiBhbmQgIjpicmVha2xpc3QiIHNob3VsZCBzaG9ydGVuIHRoZSBmaWxlIG5hbWVzOgpAQCAtNjUwLDkgKzExMzAsNiBAQAogNyAgICJbcCIgZG9lc24ndCB3b3JrIGluIFZpc3VhbCBtb2RlLiAoRGF2aWQgQnJvd24pCiA3ICAgVGhlIEN5Z3dpbiBhbmQgTWluZ1cgbWFrZWZpbGVzIGRlZmluZSAiUEMiLCBidXQgaXQncyBub3QgdXNlZCBhbnl3aGVyZS4KICAgICBSZW1vdmU/IChEYW4gU2hhcnApCi05ICAgVGhlIGFyZ3VtZW50IDxmLWFyZ3M+IG9mIGEgdXNlciBjb21tYW5kIGRvZXNuJ3QgaGFuZGxlIGJhY2tzbGFzaGVzCi0gICAgcHJvcGVybHkuICAiQ21kIFwgZSIgaXMgb25lIGFyZ3VtZW50LCAiQ21kIFxcIGUiIHN0aWxsIGlzIG9uZSBhcmd1bWVudC4KLSAgICAiQ21kIFwgIGUiIGlzIHR3byBhcmd1bWVudHMsIGZpcnN0IG9uZSBlbmRpbmcgaW4gc3BhY2UuIChLb250cmEgR2VyZ2VseSkKIDkgICBVc2VyIGNvbW1hbmRzIHVzZSB0aGUgY29udGV4dCBvZiB0aGUgc2NyaXB0IHRoZXkgd2VyZSBkZWZpbmVkIGluLiAgVGhpcwogICAgIGNhdXNlcyBhICJzOnZhciIgYXJndW1lbnQgdG8gdW5leHBlY3RlZGx5IHVzZSBhIHZhcmlhYmxlIGluIHRoZSBkZWZpbmluZwogICAgIHNjcmlwdCwgbm90IHRoZSBjYWxsaW5nIHNjcmlwdC4gIEFkZCBhbiBhcmd1bWVudCB0byAiOmNvbW1hbmQiOgpAQCAtNjg0LDYgKzExNjEsOCBAQAogICAgIGZsYWcgdG8gdG8gdGhlIGNvbW1hbmQuICBTYW1lIGZvciAiOnNub21hZ2ljIi4gKEpvaGFuIFNwZXR6KQogOCAgIFVzaW5nICI6cyIgaW4gYSBmdW5jdGlvbiBjaGFuZ2VzIHRoZSBwcmV2aW91cyByZXBsYWNlbWVudCBzdHJpbmcuICBTYXZlCiAgICAgIm9sZF9zdWIiIGluIHNhdmVfc2VhcmNoX3BhdHRlcm5zKCk/Cis4ICAgU2hvdWxkIGFsbG93IG11bHRpLWJ5dGUgY2hhcmFjdGVycyBmb3IgdGhlIGRlbGltaXRlcjogIjpzK2ErYisiIHdoZXJlICIrIgorICAgIGlzIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuCiA4ICAgV2hlbiBhcHBlbmRpbmcgdG8gYSBmaWxlIGFuZCAncGF0Y2htb2RlJyBpc24ndCBlbXB0eSwgYSBiYWNrdXAgZmlsZSBpcwogICAgIGFsd2F5cyB3cml0dGVuLCBldmVuIHdoZW4gdGhlIG9yaWdpbmFsIGZpbGUgYWxyZWFkeSBleGlzdHMuCiA3ICAgV2hlbiB1c2luZyAiZGF3IiBvbiB0aGUgbGFzdCB3b3JkIGluIGEgZmlsZSBhbmQgdGhpcyBpcyBhIHNpbmdsZSBsZXR0ZXIsCkBAIC02OTksNiArMTE3OCw4IEBACiAgICAgJ2ZvbGRsZXZlbCcgaXMgc2V0IGZyb20gJ2ZvbGRsZXZlbHN0YXJ0Jy4KIDggICBBbHNvIHN0b3JlIHRoZSBsaW5lIG51bWJlciB3aXRoIHRoZSBzY3JpcHQgSUQgYW5kIHVzZSBpdCBmb3IgIjp2ZXJib3NlIiwKICAgICBzbyB0aGF0ICJzZXQgbm9jb21wYXRpYmxlIiBpcyBmb3VuZCB3aGVuIGl0IGNoYW5nZXMgb3RoZXIgb3B0aW9uIHZhbHVlcy4KKyAgICBXaGVuIGFuIG9wdGlvbiBpcyBzZXQgaW5kaXJlY3RseSBtZW50aW9uIHRoZSBjb21tYW5kPyAgRS5nLiB3aGVuCisgICAgIjpkaWZmc3BsaXQiIHNldHMgJ2ZvbGRtZXRob2QnLgogOCAgIEluIHRoZSBmaWxlZm9ybWF0IGRpYWxvZywgIkNhbmNlbCIgaXNuJ3QgdHJhbnNsYXRlZC4gIEFkZCBhIGdsb2JhbAogICAgIHZhcmlhYmxlIGZvciB0aGlzLiAoRWR1YXJkbyBGZXJuYW5kZXopCiA5ICAgV2hlbiBlZGl0aW5nIGEgZmlsZSB3aXRoICdyZWFkb25seScgc2V0LCB0aGVyZSBpcyBubyBjaGVjayBmb3IgYW4gZXhpc3RpbmcKQEAgLTgzMSw2ICsxMzEyLDggQEAKIDggICBEcmFnZ2luZyB0aGUgc3RhdHVzIGxpbmUgZG9lc24ndCBzY3JvbGwgYnV0IHJlZHJhdy4KIDkgICBFdmFsdWF0aW5nICdzdGF0dXNsaW5lJyBpbiBidWlsZF9zdGxfc3RyX2hsKCkgZG9lcyBub3QgcHJvcGVybHkgY2hlY2sgZm9yCiAgICAgcmVhY2hpbmcgdGhlIGVuZCBvZiB0aGUgYXZhaWxhYmxlIGJ1ZmZlci4KKyAgICBQYXRjaCB0byBkeW5hbWljYWxseSBhbGxvY2F0ZSB0aGUgYnVmZmVyIGZvciAlIGl0ZW1zLiAoRXJpYyBBcm5vbGQsIDIwMDYKKyAgICBNYXkgMTQpCiA4ICAgV2hlbiBwZXJmb3JtaW5nIGluY3JlbWVudGFsIHNlYXJjaCwgc2hvdWxkIGFib3J0IHNlYXJjaGluZyBhcyBzb29uIGFzIGEKICAgICBjaGFyYWN0ZXIgaXMgdHlwZWQuCiA4ICAgV2hlbiB0aGUgdmFsdWUgb2YgJE1BS0UgY29udGFpbnMgYSBwYXRoLCBjb25maWd1cmUgY2FuJ3QgaGFuZGxlIHRoaXMuCkBAIC04OTAsNiArMTM3Myw3IEBACiAgICAgWHRPcGVuRGlzcGxheSgpIHByaW50cyB0aGlzIGRpcmVjdGx5LCB0aGVyZSBpcyBubyB3YXkgdG8gYXZvaWQgaXQuCiAtICAgWCB3aW5kb3dzOiBTZXR0aW5nICdndWlmb250c2V0JyB0byBhbiBpbGxlZ2FsIHZhbHVlIHNvbWV0aW1lcyBjcmFzaGVzIFZpbS4KICAgICBUaGlzIGlzIGNhdXNlZCBieSBhIGZhdWx0IGluIGEgWCBsaWJyYXJ5IGZ1bmN0aW9uLCBjYW4ndCBiZSBzb2x2ZWQgaW4gVmltLgorLSAgIFdpbjMyIHRjbDogaGFzKCJ0Y2wiKSBoYW5ncyB3aGVuIHRoZSB0Y2w4NC5kbGwgaXMgZnJvbSBjeWd3aW4uCiAtICAgTW90aWY6IFdoZW4gYWRkaW5nIGEgbWVudSBpdGVtICJGaW5kIHRoaXMgJlN5bWJvbCIsIHRoZSAicyIgaW4gInRoaXMiIHdpbGwKICAgICBiZSB1bmRlcmxpbmVkLCBpbnN0ZWFkIG9mIGluICJTeW1ib2wiLiAgTW90aWYgZG9lc24ndCBsZXQgdXMgc3BlY2lmeSB3aGljaAogICAgIGNoYXJhY3RlciBnZXRzIHRoZSBoaWdobGlnaHRpbmcuCkBAIC05ODcsNiArMTQ3MSw3IEBACiAgICAgMTk4IHN0YW5kYXJkIGh0dHA6Ly93d3cuamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTE5OC4KICAgICBFY2xpbSBkb2VzIGl0OiBodHRwOi8vZWNsaW0uc291cmNlZm9yZ2UubmV0LyAgKEVyaWMgVmFuIERld29lc3RpbmUpCiAgICAgUGx1Z2luIHRoYXQgdXNlcyBhIHRlcm1pbmFsIGVtdWxhdG9yOiBodHRwOi8vdmltcGx1Z2luLnNmLm5ldAorICAgIEFuZCBhbm90aGVyIG9uZTogaHR0cDovL3d3dy5zYXRva2FyLmNvbS92aXBsdWdpbi9pbmRleC5waHAKIC0gICBTVElDS1kgQ1VSU09SOiBBZGQgYSB3YXkgb2Ygc2Nyb2xsaW5nIHRoYXQgbGVhdmVzIHRoZSBjdXJzb3Igd2hlcmUgaXQgaXMuCiAgICAgRXNwZWNpYWxseSB3aGVuIHVzaW5nIHRoZSBzY3JvbGxiYXIuICBUeXBpbmcgYSBjdXJzb3ItbW92ZW1lbnQgY29tbWFuZAogICAgIHNjcm9sbHMgYmFjayB0byB3aGVyZSB0aGUgY3Vyc29yIGlzLgpAQCAtMTAwMyw2ICsxNDg4LDggQEAKIAogCiBEb2N1bWVudGF0aW9uOgorOCAgIExpc3Qgb2YgVmltIHJ1bnRpbWUgZGlyZWN0b3JpZXMuICBkb3R2aW0udHh0IGZyb20gQ2hhcmxlcyBDYW1wYmVsbCwgMjAwNworICAgIEZlYiAyMC4KIDggICBUaGUgR1VJIGhlbHAgc2hvdWxkIGV4cGxhaW4gdGhlIEZpbmQgYW5kIEZpbmQvUmVwbGFjZSBkaWFsb2dzLiAgQWRkIGEgbGluawogICAgIHRvIGl0IGZyb20gIjpwcm9tcHRyZXBsIiBhbmQgIjpwcm9tcHRmaW5kIi4KIDggICBMaXN0IG9mIG9wdGlvbnMgc2hvdWxkIG1lbnRpb24gd2hldGhlciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIGV4cGFuZGVkCkBAIC0xMDg0LDYgKzE1NzEsMTAgQEAKIAogVGFiIHBhZ2VzOgogOSAgIEdVSSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIHRhYiBwYWdlcyBsaW5lIGZvciBvdGhlciBzeXN0ZW1zLgorNyAgIEdVSTogQ29udHJvbCBvdmVyIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSB0ZXh0IGluIHRoZSBsYWJlbHMgKGJvbGQsIGNvbG9yLAorICAgIGZvbnQsIGV0Yy4pCis5ICAgTWFrZSBpdCBwb3NzaWJsZSB0byBkcmFnIGEgdGFiIHBhZ2UgbGFiZWwgdG8gYW5vdGhlciBwb3NpdGlvbiB3aXRoIHRoZQorICAgIG1vdXNlLgogOCAgIE1ha2UgR1VJIG1lbnUgaW4gdGFiIHBhZ2VzIGxpbmUgY29uZmlndXJhYmxlLiAgTGlrZSB0aGUgcG9wdXAgbWVudS4KIDggICBiYWxsb29ucyBmb3IgdGhlIHRhYiBwYWdlIGxhYmVscyB0aGF0IGFyZSBzaG9ydGVuZWQgdG8gc2hvdyB0aGUgZnVsbCBwYXRoLgogOCAgIDp0YWJtb3ZlICtOCSBtb3ZlIHRhYiBwYWdlIE4gcGFnZXMgZm9yd2FyZApAQCAtMTA5NSwxNSArMTU4NiwyNyBAQAogOCAgIEFkZCBsb2NhbCBvcHRpb25zIGZvciBlYWNoIHRhYiBwYWdlPyAgRS5nLiwgJ2RpZmZvcHQnIGNvdWxkIGRpZmZlciBiZXR3ZWVuCiAgICAgdGFiIHBhZ2VzLgogNyAgIEFkZCBsb2NhbCBoaWdobGlnaHRpbmcgZm9yIGVhY2ggdGFiIHBhZ2U/Cis3ICAgQWRkIGxvY2FsIGRpcmVjdG9yeSBmb3IgdGFiIHBhZ2VzPyAgSG93IHdvdWxkIHRoaXMgaW50ZXJmZXJlIHdpdGgKKyAgICB3aW5kb3ctbG9jYWwgZGlyZWN0b3JpZXM/CiAKIAogU3BlbGwgY2hlY2tpbmc6CistICAgU3VwcG9ydCBtb3JlIHJlZ2lvbnM/IENhb2xhbiBNY05hbWFyYSBhcmd1ZXMgaXQncyBuZWVkZWQgZm9yIGVzX1hYLgorICAgIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjE5Nzc3ICAgIAorLSAgIFVuaWNvZGUgZGVmaW5lcyBhbm90aGVyIHF1b3RlIGNoYXJhY3RlcjogMHgyMDE5LiAgVXNlIGl0IGFzIGFuIGVxdWl2YWxlbnQKKyAgICBvZiBhIHNpbmdsZSBxdW90ZSwgdGh1cyB1c2UgaXQgYXMgYSB3b3JkIGNoYXJhY3RlciBsaWtlIGEgcXVvdGUgYW5kIG1hdGNoCisgICAgd2l0aCB3b3JkcywgcmVwbGFjaW5nIHRoZSBjdXJseSBxdW90ZSB3aXRoIGEgc2luZ2xlIHF1b3RlLgorLSAgIENvdWxkIGZpbHRlciAmZWFjdXRlOyB0aGluZ3MgZm9yIEhUTUwgYmVmb3JlIGRvaW5nIHNwZWxsIGNoZWNraW5nLgorICAgIFNpbWlsYXJseSBmb3IgVGVYLgogLSAgIFRoZSBIdW5nYXJpYW4gc3BlbGwgZmlsZSB1c2VzIGZvdXIgZXh0cmEgY2hhcmFjdGVycyBpbiB0aGUgRk9ML1VQUC9MT1cKICAgICBpdGVtcyB0aGFuIG90aGVyIHNwZWxsIGZpbGVzIHdpdGggdGhlIElTTy04ODU5LTIgZW5jb2RpbmcsIHRoYXQgY2F1c2VzCiAgICAgcHJvYmxlbSB3aGVuIGNoYW5naW5nICdzcGVsbGxhbmcnLiAgVGhlcmUgaXMgbm8gb2J2aW91cyB3YXkgdG8gZml4IHRoaXMuCiAtICAgQ29uc2lkZXJpbmcgSHVuc3BlbGwgMS4xLjQ6CiAgICAgV2hhdCBkb2VzIE1BWE5HUkFNU1VHUyBkbz8KICAgICBJcyBDT01QTEVYUFJFRklYRVMgbmVjZXNzYXJ5IHdoZW4gd2UgaGF2ZSBmbGFncyBmb3IgYWZmaXhlcz8KKy0gICBUaGVyZSBpcyBubyBGaW5uaXNoIHNwZWxsIGNoZWNraW5nIGZpbGUuICBGb3Igb3Blbm9mZmljIFZvaWtrbyBpcyBub3cKKyAgICB1c2VkLCB3aGljaCBpcyBiYXNlZCBvbiBNYWxhZ2E6IGh0dHA6Ly9ob21lLmFyY29yLmRlL2Jqb2Vybi1iZXV0ZWwvbWFsYWdhLworICAgIChUZWVtdSBMaWtvbmVuKQogOCAgICI6bWtzcGVsbCIgc3RpbGwgdGFrZXMgbXVjaCB0b28gbG9uZyBpbiBIdW5nYXJpYW4gZGljdGlvbmFyeSBmcm9tCiAgICAgaHVuc3BlbGwuICBPbmx5IHNvbHV0aW9uIGFwcGVhcnMgdG8gYmUgdG8gcG9zdHBvbmUgc2Vjb25kYXJ5IHN1ZmZpeGVzLgogOCAgIEhhbmRsZSBwb3N0cG9uZWQgcHJlZml4IHdpdGggQ09NUE9VTkRQRVJNSVRGTEFHIG9yIENPTVBPVU5ERk9SQklERkxBRy4KQEAgLTExOTAsNyArMTY5MywxMSBAQAogRm9sZGluZzoKICAgICAoY29tbWFuZHMgc3RpbGwgYXZhaWxhYmxlOiB6SSB6SiB6SyB6cCB6UCB6cSB6USB6ViB6eSB6WTsKICAgICBzZWNvbmRhcnk6IHpCIHpTIHpUIHpaLCB6PSkKKzggICBWZXJ0aWNhbCBmb2xkczogbG9va3MgbGlrZSB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvd3MsIGJ1dCB0aGUgY3Vyc29yIG1vdmVzCisgICAgdGhyb3VnaCB0aGUgdmVydGljYWwgc2VwYXJhdG9yLCBzZXBhcmF0b3IgbW92ZXMgd2hlbiBzY3JvbGxpbmcuCiA4ICAgQWRkICJ6LyIgYW5kICJ6PyIgZm9yIHNlYXJjaGluZyBpbiBub3QgZm9sZGVkIHRleHQgb25seS4KKzkgICBBZGQgc2VhcmNoIHBhdHRlcm4gaXRlbSB0byBvbmx5IG1hdGNoIGluIGNsb3NlZCBvciBvcGVuIGZvbGQgYW5kL29yIGZvbGQKKyAgICB3aXRoIGNlcnRhaW4gbGV2ZWwuICBBbGxvd3MgZG9pbmcgIjpnL3BhdC9jbWQiIHRvIHdvcmsgb24gY2xvc2VkIGZvbGRzLgogOCAgIEFkZCBkaWZmZXJlbnQgaGlnaGxpZ2h0aW5nIGZvciBhIGZvbGQgbGluZSBkZXBlbmRpbmcgb24gdGhlIGZvbGQgbGV2ZWwuCiAgICAgKE5vZWwgSGVuc29uKQogNyAgIFVzZSAiKystLSIsICIrKystLSIgZm9yIGRpZmZlcmVudCBsZXZlbHMgaW5zdGVhZCBvZiAiKy0tLSIgIistLS0tIi4KQEAgLTEyOTIsNiArMTc5OSw3IEBACiA3ICAgSW4gIi0tIElOU0VSVCAobGFuZykgLS0iIHNob3cgdGhlIG5hbWUgb2YgdGhlIGtleW1hcCB1c2VkIGluc3RlYWQgb2YKICAgICAibGFuZyIuIChJbHlhIERvZ29sYXpreSkKIC0gICBNYWtlICdsYW5nbWFwJyBhY2NlcHQgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgorCVBhdGNoIGZyb20gS29uc3RhbnRpbiBLb3Jpa292LCAyMDA2IE9jdCAxNS4KIC0gICBNYWtlICdicmVha2F0JyBhY2NlcHQgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAgUHJvYmxlbTogY2FuJ3QgdXNlIGEgbG9va3VwCiAgICAgdGFibGUgYW55bW9yZSAoYnJlYWthdF9mbGFnc1tdKS4KICAgICBTaW1wbGlzdGljIHNvbHV0aW9uOiB3aGVuICdmb3JtYXRvcHRpb25zJyBjb250YWlucyAibSIgYWxzbyBicmVhayBhIGxpbmUKQEAgLTEzMTcsOCArMTgyNSw4IEBACiAtICAgV2luMzI6IHdoZW4gJ3ByaW50Zm9udCcgaXMgZW1wdHkgdXNlICdndWlmb250Jy4KIC0gICBVbml4OiBVc2Ugc29tZSBkaWFsb2cgYm94IHRvIGRvIHRoZSBvYnZpb3VzIHNldHRpbmdzIChwYXBlciBzaXplLCBwcmludGVyCiAgICAgbmFtZSwgcG9ydHJhaXQvbGFuZHNjYXBlLCBldGMpLgotLSAgIFBvc3RTY3JpcHQ6IG9ubHkgd29ya3MgZm9yIDctYml0IEFTQ0lJIGFuZCBFQkNESUMuICBTaG91bGQgc3VwcG9ydAotICAgIGRpZmZlcmVudCAnZW5jb2RpbmcnIHZhbHVlcyBzb21laG93LgorLSAgIFBvc3RTY3JpcHQ6IE9ubHkgd29ya3MgZm9yIHRleHQgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIDgtYml0CisgICAgY2hhcmFjdGVyIHNldC4gIEhvdyB0byBzdXBwb3J0IFVuaWNvZGUgZnVsbHk/CiAtICAgQWxsb3cgc3BlY2lmeWluZyB0aGUgcGFwZXIgc2l6ZSwgaW5zdGVhZCBvZiB1c2luZyBhIHN0YW5kYXJkIHNpemUuICBTYW1lCiAgICAgdW5pdHMgYXMgZm9yIHRoZSBtYXJnaW5zLgogLSAgIFN1cHBvcnQgcmlnaHQtdG8tbGVmdCB0ZXh0PwpAQCAtMTMzOCw2ICsxODQ2LDkgQEAKIDggICBXaGVuIGVkaXRpbmcgYSBuZXcgZmlsZSB3aXRob3V0IGEgbmFtZSBhbmQgZ2l2aW5nIGl0IGEgbmFtZSAoYnkgd3JpdGluZwogICAgIGl0KSBhbmQgJ2ZpbGV0eXBlJyBpcyBub3Qgc2V0LCBkZXRlY3QgdGhlIGZpbGV0eXBlLiAgQXZvaWQgZG9pbmcgaXQgZm9yCiAgICAgIjp3cSBmaWxlIi4KKzcgICBGb3IgIm5leHRncm91cCIgd2UgaGF2ZSBza2lwd2hpdGUsIHNraXBubCBhbmQgc2tpcGVtcHR5LiAgSXQgd291bGQgYmUKKyAgICByZWFsbHkgbmljZSB0byBiZSBhYmxlIHRvIHNraXAgd2l0aCBhIHBhdHRlcm4uICBPciBza2lwIHdpdGggYSBzeW50YXgKKyAgICBncm91cC4gKE5pa29sYWkgV2VpYnVsbCwgMjAwNyBGZWIgMjcpCiA4ICAgTWFrZSBjb252ZXJzaW9uIHRvIEhUTUwgZmFzdGVyIChXcml0ZSBpdCBpbiBDIG9yIHByZS1jb21waWxlIHRoZSBzY3JpcHQpLgogOSAgIFRoZXJlIGlzIHN0aWxsIGEgcmVkcmF3IGJ1ZyBzb21ld2hlcmUuICBQcm9iYWJseSBiZWNhdXNlIGEgY2FjaGVkIHN0YXRlIGlzCiAgICAgdXNlZCBpbiBhIHdyb25nIHdheS4gIEkgY2FuJ3QgcmVwcm9kdWNlIGl0Li4uCkBAIC0xNDE1LDYgKzE5MjYsOSBAQAogOCAgIFdoZW4gdXNpbmcgYSByZWdleHAgZm9yICJjb250YWlucz0iLCBzaG91bGQgZGVsYXkgbWF0Y2hpbmcgd2l0aCBpdCB1bnRpbAogICAgIHJlZHJhd2luZyBoYXBwZW5zLiAgU2V0IGEgZmxhZyB3aGVuIGEgZ3JvdXAgaXMgYWRkZWQsIGNoZWNrIHRoaXMgZmxhZyB3aGVuCiAgICAgaGlnaGxpZ2h0aW5nIHN0YXJ0cy4KKzggICBTb21lIHRlcm1pbmFscyBjYW4gZGlzcGxheSBjb2xvcnMgbGlrZSB0aGUgR1VJLiAgQWRkIHNvbWUgc2V0dGluZyB0byB1c2UKKyAgICBHVUkgY29sb3JzIGZvciB0aGUgdGVybWluYWw/ICBXaXRoIHNvbWV0aGluZyB0byBkZWZpbmUgdGhlIGVzY2FwZQorICAgIHNlcXVlbmNlLgogNyAgIEl0J3MgcG9zc2libGUgZm9yIGFuIGl0ZW0gdG8gYmUgdHJhbnNwYXJlbnQsIHNvIHRoYXQgdGhlIGNvbG9ycyBvZiBhbiBpdGVtCiAgICAgbG93ZXIgb24gdGhlIHN0YWNrIGlzIHVzZWQuICBBbHNvIGRvIHRoaXMgd2l0aCBoaWdobGlnaHRpbmcsIHNvIHRoYXQgdGhlCiAgICAgdXNlciBjYW4gc2V0IHRyYW5zcGFyZW50IGhpZ2hsaWdodGluZz8gIEUuZy4gYSBudW1iZXIgaW4gYSBDIGNvbW1lbnQgd291bGQKQEAgLTE0ODMsMjQgKzE5OTcsMTQgQEAKIAogCiBCdWlsdC1pbiBzY3JpcHQgbGFuZ3VhZ2U6Ci05ICAgQXV0b2xvYWQ6ICBBZGQgYSBWaW0gc2NyaXB0IGluICRWSU1SVU5USU1FL3Rvb2xzIHRoYXQgdGFrZXMgYSBmaWxlIHdpdGggYQotICAgIGxpc3Qgb2Ygc2NyaXB0IG5hbWVzIGFuZCBhIGhlbHAgZmlsZSBhbmQgcHJvZHVjZXMgYSBzY3JpcHQgdGhhdCBjYW4gYmUKLSAgICBzb3VyY2VkIHRvIGluc3RhbGwgdGhlIHNjcmlwdHMgaW4gdGhlIHVzZXIncyBkaXJlY3Rvcmllcy4KLSAgICAgIFVzZSBmaW5kZmlsZSgpLCBzbyB0aGF0IG9ubHkgZmlsZSBuYW1lcyBuZWVkIHRvIGJlIGdpdmVuOgotCXNjcmlwdCBwbHVnaW4vbXlzY3JpcHQudmltCi0Jc2NyaXB0IGF1dG9sb2FkL215bGliLnZpbQotCXNjcmlwdCBhdXRvbG9hZC95b3VybGliLnZpbQotCWhlbHBmaWxlIGRvYy9teXNjcmlwdC50eHQKLSAgICAgIEZvciB0aGUgImhlbHBmaWxlIiBpdGVtICI6aGVscHRhZ3MiIGlzIHJ1bi4KIDcgICBFeGVjdXRlIGEgZnVuY3Rpb24gd2l0aCBzdGFuZGFyZCBvcHRpb24gdmFsdWVzLiAgTm8gbmVlZCB0byBzYXZlIGFuZAogICAgIHJlc3RvcmUgb3B0aW9uIHZhbHVlcy4gIEVzcGVjaWFsbHkgdXNlZnVsIGZvciBuZXcgb3B0aW9ucy4gIFByb2JsZW06IGhvdwogICAgIHRvIGF2b2lkIGEgcGVyZm9ybWFuY2UgcGVuYWx0eSAoZXNwLiBmb3Igc3RyaW5nIG9wdGlvbnMpPwogOCAgIEFkZCByZWZlcnJpbmcgdG8ga2V5IG9wdGlvbnMgd2l0aCAiJnRfeHgiLiAgQm90aCBmb3IgImVjaG8gJnRfeHgiIGFuZAogICAgICI6bGV0ICZ0X3h4ID0iLiAgVXNlZnVsIGZvciBtYWtpbmcgcG9ydGFibGUgbWFwcGluZ3MuCi0tICAgQWRkICJ7cmFuZ2V9c291cmNlIjogZXhlY3V0ZSBsaW5lcyBmcm9tIGEgYnVmZmVyLgotICAgIEFsdGVybmF0aXZlOiBBbGxvdyByYW5nZSBmb3IgIjpleGVjIiwgcGFzcyBpdCBvbiB0byB0aGUgZXhlY3V0ZWQgY29tbWFuZC4KLSAgICAoV2ViYikKLSAgICBZb3UgY2FuIGFscmVhZHkgeWFuayBsaW5lcyBhbmQgdXNlIDpAIiB0byBleGVjdXRlIHRoZW0uCistICAgQWRkICI6bGV0IHZhciA/PSB2YWx1ZSIsIGNvbmRpdGlvbmFsIGFzc2lnbm1lbnQuICBQYXRjaCBieSBEYXZlIEVnZ3VtLAorICAgIDIwMDYgRGVjIDExLgorLSAgIHJhbmdlIGZvciAiOmV4ZWMiLCBwYXNzIGl0IG9uIHRvIHRoZSBleGVjdXRlZCBjb21tYW5kLiAgKFdlYmIpCiA3ICAgIjppbmNsdWRlIiBjb21tYW5kOiBqdXN0IGxpa2UgIjpzb3VyY2UiIGJ1dCBkb2Vzbid0IHN0YXJ0IGEgbmV3IHNjcmlwdElEPwogICAgIFdpbGwgYmUgdHJpY2t5IGZvciB0aGUgbGlzdCBvZiBzY3JpcHQgbmFtZXMuCiA4ICAgSGF2ZSBhIGxvb2sgYXQgVlNFTC4gIFdvdWxkIGl0IGJlIHVzZWZ1bCB0byBpbmNsdWRlPyAoQmlnaGFtKQpAQCAtMTUyMyw3ICsyMDI3LDE2IEBACiAgICAgICAgZmlsZSBiZWxvbmdzIHRvIGEgc291cmNlZCBzY3JpcHQ/CiA3ICAgQWRkIGFyZ3VtZW50IHRvIHdpbndpZHRoKCkgdG8gc3VidHJhY3QgdGhlIHNwYWNlIHRha2VuIGJ5ICdmb2xkY29sdW1uJywKICAgICBzaWducyBhbmQvb3IgJ251bWJlcicuCis2ICAgQWRkICsrIGFuZCAtLSBvcGVyYXRvcnM/ICBUaGV5IG9ubHkgd29yayBvbiB2YXJpYWJsZXMgKGx2YWxzKSwgaG93IHRvCisgICAgaW1wbGVtZW50IHRoaXM/CiA4ICAgQWRkIGZ1bmN0aW9uczoKKwloYXMoIjpjb21tYW5kIikJCUNoZWNrIGlmICI6Y29tbWFuZCIgd29ya3MuICBjb21wYXJlIGZ1bmN0aW9uCisJCQkJd2l0aCAiZXhfbmkiLiAgRS5nLiBmb3IgIjpzaW1hbHQiLgorCXN5c3RlbSgpCQlXaXRoIGEgTGlzdCBhcmd1bWVudC4gIEJ5cGFzc2VzIHRoZSBzaGVsbCwgdXNlCisJCQkJZXhlYygpIGRpcmVjdGx5LiAgKEJvYiBIaWVzdGFuZCkKKwllc2NhcGUoKQkJQWRkIGFyZ3VtZW50IHRvIHNwZWNpZnkgd2hhdCB0byBlc2NhcGUgd2l0aC4KKwltb2Rlc3RhY2soKQkJSW5zdGVhZCBvZiBqdXN0IHRoZSBjdXJyZW50IG1vZGUgcmV0dXJuIHRoZQorCQkJCXN0YWNrIG9mIEluc2VydCAvIENUUkwtTyAvIDpub3JtYWwgdGhpbmdzLgogCXJlYWxuYW1lKCkJCUdldCB1c2VyIG5hbWUgKGZpcnN0LCBsYXN0LCBmdWxsKQogCQkJCXVzZXJfZnVsbG5hbWUoKSBwYXRjaCBieSBOaWtvbGFpIFdlaWJ1bGwsIE5vdgogCQkJCTMgMjAwMgpAQCAtMTU2MSw3ICsyMDc0LDggQEAKICAgICBjb2x1bW4gYW5kIGxpbmUgbnVtYmVyPyAgY29sKCInMCIpIGN1cnJlbnRseSByZXR1cm5zIHplcm8uCiA4ICAgYXJnYygpIHJldHVybnMgMCB3aGVuIHVzaW5nICJ2aW0gLXQgdGFnIi4gIEhvdyB0byBkZXRlY3QgdGhhdCBubyBmaWxlIHdhcwogICAgIHNwZWNpZmllZCBpbiBhbnkgd2F5PyAgVG8gYmUgYWJsZSB0byBqdW1wIHRvIHRoZSBsYXN0IGVkaXRlZCBmaWxlLgotOCAgIFBhc3MgdGhlIGV4ZWN1dGFibGUgbmFtZSB0byB0aGUgVmltIHNjcmlwdHMgaW4gc29tZSB3YXkuICBBcyB2OmFyZ3YwPworOCAgIFBhc3MgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gVmltIHNjcmlwdHMgaW4gc29tZSB3YXkuICBBcyB2OmFyZ3MKKyAgICBMaXN0PyAgT3IgZXh0cmEgcGFyYW1ldGVyIHRvIGFyZ3YoKT8KIDggICBBZGQgY29tbWFuZCBhcmd1bWVudHMgd2l0aCB0aHJlZSBkYXNoZXMsIHBhc3NlZCBvbiB0byBWaW0gc2NyaXB0cy4KIDcgICBBZGQgb3B0aW9uYWwgYXJndW1lbnRzIHRvIHVzZXIgZnVuY3Rpb25zOgogCTpmdW5jIG15RnVuYyhhcmcxLCBhcmcyLCBhcmczID0gImJsYWgiLCBhcmc0ID0gMTcpCkBAIC0xNTcxLDYgKzIwODUsNyBAQAogOCAgIFRoZSAiPSByZWdpc3RlciBzaG91bGQgYmUgd3JpdGFibGUsIGlmIGZvbGxvd2VkIGJ5IHRoZSBuYW1lIG9mIGEgdmFyaWFibGUsCiAgICAgb3B0aW9uIG9yIGVudmlyb25tZW50IHZhcmlhYmxlLgogOCAgICI6bGV0ICZvcHRpb24iIHNob3VsZCBsaXN0IHRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLgorOCAgICI6bGV0IEZ1bmMoKS5mb28gPSB2YWx1ZSIgc2hvdWxkIHdvcmssIGFsc28gd2hlbiAiZm9vIiBkb2Vzbid0IGV4aXN0LgogNyAgIEFkZCBzeW5JRGxpc3QoKSwgbWFraW5nIHRoZSB3aG9sZSBsaXN0IG9mIHN5bnRheCBpdGVtcyBvbiB0aGUgc3ludGF4IHN0YWNrCiAgICAgYXZhaWxhYmxlIGFzIGEgTGlzdC4KIDggICBBZGQgYXV0b2NvbW1hbmQtZXZlbnQgZm9yIHdoZW4gYSB2YXJpYWJsZSBpcyBjaGFuZ2VkOgpAQCAtMTYwNiw2ICsyMTIxLDkgQEAKIFBlcmZvcm1hbmNlOgogNyAgIEZvciBzdHJpbmdzIHVwIHRvIDMgYnl0ZXMgZG9uJ3QgYWxsb2NhdGUgbWVtb3J5LCB1c2Ugdl9saXN0IGl0c2VsZiBhcyBhCiAgICAgY2hhcmFjdGVyIGFycmF5LiAgVXNlIFZBUl9TU1RSSU5HIChzaG9ydCBzdHJpbmcpLgorOCAgIEluc3RlYWQgb2YgbG9hZGluZyByZ2IudHh0IGV2ZXJ5IHRpbWUgYSBjb2xvciB3YXNuJ3QgcmVjb2duaXplZCBsb2FkIGl0CisgICAgb25jZSBhbmQga2VlcCBpdCBpbiBtZW1vcnkuICBNb3ZlIHRoZSBjb2RlIHRvIGEgY29tbW9uIHBsYWNlIHRvIGF2b2lkCisgICAgcmVwZWF0aW5nIGl0IGluIHZhcmlvdXMgc3lzdGVtIGZpbGVzLgogOCAgIFR1cm4gYl9zeW5faWMgYW5kIGJfc3luX2NvbnRhaW5lZGluIGludG8gYl9zeW5fZmxhZ3MuCiA5ICAgTG9hZGluZyBtZW51LnZpbSBzdGlsbCB0YWtlcyBxdWl0ZSBhIGJpdCBvZiB0aW1lLiAgSG93IHRvIG1ha2UgaXQgZmFzdGVyPwogOCAgIGluX2lkX2xpc3QoKSB0YWtlcyBtdWNoIHRpbWUgZm9yIHN5bnRheCBoaWdobGlnaHRpbmcuICBDYWNoZSB0aGUgcmVzdWx0PwpAQCAtMTcxOSw2ICsyMjM3LDggQEAKIC0gICBEZWxldGUgbWVzc2FnZSBhZnRlciBuZXcgY29tbWFuZCBoYXMgYmVlbiBlbnRlcmVkIGFuZCBoYXZlIHdhaXRlZCBmb3Iga2V5LgogICAgIFBlcmhhcHMgYWZ0ZXIgdGVuIHNlY29uZHM/CiAtICAgTWFrZSBtZXNzYWdlIGhpc3RvcnkgYXZhaWxhYmxlIGluICJtc2ciIHZhcmlhYmxlczogbXNnMSwgbXNnMiwgLi4gbXNnOS4KKzggICBXaGVuIHJlYWRpbmcgZnJvbSBzdGRpbiBhbGxvdyBzdXBwcmVzc2luZyB0aGUgInJlYWRpbmcgZnJvbSBzdGRpbiIKKyAgICBtZXNzYWdlLgogOSAgIENoZWNrIGhhbmRsaW5nIG9mIG92ZXJ3cml0aW5nIG9mIG1lc3NhZ2VzIGFuZCBkZWxheXM6CiAgICAgVmVyeSB3cm9uZzogZXJyb3JzIHdoaWxlIHJlZHJhd2luZyBjYXVzZSBlbmRsZXNzIGxvb3AuCiAgICAgV2hlbiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBmaWxlIGFuZCBzY3JlZW4gc2Nyb2xscyBiZWNhdXNlIG9mIHRoZSBsb25nCkBAIC0xODQwLDYgKzIzNjAsOSBAQAogICAgIGJlZm9yZSB0aGUgcHJldmlvdXMgIjp0YWciIGNvbW1hbmQuIChXZWJiKQogLSAgIFdoZW4gZG9pbmcgIlteSSIgb3IgIlteRCIgYWRkIHBvc2l0aW9uIHRvIHRhZyBzdGFjay4KIC0gICBBZGQgY29tbWFuZCB0byBwdXQgY3VycmVudCBwb3NpdGlvbiB0byB0YWcgc3RhY2s6ICI6dHB1c2giLgorLSAgIEFkZCBmdW5jdGlvbnMgdG8gc2F2ZSBhbmQgcmVzdG9yZSB0aGUgdGFnIHN0YWNrPyAgT3IgYSBjb21tYW5kIHRvIHN3aXRjaAorICAgIHRvIGFub3RoZXIgdGFnIHN0YWNrPyAgU28gdGhhdCB5b3UgY2FuIGRvIHNvbWV0aGluZyBlbHNlIGFuZCBjb21lIGJhY2sgdG8KKyAgICB3aGF0IHlvdSB3ZXJlIHdvcmtpbmcgb24uCiA3ICAgV2hlbiB1c2luZyBDVFJMLV0gb24gc29tZUNsYXNzOjpzb21lTWV0aG9kLCBzZXBhcmF0ZSBjbGFzcyBmcm9tIG1ldGhvZCBhbmQKICAgICB1c2UgIjp0YSBjbGFzczpzb21lQ2xhc3Mgc29tZU1ldGhvZCIuCiAgICAgSW5jbHVkZSBDKysgdGFncyBjaGFuZ2VzIChCZXJ0aW4pLglDaGFuZ2UgImNsYXNzOjpmdW5jIiB0YWcgaW50byAiZnVuYyIKQEAgLTIwMDAsNiArMjUyMyw4IEBACiA4ICAgQXV0b2NvbW1hbmQgZm9yIHdoZW4gbW9kaWZpZWQgZmlsZXMgaGF2ZSBiZWVuIGZvdW5kLCB3aGVuIGdldHRpbmcgaW5wdXQKICAgICBmb2N1cyBhZ2FpbiAoZS5nLiwgRmlsZUNoYW5nZWRGb2N1cykuCiAgICAgQ2hlY2sgd2hlbjogZ2V0dGluZyBmb2N1cywganVtcGluZyB0byBhbm90aGVyIGJ1ZmZlciwgLi4uCis3ICAgQXV0b2NvbW1hbmQgZm9yIHdoZW4gYW4gb3B0aW9uIGlzIGNoYW5nZWQuICBNYXRjaCBidWZmZXIgbmFtZSBvciBvcHRpb24KKyAgICBuYW1lPwogOCAgIEF1dG9jb21tYW5kcyBzaG91bGQgbm90IGNoYW5nZSByZWdpc3RlcnMuICBBbmQgbWFya3M/ICBBbmQgdGhlIGp1bXBsaXN0PwogICAgIEFuZCBhbnl0aGluZyBlbHNlPyAgQWRkIGEgY29tbWFuZCB0byBzYXZlIGFuZCByZXN0b3JlIHRoZXNlIHRoaW5ncy4KIDggICBBZGQgYXV0b2NvbW1hbmRzLCB1c2VyIGZ1bmN0aW9ucyBhbmQgdXNlciBjb21tYW5kcyB0byAiOm1rdmltcmMiLgpAQCAtMjAyOSw2ICsyNTU0LDcgQEAKICAgICAqTGVhdmUJICAgIC0gTGVhdmluZyBhIG1vZGUgKGluIHBhaXIgd2l0aCB0aGUgYWJvdmUgKkVudGVyKQogICAgIFZpbUxlYXZlQ2hlY2sgICAgLSBCZWZvcmUgVmltIGRlY2lkZXMgdG8gZXhpdCwgc28gdGhhdCBpdCBjYW4gYmUgY2FuY2VsbGVkCiAJCSAgICAgIHdoZW4gZXhpdGluZyBpc24ndCBhIGdvb2QgaWRlYS4KKyAgICBDdXJzb3JIb2xkQyAgICAgLSBDdXJzb3JIb2xkIHdoaWxlIGNvbW1hbmQtbGluZSBlZGl0aW5nCiAgICAgV2luTW92ZWQJICAgIC0gd2hlbiB3aW5kb3dzIGhhdmUgYmVlbiBtb3ZlZCBhcm91bmQsIGUuZywgIjp3aW5jbWQgSiIKICAgICBDbWRVbmRlZmluZWQgICAgLSBMaWtlIEZ1bmNVbmRlZmluZWQgYnV0IGZvciB1c2VyIGNvbW1hbmRzLgogICAgIFNlYXJjaFBvc3QJICAgIC0gQWZ0ZXIgZG9pbmcgYSBzZWFyY2ggY29tbWFuZCAoZS5nLiB0byBkbyAiTSIpCkBAIC0yMDUzLDcgKzI1NzksMTAgQEAKIAkJICAgICAgdGhlIHBvc2l0aW9uIGFuZCBudW1iZXIgb2YgaW5zZXJ0ZWQvZGVsZXRlZCBsaW5lcywgc28KIAkJICAgICAgdGhhdCBtYXJrcyBjYW4gYmUgdXBkYXRlZC4gIEhpZXJBc3Npc3QgaGFzIHBhdGNoIHRvIGFkZAogCQkgICAgICBCdWZDaGFuZ2VQcmUsIEJ1ZkNoYW5nZVBvc3QgYW5kIFJldmVydEJ1Zi4gKFNoYWgpCi0gICAgV2luUmVzaXplZAkgICAgLSBXaGVuIGEgd2luZG93IGhhcyBiZWVuIHJlc2l6ZWQKKyAgICBWaWV3Q2hhbmdlZAkgICAgLSB0cmlnZ2VyZWQgd2hlbiB0aGUgdGV4dCBzY3JvbGxzIGFuZCB3aGVuIHRoZSB3aW5kb3cgc2l6ZQorCQkgICAgICBjaGFuZ2VzLgorICAgIFdpblJlc2l6ZWQJICAgIC0gQWZ0ZXIgYSB3aW5kb3cgaGFzIGJlZW4gcmVzaXplZAorICAgIFdpbkNsb3NlCSAgICAtIEp1c3QgYmVmb3JlIGNsb3NpbmcgYSB3aW5kb3cKIC0gICBXcml0ZSB0aGUgZmlsZSBub3cgYW5kIHRoZW4gKCdhdXRvc2F2ZScpOgogCQkJCSAgKidhdXRvc2F2ZScqIConYXMnKiAqJ25vYXV0b3NhdmUnKiAqJ25vYXMnKgogICAgICdhdXRvc2F2ZScgJ2F3JyBudW1iZXIgIChkZWZhdWx0IDApCkBAIC0yMDcwLDggKzI1OTksNiBAQAogCSAgU2hvdWxkIHdvcmsgZm9yIEphdmEgKEVjbGlwc2UgZG9lcyB0aGlzKSwgUHl0aG9uLCBUY2wsIGV0Yy4KIAkgIFJpY2hhcmQgRW1iZXJzb24gbWVudGlvbmVkIHdvcmtpbmcgb24gYW4gaW50ZXJmYWNlIHRvIEphdmEuCiAJLSBDaGVjayBSZWFkbGluZSBmb3IgaXRzIGNvbXBsZXRpb24gaW50ZXJmYWNlLgotCS0gVXNlIGN0YWdzIGZvciBvdGhlciBsYW5ndWFnZXMuICBXcml0aW5nIGEgZmlsZSBjb3VsZCB0cmlnZ2VyIHJ1bm5pbmcKLQkgIGN0YWdzLCBtZXJnaW5nIHRoZSB0YWdzIG9mIHRoZSBjaGFuZ2VkIGZpbGUuCiAtICAgSWRlYXMgZnJvbSBvdGhlcnM6CiAJaHR0cDovL3d3dy53aG9sZXRvbWF0by5jb20vCiAJaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9NzQ3CkBAIC0yMTA2LDYgKzI2MzMsMTIgQEAKIDggICBBZGQgb3B0aW9uIHRvIHNldCBkaWZmZXJlbnQgYmVoYXZpb3IgZm9yIEluc2VydCBtb2RlIGNvbXBsZXRpb246CiAgICAgLSBpZ25vcmUvbWF0Y2ggY2FzZQogICAgIC0gZGlmZmVyZW50IGNoYXJhY3RlcnMgdGhhbiAnaXNrZXl3b3JkJworOCAgIEFkZCBvcHRpb24gJ2lzZXhwYW5kJywgY29udGFpbmluZyBjaGFyYWN0ZXJzIHdoZW4gZG9pbmcgZXhwYW5zaW9uIChzbyB0aGF0CisgICAgIi4iIGFuZCAiXCIgY2FuIGJlIGluY2x1ZGVkLCB3aXRob3V0IGNoYW5naW5nICdpc2tleXdvcmQnKS4gKEdvbGRmYXJiKQorICAgIEFsc286ICdpc3RhZ3dvcmQnOiBjaGFyYWN0ZXJzIHVzZWQgZm9yIENUUkwtXS4KKyAgICBXaGVuICdpc2V4cGFuZCcgb3IgJ2lzdGFnd29yZCcgYXJlIGVtcHR5LCB1c2UgJ2lza2V5d29yZCcuCisgICAgQWx0ZXJuYXRpdmU6IFVzZSBhIHBhdHRlcm4gc28gdGhhdCBzdGFydCBhbmQgZW5kIG9mIGEga2V5d29yZCBjYW4gYmUKKyAgICBkZWZpbmVkLCBvbmx5IGFsbG93IGRhc2ggaW4gdGhlIG1pZGRsZSwgZXRjLgogOCAgIEFkZCBhIGNvbW1hbmQgdG8gdW5kbyB0aGUgY29tcGxldGlvbiwgZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgdGV4dC4KIDcgICBDb21wbGV0aW9uIG9mIGFuIGFiYnJldmlhdGlvbjogQ2FuIGxlYXZlIGxldHRlcnMgb3V0LCBsaWtlIHdoYXQgSW5zdGFudAogICAgIHRleHQgZG9lczogd3d3LnRleHR3YXJlLmNvbQpAQCAtMjEzNiwxMCArMjY2OSw2IEBACiAtICAgQ1RSTC1YIENUUkwtRjogVXNlICdwYXRoJyB0byBmaW5kIGNvbXBsZXRpb25zLgogLSAgIENUUkwtWCBDVFJMLUY6IE9wdGlvbiB0byB1c2UgZm9yd2FyZCBzbGFzaGVzIG9uIE1TLVdpbmRvd3M/CiAtICAgQ1RSTC1YIENUUkwtRjogRG9uJ3QgcmVwbGFjZSAiJFZJTSIgd2l0aCB0aGUgYWN0dWFsIHZhbHVlLiAoS2VsbHkpCi04ICAgQWRkIG9wdGlvbiAnaXNleHBhbmQnLCBjb250YWluaW5nIGNoYXJhY3RlcnMgd2hlbiBkb2luZyBleHBhbnNpb24gKHNvIHRoYXQKLSAgICAiLiIgYW5kICJcIiBjYW4gYmUgaW5jbHVkZWQsIHdpdGhvdXQgY2hhbmdpbmcgJ2lza2V5d29yZCcpLiAoR29sZGZhcmIpCi0gICAgQWxzbzogJ2lzdGFnd29yZCc6IGNoYXJhY3RlcnMgdXNlZCBmb3IgQ1RSTC1dLgotICAgIFdoZW4gJ2lzZXhwYW5kJyBvciAnaXN0YWd3b3JkJyBhcmUgZW1wdHksIHVzZSAnaXNrZXl3b3JkJy4KIC0gICBBbGxvdyBsaXN0aW5nIGFsbCBtYXRjaGVzIGluIHNvbWUgd2F5IChhbmQgcGlja2luZyBvbmUgZnJvbSB0aGUgbGlzdCkuCiAKIApAQCAtMjI1NSw2ICsyNzg0LDcgQEAKIAogCiAnY2luZGVudCcsICdzbWFydGluZGVudCc6Cis4ICAgTGlzcCBpbmRlbnRpbmc6ICJcXCIgY29uZnVzZXMgdGhlIGluZGVudGVyLiAoRG9yYWkgU2l0YXJhbSwgMjAwNiBNYXkgMTcpCiA4ICAgSmF2YTogSW5zaWRlIGFuIGFub255bW91cyBjbGFzcywgYWZ0ZXIgYW4gImVsc2UiIG9yICJ0cnkiIHRoZSBpbmRlbnQgaXMKICAgICB0b28gc21hbGwuIChWaW5jZW50IEJlcmdiYXVlcikKICAgICBQcm9ibGVtIG9mIHVzaW5nIHt9IGluc2lkZSAoKSwgJ2NpbmRlbnQnIGRvZXNuJ3Qgd29yayB0aGVuLgpAQCAtMjI2NSw2ICsyNzk1LDExIEBACiAJCQkgICAgImFzZGYiCiAJCQl9CiAJCSAgICApOworNiAgIEFkZCAnY2lubycgZmxhZyBmb3IgdGhpcyBmdW5jdGlvbiBhcmd1bWVudCBsYXlvdXQ6IChTcGVuY2VyIENvbGx5ZXIpCisJICAgIGZ1bmMoIGFyZzEKKwkgICAgICAgICwgYXJnMgorCQksIGFyZzMKKwkJKTsKIDcgICBBZGQgc2VwYXJhdGUgIigwIiBvcHRpb24gaW50byBpbnNpZGUvb3V0c2lkZSBhIGZ1bmN0aW9uIChaZWxsbmVyKToKIAlmdW5jKAogCSAgIGludCB4KQkvLyBpbmRlbnQgbGlrZSAiKDQiCkBAIC0yNDM5LDcgKzI5NzQsNiBAQAogNiAgIEluIG5vbi1CbG9jayBtb2RlLCAiSSIgc2hvdWxkIGluc2VydCB0aGUgc2FtZSB0ZXh0IGluIGZyb250IG9mIGVhY2ggbGluZSwKICAgICBiZWZvcmUgdGhlIGZpcnN0IG5vbi1ibGFuaywgImdJIiBpbiBjb2x1bW4gMS4KIDYgICBJbiBub24tQmxvY2sgbW9kZSwgIkEiIHNob3VsZCBhcHBlbmQgdGhlIHNhbWUgdGV4dCBhZnRlciBlYWNoIGxpbmUuCi02ICAgIjonPCwnPnNvdXJjZSIgc2hvdWxkIHJlYWQgdGhlIHNlbGVjdGVkIGxpbmVzIGFuZCAiOnNvdXJjZSIgdGhlbS4KIDYgICBXaGVuIGluIGJsb2Nrd2lzZSB2aXN1YWwgc2VsZWN0aW9uIChDVFJMLVYpLCBhbGxvdyBjdXJzb3IgdG8gYmUgcGxhY2VkCiAgICAgcmlnaHQgb2YgdGhlIGxpbmUuICBDb3VsZCBhbHNvIGFsbG93IGN1cnNvciB0byBiZSBwbGFjZWQgYW55d2hlcmUgb24gYSBUQUIKICAgICBvciBvdGhlciBzcGVjaWFsIGNoYXJhY3Rlci4KQEAgLTI1NDksNyArMzA4Myw5IEBACiBTZWFyY2hpbmc6CiA4ICAgQWRkICJnLyIgYW5kICJnYiIgdG8gc2VhcmNoIGZvciBhIHBhdHRlcm4gaW4gdGhlIFZpc3VhbGx5IHNlbGVjdGVkIHRleHQ/CiAgICAgImc/IiBpcyBhbHJlYWR5IHVzZWQgZm9yIHJvdDEzLgorICAgIFRoZSB2aXMudmltIHNjcmlwdCBoYXMgYSAiOlMiIGNvbW1hbmQgdGhhdCBkb2VzIHNvbWV0aGluZyBsaWtlIHRoaXMuCiAgICAgQ2FuIHVzZSAiZy8iIGluIE5vcm1hbCBtb2RlLCB1c2VzIHRoZSAnPCB0byAnPiBhcmVhLgorICAgIFVzZSAiJi8iIGZvciBzZWFyY2hpbmcgdGhlIHRleHQgaW4gdGhlIFZpc3VhbCBhcmVhPwogOCAgIEFkZCBhIG1lY2hhbmlzbSBmb3IgcmVjdXJzaXZlbmVzczogIlxAKChbXigpXSpcQGdbXigpXSopXCkiLiAgXEBnIHN0YW5kcwogICAgIGZvciAiZ28gcmVjdXJzaXZlIGhlcmUiIGFuZCBcQCggXCkgbWFya3MgdGhlIHJlY3Vyc2l2ZSBwYXJ0LgogICAgIFBlcmwgZG9lcyBpdCB0aGlzIHdheToKQEAgLTI1NTcsNiArMzA5Myw5IEBACiAgICAgSGVyZSAkcGFyZW4gaXMgZXZhbHVhdGVkIHdoZW4gaXQncyBlbmNvdW50ZXJlZC4gIFRoaXMgaXMgbGlrZSBhIHJlZ2V4cAogICAgIGluc2lkZSBhIHJlZ2V4cC4gIEluIHRoZSBhYm92ZSB0ZXJtcyBpdCB3b3VsZCBiZToKIAkgICAgXEAoKFwoW14oKV1cfFxAZ1wpKilcKQorOCAgIFNob3cgdGhlIHByb2dyZXNzIGV2ZXJ5IHNlY29uZC4gIENvdWxkIHVzZSB0aGUgY29kZSB0aGF0IGNoZWNrcyBmb3IgQ1RSTC1DCisgICAgdG8gZmluZCBvdXQgaG93IG11Y2ggdGltZSBoYXMgcGFzc2VkLiAgT3IgdXNlIFNJR0FMUk0uICBXaGVyZSB0byBzaG93IHRoZQorICAgIG51bWJlcj8KIDcgICBTdXBwb3J0IGZvciBhcHByb3hpbWF0ZS1yZWdleHBzIHRvIGZpbmQgc2ltaWxhciB3b3JkcyAoYWdyZXAKICAgICBodHRwOi8vd3d3LnRncmllcy5kZS9hZ3JlcC8gdHJlOiBodHRwOi8vbGF1cmlrYXJpLm5ldC90cmUvaW5kZXguaHRtbCkuCiA4ICAgQWRkIGFuIGl0ZW0gZm9yIGEgYmlnIGNoYXJhY3RlciByYW5nZSwgc28gdGhhdCBvbmUgY2FuIHNlYXJjaCBmb3IgYQpAQCAtMjY2MSw2ICszMjAwLDEzIEBACiAKIAogVW5kbzoKKzggICBVbmRvIHRyZWU6IHZpc3VhbGx5IHNob3cgdGhlIHRyZWUgc29tZWhvdyAoRGFtaWFuIENvbndheSkKKyAgICBTaG93IG9ubHkgdGhlIGxlYXZlcywgaW5kaWNhdGluZyBob3cgbWFueSBjaGFuZ2VkIGZyb20gdGhlIGJyYW5jaCBhbmQgdGhlCisgICAgdGltZXN0YW1wPworICAgIFB1dCBicmFuY2ggd2l0aCBtb3N0IHJlY2VudCBjaGFuZ2Ugb24gdGhlIGxlZnQsIG9sZGVyIGNoYW5nZXMgZ2V0IG1vcmUKKyAgICBpbmRlbnQ/Cis4ICAgU2VhcmNoIGZvciBwYXR0ZXJuIGluIHVuZG8gdHJlZSwgc2hvd2luZyB3aGVuIGl0IGhhcHBlbmVkIGFuZCB0aGUgdGV4dAorICAgIHN0YXRlLCBzbyB0aGF0IHlvdSBjYW4ganVtcCB0byBpdC4KIC0gICBQZXJzaXN0ZW50IHVuZG86IHN0b3JlIHVuZG8gaW4gYSBmaWxlLgogICAgIFVzZSB0aW1lc3RhbXBzLCBzbyB0aGF0IGEgdmVyc2lvbiBhIGNlcnRhaW4gdGltZSBhZ28gY2FuIGJlIGZvdW5kIGFuZCBpbmZvCiAgICAgYmVmb3JlIHNvbWUgdGltZS9kYXRlIGNhbiBiZSBmbHVzaGVkLiAndW5kb3BlcnNpc3QnIGdpdmVzIG1heGltdW0gdGltZSB0bwpAQCAtMzAzMyw4ICszNTc5LDEzIEBACiAgICAgbmV4dCA8bGk+LCBdPCB0byBuZXh0IDwvbGk+LCBbPCB0byBwcmV2aW91cyA8L2xpPi4KIDggICBBZGQgIjpyZW5hbWUiIGNvbW1hbmQ6IHJlbmFtZSB0aGUgZmlsZSBvZiB0aGUgY3VycmVudCBidWZmZXIgYW5kIHJlbmFtZQogICAgIHRoZSBidWZmZXIuICBCdWZmZXIgbWF5IGJlIG1vZGlmaWVkLgorNyAgIEluc3RlYWQgb2YgZmlsdGVyaW5nIGVycm9ycyB3aXRoIGEgc2hlbGwgc2NyaXB0IGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0bworICAgIGRvIHRoaXMgd2l0aCBWaW0gc2NyaXB0LiAgQSBmdW5jdGlvbiB0aGF0IGZpbHRlcnMgdGhlIHJhdyB0ZXh0IHRoYXQgY29tZXMKKyAgICBmcm9tIHRoZSAnbWFrZXByZyc/CiAtICAgQWRkICViIHRvICdlcnJvcmZvcm1hdCc6IGJ1ZmZlciBudW1iZXIuIChZZWdhcHBhbiBMYWtzaG1hbmFuIC8gU3VyZXNoCiAgICAgR292aW5kYWNoYXIpCis3ICAgQWRkIGEgY29tbWFuZCB0aGF0IGdvZXMgYmFjayB0byB0aGUgcG9zaXRpb24gZnJvbSBiZWZvcmUganVtcGluZyB0byB0aGUKKyAgICBmaXJzdCBxdWlja2ZpeCBsb2NhdGlvbi4gICI6Y2JlZm9yZSI/CiA2ICAgSW4gdGhlIHF1aWNrZml4IHdpbmRvdyBzdGF0dXNsaW5lIGFkZCB0aGUgY29tbWFuZCB1c2VkIHRvIGdldCB0aGUgbGlzdCBvZgogICAgIGVycm9ycywgZS5nLiAiOm1ha2UgZm9vIiwgIjpncmVwIHNvbWV0aGluZyAqLmMiLgogNiAgIFB5dGhvbiBpbnRlcmZhY2U6IGFkZCB2aW0ubWVzc2FnZSgpIGZ1bmN0aW9uLiAoTWljaGFsIFZpdGVjZWssIDIwMDIgTm92IDUpCkBAIC0zMDQ3LDcgKzM1OTgsNiBAQAogICAgIHRvIG1hbmlwdWxhdGUgdGV4dCB3aXRob3V0IGNoYW5naW5nIHRoZSB3aW5kb3cgbGF5b3V0LgogOCAgIEFkZCBhIGNvbW1hbmQgdG8gcmV2ZXJ0IHRvIHRoZSBzYXZlZCB2ZXJzaW9uIG9mIGZpbGU7IHVuZG8gb3IgcmVkbyB1bnRpbAogICAgIGFsbCBjaGFuZ2VzIGFyZSBnb25lLgotNyAgIEFkZCBhICI6Y3BmaWxlIiwgZ28gaW4gdGhlIG90aGVyIGRpcmVjdGlvbiBhcyAiOmNuZmlsZSIuCiA2ICAgInZpbSAtcSAtIiBzaG91bGQgcmVhZCB0aGUgbGlzdCBvZiBlcnJvcnMgZnJvbSBzdGRpbi4gKEdhdXRhbSBNdWR1bnVyaSkKIDggICBBZGQgIi0tcmVtb3RlLWZhaWwiOiBXaGVuIGNvbnRhY3RpbmcgdGhlIHNlcnZlciBmYWlscywgZXhpdCBWaW0uCiAgICAgQWRkICItLXJlbW90ZS1zZWxmIjogV2hlbiBjb250YWN0aW5nIHRoZSBzZXJ2ZXIgZmFpbHMsIGRvIGl0IGluIHRoaXMgVmltLgpAQCAtMzA2OCw3ICszNjE4LDYgQEAKICAgICBldGMuICBDb21iaW5hdGlvbnMgb2YgQWx0LCBDdHJsIGFuZCBTaGlmdCBhcmUgYWxzbyBwb3NzaWJsZS4gIFJlY29nbml6ZQogICAgIHRoZXNlIHRvIGF2b2lkIGluc2VydGluZyB0aGUgcmF3IGJ5dGUgc2VxdWVuY2UsIGhhbmRsZSBsaWtlIHRoZSBrZXkKICAgICB3aXRob3V0IG1vZGlmaWVyICh1bmxlc3MgbWFwcGVkKS4KLTggICBBZGQgIjpicmVha2RlbCAqIjogZGVsZXRlIGFsbCBicmVha3BvaW50cy4KIDcgICBTdXBwb3J0ICI6YnJvd3NlIGVkaXQiIGluIGNvbnNvbGUsIHVzaW5nIGV4cGxvcmVyLnZpbT8KIDYgICBBZGQgImdHIjogbGlrZSB3aGF0ICJnaiIgaXMgdG8gImoiOiBnbyB0byB0aGUgTid0aCB3aW5kb3cgbGluZS4KIDggICBBZGQgY29tbWFuZCBsaWtlICI6bm9ybWFsIiB0aGF0IGFjY2VwdHMgPEtleT4gbm90YXRpb24gbGlrZSAiOm1hcCIuCkBAIC0zMTA3LDEzICszNjU2LDYgQEAKIDcgICBIYXZlIGEgbG9vayBhdCB2aUggKEhlbGxlbmljIG9yIEdyZWVrIHZlcnNpb24gb2YgVmltKS4gIEJ1dCBhIHNvbHV0aW9uCiAgICAgb3V0c2lkZSBvZiBWaW0gbWlnaHQgYmUgc2F0aXNmYWN0b3J5IChIYXJpdHNpcykuCiAzICAgTWFrZSAiMmQlIiB3b3JrIGxpa2UgImQlZCUiIGluc3RlYWQgb2YgImQyJSI/Ci04ICAgTWFrZSAibW9yZSIgcHJvbXB0IGFjY2VwdCBjb21tYW5kIGNoYXJhY3RlcnMsIGxpa2UgImhpdC1lbnRlciIgcHJvbXB0PwotICAgIE9yIGV4dGVuZCBpdCB3aXRoIG1vcmUgY29tbWFuZHMsIGxpa2UgImxlc3MiOiAnYicgZm9yIGJhY2ssICdqJyBmb3Igb25lCi0gICAgbGluZSBkb3duLCBldGMuCi04ICAgRm9yIHRoZSAiLS1tb3JlLS0iIHByb21wdCwgc3VwcG9ydCB0aGUgJ2InYWNrIGNvbW1hbmQgZm9yIG1vcmUgY29tbWFuZHMuCi0gICAgUG9zc2libGUgaW1wbGVtZW50YXRpb246IERvIGl0IGF0IGEgdmVyeSBsb3cgbGV2ZWwsIGNhY2hpbmcgdGhlIGxpbmVzIHRoYXQKLSAgICBhcmUgb24gdGhlIHNjcmVlbiAod2l0aCBoaWdobGlnaHQgYXR0cmlidXRlcykuICBBdm9pZHMgdGhhdCBjaGFuZ2VzIGhhdmUKLSAgICB0byBiZSBtYWRlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgbGlzdCBzb21ldGhpbmcuCiA3ICAgImcgQ1RSTC1PIiBqdW1wcyBiYWNrIHRvIGxhc3QgdXNlZCBidWZmZXIuCVNraXAgQ1RSTC1PIGp1bXBzIGluIHRoZSBzYW1lCiAgICAgYnVmZmVyLiAgTWFrZSBqdW1wbGlzdCByZW1lbWJlciB0aGUgbGFzdCB0ZW4gYWNjZXNzZWQgYnVmZmVycz8KIC0gICBLZWVwIGEgbGlzdCBvZiBtb3N0IHJlY2VudGx5IHVzZWQgZmlsZXMgZm9yIGVhY2ggd2luZG93LCB1c2UgIltvIiB0byBnbwpAQCAtMzE0Niw4ICszNjg4LDYgQEAKICAgICBvZiB0aGUgZmlsZXMuICBPbmx5IGNoZWNrIHdoZW4gYW4gZXZlbnQgb2NjdXJzIChlLmcuLCBjaGFyYWN0ZXIgdHlwZWQsCiAgICAgbW91c2UgbW92ZWQpLiAgVXNlZnVsIGZvciBub24tR1VJIHZlcnNpb25zIHdoZXJlIGtleWJvYXJkIGZvY3VzIGlzbid0CiAgICAgbm90aWNlYWJsZS4KLTkgICBXaGVuIHVzaW5nICI6dyA8Zm5hbWU+IiBpdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBmaWxlIGlzIGxvYWRlZCBpbiBhbm90aGVyCi0gICAgYnVmZmVyLiAgR2l2ZSBhIHdhcm5pbmcgcmlnaHQgYXdheSwgZG9uJ3Qgd2FpdCBmb3IgYSBzaGVsbCBjb21tYW5kLgogLSAgIE1ha2UgJ3NtYXJ0Y2FzZScgd29yayBldmVuIHRob3VnaCAnaWMnIGlzbid0IHNldCAoV2ViYikuCiA3ICAgV2hlbiBmb3JtYXR0aW5nIHRleHQsIGFsbG93IHRvIGJyZWFrIHRoZSBsaW5lIGF0IGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMuCiAgICAgVXNlIGFuIG9wdGlvbiBmb3IgdGhpczogJ2JyZWFrY2hhcnMnPyAgVXNlZnVsIGZvciBmb3JtYXR0aW5nIEZvcnRyYW4gY29kZS4KQEAgLTMxNTYsOCArMzY5Niw4IEBACiAgICAgcGFyYWdyYXBocykuICBDb21wbGVtZW50cyB0aGUgJzInIGZsYWcuICBVc2UgJz4nIGZsYWcgd2hlbiBsYXJnZXIgaW5kZW50CiAgICAgc3RhcnRzIGEgbmV3IHBhcmFncmFwaCwgdXNlICc8JyBmbGFnIHdoZW4gc21hbGxlciBpbmRlbnQgc3RhcnRzIGEgbmV3CiAgICAgcGFyYWdyYXBoLglCb3RoIHN0YXJ0IGEgbmV3IHBhcmFncmFwaCBvbiBhbnkgaW5kZW50IGNoYW5nZS4KLTcgICBBZGQgYSB3YXkgdG8gZGVmaW5lIGFuIGl0ZW0gbGlzdCB3aXRoIGEgcGF0dGVybiBpbiAnZm9ybWF0b3B0aW9ucycuICBUaGUKLSAgICAnbicgZmxhZyBkb2Vzbid0IHdvcmsgZm9yICI2LjMiIG9yICI2YS4iLgorOCAgIFRoZSAnYScgZmxhZyBpbiAnZm9ybWF0b3B0aW9ucycgaXMgdG9vIGRhbmdlcm91cy4gIEluIHNvbWUgd2F5IG9ubHkgZG8KKyAgICBhdXRvLWZvcm1hdHRpbmcgaW4gc3BlY2lmaWMgcmVnaW9ucywgZS5nLiBkZWZpbmVkIGJ5IHN5bnRheCBoaWdobGlnaHRpbmcuCiA4ICAgQWxsb3cgdXNpbmcgYSB0cmFpbGluZyBzcGFjZSB0byBzaWduYWwgYSBwYXJhZ3JhcGggdGhhdCBjb250aW51ZXMgb24gdGhlCiAgICAgbmV4dCBsaW5lIChNSU1FIHRleHQvcGxhaW47IGZvcm1hdD1mbG93ZWQsIFJGQyAyNjQ2KS4gIENhbiBiZSB1c2VkIGZvcgogICAgIGNvbnRpbnVvdXMgZm9ybWF0dGluZy4gIENvdWxkIHVzZSAnYXV0b2Zvcm1hdCcgb3B0aW9uLCB3aGljaCBzcGVjaWZpZXMgYQpAQCAtMzM1OCw4ICszODk4LDYgQEAKIC0gICBBbWlnYTogdGVzdCBmb3IgJ3cnIGZsYWcgd2hlbiByZWFkaW5nIGEgZmlsZS4KIC0gICA6dGFibGUgY29tbWFuZCAoV2ViYikKIC0gICBBZGQgbmV3IG9wZXJhdG9yOiBjbGVhciwgbWFrZSBhcmVhIHdoaXRlIChyZXBsYWNlIHdpdGggc3BhY2VzKTogImcgIi4KLS0gICBNYWtlIGl0IHBvc3NpYmxlIGZvciBhIHVzZXIgdG8gZGVmaW5lIGEgbmV3IG9wZXJhdG9yLiAgSW1wbGVtZW50YXRpb24gd2l0aAotICAgIGludGVybmFsIHNjcmlwdGluZyBsYW5ndWFnZSBvciBQZXJsPwogLSAgIEFkZCBjb21tYW5kIHRvICI6cmVhZCIgYSBmaWxlIGF0IGEgY2VydGFpbiBjb2x1bW4gKGJsb2Nrd2lzZSByZWFkPykuCiAtICAgQWRkIHNvcnQgb2YgcmVwbGFjZSBtb2RlIHdoZXJlIGNhc2UgaXMgdGFrZW4gZnJvbSB0aGUgb2xkIHRleHQgKEdvbGRmYXJiKS4KIC0gICBBbGxvdyBtdWx0aXBsZSBhcmd1bWVudHMgZm9yICI6cmVhZCIsIHJlYWQgYWxsIHRoZSBmaWxlcy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQgYi9ydW50aW1lL2RvYy91c3JfMDEudHh0CmluZGV4IGZjM2IzZWUuLjk3MTQ5MDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzAxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBPY3QgMDgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTU3LDEwICs1NywxMCBAQAogCQkJCQkJCSpub3QtY29tcGF0aWJsZSoKIFRoZSBtYW51YWxzIG9mdGVuIGFzc3VtZSB5b3UgYXJlIHVzaW5nIFZpbSB3aXRoIFZpLWNvbXBhdGliaWxpdHkgc3dpdGNoZWQKIG9mZi4gIEZvciBtb3N0IGNvbW1hbmRzIHRoaXMgZG9lc24ndCBtYXR0ZXIsIGJ1dCBzb21ldGltZXMgaXQgaXMgaW1wb3J0YW50LAotZS5nLiwgZm9yIG11bHRpLWxldmVsIHVuZG8uICBBbiBlYXN5IHdheSB0byBtYWtlIHN1cmUgeW91IGFyZSB1c2luZyB0aGUgcmlnaHQKLXNldHVwLCBjb3B5IHRoZSBleGFtcGxlIHZpbXJjIGZpbGUuICBCeSBkb2luZyB0aGlzIGluc2lkZSBWaW0geW91IGRvbid0IGhhdmUKLXRvIGNoZWNrIG91dCB3aGVyZSBpdCBpcyBsb2NhdGVkLiAgSG93IHRvIGRvIHRoaXMgZGVwZW5kcyBvbiB0aGUgc3lzdGVtIHlvdQotYXJlIHVzaW5nOgorZS5nLiwgZm9yIG11bHRpLWxldmVsIHVuZG8uICBBbiBlYXN5IHdheSB0byBtYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIG5pY2UKK3NldHVwIGlzIHRvIGNvcHkgdGhlIGV4YW1wbGUgdmltcmMgZmlsZS4gIEJ5IGRvaW5nIHRoaXMgaW5zaWRlIFZpbSB5b3UgZG9uJ3QKK2hhdmUgdG8gY2hlY2sgb3V0IHdoZXJlIGl0IGlzIGxvY2F0ZWQuICBIb3cgdG8gZG8gdGhpcyBkZXBlbmRzIG9uIHRoZSBzeXN0ZW0KK3lvdSBhcmUgdXNpbmc6CiAKIFVuaXg6ID4KIAk6IWNwIC1pICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltIH4vLnZpbXJjCkBAIC0xNTUsNyArMTU1LDcgQEAKIE1vb2xlbmFhci4gIFRoaXMgbWF0ZXJpYWwgbWF5IGJlIGRpc3RyaWJ1dGVkIG9ubHkgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kCiBjb25kaXRpb25zIHNldCBmb3J0aCBpbiB0aGUgT3BlbiBQdWJsaWNhdGlvbiBMaWNlbnNlLCB2MS4wIG9yIGxhdGVyLiAgVGhlCiBsYXRlc3QgdmVyc2lvbiBpcyBwcmVzZW50bHkgYXZhaWxhYmxlIGF0OgotCSAgICAgaHR0cDovL3d3dy5vcGVuY29udGVudC5vcmcvb3BsLnNodG1sCisJICAgICBodHRwOi8vd3d3Lm9wZW5jb250ZW50Lm9yZy9vcGVucHViLwogCiBQZW9wbGUgd2hvIGNvbnRyaWJ1dGUgdG8gdGhlIG1hbnVhbHMgbXVzdCBhZ3JlZSB3aXRoIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZS4KQEAgLTE2NCw4ICsxNjQsOCBAQAogT3VhbGxpbmUgKHB1Ymxpc2hlZCBieSBOZXcgUmlkZXJzIFB1Ymxpc2hpbmcsIElTQk46IDA3MzU3MTAwMTUpLiAgVGhlIE9wZW4KIFB1YmxpY2F0aW9uIExpY2Vuc2UgYXBwbGllcyB0byB0aGlzIGJvb2suICBPbmx5IHNlbGVjdGVkIHBhcnRzIGFyZSBpbmNsdWRlZAogYW5kIHRoZXNlIGhhdmUgYmVlbiBtb2RpZmllZCAoZS5nLiwgYnkgcmVtb3ZpbmcgdGhlIHBpY3R1cmVzLCB1cGRhdGluZyB0aGUKLXRleHQgZm9yIFZpbSA2LjAgYW5kIGZpeGluZyBtaXN0YWtlcykuICBUaGUgb21pc3Npb24gb2YgdGhlIHxmcm9tYm9va3wgdGFnCi1kb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHRleHQgZG9lcyBub3QgY29tZSBmcm9tIHRoZSBib29rLgordGV4dCBmb3IgVmltIDYuMCBhbmQgbGF0ZXIsIGZpeGluZyBtaXN0YWtlcykuICBUaGUgb21pc3Npb24gb2YgdGhlIHxmcm9tYm9va3wKK3RhZyBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHRleHQgZG9lcyBub3QgY29tZSBmcm9tIHRoZSBib29rLgogCiBNYW55IHRoYW5rcyB0byBTdGV2ZSBPdWFsbGluZSBhbmQgTmV3IFJpZGVycyBmb3IgY3JlYXRpbmcgdGhpcyBib29rIGFuZAogcHVibGlzaGluZyBpdCB1bmRlciB0aGUgT1BMISAgSXQgaGFzIGJlZW4gYSBncmVhdCBoZWxwIHdoaWxlIHdyaXRpbmcgdGhlIHVzZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wNC50eHQgYi9ydW50aW1lL2RvYy91c3JfMDQudHh0CmluZGV4IDQwM2E4NjEuLjI5YTllYzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wNC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDQudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBKdW4gMjEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTM5MCw3ICszOTAsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqMDQuOCoJVGV4dCBvYmplY3RzCiAKLUlmIHRoZSBjdXJzb3IgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQgYW5kIHdhbnQgdG8gZGVsZXRlIHRoYXQgd29yZCwgeW91CitJZiB0aGUgY3Vyc29yIGlzIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkIGFuZCB5b3Ugd2FudCB0byBkZWxldGUgdGhhdCB3b3JkLCB5b3UKIG5lZWQgdG8gbW92ZSBiYWNrIHRvIGl0cyBzdGFydCBiZWZvcmUgeW91IGNhbiBkbyAiZHciLiAgVGhlcmUgaXMgYSBzaW1wbGVyIHdheQogdG8gZG8gdGhpczogImRhdyIuCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wNS50eHQgYi9ydW50aW1lL2RvYy91c3JfMDUudHh0CmluZGV4IDhkMmI4OGUuLmE5NzgwYzAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wNS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA1LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDUudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBKdWwgMTAKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTIwMiw4ICsyMDIsOCBAQAogZGVmaW5lcyB0aGF0IHdoZW4gdGhlIGZpbGUgdHlwZSBpcyBzZXQgdG8gInRleHQiIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpcwogYXV0b21hdGljYWxseSBleGVjdXRlZC4gICJzZXRsb2NhbCB0ZXh0d2lkdGg9NzgiIHNldHMgdGhlICd0ZXh0d2lkdGgnIG9wdGlvbgogdG8gNzgsIGJ1dCBvbmx5IGxvY2FsbHkgaW4gb25lIGZpbGUuCi0+CiAKKwkJCQkJCQkqcmVzdG9yZS1jdXJzb3IqICA+CiAJYXV0b2NtZCBCdWZSZWFkUG9zdCAqCiAJICAgIFwgaWYgbGluZSgiJ1wiIikgPiAwICYmIGxpbmUoIidcIiIpIDw9IGxpbmUoIiQiKSB8CiAJICAgIFwgICBleGUgIm5vcm1hbCBnYFwiIiB8CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDYudHh0IGIvcnVudGltZS9kb2MvdXNyXzA2LnR4dAppbmRleCBjZDQwYmU0Li5kOWMwYmNkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA2LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8wNi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDcudHh0IGIvcnVudGltZS9kb2MvdXNyXzA3LnR4dAppbmRleCAxZmI3YjVmLi40MTA4ZTQwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8wNy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTEudHh0IGIvcnVudGltZS9kb2MvdXNyXzExLnR4dAppbmRleCAwMWUzMTU1Li5lM2FkZjQ2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzExLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8xMS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTIudHh0IGIvcnVudGltZS9kb2MvdXNyXzEyLnR4dAppbmRleCAxZTJlZTI0Li45MTljZDRmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzEyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8xMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTm92IDE4CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC0zOCw4ICszOCw4IEBACiAKIAk6JXMvXDxmb3VyLzQvZwogCi1PYnZpb3VzbHksIHRoaXMgc3RpbGwgZ29lcyB3cm9uZyBvbiAiZm91cnR5Ii4gIFVzZSAiXD4iIHRvIG1hdGNoIHRoZSBlbmQgb2YgYQotd29yZDogPgorT2J2aW91c2x5LCB0aGlzIHN0aWxsIGdvZXMgd3Jvbmcgb24gImZvdXJ0ZWVuIi4gIFVzZSAiXD4iIHRvIG1hdGNoIHRoZSBlbmQgb2YKK2Egd29yZDogPgogCiAJOiVzL1w8Zm91clw+LzQvZwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjAudHh0IGIvcnVudGltZS9kb2MvdXNyXzIwLnR4dAppbmRleCA3OGU3YTU2Li5hNDMyMGYxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzIwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yMC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjMudHh0IGIvcnVudGltZS9kb2MvdXNyXzIzLnR4dAppbmRleCAxMjBmZTczLi5jNmMzOGVhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yMy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzIzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yMy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjcudHh0IGIvcnVudGltZS9kb2MvdXNyXzI3LnR4dAppbmRleCAxZTYxZjkzLi45ZDkwNGE1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yNy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjgudHh0IGIvcnVudGltZS9kb2MvdXNyXzI4LnR4dAppbmRleCBhZDRmMDI0Li5iYjhkYTdmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yOC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMzAudHh0IGIvcnVudGltZS9kb2MvdXNyXzMwLnR4dAppbmRleCA0ZTc2YjNkLi5jYThjYmFiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMzAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8zMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzMwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8zMC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXByIDIyCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC01MCw3ICs1MCw3IEBACiAJMiByZXR1cm5lZCB+CiAJIm1haW4uYyIgMTFMLCAxMTFDIH4KIAkoMyBvZiA2KTogdG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdkb19zdWInIH4KLQlIaXQgRU5URVIgb3IgdHlwZSBjb21tYW5kIHRvIGNvbnRpbnVlIH4KKwlQcmVzcyBFTlRFUiBvciB0eXBlIGNvbW1hbmQgdG8gY29udGludWUgfgogCiBGcm9tIHRoaXMgeW91IGNhbiBzZWUgdGhhdCB5b3UgaGF2ZSBlcnJvcnMgaW4gdGhlIGZpbGUgIm1haW4uYyIuICBXaGVuIHlvdQogcHJlc3MgPEVudGVyPiwgVmltIGRpc3BsYXlzIHRoZSBmaWxlICJtYWluLmMiLCB3aXRoIHRoZSBjdXJzb3IgcG9zaXRpb25lZCBvbgpAQCAtMTQ4LDcgKzE0OCw3IEBACiAKIE9MRCBFUlJPUiBMSVNUUwogCi1TdXBwb3NlIHlvdSAiOm1ha2UiIGEgcHJvZ3JhbS4gIFRoZXJlIGlzIGFuIHdhcm5pbmcgbWVzc2FnZSBpbiBvbmUgZmlsZSBhbmQgYW4KK1N1cHBvc2UgeW91ICI6bWFrZSIgYSBwcm9ncmFtLiAgVGhlcmUgaXMgYSB3YXJuaW5nIG1lc3NhZ2UgaW4gb25lIGZpbGUgYW5kIGFuCiBlcnJvciBtZXNzYWdlIGluIGFub3RoZXIuICBZb3UgZml4IHRoZSBlcnJvciBhbmQgdXNlICI6bWFrZSIgYWdhaW4gdG8gY2hlY2sgaWYKIGl0IHdhcyByZWFsbHkgZml4ZWQuICBOb3cgeW91IHdhbnQgdG8gbG9vayBhdCB0aGUgd2FybmluZyBtZXNzYWdlLiAgSXQgZG9lc24ndAogc2hvdyB1cCBpbiB0aGUgbGFzdCBlcnJvciBsaXN0LCBzaW5jZSB0aGUgZmlsZSB3aXRoIHRoZSB3YXJuaW5nIHdhc24ndApAQCAtMjQyLDcgKzI0Miw3IEBACiBUaGlzIGluZGVudHMgdGhlIGN1cnJlbnQgbGluZS4gIExpa2Ugd2l0aCBhbGwgb3BlcmF0b3JzLCB0aGVyZSBhcmUgdGhyZWUgd2F5cwogdG8gdXNlIGl0LiAgSW4gVmlzdWFsIG1vZGUgIj0iIGluZGVudHMgdGhlIHNlbGVjdGVkIGxpbmVzLiAgQSB1c2VmdWwgdGV4dAogb2JqZWN0IGlzICJheyIuICBUaGlzIHNlbGVjdHMgdGhlIGN1cnJlbnQge30gYmxvY2suICBUaHVzLCB0byByZS1pbmRlbnQgdGhlCi1jb2RlIGNvZGUgYmxvY2sgdGhlIGN1cnNvciBpcyBpbjogPgorY29kZSBibG9jayB0aGUgY3Vyc29yIGlzIGluOiA+CiAKIAk9YXsKIApAQCAtMzE1LDcgKzMxNSw3IEBACiAKIAlmaWxldHlwZT1oZWxwIH4KIAotVGhpcyB5b3Ugd291bGQgdXNlICJoZWxwIiBmb3Ige2ZpbGV0eXBlfS4KK1RodXMgeW91IHdvdWxkIHVzZSAiaGVscCIgZm9yIHtmaWxldHlwZX0uCiAgICBGb3IgdGhlIHtkaXJlY3Rvcnl9IHBhcnQgeW91IG5lZWQgdG8gdXNlIHlvdXIgcnVudGltZSBkaXJlY3RvcnkuICBMb29rIGF0CiB0aGUgb3V0cHV0IG9mIHRoaXMgY29tbWFuZDogPgogCkBAIC0zMzksNyArMzM5LDcgQEAKIFRoZSBtb3N0IHNpbXBsZSBmb3JtIG9mIGF1dG9tYXRpYyBpbmRlbnRpbmcgaXMgd2l0aCB0aGUgJ2F1dG9pbmRlbnQnIG9wdGlvbi4KIEl0IHVzZXMgdGhlIGluZGVudCBmcm9tIHRoZSBwcmV2aW91cyBsaW5lLiAgQSBiaXQgc21hcnRlciBpcyB0aGUgJ3NtYXJ0aW5kZW50Jwogb3B0aW9uLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGxhbmd1YWdlcyB3aGVyZSBubyBpbmRlbnQgZmlsZSBpcyBhdmFpbGFibGUuCi0nc21hcnRpbmRlbnQnaXMgbm90IGFzIHNtYXJ0IGFzICdjaW5kZW50JywgYnV0IHNtYXJ0ZXIgdGhhbiAnYXV0b2luZGVudCcuCisnc21hcnRpbmRlbnQnIGlzIG5vdCBhcyBzbWFydCBhcyAnY2luZGVudCcsIGJ1dCBzbWFydGVyIHRoYW4gJ2F1dG9pbmRlbnQnLgogICAgV2l0aCAnc21hcnRpbmRlbnQnIHNldCwgYW4gZXh0cmEgbGV2ZWwgb2YgaW5kZW50YXRpb24gaXMgYWRkZWQgZm9yIGVhY2ggewogYW5kIHJlbW92ZWQgZm9yIGVhY2ggfS4gIEFuIGV4dHJhIGxldmVsIG9mIGluZGVudGF0aW9uIHdpbGwgYWxzbyBiZSBhZGRlZCBmb3IKIGFueSBvZiB0aGUgd29yZHMgaW4gdGhlICdjaW53b3Jkcycgb3B0aW9uLiAgTGluZXMgdGhhdCBiZWdpbiB3aXRoICMgYXJlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDAudHh0IGIvcnVudGltZS9kb2MvdXNyXzQwLnR4dAppbmRleCA4NzlkMTQ1Li4zMGM4NmEwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80MC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl80MC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSnVuIDIxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC02MDUsOCArNjA1LDkgQEAKIAogVVNJTkcgTk9STUFMIE1PREUgQ09NTUFORFMKIAotVGhlIGNvbW1hbmRzIGV4ZWN1dGVkIGJ5IGFuIGF1dG9jb21tYW5kIGFyZSBDb21tYW5kLWxpbmUgY29tbWFuZC4gIElmIHlvdSB3YW50Ci10byB1c2UgYSBOb3JtYWwgbW9kZSBjb21tYW5kLCB0aGUgIjpub3JtYWwiIGNvbW1hbmQgY2FuIGJlIHVzZWQuICBFeGFtcGxlOiA+CitUaGUgY29tbWFuZHMgZXhlY3V0ZWQgYnkgYW4gYXV0b2NvbW1hbmQgYXJlIENvbW1hbmQtbGluZSBjb21tYW5kcy4gIElmIHlvdQord2FudCB0byB1c2UgYSBOb3JtYWwgbW9kZSBjb21tYW5kLCB0aGUgIjpub3JtYWwiIGNvbW1hbmQgY2FuIGJlIHVzZWQuCitFeGFtcGxlOiA+CiAKIAk6YXV0b2NtZCBCdWZSZWFkUG9zdCAqLmxvZyBub3JtYWwgRwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dCBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CmluZGV4IDJmMWQzZmYuLmQyY2YwNzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZhcmlvdXMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjUKKyp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IEphbiAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTIxLDYgKzEyMSwxMiBAQAogOltyYW5nZV0jIFtjb3VudF0gW2ZsYWdzXQogCQkJc3lub255bSBmb3IgOm51bWJlci4KIAorCQkJCQkJCSo6IyEqCis6IyF7YW55dGhpbmd9CQlJZ25vcmVkLCBzbyB0aGF0IHlvdSBjYW4gc3RhcnQgYSBWaW0gc2NyaXB0IHdpdGg6ID4KKwkJCQkjIS91c3IvYmluL2VudiB2aW0gLVMKKwkJCQllY2hvICJ0aGlzIGlzIGEgVmltIHNjcmlwdCIKKwkJCQlxdWl0Cis8CiAJCQkJCQkJKjp6KiAqRTE0NCoKIDp7cmFuZ2V9elsrLV4uPV17Y291bnR9CURpc3BsYXkgc2V2ZXJhbCBsaW5lcyBvZiB0ZXh0IHN1cnJvdW5kaW5nIHRoZSBsaW5lCiAJCQlzcGVjaWZpZWQgd2l0aCB7cmFuZ2V9LCBvciBhcm91bmQgdGhlIGN1cnJlbnQgbGluZQpAQCAtMTYzLDYgKzE2OSw3IEBACiAJCQlpdCBwb3NzaWJsZSB0byBleGVjdXRlIE5vcm1hbCBtb2RlIGNvbW1hbmRzIHR5cGVkIG9uCiAJCQl0aGUgY29tbWFuZC1saW5lLiAge2NvbW1hbmRzfSBpcyBleGVjdXRlZCBsaWtlIGl0IGlzCiAJCQl0eXBlZC4gIEZvciB1bmRvIGFsbCBjb21tYW5kcyBhcmUgdW5kb25lIHRvZ2V0aGVyLgorCQkJRXhlY3V0aW9uIHN0b3BzIHdoZW4gYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuCiAJCQlJZiB0aGUgWyFdIGlzIGdpdmVuLCBtYXBwaW5ncyB3aWxsIG5vdCBiZSB1c2VkLgogCQkJe2NvbW1hbmRzfSBzaG91bGQgYmUgYSBjb21wbGV0ZSBjb21tYW5kLiAgSWYKIAkJCXtjb21tYW5kc30gZG9lcyBub3QgZmluaXNoIGEgY29tbWFuZCwgdGhlIGxhc3Qgb25lCkBAIC0zNzcsNyArMzg0LDcgQEAKIE4gICordGVybXJlc3BvbnNlKglzdXBwb3J0IGZvciB8dF9SVnwgYW5kIHx2OnRlcm1yZXNwb25zZXwKIE4gICordGV4dG9iamVjdHMqCXx0ZXh0LW9iamVjdHN8IHNlbGVjdGlvbgogICAgKit0Z2V0ZW50KgkJbm9uLVVuaXggb25seTogYWJsZSB0byB1c2UgZXh0ZXJuYWwgdGVybWNhcAotTiAgKit0aXRsZSoJCVNldHRpbmcgdGhlIHdpbmRvdyB0aXRsZSB8J3RpdGxlJ3wKK04gICordGl0bGUqCQlTZXR0aW5nIHRoZSB3aW5kb3cgJ3RpdGxlJyBhbmQgJ2ljb24nCiBOICAqK3Rvb2xiYXIqCQl8Z3VpLXRvb2xiYXJ8CiBOICAqK3VzZXJfY29tbWFuZHMqCVVzZXItZGVmaW5lZCBjb21tYW5kcy4gfHVzZXItY29tbWFuZHN8CiBOICAqK3ZpbWluZm8qCQl8J3ZpbWluZm8nfApAQCAtNDM0LDEwICs0NDEsMTQgQEAKIAkJCWFmdGVyIHRoZSByZWdpc3RlciBuYW1lIGNhbiBiZSBvbWl0dGVkLiB7bm90IGluIFZpfQogOnJlZGlbcl0gQHthLXp9Pj4JQXBwZW5kIG1lc3NhZ2VzIHRvIHJlZ2lzdGVyIHthLXp9LiB7bm90IGluIFZpfQogCi06cmVkaVtyXSBAKj4JCVJlZGlyZWN0IG1lc3NhZ2VzIHRvIHRoZSBjbGlwYm9hcmQuIEZvciBiYWNrd2FyZAotCQkJY29tcGF0aWJpbGl0eSwgdGhlICI+IiBhZnRlciB0aGUgcmVnaXN0ZXIgbmFtZSBjYW4gYmUKLQkJCW9taXR0ZWQuIHtub3QgaW4gVml9Ci06cmVkaVtyXSBAKj4+CQlBcHBlbmQgbWVzc2FnZXMgdG8gdGhlIGNsaXBib2FyZC4ge25vdCBpbiBWaX0KKzpyZWRpW3JdIEAqPgkJCis6cmVkaVtyXSBAKz4JCVJlZGlyZWN0IG1lc3NhZ2VzIHRvIHRoZSBzZWxlY3Rpb24gb3IgY2xpcGJvYXJkLiBGb3IKKwkJCWJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSAiPiIgYWZ0ZXIgdGhlIHJlZ2lzdGVyCisJCQluYW1lIGNhbiBiZSBvbWl0dGVkLiBTZWUgfHF1b3Rlc3RhcnwgYW5kIHxxdW90ZXBsdXN8LgorCQkJe25vdCBpbiBWaX0KKzpyZWRpW3JdIEAqPj4JCQorOnJlZGlbcl0gQCs+PgkJQXBwZW5kIG1lc3NhZ2VzIHRvIHRoZSBzZWxlY3Rpb24gb3IgY2xpcGJvYXJkLgorCQkJe25vdCBpbiBWaX0KIAogOnJlZGlbcl0gQCI+CQlSZWRpcmVjdCBtZXNzYWdlcyB0byB0aGUgdW5uYW1lZCByZWdpc3Rlci4gRm9yCiAJCQliYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgIj4iIGFmdGVyIHRoZSByZWdpc3RlcgpAQCAtNDQ3LDYgKzQ1OCw3IEBACiA6cmVkaVtyXSA9PiB7dmFyfQlSZWRpcmVjdCBtZXNzYWdlcyB0byBhIHZhcmlhYmxlLiAgSWYgdGhlIHZhcmlhYmxlCiAJCQlkb2Vzbid0IGV4aXN0LCB0aGVuIGl0IGlzIGNyZWF0ZWQuICBJZiB0aGUgdmFyaWFibGUKIAkJCWV4aXN0cywgdGhlbiBpdCBpcyBpbml0aWFsaXplZCB0byBhbiBlbXB0eSBzdHJpbmcuCisJCQlUaGUgdmFyaWFibGUgd2lsbCByZW1haW4gZW1wdHkgdW50aWwgcmVkaXJlY3Rpb24gZW5kcy4KIAkJCU9ubHkgc3RyaW5nIHZhcmlhYmxlcyBjYW4gYmUgdXNlZC4gIEFmdGVyIHRoZQogCQkJcmVkaXJlY3Rpb24gc3RhcnRzLCBpZiB0aGUgdmFyaWFibGUgaXMgcmVtb3ZlZCBvcgogCQkJbG9ja2VkIG9yIHRoZSB2YXJpYWJsZSB0eXBlIGlzIGNoYW5nZWQsIHRoZW4gZnVydGhlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CmluZGV4IDRhNjA1OWMuLjY4MmRjZmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKQEAgLTEsOSArMSw5IEBACi0qdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNworKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCiAKLQorCQkJCQkJCQkJKnZpbTcqCiBXZWxjb21lIHRvIFZpbSA3ISAgQSBsYXJnZSBudW1iZXIgb2YgZmVhdHVyZXMgaGFzIGJlZW4gYWRkZWQuICBUaGlzIGZpbGUKIG1lbnRpb25zIGFsbCB0aGUgbmV3IGl0ZW1zLCBjaGFuZ2VzIHRvIGV4aXN0aW5nIGZlYXR1cmVzIGFuZCBidWcgZml4ZXMKIHNpbmNlIFZpbSA2LnguICBVc2UgdGhpcyBjb21tYW5kIHRvIHNlZSB0aGUgdmVyc2lvbiB5b3UgYXJlIHVzaW5nOiA+CkBAIC00Niw2ICs0NiwxMSBAQAogCiBCVUcgRklYRVMJCQkJfGJ1Zy1maXhlcy03fAogCitWRVJTSU9OIDcuMQkJCXx2ZXJzaW9uLTcuMXwKK0NoYW5nZWQJCQkJCXxjaGFuZ2VkLTcuMXwKK0FkZGVkCQkJCQl8YWRkZWQtNy4xfAorRml4ZWQJCQkJCXxmaXhlZC03LjF8CisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogSU5DT01QQVRJQkxFIENIQU5HRVMJCQkJKmluY29tcGF0aWJsZS03KgogCkBAIC00NjQsNyArNDY5LDcgQEAKIGNvbmZsaWN0IHdpdGggdHJhZGl0aW9uYWwgVmkgb3IgZXhwZWN0ZWQgYmVoYXZpb3IuICBUaGUgJFZJTV9QT1NJWCBlbnZpcm9ubWVudAogdmFyaWFibGUgY2FuIGJlIHNldCB0byBnZXQgUE9TSVggY29tcGF0aWJpbGl0eS4gIFNlZSB8cG9zaXh8LgogCi1JdGVtcyB0aGF0IHdlcmUgZml4ZWQgZm9yIGJvdGggVmkgYW5kIFBPU0lYIGNvbXBhdGliaWx0eToKK0l0ZW1zIHRoYXQgd2VyZSBmaXhlZCBmb3IgYm90aCBWaSBhbmQgUE9TSVggY29tcGF0aWJpbGl0eToKIC0gcmVwZWF0aW5nICJSIiB3aXRoIGEgY291bnQgb25seSBvdmVyd3JpdGVzIHRleHQgb25jZTsgYWRkZWQgdGhlICdYJyBmbGFnIHRvCiAgICdjcG9wdGlvbnMnIHxjcG8tWHwKIC0gYSB2ZXJ0aWNhbCBtb3ZlbWVudCBjb21tYW5kIHRoYXQgbW92ZXMgdG8gYSBub24tZXhpc3RpbmcgbGluZSBmYWlsczsgYWRkZWQKQEAgLTg1Niw4ICs4NjEsOCBAQAogfGdldHJlZygpfAkJZ2V0IGNvbnRlbnRzIG9mIGEgcmVnaXN0ZXIKIHxnZXR0YWJ3aW52YXIoKXwJZ2V0IHZhcmlhYmxlIGZyb20gd2luZG93IGluIHNwZWNpZmllZCB0YWIgcGFnZS4KIHxoYXNfa2V5KCl8CQljaGVjayB3aGV0aGVyIGEga2V5IGFwcGVhcnMgaW4gYSBEaWN0aW9uYXJ5Cit8aGFzbG9jYWxkaXIoKXwJCWNoZWNrIGlmIGN1cnJlbnQgd2luZG93IHVzZWQgfDpsY2R8CiB8aGFzbWFwdG8oKXwJCWNoZWNrIGZvciBhIG1hcHBpbmcgdG8gYSBzdHJpbmcKLXxpbnB1dGxpc3QoKXwJCXNlbGVjdCBhbiBlbnRyeSBmcm9tIGEgbGlzdAogfGluZGV4KCl8CQlpbmRleCBvZiBpdGVtIGluIExpc3QKIHxpbnB1dGxpc3QoKXwJCXByb21wdCB0aGUgdXNlciB0byBtYWtlIGEgc2VsZWN0aW9uIGZyb20gYSBsaXN0CiB8aW5zZXJ0KCl8CQlpbnNlcnQgYW4gaXRlbSBzb21ld2hlcmUgaW4gYSBMaXN0CkBAIC05MzcsNyArOTQyLDcgQEAKIHx2OmJldmFsX3RleHR8CQl0ZXh0IHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyIGZvciAnYmFsbG9vbmV4cHInCiB8djpzY3JvbGxzdGFydHwJCXdoYXQgY2F1c2VkIHRoZSBzY3JlZW4gdG8gYmUgc2Nyb2xsZWQgdXAKIHx2OnN3YXBuYW1lfAkJbmFtZSBvZiB0aGUgc3dhcCBmaWxlIGZvciB0aGUgfFN3YXBFeGlzdHN8IGV2ZW50Ci18djpzd2FwY2hvaWNlfAkJd2hhdCBkbyBkbyBmb3IgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlCit8djpzd2FwY2hvaWNlfAkJd2hhdCB0byBkbyBmb3IgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlCiB8djpzd2FwY29tbWFuZHwJCWNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgaGFuZGxpbmcgfFN3YXBFeGlzdHN8CiB8djpjaGFyfAkJYXJndW1lbnQgZm9yIGV2YWx1YXRpbmcgJ2Zvcm1hdGV4cHInCiAKQEAgLTExMDUsNyArMTExMCw2IEBACiBwcm90b2NvbHMgc3ludGF4IGFuZCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogcXVha2UgZnRwbHVnaW4gZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKIHJhY2Mgc3ludGF4IGFuZCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQotcmQgc3ludGF4IGZpbGUuIChKb2hhbm5lcyBSYW5rZSkKIHJlYWRsaW5lIGZ0cGx1Z2luIGZpbGUuIChOaWtvbGFpIFdlaWJ1bGwpCiByaGVscCBzeW50YXggZmlsZS4gKEpvaGFubmVzIFJhbmtlKQogcm5vd2ViIHN5bnRheCBmaWxlLiAoSm9oYW5uZXMgUmFua2UpCkBAIC0xMTUyLDcgKzExNTYsNyBAQAogR3JlZWsgaW4gY3A3MzcgKFBhbmFnaW90aXMgTG91cmlkYXMpCiBQb2xpc2gtc2xhc2ggKEhTNl8wNikKIFVrcmFpbmlhbi1qY3VrZW4gKEFuYXRvbGkgU2FraG5paykKLUthbmEgKEVkd2FyZCBMLiBGbykKK0thbmEgKEVkd2FyZCBMLiBGb3gpCiAKIAogTmV3IG1lc3NhZ2UgdHJhbnNsYXRpb25zOiB+CkBAIC0xOTgzLDcgKzE5ODcsNyBAQAogIjp3IGZuYW1lIiBkaWRuJ3Qgd29yayBmb3IgZmlsZXMgd2l0aCAnYnVmdHlwZScgc2V0IHRvICJub2ZpbGUiLgogCiBUaGUgbWV0aG9kIHVzZWQgdG8gbG9jYXRlIHVzZXIgY29tbWFuZHMgZm9yIGNvbXBsZXRpb24gZGlmZmVyZWQgZnJvbSB3aGVuIHRoZXkKLWFyZSBleGVjdXRlZC4gIEFiaWd1b3VzIGNvbW1hbmQgbmFtZXMgd2VyZSBub3QgY29tcGxldGVkIHByb3Blcmx5LgorYXJlIGV4ZWN1dGVkLiAgQW1iaWd1b3VzIGNvbW1hbmQgbmFtZXMgd2VyZSBub3QgY29tcGxldGVkIHByb3Blcmx5LgogCiBJbmNyZW1lbnRhbCBzZWFyY2ggbWF5IGNhdXNlIGEgY3Jhc2ggd2hlbiB0aGVyZSBpcyBhIGN1c3RvbSBzdGF0dXNsaW5lIHRoYXQKIGluZGlyZWN0bHkgaW52b2tlcyAiOm5vcm1hbCIuCkBAIC0yMDIzLDcgKzIwMjcsNyBAQAogdG8gdGhlIGZpcnN0IGxpbmUuICBUaGF0IGJyZWFrcyBhIEJ1ZlJlYWRQb3N0IGF1dG9jb21tYW5kIHRoYXQgdXNlcyBnYCIuCiBEb24ndCBtb3ZlIHRoZSBjdXJzb3IgaWYgaXQncyBzb21ld2hlcmUgcGFzdCB0aGUgZmlyc3QgbGluZS4KIAotImdnPUciIHdoaWxlICdtb2RpZmlhYmxlJyBpcyBvZmYgd2FzIHVuaW50ZXJydXB0YWJsZS4KKyJnZz1HIiB3aGlsZSAnbW9kaWZpYWJsZScgaXMgb2ZmIHdhcyB1bmludGVycnVwdGlibGUuCiAKIFdoZW4gJ2VuY29kaW5nJyBpcyAic2ppcyIgaW5zZXJ0aW5nIENUUkwtViB1IGQ4MDAgYSBmZXcgdGltZXMgY2F1c2VzIGEgY3Jhc2guCiBEb24ndCBpbnNlcnQgYSBEQkNTIGNoYXJhY3RlciB3aXRoIGEgTlVMIHNlY29uZCBieXRlLgpAQCAtMjE3NSw3ICsyMTc5LDcgQEAKIFdoZW4gYXBwZW5kaW5nIHRvIGEgZmlsZSB3aXRoICI6dyA+PmZuYW1lIiBpbiBhIGJ1ZmZlciB3aXRob3V0IGEgbmFtZSwgY2F1c2luZwogdGhlIGJ1ZmZlciB0byB1c2UgImZuYW1lIiwgdGhlIG1vZGlmaWVkIGZsYWcgd2FzIHJlc2V0LgogCi1XaGVuIGFwcGVuZGluZyB0byB0byBjdXJyZW50IGZpbGUgdGhlICJub3QgZWRpdGVkIiBmbGFnIHdvdWxkIGJlIHJlc2V0LgorV2hlbiBhcHBlbmRpbmcgdG8gdGhlIGN1cnJlbnQgZmlsZSB0aGUgIm5vdCBlZGl0ZWQiIGZsYWcgd291bGQgYmUgcmVzZXQuCiAiOnciIHdvdWxkIG92ZXJ3cml0ZSB0aGUgZmlsZSBhY2NpZGVudGFsbHkuCiAKIFVuaXg6IFdoZW4gZmlsdGVyaW5nIHRleHQgd2l0aCBhbiBleHRlcm5hbCBjb21tYW5kIFZpbSB3b3VsZCBzdGlsbCByZWFkIGlucHV0LApAQCAtMjM5Miw3ICsyMzk2LDcgQEAKIFRvIG1ha2UgdGhlIDE2IGJpdCBET1MgdmVyc2lvbiBjb21waWxlIGV4Y2x1ZGUgbm90IHVzZWQgaGlnaGxpZ2h0CiBpbml0aWFsaXphdGlvbnMgYW5kIGJ1aWxkIGEgdGlueSBpbnN0ZWFkIG9mIHNtYWxsIHZlcnNpb24uCiAKLWZpbmRkaXIoKSBhbmQgZmluZGZpbGUoKSBhY2NlcHQgYSBuZWdhdGl2ZSBjb3VuZCBhbmQgcmV0dXJuIGEgTGlzdCB0aGVuLgorZmluZGRpcigpIGFuZCBmaW5kZmlsZSgpIGFjY2VwdCBhIG5lZ2F0aXZlIGNvdW50IGFuZCByZXR1cm4gYSBMaXN0IHRoZW4uCiAKIFRoZSBQeXRob24gaW5kZW50IGZpbGUgY29udGFpbmVkIGEgZmV3IGRlYnVnZ2luZyBzdGF0ZW1lbnRzLCByZW1vdmVkLgogCkBAIC0yNzMxLDcgKzI3MzUsNyBAQAogbnVtYmVyIGZvbGxvd2luZyB0aGUgZmlsZSBuYW1lLgogQWRkZWQgJ2d1aXRhYnRvb2x0aXAnLiAgSW1wbGVtZW50ZWQgZm9yIFdpbjMyIChZZWdhcHBhbiBMYWtzaG1hbmFuKS4KIAotQWRkZWQgInRocm93IiB0byAnZGVidWcnIG9wdGlvbjogdGhvdyBhbiBleGNlcHRpb24gZm9yIGVycm9yIG1lc3NhZ2VzIGV2ZW4KK0FkZGVkICJ0aHJvdyIgdG8gJ2RlYnVnJyBvcHRpb246IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgZXJyb3IgbWVzc2FnZXMgZXZlbgogd2hleSB0aGV5IHdvdWxkIG90aGVyd2lzZSBiZSBpZ25vcmVkLgogCiBXaGVuICdrZXltYXAnIGlzIHNldCBhbmQgYSBsaW5lIGNvbnRhaW5zIGFuIGludmFsaWQgZW50cnkgY291bGQgZ2V0IGEgIk5vCkBAIC0yOTY5LDQgKzI5NzMsMTU4NyBAQAogQ1RSTC1OIG9yIGEgcHJpbnRhYmxlIGNoYXJhY3RlciB3aGlsZSBzdGlsbCBzZWFyY2hpbmcgZm9yIG1hdGNoZXMuCiAKIAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitWRVJTSU9OIDcuMQkJCQkJCSp2ZXJzaW9uLTcuMSoKKworVGhpcyBzZWN0aW9uIGlzIGFib3V0IGltcHJvdmVtZW50cyBtYWRlIGJldHdlZW4gdmVyc2lvbiA3LjAgYW5kIDcuMS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgdGhlcmUgYXJlIG5vIGZhbmN5IG5ldyBmZWF0dXJlcy4KKworCitDaGFuZ2VkCQkJCQkJCSpjaGFuZ2VkLTcuMSoKKy0tLS0tLS0KKworQWRkZWQgc2V0dGluZyAnbW91c2UnIGluIHZpbXJjX2V4YW1wbGUudmltLgorCitXaGVuIGJ1aWxkaW5nIHdpdGggTVpzY2hlbWUgYWxzbyBsb29rIGZvciBpbmNsdWRlIGZpbGVzIGluIHRoZSAicGx0Igorc3ViZGlyZWN0b3J5LiAgVGhhdCdzIHdoZXJlIHRoZXkgYXJlIGZvciBGcmVlQlNELgorCisKK0FkZGVkCQkJCQkJCSphZGRlZC03LjEqCistLS0tLQorCitOZXcgc3ludGF4IGZpbGVzOgorCUF1dG9JdCB2MyAoSmFyZWQgQnJlbGFuZCkKKwlCYXphYXIgY29tbWl0IGZpbGUgImJ6ciIuIChEbWl0cnkgVmFzaWxpZXYpCisJQ211c3JjIChOaWtvbGFpIFdlaWJ1bGwpCisJRnJlZUJhc2ljIChNYXJrIE1hbm5pbmcpCisJSGFtc3RlciAoRGF2aWQgRmlzaGJ1cm4pCisJSUJhc2ljIChNYXJrIE1hbm5pbmcpCisJaW5pdG5nIChFbGFuIFJ1dXNhbWFlKQorCS92YXIvbG9nL21lc3NhZ2VzIChZYWtvdiBMZXJuZXIpCisJUHJpdm94eSBhY3Rpb25zIGZpbGUgKERvdWcgS2Vhcm5zKQorCVN0cmVhbWluZyBEZXNjcmlwdG9ycyAic2QiIChQdXJpYSBOYWZpc2kgQXppemkpCisKK05ldyB0dXRvciBmaWxlczoKKwlIdW5nYXJpYW4gKEFycGFkIEhvcnZhdGgpCisJQ3plY2ggKEx1Ym9zIFR1cmVrKQorCVR1cmtpc2ggKFNlcmthbiBra2spCisJdXRmLTggdmVyc2lvbiBvZiBHcmVlayB0dXRvci4KKwl1dGYtOCB2ZXJzaW9uIG9mIFJ1c3NpYW4gdHV0b3IuCisJdXRmLTggdmVyc2lvbiBvZiBTbG93YWsgdHV0b3IuCisKK05ldyBmaWxldHlwZSBwbHVnaW5zOgorCUJzdCAoVGltIFBvcGUpCisJQ29ib2wgKFRpbSBQb3BlKQorCUZ2d20gKEdhdXRhbSBJeWVyKQorCUhhbXN0ZXIgKERhdmlkIEZpc2hidXJuKQorCURqYW5nbyBIVE1MIHRlbXBsYXRlIChEYXZlIEhvZGRlcikKKworTmV3IGluZGVudCBmaWxlczoKKwlCc3QgKFRpbSBQb3BlKQorCUNvYm9sIChUaW0gUG9wZSkKKwlIYW1zdGVyIChEYXZpZCBGaXNoYnVybikKKwlEamFuZ28gSFRNTCB0ZW1wbGF0ZSAoRGF2ZSBIb2RkZXIpCisJSmF2YXNjcmlwdAorCUpTUCAoRGF2aWQgRmlzaGJ1cm4pCisKK05ldyBrZXltYXAgZmlsZXM6CisJQnVsZ2FyaWFuIChCb3lrbyBCYW50Y2hldikKKwlNb25nb2xpYW4gKE5hdHNhZ2RvcmogU2hhZ2RhcikKKwlUaGFhbmEgKElicmFoaW0gRmF5YXopCisJVmlldG5hbWVzZSAoU2FtdWVsIFRoaWJhdWx0KQorCitPdGhlciBuZXcgcnVudGltZSBmaWxlczoKKwlBZGEgc3VwcG9ydCBmaWxlcy4gKE5laWwgQmlyZCwgTWFydGluIEtyaXNjaGlrKQorCVNsb3ZlbmlhbiBtZW51IHRyYW5zbGF0aW9ucyAoTW9qY2EgTWlrbGF2ZWMpCisJTW9ubyBDIyBjb21waWxlciBwbHVnaW4gKEphcmVrIFNvYmllY2tpKQorCisKK0ZpeGVkCQkJCQkJCSpmaXhlZC03LjEqCistLS0tLQorCitDb3VsZCBub3QgYnVpbGQgdGhlIFdpbjMycyB2ZXJzaW9uLiAgQWRkZWQgYSBmZXcgc3RydWN0dXJlIGRlZmluaXRpb25zIGluCitzcmMvZ3VpX3czMi5jCisKKworUGF0Y2ggNy4wLjAwMQorUHJvYmxlbTogICAgIjpzZXQgc3BlbGxzdWdnZXN0Kz0xMCIgZG9lcyBub3Qgd29yay4gKFN1cmVzaCBHb3ZpbmRhY2hhcikKK1NvbHV0aW9uOiAgIEFkZCBQX0NPTU1BIHRvIHRoZSAnc3BlbGxzdWdnZXN0JyBmbGFncy4KK0ZpbGVzOgkgICAgc3JjL29wdGlvbi5jCisKK1BhdGNoIDcuMC4wMDIKK1Byb2JsZW06ICAgIEMgb21uaSBjb21wbGV0aW9uIGhhcyBhIHByb2JsZW0gd2l0aCB0YWdzIGZpbGVzIHdpdGggYSBwYXRoCisJICAgIGNvbnRhaW5pbmcgIiMiIG9yICIlIi4KK1NvbHV0aW9uOiAgIEVzY2FwZSB0aGVzZSBjaGFyYWN0ZXJzLiAoU2ViYXN0aWFuIEJhYmVyb3dza2kpCitGaWxlczoJICAgIHJ1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbQorCitQYXRjaCA3LjAuMDAzCitQcm9ibGVtOiAgICBHVUk6IGNsaWNraW5nIGluIHRoZSBsb3dlciBwYXJ0IG9mIGEgbGFiZWwgaW4gdGhlIHRhYiBwYWdlcyBsaW5lCisJICAgIHdoaWxlICdtb3VzZWZvY3VzJyBpcyBzZXQgbWF5IHdhcnAgdGhlIG1vdXNlIHBvaW50ZXIuIChSb2JlcnQKKwkgICAgV2ViYikKK1NvbHV0aW9uOiAgIENoZWNrIGZvciBhIG5lZ2F0aXZlIG1vdXNlIHBvc2l0aW9uLgorRmlsZXM6CSAgICBzcmMvZ3VpLmMKKworUGF0Y2ggNy4wLjAwNAorUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgZGVidWdfc2F2ZWQgdXNlZCBiZWZvcmUgc2V0LiAoVG9kZCBCbHVtZXIpCitTb2x1dGlvbjogICBSZW1vdmUgdGhlICJlbHNlIiBmb3IgY2FsbGluZyBzYXZlX2RiZ19zdHVmZigpLgorRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYworCitQYXRjaCA3LjAuMDA1IChleHRyYSkKK1Byb2JsZW06ICAgIFdpbjMyOiBUaGUgaW5zdGFsbGVyIGRvZXNuJ3QgcmVtb3ZlIHRoZSAiYXV0b2xvYWQiIGFuZCAic3BlbGwiCisJICAgIGRpcmVjdG9yaWVzLiAoRGF2aWQgRmlzaGJ1cm4pCitTb2x1dGlvbjogICBBZGQgdGhlIGRpcmVjdG9yaWVzIHRvIHRoZSBsaXN0IHRvIGJlIHJlbW92ZWQuCitGaWxlczoJICAgIG5zaXMvZ3ZpbS5uc2kKKworUGF0Y2ggNy4wLjAwNgorUHJvYmxlbTogICAgTWFjOiAibWFrZSBzaGFkb3ciIGRvZXNuJ3QgbWFrZSBhIGxpbmsgZm9yIGluZnBsaXN0LnhtbC4gKEF4ZWwKKwkgICAgS2llbGhvcm4pCitTb2x1dGlvbjogICBNYWtlIHRoZSBsaW5rLgorRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKKworUGF0Y2ggNy4wLjAwNworUHJvYmxlbTogICAgQUlYOiBjb21waWxpbmcgZmFpbHMgZm9yIG1lc3NhZ2UuYy4gKFJ1ZWRpZ2VyIEhvcm5pZykKK1NvbHV0aW9uOiAgIE1vdmUgdGhlICNpZiBvdXRzaWRlIG9mIG1lbWNocigpLgorRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCisKK1BhdGNoIDcuMC4wMDgKK1Byb2JsZW06ICAgIENhbid0IGNhbGwgYSBmdW5jdGlvbiB0aGF0IHVzZXMgYm90aCA8U0lEPiBhbmQge2V4cHJ9LiAoVGhvbWFzKQorU29sdXRpb246ICAgQ2hlY2sgYm90aCB0aGUgZXhwYW5kZWQgYW5kIHVuZXhwYW5kZWQgbmFtZSBmb3IgPFNJRD4uCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjAwOQorUHJvYmxlbTogICAgbWxfZ2V0IGVycm9ycyB3aXRoIGJvdGggJ3NpZGVzY3JvbGwnIGFuZCAnc3BlbGwnIHNldC4KK1NvbHV0aW9uOiAgIFVzZSBtbF9nZXRfYnVmKCkgaW5zdGVhZCBvZiBtbF9nZXQoKSwgZ2V0IHRoZSBsaW5lIGZyb20gdGhlIHJpZ2h0CisJICAgIGJ1ZmZlciwgbm90IHRoZSBjdXJyZW50IG9uZS4KK0ZpbGVzOgkgICAgc3JjL3NwZWxsLmMKKworUGF0Y2ggNy4wLjAxMAorUHJvYmxlbTogICAgVGhlIHNwZWxsZmlsZSBwbHVnaW4gcmVxdWlyZWQgdHlwaW5nIGxvZ2luIG5hbWUgYW5kIHBhc3N3b3JkLgorU29sdXRpb246ICAgVXNlICJhbm9ueW1vdXMiIGFuZCAidmltN3VzZXIiIGJ5IGRlZmF1bHQuICBObyBuZWVkIHRvIHNldHVwIGEKKwkgICAgLm5ldHJjIGZpbGUuCitGaWxlczoJICAgIHJ1bnRpbWUvYXV0b2xvYWQvc3BlbGxmaWxlLnZpbQorCitQYXRjaCA3LjAuMDExCitQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGhvdXQgdGhlIGZvbGRpbmcgYW5kIHdpdGggdGhlIGV2YWwgZmVhdHVyZS4KK1NvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYuIChWYWxsaW1hcikKK0ZpbGVzOgkgICAgc3JjL29wdGlvbi5jCisKK1BhdGNoIDcuMC4wMTIKK1Byb2JsZW06ICAgIFVzaW5nIHRoZSBtYXRjaHBhcmVuIHBsdWdpbiwgbW92aW5nIHRoZSBjdXJzb3IgaW4gSW5zZXJ0IG1vZGUgdG8gYQorCSAgICBzaG9ydGVyIGxpbmUgdGhhdCBlbmRzIGluIGEgYnJhY2UsIGNoYW5nZXMgdGhlIHByZWZlcnJlZCBjb2x1bW4KK1NvbHV0aW9uOiAgIFVzZSB3aW5zYXZldmlldygpL3dpbnJlc3R2aWV3KCkgaW5zdGVhZCBvZiBnZXRwb3MoKS9zZXRwb3MoKS4KK0ZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vbWF0Y2hwYXJlbi52aW0KKworUGF0Y2ggNy4wLjAxMworUHJvYmxlbTogICAgSW5zZXJ0IG1vZGUgY29tcGxldGlvbjogdXNpbmcgQ1RSTC1MIHRvIGFkZCBhbiBleHRyYSBjaGFyYWN0ZXIKKwkgICAgYWxzbyBkZXNlbGVjdHMgdGhlIGN1cnJlbnQgbWF0Y2gsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIHVzZQorCSAgICBDVFJMLUwgYSBzZWNvbmQgdGltZS4KK1NvbHV0aW9uOiAgIEtlZXAgdGhlIGN1cnJlbnQgbWF0Y2guICBBbHNvIG1ha2UgQ1RSTC1MIHdvcmsgYXQgdGhlIG9yaWdpbmFsCisJICAgIHRleHQsIHVzaW5nIHRoZSBmaXJzdCBkaXNwbGF5ZWQgbWF0Y2guCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjAxNAorUHJvYmxlbTogICAgQ29tcGlsaW5nIGd1aV94bWVidy5jIGZhaWxzIG9uIERlYyBBbHBoYSBUcnU2NC4gKFJvbGZlKQorU29sdXRpb246ICAgRGlzYWJsZSBzb21lIGNvZGUgZm9yIE1vdGlmIDEuMiBhbmQgb2xkZXIuCitGaWxlczoJICAgIHNyYy9ndWlfeG1lYncuYworCitQYXRjaCA3LjAuMDE1CitQcm9ibGVtOiAgICBBdGhlbmE6IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdpdGggbW9kZXJuIGNvbXBpbGVyLgorU29sdXRpb246ICAgQXZvaWQgdHlwZSBjYXN0cyBmb3IgbHZhbHVlLiAoQWxleGV5IEZyb2xvZmYpCitGaWxlczoJICAgIHNyYy9ndWlfYXRfZnMuYworCitQYXRjaCA3LjAuMDE2CitQcm9ibGVtOiAgICBQcmludGluZyBkb2Vzbid0IHdvcmsgZm9yICJkZWMtbWNzIiBlbmNvZGluZy4KK1NvbHV0aW9uOiAgIEFkZCAiZGVjLW1jcyIsICJtYWMtcm9tYW4iIGFuZCAiaHAtcm9tYW44IiB0byB0aGUgbGlzdCBvZgorCSAgICByZWNvZ25pemVkIDgtYml0IGVuY29kaW5ncy4gKE1pa2UgV2lsbGlhbXMpCitGaWxlczoJICAgIHNyYy9tYnl0ZS5jCisKK1BhdGNoIDcuMC4wMTcgKGFmdGVyIDcuMC4wMTQpCitQcm9ibGVtOiAgICBMaW5raW5nIGd1aV94bWVidy5jIGZhaWxzIG9uIERlYyBBbHBoYSBUcnU2NC4gKFJvbGZlKQorU29sdXRpb246ICAgQWRqdXN0IGRlZmluZXMgZm9yIE1vdGlmIDEuMiBhbmQgb2xkZXIuCitGaWxlczoJICAgIHNyYy9ndWlfeG1lYncuYworCitQYXRjaCA3LjAuMDE4CitQcm9ibGVtOiAgICBWTVM6IHBsdWdpbnMgYXJlIG5vdCBsb2FkZWQgb24gc3RhcnR1cC4KK1NvbHV0aW9uOiAgIFJlbW92ZSAiKioiIGZyb20gdGhlIHBhdGguIChab2x0YW4gQXJwYWRmZnkpCitGaWxlczoJICAgIHNyYy9tYWluLmMKKworUGF0Y2ggNy4wLjAxOQorUHJvYmxlbTogICAgUmVwZWF0aW5nICJWakE3ODkiIG1heSBjYXVzZSBhIGNyYXNoLiAoSmFtZXMgVmVnYSkKK1NvbHV0aW9uOiAgIENoZWNrIHRoZSBjdXJzb3IgY29sdW1uIGFmdGVyIG1vdmluZyBpdCB0byBhbm90aGVyIGxpbmUuCitGaWxlczoJICAgIHNyYy9vcHMuYworCitQYXRjaCA3LjAuMDIwCitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHVzaW5nICdtb3VzZWZvY3VzJy4gKFdpbGxpYW0gRnVsdG9uKQorU29sdXRpb246ICAgTWFrZSBidWZmZXIgZm9yIG1vdXNlIGNvb3JkaW5hdGVzIDIgYnl0ZXMgbG9uZ2VyLiAoSnVlcmdlbiBXZWlnZXJ0KQorRmlsZXM6CSAgICBzcmMvZ3VpLmMKKworUGF0Y2ggNy4wLjAyMQorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyAiXFxbIiBhbmQgIlxcXSIgaW4gJ2Vycm9yZm9ybWF0Jy4gKE1hcmMgV2ViZXIpCitTb2x1dGlvbjogICBDaGVjayBmb3IgdmFsaWQgc3VibWF0Y2hlcyBhZnRlciBtYXRjaGluZyB0aGUgcGF0dGVybi4KK0ZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKKworUGF0Y2ggNy4wLjAyMgorUHJvYmxlbTogICAgVXNpbmcgYnVmZmVyLmFwcGVuZCgpIGluIFJ1YnkgbWF5IGFwcGVuZCB0aGUgbGluZSB0byB0aGUgd3JvbmcKKwkgICAgYnVmZmVyLiAoQWxleCBOb3JtYW4pCitTb2x1dGlvbjogICBQcm9wZXJseSBzd2l0Y2ggdG8gdGhlIGJ1ZmZlciB0byBkbyB0aGUgYXBwZW5kaW5nLiAgQWxzbyBmb3IKKwkgICAgYnVmZmVyLmRlbGV0ZSgpIGFuZCBzZXR0aW5nIGEgYnVmZmVyIGxpbmUuCitGaWxlczoJICAgIHNyYy9pZl9ydWJ5LmMKKworUGF0Y2ggNy4wLjAyMworUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBkb2luZyBzcGVsbCBjb21wbGV0aW9uIGluIGFuIGVtcHR5IGxpbmUgYW5kIHByZXNzaW5nCisJICAgIENUUkwtRS4KK1NvbHV0aW9uOiAgIENoZWNrIGZvciBhIHplcm8gcG9pbnRlci4gKEphbWVzIFZlZ2EpCisJICAgIEFsc28gaGFuZGxlIGEgc2l0dWF0aW9uIHdpdGhvdXQgYSBtYXRjaGluZyBwYXR0ZXJuIGJldHRlciwgcmVwb3J0CisJICAgICJObyBtYXRjaGVzIiBpbnN0ZWFkIG9mIHJlbWFpbmluZyBpbiB1bmRlZmluZWQgQ1RSTC1YIG1vZGUuICBBbmQKKwkgICAgZ2V0IG91dCBvZiBDVFJMLVggbW9kZSB3aGVuIHR5cGluZyBhIGxldHRlci4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMDI0CitQcm9ibGVtOiAgICBJdCBpcyBwb3NzaWJsZSB0byBzZXQgYXJiaXRyYXJ5ICJ2OiIgdmFyaWFibGVzLgorU29sdXRpb246ICAgRGlzYWxsb3cgc2V0dGluZyAidjoiIHZhcmlhYmxlcyB0aGF0IGFyZSBub3QgcHJlZGVmaW5lZC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDI1CitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHJlbW92aW5nIGFuIGVsZW1lbnQgb2YgYTowMDAuICAoTmlrb2xhaSBXZWlidWxsKQorU29sdXRpb246ICAgTWFyayB0aGUgYTowMDAgbGlzdCB3aXRoIFZBUl9GSVhFRC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDI2CitQcm9ibGVtOiAgICBVc2luZyBsaWJjYWxsKCkgbWF5IHNob3cgYW4gb2xkIGVycm9yLgorU29sdXRpb246ICAgSW52b2tlIGRsZXJyb3IoKSB0byBjbGVhciBhIHByZXZpb3VzIGVycm9yLiAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCisKK1BhdGNoIDcuMC4wMjcgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IFdoZW4gY29tcGlsZWQgd2l0aCBTTklGRiBndmltIG1heSBoYW5nIG9uIGV4aXQuCitTb2x1dGlvbjogICBUcmFuc2xhdGUgYW5kIGRpc3BhdGNoIHRoZSBXTV9VU0VSIG1lc3NhZ2UuIChNYXRoaWFzIE1pY2hhZWxpcykKK0ZpbGVzOgkgICAgc3JjL2d1aV93NDguYworCitQYXRjaCA3LjAuMDI4IChleHRyYSkKK1Byb2JsZW06ICAgIE9TLzI6IFZpbSBkb2Vzbid0IGNvbXBpbGUgd2l0aCBnY2MgMy4yLjEuCitTb2x1dGlvbjogICBBZGQgYXJndW1lbnQgdG8gYWZ0ZXJfcGF0aHNlcCgpLCBkb24ndCBkZWZpbmUgdmltX2hhbmRsZV9zaWduYWwoKSwKKwkgICAgZGVmaW5lIEhBVkVfU1REQVJHX0guIChEYXZpZCBTYW5kZXJzKQorRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jLCBzcmMvdmltLmgsIHNyYy9vc19vczJfY2ZnLmgKKworUGF0Y2ggNy4wLjAyOQorUHJvYmxlbTogICAgZ2V0Y2hhcigpIG1heSBub3QgcG9zaXRpb24gdGhlIGN1cnNvciBhZnRlciBhIHNwYWNlLgorU29sdXRpb246ICAgUG9zaXRpb24gdGhlIGN1cnNvciBleHBsaWNpdGx5LgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wMzAKK1Byb2JsZW06ICAgIFRoZSAiOmNvbXBpbGVyIiBjb21tYW5kIGNhbid0IGJlIHVzZWQgaW4gYSBGaWxlQ2hhbmdlZFJPIGV2ZW50LgorCSAgICAoSGFyaSBLcmlzaG5hIERhcmEpCitTb2x1dGlvbjogICBBZGQgdGhlIENNRFdJTiBmbGFnIHRvIHRoZSAiOmNvbXBpbGVyIiBjb21tYW5kLgorRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCisKK1BhdGNoIDcuMC4wMzEKK1Byb2JsZW06ICAgIFdoZW4gZGVsZXRpbmcgYSBidWZmZXIgdGhlIGJ1ZmZlci1sb2NhbCBtYXBwaW5ncyBmb3IgU2VsZWN0IG1vZGUKKwkgICAgcmVtYWluLgorU29sdXRpb246ICAgQWRkIHRoZSBTZWxlY3QgbW9kZSBiaXQgdG8gTUFQX0FMTF9NT0RFUy4gKEVkd2luIFN0ZWluZXIpCitGaWxlczoJICAgIHNyYy92aW0uaAorCitQYXRjaCA3LjAuMDMyIChleHRyYSwgYWZ0ZXIgNy4wLjAyNykKK1Byb2JsZW06ICAgIE1pc3Npbmcgc2VtaWNvbG9uLgorU29sdXRpb246ICAgQWRkIHRoZSBzZW1pY29sb24uCitGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKKworUGF0Y2ggNy4wLjAzMworUHJvYmxlbTogICAgV2hlbiBwYXN0aW5nIHRleHQsIHdpdGggdGhlIG1lbnUgb3IgQ1RSTC1WLCBhdXRvaW5kZW50IGlzIHJlbW92ZWQuCitTb2x1dGlvbjogICBVc2UgIng8QlM+IiB0byBhdm9pZCBpbmRlbnQgdG8gYmUgcmVtb3ZlZC4gKEJlbmppIEZpc2hlcikKK0ZpbGVzOgkgICAgcnVudGltZS9hdXRvbG9hZC9wYXN0ZS52aW0KKworUGF0Y2ggNy4wLjAzNAorUHJvYmxlbTogICAgQWZ0ZXIgZG9pbmcgY29tcGxldGlvbiBhbmQgdHlwaW5nIG1vcmUgY2hhcmFjdGVycyBvciB1c2luZyBCUworCSAgICByZXBlYXRpbmcgd2l0aCAiLiIgZGlkbid0IHdvcmsgcHJvcGVybHkuIChNYXJ0aW4gU3R1YmVuc2Nocm90dCkKK1NvbHV0aW9uOiAgIERvbid0IHB1dCBCUyBhbmQgb3RoZXIgY2hhcmFjdGVycyBpbiB0aGUgcmVkbyBidWZmZXIgcmlnaHQgYXdheSwKKwkgICAgZG8gdGhpcyB3aGVuIGZpbmlzaGluZyBjb21wbGV0aW9uLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4wMzUKK1Byb2JsZW06ICAgIEluc2VydCBtb2RlIGNvbXBsZXRpb24gd29ya3Mgd2hlbiB0eXBlZCBidXQgbm90IHdoZW4gcmVwbGF5ZWQgZnJvbQorCSAgICBhIHJlZ2lzdGVyLiAoSGFyaSBLcmlzaG5hIERhcmEpCisJICAgIEFsc286IE1hcHBpbmdzIGZvciBJbnNlcnQgbW9kZSBjb21wbGV0aW9uIGRvbid0IGFsd2F5cyB3b3JrLgorU29sdXRpb246ICAgV2hlbiBmaW5kaW5nIGEgbm9uLWNvbXBsZXRpb24ga2V5IGluIHRoZSBpbnB1dCBkb24ndCBpbnRlcnJ1cHQKKwkgICAgY29tcGxldGlvbiB3aGVuIGl0IHdhc24ndCB0eXBlZC4KKwkgICAgRG8gdXNlIG1hcHBpbmdzIHdoZW4gY2hlY2tpbmcgZm9yIHR5cGVhaGVhZCB3aGlsZSBzdGlsbCBmaW5kaW5nCisJICAgIGNvbXBsZXRpb25zLiAgQXZvaWRzIHRoYXQgY29tcGxldGlvbiBpcyBpbnRlcnJ1cHRlZCB0b28gc29vbi4KKwkgICAgVXNlICJjb21wbF9wZW5kaW5nIiBpbiBhIGRpZmZlcmVudCB3YXkuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjAzNgorUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRoIHNtYWxsIGZlYXR1cmVzIGFuZCBzeW50YXggaGlnaGxpZ2h0aW5nIG9yIHRoZQorCSAgICBkaWZmIGZlYXR1cmUuCitTb2x1dGlvbjogICBEZWZpbmUgTElORV9BVFRSIHdoZW5ldmVyIHN5bnRheCBoaWdobGlnaHRpbmcgb3IgdGhlIGRpZmYgZmVhdHVyZQorCSAgICBpcyBlbmFibGVkLgorRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKKworUGF0Y2ggNy4wLjAzNworUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiByZXNpemluZyB0aGUgR1VJIHdpbmRvdyB2ZXJ0aWNhbGx5IHdoZW4gdGhlcmUgaXMgYSBsaW5lCisJICAgIHRoYXQgZG9lc24ndCBmaXQuCitTb2x1dGlvbjogICBEb24ndCByZWRyYXcgd2hpbGUgdGhlIHNjcmVlbiBkYXRhIGlzIGludmFsaWQuCitGaWxlczoJICAgIHNyYy9zY3JlZW4uYworCitQYXRjaCA3LjAuMDM4CitQcm9ibGVtOiAgICBXaGVuIGNhbGxpbmcgY29tcGxldGUoKSBmcm9tIGFuIEluc2VydCBtb2RlIGV4cHJlc3Npb24gbWFwcGluZworCSAgICB0ZXh0IGNvdWxkIGJlIGluc2VydGVkIGluIGFuIGltcHJvcGVyIHdheS4KK1NvbHV0aW9uOiAgIE1ha2UgdW5kb19hbGxvd2VkKCkgZ2xvYmFsIGFuZCB1c2UgaXQgaW4gY29tcGxldGUoKS4KK0ZpbGVzOgkgICAgc3JjL3VuZG8uYywgc3JjL3Byb3RvL3VuZG8ucHJvLCBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wMzkKK1Byb2JsZW06ICAgIENhbGxpbmcgaW5wdXRkaWFsb2coKSB3aXRoIGEgdGhpcmQgYXJndW1lbnQgaW4gdGhlIGNvbnNvbGUgZG9lc24ndAorCSAgICB3b3JrLgorU29sdXRpb246ICAgTWFrZSBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciBpbnB1dCgpIGFuZCBpbnB1dGRpYWxvZygpLiAoWWVnYXBwYW4KKwkgICAgTGFrc2htYW5hbikKK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDQwCitQcm9ibGVtOiAgICBXaGVuICdjbWRoZWlnaHQnIGlzIGxhcmdlciB0aGFuIDEgdXNpbmcgaW5wdXRsaXN0KCkgb3Igc2VsZWN0aW5nCisJICAgIGEgc3BlbGwgc3VnZ2VzdGlvbiB3aXRoIHRoZSBtb3VzZSBnZXRzIHRoZSB3cm9uZyBlbnRyeS4KK1NvbHV0aW9uOiAgIFN0YXJ0IGxpc3RpbmcgdGhlIGZpcnN0IGFsdGVybmF0aXZlIG9uIHRoZSBsYXN0IGxpbmUgb2YgdGhlIHNjcmVlbi4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL3NwZWxsLmMKKworUGF0Y2ggNy4wLjA0MQorUHJvYmxlbTogICAgY3Vyc29yKFsxLCAxXSkgZG9lc24ndCB3b3JrLiAoUGV0ZXIgSG9kZ2UpCitTb2x1dGlvbjogICBBbGxvdyBsZWF2aW5nIG91dCB0aGUgdGhpcmQgaXRlbSBvZiB0aGUgbGlzdCBhbmQgdXNlIHplcm8gZm9yIHRoZQorCSAgICB2aXJ0dWFsIGNvbHVtbiBvZmZzZXQuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjA0MgorUHJvYmxlbTogICAgV2hlbiBwYXN0aW5nIGEgYmxvY2sgb2YgdGV4dCBpbiBJbnNlcnQgbW9kZSBWaW0gaGFuZ3Mgb3IgY3Jhc2hlcy4KKwkgICAgKE5vYW0gSGFsZXZ5KQorU29sdXRpb246ICAgQXZvaWQgdGhhdCB0aGUgY3Vyc29yIGlzIHBvc2l0aW9uZWQgcGFzdCB0aGUgTlVMIG9mIGEgbGluZS4KK0ZpbGVzOgkgICAgc3JjL29wcy5jCisKK1BhdGNoIDcuMC4wNDMKK1Byb2JsZW06ICAgIFVzaW5nICIlISIgYXQgdGhlIHN0YXJ0IG9mICdzdGF0dXNsaW5lJyBkb2Vzbid0IHdvcmsuCitTb2x1dGlvbjogICBSZWNvZ25pemUgdGhlIHNwZWNpYWwgaXRlbSB3aGVuIHRoZSBvcHRpb24gaXMgYmVpbmcgc2V0LgorRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKKworUGF0Y2ggNy4wLjA0NAorUHJvYmxlbTogICAgUGVybDogc2V0dGluZyBhIGJ1ZmZlciBsaW5lIGluIGFub3RoZXIgYnVmZmVyIG1heSByZXN1bHQgaW4KKwkgICAgY2hhbmdpbmcgdGhlIGN1cnJlbnQgYnVmZmVyLgorU29sdXRpb246ICAgUHJvcGVybHkgY2hhbmdlIHRvIHRoZSBidWZmZXIgdG8gYmUgY2hhbmdlZC4KK0ZpbGVzOgkgICAgc3JjL2lmX3BlcmwueHMKKworUGF0Y2ggNy4wLjA0NSAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogV2FybmluZ3Mgd2hlbiBjb21waWxpbmcgT0xFIHZlcnNpb24gd2l0aCBNU1ZDIDIwMDUuCitTb2x1dGlvbjogICBNb3ZlIGluY2x1ZGluZyB2aW0uaCB0byBiZWZvcmUgd2luZG93cy5oLiAoSWx5YSBCb2JpcikKK0ZpbGVzOgkgICAgc3JjL2lmX29sZS5jcHAKKworUGF0Y2ggNy4wLjA0NgorUHJvYmxlbTogICAgVGhlIG1hdGNocGFyZW4gcGx1Z2luIGlnbm9yZXMgcGFyZW5zIGluIHN0cmluZ3MsIGJ1dCBub3QgaW4gc2luZ2xlCisJICAgIHF1b3Rlcywgb2Z0ZW4gbWFya2VkIHdpdGggImNoYXJhY3RlciIuCitTb2x1dGlvbjogICBBbHNvIGlnbm9yZSBwYXJlbnMgaW4gc3ludGF4IGl0ZW1zIG1hdGNoaW5nICJjaGFyYWN0ZXIiLgorRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9tYXRjaHBhcmVuLnZpbQorCitQYXRjaCA3LjAuMDQ3CitQcm9ibGVtOiAgICBXaGVuIHJ1bm5pbmcgY29uZmlndXJlIHRoZSBleGl0IHN0YXR1cyBpcyB3cm9uZy4KK1NvbHV0aW9uOiAgIEhhbmRsZSB0aGUgZXhpdCBzdGF0dXMgcHJvcGVybHkuIChNYXR0aGV3IFdvZWhsa2UpCitGaWxlczoJICAgIGNvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZQorCitQYXRjaCA3LjAuMDQ4CitQcm9ibGVtOiAgICBXcml0aW5nIGEgY29tcHJlc3NlZCBmaWxlIGZhaWxzIHdoZW4gdGhlcmUgYXJlIHBhcmVucyBpbiB0aGUgbmFtZS4KKwkgICAgKFdhbmcgSmlhbikKK1NvbHV0aW9uOiAgIFB1dCBxdW90ZXMgYXJvdW5kIHRoZSB0ZW1wIGZpbGUgbmFtZS4KK0ZpbGVzOgkgICAgcnVudGltZS9hdXRvbG9hZC9nemlwLnZpbQorCitQYXRjaCA3LjAuMDQ5CitQcm9ibGVtOiAgICBTb21lIFRDTCBzY3JpcHRzIGFyZSBub3QgcmVjb2duaXplZC4gKFN0ZXZlbiBBdGtpbnNvbikKK1NvbHV0aW9uOiAgIENoZWNrIGZvciAiZXhlYyB3aXNoIiBpbiB0aGUgZmlsZS4KK0ZpbGVzOgkgICAgcnVudGltZS9zY3JpcHRzLnZpbQorCitQYXRjaCA3LjAuMDUwCitQcm9ibGVtOiAgICBBZnRlciB1c2luZyB0aGUgbmV0YmVhbnMgaW50ZXJmYWNlIGNsb3NlIGNvbW1hbmQgYSBzdGFsZSBwb2ludGVyCisJICAgIG1heSBiZSB1c2VkLgorU29sdXRpb246ICAgQ2xlYXIgdGhlIHBvaW50ZXIgdG8gdGhlIGNsb3NlZCBidWZmZXIuIChYYXZpZXcgZGUgR2F5ZSkKK0ZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKKworUGF0Y2ggNy4wLjA1MSAoYWZ0ZXIgNy4wLjQ0KQorUHJvYmxlbTogICAgVGhlIFBlcmwgaW50ZXJmYWNlIGRvZXNuJ3QgY29tcGlsZSBvciBkb2Vzbid0IHdvcmsgcHJvcGVybHkuCitTb2x1dGlvbjogICBSZW1vdmUgdGhlIHNwYWNlcyBiZWZvcmUgI2lmZGVmIGFuZCBhdm9pZCBhbiBlbXB0eSBsaW5lIGFib3ZlIGl0LgorRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cworCitQYXRjaCA3LjAuMDUyCitQcm9ibGVtOiAgICBUaGUgdXNlciBtYXkgbm90IGJlIGF3YXJlIHRoYXQgdGhlIFZpbSBzZXJ2ZXIgYWxsb3dzIG90aGVycyBtb3JlCisJICAgIGZ1bmN0aW9uYWxpdHkgdGhhbiBkZXNpcmVkLgorU29sdXRpb246ICAgV2hlbiBydW5uaW5nIFZpbSBhcyByb290IGRvbid0IGJlY29tZSBhIFZpbSBzZXJ2ZXIgd2l0aG91dCBhbgorCSAgICBleHBsaWNpdCAtLXNlcnZlcm5hbWUgYXJndW1lbnQuCitGaWxlczoJICAgIHNyYy9tYWluLmMKKworUGF0Y2ggNy4wLjA1MworUHJvYmxlbTogICAgU2hvcnRlbmluZyBhIGRpcmVjdG9yeSBuYW1lIG1heSBmYWlsIHdoZW4gdGhlcmUgYXJlIG11bHRpLWJ5dGUKKwkgICAgY2hhcmFjdGVycy4KK1NvbHV0aW9uOiAgIENvcHkgdGhlIGNvcnJlY3QgYnl0ZXMuIChUaXRvdiBBbmF0b2x5KQorRmlsZXM6CSAgICBzcmMvbWlzYzEuYworCitQYXRjaCA3LjAuMDU0CitQcm9ibGVtOiAgICBNYWM6IFVzaW5nIGEgbWVudSBuYW1lIHRoYXQgb25seSBoYXMgYSBtbmVtb25pYyBvciBhY2NlbGVyYXRvcgorCSAgICBjYXVzZXMgYSBjcmFzaC4gIChFbGxpb3QgU2hhbmspCitTb2x1dGlvbjogICBDaGVjayBmb3IgYW4gZW1wdHkgbWVudSBuYW1lLiAgQWxzbyBkZWxldGUgZW1wdHkgc3VibWVudXMgdGhhdAorCSAgICB3ZXJlIGNyZWF0ZWQgYmVmb3JlIGRldGVjdGluZyB0aGUgZXJyb3IuCitGaWxlczoJICAgIHNyYy9tZW51LmMKKworUGF0Y2ggNy4wLjA1NQorUHJvYmxlbTogICAgIjpzdGFydGluc2VydCIgaW4gYSBDbWR3aW5FbnRlciBhdXRvY29tbWFuZCBkb2Vzbid0IHRha2UgaW1tZWRpYXRlCisJICAgIGVmZmVjdC4gKEJyYWRsZXkgV2hpdGUpCitTb2x1dGlvbjogICBQdXQgYSBOT1Aga2V5IGluIHRoZSB0eXBlYWhlYWQgYnVmZmVyLiAgQWxzbyBhdm9pZCB0aGF0IHVzaW5nCisJICAgIENUUkwtQyB0byBnbyBiYWNrIHRvIHRoZSBjb21tYW5kIGxpbmUgbW92ZXMgdGhlIGN1cnNvciBsZWZ0LgorRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZ2V0bG4uYworCitQYXRjaCA3LjAuMDU2CitQcm9ibGVtOiAgICAiIyFzb21ldGhpbmciIGdpdmVzIGFuIGVycm9yIG1lc3NhZ2UuCitTb2x1dGlvbjogICBJZ25vcmUgdGhpcyBsaW5lLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIGFuIGV4ZWN1dGFibGUgVmltCisJICAgIHNjcmlwdC4KK0ZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKKworUGF0Y2ggNy4wLjA1NyAoZXh0cmEsIGFmdGVyIDcuMC40NSkKK1Byb2JsZW06ICAgIFdpbjMyOiBDb21waWxhdGlvbiBwcm9ibGVtIHdpdGggQm9ybGFuZCBDIDUuNS4KK1NvbHV0aW9uOiAgIEluY2x1ZGUgdmltLmggYXMgYmVmb3JlLiAoTWFyayBTLiBXaWxsaWFtcykKK0ZpbGVzOgkgICAgc3JjL2lmX29sZS5jcHAKKworUGF0Y2ggNy4wLjA1OAorUHJvYmxlbTogICAgVGhlIGdiayBhbmQgYW5kIGdiMTgwMzAgZW5jb2RpbmdzIGFyZSBub3QgcmVjb2duaXplZC4KK1NvbHV0aW9uOiAgIEFkZCBhbGlhc2VzIHRvIGNwOTM2LiAoRWR3YXJkIEwuIEZveCkKK0ZpbGVzOgkgICAgc3JjL21ieXRlLmMKKworUGF0Y2ggNy4wLjA1OQorUHJvYmxlbTogICAgVGhlIFBlcmwgaW50ZXJmYWNlIGRvZXNuJ3QgY29tcGlsZSB3aXRoIEFjdGl2ZVN0YXRlIFBlcmwgNS44LjguCitTb2x1dGlvbjogICBSZW1vdmUgdGhlIF9fYXR0cmlidXRlX18oKSBpdGVtcy4gKExpdSBZdWJhbykKK0ZpbGVzOgkgICAgc3JjL2lmX3BlcmwueHMKKworUGF0Y2ggNy4wLjA2MCAoYWZ0ZXIgNy4wLjUxKQorUHJvYmxlbTogICAgQ29kZSBmb3IgdGVtcG9yYXJpbHkgc3dpdGNoaW5nIHRvIGFub3RoZXIgYnVmZmVyIGlzIGR1cGxpY2F0ZWQgaW4KKwkgICAgcXVpdGUgYSBmZXcgcGxhY2VzLgorU29sdXRpb246ICAgVXNlIGF1Y21kX3ByZXBidWYoKSBhbmQgYXVjbWRfcmVzdGJ1ZigpIGFsc28gd2hlbiBGRUFUX0FVVE9DTUQgaXMKKwkgICAgbm90IGRlZmluZWQuCitGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V2YWwuYywgc3JjL2ZpbGVpby5jLCBzcmMvaWZfcnVieS5jLAorCSAgICBzcmMvaWZfcGVybC54cywgc3JjL3F1aWNrZml4LmMsIHNyYy9zdHJ1Y3RzLmgKKworUGF0Y2ggNy4wLjA2MQorUHJvYmxlbTogICAgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiBmb3IgVmltIGNvbW1hbmRzIG1heSBjcmFzaCBpZiB0aGVyZSBpcworCSAgICBub3RoaW5nIHRvIGNvbXBsZXRlLgorU29sdXRpb246ICAgSW5zdGVhZCBvZiBmcmVlaW5nIHRoZSBwYXR0ZXJuIG1ha2UgaXQgZW1wdHksIHNvIHRoYXQgYSAibm90CisJICAgIGZvdW5kIiBlcnJvciBpcyBnaXZlbi4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMDYyCitQcm9ibGVtOiAgICBNYWM6IENyYXNoIHdoZW4gdXNpbmcgdGhlIHBvcHVwIG1lbnUgZm9yIHNwZWxsIGNvcnJlY3Rpb24uICBUaGUKKwkgICAgcG9wdXAgbWVudSBhcHBlYXJzIHR3aWNlIHdoZW4gbGV0dGluZyBnbyBvZiB0aGUgcmlnaHQgbW91c2UgYnV0dG9uCisJICAgIGVhcmx5LgorU29sdXRpb246ICAgRG9uJ3Qgc2hvdyB0aGUgcG9wdXAgbWVudSBvbiB0aGUgcmVsZWFzZSBvZiB0aGUgcmlnaHQgbW91c2UKKwkgICAgYnV0dG9uLiAgQWxzbyBjaGVjayB0aGF0IGEgbWVudSBwb2ludGVyIGlzIGFjdHVhbGx5IHZhbGlkLgorRmlsZXM6CSAgICBzcmMvcHJvdG8vbWVudS5wcm8sIHNyYy9tZW51LmMsIHNyYy9ub3JtYWwuYywgc3JjL3Rlcm0uYworCitQYXRjaCA3LjAuMDYzCitQcm9ibGVtOiAgICBUaW55IGNoYW5jZSBmb3IgYSBtZW1vcnkgbGVhay4gKGNvdmVyaXR5KQorU29sdXRpb246ICAgRnJlZSBwb2ludGVyIHdoZW4gbmV4dCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlscy4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDY0CitQcm9ibGVtOiAgICBVc2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLiAoVG9ueSBNZWNoZWx5bmNrKQorU29sdXRpb246ICAgV2hlbiBub3QgdXNlZCBzZXQgInRlbXAiIHRvIHplcm8uICBBbHNvIGF2b2lkIGEgd2FybmluZyBmb3IKKwkgICAgImZpbGVzIiBpbiBpbnNfY29tcGxfZGljdGlvbmFyaWVzKCkuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjA2NSAoZXh0cmEpCitQcm9ibGVtOiAgICBNYWM6IGxlZnQtcmlnaHQgbW92ZW1lbnQgb2YgdGhlIHNjcm9sbHdoZWVsIGNhdXNlcyB1cC1kb3duCisJICAgIHNjcm9sbGluZy4KK1NvbHV0aW9uOiAgIElnbm9yZSBtb3VzZSB3aGVlbCBldmVudHMgdGhhdCBhcmUgbm90IHVwLWRvd24uIChOaWNvbGFzIFdlYmVyKQorRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCisKK1BhdGNoIDcuMC4wNjYKK1Byb2JsZW06ICAgIEFmdGVyIHRoZSBwb3B1cCBtZW51IGZvciBJbnNlcnQgbW9kZSBjb21wbGV0aW9uIG92ZXJsYXBzIHRoZSB0YWIKKwkgICAgcGFnZXMgbGluZSBpdCBpcyBub3QgY29tcGxldGVseSByZW1vdmVkLgorU29sdXRpb246ICAgUmVkcmF3IHRoZSB0YWIgcGFnZXMgbGluZSBhZnRlciByZW1vdmluZyB0aGUgcG9wdXAgbWVudS4gKE9yaQorCSAgICBBdnRhbGlvbikKK0ZpbGVzOgkgICAgc3JjL3BvcHVwbW51LmMKKworUGF0Y2ggNy4wLjA2NworUHJvYmxlbTogICAgVW5kbyBkb2Vzbid0IGFsd2F5cyB3b3JrIHByb3Blcmx5IHdoZW4gdXNpbmcgInNjaW0iIGlucHV0IG1ldGhvZC4KKwkgICAgVW5kbyBpcyBzcGxpdCB1cCB3aGVuIHVzaW5nIHByZWVkaXRpbmcuCitTb2x1dGlvbjogICBSZXNldCB4aW1faGFzX3ByZWVkaXRpbmcgYWxzbyB3aGVuIHByZWVkaXRfc3RhcnRfY29sIGlzIG5vdAorCSAgICBNQVhDT0wuICBEb24ndCBzcGxpdCB1bmRvIHdoZW4gPExlZnQ+IGlzIHVzZWQgd2hpbGUgcHJlZWRpdGluZy4KKwkgICAgKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL21ieXRlLmMKKworUGF0Y2ggNy4wLjA2OAorUHJvYmxlbTogICAgV2hlbiAnaWdub3JlY2FzZScgaXMgc2V0IGFuZCB1c2luZyBJbnNlcnQgbW9kZSBjb21wbGV0aW9uLAorCSAgICB0eXBpbmcgY2hhcmFjdGVycyB0byBjaGFuZ2UgdGhlIGxpc3Qgb2YgbWF0Y2hlcywgY2FzZSBpcyBub3QKKwkgICAgaWdub3JlZC4gKEh1Z28gQWhsZW5pdXMpCitTb2x1dGlvbjogICBTdG9yZSB0aGUgJ2lnbm9yZWNhc2UnIGZsYWcgd2l0aCB0aGUgbWF0Y2hlcyB3aGVyZSBuZWVkZWQuCitGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9zZWFyY2guYywgc3JjL3NwZWxsLmMKKworUGF0Y2ggNy4wLjA2OQorUHJvYmxlbTogICAgU2V0dGluZyAnZ3VpdGFibGFiZWwnIHRvICUhZXhwYW5kKFwlKSAgY2F1c2VzIFZpbSB0byBmcmVlIGFuCisJICAgIGludmFsaWQgcG9pbnRlci4gKEtpbSBTY2h1bHopCitTb2x1dGlvbjogICBEb24ndCB0cnkgZnJlZWluZyBhIGNvbnN0YW50IHN0cmluZyBwb2ludGVyLgorRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKKworUGF0Y2ggNy4wLjA3MAorUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHNoYWRvd2VkIHZhcmlhYmxlcyBhbmQgdW5pbml0aWFsaXplZAorCSAgICB2YXJpYWJsZXMuCitTb2x1dGlvbjogICBSZW5hbWUgdmFyaWFibGVzIHN1Y2ggYXMgImluZGV4IiwgIm1zZyIgYW5kICJkdXAiLiAgSW5pdGlhbGl6ZQorCSAgICB2YXJpYWJsZXMuCitGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLAorCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2d1aV9iZXZhbC5jLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX2d0a194MTEuYywKKwkgICAgc3JjL2hhcmRjb3B5LmMsIHNyYy9pZl9jc2NvcGUuYywgc3JjL21haW4uYywgc3JjL21ieXRlLmMsCisJICAgIHNyYy9tZW1saW5lLmMsIHNyYy9uZXRiZWFucy5jLCBzcmMvbm9ybWFsLmMsIHNyYy9vcHRpb24uYywKKwkgICAgc3JjL29zX3VuaXguYywgc3JjL3F1aWNrZml4LmMsIHNyYy9yZWdleHAuYywgc3JjL3NjcmVlbi5jLAorCSAgICBzcmMvc2VhcmNoLmMsIHNyYy9zcGVsbC5jLCBzcmMvdWkuYywgc3JjL3VuZG8uYywgc3JjL3dpbmRvdy5jLAorCSAgICBzcmMvdmVyc2lvbi5jCisKK1BhdGNoIDcuMC4wNzEKK1Byb2JsZW06ICAgIFVzaW5nIGFuIGVtcHR5IHNlYXJjaCBwYXR0ZXJuIG1heSBjYXVzZSBhIGNyYXNoLgorU29sdXRpb246ICAgQXZvaWQgdXNpbmcgYSBOVUxMIHBvaW50ZXIuCitGaWxlczoJICAgIHNyYy9zZWFyY2guYworCitQYXRjaCA3LjAuMDcyCitQcm9ibGVtOiAgICBXaGVuIHN0YXJ0aW5nIHRoZSBHVUkgZmFpbHMgdGhlcmUgaXMgbm8gd2F5IHRvIGFkanVzdCBzZXR0aW5ncyBvcgorCSAgICBkbyBzb21ldGhpbmcgZWxzZS4KK1NvbHV0aW9uOiAgIEFkZCB0aGUgR1VJRmFpbGVkIGF1dG9jb21tYW5kIGV2ZW50LgorRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9ndWkuYywgc3JjL3ZpbS5oCisKK1BhdGNoIDcuMC4wNzMKK1Byb2JsZW06ICAgIEluc2VydCBtb2RlIGNvbXBsZXRpb246IFR5cGluZyA8Q1I+IHNvbWV0aW1lcyBzZWxlY3RzIHRoZSBvcmlnaW5hbAorCSAgICB0ZXh0IGluc3RlYWQgb2Yga2VlcGluZyB3aGF0IHdhcyB0eXBlZC4gIChKdXN0aW4gQ29uc3RhbnRpbm8pCitTb2x1dGlvbjogICBEb24ndCBsZXQgPENSPiBzZWxlY3QgdGhlIG9yaWdpbmFsIHRleHQgaWYgdGhlcmUgaXMgbm8gcG9wdXAgbWVudS4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMDc0IChleHRyYSkKK1Byb2JsZW06ICAgIFdpbjMyOiB0b29sdGlwcyB3ZXJlIG5vdCBjb252ZXJ0ZWQgZnJvbSAnZW5jb2RpbmcnIHRvIFVuaWNvZGUuCitTb2x1dGlvbjogICBTZXQgdGhlIHRvb2x0aXAgdG8gdXNlIFVuaWNvZGUgYW5kIGRvIHRoZSBjb252ZXJzaW9uLiAgQWxzbworCSAgICBjbGVhbnVwIHRoZSBjb2RlIGZvciB0aGUgdGFiIHBhZ2VzIHRvb2x0aXBzLiAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCisKK1BhdGNoIDcuMC4wNzUKK1Byb2JsZW06ICAgIHdpbnNhdmV2aWV3KCkgZGlkIG5vdCBzdG9yZSB0aGUgYWN0dWFsIHZhbHVlIG9mIHRoZSBkZXNpcmVkIGN1cnNvcgorCSAgICBjb2x1bW4uICBUaGlzIGNvdWxkIG1vdmUgdGhlIGN1cnNvciBpbiB0aGUgbWF0Y2hwYXJlbiBwbHVnaW4uCitTb2x1dGlvbjogICBDYWxsIHVwZGF0ZV9jdXJzd2FudCgpIGJlZm9yZSB1c2luZyB0aGUgdmFsdWUgd19jdXJzd2FudC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDc2IChhZnRlciA3LjAuMDEwKQorUHJvYmxlbTogICAgQXV0b21hdGljIGRvd25sb2FkaW5nIG9mIHNwZWxsIGZpbGVzIG9ubHkgd29ya3MgZm9yIGZ0cC4KK1NvbHV0aW9uOiAgIERvbid0IGFkZCBsb2dpbiBhbmQgcGFzc3dvcmQgZm9yIG5vbi1mdHAgVVJMcy4gKEFsZXhhbmRlciBQYXRyYWtvdikKK0ZpbGVzOgkgICAgcnVudGltZS9hdXRvbG9hZC9zcGVsbGZpbGUudmltCisKK1BhdGNoIDcuMC4wNzcKK1Byb2JsZW06ICAgICI6dW5sZXQgdjp0aGlzX3Nlc3Npb24iIGNhdXNlcyBhIGNyYXNoLiAoTWFyaXVzIFJvZXRzKQorU29sdXRpb246ICAgV2hlbiB0cnlpbmcgdG8gdW5sZXQgYSBmaXhlZCB2YXJpYWJsZSBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjA3OAorUHJvYmxlbTogICAgVGhlcmUgYXJlIHR3byBlcnJvciBtZXNzYWdlcyBFNDYuCitTb2x1dGlvbjogICBDaGFuZ2UgdGhlIG51bWJlciBmb3IgdGhlIHNhbmRib3ggbWVzc2FnZSB0byBFNzk0LgorRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oCisKK1BhdGNoIDcuMC4wNzkKK1Byb2JsZW06ICAgIFJ1c3NpYW4gdHV0b3IgZG9lc24ndCB3b3JrIHdoZW4gJ2VuY29kaW5nJyBpcyAidXRmLTgiLgorU29sdXRpb246ICAgVXNlIHR1dG9yLnJ1LnV0Zi04IGFzIHRoZSBtYXN0ZXIsIGFuZCBnZW5lcmF0ZSB0aGUgb3RoZXIgZW5jb2RpbmdzCisJICAgIGZyb20gaXQuICBTZWxlY3QgdGhlIHJpZ2h0IHR1dG9yIGRlcGVuZGluZyBvbiAnZW5jb2RpbmcnLiAoQWxleGV5CisJICAgIEZyb2xvZmYpCitGaWxlczoJICAgIHJ1bnRpbWUvdHV0b3IvTWFrZWZpbGUsIHJ1bnRpbWUvdHV0b3IvdHV0b3IudmltLAorCSAgICBydW50aW1lL3R1dG9yL3R1dG9yLnJ1LnV0Zi04CisKK1BhdGNoIDcuMC4wODAKK1Byb2JsZW06ICAgIEdlbmVyYXRpbmcgYXV0by9wYXRoZGVmLmMgZmFpbHMgZm9yIENGTEFHUyB3aXRoIGEgYmFja3NsYXNoLgorU29sdXRpb246ICAgRG91YmxlIGJhY2tzbGFzaGVzIGluIHRoZSBzdHJpbmcuIChBbGV4ZXkgRnJvbG9mZikKK0ZpbGVzOgkgICAgc3JjL01ha2VmaWxlCisKK1BhdGNoIDcuMC4wODEKK1Byb2JsZW06ICAgIENvbW1hbmQgbGluZSBjb21wbGV0aW9uIGRvZXNuJ3Qgd29yayBmb3IgYSBzaGVsbCBjb21tYW5kIHdpdGggYW4KKwkgICAgYWJzb2x1dGUgcGF0aC4KK1NvbHV0aW9uOiAgIERvbid0IHVzZSAkUEFUSCB3aGVuIHRoZXJlIGlzIGFuIGFic29sdXRlIHBhdGguCitGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCisKK1BhdGNoIDcuMC4wODIKK1Byb2JsZW06ICAgIENhbGxpbmcgYSBmdW5jdGlvbiB0aGF0IHdhaXRzIGZvciBpbnB1dCBtYXkgY2F1c2UgTGlzdCBhbmQKKwkgICAgRGljdGlvbmFyeSBhcmd1bWVudHMgdG8gYmUgZnJlZWQgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yLgorU29sdXRpb246ICAgS2VlcCBhIGxpc3Qgb2YgYWxsIGFyZ3VtZW50cyB0byBpbnRlcm5hbCBmdW5jdGlvbnMuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjA4MworUHJvYmxlbTogICAgQ2xpY2tpbmcgd2l0aCB0aGUgbW91c2Ugb24gYW4gaXRlbSBmb3IgaW5wdXRsaXN0KCkgZG9lc24ndCB3b3JrCisJICAgIHdoZW4gJ2NvbXBhdGlibGUnIGlzIHNldCBhbmQvb3Igd2hlbiAnY21kaGVpZ2h0JyBpcyBtb3JlIHRoYW4gb25lLgorCSAgICAoQ2hyaXN0aWFuIEouICBSb2JpbnNvbikKK1NvbHV0aW9uOiAgIEFsc28gZGVjcmVtZW50ICJsaW5lc19sZWZ0IiB3aGVuICdtb3JlJyBpc24ndCBzZXQuICBTZXQKKwkgICAgImNtZGxpbmVfcm93IiB0byB6ZXJvIHRvIGdldCBhbGwgbW91c2UgZXZlbnRzLgorRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvbWlzYzEuYworCitQYXRjaCA3LjAuMDg0CitQcm9ibGVtOiAgICBUaGUgZ2FyYmFnZSBjb2xsZWN0b3IgbWF5IGRvIGl0cyB3b3JrIHdoaWxlIHNvbWUgTGlzdHMgb3IKKwkgICAgRGljdGlvbmFyaWVzIGFyZSB1c2VkIGludGVybmFsbHksIGUuZy4sIGJ5ICI6ZWNobyIgdGhhdCBydW5zIGludG8KKwkgICAgdGhlIG1vcmUtcHJvbXB0IG9yICI6ZWNobyBbZ2FyYmFnZWNvbGxlY3QoKV0iLgorU29sdXRpb246ICAgT25seSBkbyBnYXJiYWdlIGNvbGxlY3Rpb24gd2hlbiB3YWl0aW5nIGZvciBhIGNoYXJhY3RlciBhdCB0aGUKKwkgICAgdG9wbGV2ZWwuICBMZXQgZ2FyYmFnZWNvbGxlY3QoKSBzZXQgYSBmbGFnIHRoYXQgaXMgaGFuZGxlZCBhdCB0aGUKKwkgICAgdG9wbGV2ZWwgYmVmb3JlIHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWFpbi5jCisKK1BhdGNoIDcuMC4wODUKK1Byb2JsZW06ICAgIFdoZW4gZG9pbmcgIm1ha2UgdGVzdCIgdGhlIHZpbWluZm8gZmlsZSBpcyBtb2RpZmllZC4KK1NvbHV0aW9uOiAgIFVzZSBhbm90aGVyIHZpbWluZm8gZmlsZSBhZnRlciBzZXR0aW5nICdjb21wYXRpYmxlLgorRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0NTYuaW4KKworUGF0Y2ggNy4wLjA4NgorUHJvYmxlbTogICAgZ2V0cWZsaXN0KCkgcmV0dXJucyBlbnRyaWVzIGZvciBwYXR0ZXJuIGFuZCB0ZXh0IHdpdGggdGhlIG51bWJlcgorCSAgICB6ZXJvLiAgUGFzc2luZyB0aGVzZSB0byBzZXRxZmxpc3QoKSByZXN1bHRzIGluIHRoZSBzdHJpbmcgIjAiLgorU29sdXRpb246ICAgVXNlIGFuIGVtcHR5IHN0cmluZyBpbnN0ZWFkIG9mIHRoZSBudW1iZXIgemVyby4KK0ZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKKworUGF0Y2ggNy4wLjA4NworUHJvYmxlbTogICAgQWZ0ZXIgIjpmaWxlIGZuYW1lIiBhbmQgIjpzYXZlYXMgZm5hbWUiIHRoZSAnYXV0b2NoZGlyJyBvcHRpb24KKwkgICAgZG9lcyBub3QgdGFrZSBlZmZlY3QuIChZYWtvdiBMZXJuZXIpCisJICAgIENvbW1hbmRzIGZvciBoYW5kbGluZyAnYXV0b2NoZGlyJyBhcmUgcmVwZWF0ZWQgbWFueSB0aW1lcy4KK1NvbHV0aW9uOiAgIEFkZCB0aGUgRE9fQVVUT0NIRElSIG1hY3JvIGFuZCBkb19hdXRvY2hkaXIoKS4gIFVzZSBpdCBmb3IKKwkgICAgIjpmaWxlIGZuYW1lIiBhbmQgIjpzYXZlYXMgZm5hbWUiLgorRmlsZXM6CSAgICBzcmMvcHJvdG8vYnVmZmVyLnBybywgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kcy5jLCBzcmMvbWFjcm9zLmgsCisJICAgIHNyYy9uZXRiZWFucy5jLCBzcmMvb3B0aW9uLmMsIHNyYy93aW5kb3cuYworCitQYXRjaCA3LjAuMDg4CitQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGVkIHdpdGggUGVybCB0aGUgZ2VuZXJhdGVkIHByb3RvdHlwZXMgaGF2ZSAiZXh0ZXJuIgorCSAgICB1bm5lY2Vzc2FyaWx5IGFkZGVkLgorU29sdXRpb246ICAgUmVtb3ZlIHRoZSAiLXBpcGUiIGFyZ3VtZW50IGZyb20gUEVSTF9DRkxBR1MuCitGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgorCitQYXRjaCA3LjAuMDg5CitQcm9ibGVtOiAgICAiZ2EiIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgZm9yIGEgbm9uLVVuaWNvZGUgbXVsdGktYnl0ZSBlbmNvZGluZy4KK1NvbHV0aW9uOiAgIE9ubHkgY2hlY2sgZm9yIGNvbXBvc2luZyBjaGFycyBmb3IgdXRmLTguIChUYXJvIE11cmFva2EpCitGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKKworUGF0Y2ggNy4wLjA5MAorUHJvYmxlbTogICAgQ2FuY2VsbGluZyB0aGUgY29uZm9ybSgpIGRpYWxvZyBvbiB0aGUgY29uc29sZSB3aXRoIEVzYyByZXF1aXJlcworCSAgICB0eXBpbmcgaXQgdHdpY2UuIChCZW5qaSBGaXNoZXIpCitTb2x1dGlvbjogICBXaGVuIHRoZSBzdGFydCBvZiBhbiBlc2NhcGUgc2VxdWVuY2UgaXMgZm91bmQgdXNlICd0aW1lb3V0bGVuJyBvcgorCSAgICAndHRpbWVvdXRsZW4nLgorRmlsZXM6CSAgICBzcmMvbWlzYzEuYworCitQYXRjaCA3LjAuMDkxCitQcm9ibGVtOiAgICBVc2luZyB3aW5yZXN0dmlldygpIHdoaWxlICdzaG93Y21kJyBpcyBzZXQgY2F1c2VzIHRoZSBjdXJzb3IgdG8gYmUKKwkgICAgZGlzcGxheWVkIGluIHRoZSB3cm9uZyBwb3NpdGlvbi4gKFlha292IExlcm5lcikKK1NvbHV0aW9uOiAgIFNldCB0aGUgd2luZG93IHRvcGxpbmUgcHJvcGVybHkuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjA5MiAoYWZ0ZXIgNy4wLjA4MiBhbmQgNy4wLjA4NCkKK1Byb2JsZW06ICAgIFRoZSBsaXN0IG9mIGludGVybmFsIGZ1bmN0aW9uIGFyZ3VtZW50cyBpcyBvYnNvbGV0ZSBub3cgdGhhdAorCSAgICBnYXJiYWdlIGNvbGxlY3Rpb24gaXMgb25seSBkb25lIGF0IHRoZSB0b3BsZXZlbC4KK1NvbHV0aW9uOiAgIFJlbW92ZSB0aGUgbGlzdCBvZiBhbGwgYXJndW1lbnRzIHRvIGludGVybmFsIGZ1bmN0aW9ucy4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDkzCitQcm9ibGVtOiAgICBUaGUgbWF0Y2hwYXJlbiBwbHVnaW4gY2FuJ3QgaGFuZGxlIGEgJ21hdGNocGFpcnMnIHZhbHVlIHdoZXJlIGEKKwkgICAgY29sb24gaXMgbWF0Y2hlZC4KK1NvbHV0aW9uOiAgIENoYW5nZSB0aGUgc3BsaXQoKSB0aGF0IGlzIHVzZWQgdG8gY2hhbmdlICdtYXRjaHBhaXJzJyBpbnRvIGEKKwkgICAgTGlzdC4KK0ZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vbWF0Y2hwYXJlbi52aW0KKworUGF0Y2ggNy4wLjA5NAorUHJvYmxlbTogICAgV2hlbiBhIGhpZGRlbiBidWZmZXIgaXMgbWFkZSB0aGUgY3VycmVudCBidWZmZXIgYW5kIGFub3RoZXIgZmlsZQorCSAgICBlZGl0ZWQgbGF0ZXIsIHRoZSBmaWxlIG1lc3NhZ2Ugd2lsbCBzdGlsbCBiZSBnaXZlbi4gIFVzaW5nCisJICAgICI6c2lsZW50IiBhbHNvIGRvZXNuJ3QgcHJldmVudCB0aGUgZmlsZSBtZXNzYWdlLiAoTWFydmluIFJlbmljaCkKK1NvbHV0aW9uOiAgIFJlc2V0IHRoZSBuZWVkX2ZpbGVpbmZvIGZsYWcgd2hlbiByZWFkaW5nIGEgZmlsZS4gIERvbid0IHNldAorCSAgICBuZWVkX2ZpbGVpbmZvIHdoZW4gbXNnX3NpbGVudCBpcyBzZXQuCitGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2ZpbGVpby5jCisKK1BhdGNoIDcuMC4wOTUKK1Byb2JsZW06ICAgIFRoZSBHcmVlayB0dXRvciBpcyBub3QgYXZhaWxhYmxlIGluIHV0Zi04LiAgImVsIiBpcyB1c2VkIGZvciB0aGUKKwkgICAgbGFuZ3VhZ2UsIG9ubHkgImdyIiBmb3IgdGhlIGNvdW50cnkgaXMgcmVjb2duaXplZC4KK1NvbHV0aW9uOiAgIEFkZCB0aGUgdXRmLTggR3JlZWsgdHV0b3IuICBVc2UgaXQgZm9yIGNvbnZlcnNpb24gdG8gaXNvLTg4NTktNworCSAgICBhbmQgY3A3MzcuICAoTGVmdGVyaXMgRGltaXRyb3VsYWtpcykKK0ZpbGVzOgkgICAgcnVudGltZS90dXRvci9NYWtlZmlsZSwgcnVudGltZS90dXRvci90dXRvci5nci51dGYtOCwKKwkgICAgcnVudGltZS90dXRvci90dXRvci52aW0KKworUGF0Y2ggNy4wLjA5NgorUHJvYmxlbTogICAgdGFnbGlzdCgpIHJldHVybnMgdGhlIGZpbGVuYW1lIHJlbGF0aXZlIHRvIHRoZSB0YWdzIGZpbGUsIHdoaWxlCisJICAgIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHRhZ3MgZmlsZSBpcyB1bmtub3duLiAoSGFyaSBLcmlzaG5hIERhcmEpCitTb2x1dGlvbjogICBFeHBhbmQgdGhlIGZpbGUgbmFtZS4gKFllZ2FwcGFuIExha3NobWFuYW4pCitGaWxlczoJICAgIHNyYy90YWcuYworCitQYXRjaCA3LjAuMDk3CitQcm9ibGVtOiAgICAiOnRhYmNsb3NlIE4iIHRoYXQgY2xvc2VzIGFub3RoZXIgdGFiIHBhZ2UgZG9lcyBub3QgcmVtb3ZlIHRoZSB0YWIKKwkgICAgcGFnZXMgbGluZS4gIFNhbWUgcHJvYmxlbSB3aGVuIHVzaW5nIHRoZSBtb3VzZS4KK1NvbHV0aW9uOiAgIEFkanVzdCB0aGUgdGFiIHBhZ2VzIGxpbmUgd2hlbiBuZWVkZWQgaW4gdGFicGFnZV9jbG9zZV9vdGhlcigpLgorRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYworCitQYXRjaCA3LjAuMDk4CitQcm9ibGVtOiAgICBSZWRpcmVjdGluZyBjb21tYW5kIG91dHB1dCBpbiBhIGNtZGxpbmUgY29tcGxldGlvbiBmdW5jdGlvbgorCSAgICBkb2Vzbid0IHdvcmsuIChIYXJpIEtyaXNobmEgRGFyYSkKK1NvbHV0aW9uOiAgIEVuYWJsZSByZWRpcmVjdGlvbiB3aGVuIHJlZGlyZWN0aW9uIGlzIHN0YXJ0ZWQuCitGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYworCitQYXRjaCA3LjAuMDk5CitQcm9ibGVtOiAgICBHVUk6IFdoZW4gdGhlIHBvcHVwIG1lbnUgaXMgdmlzaWJsZSB1c2luZyB0aGUgc2Nyb2xsYmFyIG1lc3NlcyB1cAorCSAgICB0aGUgZGlzcGxheS4KK1NvbHV0aW9uOiAgIERpc2FsbG93IHNjcm9sbGluZyB0aGUgY3VycmVudCB3aW5kb3cuICBSZWRyYXcgdGhlIHBvcHVwIG1lbnUKKwkgICAgYWZ0ZXIgc2Nyb2xsaW5nIGFub3RoZXIgd2luZG93LgorRmlsZXM6CSAgICBzcmMvZ3VpLmMKKworUGF0Y2ggNy4wLjEwMAorUHJvYmxlbTogICAgInp1ZyIgbWF5IHJlcG9ydCB0aGUgd3JvbmcgZmlsZW5hbWUuIChMYXdyZW5jZSBLZXN0ZWxvb3QpCitTb2x1dGlvbjogICBDYWxsIGhvbWVfcmVwbGFjZSgpIHRvIGZpbGwgTmFtZUJ1ZmZbXS4KK0ZpbGVzOgkgICAgc3JjL3NwZWxsLmMKKworUGF0Y2ggNy4wLjEwMQorUHJvYmxlbTogICAgV2hlbiB0aGUgIn4vLnZpbS9zcGVsbCIgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0ICJ6ZyIgbWF5IGNyZWF0ZQorCSAgICBhIHdyb25nIGRpcmVjdG9yeS4gICJ6dyIgZG9lc24ndCB3b3JrLgorU29sdXRpb246ICAgVXNlIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGZpbGUgbmFtZSBpbnN0ZWFkIG9mIE5hbWVCdWZmLiAgRm9yICJ6dyIKKwkgICAgbm90IG9ubHkgcmVtb3ZlIGEgZ29vZCB3b3JkIGJ1dCBhbHNvIGFkZCB0aGUgd29yZCB3aXRoICIhIi4KK0ZpbGVzOgkgICAgc3JjL3NwZWxsLmMKKworUGF0Y2ggNy4wLjEwMgorUHJvYmxlbTogICAgUmVkcmF3aW5nIGNtZGxpbmUgaXMgbm90IGNvcnJlY3Qgd2hlbiB1c2luZyBTQ0lNLgorU29sdXRpb246ICAgRG9uJ3QgY2FsbCBpbV9nZXRfc3RhdHVzKCkuIChZdWtpaGlybyBOYWthZGFpcmEpCitGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCisKK1BhdGNoIDcuMC4xMDMgKGFmdGVyIDcuMC4xMDEpCitQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciB1bmluaXRpYWxpemVkIHZhcmlhYmxlLiAoVG9ueSBNZWNoZWx5bmNrKQorU29sdXRpb246ICAgSW5pdCB2YXJpYWJsZS4KK0ZpbGVzOgkgICAgc3JjL3NwZWxsLmMKKworUGF0Y2ggNy4wLjEwNAorUHJvYmxlbTogICAgVGhlIEN1cnNvckhvbGRJIGV2ZW50IG9ubHkgdHJpZ2dlcnMgb25jZSBpbiBJbnNlcnQgbW9kZS4gIEl0IGFsc28KKwkgICAgdHJpZ2dlcnMgYWZ0ZXIgQ1RSTC1WIGFuZCBvdGhlciB0d28ta2V5IGNvbW1hbmRzLgorU29sdXRpb246ICAgU2V0ICJkaWRfY3Vyc29yaG9sZCIgYmVmb3JlIGdldHRpbmcgYSBzZWNvbmQga2V5LiAgUmVzZXQKKwkgICAgImRpZF9jdXJzb3Job2xkIiBhZnRlciBoYW5kbGluZyBhIGNvbW1hbmQuCitGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9maWxlaW8uYworCitQYXRjaCA3LjAuMTA1CitQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGluY3JlbWVudGFsIHNlYXJjaCB0aGUgc3RhdHVzbGluZSBydWxlciBpc24ndCB1cGRhdGVkLgorCSAgICAoQ2hyaXN0b3BoIEtvZWdsKQorU29sdXRpb246ICAgVXBkYXRlIHRoZSBzdGF0dXNsaW5lIHdoZW4gaXQgY29udGFpbnMgdGhlIHJ1bGVyLgorRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYworCitQYXRjaCA3LjAuMTA2CitQcm9ibGVtOiAgICBUaGUgc3BlbGwgcG9wdXAgbWVudSB1c2VzICI6YW1lbnUiLCB0cmlnZ2VyaW5nIG1hcHBpbmdzLiAgT3RoZXIKKwkgICAgUG9wdXBNZW51IGF1dG9jb21tYW5kcyBhcmUgcmVtb3ZlZC4gKEpvaG4gTGl0dGxlKQorU29sdXRpb246ICAgVXNlICI6YW5vcmVtZW51IiBhbmQgdXNlIGFuIGF1dG9jbWQgZ3JvdXAuCitGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KKworUGF0Y2ggNy4wLjEwNworUHJvYmxlbTogICAgSW5jcmVtZW50YWwgc2VhcmNoIGRvZXNuJ3QgcmVkcmF3IHRoZSB0ZXh0IHRhYmxpbmUuIChJbHlhIEJvYmlyKQorCSAgICBBbHNvIGhhcHBlbnMgaW4gb3RoZXIgc2l0dWF0aW9ucyB3aXRoIG9uZSB3aW5kb3cgaW4gYSB0YWIgcGFnZS4KK1NvbHV0aW9uOiAgIFJlZHJhdyB0aGUgdGFibGluZSBhZnRlciBjbGVhcmluZyB0aGUgc2NyZWVuLgorRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKKworUGF0Y2ggNy4wLjEwOCAoZXh0cmEpCitQcm9ibGVtOiAgICBBbWlnYTogQ29tcGlsYXRpb24gcHJvYmxlbS4KK1NvbHV0aW9uOiAgIEhhdmUgbWNoX21rZGlyKCkgcmV0dXJuIGEgZmFpbHVyZSBmbGFnLiAoV2lsbHkgQ2F0dGVhdSkKK0ZpbGVzOgkgICAgc3JjL29zX2FtaWdhLmMsIHNyYy9wcm90by9vc19hbWlnYS5wcm8KKworUGF0Y2ggNy4wLjEwOQorUHJvYmxlbTogICAgTGlzcCBpbmRlbnRpbmcgaXMgY29uZnVzZWQgYnkgZXNjYXBlZCBxdW90ZXMgaW4gc3RyaW5ncy4gKERvcmFpCisJICAgIFNpdGFyYW0pCitTb2x1dGlvbjogICBDaGVjayBmb3IgYmFja3NsYXNoIGluc2lkZSBzdHJpbmdzLiAoU2VyZ2V5IEtob3JldikKK0ZpbGVzOgkgICAgc3JjL21pc2MxLmMKKworUGF0Y2ggNy4wLjExMAorUHJvYmxlbTogICAgQW1pZ2E6IENvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4gbm90IHVzaW5nIGxpYm5peC4KK1NvbHV0aW9uOiAgIENoYW5nZSBhIGZldyAjaWZkZWZzLiAoV2lsbHkgQ2F0dGVhdSkKK0ZpbGVzOgkgICAgc3JjL21lbWZpbGUuYworCitQYXRjaCA3LjAuMTExCitQcm9ibGVtOiAgICBUaGUgZ3ppcCBwbHVnaW4gY2FuJ3QgaGFuZGxlIGZpbGVuYW1lcyB3aXRoIHNpbmdsZSBxdW90ZXMuCitTb2x1dGlvbjogICBBZGQgYW5kIHVzZSB0aGUgc2hlbGxlc2NhcGUoKSBmdW5jdGlvbi4gKHBhcnRseSBieSBBbGV4ZXkgRnJvbG9mZikKK0ZpbGVzOgkgICAgcnVudGltZS9hdXRvbG9hZC9nemlwLnZpbSwgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsCisJICAgIHNyYy9tYnl0ZS5jLCBzcmMvbWlzYzIuYywgc3JjL3Byb3RvL21pc2MyLnBybworCitQYXRjaCA3LjAuMTEyCitQcm9ibGVtOiAgICBQeXRob24gaW50ZXJmYWNlIGRvZXMgbm90IHdvcmsgd2l0aCBQeXRob24gMi41LgorU29sdXRpb246ICAgQ2hhbmdlIFB5TWVtX0RFTCgpIHRvIFB5X0RFQ1JFRigpLiAoU3VtbmVyIEhheWVzKQorRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKKworUGF0Y2ggNy4wLjExMworUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1MIGluIEluc2VydCBjb21wbGV0aW9uIHdoZW4gdGhlcmUgaXMgbm8gY3VycmVudCBtYXRjaAorCSAgICBtYXkgY2F1c2UgYSBjcmFzaC4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK1NvbHV0aW9uOiAgIENoZWNrIGZvciBjb21wbF9sZWFkZXIgdG8gYmUgTlVMTAorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4xMTQKK1Byb2JsZW06ICAgIFdoZW4gYWJvcnRpbmcgYW4gaW5zZXJ0IHdpdGggQ1RSTC1DIGFuIGV4dHJhIHVuZG8gcG9pbnQgaXMKKwkgICAgY3JlYXRlZCBpbiB0aGUgR1VJLiAoWXVraWhpcm8gTmFrYWRhaXJhKQorU29sdXRpb246ICAgQ2FsbCBnb3RjaGFycygpIG9ubHkgd2hlbiBhZHZhbmNpbmcuCitGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKKworUGF0Y2ggNy4wLjExNQorUHJvYmxlbTogICAgV2hlbiAnaWdub3JlY2FzZScgaXMgc2V0LCBJbnNlcnQgbW9kZSBjb21wbGV0aW9uIG9ubHkgYWRkcyAiZm9vIgorCSAgICBhbmQgbm90ICJGb28iIHdoZW4gYm90aCBhcmUgZm91bmQuCisJICAgIEEgZm91bmQgbWF0Y2ggaXNuJ3QgZGlzcGxheWVkIHJpZ2h0IGF3YXkgd2hlbiAnY29tcGxldGVvcHQnIGRvZXMKKwkgICAgbm90IGhhdmUgIm1lbnUiIG9yICJtZW51b25lIi4KK1NvbHV0aW9uOiAgIERvIG5vdCBpZ25vcmUgY2FzZSB3aGVuIGNoZWNraW5nIGlmIGEgY29tcGxldGlvbiBtYXRjaCBhbHJlYWR5CisJICAgIGV4aXN0cy4gIGNhbGwgaW5zX2NvbXBsX2NoZWNrX2tleXMoKSBhbHNvIHdoZW4gbm90IHVzaW5nIGEgcG9wdXAKKwkgICAgbWVudS4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMTE2CitQcm9ibGVtOiAgICA2NCBiaXQgV2luZG93cyB2ZXJzaW9uIHJlcG9ydHMgIjMyIGJpdCIgaW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LgorCSAgICAoTS4gVmVlcm1hbikKK1NvbHV0aW9uOiAgIENoYW5nZSB0aGUgdGV4dCBmb3IgV2luNjQuCitGaWxlczoJICAgIHNyYy92ZXJzaW9uLmMKKworUGF0Y2ggNy4wLjExNworUHJvYmxlbTogICAgVXNpbmcgImV4dGVuZCIgb24gYSBzeW50YXggaXRlbSBpbnNpZGUgYSByZWdpb24gd2l0aCAia2VlcGVuZCIsIGFuCisJICAgIGludGVybWVkaWF0ZSBpdGVtIG1heSBiZSB0cnVuY2F0ZWQuCisJICAgIFdoZW4gYXBwbHlpbmcgdGhlICJrZWVwZW5kIiBhbmQgdGhlcmUgaXMgYW4gb2Zmc2V0IHRvIHRoZSBlbmQKKwkgICAgcGF0dGVybiB0aGUgaGlnaGxpZ2h0aW5nIG9mIGEgY29udGFpbmVkIGl0ZW0gaXNuJ3QgYWRqdXN0ZWQuCitTb2x1dGlvbjogICBVc2UgdGhlIHNlZW5fa2VlcGVuZCBmbGFnIHRvIHJlbWVtYmVyIHdoZW4gdG8gYXBwbHkgdGhlICJrZWVwZW5kIgorCSAgICBmbGFnLiAgQWRqdXN0IHRoZSBrZWVwZW5kIGhpZ2hsaWdodGluZyBwcm9wZXJseS4gKElseWEgQm9iaXIpCitGaWxlczoJICAgIHNyYy9zeW50YXguYworCitQYXRjaCA3LjAuMTE4CitQcm9ibGVtOiAgICBwcmludGYoKSBkb2VzIG5vdCBkbyB6ZXJvIHBhZGRpbmcgZm9yIHN0cmluZ3MuCitTb2x1dGlvbjogICBEbyBhbGxvdyB6ZXJvIHBhZGRpbmcgZm9yIHN0cmluZ3MuCitGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKKworUGF0Y2ggNy4wLjExOQorUHJvYmxlbTogICAgV2hlbiBnb2luZyBiYWNrIGZyb20gSW5zZXJ0IHRvIE5vcm1hbCBtb2RlIHRoZSBDdXJzb3JIb2xkIGV2ZW50CisJICAgIGRvZXNuJ3QgdHJpZ2dlci4gKFlha292IExlcm5lcikKK1NvbHV0aW9uOiAgIFJlc2V0ICJkaWRfY3Vyc29yaG9sZCIgd2hlbiBsZWF2aW5nIEluc2VydCBtb2RlLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4xMjAKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgQ1RSTC1SID0gYXQgdGhlIGNvbW1hbmQgbGluZSBhbmQgZW50ZXJpbmcKKwkgICAgImdldHJlZygnPScpIi4gKEphbWVzIFZlZ2EpCitTb2x1dGlvbjogICBBdm9pZCByZWN1cnNpdmVuZXNzIG9mIGV2YWx1YXRpbmcgdGhlID0gcmVnaXN0ZXIuCitGaWxlczoJICAgIHNyYy9vcHMuYworCitQYXRjaCA3LjAuMTIxCitQcm9ibGVtOiAgICBHVUk6IERyYWdnaW5nIHRoZSBsYXN0IHN0YXR1cyBsaW5lIGRvZXNuJ3Qgd29yayB3aGVuIHRoZXJlIGlzIGEKKwkgICAgdGV4dCB0YWJsaW5lLiAgKE1hcmt1cyBXb2xmKQorU29sdXRpb246ICAgVGFrZSB0aGUgdGV4dCB0YWJsaW5lIGludG8gYWNjb3VudCB3aGVuIGRlY2lkaW5nIHRvIHN0YXJ0IG1vZGVsZXNzCisJICAgIHNlbGVjdGlvbi4KK0ZpbGVzOgkgICAgc3JjL2d1aS5jCisKK1BhdGNoIDcuMC4xMjIKK1Byb2JsZW06ICAgIEdVSTogV2hlbiBjbGVhcmluZyBhZnRlciBhIGJvbGQsIGRvdWJsZS13aWRlIGNoYXJhY3RlciBoYWxmIGEKKwkgICAgY2hhcmFjdGVyIG1heSBiZSBkcmF3bi4KK1NvbHV0aW9uOiAgIENoZWNrIGZvciBkb3VibGUtd2lkZSBjaGFyYWN0ZXIgYW5kIHJlZHJhdyBpdC4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCisKK1BhdGNoIDcuMC4xMjMKK1Byb2JsZW06ICAgIE9uIFNDTyBPcGVuc2VydmVyIGNvbmZpZ3VyZSBzZWxlY3RzIHRoZSB3cm9uZyB0ZXJtaW5hbCBsaWJyYXJ5LgorU29sdXRpb246ICAgUHV0IHRlcm1pbmZvIGJlZm9yZSB0aGUgb3RoZXIgbGlicmFyaWVzLiAoUm9nZXIgQ29ybmVsaXVzKQorCSAgICBBbHNvIGZpeCBhIHNtYWxsIHByb2JsZW0gY29tcGlsaW5nIG9uIE1hYyB3aXRob3V0IERhcndpbi4KK0ZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCisKK1BhdGNoIDcuMC4xMjQKK1Byb2JsZW06ICAgIGdldHdpbnZhcigpIG9idGFpbnMgYSBkaWN0aW9uYXJ5IHdpdGggd2luZG93LWxvY2FsIHZhcmlhYmxlcywgYnV0CisJICAgIGl0J3MgYWx3YXlzIGZvciB0aGUgY3VycmVudCB3aW5kb3cuCitTb2x1dGlvbjogICBHZXQgdGhlIHZhcmlhYmxlcyBvZiB0aGUgc3BlY2lmaWVkIHdpbmRvdy4gKEdlb2ZmIFJlZWR5KQorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4xMjUKK1Byb2JsZW06ICAgIFdoZW4gImF1dG9zZWxlY3QiIGlzIGluIHRoZSAnY2xpcGJvYXJkJyBvcHRpb24gdGhlbiB0aGUgJzwgYW5kICc+CisJICAgIG1hcmtzIGFyZSBzZXQgd2hpbGUgVmlzdWFsIG1vZGUgaXMgc3RpbGwgYWN0aXZlLgorU29sdXRpb246ICAgRG9uJ3Qgc2V0IHRoZSAnPCBhbmQgJz4gbWFya3Mgd2hlbiB5YW5raW5nIHRoZSBzZWxlY3RlZCBhcmVhIGZvcgorCSAgICB0aGUgY2xpcGJvYXJkLgorRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKKworUGF0Y2ggNy4wLjEyNgorUHJvYmxlbTogICAgV2hlbiAnZm9ybWF0ZXhwcicgdXNlcyBzZXRsaW5lKCkgYW5kIGxhdGVyIGludGVybmFsIGZvcm1hdHRpbmcgaXMKKwkgICAgdXNlZCB1bmRvIGluZm9ybWF0aW9uIGlzIG5vdCBjb3JyZWN0LiAoSmlyaSBDZXJueSwgQmVuamkgRmlzaGVyKQorU29sdXRpb246ICAgU2V0IGluc19uZWVkX3VuZG8gYWZ0ZXIgdXNpbmcgJ2Zvcm1hdGV4cHInLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4xMjcKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gc3dhcCBmaWxlcyBoYXMgaW52YWxpZCB0aW1lc3RhbXAuCitTb2x1dGlvbjogICBDaGVjayByZXR1cm4gdmFsdWUgb2YgY3RpbWUoKSBmb3IgYmVpbmcgTlVMTC4KK0ZpbGVzOgkgICAgc3JjL21lbWxpbmUuYworCitQYXRjaCA3LjAuMTI4CitQcm9ibGVtOiAgICBHVUk6IHdoZW4gY2xvc2luZyBndmltIGlzIGNhbmNlbGxlZCBiZWNhdXNlIHRoZXJlIGlzIGEgY2hhbmdlZAorCSAgICBidWZmZXIgdGhlIHNjcmVlbiBpc24ndCB1cGRhdGVkIHRvIHNob3cgdGhlIGNoYW5nZWQgYnVmZmVyIGluIHRoZQorCSAgICBjdXJyZW50IHdpbmRvdy4gIChLcnp5c3p0b2YgS2FjcHJ6YWspCitTb2x1dGlvbjogICBSZWRyYXcgd2hlbiBjbG9zaW5nIGd2aW0gaXMgY2FuY2VsbGVkLgorRmlsZXM6CSAgICBzcmMvZ3VpLmMKKworUGF0Y2ggNy4wLjEyOQorUHJvYmxlbTogICAgR1RLIEdVSTogdGhlIEdUSyBmaWxlIGRpYWxvZyBjYW4ndCBoYW5kbGUgYSByZWxhdGl2ZSBwYXRoLgorU29sdXRpb246ICAgTWFrZSB0aGUgaW5pdGlhbCBkaXJlY3RvcnkgYSBmdWxsIHBhdGggYmVmb3JlIHBhc3NpbmcgaXQgdG8gR1RLLgorCSAgICAoSmFtZXMgVmVnYSkgIEFsc28gcG9zdHBvbmUgYWRkaW5nIHRoZSBkZWZhdWx0IGZpbGUgbmFtZSB1bnRpbAorCSAgICBhZnRlciBzZXR0aW5nIHRoZSBkaXJlY3RvcnkuCitGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKKworUGF0Y2ggNy4wLjEzMCAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogVHJ5aW5nIHRvIGVkaXQgb3Igd3JpdGUgZGV2aWNlcyBtYXkgY2F1c2UgVmltIHRvIGdldCBzdHVjay4KK1NvbHV0aW9uOiAgIEFkZCB0aGUgJ29wZW5kZXZpY2UnIG9wdGlvbiwgZGVmYXVsdCBvZmYuICBEaXNhbGxvdworCSAgICByZWFkaW5nL3dyaXRpbmcgZnJvbS90byBkZXZpY2VzIHdoZW4gaXQncyBvZmYuCisJICAgIEFsc28gZGV0ZWN0IG1vcmUgZGV2aWNlcyBieSB0aGUgZnVsbCBuYW1lIHN0YXJ0aW5nIHdpdGggIlxcLlwiLgorRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL2ZpbGVpby5jLCBzcmMvb3B0aW9uLmMsIHNyYy9vcHRpb24uaCwKKwkgICAgc3JjL29zX3dpbjMyLmMKKworUGF0Y2ggNy4wLjEzMQorUHJvYmxlbTogICAgV2luMzI6ICJ2aW0gLXIiIGRvZXMgbm90IGxpc3QgYWxsIHRoZSBzd2FwIGZpbGVzLgorU29sdXRpb246ICAgQWxzbyBjaGVjayBmb3Igc3dhcCBmaWxlcyBzdGFydGluZyB3aXRoIGEgZG90LgorRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCisKK1BhdGNoIDcuMC4xMzIgKGFmdGVyIDcuMC4xMzApCitQcm9ibGVtOiAgICBXaW4zMjogQ3Jhc2ggd2hlbiBWaW0gcmVhZHMgZnJvbSBzdGRpbi4KK1NvbHV0aW9uOiAgIE9ubHkgdXNlIG1jaF9ub2RldHlwZSgpIHdoZW4gdGhlcmUgaXMgYSBmaWxlIG5hbWUuCitGaWxlczoJICAgIHNyYy9maWxlaW8uYworCitQYXRjaCA3LjAuMTMzCitQcm9ibGVtOiAgICBXaGVuIHNlYXJjaGluZyBpbmNsdWRlZCBmaWxlcyBtZXNzYWdlcyBhcmUgYWRkZWQgdG8gdGhlIGhpc3RvcnkuCitTb2x1dGlvbjogICBTZXQgbXNnX2hpc3Rfb2ZmIGZvciBtZXNzYWdlcyBhYm91dCBzY2FubmluZyBpbmNsdWRlZCBmaWxlcy4KKyAgICAgICAgICAgIFNldCBtc2dfc2lsZW50IHRvIGF2b2lkIG1lc3NhZ2UgYWJvdXQgd3JhcHBpbmcgYXJvdW5kLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWVzc2FnZS5jLCBzcmMvc2VhcmNoLmMKKworUGF0Y2ggNy4wLjEzNAorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBjb21wYXJpbmcgYSByZWN1cnNpdmVseSBsb29wZWQgTGlzdCBvciBEaWN0aW9uYXJ5LgorU29sdXRpb246ICAgTGltaXQgcmVjdXJzaXZlbmVzcyBmb3IgY29tcGFyaW5nIHRvIDEwMDAuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjEzNQorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBnYXJiYWdlIGNvbGxlY3RpbmcgbGlzdCBvciBkaWN0IHdpdGggbG9vcC4KK1NvbHV0aW9uOiAgIERvbid0IHVzZSBERUxfUkVGQ09VTlQgYnV0IGRvbid0IHJlY3Vyc2UgaW50byBMaXN0cyBhbmQKKwkgICAgRGljdGlvbmFyaWVzIHdoZW4gZnJlZWluZyB0aGVtIGluIHRoZSBnYXJiYWdlIGNvbGxlY3Rvci4KKwkgICAgQWxzbyBhZGQgYWxsb2NhdGVkIERpY3Rpb25hcmllcyB0byB0aGUgbGlzdCBvZiBEaWN0aW9uYXJpZXMgdG8KKwkgICAgYXZvaWQgbGVha2luZyBtZW1vcnkuCitGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9wcm90by9ldmFsLnBybywgc3JjL3RhZy5jCisKK1BhdGNoIDcuMC4xMzYKK1Byb2JsZW06ICAgIFVzaW5nICJPIiB3aGlsZSBtYXRjaGluZyBwYXJlbnMgYXJlIGhpZ2hsaWdodGVkIG1heSBub3QgcmVtb3ZlIHRoZQorCSAgICBoaWdobGlnaHRpbmcuIChJbHlhIEJvYmlyKQorU29sdXRpb246ICAgQWxzbyB0cmlnZ2VyIEN1cnNvck1vdmVkIHdoZW4gYSBsaW5lIGlzIGluc2VydGVkIHVuZGVyIHRoZSBjdXJzb3IuCitGaWxlczoJICAgIHNyYy9taXNjMS5jCisKK1BhdGNoIDcuMC4xMzcKK1Byb2JsZW06ICAgIENvbmZpZ3VyZSBjaGVjayBmb3IgYmlnIGZlYXR1cmVzIGlzIHdyb25nLgorU29sdXRpb246ICAgQ2hhbmdlICI9PSIgdG8gIj0iLiAoTWFydHRpIEt1cGFyaW5lbikKK0ZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCisKK1BhdGNoIDcuMC4xMzggKGV4dHJhKQorUHJvYmxlbTogICAgTWFjOiBtb2RpZmllcnMgZG9uJ3Qgd29yayB3aXRoIGZ1bmN0aW9uIGtleXMuCitTb2x1dGlvbjogICBVc2UgR2V0RXZlbnRQYXJhbWV0ZXIoKSB0byBvYnRhaW4gbW9kaWZpZXJzLiAoTmljb2xhcyBXZWJlcikKK0ZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYworCitQYXRjaCA3LjAuMTM5CitQcm9ibGVtOiAgICBVc2luZyBDVFJMLVBhZ2VVcCBvciBDVFJMLVBhZ2VEb3duIGluIEluc2VydCBtb2RlIHRvIGdvIHRvIGFub3RoZXIKKwkgICAgdGFiIHBhZ2UgZG9lcyBub3QgcHJlcGFyZSBmb3IgdW5kbyBwcm9wZXJseS4gKFN0ZWZhbm8gWmFjY2hpcm9saSkKK1NvbHV0aW9uOiAgIENhbGwgc3RhcnRfYXJyb3coKSBiZWZvcmUgc3dpdGNoaW5nIHRhYiBwYWdlLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4xNDAgKGFmdGVyIDcuMC4xMzQpCitQcm9ibGVtOiAgICBDb21wYXJpbmcgcmVjdXJzaXZlbHkgbG9vcGVkIExpc3Qgb3IgRGljdGlvbmFyeSBkb2Vzbid0IHdvcmsgd2VsbC4KK1NvbHV0aW9uOiAgIERldGVjdCBjb21wYXJpbmcgYSBMaXN0IG9yIERpY3Rpb25hcnkgd2l0aCBpdHNlbGYuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjE0MQorUHJvYmxlbTogICAgV2hlbiBwYXN0aW5nIGEgd2hpbGUgbGluZSBvbiB0aGUgY29tbWFuZCBsaW5lIGFuIGV4dHJhIENSIGlzIGFkZGVkCisJICAgIGxpdGVyYWxseS4KK1NvbHV0aW9uOiAgIERvbid0IGFkZCB0aGUgdHJhaWxpbmcgQ1Igd2hlbiBwYXN0aW5nIHdpdGggdGhlIG1vdXNlLgorRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL3Byb3RvL29wcy5wcm8sIHNyYy9vcHMuYworCitQYXRjaCA3LjAuMTQyCitQcm9ibGVtOiAgICBVc2luZyB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiBpbiBTZWxlY3QgbW9kZSB0byBwYXN0ZSB0ZXh0IHJlc3VsdHMKKwkgICAgaW4gYW4gZXh0cmEgInkiLiAoS3JpdG9uIEt5cmltaXMpCitTb2x1dGlvbjogICBMZXQgdGhlIG1pZGRsZSBtb3VzZSBidXR0b24gcmVwbGFjZSB0aGUgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZQorCSAgICBjb250ZW50cyBvZiB0aGUgY2xpcGJvYXJkLgorRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKKworUGF0Y2ggNy4wLjE0MworUHJvYmxlbTogICAgU2V0dGluZyAnc2Nyb2xsJyB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3YXMgbm90IGhhbmRsZWQgY29ycmVjdGx5LgorU29sdXRpb246ICAgQ29tcGFyZSB0aGUgcmlnaHQgZmllbGQgdG8gUFZfU0NST0xMLgorRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKKworUGF0Y2ggNy4wLjE0NAorUHJvYmxlbTogICAgTWF5IGNvbXBhcmUgdHdvIHVucmVsYXRlZCBwb2ludGVycyB3aGVuIG1hdGNoaW5nIGEgcGF0dGVybiBhZ2FpbnN0CisJICAgIGEgc3RyaW5nLiAgKERvbWluaXF1ZSBQZWxsZSkKK1NvbHV0aW9uOiAgIEF2b2lkIGNhbGxpbmcgcmVnX2dldGxpbmUoKSB3aGVuIFJFR19NVUxUSSBpcyBmYWxzZS4KK0ZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCisKK1BhdGNoIDcuMC4xNDUgKGFmdGVyIDcuMC4xNDIpCitQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nLgorU29sdXRpb246ICAgQWRkIHR5cGUgY2FzdC4KK0ZpbGVzOgkgICAgc3JjL25vcm1hbC5jCisKK1BhdGNoIDcuMC4xNDYKK1Byb2JsZW06ICAgIFdoZW4gJ3N3aXRjaGJ1ZicgaXMgc2V0IHRvICJ1c2V0YWIiIGFuZCB0aGUgY3VycmVudCB0YWIgaGFzIG9ubHkgYQorCSAgICBxdWlja2ZpeCB3aW5kb3csIGp1bXBpbmcgdG8gYW4gZXJyb3IgYWx3YXlzIG9wZW5zIGEgbmV3IHdpbmRvdy4KKwkgICAgQWxzbywgd2hlbiB0aGUgYnVmZmVyIGlzIG9wZW4gaW4gYW5vdGhlciB0YWIgcGFnZSBpdCdzIG5vdCBmb3VuZC4KK1NvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgInNwbGl0IiB2YWx1ZSBvZiAnc3dpdGNoYnVmJyBwcm9wZXJseS4gIFNlYXJjaCBpbgorCSAgICBvdGhlciB0YWIgcGFnZXMgZm9yIHRoZSBkZXNpcmVkIGJ1ZmZlci4gKFllZ2FwcGFuIExha3NobWFuYW4pCitGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL3F1aWNrZml4LmMKKworUGF0Y2ggNy4wLjE0NworUHJvYmxlbTogICAgV2hlbiBjcmVhdGluZyBhIHNlc3Npb24gZmlsZSBhbmQgdGhlcmUgYXJlIHNldmVyYWwgdGFiIHBhZ2VzIGFuZAorCSAgICBzb21lIHdpbmRvd3MgaGF2ZSBhIGxvY2FsIGRpcmVjdG9yeSBhIHNob3J0IGZpbGUgbmFtZSBtYXkgYmUgdXNlZAorCSAgICB3aGVuIGl0J3Mgbm90IHZhbGlkLiAoTWFyaXVzIFJvZXRzKQorCSAgICBBIHNlc3Npb24gd2l0aCBtdWx0aXBsZSB0YWIgcGFnZXMgbWF5IHJlc3VsdCBpbiAiTm8gTmFtZSIgYnVmZmVycy4KKwkgICAgKEJpbGwgTWNDYXJ0aHkpCitTb2x1dGlvbjogICBEb24ndCBlbnRlciB0YWIgcGFnZXMgd2hlbiBnb2luZyB0aHJvdWdoIHRoZSBsaXN0LCBvbmx5IHVzZSBhCisJICAgIHBvaW50ZXIgdG8gdGhlIGZpcnN0IHdpbmRvdyBpbiBlYWNoIHRhYiBwYWdlLgorICAgICAgICAgICAgVXNlICJ0YWJlZGl0IiBpbnN0ZWFkIG9mICJ0YWJuZXcgfCBlZGl0IiB3aGVuIHBvc3NpYmxlLgorRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYworCitQYXRjaCA3LjAuMTQ4CitQcm9ibGVtOiAgICBXaGVuIGRvaW5nICJjYWxsIGEueHl6KCkiIGFuZCAieHl6IiBkb2VzIG5vdCBleGlzdCBpbiBkaWN0aW9uYXJ5CisJICAgICJhIiB0aGVyZSBpcyBubyBlcnJvciBtZXNzYWdlLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK1NvbHV0aW9uOiAgIEFkZCB0aGUgZXJyb3IgbWVzc2FnZS4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMTQ5CitQcm9ibGVtOiAgICBXaGVuIHJlc2l6aW5nIGEgd2luZG93IHRoYXQgc2hvd3MgIn4iIGxpbmVzIHRoZSB0ZXh0IHNvbWV0aW1lcworCSAgICBqdW1wcyBkb3duLgorU29sdXRpb246ICAgUmVtb3ZlIGNvZGUgdGhhdCB1c2VzICJ+IiBsaW5lcyBpbiBzb21lIHNpdHVhdGlvbnMuICBGaXggdGhlCisgICAgICAgICAgICBjb21wdXRhdGlvbiBvZiB0aGUgc2NyZWVuIGxpbmUgb2YgdGhlIGN1cnNvci4gIEFsc28gc2V0IHdfc2tpcGNvbAorCSAgICB0byBoYW5kbGUgdmVyeSBsb25nIGxpbmVzLgorRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL3dpbmRvdy5jCisKK1BhdGNoIDcuMC4xNTAKK1Byb2JsZW06ICAgIFdoZW4gcmVzaXppbmcgdGhlIFZpbSB3aW5kb3cgc2Nyb2xsYmluZGluZyBkb2Vzbid0IHdvcmsuIChZYWtvdgorCSAgICBMZXJuZXIpCitTb2x1dGlvbjogICBEbyBzY3JvbGxiaW5kaW5nIGluIHNldF9zaGVsbHNpemUoKS4KK0ZpbGVzOgkgICAgc3JjL3Rlcm0uYworCitQYXRjaCA3LjAuMTUxCitQcm9ibGVtOiAgICBCdXR0b25zIGluIGZpbGUgZGlhbG9nIGFyZSBub3QgYWNjb3JkaW5nIHRvIEdub21lIGd1aWRlbGluZXMuCitTb2x1dGlvbjogICBTd2FwIENhbmNlbCBhbmQgT3BlbiBidXR0b25zLiAoU3RlZmFubyBaYWNjaGlyb2xpKQorRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCisKK1BhdGNoIDcuMC4xNTIKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgbGVzc3RpZiAyLgorU29sdXRpb246ICAgRmlsbCBpbiB0aGUgZXh0ZW5zaW9uIGZpZWxkLiAoQmVuIEh1dGNoaW5ncykKK0ZpbGVzOgkgICAgc3JjL2d1aV94bWVidy5jCisKK1BhdGNoIDcuMC4xNTMKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgY3Njb3BlIGFuZCBvcGVuaW5nIHRoZSB0ZW1wIGZpbGUgZmFpbHMgVmltIGNyYXNoZXMuCisJICAgIChLYXlhIEJla2lyb2dsdSkKK1NvbHV0aW9uOiAgIENoZWNrIGZvciBOVUxMIHBvaW50ZXIgcmV0dXJuZWQgZnJvbSBtY2hfb3BlbigpLgorRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKKworUGF0Y2ggNy4wLjE1NAorUHJvYmxlbTogICAgV2hlbiAnZm9sZG5leHRtYXgnIGlzIG5lZ2F0aXZlIFZpbSBjYW4gaGFuZy4gKEphbWVzIFZlZ2EpCitTb2x1dGlvbjogICBBdm9pZCB0aGUgZm9sZCBsZXZlbCBiZWNvbWluZyBuZWdhdGl2ZS4KK0ZpbGVzOgkgICAgc3JjL2ZvbGQuYywgc3JjL3N5bnRheC5jCisKK1BhdGNoIDcuMC4xNTUKK1Byb2JsZW06ICAgIFdoZW4gZ2V0Y2hhcigpIHJldHVybnMgYSBtb3VzZSBidXR0b24gY2xpY2sgdGhlcmUgaXMgbm8gd2F5IHRvIGdldAorCSAgICB0aGUgbW91c2UgY29vcmRpbmF0ZXMuCitTb2x1dGlvbjogICBBZGQgdjptb3VzZV93aW4sIHY6bW91c2VfbG51bSBhbmQgdjptb3VzZV9jb2wuCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jLCBzcmMvdmltLmgKKworUGF0Y2ggNy4wLjE1NiAoZXh0cmEpCitQcm9ibGVtOiAgICBWaW0gZG9lc24ndCBjb21waWxlIGZvciBBbWlnYSBPUyA0LgorU29sdXRpb246ICAgVmFyaW91cyBjaGFuZ2VzIGZvciBBbWlnYSBPUzQuIChQZXRlciBCZW5ndHNzb24pCitGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgsIHNyYy9tYnl0ZS5jLCBzcmMvbWVtZmlsZS5jLCBzcmMvbWVtbGluZS5jLAorCSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX2FtaWdhLmgsIHNyYy9wdHkuYworCitQYXRjaCA3LjAuMTU3CitQcm9ibGVtOiAgICBXaGVuIGEgZnVuY3Rpb24gaXMgdXNlZCByZWN1cnNpdmVseSB0aGUgcHJvZmlsaW5nIGluZm9ybWF0aW9uIGlzCisJICAgIGludmFsaWQuIChNaWtvbGFqIE1hY2hvd3NraSkKK1NvbHV0aW9uOiAgIFB1dCB0aGUgc3RhcnQgdGltZSBvbiB0aGUgc3RhY2sgaW5zdGVhZCBvZiBpbiB0aGUgZnVuY3Rpb24uCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjE1OAorUHJvYmxlbTogICAgSW4gYSBDIGZpbGUgd2l0aCAiOnNldCBmb2xkbWV0aG9kPXN5bnRheCIsIHR5cGluZyB7PENSPiBvbiB0aGUKKwkgICAgbGFzdCBsaW5lIHJlc3VsdHMgaW4gdGhlIGN1cnNvciBiZWluZyBpbiBhIGNsb3NlZCBmb2xkLiAoR2F1dGFtCisJICAgIEl5ZXIpCitTb2x1dGlvbjogICBPcGVuIGZvbGQgYWZ0ZXIgaW5zZXJ0aW5nIGEgbmV3IGxpbmUuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjE1OQorUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhbiBJL08gZXJyb3IgaW4gdGhlIHN3YXAgZmlsZSB0aGUgY2F1c2Ugb2YgdGhlIGVycm9yCisJICAgIGNhbm5vdCBiZSBzZWVuLgorU29sdXRpb246ICAgVXNlIFBFUlJPUigpIGluc3RlYWQgb2YgRU1TRygpIHdoZXJlIHBvc3NpYmxlLgorRmlsZXM6CSAgICBzcmMvbWVtZmlsZS5jCisKK1BhdGNoIDcuMC4xNjAKK1Byb2JsZW06ICAgICI6QGEiIGVjaG9lcyB0aGUgY29tbWFuZCwgVmkgZG9lc24ndCBkbyB0aGF0LgorU29sdXRpb246ICAgU2V0IHRoZSBzaWxlbnQgZmxhZyBpbiB0aGUgdHlwZWFoZWFkIGJ1ZmZlciB0byBhdm9pZCBlY2hvaW5nIHRoZQorCSAgICBjb21tYW5kLgorRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsIHNyYy9wcm90by9vcHMucHJvCisKK1BhdGNoIDcuMC4xNjEKK1Byb2JsZW06ICAgIFdpbjMyOiBUYWIgcGFnZXMgbGluZSBwb3B1cCBtZW51IGlzbid0IHVzaW5nIHRoZSByaWdodCBlbmNvZGluZy4KKyAgICAgICAgICAgIChZb25nd2VpIFd1KQorU29sdXRpb246ICAgQ29udmVydCB0aGUgdGV4dCB3aGVuIG5lY2Vzc2FyeS4gIEFsc28gZml4ZXMgdGhlIEZpbmQvUmVwbGFjZQorCSAgICBkaWFsb2cgdGl0bGUuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQorRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCisKK1BhdGNoIDcuMC4xNjIKK1Byb2JsZW06ICAgICJ2aW0gLW8gYSBiIiB3aGVuIGZpbGUgImEiIHRyaWdnZXJzIHRoZSBBVFRFTlRJT04gZGlhbG9nLAorCSAgICBzZWxlY3RpbmcgIlF1aXQiIGV4aXRzIFZpbSBpbnN0ZWFkIG9mIGVkaXRpbmcgImIiIG9ubHkuCisJICAgIFdoZW4gZmlsZSAiYiIgdHJpZ2dlcnMgdGhlIEFUVEVOVElPTiBkaWFsb2cgc2VsZWN0aW5nICJRdWl0IiBvcgorCSAgICAiQWJvcnQiIHJlc3VsdHMgaW4gZWRpdGluZyBmaWxlICJhIiBpbiB0aGF0IHdpbmRvdy4KK1NvbHV0aW9uOiAgIFdoZW4gc2VsZWN0aW5nICJBYm9ydCIgZXhpdCBWaW0uICBXaGVuIHNlbGVjdGluZyAiUXVpdCIgY2xvc2UgdGhlCisJICAgIHdpbmRvdy4gIEFsc28gYXZvaWQgaGl0LWVudGVyIHByb21wdCB3aGVuIHNlbGVjdGluZyBBYm9ydC4KK0ZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvbWFpbi5jCisKK1BhdGNoIDcuMC4xNjMKK1Byb2JsZW06ICAgIENhbid0IHJldHJpZXZlIHRoZSBwb3NpdGlvbiBvZiBhIHNpZ24gYWZ0ZXIgaXQgd2FzIHNldC4KK1NvbHV0aW9uOiAgIEFkZCB0aGUgbmV0YmVhbnMgaW50ZXJmYWNlIGdldEFubm8gY29tbWFuZC4gKFhhdmllciBkZSBHYXllKQorRmlsZXM6CSAgICBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsIHNyYy9uZXRiZWFucy5jCisKK1BhdGNoIDcuMC4xNjQKK1Byb2JsZW06ICAgICI6cmVkaXIgQCsiIGRvZXNuJ3Qgd29yay4KK1NvbHV0aW9uOiAgIEFjY2VwdCAiQCsiIGp1c3QgbGlrZSAiQCoiLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK0ZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKKworUGF0Y2ggNy4wLjE2NQorUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1MIGF0IHRoZSBzZWFyY2ggcHJvbXB0IGFkZHMgYSAiLyIgYW5kIG90aGVyIGNoYXJhY3RlcnMKKwkgICAgd2l0aG91dCBlc2NhcGluZywgY2F1c2luZyB0aGUgcGF0dGVybiBub3QgdG8gbWF0Y2guCitTb2x1dGlvbjogICBFc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzIHdpdGggYSBiYWNrc2xhc2guCitGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCisKK1BhdGNoIDcuMC4xNjYKK1Byb2JsZW06ICAgIENyYXNoIGluIGNzY29wZSBjb2RlIHdoZW4gY29ubmVjdGlvbiBjb3VsZCBub3QgYmUgb3BlbmVkLgorCSAgICAoS2F5YSBCZWtpcm9nbHUpCitTb2x1dGlvbjogICBDaGVjayBmb3IgdGhlIGZpbGUgZGVzY3JpcHRvciB0byBiZSBOVUxMLgorRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKKworUGF0Y2ggNy4wLjE2NworUHJvYmxlbTogICAgIjpmdW5jdGlvbiIgcmVkZWZpbmluZyBhIGRpY3QgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHByb3Blcmx5LgorCSAgICAoUmljaGFyZCBFbWJlcnNvbikKK1NvbHV0aW9uOiAgIEFsbG93IGEgZnVuY3Rpb24gbmFtZSB0byBiZSBhIG51bWJlciB3aGVuIGl0J3MgYSBmdW5jdGlvbgorCSAgICByZWZlcmVuY2UuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjE2OAorUHJvYmxlbTogICAgVXNpbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgYW5kIG1lbW9yeSBsZWFrLiAoRG9taW5pcXVlIFBlbGxlKQorU29sdXRpb246ICAgVXNlIGFsbG9jX2NsZWFyKCkgaW5zdGVhZCBvZiBhbGxvYygpIGZvciB3X2xpbmVzLiAgRnJlZQorCSAgICBiX21sLm1sX3N0YWNrIGFmdGVyIHJlY292ZXJ5LgorRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jLCBzcmMvd2luZG93LmMKKworUGF0Y2ggNy4wLjE2OQorUHJvYmxlbTogICAgV2l0aCBhIFZpc3VhbCBibG9jayBzZWxlY3Rpb24sIHdpdGggdGhlIGN1cnNvciBpbiB0aGUgbGVmdCB1cHBlcgorCSAgICBjb3JuZXIsIHByZXNzaW5nICJJIiBkb2Vzbid0IHJlbW92ZSB0aGUgaGlnaGxpZ2h0aW5nLiAoR3VvcGVuZworCSAgICBXZW4pCitTb2x1dGlvbjogICBXaGVuIGNoZWNraW5nIGlmIHJlZHJhd2luZyBpcyBuZWVkZWQgYWxzbyBjaGVjayBpZiBWaXN1YWwKKwkgICAgc2VsZWN0aW9uIGlzIHN0aWxsIGFjdGl2ZS4KK0ZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCisKK1BhdGNoIDcuMC4xNzAgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IFVzaW5nICJndmltIC0tcmVtb3RlLXRhYiBmb28iIHdoZW4gZ3ZpbSBpcyBtaW5pbWl6ZWQgd2hpbGUKKwkgICAgaXQgcHJldmlvdXNseSB3YXMgbWF4aW1pemVkLCB1bi1tYXhpbWl6aW5nIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KKwkgICAgQW5kIHRoZSBsYWJlbHMgYXJlIG5vdCBkaXNwbGF5ZWQgcHJvcGVybHkgd2hlbiAnZW5jb2RpbmcnIGlzCisJICAgIHV0Zi04LgorU29sdXRpb246ICAgV2hlbiBtaW5pbWl6ZWQgY2hlY2sgZm9yIFNXX1NIT1dNSU5JTUlaRUQuICBXaGVuIHVwZGF0aW5nIHRoZSB0YWIKKwkgICAgcGFnZXMgbGluZSB1c2UgVENNX1NFVElURU1XIGluc3RlYWQgb2YgVENNX0lOU0VSVElURU1XLiAoTGl1CisJICAgIFl1YmFvKQorRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCisKK1BhdGNoIDcuMC4xNzEgKGV4dHJhKQorUHJvYmxlbTogICAgVk1TOiBBIGZpbGUgbmFtZSB3aXRoIG11bHRpcGxlIHBhdGhzIGlzIHdyaXR0ZW4gaW4gdGhlIHdyb25nIGZpbGUuCitTb2x1dGlvbjogICBHZXQgdGhlIGFjdHVhbGx5IHVzZWQgZmlsZSBuYW1lLiAoWm9sdGFuIEFycGFkZmZ5KQorCSAgICBBbHNvIGFkZCBpbmZvIHRvIHRoZSA6dmVyc2lvbiBjb21tYW5kIGFib3V0IGNvbXBpbGF0aW9uLgorRmlsZXM6CSAgICBzcmMvTWFrZV92bXMubW1zLCBzcmMvYnVmZmVyLmMsIHNyYy9vc191bml4LmMsIHNyYy92ZXJzaW9uLmMKKworUGF0Y2ggNy4wLjE3MgorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiByZWNvdmVyaW5nIGFuZCBxdWl0dGluZyBhdCB0aGUgInByZXNzLWVudGVyIiBwcm9tcHQuCitTb2x1dGlvbjogICBDaGVjayBmb3IgIm1zZ19saXN0IiB0byBiZSBOVUxMLiAoTGl1IFl1YmFvKQorRmlsZXM6CSAgICBzcmMvZXhfZXZhbC5jCisKK1BhdGNoIDcuMC4xNzMKK1Byb2JsZW06ICAgICI6Y2FsbCBmKCkuVFQoKSIgZG9lc24ndCB3b3JrLiAgKFJpY2hhcmQgRW1iZXJzb24pCitTb2x1dGlvbjogICBXaGVuIGEgZnVuY3Rpb24gcmV0dXJucyBhIERpY3Rpb25hcnkgb3IgYW5vdGhlciBjb21wb3NpdGUgY29udGludWUKKwkgICAgZXZhbHVhdGluZyB3aGF0IGZvbGxvd3MuCitGaWxlczoJICAgIHNyYy9ldmFsLmMgICAgCisKK1BhdGNoIDcuMC4xNzQKK1Byb2JsZW06ICAgICI6bWtzZXNzaW9uIiBkb2Vzbid0IHJlc3RvcmUgd2luZG93IGxheW91dCBjb3JyZWN0bHkgaW4gdGFiIHBhZ2VzCisJICAgIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgb25lLiAoWmhpYmluIEhlKQorU29sdXRpb246ICAgVXNlIHRoZSBjb3JyZWN0IHRvcGZyYW1lIGZvciBwcm9kdWNpbmcgdGhlIHdpbmRvdyBsYXlvdXQgY29tbWFuZHMuCitGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCisKK1BhdGNoIDcuMC4xNzUKK1Byb2JsZW06ICAgIFRoZSByZXN1bHQgb2YgdHIoKSBpcyBtaXNzaW5nIHRoZSB0ZXJtaW5hdGluZyBOVUwuIChJbmdvIEthcmthdCkKK1NvbHV0aW9uOiAgIEFkZCB0aGUgTlVMLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4xNzYKK1Byb2JsZW06ICAgICI6ZW1lbnUiIGlzbid0IGV4ZWN1dGVkIGRpcmVjdGx5LCBjYXVzaW5nIHRoZSBlbmNyeXB0aW9uIGtleQorCSAgICBwcm9tcHQgdG8gZmFpbC4gKExpZmUgSmF6emVyKQorU29sdXRpb246ICAgRml4IHdyb25nICNpZmRlZi4KK0ZpbGVzOgkgICAgc3JjL21lbnUuYworCitQYXRjaCA3LjAuMTc3CitQcm9ibGVtOiAgICBXaGVuIHRoZSBwcmVzcy1lbnRlciBwcm9tcHQgZ2V0cyBhIGNoYXJhY3RlciBmcm9tIGEgbm9uLXJlbWFwcGFibGUKKwkgICAgbWFwcGluZywgaXQncyBwdXQgYmFjayBpbiB0aGUgdHlwZWFoZWFkIGJ1ZmZlciBhcyByZW1hcHBhYmxlLAorCSAgICB3aGljaCBtYXkgY2F1c2UgYW4gZW5kbGVzcyBsb29wLgorU29sdXRpb246ICAgUmVzdG9yZSB0aGUgbm9uLXJlbWFwcGFibGUgZmxhZyBhbmQgdGhlIHNpbGVudCBmbGFnIHdoZW4gcHV0dGluZyBhCisJICAgIGNoYXIgYmFjayBpbiB0aGUgdHlwZWFoZWFkIGJ1ZmZlci4KK0ZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL21lc3NhZ2UuYywgc3JjL25vcm1hbC5jCisKK1BhdGNoIDcuMC4xNzgKK1Byb2JsZW06ICAgIFdoZW4gJ2VuYycgaXMgInV0Zi04IiBhbmQgJ2lnbm9yZWNhc2UnIGlzIHNldCB0aGUgcmVzdWx0IG9mICI6ZWNobworCSAgICAoIlx4ZTQiID09ICJceGU0IikiIHZhcmllcy4KK1NvbHV0aW9uOiAgIEluIG1iX3N0cm5pY21wKCkgYXZvaWQgbG9va2luZyBwYXN0IE5VTCBieXRlcy4KK0ZpbGVzOgkgICAgc3JjL21ieXRlLmMKKworUGF0Y2ggNy4wLjE3OQorUHJvYmxlbTogICAgVXNpbmcgIjpyZWNvdmVyIiBvciAidmltIC1yIiB3aXRob3V0IGEgc3dhcGZpbGUgY3Jhc2hlcyBWaW0uCitTb2x1dGlvbjogICBDaGVjayBmb3IgImJ1ZiIgdG8gYmUgdW5lcXVhbCBOVUxMLiAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCisKK1BhdGNoIDcuMC4xODAgKGV4dHJhLCBhZnRlciA3LjAuMTcxKQorUHJvYmxlbTogICAgVk1TOiBidWlsZCBmYWlsZWQuICBQcm9ibGVtIHdpdGggc3dhcGZpbGVzLgorU29sdXRpb246ICAgQWRkICJjb21waWxlZF9hcmNoIi4gIEFsd2F5cyBleHBhbmQgcGF0aCBhbmQgcGFzcyBpdCB0bworCSAgICBidWZfbW9kbmFtZSgpLiAgKFpvbHRhbiBBcnBhZGZmeSkKK0ZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL21lbWxpbmUuYywgc3JjL29zX3VuaXguYywgcnVudGltZS9tZW51LnZpbQorCitQYXRjaCA3LjAuMTgxCitQcm9ibGVtOiAgICBXaGVuIHJlbG9hZGluZyBhIGZpbGUgdGhhdCBzdGFydHMgd2l0aCBhbiBlbXB0eSBsaW5lLCB0aGUgcmVsb2FkZWQKKwkgICAgYnVmZmVyIGhhcyBhbiBleHRyYSBlbXB0eSBsaW5lIGF0IHRoZSBlbmQuIChNb3R0eSBMZW50eml0emt5KQorU29sdXRpb246ICAgRGVsZXRlIGFsbCBsaW5lcywgZG9uJ3QgdXNlIGJ1ZmVtcHR5KCkuCitGaWxlczoJICAgIHNyYy9maWxlaW8uYworCitQYXRjaCA3LjAuMTgyCitQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgbWl4IG9mIHVuZG8gYW5kICJnLSIgaXQgbWF5IG5vIGxvbmdlciBiZSBwb3NzaWJsZSB0bworCSAgICBnbyB0byBldmVyeSBwb2ludCBpbiB0aGUgdW5kbyB0cmVlLiAgKEFuZHkgV29rdWxhKQorU29sdXRpb246ICAgQ29ycmVjdGx5IHVwZGF0ZSBwb2ludGVycyBpbiB0aGUgdW5kbyB0cmVlLgorRmlsZXM6CSAgICBzcmMvdW5kby5jCisKK1BhdGNoIDcuMC4xODMKK1Byb2JsZW06ICAgIENyYXNoIGluICI6bGV0IiB3aGVuIHJlZGlyZWN0aW5nIHRvIGEgdmFyaWFibGUgdGhhdCdzIGJlaW5nCisJICAgIGRpc3BsYXllZC4gKFRob21hcyBMaW5rKQorU29sdXRpb246ICAgV2hlbiByZWRpcmVjdGluZyB0byBhIHZhcmlhYmxlIG9ubHkgZG8gdGhlIGFzc2lnbm1lbnQgd2hlbgorCSAgICBzdG9wcGluZyByZWRpcmVjdGlvbiB0byBhdm9pZCB0aGF0IHNldHRpbmcgdGhlIHZhcmlhYmxlIGNhdXNlcyBhCisJICAgIGZyZWVkIHN0cmluZyB0byBiZSBhY2Nlc3NlZC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMTg0CitQcm9ibGVtOiAgICBXaGVuIHRoZSBjc2NvcGUgcHJvZ3JhbSBpcyBjYWxsZWQgIm1sY3Njb3BlIiB0aGUgQ3Njb3BlIGludGVyZmFjZQorCSAgICBkb2Vzbid0IHdvcmsuCitTb2x1dGlvbjogICBBY2NlcHQgIlxTKmNzY29wZToiIGluc3RlYWQgb2YgImNzY29wZToiLiAoRnJvZGFrIEQuIEJha3NpaykKK0ZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jCisKK1BhdGNoIDcuMC4xODUKK1Byb2JsZW06ICAgIE11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiBhIG1lc3NhZ2UgYXJlIGRpc3BsYXllZCB3aXRoIGF0dHJpYnV0ZXMKKwkgICAgZnJvbSB3aGF0IGNvbWVzIGJlZm9yZSBpdC4KK1NvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgYXR0cmlidXRlcyBmb3IgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4gIERvIHVzZQorCSAgICBhdHRyaWJ1dGVzIGZvciBzcGVjaWFsIGNoYXJhY3RlcnMuIChZdWtpaGlybyBOYWthZGFpcmEpCitGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKKworUGF0Y2ggNy4wLjE4NgorUHJvYmxlbTogICAgR2V0IGFuIG1sX2dldCBlcnJvciB3aGVuICdlbmNvZGluZycgaXMgInV0Zi04IiBhbmQgc2VhcmNoaW5nIGZvcgorCSAgICAiL1xfcyovZSIgaW4gYW4gZW1wdHkgYnVmZmVyLiAgKEFuZHJldyBNYXlrb3YpCitTb2x1dGlvbjogICBEb24ndCB0cnkgZ2V0dGluZyB0aGUgbGluZSBqdXN0IGJlbG93IHRoZSBsYXN0IGxpbmUuCitGaWxlczoJICAgIHNyYy9zZWFyY2guYworCitQYXRjaCA3LjAuMTg3CitQcm9ibGVtOiAgICBDYW4ndCBzb3VyY2UgYSByZW1vdGUgc2NyaXB0IHByb3Blcmx5LgorU29sdXRpb246ICAgQWRkIHRoZSBTb3VyY2VDbWQgZXZlbnQuIChDaGFybGVzIENhbXBiZWxsKQorRmlsZXM6CSAgICBydW50aW1lL2RvYy9hdXRvY21kLnR4dCwgc3JjL2V4X2NtZHMyLmMsIHNyYy9maWxlaW8uYywgc3JjL3ZpbS5oCisKK1BhdGNoIDcuMC4xODggKGFmdGVyIDcuMC4xODYpCitQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB3cm9uZyBwb2ludGVyIHR5cGUuCitTb2x1dGlvbjogICBBZGQgYSB0eXBlIGNhc3QuCitGaWxlczoJICAgIHNyYy9zZWFyY2guYworCitQYXRjaCA3LjAuMTg5CitQcm9ibGVtOiAgICBUcmFuc2xhdGVkIG1lc3NhZ2UgYWJvdXQgZmluZGluZyBtYXRjaGVzIGlzIHRydW5jYXRlZC4gKFl1a2loaXJvCisJICAgIE5ha2FkYWlyYSkKK1NvbHV0aW9uOiAgIEVubGFyZ2UgdGhlIGJ1ZmZlci4gIEFsc28gdXNlIHZpbV9zbnByaW50ZigpLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4xOTAKK1Byb2JsZW06ICAgICJzeW50YXggc3BlbGwgZGVmYXVsdCIgcmVzdWx0cyBpbiBhbiBlcnJvciBtZXNzYWdlLgorU29sdXRpb246ICAgQ2hhbmdlIDQgdG8gNyBmb3IgU1RSTklDTVAoKS4gKFJhdWwgTnVuZXogZGUgQXJlbmFzIENvcm9uYWRvKQorRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKKworUGF0Y2ggNy4wLjE5MQorUHJvYmxlbTogICAgVGhlIGl0ZW1zIHVzZWQgYnkgZ2V0cWZsaXN0KCkgYW5kIHNldHFmbGlzdCgpIGRvbid0IG1hdGNoLgorU29sdXRpb246ICAgU3VwcG9ydCB0aGUgImJ1Zm51bSIgaXRlbSBmb3Igc2V0cWZsaXN0KCkuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQorRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL3F1aWNrZml4LmMKKworUGF0Y2ggNy4wLjE5MgorUHJvYmxlbTogICAgV2hlbiAnc3dhcGZpbGUnIGlzIHN3aXRjaGVkIG9mZiBpbiBhbiBlbXB0eSBmaWxlIGl0IGlzIHBvc3NpYmxlCisJICAgIHRoYXQgbm90IGFsbCBibG9ja3MgYXJlIGxvYWRlZCBpbnRvIG1lbW9yeSwgY2F1c2luZyBtbF9nZXQgZXJyb3JzCisJICAgIGxhdGVyLgorU29sdXRpb246ICAgUmVuYW1lICJkb250X3JlbGVhc2UiIHRvICJtZl9kb250X3JlbGVhc2UiIGFuZCBhbHNvIHVzZSBpdCB0bworCSAgICBhdm9pZCB1c2luZyB0aGUgY2FjaGVkIGxpbmUgYW5kIGxvY2tlZCBibG9jay4gCitGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9tZW1maWxlLmMsIHNyYy9tZW1saW5lLmMKKworUGF0Y2ggNy4wLjE5MworUHJvYmxlbTogICAgVXNpbmcgLS1yZW1vdGUgb3IgLS1yZW1vdGUtdGFiIHdpdGggYW4gYXJndW1lbnQgdGhhdCBtYXRjaGVzCisJICAgICd3aWxkaWdub3JlJyBjYXVzZXMgYSBjcmFzaC4KK1NvbHV0aW9uOiAgIENoZWNrIHRoZSBhcmd1bWVudCBjb3VudCBiZWZvcmUgdXNpbmcgQVJHTElTVFswXS4KK0ZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYworCitQYXRjaCA3LjAuMTk0CitQcm9ibGVtOiAgICBPbmNlIGFuIG1sX2dldCBlcnJvciBpcyBnaXZlbiByZWRyYXdpbmcgcGFydCBvZiB0aGUgc2NyZWVuIG1heQorCSAgICBjYXVzZSBpdCBhZ2FpbiwgcmVzdWx0aW5nIGluIGFuIGVuZGxlc3MgbG9vcC4KK1NvbHV0aW9uOiAgIERvbid0IGdpdmUgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIGEgcmVjdXJzaXZlIGNhbGwuCitGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKKworUGF0Y2ggNy4wLjE5NQorUHJvYmxlbTogICAgV2hlbiBhIGJ1ZmZlciBpcyBtb2RpZmllZCBhbmQgJ2F1dG93cml0ZWFsbCcgaXMgc2V0LCAiOnF1aXQiCisJICAgIHJlc3VsdHMgaW4gYW4gZW5kbGVzcyBsb29wIHdoZW4gdGhlcmUgaXMgYSBjb252ZXJzaW9uIGVycm9yIHdoaWxlCisJICAgIHdyaXRpbmcuIChOaWtvbGFpIFdlaWJ1bGwpCitTb2x1dGlvbjogICBNYWtlIGF1dG93cml0ZSgpIHJldHVybiBGQUlMIGlmIHRoZSBidWZmZXIgaXMgc3RpbGwgY2hhbmdlZCBhZnRlcgorCSAgICB3cml0aW5nIGl0LgorCSAgICAvKiBwdXQgdGhlIGN1cnNvciBvbiB0aGUgbGFzdCBjaGFyLCBmb3IgJ3R3JyBmb3JtYXR0aW5nICovCitGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCisKK1BhdGNoIDcuMC4xOTYKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgIjp2ZXJ0IGJhbGwiIHRoZSBjb21wdXRhdGlvbiBvZiB0aGUgbW91c2UgcG9pbnRlcgorCSAgICBwb3NpdGlvbiBtYXkgYmUgb2ZmIGJ5IG9uZSBjb2x1bW4uIChTdGVmYW4gS2FybHNzb24pCitTb2x1dGlvbjogICBSZWNvbXB1dGUgdGhlIGZyYW1lIHdpZHRoIHdoZW4gbW92aW5nIHRoZSB2ZXJ0aWNhbCBzZXBhcmF0b3IgZnJvbQorCSAgICBvbmUgd2luZG93IHRvIGFub3RoZXIuCitGaWxlczoJICAgIHNyYy93aW5kb3cuYworCitQYXRjaCA3LjAuMTk3IChleHRyYSkKK1Byb2JsZW06ICAgIFdpbjMyOiBDb21waWxpbmcgd2l0aCBFWElURlJFRSBkb2Vzbid0IHdvcmsuCitTb2x1dGlvbjogICBBZGp1c3QgYSBmZXcgI2lmZGVmcy4gKEFsZXhlaSBBbGV4YW5kcm9mKQorRmlsZXM6CSAgICBzcmMvbWlzYzIuYywgc3JjL29zX21zd2luLmMKKworUGF0Y2ggNy4wLjE5OCAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogQ29tcGlsZXIgd2FybmluZ3MuICBObyBuZWVkIHRvIGdlbmVyYXRlIGd2aW0uZXhlLm1uZi4KK1NvbHV0aW9uOiAgIEFkZCB0eXBlIGNhc3RzLiAgVXNlICIqIiBmb3IgcHJvY2Vzc29yQXJjaGl0ZWN0dXJlLiAoR2VvcmdlIFJlaWxseSkKK0ZpbGVzOgkgICAgc3JjL01ha2VfbXZjLm1haywgc3JjL2V2YWwuYywgc3JjL2d2aW0uZXhlLm1uZiwgc3JjL21pc2MyLmMKKworUGF0Y2ggNy4wLjE5OQorUHJvYmxlbTogICAgV2hlbiB1c2luZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdGhlIGNvbWJpbmF0aW9uIG9mIGNvbXBsZXRpb24gYW5kCisJICAgIGZvcm1hdHRpbmcgbWF5IHJlc3VsdCBpbiBhIHdyb25nIGN1cnNvciBwb3NpdGlvbi4KK1NvbHV0aW9uOiAgIERvbid0IGRlY3JlbWVudCB0aGUgY3Vyc29yIGNvbHVtbiwgdXNlIGRlY19jdXJzb3IoKS4gKFl1a2loaXJvCisJICAgIE5ha2FkYWlyYSkgIEFsc28gY2hlY2sgZm9yIHRoZSBjb2x1bW4gdG8gYmUgemVyby4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMjAwCitQcm9ibGVtOiAgICBNZW1vcnkgbGVha3Mgd2hlbiBvdXQgb2YgbWVtb3J5LgorU29sdXRpb246ICAgRnJlZSB0aGUgbWVtb3J5LgorRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZGlmZi5jCisKK1BhdGNoIDcuMC4yMDEKK1Byb2JsZW06ICAgIE1lc3NhZ2UgZm9yICI6ZGlmZnB1dCIgYWJvdXQgYnVmZmVyIG5vdCBiZWluZyBpbiBkaWZmIG1vZGUgbWF5IGJlCisJICAgIHdyb25nLgorU29sdXRpb246ICAgQ2hlY2sgZm9yIGJ1ZmZlciBpbiBkaWZmIG1vZGUgYnV0IG5vdCBtb2RpZmlhYmxlLgorRmlsZXM6CSAgICBzcmMvZGlmZi5jCisKK1BhdGNoIDcuMC4yMDIKK1Byb2JsZW06ICAgIFByb2JsZW1zIG9uIFRhbmRlbSBzeXN0ZW1zIHdoaWxlIGNvbXBpbGluZyBhbmQgYXQgcnVudGltZS4KK1NvbHV0aW9uOiAgIFJlY29nbml6ZSByb290IHVpZCBpcyA2NTUzNS4gIENoZWNrIHNlbGVjdCgpIHJldHVybiB2YWx1ZSBmb3IgaXQKKwkgICAgbm90IGJlaW5nIHN1cHBvcnRlZC4gIEF2b2lkIHdyb25nIGZ1bmN0aW9uIHByb3RvdHlwZXMuICBNZW50aW9uCisJICAgIHVzZSBvZiAtbGZsb3NzLiAgKE1hdHRoZXcgV29laGxrZSkKK0ZpbGVzOgkgICAgc3JjL01ha2VmaWxlLCBzcmMvZXhfY21kcy5jLCBzcmMvZmlsZWlvLmMsIHNyYy9tYWluLmMsCisJICAgIHNyYy9vc2RlZjEuaC5pbiwgc3JjL29zZGVmMi5oLmluLCBzcmMvb3NfdW5peC5jLCBzcmMvcHR5LmMsCisJICAgIHNyYy92aW0uaAorCitQYXRjaCA3LjAuMjAzCitQcm9ibGVtOiAgICAweDgwIGNoYXJhY3RlcnMgaW4gYSByZWdpc3RlciBhcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5IGZvciB0aGUKKwkgICAgIkAiIGNvbW1hbmQuCitTb2x1dGlvbjogICBFc2NhcGUgQ1NJIGFuZCAweDgwIGNoYXJhY3RlcnMuIChZdWtpaGlybyBOYWthZGFpcmEpCitGaWxlczoJICAgIHNyYy9vcHMuYworCitQYXRjaCA3LjAuMjA0CitQcm9ibGVtOiAgICBDc2NvcGU6IFBhcnNpbmcgbWF0Y2hlcyBmb3IgbGlzdGluZyBpc24ndCBkb25lIHByb3Blcmx5LgorU29sdXRpb246ICAgQ2hlY2sgZm9yIGxpbmUgbnVtYmVyIGJlaW5nIGZvdW5kLiAoWXUgWmhhbykKK0ZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jCisKK1BhdGNoIDcuMC4yMDUgKGFmdGVyIDcuMC4yMDMpCitQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlLgorU29sdXRpb246ICAgQWx3YXlzIGluY2x1ZGUgdGhlIHZpbV9zdHJzYXZlX2VzY2FwZV9jc2kgZnVuY3Rpb24uCitGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKKworUGF0Y2ggNy4wLjIwNiAoYWZ0ZXIgNy4wLjA1OCkKK1Byb2JsZW06ICAgIFNvbWUgY2hhcmFjdGVycyBvZiB0aGUgImdiMTgwMzAiIGVuY29kaW5nIGFyZSBub3QgaGFuZGxlZAorCSAgICBwcm9wZXJseS4KK1NvbHV0aW9uOiAgIERvIG5vdCB1c2UgImNwOTM2IiBhcyBhbiBhbGlhcyBmb3IgImdiMTgwMzAiIGVuY29kaW5nLiAgSW5zdGVhZAorCSAgICBpbml0aWFsaXplICdlbmNvZGluZycgdG8gImNwOTM2Ii4KK0ZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9vcHRpb24uYworCitQYXRjaCA3LjAuMjA3CitQcm9ibGVtOiAgICBBZnRlciBwYXRjaCAyLjAuMjAzIENTSSBhbmQgS19TUEVDSUFMIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQgd2hlbgorCSAgICByZWNvcmRlZCBhbmQgdGhlbiBhZ2FpbiB3aGVuIHRoZSByZWdpc3RlciBpcyBleGVjdXRlZC4KK1NvbHV0aW9uOiAgIFJlbW92ZSBlc2NhcGluZyBiZWZvcmUgcHV0dGluZyB0aGUgcmVjb3JkZWQgY2hhcmFjdGVycyBpbiBhCisJICAgIHJlZ2lzdGVyLiAgKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vZ2V0Y2hhci5wcm8KKworUGF0Y2ggNy4wLjIwOCAoYWZ0ZXIgNy4wLjE3MSBhbmQgNy4wLjE4MCkKK1Byb2JsZW06ICAgIFZNUzogY2hhbmdlcyB0byBwYXRoIGhhbmRsaW5nIGNhdXNlIG1vcmUgdHJvdWJsZSB0aGFuIHRoZXkgc29sdmUuCitTb2x1dGlvbjogICBSZXZlcnQgY2hhbmdlcy4KK0ZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvbWVtbGluZS5jLCBzcmMvb3NfdW5peC5jCisKK1BhdGNoIDcuMC4yMDkKK1Byb2JsZW06ICAgIFdoZW4gcmVwbGFjaW5nIGEgbGluZSB0aHJvdWdoIFB5dGhvbiB0aGUgY3Vyc29yIG1heSBlbmQgdXAgYmV5b25kCisJICAgIHRoZSBlbmQgb2YgdGhlIGxpbmUuCitTb2x1dGlvbjogICBDaGVjayB0aGUgY3Vyc29yIGNvbHVtbiBhZnRlciByZXBsYWNpbmcgdGhlIGxpbmUuCitGaWxlczoJICAgIHNyYy9pZl9weXRob24uYworCitQYXRjaCA3LjAuMjEwCitQcm9ibGVtOiAgICAiOmNidWZmZXIiIGFuZCAiOmxidWZmZXIiIGFsd2F5cyBmYWlsIHdoZW4gdGhlIGJ1ZmZlciBpcyBtb2RpZmllZC4KKwkgICAgKEdhcnkgSm9obnNvbikKK1NvbHV0aW9uOiAgIFN1cHBvcnQgYWRkaW5nIGEgIS4gKFllZ2FwcGFuIExha3NobWFuYW4pCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3F1aWNrZml4LnR4dCwgc3JjL2V4X2NtZHMuaAorCitQYXRjaCA3LjAuMjExCitQcm9ibGVtOiAgICBXaXRoICI6c2V0IGNpbmRlbnQgbm9haSBicz0wIiB1c2luZyBDVFJMLVUgaW4gSW5zZXJ0IG1vZGUgd2lsbAorCSAgICBkZWxldGUgYXV0by1pbmRlbnQuICBBZnRlciAiOnNldCBhaSIgaXQgZG9lc24ndC4KK1NvbHV0aW9uOiAgIEFsc28gY2hlY2sgJ2NpbmRlbnQnIGJlaW5nIHNldC4gKFJ5YW4gTG9ydGllKQorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4yMTIKK1Byb2JsZW06ICAgIFRoZSBHVUkgY2FuJ3QgYmUgdGVybWluYXRlZCB3aXRoIFNJR1RFUk0uIChNYXJrIExvZ2FuKQorU29sdXRpb246ICAgVXNlIHRoZSBzaWduYWwgcHJvdGVjdGlvbiBpbiB0aGUgR1VJIGFzIGluIHRoZSBjb25zb2xlLCBhbGxvdworCSAgICBzaWduYWxzIHdoZW4gd2FpdGluZyBmb3IgMTAwIG1zZWMgb3IgbG9uZ2VyLgorRmlsZXM6CSAgICBzcmMvdWkuYworCitQYXRjaCA3LjAuMjEzCitQcm9ibGVtOiAgICBXaGVuICdzcGVsbGZpbGUnIGhhcyB0d28gcmVnaW9ucyB0aGF0IHVzZSB0aGUgc2FtZSBzb3VuZCBmb2xkaW5nCisJICAgIHVzaW5nICJ6PSIgd2lsbCBjYXVzZSBtZW1vcnkgdG8gYmUgZnJlZWQgdHdpY2UuIChNYXJrIFdvb2R3YXJkKQorU29sdXRpb246ICAgQ2xlYXIgdGhlIGhhc2h0YWJsZSBwcm9wZXJseSBzbyB0aGF0IHRoZSBpdGVtcyBhcmUgb25seSBmcmVlZCBvbmNlLgorRmlsZXM6CSAgICBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMjE0CitQcm9ibGVtOiAgICBXaGVuIHVzaW5nIDxmLWFyZ3M+IGluIGEgdXNlciBjb21tYW5kIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGhhdmUgYW4KKwkgICAgYXJndW1lbnQgZW5kIGluICdcICcuCitTb2x1dGlvbjogICBDaGFuZ2UgdGhlIGhhbmRsaW5nIG9mIGJhY2tzbGFzaGVzLiAoWWFrb3YgTGVybmVyKQorRmlsZXM6CSAgICBydW50aW1lL2RvYy9tYXAudHh0LCBzcmMvZXhfZG9jbWQuYworCitQYXRjaCA3LjAuMjE1IChleHRyYSkKK1Byb2JsZW06ICAgIE1hYzogU2Nyb2xsYmFyIHNpemUgaXNuJ3Qgc2V0LiAgQ29udGV4dCBtZW51IGhhcyBkaXNhYmxlZCB1c2VsZXNzCisJICAgIEhlbHAgZW50cnkuICBDYWxsIHRvIE1vcmVNYXN0ZXJQb2ludGVycygpIGlzIGlnbm9yZWQuCitTb2x1dGlvbjogICBDYWxsIFNldENvbnRyb2xWaWV3U2l6ZSgpIGluIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl90aHVtYigpLiAgVXNlCisJICAgIGtDTUhlbHBJdGVtUmVtb3ZlSGVscCBmb3IgQ29udGV4dHVhbE1lbnVTZWxlY3QoKS4gIFJlbW92ZSBjYWxsIHRvCisJICAgIE1vcmVNYXN0ZXJQb2ludGVycygpLiAoTmljb2xhcyBXZWJlcikKK0ZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYworCitQYXRjaCA3LjAuMjE2CitQcm9ibGVtOiAgICAiOnRhYiB3aW5jbWQgXSIgZG9lcyBub3Qgb3BlbiBhIHRhYiBwYWdlLiAoVG9ueSBNZWNoZWx5bmNrKQorU29sdXRpb246ICAgQ29weSB0aGUgY21kbW9kLnRhYiB2YWx1ZSB0byBwb3N0cG9uZWRfc3BsaXRfdGFiIGFuZCB1c2UgaXQuCitGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9leF9kb2NtZC5jLCBzcmMvaWZfY3Njb3BlLmMsIHNyYy93aW5kb3cuYworCitQYXRjaCA3LjAuMjE3CitQcm9ibGVtOiAgICBUaGlzIGhhbmdzIHdoZW4gcHJlc3NpbmcgIm4iOiAiOiVzL1xuLyxcci9nYyIuIChPcmkgQXZ0YWxpb24pCitTb2x1dGlvbjogICBTZXQgInNraXBfbWF0Y2giIHRvIGFkdmFuY2UgdG8gdGhlIG5leHQgbGluZS4KK0ZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYworCitQYXRjaCA3LjAuMjE4CitQcm9ibGVtOiAgICAiJUIiIGluICdzdGF0dXNsaW5lJyBhbHdheXMgc2hvd3MgemVybyBpbiBJbnNlcnQgbW9kZS4gKERlcnZpc2hEKQorU29sdXRpb246ICAgUmVtb3ZlIHRoZSBleGNlcHRpb24gZm9yIEluc2VydCBtb2RlLCBjaGVjayB0aGUgY29sdW1uIGZvciBiZWluZworCSAgICB2YWxpZCBpbnN0ZWFkLgorRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKKworUGF0Y2ggNy4wLjIxOQorUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgJ2VkaXRleGlzdGluZy52aW0nIHNjcmlwdCBhbmQgYSBmaWxlIGlzIGJlaW5nCisJICAgIGVkaXRlZCBpbiBhbm90aGVyIHRhYiBwYWdlIHRoZSB3aW5kb3cgaXMgc3BsaXQuICBUaGUgIisxMjMiCisJICAgIGFyZ3VtZW50IGlzIG5vdCB1c2VkLgorU29sdXRpb246ICAgTWFrZSB0aGUgdGFiIHBhZ2Ugd2l0aCB0aGUgZmlsZSB0aGUgY3VycmVudCB0YWIgcGFnZS4gIFNldAorCSAgICB2OnN3YXBjb21tYW5kIHdoZW4gc3RhcnRpbmcgdXAgdG8gdGhlIGZpcnN0ICIrMTIzIiBvciAiLWMiIGNvbW1hbmQKKwkgICAgbGluZSBhcmd1bWVudC4KK0ZpbGVzOgkgICAgcnVudGltZS9tYWNyb3MvZWRpdGV4aXN0aW5nLnZpbSwgc3JjL21haW4uYworCitQYXRjaCA3LjAuMjIwCitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHVzaW5nIHdpbm5yKCcjJykgaW4gYSBuZXcgdGFiIHBhZ2UuIChBbmR5IFdva3VsYSkKK1NvbHV0aW9uOiAgIENoZWNrIGZvciBub3QgZmluZGluZyB0aGUgd2luZG93LgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4yMjEKK1Byb2JsZW06ICAgIGZpbmRkaXIoKSB1c2VzICdwYXRoJyBieSBkZWZhdWx0LCB3aGVyZSAiLiIgbWVhbnMgcmVsYXRpdmUgdG8gdGhlCisJICAgIGN1cnJlbnQgZmlsZS4gIEJ1dCBpdCB3b3JrcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuCisJICAgIChUeWUgWmRyb2pld3NraSkKK1NvbHV0aW9uOiAgIEFkZCB0aGUgY3VycmVudCBidWZmZXIgbmFtZSB0byBmaW5kX2ZpbGVfaW5fcGF0aF9vcHRpb24oKSBmb3IgdGhlCisJICAgIHJlbGF0aXZlIGZpbGUgbmFtZS4KK0ZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjIyMgorUHJvYmxlbTogICAgUGVybCBpbmRlbnRpbmcgdXNpbmcgJ2NpbmRlbnQnIHdvcmtzIGFsbW9zdCByaWdodC4KK1NvbHV0aW9uOiAgIFJlY29nbml6ZSAnIycgdG8gc3RhcnQgYSBjb21tZW50LiAoQWxleCBNYW5vdXNzYWtpcykgIEFkZGVkICcjJworCSAgICBmbGFnIGluICdjaW5vcHRpb25zJy4KK0ZpbGVzOgkgICAgcnVudGltZS9kb2MvaW5kZW50LnR4dCwgc3JjL21pc2MxLmMKKworUGF0Y2ggNy4wLjIyMworUHJvYmxlbTogICAgVW5wcmludGFibGUgY2hhcmFjdGVycyBpbiBjb21wbGV0aW9uIHRleHQgbWVzcyB1cCB0aGUgcG9wdXAgbWVudS4KKwkgICAgKEdvbWJhdWx0IERhbWllbikKK1NvbHV0aW9uOiAgIFVzZSBzdHJ0cmFucygpIHRvIG1ha2UgdGhlIHRleHQgcHJpbnRhYmxlLgorRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvcG9wdXBtbnUuYworCitQYXRjaCA3LjAuMjI0CitQcm9ibGVtOiAgICBXaGVuIGV4cGFuZGluZyAiIyMiIHNwYWNlcyBhcmUgZXNjYXBlZCB0d2ljZS4gIChQYXZvbCBKdWhhcykKK1NvbHV0aW9uOiAgIERvbid0IGVzY2FwZSB0aGUgc3BhY2VzIHRoYXQgc2VwYXJhdGUgYXJndW1lbnRzLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL3Byb3RvL2V4X2RvY21kLnBybworCitQYXRjaCA3LjAuMjI1CitQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHNldGxpbmUoKSBpbiBhbiBJbnNlcnRFbnRlciBhdXRvY29tbWFuZCBhbmQgZG9pbmcgIkEiCisJICAgIHRoZSBjdXJzb3IgZW5kcyB1cCBvbiB0aGUgbGFzdCBieXRlIGluIHRoZSBsaW5lLiAoWXVraWhpcm8KKwkgICAgTmFrYWRhaXJhKQorU29sdXRpb246ICAgT25seSBhZGp1c3QgdGhlIGNvbHVtbiB3aGVuIHVzaW5nIHNldGxpbmUoKSBmb3IgdGhlIGN1cnNvciBsaW5lLgorCSAgICBNb3ZlIGl0IGJhY2sgdG8gdGhlIGhlYWQgYnl0ZSBpZiBuZWNlc3NhcnkuCitGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9taXNjMi5jCisKK1BhdGNoIDcuMC4yMjYKK1Byb2JsZW06ICAgIERpc3BsYXkgZmxpY2tlcmluZyB3aGVuIHVwZGF0aW5nIHNpZ25zIHRocm91Z2ggdGhlIG5ldGJlYW5zCisJICAgIGludGVyZmFjZS4gKFhhdmllciBkZSBHYXllKQorU29sdXRpb246ICAgUmVtb3ZlIHRoZSByZWRyYXdfbGF0ZXIoQ0xFQVIpIGNhbGwuCitGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCisKK1BhdGNoIDcuMC4yMjcKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gY2xvc2luZyBhIHdpbmRvdyBpbiB0aGUgR1VJLiAoQ2hhcmxlcyBDYW1wYmVsbCkKK1NvbHV0aW9uOiAgIERvbid0IGNhbGwgb3V0X2ZsdXNoKCkgZnJvbSB3aW5fZnJlZSgpLgorRmlsZXM6CSAgICBzcmMvd2luZG93LmMKKworUGF0Y2ggNy4wLjIyOAorUHJvYmxlbTogICAgQ3lnd2luOiBwcm9ibGVtIHdpdGggc3ltbGluayB0byBET1Mgc3R5bGUgcGF0aC4KK1NvbHV0aW9uOiAgIEludm9rZSBjeWd3aW5fY29udl90b19wb3NpeF9wYXRoKCkuIChMdWNhIE1hc2luaSkKK0ZpbGVzOgkgICAgc3JjL29zX3VuaXguYworCitQYXRjaCA3LjAuMjI5CitQcm9ibGVtOiAgICBXaGVuICdwYXN0ZXRvZ2dsZScgc3RhcnRzIHdpdGggRXNjIHRoZW4gcHJlc3NpbmcgRXNjIGluIEluc2VydAorCSAgICBtb2RlIHdpbGwgbm90IHRpbWUgb3V0LiAoSmVmZmVyeSBTbWFsbCkKK1NvbHV0aW9uOiAgIFVzZSBLTF9QQVJUX0tFWSBpbnN0ZWFkIG9mIEtMX1BBUlRfTUFQLCBzbyB0aGF0ICd0dGltZW91dCcgYXBwbGllcworCSAgICB0byB0aGUgJ3Bhc3RldG9nZ2xlJyBrZXkuCitGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKKworUGF0Y2ggNy4wLjIzMAorUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgIjpsY2QiIGEgc2NyaXB0IGRvZXNuJ3Qga25vdyBob3cgdG8gcmVzdG9yZSB0aGUKKwkgICAgY3VycmVudCBkaXJlY3RvcnkuCitTb2x1dGlvbjogICBBZGQgdGhlIGhhc2xvY2FsZGlyKCkgZnVuY3Rpb24uIChCb2IgSGllc3RhbmQpCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3Vzcl80MS50eHQsIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4yMzEKK1Byb2JsZW06ICAgIFdoZW4gcmVjb3ZlcmluZyBmcm9tIGEgc3dhcCBmaWxlIHRoZSBwYWdlIHNpemUgaXMgbGlrZWx5IHRvIGJlCisJICAgIGRpZmZlcmVudCBmcm9tIHRoZSBtaW5pbXVtLiAgVGhlIGJsb2NrIHVzZWQgZm9yIHRoZSBmaXJzdCBwYWdlCisJICAgIHRoZW4gaGFzIGEgYnVmZmVyIG9mIHRoZSB3cm9uZyBzaXplLCBjYXVzaW5nIGEgY3Jhc2ggd2hlbiBpdCdzCisJICAgIHJldXNlZCBsYXRlci4gIChaZXBoYW5pYWggSHVsbCkKK1NvbHV0aW9uOiAgIFJlYWxsb2NhdGUgdGhlIGJ1ZmZlciB3aGVuIHRoZSBwYWdlIHNpemUgY2hhbmdlcy4gIEFsc28gY2hlY2sgdGhhdAorCSAgICB0aGUgcGFnZSBzaXplIGlzIGF0IGxlYXN0IHRoZSBtaW5pbXVtIHZhbHVlLgorRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCisKK1BhdGNoIDcuMC4yMzIgKGV4dHJhKQorUHJvYmxlbTogICAgTWFjOiBkb2Vzbid0IHN1cHBvcnQgR1VJIHRhYiBwYWdlIGxhYmVscy4KK1NvbHV0aW9uOiAgIEFkZCBHVUkgdGFiIHBhZ2UgbGFiZWxzLiAoTmljb2xhcyBXZWJlcikKK0ZpbGVzOgkgICAgc3JjL2ZlYXR1cmUuaCwgc3JjL2d1aS5jLCBzcmMvZ3VpLmgsIHNyYy9ndWlfbWFjLmMsCisJICAgIHNyYy9wcm90by9ndWlfbWFjLnBybworCitQYXRjaCA3LjAuMjMzIChleHRyYSkKK1Byb2JsZW06ICAgIE1hYzogY29kZSBmb3JtYXR0ZWQgYmFkbHkuCitTb2x1dGlvbjogICBGaXggY29kZSBmb3JtYXR0aW5nCitGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKKworUGF0Y2ggNy4wLjIzNAorUHJvYmxlbTogICAgSXQncyBwb3NzaWJsZSB0byB1c2UgZmVlZGtleXMoKSBmcm9tIGEgbW9kZWxpbmUuICBUaGF0IGlzIGEKKwkgICAgc2VjdXJpdHkgaXNzdWUsIGNhbiBiZSB1c2VkIGZvciBhIHRyb2phbiBob3JzZS4KK1NvbHV0aW9uOiAgIERpc2FsbG93IHVzaW5nIGZlZWRrZXlzKCkgaW4gdGhlIHNhbmRib3guCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjIzNQorUHJvYmxlbTogICAgSXQgaXMgcG9zc2libGUgdG8gdXNlIHdyaXRlZmlsZSgpIGluIHRoZSBzYW5kYm94LgorU29sdXRpb246ICAgQWRkIGEgZmV3IG1vcmUgY2hlY2tzIGZvciB0aGUgc2FuZGJveC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMjM2CitQcm9ibGVtOiAgICBMaW51eCAyLjQgdXNlcyBzeXNpbmZvKCkgd2l0aCBhIG1lbV91bml0IGZpZWxkLCB3aGljaCBpcyBub3QKKwkgICAgYmFja3dhcmRzIGNvbXBhdGlibGUuCitTb2x1dGlvbjogICBBZGQgYW4gYXV0b2NvbmYgY2hlY2sgZm9yIHN5c2luZm8ubWVtX3VuaXQuICBMZXQgbWNoX3RvdGFsX21lbSgpCisJICAgIHJldHVybiBLYnl0ZSB0byBhdm9pZCBvdmVyZmxvdy4KK0ZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvY29uZmlnLmguaW4sCisJICAgIHNyYy9vcHRpb24uYywgc3JjL29zX3VuaXguYworCitQYXRjaCA3LjAuMjM3CitQcm9ibGVtOiAgICBGb3Igcm9vdCBpdCBpcyByZWNvbW1lbmRlZCB0byBub3QgdXNlICdtb2RlbGluZScsIGJ1dCBpbgorCSAgICBub3QtY29tcGF0aWJsZSBtb2RlIHRoZSBkZWZhdWx0IGlzIG9uLgorU29sdXRpb246ICAgTGV0ICdtb2RlbGluZScgZGVmYXVsdCB0byBvZmYgZm9yIHJvb3QuCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvb3B0aW9uLmMKKworUGF0Y2ggNy4wLjIzOAorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiAiOm1hdGNoIiBwYXR0ZXJuIHJ1bnMgaW50byAnbWF4bWVtcGF0dGVybicuIChZYWtvdgorCSAgICBMZXJuZXIpCitTb2x1dGlvbjogICBEb24ndCBmcmVlIHRoZSByZWdleHAgcHJvZ3JhbSBvZiBtYXRjaF9obC4KK0ZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCisKK1BhdGNoIDcuMC4yMzkKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgbG9jYWwgZGlyZWN0b3JpZXMgYW5kIHRhYiBwYWdlcyAiOm1rc2Vzc2lvbiIgdXNlcyBhCisJICAgIHNob3J0IGZpbGUgbmFtZSB3aGVuIGl0IHNob3VsZG4ndC4gIFdpbmRvdy1sb2NhbCBvcHRpb25zIGZyb20gYQorCSAgICBtb2RlbGluZSBtYXkgYmUgYXBwbGllZCB0byB0aGUgd3Jvbmcgd2luZG93LiAoVGVlbXUgTGlrb25lbikKK1NvbHV0aW9uOiAgIEFkZCB0aGUgZGlkX2xjZCBmbGFnLCB1c2UgdGhlIGZ1bGwgcGF0aCB3aGVuIGl0J3Mgc2V0LiAgRG9uJ3QgdXNlCisJICAgIHdpbmRvdy1sb2NhbCBvcHRpb25zIGZyb20gdGhlIG1vZGVsaW5lIHdoZW4gdXNpbmcgdGhlIGN1cnJlbnQKKwkgICAgd2luZG93IGZvciBhbm90aGVyIGJ1ZmZlciBpbiAiOmRvYXV0b2FsbCIuCitGaWxlczoJICAgIHNyYy9maWxlaW8uYywgIHNyYy9leF9kb2NtZC5jCisKK1BhdGNoIDcuMC4yNDAKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gc3BsaXR0aW5nIGEgd2luZG93IGluIHRoZSBHVUkuIChvcHBvc2l0ZSBvZiA3LjAuMjI3KQorU29sdXRpb246ICAgRG9uJ3QgY2FsbCBvdXRfZmx1c2goKSBmcm9tIHdpbl9hbGxvYygpLiAgQWxzbyBhdm9pZCB0aGlzIGZvcgorCSAgICB3aW5fZGVsZXRlKCkuICBBbHNvIGJsb2NrIGF1dG9jb21tYW5kcyB3aGlsZSB0aGUgd2luZG93IHN0cnVjdHVyZQorCSAgICBpcyBpbnZhbGlkLgorRmlsZXM6CSAgICBzcmMvd2luZG93LmMKKworUGF0Y2ggNy4wLjI0MQorUHJvYmxlbTogICAgIjp3aW5kbyB0aHJvdyAnZm9vJyIgbG9vcHMgZm9yZXZlci4gKEFuZHkgV29rdWxhKQorU29sdXRpb246ICAgRGV0ZWN0IHRoYXQgd2luX2dvdG8oKSBkb2Vzbid0IHdvcmsuCitGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCisKK1BhdGNoIDcuMC4yNDIgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IFVzaW5nICItcmVnaXN0ZXIiIGluIGEgVmltIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBPTEUgY2F1c2VzCisJICAgIGEgY3Jhc2guCitTb2x1dGlvbjogICBEb24ndCB1c2UgRU1TRygpIGJ1dCBtY2hfZXJybXNnKCkuICBDaGVjayBwX2dvIGZvciBiZWluZyBOVUxMLgorCSAgICAocGFydGx5IGJ5IE1pY2hhZWwgV29va2V5KQorRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCisKK1BhdGNoIDcuMC4yNDMgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IFdoZW4gR3ZpbUV4dCBpcyBidWlsdCB3aXRoIE1TVkMgMjAwNSBvciBsYXRlciwgdGhlICJFZGl0CisJICAgIHdpdGggdmltIiBjb250ZXh0IG1lbnUgZG9lc24ndCBhcHBlYXIgaW4gdGhlIFdpbmRvd3MgRXhwbG9yZXIuCitTb2x1dGlvbjogICBFbWJlZCB0aGUgbGlua2VyIG1hbmlmZXN0IGZpbGUgaW50byB0aGUgcmVzb3VyY2VzIG9mIEd2aW1FeHQuZGxsLgorCSAgICAoTWF0aGlhcyBNaWNoYWVsaXMpCitGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VmaWxlCisKKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3dvcmtzaG9wLnR4dCBiL3J1bnRpbWUvZG9jL3dvcmtzaG9wLnR4dAppbmRleCAyMWI4MGNlLi5hMDUwMmNjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy93b3Jrc2hvcC50eHQKKysrIGIvcnVudGltZS9kb2Mvd29ya3Nob3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKndvcmtzaG9wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp3b3Jrc2hvcC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQtaXQuVVRGLTguMSBiL3J1bnRpbWUvZG9jL3h4ZC1pdC5VVEYtOC4xCmluZGV4IDllMzc0MmQuLjUyMTE0ZWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3h4ZC1pdC5VVEYtOC4xCisrKyBiL3J1bnRpbWUvZG9jL3h4ZC1pdC5VVEYtOC4xCkBAIC0yMjYsNyArMjI2LDcgQEAKIFxmSSUgeHhkIFwtcyBcLTB4MzAgZmlsZQogLlBQCiAuYnIKLVN0YW1wYSAxMjAgYnl0ZXMgY29tZSBpbW1hZ2luZSBlc2FkZWNpbWFsZSBjb250aW51YSBjb24gNDAgYnl0ZXMgcGVyIGxpbmVhLgorU3RhbXBhIDEyMCBieXRlcyBjb21lIGltbWFnaW5lIGVzYWRlY2ltYWxlIGNvbnRpbnVhIGNvbiAyMCBieXRlcyBwZXIgbGluZWEuCiAuYnIKIFxmSSUgeHhkIFwtbCAxMjAgXC1wcyBcLWMgMjAgeHhkLjFcZlIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLXJ1LjEgYi9ydW50aW1lL2RvYy94eGQtcnUuMQppbmRleCA5YzJmOTJkLi4xMTE5NDZhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQtcnUuMQorKysgYi9ydW50aW1lL2RvYy94eGQtcnUuMQpAQCAtMjMxLDcgKzIzMSw3IEBACiAuUFAKIC5icgog99nXxdPUySAxMjAgwsHK1M/XINcg18nExSDOxdDSxdLZ187Px88g28XT1M7BxMPB1MXSyd7Oz8fPINDSxcTT1MHXzMXOydEKLdDPIDQwIM/L1MXUz9cg1yDT1NLPy8U6CivQzyAyMCDPy9TF1M/XINcg09TSz8vFOgogLlBQCiBcZkklIHh4ZCBcLWwgMTIwIFwtcHMgXC1jIDIwIHh4ZC4xXGZSCiAuYnIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3h4ZC4xIGIvcnVudGltZS9kb2MveHhkLjEKaW5kZXggZDZlNzgyYS4uZThmNzM1OCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MveHhkLjEKKysrIGIvcnVudGltZS9kb2MveHhkLjEKQEAgLTEyMyw3ICsxMjMsNyBAQAogc3RhcnQgYXQKIC5SSSA8IHNlZWsgPgogYnl0ZXMgYWJzLiAob3IgcmVsLikgaW5maWxlIG9mZnNldC4KLVxmSSsgZlJpbmRpY2F0ZXMgdGhhdCB0aGUgc2VlayBpcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBzdGRpbiBmaWxlIHBvc2l0aW9uCitcZkkrIFxmUmluZGljYXRlcyB0aGF0IHRoZSBzZWVrIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHN0ZGluIGZpbGUgcG9zaXRpb24KIChtZWFuaW5nbGVzcyB3aGVuIG5vdCByZWFkaW5nIGZyb20gc3RkaW4pLiAgXGZJXC0gXGZSaW5kaWNhdGVzIHRoYXQgdGhlIHNlZWsKIHNob3VsZCBiZSB0aGF0IG1hbnkgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgdGhlIGlucHV0IChvciBpZiBjb21iaW5lZCB3aXRoCiBcZkkrXGZSOiBiZWZvcmUgdGhlIGN1cnJlbnQgc3RkaW4gZmlsZSBwb3NpdGlvbikuCkBAIC0xNzIsMTcgKzE3MiwxNyBAQAogUmV3aW5kIHN0ZGluIGJlZm9yZSByZWFkaW5nOyBuZWVkZWQgYmVjYXVzZSB0aGUgYGNhdCcgaGFzIGFscmVhZHkgcmVhZCB0byB0aGUKIGVuZCBvZiBzdGRpbi4KIC5icgotXGZJJSBzaCBcLWMgImNhdCA+IHBsYWluX2NvcHk7IHh4ZCBcLXMgMCA+IGhleF9jb3B5IiA8IGZpbGUKK1xmSSUgc2ggXC1jICJjYXQgPiBwbGFpbl9jb3B5OyB4eGQgXC1zIDAgPiBoZXhfY29weSIgPCBmaWxlXGZSCiAuUFAKIEhleGR1bXAgZnJvbSBmaWxlIHBvc2l0aW9uIDB4NDgwICg9MTAyNCsxMjgpIG9ud2FyZHMuCiBUaGUgYCsnIHNpZ24gbWVhbnMgInJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIiwgdGh1cyB0aGUgYDEyOCcgYWRkcyB0bwogdGhlIDFrIHdoZXJlIGRkIGxlZnQgb2ZmLgogLmJyCi1cZkklIHNoIFwtYyAiZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgXC1zICsxMjggPiBoZXhfc25pcHBldCIgPCBmaWxlCitcZkklIHNoIFwtYyAiZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgXC1zICsxMjggPiBoZXhfc25pcHBldCIgPCBmaWxlXGZSCiAuUFAKIEhleGR1bXAgZnJvbSBmaWxlIHBvc2l0aW9uIDB4MTAwICggPSAxMDI0XC03NjgpIG9uLgogLmJyCi1cZkklIHNoIFwtYyAiZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgXC1zICtcLTc2OCA+IGhleF9zbmlwcGV0IiA8IGZpbGUKK1xmSSUgc2ggXC1jICJkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCBcLXMgK1wtNzY4ID4gaGV4X3NuaXBwZXQiIDwgZmlsZVxmUgogLlBQCiBIb3dldmVyLCB0aGlzIGlzIGEgcmFyZSBzaXR1YXRpb24gYW5kIHRoZSB1c2Ugb2YgYCsnIGlzIHJhcmVseSBuZWVkZWQuCiBUaGUgYXV0aG9yIHByZWZlcnMgdG8gbW9uaXRvciB0aGUgZWZmZWN0IG9mIHh4ZCB3aXRoIHN0cmFjZSgxKSBvciB0cnVzcygxKSwgd2hlbmV2ZXIgXC1zIGlzIHVzZWQuCkBAIC0xOTIsMTYgKzE5MiwxNiBAQAogUHJpbnQgZXZlcnl0aGluZyBidXQgdGhlIGZpcnN0IHRocmVlIGxpbmVzIChoZXggMHgzMCBieXRlcykgb2YKIC5CUiBmaWxlIC4KIC5icgotXGZJJSB4eGQgXC1zIDB4MzAgZmlsZQorXGZJJSB4eGQgXC1zIDB4MzAgZmlsZVxmUgogLlBQCiAuYnIKIFByaW50IDMgbGluZXMgKGhleCAweDMwIGJ5dGVzKSBmcm9tIHRoZSBlbmQgb2YKIC5CUiBmaWxlIC4KIC5icgotXGZJJSB4eGQgXC1zIFwtMHgzMCBmaWxlCitcZkklIHh4ZCBcLXMgXC0weDMwIGZpbGVcZlIKIC5QUAogLmJyCi1QcmludCAxMjAgYnl0ZXMgYXMgY29udGludW91cyBoZXhkdW1wIHdpdGggNDAgb2N0ZXRzIHBlciBsaW5lLgorUHJpbnQgMTIwIGJ5dGVzIGFzIGNvbnRpbnVvdXMgaGV4ZHVtcCB3aXRoIDIwIG9jdGV0cyBwZXIgbGluZS4KIC5icgogXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgogLmJyCmRpZmYgLS1naXQgYS9ydW50aW1lL2ZpbGV0eXBlLnZpbSBiL3J1bnRpbWUvZmlsZXR5cGUudmltCmluZGV4IGM0NTcyNjIuLmNkNGJlNzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZmlsZXR5cGUudmltCisrKyBiL3J1bnRpbWUvZmlsZXR5cGUudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3VwcG9ydCBmaWxlIHRvIGRldGVjdCBmaWxlIHR5cGVzCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA2IE1heSAwMgorIiBMYXN0IENoYW5nZToJMjAwNyBBcHIgMjYKIAogIiBMaXN0ZW4gdmVyeSBjYXJlZnVsbHksIEkgd2lsbCBzYXkgdGhpcyBvbmx5IG9uY2UKIGlmIGV4aXN0cygiZGlkX2xvYWRfZmlsZXR5cGVzIikKQEAgLTg4LDYgKzg4LDExIEBACiAKICIgQWRhICg4MywgOVgsIDk1KQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouYWRiLCouYWRzLCouYWRhCQlzZXRmIGFkYQoraWYgaGFzKCJ2bXMiKQorICBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5ncHIsKi5hZGFfbSwqLmFkYyAJc2V0ZiBhZGEKK2Vsc2UKKyAgYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZ3ByIAkJCXNldGYgYWRhCitlbmRpZgogCiAiIEFIREwKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnRkZgkJCXNldGYgYWhkbApAQCAtMTk0LDYgKzE5OSw5IEBACiAiIEF0bGFzCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5hdGwsKi5hcwkJc2V0ZiBhdGxhcwogCisiIEF1dG9pdCB2MworYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouYXUzCQkJc2V0ZiBhdXRvaXQKKwogIiBBdXRvbWFrZQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIFttTV1ha2VmaWxlLmFtLEdOVW1ha2VmaWxlLmFtCXNldGYgYXV0b21ha2UKIApAQCAtMjI1LDYgKzIzMywxMiBAQAogIiBWaXN1YWwgQmFzaWMgU2NyaXB0IChjbG9zZSB0byBWaXN1YWwgQmFzaWMpCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi52YnMsKi5kc20sKi5jdGwJCXNldGYgdmIKIAorIiBJQmFzaWMgZmlsZSAoc2ltaWxhciB0byBRQmFzaWMpCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5pYmEsKi5pYmkJCXNldGYgaWJhc2ljCisKKyIgRnJlZUJhc2ljIGZpbGUgKHNpbWlsYXIgdG8gUUJhc2ljKQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZmIsKi5iaQkJCXNldGYgZnJlZWJhc2ljCisKICIgQmF0Y2ggZmlsZSBmb3IgTVNET1MuCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5iYXQsKi5zeXMJCXNldGYgZG9zYmF0Y2gKICIgKi5jbWQgaXMgY2xvc2UgdG8gYSBCYXRjaCBmaWxlLCBidXQgb24gT1MvMiBSZXh4IGZpbGVzIGFsc28gdXNlICouY21kLgpAQCAtMzAzLDYgKzMxNyw5IEBACiAiIENvbXNoYXJlIERpbWVuc2lvbiBEZWZpbml0aW9uIExhbmd1YWdlCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5jZGwJCQlzZXRmIGNkbAogCisiIENvbmFyeSBSZWNpcGUKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnJlY2lwZQkJCXNldGYgY29uYXJ5cmVjaXBlCisKICIgQ29udHJvbGxhYmxlIFJlZ2V4IE11dGlsYXRvcgogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouY3JtCQkJc2V0ZiBjcm0KIApAQCAtNDM2LDYgKzQ1MywxMCBAQAogIiBDbWFrZQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIENNYWtlTGlzdHMudHh0LCouY21ha2UsKi5jbWFrZS5pbgkJc2V0ZiBjbWFrZQogCisiIENtdXNyYworYXUgQnVmTmV3RmlsZSxCdWZSZWFkIH4vLmNtdXMve2F1dG9zYXZlLHJjLGNvbW1hbmQtaGlzdG9yeSwqLnRoZW1lfSBzZXRmIGNtdXNyYworYXUgQnVmTmV3RmlsZSxCdWZSZWFkICovY211cy97cmMsKi50aGVtZX0JCQlzZXRmIGNtdXNyYworCiAiIENvYm9sCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5jYmwsKi5jb2IsKi5saWIJc2V0ZiBjb2JvbAogIiAgIGNvYm9sIG9yIHpvcGUgZm9ybSBjb250cm9sbGVyIHB5dGhvbiBzY3JpcHQ/IChoZXVyaXN0aWMpCkBAIC02MTQsNyArNjM1LDEwIEBACiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5mcywqLmZ0CQkJc2V0ZiBmb3J0aAogCiAiIEZvcnRyYW4KLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmYsKi5GLCouZm9yLCouZnBwLCouRlBQLCouZnRuLCouZjc3LCouRjc3LCouZjkwLCouRjkwLCouZjk1LCouRjk1CXNldGYgZm9ydHJhbgoraWYgaGFzKCJmbmFtZV9jYXNlIikKKyAgYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouRiwqLkZPUiwqLkZQUCwqLkZUTiwqLkY3NywqLkY5MCwqLkY5NQkgc2V0ZiBmb3J0cmFuCitlbmRpZgorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICAgKi5mLCouZm9yLCouZnBwLCouZnRuLCouZjc3LCouZjkwLCouZjk1ICBzZXRmIGZvcnRyYW4KIAogIiBGU3RhYgogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIGZzdGFiLG10YWIJCXNldGYgZnN0YWIKQEAgLTY2MCw2ICs2ODQsOSBAQAogIiBHVEsgUkMKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAuZ3RrcmMsZ3RrcmMJCXNldGYgZ3RrcmMKIAorIiBIYW1zdGVyIENsYXNzaWMgfCBQbGF5Z3JvdW5kIGZpbGVzCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5oc2MsKi5oc20JCXNldGYgaGFtc3RlcgorCiAiIEhhc2tlbGwKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmhzCQkJc2V0ZiBoYXNrZWxsCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5saHMJCQlzZXRmIGxoYXNrZWxsCkBAIC03NDQsOCArNzcxLDExIEBACiAiIEluZm9ybQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaW5mLCouSU5GCQlzZXRmIGluZm9ybQogCisiIEluaXRuZworYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC9ldGMvaW5pdG5nLyoqLyouaSwqLmlpCXNldGYgaW5pdG5nCisKICIgSXBmaWx0ZXIKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBpcGYuY29uZixpcGYucnVsZXMJc2V0ZiBpcGZpbHRlcgorYXUgQnVmTmV3RmlsZSxCdWZSZWFkIGlwZi5jb25mLGlwZjYuY29uZixpcGYucnVsZXMJc2V0ZiBpcGZpbHRlcgogCiAiIEluZm9ybWl4IDRHTCAoc291cmNlIC0gY2Fub25pY2FsLCBpbmNsdWRlIGZpbGUsIEk0R0wrTTQgcHJlcHJvYy4pCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi40Z2wsKi40Z2gsKi5tNGdsCXNldGYgZmdsCkBAIC03NzEsOCArODAxLDggQEAKICIgSmF2YUNDCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5qaiwqLmpqdAkJc2V0ZiBqYXZhY2MKIAotIiBKYXZhU2NyaXB0Ci1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5qcywqLmphdmFzY3JpcHQJCXNldGYgamF2YXNjcmlwdAorIiBKYXZhU2NyaXB0LCBFQ01BU2NyaXB0CithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5qcywqLmphdmFzY3JpcHQsKi5lcwlzZXRmIGphdmFzY3JpcHQKIAogIiBKYXZhIFNlcnZlciBQYWdlcwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouanNwCQkJc2V0ZiBqc3AKQEAgLTg3Niw3ICs5MDYsNyBAQAogIiBNYUdpYyBQb2ludAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoubWdwCQkJc2V0ZiBtZ3AKIAotIiBNYWlsIChmb3IgRWxtLCB0cm4sIG11dHQsIHJuLCBzbHJuKQorIiBNYWlsIChmb3IgRWxtLCB0cm4sIG11dHQsIG11dHRuZywgcm4sIHNscm4pCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgc25kLlxkXCssLmxldHRlciwubGV0dGVyLlxkXCssLmZvbGxvd3VwLC5hcnRpY2xlLC5hcnRpY2xlLlxkXCsscGljby5cZFwrLG11dHR7bmcsfS0qLVx3XCssbXV0dFx3XHs2XH0sYWVcZFwrLnR4dCwvdG1wL1NMUk5bMC05QS1aLl1cKywqLmVtbCBzZXRmIG1haWwKIAogIiBNYWlsIGFsaWFzZXMKQEAgLTkzNCw2ICs5NjQsOSBAQAogIiBNYXlhIEV4dGVuc2lvbiBMYW5ndWFnZQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoubWVsCQkJc2V0ZiBtZWwKIAorIiBNZXNzYWdlcworYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC92YXIvbG9nL21lc3NhZ2VzLC92YXIvbG9nL21lc3NhZ2VzLipbMC05XSAgc2V0ZiBtZXNzYWdlcworCiAiIE1ldGFmb250CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5tZgkJCXNldGYgbWYKIApAQCAtMTAxNSw3ICsxMDQ4LDcgQEAKICIgTXVzaAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoubXVzaAkJCXNldGYgbXVzaAogCi0iIE11dHQgc2V0dXAgZmlsZQorIiBNdXR0IHNldHVwIGZpbGUgKGFsc28gZm9yIE11dHRuZykKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBNdXR0e25nLH1yYwkJCXNldGYgbXV0dHJjCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgLm11dHR7bmcsfXJjKiwqLy5tdXR0e25nLH0vbXV0dHtuZyx9cmMqCWNhbGwgczpTdGFyU2V0ZignbXV0dHJjJykKIApAQCAtMTIzMiw2ICsxMjY1LDkgQEAKICIgT3JhY2xlIFBybypDL0MrKwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC5wYwkJCXNldGYgcHJvYwogCisiIFByaXZveHkgYWN0aW9ucyBmaWxlCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5hY3Rpb24JCQlzZXRmIHByaXZveHkKKwogIiBQcm9jbWFpbAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC5wcm9jbWFpbCwucHJvY21haWxyYwlzZXRmIHByb2NtYWlsCiAKQEAgLTEzNzEsMzEgKzE0MDcsMzEgQEAKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnIsKi5SCQkJY2FsbCBzOkZUcigpCiAKIGZ1biEgczpGVHIoKQotICBpZiBnZXRsaW5lKDEpID1+ICdeUkVCT0wnCi0gICAgc2V0ZiByZWJvbAotICBlbHNlCi0gICAgbGV0IG4gPSAxCi0gICAgbGV0IG1heCA9IGxpbmUoIiQiKQotICAgIGlmIG1heCA+IDUwCi0gICAgICBsZXQgbWF4ID0gNTAKKyAgbGV0IG1heCA9IGxpbmUoIiQiKSA+IDUwID8gNTAgOiBsaW5lKCIkIikKKworICBmb3IgbiBpbiByYW5nZSgxLCBtYXgpCisgICAgIiBSZWJvbCBpcyBlYXN5IHRvIHJlY29nbml6ZSwgY2hlY2sgZm9yIHRoYXQgZmlyc3QKKyAgICBpZiBnZXRsaW5lKG4pID1+ICdcPFJFQk9MXD4nCisgICAgICBzZXRmIHJlYm9sCisgICAgICByZXR1cm4KICAgICBlbmRpZgotICAgIHdoaWxlIG4gPCBtYXgKLSAgICAgICIgUiBoYXMgIyBjb21tZW50cwotICAgICAgaWYgZ2V0bGluZShuKSA9fiAnXlxzKiMnCi0Jc2V0ZiByCi0JYnJlYWsKLSAgICAgIGVuZGlmCi0gICAgICAiIFJleHggaGFzIC8qIGNvbW1lbnRzICovCi0gICAgICBpZiBnZXRsaW5lKG4pID1+ICdeXHMqL1wqJwotCXNldGYgcmV4eAotCWJyZWFrCi0gICAgICBlbmRpZgotICAgICAgbGV0IG4gPSBuICsgMQotICAgIGVuZHdoaWxlCi0gICAgaWYgbiA+PSBtYXgKKyAgZW5kZm9yCisKKyAgZm9yIG4gaW4gcmFuZ2UoMSwgbWF4KQorICAgICIgUiBoYXMgIyBjb21tZW50cworICAgIGlmIGdldGxpbmUobikgPX4gJ15ccyojJworICAgICAgc2V0ZiByCisgICAgICByZXR1cm4KKyAgICBlbmRpZgorICAgICIgUmV4eCBoYXMgLyogY29tbWVudHMgKi8KKyAgICBpZiBnZXRsaW5lKG4pID1+ICdeXHMqL1wqJwogICAgICAgc2V0ZiByZXh4CisgICAgICByZXR1cm4KICAgICBlbmRpZgotICBlbmRpZgorICBlbmRmb3IKKworICAiIE5vdGhpbmcgcmVjb2duaXplZCwgYXNzdW1lIFJleHgKKyAgc2V0ZiByZXh4CiBlbmRmdW4KIAogIiBSZW1pbmQKQEAgLTE0NDMsNiArMTQ3OSw5IEBACiAiIFNjaWxhYgogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouc2NpLCouc2NlCQlzZXRmIHNjaWxhYgogCisiIFNEOiBTdHJlYW1pbmcgRGVzY3JpcHRvcnMKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnNkCQkJc2V0ZiBzZAorCiAiIFNETAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouc2RsLCoucHIJCXNldGYgc2RsCiAKQEAgLTE5MjIsNiArMTk2MSw5IEBACiAiIFdpbmRvd3MgU2NyaXB0aW5nIEhvc3QgYW5kIFdpbmRvd3MgU2NyaXB0IENvbXBvbmVudAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoud3NbZmNdCQkJc2V0ZiB3c2gKIAorIiBYSFRNTAorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoueGh0bWwsKi54aHQJCXNldGYgeGh0bWwKKwogIiBYIFBpeG1hcCAoZHluYW1pY2FsbHkgc2V0cyBjb2xvcnMsIHVzZSBCdWZFbnRlciB0byBtYWtlIGl0IHdvcmsgYmV0dGVyKQogYXUgQnVmRW50ZXIgKi54cG0KIAlcIGlmIGdldGxpbmUoMSkgPX4gIlhQTTIiIHwKQEAgLTE5NzMsNiArMjAxNSw5IEBACiAiIFF0IExpbmd1aXN0IHRyYW5zbGF0aW9uIHNvdXJjZSBhbmQgUXQgVXNlciBJbnRlcmZhY2UgRmlsZXMgYXJlIFhNTAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoudHMsKi51aQkJCXNldGYgeG1sCiAKKyIgVFBNJ3MgYXJlIFJERi1iYXNlZCBkZXNjcmlwdGlvbnMgb2YgVGVYIHBhY2thZ2VzIChOaWtvbGFpIFdlaWJ1bGwpCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi50cG0JCQlzZXRmIHhtbAorCiAiIFhkZyBtZW51cwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC9ldGMveGRnL21lbnVzLyoubWVudQlzZXRmIHhtbAogCkBAIC0yMDUyLDYgKzIwOTcsOSBAQAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICphc3Rlcmlzay8qLmNvbmYqCQljYWxsIHM6U3RhclNldGYoJ2FzdGVyaXNrJykKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqYXN0ZXJpc2sqLyp2b2ljZW1haWwuY29uZiogY2FsbCBzOlN0YXJTZXRmKCdhc3Rlcmlza3ZtJykKIAorIiBCYXphYXIgdmVyc2lvbiBjb250cm9sCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgYnpyX2xvZy4qCQkJc2V0ZiBienIKKwogIiBCSU5EIHpvbmUKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqL25hbWVkL2RiLiosKi9iaW5kL2RiLioJY2FsbCBzOlN0YXJTZXRmKCdiaW5kem9uZScpCiAKQEAgLTIwNzMsNiArMjEyMSw3IEBACiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgZHJhYy4qCQkJY2FsbCBzOlN0YXJTZXRmKCdkcmFjdWxhJykKIAogIiBGdndtCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi8uZnZ3bS8qCQkJY2FsbCBzOlN0YXJTZXRmKCdmdndtJykKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqZnZ3bXJjKiwqZnZ3bTk1Ki5ob29rCiAJXCBsZXQgYjpmdndtX3ZlcnNpb24gPSAxIHwgY2FsbCBzOlN0YXJTZXRmKCdmdndtJykKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqZnZ3bTJyYyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZnZ3bS52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2Z2d20udmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZTFhODMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2Z2d20udmltCkBAIC0wLDAgKzEsMTQgQEAKKyIgQ3JlYXRlZAk6IFR1ZSAwOSBNYXkgMjAwNiAwMjowNzozMSBQTSBDRFQKKyIgTW9kaWZpZWQJOiBUdWUgMDkgTWF5IDIwMDYgMDI6MDc6MzEgUE0gQ0RUCisiIEF1dGhvcgk6IEdhdXRhbSBJeWVyIDxnaTEyNDJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorIiBEZXNjcmlwdGlvbgk6IGZ0cGx1Z2luIGZvciBmdndtIGNvbmZpZyBmaWxlcworCitpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKKyAgZmluaXNoCitlbmRpZgorbGV0IGI6ZGlkX2Z0cGx1Z2luID0gMQorCitsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgY29tPCBjbXM8IGZvPCIKKworc2V0bG9jYWwgY29tbWVudHM9OiMgY29tbWVudHN0cmluZz0jXCAlcworc2V0bG9jYWwgZm9ybWF0b3B0aW9ucy09dCBmb3JtYXRvcHRpb25zKz1jcm9xbApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9oZWxwLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vaGVscC52aW0KaW5kZXggN2U4MjA4MS4uNDZjODQ0YyAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9oZWxwLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2hlbHAudmltCkBAIC04LDYgKzgsNiBAQAogZW5kaWYKIGxldCBiOmRpZF9mdHBsdWdpbiA9IDEKIAotbGV0IGI6dW5kb19wbHVnaW4gPSAic2V0bCBmbzwgdHc8IgorbGV0IGI6dW5kb19mdHBsdWdpbiA9ICJzZXRsIGZvPCB0dzwiCiAKIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPXRjcm9xbCB0ZXh0d2lkdGg9NzgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vaHRtbGRqYW5nby52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2h0bWxkamFuZ28udmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZTk0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2h0bWxkamFuZ28udmltCkBAIC0wLDAgKzEsMTMgQEAKKyIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCisiIExhbmd1YWdlOglEamFuZ28gSFRNTCB0ZW1wbGF0ZQorIiBNYWludGFpbmVyOglEYXZlIEhvZGRlciA8ZG1oQGRtaC5vcmcudWs+CisiIExhc3QgQ2hhbmdlOgkyMDA3IEphbiAyNQorCisiIE9ubHkgdXNlIHRoaXMgZmlsZXR5cGUgcGx1Z2luIHdoZW4gbm8gb3RoZXIgd2FzIGxvYWRlZC4KK2lmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQorICBmaW5pc2gKK2VuZGlmCisKKyIgVXNlIEhUTUwgYW5kIERqYW5nbyB0ZW1wbGF0ZSBmdHBsdWdpbnMuCitydW50aW1lISBmdHBsdWdpbi9odG1sLnZpbQorcnVudGltZSEgZnRwbHVnaW4vZGphbmdvLnZpbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9qYXZhc2NyaXB0LnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vamF2YXNjcmlwdC52aW0KaW5kZXggM2FjNGJiZi4uMWJhNDQwMCAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9qYXZhc2NyaXB0LnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2phdmFzY3JpcHQudmltCkBAIC0xLDEzICsxLDM4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJSmF2YXNjcmlwdAotIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciAoZm9yIG5vdykKLSIgTGFzdCBDaGFuZ2U6ICAyMDA2IEphbiAzMAorIiBNYWludGFpbmVyOglEb3VnIEtlYXJucyA8ZG91Z2tlYXJuc0BnbWFpbC5jb20+CisiIExhc3QgQ2hhbmdlOiAgMjAwNyBGZWIgMjEKKyIgVVJMOgkJaHR0cDovL2d1cy5nc2NpdC5tb25hc2guZWR1LmF1L35kamtlYTIvdmltL2Z0cGx1Z2luL2phdmFzY3JpcHQudmltCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQogICBmaW5pc2gKIGVuZGlmCiBsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCiAKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwby09QworCisiIFNldCAnZm9ybWF0b3B0aW9ucycgdG8gYnJlYWsgY29tbWVudCBsaW5lcyBidXQgbm90IG90aGVyIGxpbmVzLAorIiAiIGFuZCBpbnNlcnQgdGhlIGNvbW1lbnQgbGVhZGVyIHdoZW4gaGl0dGluZyA8Q1I+IG9yIHVzaW5nICJvIi4KK3NldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQgZm9ybWF0b3B0aW9ucys9Y3JvcWwKKworIiBTZXQgY29tcGxldGlvbiB3aXRoIENUUkwtWCBDVFJMLU8gdG8gYXV0b2xvYWRlZCBmdW5jdGlvbi4KIGlmIGV4aXN0cygnJm9mdScpCi0gIHNldGxvY2FsIG9mdT1qYXZhc2NyaXB0Y29tcGxldGUjQ29tcGxldGVKUworICAgIHNldGxvY2FsIG9tbmlmdW5jPWphdmFzY3JpcHRjb21wbGV0ZSNDb21wbGV0ZUpTCiBlbmRpZgorCisiIFNldCAnY29tbWVudHMnIHRvIGZvcm1hdCBkYXNoZWQgbGlzdHMgaW4gY29tbWVudHMuCitzZXRsb2NhbCBjb21tZW50cz1zTzoqXCAtLG1POipcIFwgLGV4TzoqLyxzMTovKixtYjoqLGV4OiovLDovLworCitzZXRsb2NhbCBjb21tZW50c3RyaW5nPS8vJXMKKworIiBDaGFuZ2UgdGhlIDpicm93c2UgZSBmaWx0ZXIgdG8gcHJpbWFyaWx5IHNob3cgSmF2YS1yZWxhdGVkIGZpbGVzLgoraWYgaGFzKCJndWlfd2luMzIiKQorICAgIGxldCAgYjpicm93c2VmaWx0ZXI9IkphdmFzY3JpcHQgRmlsZXMgKCouanMpXHQqLmpzXG4iCisJCVwJIkFsbCBGaWxlcyAoKi4qKVx0Ki4qXG4iCitlbmRpZgorICAgICAgIAorbGV0IGI6dW5kb19mdHBsdWdpbiA9ICJzZXRsIGZvPCBvZnU8IGNvbTwgY21zPCIgCisKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9tYW4udmltIGIvcnVudGltZS9mdHBsdWdpbi9tYW4udmltCmluZGV4IDA0OTY0YTUuLjg4ZDdiY2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vbWFuLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL21hbi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJbWFuCiAiIE1haW50YWluZXI6CU5hbSBTdW5nSHl1biA8bmFtc2hAa2xkcC5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA2IE1hciAyOAorIiBMYXN0IENoYW5nZToJMjAwNiBEZWMgMDQKIAogIiBUbyBtYWtlIHRoZSAiOk1hbiIgY29tbWFuZCBhdmFpbGFibGUgYmVmb3JlIGVkaXRpbmcgYSBtYW51YWwgcGFnZSwgc291cmNlCiAiIHRoaXMgc2NyaXB0IGZyb20geW91ciBzdGFydHVwIHZpbXJjIGZpbGUuCkBAIC0xMTksOSArMTE5LDcgQEAKICAgaWYgJmZpbGV0eXBlICE9ICJtYW4iCiAgICAgbGV0IHRoaXN3aW4gPSB3aW5ucigpCiAgICAgZXhlICJub3JtISBcPEMtVz5iIgotICAgIGlmIHdpbm5yKCkgPT0gMQotICAgICAgbmV3Ci0gICAgZWxzZQorICAgIGlmIHdpbm5yKCkgPiAxCiAgICAgICBleGUgIm5vcm0hICIgLiB0aGlzd2luIC4gIlw8Qy1XPnciCiAgICAgICB3aGlsZSAxCiAJaWYgJmZpbGV0eXBlID09ICJtYW4iCkBAIC0xMjksMTEgKzEyNywxNCBAQAogCWVuZGlmCiAJZXhlICJub3JtISBcPEMtVz53IgogCWlmIHRoaXN3aW4gPT0gd2lubnIoKQotCSAgbmV3CiAJICBicmVhawogCWVuZGlmCiAgICAgICBlbmR3aGlsZQogICAgIGVuZGlmCisgICAgaWYgJmZpbGV0eXBlICE9ICJtYW4iCisgICAgICBuZXcKKyAgICAgIHNldGwgbm9udSBmZGM9MAorICAgIGVuZGlmCiAgIGVuZGlmCiAgIHNpbGVudCBleGVjICJlZGl0ICRIT01FLyIucGFnZS4iLiIuc2VjdC4ifiIKICAgIiBBdm9pZCB3YXJuaW5nIGZvciBlZGl0aW5nIHRoZSBkdW1teSBmaWxlIHR3aWNlCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3BocC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3BocC52aW0KaW5kZXggZjBiM2UwMi4uODZjZjg5YyAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9waHAudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vcGhwLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglwaHAKICIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDA1IFNlcCAwNQorIiBMYXN0IENoYW5nZWQ6IDIwMDYgSnVsIDE1CiAiIFVSTDoJCWh0dHA6Ly9teXdlYnBhZ2UubmV0c2NhcGUuY29tL3NoYXJwcGVvcGxlL3ZpbS9mdHBsdWdpbgogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZgpAQCAtMzAsNiArMzAsOSBAQAogaWYgZXhpc3RzKCJiOm1hdGNoX3dvcmRzIikKICAgICBsZXQgczptYXRjaF93b3JkcyA9IGI6bWF0Y2hfd29yZHMKIGVuZGlmCitpZiBleGlzdHMoImI6bWF0Y2hfc2tpcCIpCisgICAgdW5sZXQgYjptYXRjaF9za2lwCitlbmRpZgogCiAiIENoYW5nZSB0aGUgOmJyb3dzZSBlIGZpbHRlciB0byBwcmltYXJpbHkgc2hvdyBQSFAtcmVsYXRlZCBmaWxlcy4KIGlmIGhhcygiZ3VpX3dpbjMyIikKQEAgLTQxLDEyICs0NCwxMyBAQAogc2V0bG9jYWwgaW5jbHVkZT1cXFwocmVxdWlyZVxcXHxpbmNsdWRlXFxcKVxcXChfb25jZVxcXClcXFw/CiBzZXRsb2NhbCBpc2tleXdvcmQrPSQKIGlmIGV4aXN0cygibG9hZGVkX21hdGNoaXQiKQotICAgIGxldCBiOm1hdGNoX3dvcmRzID0gJzxwaHA/Oj8+LFw8c3dpdGNoXD46XDxlbmRzd2l0Y2hcPiwnIC4KKyAgICBsZXQgYjptYXRjaF93b3JkcyA9ICc8P3BocDo/PixcPHN3aXRjaFw+Olw8ZW5kc3dpdGNoXD4sJyAuCiAJCSAgICAgIFwgJ1w8aWZcPjpcPGVsc2VpZlw+Olw8ZWxzZVw+Olw8ZW5kaWZcPiwnIC4KIAkJICAgICAgXCAnXDx3aGlsZVw+Olw8ZW5kd2hpbGVcPiwnIC4KIAkJICAgICAgXCAnXDxkb1w+Olw8d2hpbGVcPiwnIC4KIAkJICAgICAgXCAnXDxmb3JcPjpcPGVuZGZvclw+LCcgLgogCQkgICAgICBcICdcPGZvcmVhY2hcPjpcPGVuZGZvcmVhY2hcPiwnIC4KKyAgICAgICAgICAgICAgICAgICAgICBcICcoOiksWzpdLHs6fSwnIC4KIAkJICAgICAgXCBzOm1hdGNoX3dvcmRzCiBlbmRpZgogIiAjIyMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vdmltLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vdmltLnZpbQppbmRleCA2OThkM2VlLi43OGZiNmVjIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3ZpbS52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi92aW0udmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luCiAiIExhbmd1YWdlOglWaW0KICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDUgRmViIDE0CisiIExhc3QgQ2hhbmdlOgkyMDA2IFNlcCAyNgogCiAiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQpAQCAtNDgsNiArNDgsNyBAQAogICBsZXQgYjptYXRjaF93b3JkcyA9CiAJXCAnXDxmdVwlW25jdGlvbl1cPjpcPHJldHVcJVtybl1cPjpcPGVuZGZcJVt1bmN0aW9uXVw+LCcgLgogCVwgJ1w8d2hcJVtpbGVdXD46XDxicmVhXCVba11cPjpcPGNvblwlW3RpbnVlXVw+Olw8ZW5kd1wlW2hpbGVdXD4sJyAuCisJXCAnXDxmb3JcPjpcPGJyZWFcJVtrXVw+Olw8Y29uXCVbdGludWVdXD46XDxlbmRmb1wlW3JdXD4sJyAuCiAJXCAnXDxpZlw+Olw8ZWxcJVtzZWlmXVw+Olw8ZW5cJVtkaWZdXD4sJyAuCiAJXCAnXDx0cnlcPjpcPGNhdFwlW2NoXVw+Olw8ZmluYVwlW2xseV1cPjpcPGVuZHRcJVtyeV1cPiwnIC4KIAlcICdcPGF1Z1wlW3JvdXBdXHNcK1wlKEVORFw+XClcQCFcUzpcPGF1Z1wlW3JvdXBdXHNcK0VORFw+LCcgLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvYnN0LnZpbSBiL3J1bnRpbWUvaW5kZW50L2JzdC52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkzM2Q4MAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L2JzdC52aW0KQEAgLTAsMCArMSw3NSBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6CWJzdAorIiBBdXRob3I6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KKyIgJElkJAorCitpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCisgICAgZmluaXNoCitlbmRpZgorbGV0IGI6ZGlkX2luZGVudCA9IDEKKworc2V0bG9jYWwgZXhwYW5kdGFiCitzZXRsb2NhbCBpbmRlbnRleHByPUdldEJzdEluZGVudCh2OmxudW0pCisic2V0bG9jYWwgc21hcnRpbmRlbnQKK3NldGxvY2FsIGNpbmtleXMmCitzZXRsb2NhbCBjaW5rZXlzLT0wIworc2V0bG9jYWwgaW5kZW50a2V5cyYKKyJzZXRsb2NhbCBpbmRlbnRrZXlzKz0wJQorCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbiBvbmNlLgoraWYgZXhpc3RzKCIqR2V0QnN0SW5kZW50IikKKyAgICBmaW5pc2gKK2VuZGlmCisKK2Z1bmN0aW9uISBzOnByZXZnb29kKGxudW0pCisgICAgIiBGaW5kIGEgbm9uLWJsYW5rIGxpbmUgYWJvdmUgdGhlIGN1cnJlbnQgbGluZS4KKyAgICAiIFNraXAgb3ZlciBjb21tZW50cy4KKyAgICBsZXQgbG51bSA9IGE6bG51bQorICAgIHdoaWxlIGxudW0gPiAwCisgICAgICAgIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKGxudW0gLSAxKQorICAgICAgICBpZiBnZXRsaW5lKGxudW0pICF+ICdeXHMqJS4qJCcKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVuZGlmCisgICAgZW5kd2hpbGUKKyAgICByZXR1cm4gbG51bQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6c3RyaXAobG51bSkKKyAgICBsZXQgbGluZSA9IGdldGxpbmUoYTpsbnVtKQorICAgIGxldCBsaW5lID0gc3Vic3RpdHV0ZShsaW5lLCciW14iXSoiJywnIiInLCdnJykKKyAgICBsZXQgbGluZSA9IHN1YnN0aXR1dGUobGluZSwnJS4qJywnJywnJykKKyAgICBsZXQgbGluZSA9IHN1YnN0aXR1dGUobGluZSwnXlxzXCsnLCcnLCcnKQorICAgIHJldHVybiBsaW5lCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgczpjb3VudChzdHJpbmcsY2hhcikKKyAgICBsZXQgc3RyID0gc3Vic3RpdHV0ZShhOnN0cmluZywnW14nLmE6Y2hhci4nXScsJycsJ2cnKQorICAgIHJldHVybiBzdHJsZW4oc3RyKQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIEdldEJzdEluZGVudChsbnVtKSBhYm9ydAorICAgIGlmIGE6bG51bSA9PSAxCisgICAgICAgIHJldHVybiAwCisgICAgZW5kaWYKKyAgICBsZXQgbG51bSA9IHM6cHJldmdvb2QoYTpsbnVtKQorICAgIGlmIGxudW0gPD0gMAorICAgICAgICByZXR1cm4gaW5kZW50KGE6bG51bSAtIDEpCisgICAgZW5kaWYKKyAgICBsZXQgbGluZSA9IHM6c3RyaXAobG51bSkKKyAgICBsZXQgY2xpbmUgPSBzOnN0cmlwKGE6bG51bSkKKyAgICBpZiBjbGluZSA9fiAnXn0nICYmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgICAgICAgIGNhbGwgY3Vyc29yKGE6bG51bSxpbmRlbnQoYTpsbnVtKSkKKyAgICAgICAgaWYgc2VhcmNocGFpcigneycsJycsJ30nLCdiVycsInN5bklEYXR0cihzeW5JRChsaW5lKCcuJyksY29sKCcuJyksMSksJ25hbWUnKSA9fj8gJ2NvbW1lbnRcXHxzdHJpbmcnIikKKyAgICAgICAgICAgIGlmIGNvbCgnLicpKzEgPT0gY29sKCckJykKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZW50KCcuJykKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdmlydGNvbCgnLicpLTEKKyAgICAgICAgICAgIGVuZGlmCisgICAgICAgIGVuZGlmCisgICAgZW5kaWYKKyAgICBsZXQgZmFrZWxpbmUgPSBzdWJzdGl0dXRlKGxpbmUsJ159JywnJywnJykubWF0Y2hzdHIoY2xpbmUsJ159JykKKyAgICBsZXQgaW5kID0gaW5kZW50KGxudW0pCisgICAgbGV0IGluZCA9IGluZCArICZzdyAqIHM6Y291bnQobGluZSwneycpCisgICAgbGV0IGluZCA9IGluZCAtICZzdyAqIHM6Y291bnQoZmFrZWxpbmUsJ30nKQorICAgIHJldHVybiBpbmQKK2VuZGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9jb2JvbC52aW0gYi9ydW50aW1lL2luZGVudC9jb2JvbC52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWVkOGE0NwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L2NvYm9sLnZpbQpAQCAtMCwwICsxLDIxNiBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6CWNvYm9sCisiIEF1dGhvcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorIiAkSWQkCisKK2lmIGV4aXN0cygiYjpkaWRfaW5kZW50IikKKyAgICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfaW5kZW50ID0gMQorCitzZXRsb2NhbCBleHBhbmR0YWIKK3NldGxvY2FsIGluZGVudGV4cHI9R2V0Q29ib2xJbmRlbnQodjpsbnVtKQorc2V0bG9jYWwgaW5kZW50a2V5cyYKK3NldGxvY2FsIGluZGVudGtleXMrPTA8Kj4sMC8sMCQsMD0wMSw9fmRpdmlzaW9uLD1+c2VjdGlvbiwwPX5lbmQsMD1+dGhlbiwwPX5lbHNlLDA9fndoZW4sKjxSZXR1cm4+LC4KKworIiBPbmx5IGRlZmluZSB0aGUgZnVuY3Rpb24gb25jZS4KK2lmIGV4aXN0cygiKkdldENvYm9sSW5kZW50IikKKyAgICBmaW5pc2gKK2VuZGlmCisKK2xldCBzOnNraXAgPSAnZ2V0bGluZSgiLiIpID1+ICJeLlxcezZcXH1bKi8kLV1cXHxcIlteXCJdKlwiIicKKworZnVuY3Rpb24hIHM6cHJldmdvb2QobG51bSkKKyAgICAiIEZpbmQgYSBub24tYmxhbmsgbGluZSBhYm92ZSB0aGUgY3VycmVudCBsaW5lLgorICAgICIgU2tpcCBvdmVyIGNvbW1lbnRzLgorICAgIGxldCBsbnVtID0gYTpsbnVtCisgICAgd2hpbGUgbG51bSA+IDAKKyAgICAgICAgbGV0IGxudW0gPSBwcmV2bm9uYmxhbmsobG51bSAtIDEpCisgICAgICAgIGxldCBsaW5lID0gZ2V0bGluZShsbnVtKQorICAgICAgICBpZiBsaW5lICF+PyAnXlxzKlsqLyQtXScgJiYgbGluZSAhfj8gJ14uXHs2XH1bKi8kQ0QtXScKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVuZGlmCisgICAgZW5kd2hpbGUKKyAgICByZXR1cm4gbG51bQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6c3RyaXBwZWQobG51bSkKKyAgICByZXR1cm4gc3Vic3RpdHV0ZShzdHJwYXJ0KGdldGxpbmUoYTpsbnVtKSwwLDcyKSwnXlxzKicsJycsJycpCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgczpvcHRpb25hbGJsb2NrKGxudW0saW5kLGJsb2NrcyxjbGF1c2VzKQorICAgIGxldCBpbmQgPSBhOmluZAorICAgIGxldCBjbGF1c2VzID0gJ1xjXDxcJShcPE5PVFxzXCtcKVxAPCFcJShOT1Rcc1wrXClcPVwlKCcuYTpjbGF1c2VzLidcKScKKyAgICBsZXQgYmVnaW4gPSAnXGMtXEA8IVw8XCUoJy5hOmJsb2Nrcy4nXClcPicKKyAgICBsZXQgYmVnaW5mdWxsID0gYmVnaW4uJ1x6ZS4qXCUoXG5cJShccypcJShbKi8kLV0uKlwpXD1cblwpKlwpXD1ccypcJSgnLmNsYXVzZXMuJ1wpJworICAgIGxldCBlbmQgICA9ICdcY1w8ZW5kLVwlKCcuYTpibG9ja3MuJ1wpXD5cfFwlKFwuXCUoIFx8JFwpXClcQD0nCisgICAgbGV0IGNsaW5lID0gczpzdHJpcHBlZChhOmxudW0pCisgICAgbGV0IGxpbmUgID0gczpzdHJpcHBlZChzOnByZXZnb29kKGE6bG51bSkpCisgICAgaWYgY2xpbmUgPX4/IGNsYXVzZXMgIiYmIGxpbmUgIX4/ICdec2VhcmNoXD4nCisgICAgICAgIGNhbGwgY3Vyc29yKGE6bG51bSwxKQorICAgICAgICBsZXQgbGFzdGNsYXVzZSA9IHNlYXJjaHBhaXIoYmVnaW5mdWxsLGNsYXVzZXMsZW5kLCdiV3InLHM6c2tpcCkKKyAgICAgICAgaWYgZ2V0bGluZShsYXN0Y2xhdXNlKSA9fj8gY2xhdXNlcyAmJiBzOnN0cmlwcGVkKGxhc3RjbGF1c2UpICF+PyAnXicuYmVnaW4KKyAgICAgICAgICAgIGxldCBpbmQgPSBpbmRlbnQobGFzdGNsYXVzZSkKKyAgICAgICAgZWxzZWlmIGxhc3RjbGF1c2UgPiAwCisgICAgICAgICAgICBsZXQgaW5kID0gaW5kZW50KGxhc3RjbGF1c2UpICsgJnN3CisgICAgICAgICAgICAibGV0IGluZCA9IGluZCArICZzdworICAgICAgICBlbmRpZgorICAgIGVsc2VpZiBsaW5lID1+PyBjbGF1c2VzICYmIGNsaW5lICF+PyBlbmQKKyAgICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgIGVuZGlmCisgICAgcmV0dXJuIGluZAorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIEdldENvYm9sSW5kZW50KGxudW0pIGFib3J0CisgICAgbGV0IG1pbnNoZnQgPSA2CisgICAgbGV0IGFzaGZ0ID0gbWluc2hmdCArIDEKKyAgICBsZXQgYnNoZnQgPSBhc2hmdCArIDQKKyAgICAiIChPYnNvbGV0ZSkgbnVtYmVyZWQgbGluZXMKKyAgICBpZiBnZXRsaW5lKGE6bG51bSkgPX4/ICdeXHMqXGRcezZcfVwlKCRcfFsgKi8kQ0QtXVwpJworICAgICAgICByZXR1cm4gMAorICAgIGVuZGlmCisgICAgbGV0IGNsaW5lID0gczpzdHJpcHBlZChhOmxudW0pCisgICAgIiBDb21tZW50cywgZXRjLiBtdXN0IHN0YXJ0IGluIHRoZSA3dGggY29sdW1uCisgICAgaWYgY2xpbmUgPX4/ICdeWyovJC1dJworICAgICAgICByZXR1cm4gbWluc2hmdAorICAgIGVsc2VpZiBjbGluZSA9fiMgJ15bQ0RdJyAmJiBpbmRlbnQoYTpsbnVtKSA9PSBtaW5zaGZ0CisgICAgICAgIHJldHVybiBtaW5zaGZ0CisgICAgZW5kaWYKKyAgICAiIERpdmlzaW9ucywgc2VjdGlvbnMsIGFuZCBmaWxlIGRlc2NyaXB0aW9ucyBzdGFydCBpbiBhcmVhIEEKKyAgICBpZiBjbGluZSA9fj8gJ1w8XChESVZJU0lPTlx8U0VDVElPTlwpXCUoJFx8XC5cKScgfHwgY2xpbmUgPX4/ICdeW0ZTXURcPicKKyAgICAgICAgcmV0dXJuIGFzaGZ0CisgICAgZW5kaWYKKyAgICAiIEZpZWxkcworICAgIGlmIGNsaW5lID1+PyAnXjAqXCgxXHw3N1wpXD4nCisgICAgICAgIHJldHVybiBhc2hmdAorICAgIGVuZGlmCisgICAgaWYgY2xpbmUgPX4/ICdeXGRcK1w+JworICAgICAgICBsZXQgY251bSA9IG1hdGNoc3RyKGNsaW5lLCdeXGRcK1w+JykKKyAgICAgICAgbGV0IGRlZmF1bHQgPSAwCisgICAgICAgIGxldCBzdGVwID0gLTEKKyAgICAgICAgd2hpbGUgc3RlcCA8IDIKKyAgICAgICAgbGV0IGxudW0gPSBhOmxudW0KKyAgICAgICAgd2hpbGUgbG51bSA+IDAgJiYgbG51bSA8IGxpbmUoJyQnKSAmJiBsbnVtID4gYTpsbnVtIC0gNTAwICYmIGxudW0gPCBhOmxudW0gKyA1MDAKKyAgICAgICAgICAgIGxldCBsbnVtID0gc3RlcCA+IDAgPyBuZXh0bm9uYmxhbmsobG51bSArIHN0ZXApIDogcHJldm5vbmJsYW5rKGxudW0gKyBzdGVwKQorICAgICAgICAgICAgbGV0IGxpbmUgPSBnZXRsaW5lKGxudW0pCisgICAgICAgICAgICBsZXQgbGluZGVudCA9IGluZGVudChsbnVtKQorICAgICAgICAgICAgaWYgbGluZSA9fj8gJ15ccypcZFwrXD4nCisgICAgICAgICAgICAgICAgbGV0IG51bSA9IG1hdGNoc3RyKGxpbmUsJ15ccypcenNcZFwrXD4nKQorICAgICAgICAgICAgICAgIGlmIDArY251bSA9PSBudW0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmRlbnQKKyAgICAgICAgICAgICAgICBlbHNlaWYgMCtjbnVtID4gbnVtICYmIGRlZmF1bHQgPCBsaW5kZW50ICsgJnN3CisgICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0ID0gbGluZGVudCArICZzdworICAgICAgICAgICAgICAgIGVuZGlmCisgICAgICAgICAgICBlbHNlaWYgbGluZGVudCA8IGJzaGZ0ICYmIGxpbmRlbnQgPj0gYXNoZnQKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZW5kaWYKKyAgICAgICAgZW5kd2hpbGUKKyAgICAgICAgbGV0IHN0ZXAgPSBzdGVwICsgMgorICAgICAgICBlbmR3aGlsZQorICAgICAgICByZXR1cm4gZGVmYXVsdCA/IGRlZmF1bHQgOiBic2hmdAorICAgIGVuZGlmCisgICAgbGV0IGxudW0gPSBzOnByZXZnb29kKGE6bG51bSkKKyAgICAiIEhpdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUsIHVzZSAiemVybyIgaW5kZW50LgorICAgIGlmIGxudW0gPT0gMAorICAgICAgICByZXR1cm4gYXNoZnQKKyAgICBlbmRpZgorICAgICIgSW5pdGlhbCBzcGFjZXMgYXJlIGlnbm9yZWQKKyAgICBsZXQgbGluZSA9IHM6c3RyaXBwZWQobG51bSkKKyAgICBsZXQgaW5kID0gaW5kZW50KGxudW0pCisgICAgIiBQYXJhZ3JhcGhzLiAgVGhlcmUgbWF5IGJlIHNvbWUgZmFsc2UgcG9zaXRpdmVzLgorICAgIGlmIGNsaW5lID1+PyAnXlwoXGFbQS1aMC05LV0qW0EtWjAtOV1cfFxkW0EtWjAtOS1dKlxhXClcLicgIlxzKiQnCisgICAgICAgIGlmIGNsaW5lICF+PyAnXkVYSVRccypcLicgJiYgbGluZSA9fj8gJ1wuXHMqJCcKKyAgICAgICAgICAgIHJldHVybiBhc2hmdAorICAgICAgICBlbmRpZgorICAgIGVuZGlmCisgICAgIiBQYXJhZ3JhcGhzIGluIHRoZSBpZGVudGlmaWNhdGlvbiBkaXZpc2lvbi4KKyAgICAiaWYgY2xpbmUgPX4/ICdeXChQUk9HUkFNLUlEXHxBVVRIT1JcfElOU1RBTExBVElPTlx8JyAuCisgICAgICAgICAgICAgICAgIlwgJ0RBVEUtV1JJVFRFTlx8REFURS1DT01QSUxFRFx8U0VDVVJJVFlcKVw+JworICAgICAgICAicmV0dXJuIGFzaGZ0CisgICAgImVuZGlmCisgICAgaWYgbGluZSA9fj8gJ1wuJCcKKyAgICAgICAgIiBYWFgKKyAgICAgICAgcmV0dXJuIGJzaGZ0CisgICAgZW5kaWYKKyAgICBpZiBsaW5lID1+PyAnXlBFUkZPUk1cPicKKyAgICAgICAgbGV0IHBlcmZsaW5lID0gc3Vic3RpdHV0ZShsaW5lLCAnXGNeUEVSRk9STVxzKicsICIiLCAiIikKKyAgICAgICAgaWYgcGVyZmxpbmUgPX4/ICdeXCUoXGtcK1xzXCtUSU1FU1wpXD1ccyokJworICAgICAgICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgICAgICBlbHNlaWYgcGVyZmxpbmUgPX4/ICdeXCUoV0lUSFxzXCtURVNUXHxWQVJZSU5HXHxVTlRJTFwpXD4uKlteLl0kJworICAgICAgICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgICAgICBlbmRpZgorICAgIGVuZGlmCisgICAgaWYgbGluZSA9fj8gJ15cJShJRlx8VEhFTlx8RUxTRVx8UkVBRFx8RVZBTFVBVEVcfFNFQVJDSFx8U0VMRUNUXClcPicKKyAgICAgICAgbGV0IGluZCA9IGluZCArICZzdworICAgIGVuZGlmCisgICAgbGV0IGluZCA9IHM6b3B0aW9uYWxibG9jayhhOmxudW0saW5kLCdBRERcfENPTVBVVEVcfERJVklERVx8TVVMVElQTFlcfFNVQlRSQUNUJywnT05cc1wrU0laRVxzXCtFUlJPUicpCisgICAgbGV0IGluZCA9IHM6b3B0aW9uYWxibG9jayhhOmxudW0saW5kLCdTVFJJTkdcfFVOU1RSSU5HXHxBQ0NFUFRcfERJU1BMQVlcfENBTEwnLCdPTlxzXCtPVkVSRkxPV1x8T05cc1wrRVhDRVBUSU9OJykKKyAgICBpZiBjbGluZSAhfj8gJ15BVFxzXCtFTkRcPicgfHwgbGluZSAhfj8gJ15TRUFSQ0hcPicKKyAgICAgICAgbGV0IGluZCA9IHM6b3B0aW9uYWxibG9jayhhOmxudW0saW5kLCdERUxFVEVcfFJFV1JJVEVcfFNUQVJUXHxXUklURVx8UkVBRCcsJ0lOVkFMSURcc1wrS0VZXHxBVFxzXCtFTkRcfE5PXHNcK0RBVEFcfEFUXHNcK0VORC1PRi1QQUdFJykKKyAgICBlbmRpZgorICAgIGlmIGNsaW5lID1+PyAnXldIRU5cPicKKyAgICAgICAgY2FsbCBjdXJzb3IoYTpsbnVtLDEpCisgICAgICAgICIgV2UgYWxzbyBzZWFyY2ggZm9yIFJFQUQgc28gdGhhdCBjb250YWluZWQgQVQgRU5EcyBhcmUgc2tpcHBlZAorICAgICAgICBsZXQgbGFzdGNsYXVzZSA9IHNlYXJjaHBhaXIoJ1xjLVxAPCFcPFwlKFNFQVJDSFx8RVZBTFVBVEVcfFJFQURcKVw+JywnXGNcPFwlKFdIRU5cfEFUXHNcK0VORFwpXD4nLCdcY1w8RU5ELVwlKFNFQVJDSFx8RVZBTFVBVEVcfFJFQURcKVw+JywnYlcnLHM6c2tpcCkKKyAgICAgICAgbGV0IGc6Zm9vID0gczpzdHJpcHBlZChsYXN0Y2xhdXNlKQorICAgICAgICBpZiBzOnN0cmlwcGVkKGxhc3RjbGF1c2UpID1+PyAnXGNcPFwlKFdIRU5cfEFUXHNcK0VORFwpXD4nCisgICAgICAgICAgICAiJiYgczpzdHJpcHBlZChsYXN0Y2xhdXNlKSAhfj8gJ15cJShTRUFSQ0hcfEVWQUxVQVRFXHxSRUFEXClcPicKKyAgICAgICAgICAgIGxldCBpbmQgPSBpbmRlbnQobGFzdGNsYXVzZSkKKyAgICAgICAgZWxzZWlmIGxhc3RjbGF1c2UgPiAwCisgICAgICAgICAgICBsZXQgaW5kID0gaW5kZW50KGxhc3RjbGF1c2UpICsgJnN3CisgICAgICAgIGVuZGlmCisgICAgZWxzZWlmIGxpbmUgPX4/ICdeV0hFTlw+JworICAgICAgICBsZXQgaW5kID0gaW5kICsgJnN3CisgICAgZW5kaWYKKyAgICAiSSdtIG5vdCBzdXJlIHdoeSBJIGhhZCB0aGlzCisgICAgImlmIGxpbmUgPX4/ICdeRUxTRVw+LVxAIScgJiYgbGluZSAhfj8gJ1wuJCcKKyAgICAgICAgImxldCBpbmQgPSBpbmRlbnQoczpwcmV2Z29vZChsbnVtKSkKKyAgICAiZW5kaWYKKyAgICBpZiBjbGluZSA9fj8gJ15cKEVORFwpXD4tXEAhJworICAgICAgICAiIE9uIGxpbmVzIHdpdGgganVzdCBFTkQsICdndWVzcycgYSBzaW1wbGUgc2hpZnQgbGVmdAorICAgICAgICBsZXQgaW5kID0gaW5kIC0gJnN3CisgICAgZWxzZWlmIGNsaW5lID1+PyAnXlwoRU5ELUlGXHxUSEVOXHxFTFNFXClcPi1cQCEnCisgICAgICAgIGNhbGwgY3Vyc29yKGE6bG51bSxpbmRlbnQoYTpsbnVtKSkKKyAgICAgICAgbGV0IG1hdGNoID0gc2VhcmNocGFpcignXGMtXEA8IVw8SUZcPicsJ1xjLVxAPCFcJShUSEVOXHxFTFNFXClcPicsJ1xjLVxAPCFcPEVORC1JRlw+XHpzJywnYm5XJyxzOnNraXApCisgICAgICAgIGlmIG1hdGNoID4gMAorICAgICAgICAgICAgbGV0IGluZCA9IGluZGVudChtYXRjaCkKKyAgICAgICAgZW5kaWYKKyAgICBlbHNlaWYgY2xpbmUgPX4/ICdeRU5ELVtBLVpdJworICAgICAgICBsZXQgYmVnaW53b3JkID0gbWF0Y2hzdHIoY2xpbmUsJ1xjXDxFTkQtXHpzW0EtWjAtOS1dXCsnKQorICAgICAgICBsZXQgZW5kd29yZCA9ICdFTkQtJy5iZWdpbndvcmQKKyAgICAgICAgbGV0IGZpcnN0ID0gMAorICAgICAgICBsZXQgc3VmZml4ID0gJy4qXCUoXG5cJShcJShccypcfC5cezZcfVwpWyovXS4qXG5cKSpcKVw9XHMqJworICAgICAgICBpZiBiZWdpbndvcmQgPX4/ICdeXCUoQUREXHxDT01QVVRFXHxESVZJREVcfE1VTFRJUExZXHxTVUJUUkFDVFwpJCcKKyAgICAgICAgICAgIGxldCBiZWdpbndvcmQgPSBiZWdpbndvcmQgLiBzdWZmaXggLiAnXDxcJShOT1Rcc1wrXClcPU9OXHNcK1NJWkVcc1wrRVJST1InCisgICAgICAgICAgICBsZXQgZzpiZWdpbndvcmQgPSBiZWdpbndvcmQKKyAgICAgICAgICAgIGxldCBmaXJzdCA9IDEKKyAgICAgICAgZWxzZWlmIGJlZ2lud29yZCA9fj8gJ15cJShTVFJJTkdcfFVOU1RSSU5HXCkkJworICAgICAgICAgICAgbGV0IGJlZ2lud29yZCA9IGJlZ2lud29yZCAuIHN1ZmZpeCAuICdcPFwlKE5PVFxzXCtcKVw9T05cc1wrT1ZFUkZMT1cnCisgICAgICAgICAgICBsZXQgZmlyc3QgPSAxCisgICAgICAgIGVsc2VpZiBiZWdpbndvcmQgPX4/ICdeXCUoQUNDRVBUXHxESVNQTEFZXCkkJworICAgICAgICAgICAgbGV0IGJlZ2lud29yZCA9IGJlZ2lud29yZCAuIHN1ZmZpeCAuICdcPFwlKE5PVFxzXCtcKVw9T05cc1wrRVhDRVBUSU9OJworICAgICAgICAgICAgbGV0IGZpcnN0ID0gMQorICAgICAgICBlbHNlaWYgYmVnaW53b3JkID09PyAnQ0FMTCcKKyAgICAgICAgICAgIGxldCBiZWdpbndvcmQgPSBiZWdpbndvcmQgLiBzdWZmaXggLiAnXDxcJShOT1Rcc1wrXClcPU9OXHNcK1wlKEVYQ0VQVElPTlx8T1ZFUkZMT1dcKScKKyAgICAgICAgICAgIGxldCBmaXJzdCA9IDEKKyAgICAgICAgZWxzZWlmIGJlZ2lud29yZCA9fj8gJ15cJShERUxFVEVcfFJFV1JJVEVcfFNUQVJUXHxSRUFEXHxXUklURVwpJCcKKyAgICAgICAgICAgIGxldCBmaXJzdCA9IDEKKyAgICAgICAgICAgIGxldCBiZWdpbndvcmQgPSBiZWdpbndvcmQgLiBzdWZmaXggLiAnXDxcJShOT1Rcc1wrXClcPVwoSU5WQUxJRFxzXCtLRVknCisgICAgICAgICAgICBpZiBiZWdpbndvcmQgPX4/ICdeUkVBRCcKKyAgICAgICAgICAgICAgICBsZXQgZmlyc3QgPSAwCisgICAgICAgICAgICAgICAgbGV0IGJlZ2lud29yZCA9IGJlZ2lud29yZCAuICdcfEFUXHNcK0VORFx8Tk9cc1wrREFUQScKKyAgICAgICAgICAgIGVsc2VpZiBiZWdpbndvcmQgPX4/ICdeV1JJVEUnCisgICAgICAgICAgICAgICAgbGV0IGJlZ2lud29yZCA9IGJlZ2lud29yZCAuICdcfEFUXHNcK0VORC1PRi1QQUdFJworICAgICAgICAgICAgZW5kaWYKKyAgICAgICAgICAgIGxldCBiZWdpbndvcmQgPSBiZWdpbndvcmQgLiAnXCknCisgICAgICAgIGVuZGlmCisgICAgICAgIGNhbGwgY3Vyc29yKGE6bG51bSxpbmRlbnQoYTpsbnVtKSkKKyAgICAgICAgbGV0IG1hdGNoID0gc2VhcmNocGFpcignXGMtXEA8IVw8Jy5iZWdpbndvcmQuJ1w+JywnJywnXGNcPCcuZW5kd29yZC4nXD5cenMnLCdiblcnLihmaXJzdD8gJ3InIDogJycpLHM6c2tpcCkKKyAgICAgICAgaWYgbWF0Y2ggPiAwCisgICAgICAgICAgICBsZXQgaW5kID0gaW5kZW50KG1hdGNoKQorICAgICAgICBlbHNlaWYgY2xpbmUgPX4/ICdeXChFTkQtXChSRUFEXHxFVkFMVUFURVx8U0VBUkNIXHxQRVJGT1JNXClcKVw+JworICAgICAgICAgICAgbGV0IGluZCA9IGluZCAtICZzdworICAgICAgICBlbmRpZgorICAgIGVuZGlmCisgICAgcmV0dXJuIGluZCA8IGJzaGZ0ID8gYnNoZnQgOiBpbmQKK2VuZGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9mb3J0cmFuLnZpbSBiL3J1bnRpbWUvaW5kZW50L2ZvcnRyYW4udmltCmluZGV4IDk0YjlkYTEuLjdhNmIwNGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2ZvcnRyYW4udmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2ZvcnRyYW4udmltCkBAIC0yLDcgKzIsNyBAQAogIiBMYW5ndWFnZToJRm9ydHJhbjk1IChhbmQgRm9ydHJhbjkwLCBGb3J0cmFuNzcsIEYgYW5kIGVsZjkwKQogIiBWZXJzaW9uOgkwLjM3CiAiIFVSTDoJCWh0dHA6Ly93d3cudW5iLmNhL2NoZW0vYWppdC9pbmRlbnQvZm9ydHJhbi52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDYgQXByLiAyMgorIiBMYXN0IENoYW5nZToJMjAwNiBOb3YgMTYKICIgTWFpbnRhaW5lcjoJQWppdCBKLiBUaGFra2FyIDxhaml0QHVuYi5jYT47IDxodHRwOi8vd3d3LnVuYi5jYS9jaGVtL2FqaXQvPgogIiBVc2FnZToJRG8gOmhlbHAgZm9ydHJhbi1pbmRlbnQgZnJvbSBWaW0KIApAQCAtNzIsNyArNzIsNyBAQAogICBsZXQgcHJldnN0YXQ9c3Vic3RpdHV0ZShwcmV2bGluZSwgJyEuKiQnLCAnJywgJycpCiAKICAgIkluZGVudCBkbyBsb29wcyBvbmx5IGlmIHRoZXkgYXJlIGFsbCBndWFyYW50ZWVkIHRvIGJlIG9mIGRvL2VuZCBkbyB0eXBlCi0gIGlmIGV4aXN0cygiYjpmb3J0cmFuX2RvX2VuZGRvIikgfHwgZXhpc3RzKCJmb3J0cmFuX2RvX2VuZGRvIikKKyAgaWYgZXhpc3RzKCJiOmZvcnRyYW5fZG9fZW5kZG8iKSB8fCBleGlzdHMoImc6Zm9ydHJhbl9kb19lbmRkbyIpCiAgICAgaWYgcHJldnN0YXQgPX4/ICdeXHMqXChcZFwrXHNcKVw9XHMqXChcYVx3KlxzKjpcKVw9XHMqZG9cPicKICAgICAgIGxldCBpbmQgPSBpbmQgKyAmc3cKICAgICBlbmRpZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvaGFtc3Rlci52aW0gYi9ydW50aW1lL2luZGVudC9oYW1zdGVyLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2U3ZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9pbmRlbnQvaGFtc3Rlci52aW0KQEAgLTAsMCArMSw1NSBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6ICAgIEhhbXN0ZXIgU2NyaXB0IAorIiBWZXJzaW9uOiAgICAgMi4wLjYuMAorIiBMYXN0IENoYW5nZTogV2VkIE5vdiAwOCAyMDA2IDEyOjAyOjQyIFBNCisiIE1haW50YWluZXI6ICBEYXZpZCBGaXNoYnVybiA8ZmlzaGJ1cm5AaWFueXdoZXJlLmNvbT4KKworIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCitpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBiOmRpZF9pbmRlbnQgPSAxCisKK3NldGxvY2FsIGluZGVudGtleXMrPT1+aWYsPX5lbHNlLD1+ZW5kaWYsPX5lbmRmb3IsPX5lbmR3aGlsZQorc2V0bG9jYWwgaW5kZW50a2V5cys9PX5kbyw9fnVudGlsLD1+d2hpbGUsPX5yZXBlYXQsPX5mb3IsPX5sb29wCitzZXRsb2NhbCBpbmRlbnRrZXlzKz09fnN1Yiw9fmVuZHN1YgorCisiIERlZmluZSB0aGUgYXBwcm9wcmlhdGUgaW5kZW50IGZ1bmN0aW9uIGJ1dCBvbmx5IG9uY2UKK3NldGxvY2FsIGluZGVudGV4cHI9SGFtR2V0RnJlZUluZGVudCgpCitpZiBleGlzdHMoIipIYW1HZXRGcmVlSW5kZW50IikKKyAgZmluaXNoCitlbmRpZgorCitmdW5jdGlvbiBIYW1HZXRJbmRlbnQobG51bSkKKyAgbGV0IGluZCA9IGluZGVudChhOmxudW0pCisgIGxldCBwcmV2bGluZT1nZXRsaW5lKGE6bG51bSkKKworICAiIEFkZCBhIHNoaWZ0d2lkdGggdG8gc3RhdGVtZW50cyBmb2xsb3dpbmcgaWYsICBlbHNlLCBlbHNlaWYsCisgICIgY2FzZSwgc2VsZWN0LCBkZWZhdWx0LCBkbywgdW50aWwsIHdoaWxlLCBmb3IsIHN0YXJ0CisgIGlmIHByZXZsaW5lID1+PyAnXlxzKlw8XChpZlx8ZWxzZVwlKGlmXClcP1x8Zm9yXHxyZXBlYXRcfGRvXHx3aGlsZVx8c3ViXClcPicgCisgICAgbGV0IGluZCA9IGluZCArICZzdworICBlbmRpZgorCisgICIgU3VidHJhY3QgYSBzaGlmdHdpZHRoIGZyb20gZWxzZSwgZWxzZWlmLCBlbmQoaWZ8d2hpbGV8Zm9yKSwgdW50aWwKKyAgbGV0IGxpbmUgPSBnZXRsaW5lKHY6bG51bSkKKyAgaWYgbGluZSA9fj8gJ15ccypcKGVsc2VcfGVsc2VpZlx8bG9vcFx8dW50aWxcfGVuZFwlKGlmXHx3aGlsZVx8Zm9yXHxzdWJcKVwpXD4nCisgICAgbGV0IGluZCA9IGluZCAtICZzdworICBlbmRpZgorCisgIHJldHVybiBpbmQKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uIEhhbUdldEZyZWVJbmRlbnQoKQorICAiIEZpbmQgdGhlIHByZXZpb3VzIG5vbi1ibGFuayBsaW5lCisgIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKHY6bG51bSAtIDEpCisKKyAgIiBVc2UgemVybyBpbmRlbnQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZQorICBpZiBsbnVtID09IDAKKyAgICByZXR1cm4gMAorICBlbmRpZgorCisgIGxldCBpbmQ9SGFtR2V0SW5kZW50KGxudW0pCisgIHJldHVybiBpbmQKK2VuZGZ1bmN0aW9uCisKKyIgdmltOnN3PTIgdHc9ODAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X2NoaW5lc2VfZ2IuOTM2LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X2NoaW5lc2VfZ2IuOTM2LnZpbQppbmRleCBjZmIyNzY5Li4xOTM4MjZiIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9jaGluZXNlX2diLjkzNi52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfY2hpbmVzZV9nYi45MzYudmltCkBAIC0xMDksNyArMTA5LDcgQEAKIG1lbnV0cmFucyAmVG9vbHMJCQm5pL7fKCZUKQogbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JzPjXqrW91eK49lwgdGFnKCZKKTxUYWI+Z15dCiBtZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCQnM+Neqt7W72CgmQik8VGFiPl5UCi1tZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCQm9qMGiIFRhZ3MgzsS8/igmVCkKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCb2owaJcIFRhZ3NcIM7EvP4oJlQpCiAKICIgVG9vbHMuU3BlbGxpbmcgTWVudQogbWVudXRyYW5zICZTcGVsbGluZwkJCQnGtNC0vOyy6SgmUykKQEAgLTIwOSw3ICsyMDksNyBAQAogbWVudXRyYW5zICZVbmRvCQkJs7fP+igmVSkKIG1lbnV0cmFucyBDdSZ0CQkJvPTH0CgmVCkKIG1lbnV0cmFucyAmQ29weQkJCbi01sYoJkMpCi1tZW51dHJhbnMgJlBhc3RlCQnVs8z7KCZQKQorbWVudXRyYW5zICZQYXN0ZQkJ1bPM+SgmUCkKIG1lbnV0cmFucyAmRGVsZXRlCQnJvrP9KCZEKQogbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCdGh1PG/6QogbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCdGh1PG1pbTKKCZXKQpAQCAtMjMzLDcgKzIzMyw3IEBACiAgICAgdG1lbnUgVG9vbEJhci5SZWRvCQnW2Nf2CiAgICAgdG1lbnUgVG9vbEJhci5DdXQJCbz0x9C1vbz0zPmw5QogICAgIHRtZW51IFRvb2xCYXIuQ29weQkJuLTWxrW9vPTM+bDlCi0gICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJtNO89Mz5sOXVs8z7CisgICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJtNO89Mz5sOXVs8z5CiAgICAgdG1lbnUgVG9vbEJhci5GaW5kCQmy6dXSLi4uCiAgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAmy6dXSz8LSu7j2CiAgICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldgmy6dXSyc/Su7j2CmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9wdF9ici52aW0gYi9ydW50aW1lL2xhbmcvbWVudV9wdF9ici52aW0KaW5kZXggZWFhZDI2Zi4uMjhhNjJiNyAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfcHRfYnIudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X3B0X2JyLnZpbQpAQCAtMSw2ICsxLDYgQEAKLSIgTWVudSBUcmFuc2xhdGlvbnM6IFBvcnR1Z3XqcwotIiBNYWludGFpbmVyOiBKb3PpIGRlIFBhdWxhIDxqb3NlX2RlX3BhdWxhQGlnLmNvbS5icj4KLSIgTGFzdCBDaGFuZ2U6IDIwMDMgSnVuIDEyCisiIE1lbnUgVHJhbnNsYXRpb25zOiBQb3J0dWd16nMgZG8gQnJhc2lsCisiIE1haW50YWluZXI6IEpvc+kgZGUgUGF1bGEgPGpvc2VAaW5mb3ZpYXdlYi5jb20+CisiIExhc3QgQ2hhbmdlOiAyMDA2LTA5LTE5IDAyOjMwOjAwLTAzOjAwCiAiCiAKICIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCkBAIC0yNSw2ICsyNSw3IEBACiBtZW51dHJhbnMgJkNyZWRpdHMJCSZDculkaXRvcwogbWVudXRyYW5zIE8mcnBoYW5zCQkm03Jm429zCiBtZW51dHJhbnMgQ28mcHlpbmcJCSZMaWNlbudhCittZW51dHJhbnMgJlNwb25zb3IvUmVnaXN0ZXIJJkRvYXIvUmVnaXN0cmFyCiBtZW51dHJhbnMgJlZlcnNpb24JCSZWZXJz428KIG1lbnV0cmFucyAmQWJvdXQJCSZTb2JyZQogCkBAIC01OCw3ICs1OSw4IEBACiBtZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZTxUYWI+OiVzCVByb2N1cmFyXCBlXCBzdWJzdGl0JnVpcjxUYWI+OiVzCiBtZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZQkJUHJvY3VyYXJcIGVcIHN1YnN0aXQmdWlyCiBtZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZTxUYWI+OnMJUHJvY3VyYXJcIGVcIHN1YnN0aXR1aXI8VGFiPjpzCi1tZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJCU9wJuf1ZXMKK21lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkJJk9w5/VlcworbWVudXRyYW5zIFN0YXJ0dXBcICZTZXR0aW5ncwkJJkluaWNpYWxpemHn428KIAogIiBFZGl0L0dsb2JhbCBTZXR0aW5ncwogbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCQlPcOf1ZXNcICZHbG9iYWlzCkBAIC0xMTcsNyArMTE5LDcgQEAKIAogbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JCVNlbGVjaW9uYXJcIGZvJm50ZVwuXC5cLgogCi1tZW51dHJhbnMgJktleW1hcAlNYXBhXCBkZVwgdGVjbGFkbworbWVudXRyYW5zICZLZXltYXAJJk1hcGFcIGRlXCB0ZWNsYWRvCiBtZW51dHJhbnMgTm9uZQkJTmVuaHVtCiAKICIgUHJvZ3JhbW1pbmcgbWVudQpAQCAtMTI1LDYgKzEyNyw3IEBACiBtZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXQkmUHVsYXJcIHBhcmFcIGVzdGVcIHRhZzxUYWI+Z15dCiBtZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCQkmVm9sdGFyPFRhYj5eVAogbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJJkNvbnN0cnVpclwgQXJxdWl2b1wgZGVcIHRhZ3MKK21lbnV0cmFucyAmU3BlbGxpbmcJCQkmT3J0b2dyYWZpYQogbWVudXRyYW5zICZGb2xkaW5nCQkJJkRvYnJhCiBtZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlCQkmTWFrZTxUYWI+Om1ha2UKIG1lbnV0cmFucyAmTGlzdFwgRXJyb3JzPFRhYj46Y2wJCSZMaXN0YVwgZGVcIGVycm9zPFRhYj46Y2wKQEAgLTEzNCwxMCArMTM3LDI3IEBACiBtZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZAlMaXN0YXJcIGVycm9zXCAmYW50aWdvczxUYWI+OmNvbGQKIG1lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CUxpc3RhclwgZXJyb3NcICZub3ZvczxUYWI+OmNuZXcKIG1lbnV0cmFucyBFcnJvclwgJldpbmRvdwkJJkphbmVsYVwgZGVcIGVycm9zCi1tZW51dHJhbnMgJlNldFwgQ29tcGlsZXIJCURlZiZpbmlyXCBDb21waWxhZG9yCittZW51dHJhbnMgU2UmVFwgQ29tcGlsZXIJCURlZiZpbmlyXCBDb21waWxhZG9yCiBtZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAlDb252ZXJ0ZXJcIHBhcmFcIGhleGFkZWNpbWFsPFRhYj46JSF4eGQKIG1lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtcglDb252ZXImdGVyXCBkZVwgdm9sdGE8VGFiPjolIXh4ZFwgLXIKIAorIiBUb29scy5TcGVsbGluZyBtZW51CittZW51dHJhbnMgJlNwZWxsIENoZWNrIE9uCQkmQXRpdmFyIENvcnJl5+NvIE9ydG9ncuFmaWNhCittZW51dHJhbnMgJlNwZWxsIENoZWNrIE9mZgkJJkRlc2F0aXZhciBDb3JyZefjbyBPcnRvZ3LhZmljYQorbWVudXRyYW5zIFRvICZOZXh0IGVycm9yPFRhYj5dcwkJJlBy83hpbW8gRXJybzxUYWI+XXMKK21lbnV0cmFucyBUbyAmUHJldmlvdXMgRXJyb3I8VGFiPltzCUVycm8gQSZudGVyaW9yPFRhYj5bcworbWVudXRyYW5zIFN1Z2dlc3QgJkNvcnJlY3Rpb25zPFRhYj56PQkmU3VnZXJpciBDb3JyZef1ZXM8VGFiPno9CittZW51dHJhbnMgJlJlcGVhdCBjb3JyZWN0aW9uPFRhYj46c3BlbGxyZXBhbGwJJlJlcGV0aXIgQ29ycmXn4288VGFiPjpzcGVsbHJlcGFsbAorCittZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbiIgICAgICAgICAgICAgICBJbmds6nMKK21lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2F1IiAgICAgICAgICAgIEluZ2zqc1wgKGVuX2F1KQorbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fY2EiICAgICAgICAgICAgSW5nbOpzXCAoZW5fY2EpCittZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9nYiIgICAgICAgICAgICBJbmds6nNcIChlbl9nYikKK21lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX256IiAgICAgICAgICAgIEluZ2zqc1wgKGVuX256KQorbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fdXMiICAgICAgICAgICAgSW5nbOpzXCAoZW5fdXMpCisKK21lbnV0cmFucyAmRmluZFwgTW9yZVwgTGFuZ3VhZ2VzICAgICAgICAgICAgICAgICZCdXNjYXIgbWFpcyBpZGlvbWFzCisKICIgVG9vbHMuRm9sZCBNZW51CiBtZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkJCSZBdGl2YXIvRGVzYXRpdmFyXCBkb2JyYXM8VGFiPnppCiBtZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJCSZWZXJcIGxpbmhhXCBkb1wgY3Vyc29yPFRhYj56dgpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfc2xfc2kudXRmLTgudmltIGIvcnVudGltZS9sYW5nL21lbnVfc2xfc2kudXRmLTgudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNmU0NDkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2xhbmcvbWVudV9zbF9zaS51dGYtOC52aW0KQEAgLTAsMCArMSwyOTQgQEAKKyIgTWVudSBUcmFuc2xhdGlvbnM6CVNsb3ZlbmlhbiAvIFNsb3ZlbnNrbworIiBNYWludGFpbmVyOgkJTW9qY2EgTWlrbGF2ZWMgPG1vamNhLm1pa2xhdmVjLmxpc3RzQGdtYWlsLmNvbT4KKyIgT3JpZ2luYWxseSBCeToJTW9qY2EgTWlrbGF2ZWMgPG1vamNhLm1pa2xhdmVjLmxpc3RzQGdtYWlsLmNvbT4KKyIgTGFzdCBDaGFuZ2U6CQlTYXQsIDE3IEp1biAyMDA2CisiIHZpbTpzZXQgZm9sZG1ldGhvZD1tYXJrZXIgdGFic3RvcD04OgorCisiIFRPRE86IGFkZC9jaGVjayBhbGwgJyYncworCisiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgoraWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBkaWRfbWVudV90cmFucyA9IDEKKworc2NyaXB0ZW5jb2RpbmcgdXRmLTgKKworIiB7e3sgRklMRSAvIERBVE9URUtBCittZW51dHJhbnMgJkZpbGUJCQkJJkRhdG90ZWthCittZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCQkmT2RwcmlcIFwuXC5cLjxUYWI+OmUKK21lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCU9kcHJpXCBkZSZsamVub1wgXC5cLlwuPFRhYj46c3AKK21lbnV0cmFucyBPcGVuXCBUYWJcLlwuXC48VGFiPjp0YWJuZXcJT2RwcmlcIHZcIHphdmkmaGt1XCBcLlwuXC48VGFiPjp0YWJuZXcKK21lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk5vdmE8VGFiPjplbmV3CittZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJCSZaYXByaTxUYWI+OmNsb3NlCittZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJJlNocmFuaTxUYWI+OncKK21lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJU2hyYW5pXCAma290XCBcLlwuXC48VGFiPjpzYXYKK21lbnV0cmFucyAmUHJpbnQJCQlOYSZ0aXNuaQorbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJCVNocmFuaVwgaW5cICZrb27EjWFqPFRhYj46d3FhCittZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJCSZJemhvZDxUYWI+OnFhCisKK2lmIGhhcygiZGlmZiIpCisgICAgbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLglQcmltZXJqYWpcIHpcIChkaSZmZilcIFwuXC5cLgorICAgIG1lbnV0cmFucyBTcGxpdFwgUGF0Y2hlZFwgJkJ5XC5cLlwuCSZQb3ByYXZpXCB6XCAocGF0Y2gpXCBcLlwuXC4KK2VuZGlmCisiIH19fSBGSUxFIC8gREFUT1RFS0EKKworIiB7e3sgRURJVCAvIFVSRURJCittZW51dHJhbnMgJkVkaXQJCQkJJlVyZWRpCittZW51dHJhbnMgJlVuZG88VGFiPnUJCQkmUmF6dmVsamF2aTxUYWI+dQorbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCSZPYm5vdmk8VGFiPl5SCittZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JCVBvJm5vdmk8VGFiPlwuCittZW51dHJhbnMgQ3UmdDxUYWI+Iit4CQkJJkl6cmXFvmk8VGFiPiIreAorbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCQkmS29waXJhajxUYWI+Iit5CittZW51dHJhbnMgJlBhc3RlPFRhYj4iK2dQCQkmUHJpbGVwaTxUYWI+IitnUAorbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJCVZyaW5pXCBwcmVkPFRhYj5bcAorbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkJVnJpbmlcIHphPFRhYj5dcAorbWVudXRyYW5zICZEZWxldGU8VGFiPngJCQlJeiZicmnFoWk8VGFiPngKK21lbnV0cmFucyAmU2VsZWN0XCBhbGw8VGFiPmdnVkcJCUl6YmVyaVwgdnNlPFRhYj5nZ1ZHCittZW51dHJhbnMgJkZpbmRcLlwuXC4JCQlQbyZpxaHEjWlcIFwuXC5cLgorbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4JUG9pxaHEjWlcIGluXCAmemFtZW5qYWpcIFwuXC5cLgorCisiIFstLSBTRVRUSU5HUyAtLV0KK21lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkJCQlOYXN0YXZpdHZlXCBcLlwuXC4KK21lbnV0cmFucyBTdGFydHVwXCAmU2V0dGluZ3MJCQkJWmHEjWV0bmVcIG5hc3Rhdml0dmUKK21lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkJCQkmR2xvYmFsbmVcIG5hc3Rhdml0dmUKKworbWVudXRyYW5zIFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzIQlWa2xqdcSNaS9pemtsanXEjWlcIHBvdWRhcmphbmplXCBpc2thbmVnYVwgbml6YTxUYWI+OnNldFwgaGxzIQorbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEJCVZrbGp1xI1pL2l6a2xqdcSNaVwgbG/EjWV2YW5qZVwgdmVsaWtpaFwgaW5cIG1hbGloXCDEjXJrPFRhYj46c2V0XCBpYyEKK21lbnV0cmFucyBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtIQkJVmtsanXEjWkvaXprbGp1xI1pXCBrcmF0ZWtcIHNrb2tcIG5hXCBwcmlwYWRham/EjWlcIG9rbGVwYWo8VGFiPjpzZXRcIHNtIQorCittZW51dHJhbnMgJkNvbnRleHRcIGxpbmVzCQkJCcWgdFwuXCB2aWRuaWhcIHZyc3RpY1wgcHJlZC96YVwga3Vyem9yamVtCisKK21lbnV0cmFucyAmVmlydHVhbFwgRWRpdAkJCQlEb3ZvbGlcIHBvbG/FvmFqXCBrYXphbMSNa2EsXCBramVyXCBuaVwgYmVzZWRpbGEKK21lbnV0cmFucyBOZXZlcgkJCQkJCU5pa29saQorbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24JCQkJTGVcIG1lZFwgaXpiaXJhbmplbVwgYmxva2EKK21lbnV0cmFucyBJbnNlcnRcIG1vZGUJCQkJCUxlXCB2XCBuYcSNaW51XCB6YVwgcGlzYW5qZQorbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydAkJCQlQcmlcIG9ib2plbQorbWVudXRyYW5zIEFsd2F5cwkJCQkJVmVkbm8KK21lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQkJVmtsanXEjWkvaXprbGp1xI1pXCBuYcSNaW5cIHphXCBwaXNhbmplPFRhYj46c2V0XCBpbSEKK21lbnV0cmFucyBUb2dnbGVcIFZpXCBDJm9tcGF0aWJsZTxUYWI+OnNldFwgY3AhCQlWa2xqdcSNaS9pemtsanXEjWlcIHpkcnXFvmxqaXZvc3RcIHpcIFZpLWplbTxUYWI+OnNldFwgY3AhCisKK21lbnV0cmFucyBTZWFyY2hcICZQYXRoXC5cLlwuCQkJCVBvdFwgemFcIGlza2FuamVcIFwuXC5cLgorbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuCQkJCVRhJmctZGF0b3Rla2VcLlwuXC4KKworbWVudXRyYW5zIFRvZ2dsZVwgJlRvb2xiYXIJCQkJUG9rYcW+aS9za3JpalwgT3JvZGphCittZW51dHJhbnMgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIJCQlQb2thxb5pL3NrcmlqXCBzcG9kbmppXCBkcnNuaWsKK21lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIJCQlQb2thxb5pL3NrcmlqXCBsZXZpXCBkcnNuaWsKK21lbnV0cmFucyBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyCQkJUG9rYcW+aS9za3JpalwgZGVzbmlcIGRyc25paworCisiIEVkaXQvRmlsZSBTZXR0aW5ncworbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJCQkmTmFzdGF2aXR2ZVwgZGF0b3Rla2UKKworIiBCb29sZWFuIG9wdGlvbnMKK21lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51IQlQb2thxb5pL3NrcmlqXCDFoXRldmlsa2VcIHZyc3RpYzxUYWI+OnNldFwgbnUhCittZW51dHJhbnMgVG9nZ2xlXCAmTGlzdFwgTW9kZTxUYWI+OnNldFwgbGlzdCEJCVBva2HFvmkvc2tyaWpcIG5ldmlkbmVcIHpuYWtlPFRhYj46c2V0XCBsaXN0ISAiIHNwYWNlL3RhYgorbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJldyYXA8VGFiPjpzZXRcIHdyYXAhCQlWa2xqdcSNaS9pemtsanXEjWlcIHByZWxvbWVcIHZyc3RpYzxUYWI+OnNldFwgd3JhcCEKK21lbnV0cmFucyBUb2dnbGVcIFcmcmFwXCBhdFwgd29yZDxUYWI+OnNldFwgbGJyIQlWa2xqdcSNaS9pemtsanXEjWlcIHByZWxvbWVcIHZyc3RpY1wgbWVkXCBiZXNlZGFtaTxUYWI+OnNldFwgbGJyIQorbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkJVmtsanXEjWkvaXprbGp1xI1pXCB6YW1lbmphdm9cIHRhYnVsYXRvcmpldlwgc1wgcHJlc2xlZGtpPFRhYj46c2V0XCBldCEKK21lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhCQlWa2xqdcSNaS9pemtsanXEjWlcIGF2dG9tYXRza29cIHphbWlrYW5qZVwgdnJzdGljPFRhYj46c2V0XCBhaSEKK21lbnV0cmFucyBUb2dnbGVcICZDLWluZGVudGluZzxUYWI+OnNldFwgY2luIQkJVmtsanXEjWkvaXprbGp1xI1pXCBDLWpldnNraVwgbmHEjWluXCB6YW1pa2FuamFcIHZyc3RpYzxUYWI+OnNldFwgY2luIQorCisiIG90aGVyIG9wdGlvbnMKK21lbnV0cmFucyAmU2hpZnR3aWR0aAkJCQkJxaBpcmluYVwgemFtaWthXCB2cnN0aWMKK21lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkJCQnFoGlyaW5hXCAmdGFidWxhdG9yamEKK21lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JCQkJxaBpcmluYVwgYmVzZWRpbGFcIFwuXC5cLgorbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JCQkJRm9ybWF0XCAmZGF0b3Rla2VcIFwuXC5cLgorbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCQkJCSZCYXJ2bmFcIHNoZW1hXCBcLlwuXC4KK21lbnV0cmFucyAmS2V5bWFwCQkJCQkmS2V5bWFwCittZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkJCQlQaXNhdmFcIFwuXC5cLgorIiB9fX0gRURJVCAvIFVSRURJCisKKyIge3t7ICBUT09MUyAvIE9ST0RKQQorbWVudXRyYW5zICZUb29scwkJCQkJJk9yb2RqYQorbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JCQkmU2tvxI1pXCBrXCB0ZWpcIHpuYcSNa2k8VGFiPmdeXQorbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkJCQlTa2/EjWlcIE5hJnphajxUYWI+XlQKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCQkJTmFwcmF2aVwgZGF0b3Rla2VcIHpcIHpuYcSNa2FtaVwgKHRhZykKK2lmIGhhcygic3BlbGwiKQorICAgIG1lbnV0cmFucyAmU3BlbGxpbmcJCQkJCcSMcmtvdmFsbmlrCisgICAgbWVudXRyYW5zICZTcGVsbFwgQ2hlY2tcIE9uCQkJCSZWa2xqdcSNaQorICAgIG1lbnV0cmFucyBTcGVsbFwgQ2hlY2tcICZPZmYJCQkmSXprbGp1xI1pCisgICAgbWVudXRyYW5zIFRvXCAmTmV4dFwgZXJyb3I8VGFiPl1zCQkJS1wgJm5hc2xlZG5qaVwgbmFwYWtpPFRhYj5dcworICAgIG1lbnV0cmFucyBUb1wgJlByZXZpb3VzXCBlcnJvcjxUYWI+W3MJCUtcICZwcmVqxaFuamlcIG5hcGFraTxUYWI+W3MKKyAgICBtZW51dHJhbnMgU3VnZ2VzdFwgJkNvcnJlY3Rpb25zPFRhYj56PQkJUHJlZGxhZ2FqXCBwb3ByYXZlazxUYWI+ej0KKyAgICBtZW51dHJhbnMgJlJlcGVhdFwgY29ycmVjdGlvbjxUYWI+OnNwZWxscmVwYWxsCVBvJm5vdmlcIHBvcHJhdmtlXCBuYVwgdnNlaFwgYmVzZWRhaDxUYWI+OnNwZWxscmVwYWxsCisgICAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW4iCQkJQW5nbGXFoWtpXCAiZW4iCisgICAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fYXUiCQlBbmdsZcWha2lcICJlbl9hdSIKKyAgICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIJCUFuZ2xlxaFraVwgImVuX2NhIgorICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2diIgkJQW5nbGXFoWtpXCAiZW5fZ2IiCisgICAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fbnoiCQlBbmdsZcWha2lcICJlbl9ueiIKKyAgICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIJCUFuZ2xlxaFraVwgImVuX3VzIgorICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgInNsIgkJCVNsb3ZlbnNraVwgInNsIgorICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImRlIgkJCU5lbcWha2lcICJkZSIKKyAgICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cIAkJCcSMcmtvdmFsbmlrOlwKKyAgICBtZW51dHJhbnMgJkZpbmRcIE1vcmVcIExhbmd1YWdlcwkJCSZPc3RhbGlcIGplemlraQorZW5kaWYKK2lmIGhhcygiZm9sZGluZyIpCisgIG1lbnV0cmFucyAmRm9sZGluZwkJCQkJWnZpamFuamVcIGtvZGUKKyAgIiBvcGVuIGNsb3NlIGZvbGRzCisgIG1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aQkJT21vZ2/EjWkvb25lbW9nb8SNaVwgenZpamFuamU8VGFiPnppICIgT21vZ2/EjWkvb25lbW9nb8SNaVwgemF2aWhrZQorICBtZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJCQlQb2thxb5pXCB2cnN0aWNvXCBzXCBrYXphbMSNa29tPFRhYj56diAiIGtqZXIgamUga2F6YWxlYworICBtZW51dHJhbnMgVmllJndcIEN1cnNvclwgTGluZVwgb25seTxUYWI+ek16eAkJUG9rYcW+aVwgc2Ftb1wgdnJzdGljb1wgc1wga2F6YWzEjWtvbTxUYWI+ek16eAorICBtZW51dHJhbnMgQyZsb3NlXCBtb3JlXCBmb2xkczxUYWI+em0JCQladmlqXCBuYXNsZWRuamlcIG5pdm88VGFiPnptICIgWmFwcmlcIHZlxI1cIHphdmloa292CisgIG1lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNCQkJWnZpalwgdnNvXCBrb2RvPFRhYj56TSAiIFphcHJpXCB2c2VcIHphdmloa2UKKyAgbWVudXRyYW5zIE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIJCQlSYXp2aWpcIGVuXCBuaXZvPFRhYj56ciAiIE9kcHJpXCB2ZcSNXCB6YXZpaGtvdgorICBtZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSCQkJUmF6dmlqXCB2c29cIGtvZG88VGFiPnpSICIgT2RwcmlcIHZzZVwgemF2aWhrZQorICAiIGZvbGQgbWV0aG9kCisgIG1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQkJCUtyaXRlcmlqXCB6YVwgenZpamFuamUgIiBVc3R2YXJqYW5qZVwgemF2aWhrb3YKKyAgbWVudXRyYW5zIE0mYW51YWwJCQkJCSZSb8SNbm8KKyAgbWVudXRyYW5zIEkmbmRlbnQJCQkJCUdsZWRlXCBuYVwgJnBvcmF2bmF2bworICBtZW51dHJhbnMgRSZ4cHJlc3Npb24JCQkJCVpcICZpenJhemlcIChmb2xkZXhwcikKKyAgbWVudXRyYW5zIFMmeW50YXgJCQkJCUdsZWRlXCBuYVwgJnNpbnRha3NvCisgIG1lbnV0cmFucyAmRGlmZgkJCQkJUmF6bGlrZVwgKCZkaWZmKQorICBtZW51dHJhbnMgTWEmcmtlcgkJCQkJWlwgJm1hcmtlcmppL296bmHEjWJhbWkKKyAgIiBjcmVhdGUgYW5kIGRlbGV0ZSBmb2xkcworICAiIFRPRE8gYWNjZWxlcmF0b3JzCisgIG1lbnV0cmFucyBDcmVhdGVcICZGb2xkPFRhYj56ZgkJCVVzdHZhcmlcIHp2aXRlazxUYWI+emYKKyAgbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkJSXpicmnFoWlcIHp2aXRlazxUYWI+emQKKyAgbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQkJSXpicmnFoWlcIHZzZVwgenZpdGtlPFRhYj56RAorICAiIG1vdmluZyBhcm91bmQgaW4gZm9sZHMKKyAgbWVudXRyYW5zIEZvbGRcIGNvbHVtblwgJndpZHRoCQkJxaBpcmluYVwgZHJldmVzYVwgelwgenZpdGtpCitlbmRpZiAgIiBoYXMgZm9sZGluZworCitpZiBoYXMoImRpZmYiKQorICBtZW51dHJhbnMgJkRpZmYJCQkJCVJhemxpa2VcICgmRGlmZikKKyAgbWVudXRyYW5zICZVcGRhdGUJCQkJCSZQb3NvZG9iaTxUYWI+CisgIG1lbnV0cmFucyAmR2V0XCBCbG9jawkJCQkJJlNwcmVqbWlcIChzcHJlbWVuaVwgdG9cIG9rbm8pICIgWFhYOiBjaGVjayBpZiB0cmFuc2xhdGlvbiBpcyBPSworICBtZW51dHJhbnMgJlB1dFwgQmxvY2sJCQkJCSZQb8WhbGppXCAoc3ByZW1lbmlcIGRydWdvXCBva25vKQorZW5kaWYKKworbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZQkJCQlOYXByYXZpXCAoJm1ha2UpPFRhYj46bWFrZQorbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbAkJCQlQb2thxb5pXCBuYXBha2U8VGFiPjpjbAorbWVudXRyYW5zIEwmaXN0XCBNZXNzYWdlczxUYWI+OmNsIQkJCVBva2HFvmlcIHNwb3JvxI1pbGE8VGFiPjpjbCEKK21lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkJCQlLXCAmbmFzbGVkbmppXCBuYXBha2k8VGFiPjpjbgorbWVudXRyYW5zICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcAkJCUtcICZwcmVqxaFuamlcIG5hcGFraTxUYWI+OmNwCittZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZAkJCUtcICZzdGFyZWrFoWVtdVwgc2V6bmFtdVwgbmFwYWs8VGFiPjpjb2xkCittZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldwkJCUtcICZub3ZlasWhZW11XCBzZXpuYW11XCBuYXBhazxUYWI+OmNuZXcKKworbWVudXRyYW5zIEVycm9yXCAmV2luZG93CQkJCU9rbm9cIHpcIG5hcGFrYW1pCittZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4JCQkJJlBvc29kb2JpPFRhYj46Y3dpbgorbWVudXRyYW5zICZPcGVuPFRhYj46Y29wZW4JCQkJJk9kcHJpPFRhYj46Y29wZW4KK21lbnV0cmFucyAmQ2xvc2U8VGFiPjpjY2xvc2UJCQkJJlphcHJpPFRhYj46Y2Nsb3NlCisKK21lbnV0cmFucyAmU2V0XCBDb21waWxlcgkJCQlOYXN0YXZpXCAmcHJldmFqYWxuaWsKK21lbnV0cmFucyBTZSZUXCBDb21waWxlcgkJCQlOYXN0YXZpXCAmcHJldmFqYWxuaWsgIiBidWcgaW4gb3JpZ2luYWwgdHJhbnNsYXRpb24/CisKK21lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCQkJUHJldHZvcmlcIHZcIEhFJlg8VGFiPjolIXh4ZAorbWVudXRyYW5zIENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yCQkJUHJldHZvcmlcIG5hemFqPFRhYj46JSF4eGRcIC1yCisiIH19fSAgVE9PTFMgLyBPUk9ESkEKKworIiB7e3sgU1lOVEFYIC8gQkFSVkFOSkUgS09ERQorbWVudXRyYW5zICZTeW50YXgJCQkJJkJhcnZhbmplXCBrb2RlCittZW51dHJhbnMgJlNob3dcIGZpbGV0eXBlc1wgaW5cIG1lbnUJCVBvZHBydGVcIHZyc3RlXCBkYXRvdGVrCittZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJCQlTYW1vXCBiYXJ2YW5qZVwgKCcmc3ludGF4JykKK21lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28JCQlUdWRpXCBvYm5hxaFhbmplXCAoJyZmaWxldHlwZScpCittZW51dHJhbnMgJk9mZgkJCQkJJkl6a2xqdcSNZW5vCittZW51dHJhbnMgJk1hbnVhbAkJCQkmUm/EjW5vCittZW51dHJhbnMgQSZ1dG9tYXRpYwkJCQkmQXZ0b21hdHNrbworbWVudXRyYW5zIG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZQkJVmtsanXEjWkvaXprbGp1xI1pXCB6YVwgdG9cIGRhdG90ZWtvCittZW51dHJhbnMgQ28mbG9yXCB0ZXN0CQkJCVByZWl6a3VzXCBiYXJ2CittZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdAkJCVByZWl6a3VzXCBiYXJ2YW5qYVwga29kZQorbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJCVByZXR2b3JpXCB2XCAmSFRNTAorIiB9fX0gU1lOVEFYIC8gQkFSVkFOSkUgS09ERQorCisiIHt7eyBCVUZGRVJTIC8gTUVEUE9NTklMTklLCittZW51dHJhbnMgJkJ1ZmZlcnMJCQkJCSZNZWRwb21uaWxuaWsgIiBYWFg6IG5pIG5hamJvbGplOiBva25vIGJpIGJvbGogcHJpc3RhamFsbywgYW1wYWsgb2tubyBqZSDFvmUKK21lbnV0cmFucyAmUmVmcmVzaFwgbWVudQkJCQkmT3N2ZcW+aQorbWVudXRyYW5zIERlbGV0ZQkJCQkJJkJyacWhaQorbWVudXRyYW5zICZBbHRlcm5hdGUJCQkJCSZNZW5qYWoKK21lbnV0cmFucyAmTmV4dAkJCQkJCSZOYXNsZWRuamkKK21lbnV0cmFucyAmUHJldmlvdXMJCQkJCSZQcmVqxaFuamkKK21lbnV0cmFucyBbTm9cIEZpbGVdCQkJCQlbQnJlelwgZGF0b3Rla2VdCisiIH19fSBCVUZGRVJTIC8gTUVEUE9NTklMTklLCisKKyIge3t7IFdJTkRPVyAvIE9LTk8KK21lbnV0cmFucyAmV2luZG93CQkJJk9rbm8KK21lbnV0cmFucyAmTmV3PFRhYj5eV24JCQkmTm92bzxUYWI+XlduCittZW51dHJhbnMgUyZwbGl0PFRhYj5eV3MJCVJhemRlbGk8VGFiPl5XcworbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2CVJhemRlbGlcIG5hdnBpxI1ubzxUYWI+XldzCittZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlcglSYXpkZWxpOlwgVnNlYmluYVwgbWFwZQorbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JUmF6ZGVsaVwgdlwgIzxUYWI+XldeXgorbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCQkmWmFwcmk8VGFiPl5XYworbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbwlaYXByaVwgJm9zdGFsYTxUYWI+XldvCittZW51dHJhbnMgTW92ZVwgJlRvCQkJUHJlbWFrbmkKK21lbnV0cmFucyAmVG9wPFRhYj5eV0sJCQkmR29yPFRhYj5eV0sKK21lbnV0cmFucyAmQm90dG9tPFRhYj5eV0oJCSZEb2w8VGFiPl5XSgorbWVudXRyYW5zICZMZWZ0XCBzaWRlPFRhYj5eV0gJCSZMZXZvPFRhYj5eV0gKK21lbnV0cmFucyAmUmlnaHRcIHNpZGU8VGFiPl5XTAkJJkRlc25vPFRhYj5eV0wKK21lbnV0cmFucyBSb3RhdGVcICZVcDxUYWI+XldSCQlaYXZydGlcIG5hdnpnb3I8VGFiPl5XUgorbWVudXRyYW5zIFJvdGF0ZVwgJkRvd248VGFiPl5XcgkJWmF2cnRpXCBuYXZ6ZG9sPFRhYj5eV3IKK21lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkJJkVuYWthXCB2ZWxpa29zdDxUYWI+Xlc9CittZW51dHJhbnMgJk1heFwgSGVpZ2h0PFRhYj5eV18JCU5hanZpxaFqZTxUYWI+XldfCittZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCQlOYWpuacW+amU8VGFiPl5XMV8KK21lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJTmFqxaFpcsWhZTxUYWI+XldcfAorbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfAkJTmFqb8W+amU8VGFiPl5XMVx8CisiIH19fSBXSU5ET1cgLyBPS05PCisKKyIge3t7IEhFTFAgLyBQT01PxIwKK21lbnV0cmFucyAmSGVscAkJCSZQb21vxI0KK21lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JSGl0cmlcIHByZWdsZWQ8VGFiPjxGMT4KK21lbnV0cmFucyAmVXNlclwgTWFudWFsCQlQJnJpcm/EjW5paworbWVudXRyYW5zICZIb3ctdG9cIGxpbmtzCSZIb3ctdG9cIGthemFsbworbWVudXRyYW5zICZGaW5kXC5cLlwuCQlQbyZpxaHEjWlcIFwuXC5cLgkiIGNvbmZsaWN0cyB3aXRoIEVkaXQuRmluZAorbWVudXRyYW5zICZDcmVkaXRzCQkmQXZ0b3JqaQorbWVudXRyYW5zIENvJnB5aW5nCQkmTGljZW5jYQorbWVudXRyYW5zICZTcG9uc29yL1JlZ2lzdGVyCVJlZ2lzdHJhY2lqYVwgaW5cICZkb25hY2lqZQorbWVudXRyYW5zIE8mcnBoYW5zCQkmU2lyb3RhbQorbWVudXRyYW5zICZWZXJzaW9uCQkmVmVyemlqYQorbWVudXRyYW5zICZBYm91dAkJJk9cIHByb2dyYW11CisiIH19fSBIRUxQIC8gUE9NT8SMCisKKyIge3t7IFBPUFVQCittZW51dHJhbnMgJlVuZG8JCQkJJlJhenZlbGphdmkKK21lbnV0cmFucyBDdSZ0CQkJCSZJenJlxb5pCittZW51dHJhbnMgJkNvcHkJCQkJJktvcGllcmFqCittZW51dHJhbnMgJlBhc3RlCQkJJlByaWxlcGkKK21lbnV0cmFucyAmRGVsZXRlCQkJJlpicmnFoWkKK21lbnV0cmFucyBTZWxlY3RcIEJsb2Nrd2lzZQkJSXpiaXJhalwgcG9cIGJsb2tpaAorbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCQlJemJlcmlcICZiZXNlZG8KK21lbnV0cmFucyBTZWxlY3RcICZTZW50ZW5jZQkJSXpiZXJpXCAmc3RhdmVrCittZW51dHJhbnMgU2VsZWN0XCBQYSZyYWdyYXBoCQlJemJlcmlcICZvZHN0YXZlaworbWVudXRyYW5zIFNlbGVjdFwgJkxpbmUJCQlJemJlcmlcIHZycyZ0aWNvCittZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJCUl6YmVyaVwgYiZsb2sKK21lbnV0cmFucyAmU2VsZWN0XCBBbGw8VGFiPmdnVkcJCUl6YmVyaVwgJnZzZTxUYWI+Z2dWRworIiB9fX0gUE9QVVAKKworIiB7e3sgVE9PTEJBUgoraWYgaGFzKCJ0b29sYmFyIikKKyAgaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCisgICAgZGVsZnVuIERvX3Rvb2xiYXJfdG1lbnUKKyAgZW5kaWYKKyAgZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQorICAgIHRtZW51IFRvb2xCYXIuT3BlbgkJT2RwcmkgZGF0b3Rla28KKyAgICB0bWVudSBUb29sQmFyLlNhdmUJCVNocmFuaSBkYXRvdGVrbworICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbAlTaHJhbmkgdnNlIGRhdG90ZWtlCisgICAgdG1lbnUgVG9vbEJhci5QcmludAkJTmF0aXNuaQorICAgIHRtZW51IFRvb2xCYXIuVW5kbwkJUmF6dmVsamF2aQorICAgIHRtZW51IFRvb2xCYXIuUmVkbwkJT2Jub3ZpCisgICAgdG1lbnUgVG9vbEJhci5DdXQJCUl6cmXFvmkKKyAgICB0bWVudSBUb29sQmFyLkNvcHkJCUtvcGlyYWoKKyAgICB0bWVudSBUb29sQmFyLlBhc3RlCQlQcmlsZXBpCisgICAgdG1lbnUgVG9vbEJhci5GaW5kCQlOYWpkaSAuLi4KKyAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0CU5hamRpIG5hc2xlZG5qZQorICAgIHRtZW51IFRvb2xCYXIuRmluZFByZXYJTmFqZGkgcHJlasWhbmplCisgICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlCU5hamRpIGluIHphbWVuamFqIC4uLgorICAgIHRtZW51IFRvb2xCYXIuTG9hZFNlc24JTmFsb8W+aSBzZWpvCisgICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbglTaHJhbmkgdHJlbnV0bm8gc2VqbworICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0CUl6YmVyaSBWaW0gc2tyaXB0byB6YSBpenZhamFuamUKKyAgICB0bWVudSBUb29sQmFyLk1ha2UJCU5hcHJhdmkgdHJlbnV0bmkgcHJvamVrdCAoOm1ha2UpCisgICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlOYXByYXZpIHpuYcSNa2UgdiB0cmVudXRuZW0gZGlyZWt0b3JpanUgKCFjdGFncyAtUi4pCisgICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wCVNrb8SNaSBrIHpuYcSNa2kgcG9kIGt1cnpvcmplbQorICAgIHRtZW51IFRvb2xCYXIuSGVscAkJUG9tb8SNIHphIFZpbQorICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJScWhxI1pIHYgcG9tb8SNaSB6YSBWaW0KKyAgZW5kZnVuCitlbmRpZgorIiB9fX0gVE9PTEJBUgorCisiIHt7eyBESUFMT0cgVEVYVFMKK2xldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltCcmV6IGRhdG90ZWtlXSIKK2xldCBnOm1lbnV0cmFuc19oZWxwX2RpYWxvZyA9ICJWbmVzaXRlIHVrYXogYWxpIGJlc2VkbywgemEga2F0ZXJvIMW+ZWxpdGUgcG9tb8SNOlxuXG5VcG9yYWJpdGUgcHJlZHBvbm8gaV8gemEgdWthemUgdiBuYcSNaW51IHphIHBpc2FuamUgKG5wci46IGlfQ1RSTC1YKVxuVXBvcmFiaXRlIHByZWRwb25vIGNfIHphIHVrYXplIHYgdWthem5pIHZyc3RpY2kgKGNvbW1hbmQtbGluZSkgKG5wci46IGNfPERlbD4pXG5VcG9yYWJpdGUgcHJlZHBvbm8gJyB6YSBpbWVuYSBvcGNpaiAobnByLjogJ3NoaWZ0d2lkdGgnKSIKK2xldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJWbmVzaXRlIHBvdGkgemEgaXNrYW5qZSBkYXRvdGVrLlxuSW1lbmEgZGlyZWt0b3JpamV2IGxvxI1pdGUgeiB2ZWppY28uIgorbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIlZuZXNpdGUgaW1lbmEgZGF0b3RlayB6IHpuYcSNa2FtaSAoJ3RhZycpLlxuSW1hbmEgbG/EjWl0ZSB6IHZlamljYW1pLiIKK2xldCBnOm1lbnV0cmFuc190ZXh0d2lkdGhfZGlhbG9nID0gIlZuZXNpdGUgbm92byDFoWlyaW5vIGJlc2VkaWxhIChhbGkgMCB6YSBpemtsb3AgZm9ybWF0aXJhbmphKTogIgorbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIkl6YmVyaXRlIGZvcm1hdCBkYXRvdGVrZSIKK2xldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2Nob2ljZXMgPSAiJlVuaXhcbiZEb3NcbiZNYWNcbiZQcmVrbGnEjWkiCisiIH19fQpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfemhfY24uZ2IyMzEyLnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3poX2NuLmdiMjMxMi52aW0KaW5kZXggNjgxOWY0Ni4uM2VjODI1YyAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfemhfY24uZ2IyMzEyLnZpbQorKysgYi9ydW50aW1lL2xhbmcvbWVudV96aF9jbi5nYjIzMTIudmltCkBAIC0xMCw3ICsxMCwxMCBAQAogZW5kaWYKIGxldCBkaWRfbWVudV90cmFucyA9IDEKIAotc2NyaXB0ZW5jb2RpbmcgZ2IyMzEyCisiIFRoaXMgY2F1c2VzIHRyb3VibGUgZm9yIGEgYnJva2VuIGljb252IChzeW1wdG9tOiBsYXN0IGNoYXJhY3RlciBpcyBhbHdheXMKKyIgPz8pLiAgV2l0aG91dCB0aGlzIGl0IHdvcmtzIGZpbmUgYW55d2F5LCBiZWNhdXNlIGdiay9jcDkzNiBpcyBhIHN1cGVyc2V0IG9mCisiIGdiMjMxMi4gKHN1Z2dlc3RlZCBieSBFZHdhcmQgTC4gRm94KQorIiBzY3JpcHRlbmNvZGluZyBnYjIzMTIKIAogIiBIZWxwIG1lbnUKIG1lbnV0cmFucyAmSGVscAkJCbDv1vooJkgpCkBAIC0xMDksNyArMTEyLDcgQEAKIG1lbnV0cmFucyAmVG9vbHMJCQm5pL7fKCZUKQogbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JzPjXqrW91eK49lwgdGFnKCZKKTxUYWI+Z15dCiBtZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCQnM+Neqt7W72CgmQik8VGFiPl5UCi1tZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCQm9qMGiIFRhZ3MgzsS8/igmVCkKK21lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCb2owaJcIFRhZ3NcIM7EvP4oJlQpCiAKICIgVG9vbHMuU3BlbGxpbmcgTWVudQogbWVudXRyYW5zICZTcGVsbGluZwkJCQnGtNC0vOyy6SgmUykKQEAgLTIwOSw3ICsyMTIsNyBAQAogbWVudXRyYW5zICZVbmRvCQkJs7fP+igmVSkKIG1lbnV0cmFucyBDdSZ0CQkJvPTH0CgmVCkKIG1lbnV0cmFucyAmQ29weQkJCbi01sYoJkMpCi1tZW51dHJhbnMgJlBhc3RlCQnVs8z7KCZQKQorbWVudXRyYW5zICZQYXN0ZQkJ1bPM+SgmUCkKIG1lbnV0cmFucyAmRGVsZXRlCQnJvrP9KCZEKQogbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCdGh1PG/6QogbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCdGh1PG1pbTKKCZXKQpAQCAtMjMzLDcgKzIzNiw3IEBACiAgICAgdG1lbnUgVG9vbEJhci5SZWRvCQnW2Nf2CiAgICAgdG1lbnUgVG9vbEJhci5DdXQJCbz0x9C1vbz0zPmw5QogICAgIHRtZW51IFRvb2xCYXIuQ29weQkJuLTWxrW9vPTM+bDlCi0gICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJtNO89Mz5sOXVs8z7CisgICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJtNO89Mz5sOXVs8z5CiAgICAgdG1lbnUgVG9vbEJhci5GaW5kCQmy6dXSLi4uCiAgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAmy6dXSz8LSu7j2CiAgICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldgmy6dXSyc/Su7j2CmRpZmYgLS1naXQgYS9ydW50aW1lL21hY3Jvcy9sZXNzLnZpbSBiL3J1bnRpbWUvbWFjcm9zL2xlc3MudmltCmluZGV4IGJiZDc0ZmIuLjk1OWE1ZDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFjcm9zL2xlc3MudmltCisrKyBiL3J1bnRpbWUvbWFjcm9zL2xlc3MudmltCkBAIC0xLDYgKzEsNiBAQAogIiBWaW0gc2NyaXB0IHRvIHdvcmsgbGlrZSAibGVzcyIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDYgTWF5IDA3CisiIExhc3QgQ2hhbmdlOgkyMDA2IERlYyAwNQogCiAiIEF2b2lkIGxvYWRpbmcgdGhpcyBmaWxlIHR3aWNlLCBhbGxvdyB0aGUgdXNlciB0byBkZWZpbmUgaGlzIG93biBzY3JpcHQuCiBpZiBleGlzdHMoImxvYWRlZF9sZXNzIikKQEAgLTE2OCw3ICsxNjgsNyBAQAogICBlbHNlCiAgICAgbm9yZW1hcCA8c2NyaXB0PiBOIEhnME56dDxTSUQ+TAogICBlbmRpZgotICBjbm9yZW1hcCA8c2NyaXB0PiA8Q1I+IDxDUj46Y3VubWFwIDxsdD5DUj48Q1I+enQ8U0lEPkwKKyAgY25vcmVtYXAgPHNpbGVudD4gPHNjcmlwdD4gPENSPiA8Q1I+OmN1bm1hcCA8bHQ+Q1I+PENSPnp0PFNJRD5MCiBlbmRmdW4KIAogZnVuISBzOkJhY2t3YXJkKCkKQEAgLTE3OSw3ICsxNzksNyBAQAogICAgIG5vcmVtYXAgPHNjcmlwdD4gbiBIZzBuenQ8U0lEPkwKICAgZW5kaWYKICAgbm9yZW1hcCA8c2NyaXB0PiBOIEgkTnp0PFNJRD5MCi0gIGNub3JlbWFwIDxzY3JpcHQ+IDxDUj4gPENSPjpjdW5tYXAgPGx0PkNSPjxDUj56dDxTSUQ+TAorICBjbm9yZW1hcCA8c2lsZW50PiA8c2NyaXB0PiA8Q1I+IDxDUj46Y3VubWFwIDxsdD5DUj48Q1I+enQ8U0lEPkwKIGVuZGZ1bgogCiBjYWxsIHM6Rm9yd2FyZCgpCmRpZmYgLS1naXQgYS9ydW50aW1lL21hY3Jvcy9tYXRjaGl0LnZpbSBiL3J1bnRpbWUvbWFjcm9zL21hdGNoaXQudmltCmluZGV4IGEyZjIwNTAuLjdmY2M1M2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFjcm9zL21hdGNoaXQudmltCisrKyBiL3J1bnRpbWUvbWFjcm9zL21hdGNoaXQudmltCkBAIC0xLDcgKzEsNyBAQAogIiAgbWF0Y2hpdC52aW06IChnbG9iYWwgcGx1Z2luKSBFeHRlbmRlZCAiJSIgbWF0Y2hpbmcKLSIgIExhc3QgQ2hhbmdlOiBTdW4gRmViIDI2IDEwOjAwIEFNIDIwMDYgRVNUCisiICBMYXN0IENoYW5nZTogTW9uIE1heSAxNSAxMDowMCBQTSAyMDA2IEVEVAogIiAgTWFpbnRhaW5lcjogIEJlbmppIEZpc2hlciBQaEQgICA8YmVuamlAbWVtYmVyLkFNUy5vcmc+Ci0iICBWZXJzaW9uOiAgICAgMS4xMCwgZm9yIFZpbSA2LjMKKyIgIFZlcnNpb246ICAgICAxLjExLCBmb3IgVmltIDYuMysKICIgIFVSTDoJCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHQucGhwP3NjcmlwdF9pZD0zOQogCiAiIERvY3VtZW50YXRpb246CkBAIC0xNSw3ICsxNSw3IEBACiAiICBTdXBwb3J0IGZvciBtYW55IGxhbmd1YWdlcyBieSBKb2hhbm5lcyBaZWxsbmVyCiAiICBTdWdnZXN0aW9ucyBmb3IgaW1wcm92ZW1lbnQsIGJ1ZyByZXBvcnRzLCBhbmQgc3VwcG9ydCBmb3IgYWRkaXRpb25hbAogIiAgbGFuZ3VhZ2VzIGJ5IEpvcmRpLUFsYmVydCBCYXRhbGxhLCBOZWlsIEJpcmQsIFNlcnZhdGl1cyBCcmFuZHQsIE1hcmsKLSIgIENvbGxldHQsIFN0ZXBoZW4gV2FsbCwgRGFueSBTdC1BbWFudCwgYW5kIEpvaGFubmVzIFplbGxuZXIuCisiICBDb2xsZXR0LCBTdGVwaGVuIFdhbGwsIERhbnkgU3QtQW1hbnQsIFl1aGVuZyBYaWUsIGFuZCBKb2hhbm5lcyBaZWxsbmVyLgogCiAiIERlYnVnZ2luZzoKICIgIElmIHlvdSdkIGxpa2UgdG8gdHJ5IHRoZSBidWlsdC1pbiBkZWJ1Z2dpbmcgY29tbWFuZHMuLi4KQEAgLTE3Miw5ICsxNzIsMTAgQEAKICAgZWxzZQkiIEZpbmQgdGhlIG1hdGNoIHRoYXQgZW5kcyBvbiBvciBhZnRlciB0aGUgY3Vyc29yIGFuZCBzZXQgY3VyY29sLgogICAgIGxldCByZWdleHAgPSBzOldob2xlbWF0Y2gobWF0Y2hsaW5lLCBzOmFsbCwgc3RhcnRjb2wtMSkKICAgICBsZXQgY3VyY29sID0gbWF0Y2gobWF0Y2hsaW5lLCByZWdleHApCi0gICAgbGV0IHN1ZiA9IHN0cmxlbihtYXRjaGxpbmUpIC0gbWF0Y2hlbmQobWF0Y2hsaW5lLCByZWdleHApCi0gICAgbGV0IHByZWZpeCA9IChjdXJjb2wgPyAnXi5ceycgIC4gY3VyY29sIC4gJ31cJSgnIDogJ15cJSgnKQotICAgIGxldCBzdWZmaXggPSAoc3VmID8gJ1wpLlx7JyAuIHN1ZiAuICd9JCcgIDogJ1wpJCcpCisgICAgbGV0IGVuZGNvbCA9IG1hdGNoZW5kKG1hdGNobGluZSwgcmVnZXhwKQorICAgIGxldCBzdWYgPSBzdHJsZW4obWF0Y2hsaW5lKSAtIGVuZGNvbAorICAgIGxldCBwcmVmaXggPSAoY3VyY29sID8gJ14uKlwlJyAgLiAoY3VyY29sICsgMSkgLiAnY1wlKCcgOiAnXlwlKCcpCisgICAgbGV0IHN1ZmZpeCA9IChzdWYgPyAnXClcJScgLiAoZW5kY29sICsgMSkgLiAnYy4qJCcgIDogJ1wpJCcpCiAgICAgIiBJZiB0aGUgbWF0Y2ggY29tZXMgZnJvbSB0aGUgZGVmYXVsdHMsIGJhaWwgb3V0LgogICAgIGlmIG1hdGNobGluZSAhfiBwcmVmaXggLgogICAgICAgXCBzdWJzdGl0dXRlKHM6cGF0LCBzOm5vdHNsYXNoLidcenNbLDpdXCsnLCAnXFx8JywgJ2cnKSAuIHN1ZmZpeApAQCAtMjYyLDEwICsyNjMsMTEgQEAKICAgbm9ybWFsISBICiAgIGxldCByZXN0b3JlX2N1cnNvciA9ICJub3JtYWwhIiAuIGxpbmUoIi4iKSAuICJHenQiIC4gcmVzdG9yZV9jdXJzb3IKICAgZXhlY3V0ZSByZXN0b3JlX2N1cnNvcgotICBub3JtYWwhIDAKLSAgaWYgY3VyY29sCi0gICAgZXhlY3V0ZSAibm9ybWFsISIgLiBjdXJjb2wgLiAibCIKLSAgZW5kaWYKKyAgY2FsbCBjdXJzb3IoMCwgY3VyY29sICsgMSkKKyAgIiBub3JtYWwhIDAKKyAgIiBpZiBjdXJjb2wKKyAgIiAgIGV4ZWN1dGUgIm5vcm1hbCEiIC4gY3VyY29sIC4gImwiCisgICIgZW5kaWYKICAgaWYgc2tpcCA9fiAnc3luSUQnICYmICEoaGFzKCJzeW50YXgiKSAmJiBleGlzdHMoImc6c3ludGF4X29uIikpCiAgICAgbGV0IHNraXAgPSAiMCIKICAgZWxzZQpAQCAtNDE1LDkgKzQxNyw5IEBACiAiIGxldCBtYXRjaCAgPSBtYXRjaHN0cihnZXRsaW5lKCIuIiksIHJlZ2V4cCkKIGZ1biEgczpXaG9sZW1hdGNoKHN0cmluZywgcGF0LCBzdGFydCkKICAgbGV0IGdyb3VwID0gJ1wlKCcgLiBhOnBhdCAuICdcKScKLSAgbGV0IHByZWZpeCA9IChhOnN0YXJ0ID8gJ1woXi5ceywnIC4gYTpzdGFydCAuICd9XClcenMnIDogJ14nKQorICBsZXQgcHJlZml4ID0gKGE6c3RhcnQgPyAnXCheLipcJTwnIC4gKGE6c3RhcnQgKyAyKSAuICdjXClcenMnIDogJ14nKQogICBsZXQgbGVuID0gc3RybGVuKGE6c3RyaW5nKQotICBsZXQgc3VmZml4ID0gKGE6c3RhcnQrMSA8IGxlbiA/ICdcKC5ceywnLihsZW4tYTpzdGFydC0xKS4nfSRcKVxAPScgOiAnJCcpCisgIGxldCBzdWZmaXggPSAoYTpzdGFydCsxIDwgbGVuID8gJ1woXCU+Jy4oYTpzdGFydCsxKS4nYy4qJFwpXEA9JyA6ICckJykKICAgaWYgYTpzdHJpbmcgIX4gcHJlZml4IC4gZ3JvdXAgLiBzdWZmaXgKICAgICBsZXQgcHJlZml4ID0gJycKICAgZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL2dldHNjcmlwdFBsdWdpbi52aW0gYi9ydW50aW1lL3BsdWdpbi9nZXRzY3JpcHRQbHVnaW4udmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NjRjOTgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3BsdWdpbi9nZXRzY3JpcHRQbHVnaW4udmltCkBAIC0wLDAgKzEsMzggQEAKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIGdldHNjcmlwdFBsdWdpbi52aW0KKyIgIEF1dGhvcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCisiICBEYXRlOglKdWwgMTgsIDIwMDYKKyIgIEluc3RhbGxpbmc6CTpoZWxwIGdsdnMtaW5zdGFsbAorIiAgVXNhZ2U6CTpoZWxwIGdsdnMKKyIKKyIgR2V0TGF0ZXN0VmltU2NyaXB0czogNjQyIDEgOkF1dG9JbnN0YWxsOiBHZXRMYXRlc3RWaW1TY3JpcHRzLnZpbQorIgorIiAoUm9tIDE1OjExIFdFQikgQWdhaW4sICJQcmFpc2UgdGhlIExvcmQsIGFsbCB5b3UgR2VudGlsZXMhICBMZXQKKyIgYWxsIHRoZSBwZW9wbGVzIHByYWlzZSBIaW0uIgorIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgSW5pdGlhbGl6YXRpb246CXt7ezEKKyIgaWYgeW91J3JlIHNvdXJjaW5nIHRoaXMgZmlsZSwgc3VyZWx5IHlvdSBjYW4ndCBiZQorIiBleHBlY3RpbmcgdmltIHRvIGJlIGluIGl0cyB2aS1jb21wYXRpYmxlIG1vZGUKK2lmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX2dldHNjcmlwdFBsdWdpbiIpCisgaWYgJnZlcmJvc2UKKyAgZWNobyAiR2V0TGF0ZXN0VmltU2NyaXB0cyBpcyBub3QgdmktY29tcGF0aWJsZTsgbm90IGxvYWRlZCAoeW91IG5lZWQgdG8gc2V0IG5vY3ApIgorIGVuZGlmCisgZmluaXNoCitlbmRpZgorbGV0IGc6bG9hZGVkX2dldHNjcmlwdFBsdWdpbiA9IDEKK2xldCBzOmtlZXBmbyAgICAgICAgICAgICAgICAgPSAmZm8KK2xldCBzOmtlZXBjcG8gICAgICAgICAgICAgICAgPSAmY3BvCitzZXQgY3BvJnZpbQorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiAgUHVibGljIEludGVyZmFjZToge3t7MQorY29tISAgICAgICAgLW5hcmdzPTAgR2V0TGF0ZXN0VmltU2NyaXB0cyBjYWxsIGdldHNjcmlwdCNHZXRMYXRlc3RWaW1TY3JpcHRzKCkKK2NvbSEgICAgICAgIC1uYXJncz0wIEdldFNjcmlwdHMgICAgICAgICAgY2FsbCBnZXRzY3JpcHQjR2V0TGF0ZXN0VmltU2NyaXB0cygpCitzaWxlbnQhIGNvbSAtbmFyZ3M9MCBHTFZTICAgICAgICAgICAgICAgIGNhbGwgZ2V0c2NyaXB0I0dldExhdGVzdFZpbVNjcmlwdHMoKQorCisiIFJlc3RvcmUgT3B0aW9uczoge3t7MQorbGV0ICZmbyA9IHM6a2VlcGZvCitsZXQgJmNwbz0gczprZWVwY3BvCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHZpbTogdHM9OCBzdHM9MiBmZG09bWFya2VyIG5vd3JhcApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKaW5kZXggOTFjNjg5Yi4uOTI1NmE5YiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL3B0L21haW4uYWFwCkBAIC0xLDQgKzEsMTkgQEAKICMgQWFwIHJlY2lwZSBmb3IgUG9ydHVndWVzZSBWaW0gc3BlbGwgZmlsZXMuCisjCisjIEJhc2VkIG9uIGEgc2hlbGwgc2NyaXB0IGJ5IExlb25hcmRvIEZvbnRlbmVsbGUuCisjIEhpcyByZW1hcmtzOgorIworIyBNYWtlcyBhIFZpbSBwdCBkaWN0aW9uYXJ5IGZyb20gT3Blbk9mZmljZS5vcmcncyBwdF9CUiBhbmQgcHRfUFQuCisjCisjIEFGQUlLLCB3aWxsIGhhdmUgdG8gdXBkYXRlIHRoZSBzY3JpcHQgZXZlcnkgdGltZSBhIG5ldyBkaWN0aW9uYXJ5IGlzIAorIyByZWxlYXNlZCBmb3IgcHRfQlIuIEkgYXNrZWQgdGhlIG1haW50YWluZXIgdG8gdXBkYXRlIE9PbydzIEZUUCBzaXRlLAorIyBidXQgaXQgZGlkbid0IGhhcHBlbiB5ZXQuIEFzIGZvciB0aGUgcHRfUFQgZGljdGlvbmFyeSwgdGhleSB3b24ndCBiZQorIyBpbiBPT28ncyBGVFAgc2l0ZSBmb3Igc29tZSB0aW1lLCBiZWNhdXNlIHRoZSBQb3J0dWd1ZXNlIE9PbyBwcm9qZWN0CisjIGRlY2lkZWQgdG8gYWRhcHQgdGhlIHB0X0JSIGRpY3Rpb25hcnksIHdoaWNoIGlzIG11Y2ggbW9yZSBleHRlbnNpdmUuCisjIEkgcGlja2VkIHRoZSBOYXR1cmEgcHJvamVjdCB1bm9mZmljaWFsIGRpY3Rpb25hcnksIGJlY2F1c2UgaXQgaGFzIGJlZW4KKyMgZGV2ZWxvcGVkIGJ5IGEgdGVhbSB3aXRoIGxpbmd1aXN0cywgYW5kIGZvciBhIGxvbmdlciB0aW1lLiBBdCBsZWFzdCB0aGUKKyMgcHRfUFQgZGljdGlvbmFyeSBoYXMgYSAibGF0ZXN0IiBmaWxlIHRvIG1ha2Ugb3VyIGxpdmVzIGVhc2llci4KKwogCiAjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KIEBpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgpAQCAtMTAsMTUgKzI1LDMxIEBACiBGSUxFUyAgICA9IHB0X1BULmFmZiBwdF9QVC5kaWMKIAkgICBwdF9CUi5hZmYgcHRfQlIuZGljCiAKKyMKKyMgRmV0Y2hpbmcgdGhlIHB0X1BUIGZpbGVzIGZyb20gdGhlIE5hdHVyYSBwcm9qZWN0LgorIworUFRfRElSID0gaHR0cDovL25hdHVyYS5kaS51bWluaG8ucHQvZG93bmxvYWQvc291cmNlcy9EaWN0aW9uYXJpZXMvbXlzcGVsbAorUFRfRk5BTUUgPSBteXNwZWxsLnB0LWxhdGVzdC56aXAKKzphdHRyIHtmZXRjaCA9ICRQVF9ESVIvJWZpbGUlfSAkUFRfRk5BTUUKKworIworIyBGZXRjaGluZyB0aGUgcHRfQlIgZmlsZXMgZnJvbSBCck9mZmljZS5vcmcgKEJyYXppbGlhbiBPT28pIDIuMS4gU2hvdWxkIGJlCisjIHVwZGF0ZWQgcmVhbGx5IHNvb24uCisjCitCUl9ESVIgPSBodHRwOi8vd3d3LmRlc28tc2UuY29tLmJyL2Rvd25sb2Fkcy9kb3dubG9hZC5waHA/YXJxdWl2bz1wdF9CUi0yNzAwZworQlJfRk5BTUUgPSBwdF9CUi0yNzAwZy56aXAKKworOmF0dHIge2ZldGNoID0gJEJSX0RJUn0gJEJSX0ZOQU1FCisKIGFsbDogJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgJFNQRUxMRElSL3B0LnV0Zi04LnNwbCBcCiAgICAgICAgIC4uL1JFQURNRV9wdC50eHQKIAogJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgOiAkRklMRVMKLSAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5JU084ODU5LTEKKyAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5JU084ODU5LTEgTENfQUxMPXB0X1BULklTTzg4NTktMQogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9wdCBwdF9QVCBwdF9CUiIgLWMgcQogCiAkU1BFTExESVIvcHQudXRmLTguc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9cHRfUFQuVVRGLTgKKyAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5VVEYtOCBMQ19BTEw9cHRfUFQuVVRGLTgKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcHQgcHRfUFQgcHRfQlIiIC1jIHEKIAogLi4vUkVBRE1FX3B0LnR4dDogUkVBRE1FX3B0X1BULnR4dCBSRUFETUVfcHRfQlIudHh0CkBAIC0yNiwyMyArNTcsMjEgQEAKICAgICAgICAgOmNhdCBSRUFETUVfcHRfUFQudHh0IHwgOmV2YWwgcmUuc3ViKCdccicsICcnLCBzdGRpbikgPj4kdGFyZ2V0CiAgICAgICAgIDpwcmludCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gPj4kdGFyZ2V0CiAgICAgICAgIDpwcmludCBwdF9CUjogPj4kdGFyZ2V0Ci0gICAgICAgIDpjYXQgUkVBRE1FX3B0X0JSLnR4dCB8IDpldmFsIHJlLnN1YignXHInLCAnJywgc3RkaW4pID4+JHRhcmdldAotCi0jCi0jIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgotIwotT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwotOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gcHRfUFQuemlwIHB0X0JSLnppcAorICAgICAgICA6cHJpbnQgSW5mb3JtYXRpb24gaXMgaW4gTGVpYS1tZS5wZGYsIHNlZSAkQlJfRElSID4+JHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9wdF9CUi50eHQgPj4kdGFyZ2V0CiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KICMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCiBwdF9QVC5hZmYgcHRfUFQuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKLSAgICAgICAgOmZldGNoIHB0X1BULnppcAotICAgICAgICA6c3lzICRVTlpJUCBwdF9QVC56aXAKLSAgICAgICAgOmRlbGV0ZSBwdF9QVC56aXAKLSAgICAgICAgOnN5cyAkVklNIHB0X1BULmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBSRUFETUVfcHRfUFQudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOmZldGNoICRQVF9GTkFNRQorICAgICAgICA6c3lzICRVTlpJUCAkUFRfRk5BTUUKKyAgICAgICAgOmRlbGV0ZSAkUFRfRk5BTUUKKyAgICAgICAgOm1vdmUgbXlzcGVsbC5wdC0qL3B0X1BULmRpYyAuCisgICAgICAgIDptb3ZlIG15c3BlbGwucHQtKi9wdF9QVC5hZmYgLgorICAgICAgICA6bW92ZSBteXNwZWxsLnB0LSovUkVBRE1FX3B0X1BULnR4dCAuCisgICAgICAgIDptb3ZlIG15c3BlbGwucHQtKi9DT1BZSU5HIENPUFlJTkdfcHRfUFQudHh0CisgICAgICAgIDpkZWxkaXIgbXlzcGVsbC5wdC0qCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3B0X1BULm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBwdF9QVC5hZmYgcHRfUFQub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncHRfUFQub3JpZy5kaWMnKToKQEAgLTUyLDEyICs4MSwyMiBAQAogCiBwdF9CUi5hZmYgcHRfQlIuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKLSAgICAgICAgOmZldGNoIHB0X0JSLnppcAotICAgICAgICA6c3lzICRVTlpJUCBwdF9CUi56aXAKLSAgICAgICAgOmRlbGV0ZSBwdF9CUi56aXAKLSAgICAgICAgOnN5cyAkVklNIHB0X0JSLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCi0gICAgICAgIDpzeXMgJFZJTSBwdF9CUi5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQotICAgICAgICA6c3lzICRWSU0gUkVBRE1FX3B0X0JSLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpmZXRjaCAkQlJfRk5BTUUKKyAgICAgICAgOnN5cyAkVU5aSVAgJEJSX0ZOQU1FCisgICAgICAgIDpkZWxldGUgJEJSX0ZOQU1FCisgICAgICAgIDptb3ZlIExlaWEtbWUucGRmIExlaWEtbWVfcHRfQlIucGRmCisKKyMgMS4gcHRfQlIuZGljIGNvbnRhaW5zIGEgY3AxMjUyLXNwZWNpZmljIGNoYXJhY3Rlci4KKyMgICAgQ2hhbmdpbmcgaXQgdG8gaXRzIGxhdGluMSBlcXVpdmFsZW50LgorIyAyLiBWaW0gc2VlbXMgdG8gaWdub3JlIHRoZSBkb3RzIGZyb20gdGhlIHdvcmQgbGlzdC4KKyMgICAgUmVtb3Zpbmcgd29yZHMgd2l0aCBkb3QgdG8gYXZvaWQgbWlzYmVoYXZpb3VyLgorICAgICAgICA6c3lzICRWSU0gcHRfQlIuZGljIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgIiVzL1wleDkyLycvZyIgLWMgIi9cLi9kIiAtYyB1cGRhdGUgLWMgcQorCisjIFJlbW92aW5nIC8qIC4uLiAqLyBoZWFkZXIgdG8gYXZvaWQgd2FybmluZ3MuICBXcml0ZSBpdCB0byB0aGUgUkVBRE1FIGZpbGUsIGl0CisjIGNvbnRhaW5zIHRoZSBjb3B5cmlnaHQgbm90aWNlLgorICAgICAgICA6c3lzICRWSU0gcHRfQlIuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgIi9cL1wqLywvXCpcLy93IFJFQURNRV9wdF9CUi50eHQiIC1jICIvXC9cKi8sL1wqXC8vKzFkIiAtYyB1cGRhdGUgLWMgcQorCisgICAgICAgICM6c3lzICRWSU0gUkVBRE1FX3B0X0JSLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3B0X0JSLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBwdF9CUi5hZmYgcHRfQlIub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncHRfQlIub3JpZy5kaWMnKToKQEAgLTc5LDEwICsxMTgsMTEgQEAKIAogIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKICMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorIyBUTyBCRSBJTVBMRU1FTlRFRAogCi1jaGVjazogY2hlY2stdXMgY2hlY2stYXUKK2NoZWNrOiBjaGVjay1wdCBjaGVjay1icgogCi1jaGVjay11czoKK2NoZWNrLXB0OgogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKICAgICAgICAgOmZldGNoIHB0X1BULnppcAogICAgICAgICA6bWtkaXIgdG1wCkBAIC0xMDEsNyArMTQxLDcgQEAKICAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAogICAgICAgICAgICAgOmRlbGV0ZSBwdF9QVC56aXAKIAotY2hlY2stYXU6CitjaGVjay1icjoKICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCiAgICAgICAgIDpmZXRjaCBwdF9CUi56aXAKICAgICAgICAgOm1rZGlyIHRtcApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmIGIvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmCmluZGV4IDEwYjFkN2EuLmRjNzgyNWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvcHQvcHRfQlIuZGlmZgorKysgYi9ydW50aW1lL3NwZWxsL3B0L3B0X0JSLmRpZmYKQEAgLTEsNDYgKzEsMTIgQEAKLSoqKiBwdF9CUi5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjA1OjE4IDIwMDUKLS0tLSBwdF9CUi5hZmYJV2VkIEF1ZyAzMSAyMDowNToxOCAyMDA1CisqKiogcHRfQlIub3JpZy5hZmYJTW9uIEFwciAxNiAxNTozODo1NCAyMDA3CistLS0gcHRfQlIuYWZmCU1vbiBBcHIgMTYgMTU6NDk6MDEgMjAwNwogKioqKioqKioqKioqKioqCiAqKiogMyw0ICoqKioKLS0tLSAzLDIyIC0tLS0KKy0tLSAzLDkgLS0tLQogICAKICsgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/wogKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CiArIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KICsgCi0rIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KLSsgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwotKyAKLSsgTUFQIDkKLSsgTUFQIGHg4eLj5OUKLSsgTUFQIGXo6errCi0rIE1BUCBp7O3u7wotKyBNQVAgb/Lz9PX2Ci0rIE1BUCB1+fr7/AotKyBNQVAgbvEKLSsgTUFQIGPnCi0rIE1BUCB5//0KLSsgTUFQIHPfCi0rIAotICAjIFBsdXJhbCBhcGVuYXMKLSoqKioqKioqKioqKioqKgotKioqIDUyNiw1MzQgKioqKgotICBTRlggSSAgIGFyICAgICAg6nMgICAgICAgZGFyCi0hIFNGWCBJICAgaWFyICAgICBlaWEgICAgICAgW15daWFyCi0hIFNGWCBJICAgaWFyICAgICBlaWFtICAgICAgIFteXWlhcgotISBTRlggSSAgIGlhciAgICAgZWlhcyAgICAgICBbXl1pYXIKLSEgU0ZYIEkgICBpYXIgICAgIGVpZSAgICAgICBbXl1pYXIKLSEgU0ZYIEkgICBpYXIgICAgIGVpZW0gICAgICAgW15daWFyCi0hIFNGWCBJICAgaWFyICAgICBlaWVzICAgICAgIFteXWlhcgotISBTRlggSSAgIGlhciAgICAgZWlvICAgICAgIFteXWlhcgotICBTRlggSSAgIG9pYXIgICAg82lhICAgICAgIG9pYXIKLS0tLSA1NDQsNTUyIC0tLS0KLSAgU0ZYIEkgICBhciAgICAgIOpzICAgICAgIGRhcgotISBTRlggSSAgIGlhciAgICAgZWlhICAgICAgIFteb11pYXIKLSEgU0ZYIEkgICBpYXIgICAgIGVpYW0gICAgICAgW15vXWlhcgotISBTRlggSSAgIGlhciAgICAgZWlhcyAgICAgICBbXm9daWFyCi0hIFNGWCBJICAgaWFyICAgICBlaWUgICAgICAgW15vXWlhcgotISBTRlggSSAgIGlhciAgICAgZWllbSAgICAgICBbXm9daWFyCi0hIFNGWCBJICAgaWFyICAgICBlaWVzICAgICAgIFteb11pYXIKLSEgU0ZYIEkgICBpYXIgICAgIGVpbyAgICAgICBbXm9daWFyCi0gIFNGWCBJICAgb2lhciAgICDzaWEgICAgICAgb2lhcgorKyBNSURXT1JECScKKyAgCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9hZGEudmltIGIvcnVudGltZS9zeW50YXgvYWRhLnZpbQppbmRleCA3YTdiMmEwLi5mMzE3NzAwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9hZGEudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2FkYS52aW0KQEAgLTEsMjg3ICsxLDM2NyBAQAotIiBWaW0gc3ludGF4IGZpbGUKLSIgTGFuZ3VhZ2U6CUFkYSAoOTUpCi0iIE1haW50YWluZXI6CURhdmlkIEEuIFdoZWVsZXIgPGR3aGVlbGVyQGR3aGVlbGVyLmNvbT4KLSIgVVJMOiBodHRwOi8vd3d3LmR3aGVlbGVyLmNvbS92aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDEtMTEtMDIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICBEZXNjcmlwdGlvbjogVmltIEFkYSBzeW50YXggZmlsZQorIiAgICAgTGFuZ3VhZ2U6IEFkYSAoMjAwNSkKKyIJICAgJElkJAorIiAgICBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNiBNYXJ0aW4gS3Jpc2NoaWsKKyIgICBNYWludGFpbmVyOiBNYXJ0aW4gS3Jpc2NoaWsKKyIJCURhdmlkIEEuIFdoZWVsZXIgPGR3aGVlbGVyQGR3aGVlbGVyLmNvbT4KKyIJCVNpbW9uIEJyYWRsZXkgPHNpbW9uLmJyYWRsZXlAcGl0ZWNobm9sb2d5LmNvbT4KKyIgQ29udHJpYnV0b3JzOiBQcmViZW4gUmFuZGhvbC4KKyIgICAgICAkQXV0aG9yJAorIgkgJERhdGUkCisiICAgICAgVmVyc2lvbjogNC4yCisiICAgICRSZXZpc2lvbiQKKyIgICAgICRIZWFkVVJMOiBodHRwczovL3N2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL3N5bnRheC9hZGEudmltICQKKyIJCWh0dHA6Ly93d3cuZHdoZWVsZXIuY29tL3ZpbQorIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCisiCQkyNi4wNS4yMDA2IE1LICcgc2hvdWxkIG5vdCBiZSBpbiBpc2tleXdvcmQuCisiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCisiCQkwMi4xMC4yMDA2IE1LIEJldHRlciBmb2xkaW5nLgorIgkJMTUuMTAuMjAwNiBNSyBCcmFtJ3Mgc3VnZ2VzdGlvbiBmb3IgcnVudGltZSBpbnRlZ3JhdGlvbgorIgkJMDUuMTEuMjAwNiBNSyBTcGVsbCBjaGVjayBmb3IgY29tbWVudHMgYW5kIHN0cmluZ3Mgb25seQorIgkJMDUuMTEuMjAwNiBNSyBCcmFtIHN1Z2dlc3RlZCB0byBzYXZlIG9uIHNwYWNlcworIiAgICBIZWxwIFBhZ2U6IGhlbHAgZnQtYWRhLXN5bnRheAorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBUaGUgZm9ybWFsIHNwZWMgb2YgQWRhIDIwMDUgKEFSTSkgaXMgdGhlICJBZGEgMjAwNSBSZWZlcmVuY2UgTWFudWFsIi4KKyIgRm9yIG1vcmUgQWRhIDIwMDUgaW5mbywgc2VlIGh0dHA6Ly93d3cuZ251YWRhLm9yZyBhbmQgaHR0cDovL3d3dy5hZGFwb3dlci5jb20uCisiCisiIFRoaXMgdmltIHN5bnRheCBmaWxlIHdvcmtzIG9uIHZpbSA3LjAgb25seSBhbmQgbWFrZXMgdXNlIG9mIG1vc3Qgb2YgVm9pbSA3LjAgCisiIGFkdmFuY2VkIGZlYXR1cmVzLgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0iIEZvcm1lciBNYWludGFpbmVyOglTaW1vbiBCcmFkbGV5IDxzaW1vbi5icmFkbGV5QHBpdGVjaG5vbG9neS5jb20+Ci0iCQkJKHdhcyA8c2liOTNAYWJlci5hYy51az4pCi0iIE90aGVyIGNvbnRyaWJ1dG9yczogUHJlYmVuIFJhbmRob2wuCi0iIFRoZSBmb3JtYWwgc3BlYyBvZiBBZGE5NSAoQVJNKSBpcyB0aGUgIkFkYTk1IFJlZmVyZW5jZSBNYW51YWwiLgotIiBGb3IgbW9yZSBBZGE5NSBpbmZvLCBzZWUgaHR0cDovL3d3dy5nbnVhZGEub3JnIGFuZCBodHRwOi8vd3d3LmFkYXBvd2VyLmNvbS4KLQotIiBUaGlzIHZpbSBzeW50YXggZmlsZSB3b3JrcyBvbiB2aW0gNS42LCA1LjcsIDUuOCBhbmQgNi54LgotIiBJdCBpbXBsZW1lbnRzIEJyYW0gTW9vbGVuYWFyJ3MgQXByaWwgMjUsIDIwMDEgcmVjb21tZW5kYXRpb25zIHRvIG1ha2UKLSIgdGhlIHN5bnRheCBmaWxlIG1heGltYWxseSBwb3J0YWJsZSBhY3Jvc3MgZGlmZmVyZW50IHZlcnNpb25zIG9mIHZpbS4KLSIgSWYgdmltIDYuMCsgaXMgYXZhaWxhYmxlLAotIiB0aGlzIHN5bnRheCBmaWxlIHRha2VzIGFkdmFudGFnZSBvZiB0aGUgdmltIDYuMCBhZHZhbmNlZCBwYXR0ZXJuLW1hdGNoaW5nCi0iIGZ1bmN0aW9ucyB0byBhdm9pZCBoaWdobGlnaHRpbmcgdW5pbnRlcmVzdGluZyBsZWFkaW5nIHNwYWNlcyBpbgotIiBzb21lIGV4cHJlc3Npb25zIGNvbnRhaW5pbmcgIndpdGgiIGFuZCAidXNlIi4KLQotIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKLSIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKLWlmIHZlcnNpb24gPCA2MDAKLSBzeW50YXggY2xlYXIKLWVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQotIGZpbmlzaAoraWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikgfHwgdmVyc2lvbiA8IDcwMAorICAgIGZpbmlzaAogZW5kaWYKIAotIiBBZGEgaXMgZW50aXJlbHkgY2FzZS1pbnNlbnNpdGl2ZS4KLXN5biBjYXNlIGlnbm9yZQorbGV0IGI6Y3VycmVudF9zeW50YXggPSAiYWRhIgogCi0iIFdlIGRvbid0IG5lZWQgdG8gbG9vayBiYWNrd2FyZHMgdG8gaGlnaGxpZ2h0IGNvcnJlY3RseTsKLSIgdGhpcyBzcGVlZHMgdGhpbmdzIHVwIGdyZWF0bHkuCi1zeW4gc3luYyBtaW5saW5lcz0xIG1heGxpbmVzPTEKKyIgU2VjdGlvbjogQWRhIGlzIGVudGlyZWx5IGNhc2UtaW5zZW5zaXRpdmUuIHt7ezEKKyIKK3N5bnRheCAgIGNhc2UgaWdub3JlCitzZXRsb2NhbCBub3NtYXJ0Y2FzZQorc2V0bG9jYWwgaWdub3JlY2FzZQogCi0iIEhpZ2hsaWdodGluZyBjb21tYW5kcy4gIFRoZXJlIGFyZSA2OSByZXNlcnZlZCB3b3JkcyBpbiB0b3RhbCBpbiBBZGE5NS4KLSIgU29tZSBrZXl3b3JkcyBhcmUgdXNlZCBpbiBtb3JlIHRoYW4gb25lIHdheS4gRm9yIGV4YW1wbGU6CisiIFNlY3Rpb246IEhpZ2hsaWdodGluZyBjb21tYW5kcyB7e3sxCisiCisiIFRoZXJlIGFyZSA3MiByZXNlcnZlZCB3b3JkcyBpbiB0b3RhbCBpbiBBZGEyMDA1LiBTb21lIGtleXdvcmRzIGFyZQorIiB1c2VkIGluIG1vcmUgdGhhbiBvbmUgd2F5LiBGb3IgZXhhbXBsZToKICIgMS4gImVuZCIgaXMgYSBnZW5lcmFsIGtleXdvcmQsIGJ1dCAiZW5kIGlmIiBlbmRzIGEgQ29uZGl0aW9uYWwuCiAiIDIuICJ0aGVuIiBpcyBhIGNvbmRpdGlvbmFsLCBidXQgImFuZCB0aGVuIiBpcyBhbiBvcGVyYXRvci4KKyIKK2ZvciBiOkl0ZW0gaW4gZzphZGEjS2V5d29yZHMKKyAgICIgU3RhbmRhcmQgRXhjZXB0aW9ucyAoaW5jbHVkaW5nIEkvTykuCisgICAiIFdlJ2xsIGhpZ2hsaWdodCB0aGUgc3RhbmRhcmQgZXhjZXB0aW9ucywgc2ltaWxhciB0byB2aW0ncyBQeXRob24gbW9kZS4KKyAgICIgSXQncyBwb3NzaWJsZSB0byByZWRlZmluZSB0aGUgc3RhbmRhcmQgZXhjZXB0aW9ucyBhcyBzb21ldGhpbmcgZWxzZSwKKyAgICIgYnV0IGRvaW5nIHNvIGlzIHZlcnkgYmFkIHByYWN0aWNlLCBzbyBzaW1wbHkgaGlnaGxpZ2h0aW5nIHRoZW0gbWFrZXMgc2Vuc2UuCisgICBpZiBiOkl0ZW1bJ2tpbmQnXSA9PSAieCIKKyAgICAgIGV4ZWN1dGUgInN5bnRheCBrZXl3b3JkIGFkYUV4Y2VwdGlvbiAiIC4gYjpJdGVtWyd3b3JkJ10KKyAgIGVuZGlmCisgICBpZiBiOkl0ZW1bJ2tpbmQnXSA9PSAiYSIKKyAgICAgIGV4ZWN1dGUgJ3N5bnRheCBtYXRjaCBhZGFBdHRyaWJ1dGUgIlxWJyAuIGI6SXRlbVsnd29yZCddIC4gJyInCisgICBlbmRpZgorICAgIiBXZSBkb24ndCBub3JtYWxseSBoaWdobGlnaHQgdHlwZXMgaW4gcGFja2FnZSBTdGFuZGFyZAorICAgIiAoSW50ZWdlciwgQ2hhcmFjdGVyLCBGbG9hdCwgZXRjLikuICBJIGRvbid0IHRoaW5rIGl0IGxvb2tzIGdvb2QKKyAgICIgd2l0aCB0aGUgb3RoZXIgdHlwZSBrZXl3b3JkcywgYW5kIG1hbnkgQWRhIHByb2dyYW1zIGRlZmluZQorICAgIiBzbyBtYW55IG9mIHRoZWlyIG93biB0eXBlcyB0aGF0IGl0IGxvb2tzIGluY29uc2lzdGVudC4KKyAgICIgSG93ZXZlciwgaWYgeW91IHdhbnQgdGhpcyBoaWdobGlnaHRpbmcsIHR1cm4gb24gImFkYV9zdGFuZGFyZF90eXBlcyIuCisgICAiIEZvciBwYWNrYWdlIFN0YW5kYXJkJ3MgZGVmaW5pdGlvbiwgc2VlIEFSTSBzZWN0aW9uIEEuMS4KKyAgIGlmIGI6SXRlbVsna2luZCddID09ICJ0IiAmJiBleGlzdHMgKCJnOmFkYV9zdGFuZGFyZF90eXBlcyIpCisgICAgICBleGVjdXRlICJzeW50YXgga2V5d29yZCBhZGFCdWlsdGluVHlwZSAiIC4gYjpJdGVtWyd3b3JkJ10KKyAgIGVuZGlmCitlbmRmb3IKIAorIiBTZWN0aW9uOiBvdGhlcnMge3t7MQorIgorc3ludGF4IGtleXdvcmQgIGFkYUxhYmVsCW90aGVycwogCi0iIFN0YW5kYXJkIEV4Y2VwdGlvbnMgKGluY2x1ZGluZyBJL08pLgotIiBXZSdsbCBoaWdobGlnaHQgdGhlIHN0YW5kYXJkIGV4Y2VwdGlvbnMsIHNpbWlsYXIgdG8gdmltJ3MgUHl0aG9uIG1vZGUuCi0iIEl0J3MgcG9zc2libGUgdG8gcmVkZWZpbmUgdGhlIHN0YW5kYXJkIGV4Y2VwdGlvbnMgYXMgc29tZXRoaW5nIGVsc2UsCi0iIGJ1dCBkb2luZyBzbyBpcyB2ZXJ5IGJhZCBwcmFjdGljZSwgc28gc2ltcGx5IGhpZ2hsaWdodGluZyB0aGVtIG1ha2VzIHNlbnNlLgotc3luIGtleXdvcmQgYWRhRXhjZXB0aW9uIENvbnN0cmFpbnRfRXJyb3IgUHJvZ3JhbV9FcnJvciBTdG9yYWdlX0Vycm9yCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gVGFza2luZ19FcnJvcgotc3luIGtleXdvcmQgYWRhRXhjZXB0aW9uIFN0YXR1c19FcnJvciBNb2RlX0Vycm9yIE5hbWVfRXJyb3IgVXNlX0Vycm9yCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gRGV2aWNlX0Vycm9yIEVuZF9FcnJvciBEYXRhX0Vycm9yIExheW91dF9FcnJvcgotc3luIGtleXdvcmQgYWRhRXhjZXB0aW9uIExlbmd0aF9FcnJvciBQYXR0ZXJuX0Vycm9yIEluZGV4X0Vycm9yCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gVHJhbnNsYXRpb25fRXJyb3IKLXN5biBrZXl3b3JkIGFkYUV4Y2VwdGlvbiBUaW1lX0Vycm9yIEFyZ3VtZW50X0Vycm9yCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gVGFnX0Vycm9yCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gUGljdHVyZV9FcnJvcgotIiBJbnRlcmZhY2VzCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gVGVybWluYXRvcl9FcnJvciBDb252ZXJzaW9uX0Vycm9yCi1zeW4ga2V5d29yZCBhZGFFeGNlcHRpb24gUG9pbnRlcl9FcnJvciBEZXJlZmVyZW5jZV9FcnJvciBVcGRhdGVfRXJyb3IKLSIgVGhpcyBpc24ndCBpbiB0aGUgQWRhIHNwZWMsIGJ1dCBhIEdOQVQgZXh0ZW5zaW9uLgotc3luIGtleXdvcmQgYWRhRXhjZXB0aW9uIEFzc2VydF9GYWlsdXJlCi0iIFdlIGRvbid0IGxpc3QgQUxMIGV4Y2VwdGlvbnMgZGVmaW5lZCBpbiBwYXJ0aWN1bGFyIGNvbXBpbGVycyAoZS5nLiwgR05BVCksCi0iIGJlY2F1c2UgaXQncyBxdWl0ZSByZWFzb25hYmxlIHRvIGRlZmluZSB0aG9zZSBwaHJhc2VzIGFzIG5vbi1leGNlcHRpb25zLgorIiBTZWN0aW9uOiBPcGVyYXRvcmVuIHt7ezEKKyIKK3N5bnRheCBrZXl3b3JkICBhZGFPcGVyYXRvciBhYnMgbW9kIG5vdCByZW0geG9yCitzeW50YXggbWF0Y2ggICAgYWRhT3BlcmF0b3IgIlw8YW5kXD4iCitzeW50YXggbWF0Y2ggICAgYWRhT3BlcmF0b3IgIlw8YW5kXHNcK3RoZW5cPiIKK3N5bnRheCBtYXRjaCAgICBhZGFPcGVyYXRvciAiXDxvclw+Igorc3ludGF4IG1hdGNoICAgIGFkYU9wZXJhdG9yICJcPG9yXHNcK2Vsc2VcPiIKK3N5bnRheCBtYXRjaCAgICBhZGFPcGVyYXRvciAiWy0rKi88PiZdIgorc3ludGF4IGtleXdvcmQgIGFkYU9wZXJhdG9yICoqCitzeW50YXggbWF0Y2ggICAgYWRhT3BlcmF0b3IgIlsvPD5dPSIKK3N5bnRheCBrZXl3b3JkICBhZGFPcGVyYXRvciA9Pgorc3ludGF4IG1hdGNoICAgIGFkYU9wZXJhdG9yICJcLlwuIgorc3ludGF4IG1hdGNoICAgIGFkYU9wZXJhdG9yICI9IgogCisiIFNlY3Rpb246IDw+IHt7ezEKKyIKKyIgSGFuZGxlIHRoZSBib3gsIDw+LCBzcGVjaWFsbHk6CisiCitzeW50YXgga2V5d29yZCAgYWRhU3BlY2lhbAkgICAgPD4KIAotIiBXZSBkb24ndCBub3JtYWxseSBoaWdobGlnaHQgdHlwZXMgaW4gcGFja2FnZSBTdGFuZGFyZAotIiAoSW50ZWdlciwgQ2hhcmFjdGVyLCBGbG9hdCwgZXRjLikuICBJIGRvbid0IHRoaW5rIGl0IGxvb2tzIGdvb2QKLSIgd2l0aCB0aGUgb3RoZXIgdHlwZSBrZXl3b3JkcywgYW5kIG1hbnkgQWRhIHByb2dyYW1zIGRlZmluZQotIiBzbyBtYW55IG9mIHRoZWlyIG93biB0eXBlcyB0aGF0IGl0IGxvb2tzIGluY29uc2lzdGVudC4KLSIgSG93ZXZlciwgaWYgeW91IHdhbnQgdGhpcyBoaWdobGlnaHRpbmcsIHR1cm4gb24gImFkYV9zdGFuZGFyZF90eXBlcyIuCi0iIEZvciBwYWNrYWdlIFN0YW5kYXJkJ3MgZGVmaW5pdGlvbiwgc2VlIEFSTSBzZWN0aW9uIEEuMS4KLQotaWYgZXhpc3RzKCJhZGFfc3RhbmRhcmRfdHlwZXMiKQotICBzeW4ga2V5d29yZCBhZGFCdWlsdGluVHlwZQlCb29sZWFuIEludGVnZXIgTmF0dXJhbCBQb3NpdGl2ZSBGbG9hdAotICBzeW4ga2V5d29yZCBhZGFCdWlsdGluVHlwZQlDaGFyYWN0ZXIgV2lkZV9DaGFyYWN0ZXIKLSAgc3luIGtleXdvcmQgYWRhQnVpbHRpblR5cGUJU3RyaW5nIFdpZGVfU3RyaW5nCi0gIHN5biBrZXl3b3JkIGFkYUJ1aWx0aW5UeXBlCUR1cmF0aW9uCi0gICIgVGhlc2UgYXJlbid0IGxpc3RlZCBpbiBBUk0gc2VjdGlvbiBBLjEncyBjb2RlLCBidXQgdGhleSdyZSBub3RlZCBhcwotICAiIG9wdGlvbnMgaW4gQVJNIHNlY3Rpb25zIDMuNS40IGFuZCAzLjUuNzoKLSAgc3luIGtleXdvcmQgYWRhQnVpbHRpblR5cGUJU2hvcnRfSW50ZWdlciBTaG9ydF9TaG9ydF9JbnRlZ2VyCi0gIHN5biBrZXl3b3JkIGFkYUJ1aWx0aW5UeXBlCUxvbmdfSW50ZWdlciBMb25nX0xvbmdfSW50ZWdlcgotICBzeW4ga2V5d29yZCBhZGFCdWlsdGluVHlwZQlTaG9ydF9GbG9hdCBTaG9ydF9TaG9ydF9GbG9hdAotICBzeW4ga2V5d29yZCBhZGFCdWlsdGluVHlwZQlMb25nX0Zsb2F0IExvbmdfTG9uZ19GbG9hdAorIiBTZWN0aW9uOiByYWluYm93IGNvbG9yIHt7ezEKKyIKK2lmIGV4aXN0cygiZzphZGFfcmFpbmJvd19jb2xvciIpCisgICAgc3ludGF4IG1hdGNoCWFkYVNwZWNpYWwJICJbOjsuLF0iCisgICAgcnVudGltZSBwbHVnaW4vUmFpbmJvd19QYXJlbnRoc2lzLnZpbQorZWxzZQorICAgIHN5bnRheCBtYXRjaAlhZGFTcGVjaWFsCSAiWzo7KCkuLF0iCiBlbmRpZgogCi0iIFRoZXJlIGFyZSBNQU5ZIG90aGVyIHByZWRlZmluZWQgdHlwZXM7IHRoZXkndmUgbm90IGJlZW4gYWRkZWQsIGJlY2F1c2UKLSIgZGV0ZXJtaW5pbmcgd2hlbiB0aGV5J3JlIGEgdHlwZSByZXF1aXJlcyBjb250ZXh0IGluIGdlbmVyYWwuCi0iIE9uZSBwb3RlbnRpYWwgYWRkaXRpb24gd291bGQgYmUgVW5ib3VuZGVkX1N0cmluZy4KLQotCi1zeW4ga2V5d29yZCBhZGFMYWJlbAkJb3RoZXJzCi0KLXN5biBrZXl3b3JkIGFkYU9wZXJhdG9yCQlhYnMgbW9kIG5vdCByZW0geG9yCi1zeW4gbWF0Y2ggYWRhT3BlcmF0b3IJCSJcPGFuZFw+Igotc3luIG1hdGNoIGFkYU9wZXJhdG9yCQkiXDxhbmRcc1wrdGhlblw+Igotc3luIG1hdGNoIGFkYU9wZXJhdG9yCQkiXDxvclw+Igotc3luIG1hdGNoIGFkYU9wZXJhdG9yCQkiXDxvclxzXCtlbHNlXD4iCi1zeW4gbWF0Y2ggYWRhT3BlcmF0b3IJCSJbLSsqLzw+Jl0iCi1zeW4ga2V5d29yZCBhZGFPcGVyYXRvcgkJKioKLXN5biBtYXRjaCBhZGFPcGVyYXRvcgkJIlsvPD5dPSIKLXN5biBrZXl3b3JkIGFkYU9wZXJhdG9yCQk9Pgotc3luIG1hdGNoIGFkYU9wZXJhdG9yCQkiXC5cLiIKLXN5biBtYXRjaCBhZGFPcGVyYXRvcgkJIj0iCi0KKyIgU2VjdGlvbjogOj0ge3t7MQorIgogIiBXZSB3b24ndCBtYXAgImFkYUFzc2lnbm1lbnQiIGJ5IGRlZmF1bHQsIGJ1dCB3ZSBuZWVkIHRvIG1hcCAiOj0iIHRvCiAiIHNvbWV0aGluZyBvciB0aGUgIj0iIGluc2lkZSBpdCB3aWxsIGJlIG1pc2xhYmVsbGVkIGFzIGFuIG9wZXJhdG9yLgogIiBOb3RlIHRoYXQgaW4gQWRhLCBhc3NpZ25tZW50ICg6PSkgaXMgbm90IGNvbnNpZGVyZWQgYW4gb3BlcmF0b3IuCi1zeW4gbWF0Y2ggYWRhQXNzaWdubWVudAkJIjo9IgorIgorc3ludGF4IG1hdGNoIGFkYUFzc2lnbm1lbnQJCSI6PSIKIAotIiBIYW5kbGUgdGhlIGJveCwgPD4sIHNwZWNpYWxseToKLXN5biBrZXl3b3JkIGFkYVNwZWNpYWwJPD4KKyIgU2VjdGlvbjogTnVtYmVycywgaW5jbHVkaW5nIGZsb2F0aW5nIHBvaW50LCBleHBvbmVudHMsIGFuZCBhbHRlcm5hdGUgYmFzZXMuIHt7ezEKKyIKK3N5bnRheCBtYXRjaCAgIGFkYU51bWJlcgkJIlw8XGRbMC05X10qXChcLlxkWzAtOV9dKlwpXD1cKFtFZV1bKy1dXD1cZFswLTlfXSpcKVw9XD4iCitzeW50YXggbWF0Y2ggICBhZGFOdW1iZXIJCSJcPFxkXGRcPSNceFswLTlBLUZhLWZfXSpcKFwuXHhbMC05QS1GYS1mX10qXClcPSNcKFtFZV1bKy1dXD1cZFswLTlfXSpcKVw9IgogCi0iIE51bWJlcnMsIGluY2x1ZGluZyBmbG9hdGluZyBwb2ludCwgZXhwb25lbnRzLCBhbmQgYWx0ZXJuYXRlIGJhc2VzLgotc3luIG1hdGNoICAgYWRhTnVtYmVyCQkiXDxcZFswLTlfXSpcKFwuXGRbMC05X10qXClcPVwoW0VlXVsrLV1cPVxkWzAtOV9dKlwpXD1cPiIKLXN5biBtYXRjaCAgIGFkYU51bWJlcgkJIlw8XGRcZFw9I1x4WzAtOUEtRmEtZl9dKlwoXC5ceFswLTlBLUZhLWZfXSpcKVw9I1woW0VlXVsrLV1cPVxkWzAtOV9dKlwpXD0iCisiIFNlY3Rpb246IElkZW50aWZ5IGxlYWRpbmcgbnVtZXJpYyBzaWducyB7e3sxCisiCisiIEluICJBLTUiIHRoZSAiLSIgaXMgYW4gb3BlcmF0b3IsICIgYnV0IGluICJBOj0tNSIgdGhlICItIiBpcyBhIHNpZ24uIFRoaXMKKyIgaGFuZGxlcyAiQTMrLTUiIChldGMuKSBjb3JyZWN0bHkuICAiIFRoaXMgYXNzdW1lcyB0aGF0IGlmIHlvdSBwdXQgYQorIiBkb24ndCBwdXQgYSBzcGFjZSBhZnRlciArLy0gd2hlbiBpdCdzIHVzZWQgIiBhcyBhbiBvcGVyYXRvciwgeW91IHdvbid0CisiIHB1dCBhIHNwYWNlIGJlZm9yZSBpdCBlaXRoZXIgLS0gd2hpY2ggaXMgdHJ1ZSAiIGluIGNvZGUgSSd2ZSBzZWVuLgorIgorc3ludGF4IG1hdGNoIGFkYVNpZ24gIltbOnNwYWNlOl08Pj0oLHw6OyYqLystXVsrLV1cZCJsYz0xLGhzPXMrMSxoZT1lLTEsbWU9ZS0xCiAKLSIgSWRlbnRpZnkgbGVhZGluZyBudW1lcmljIHNpZ25zLiBJbiAiQS01IiB0aGUgIi0iIGlzIGFuIG9wZXJhdG9yLAotIiBidXQgaW4gIkE6PS01IiB0aGUgIi0iIGlzIGEgc2lnbi4gVGhpcyBoYW5kbGVzICJBMystNSIgKGV0Yy4pIGNvcnJlY3RseS4KLSIgVGhpcyBhc3N1bWVzIHRoYXQgaWYgeW91IHB1dCBhIGRvbid0IHB1dCBhIHNwYWNlIGFmdGVyICsvLSB3aGVuIGl0J3MgdXNlZAotIiBhcyBhbiBvcGVyYXRvciwgeW91IHdvbid0IHB1dCBhIHNwYWNlIGJlZm9yZSBpdCBlaXRoZXIgLS0gd2hpY2ggaXMgdHJ1ZQotIiBpbiBjb2RlIEkndmUgc2Vlbi4KLXN5biBtYXRjaCBhZGFTaWduICJbWzpzcGFjZTpdPD49KCx8OjsmKi8rLV1bKy1dXGQibGM9MSxocz1zKzEsaGU9ZS0xLG1lPWUtMQorIiBTZWN0aW9uOiBMYWJlbHMgZm9yIHRoZSBnb3RvIHN0YXRlbWVudC4ge3t7MQorIgorc3ludGF4IHJlZ2lvbiAgYWRhTGFiZWwJCXN0YXJ0PSI8PCIgIGVuZD0iPj4iCiAKLSIgTGFiZWxzIGZvciB0aGUgZ290byBzdGF0ZW1lbnQuCi1zeW4gcmVnaW9uICBhZGFMYWJlbAkJc3RhcnQ9Ijw8IiAgZW5kPSI+PiIKLQorIiBTZWN0aW9uOiBCb29sZWFuIENvbnN0YW50cyB7e3sxCiAiIEJvb2xlYW4gQ29uc3RhbnRzLgotc3luIGtleXdvcmQgYWRhQm9vbGVhbgl0cnVlIGZhbHNlCitzeW50YXgga2V5d29yZCBhZGFCb29sZWFuCXRydWUgZmFsc2UKIAorIiBTZWN0aW9uOiBXYXJuIEMvQysrIHt7ezEKKyIKICIgV2FybiBwZW9wbGUgd2hvIHRyeSB0byB1c2UgQy9DKysgbm90YXRpb24gZXJyb25lb3VzbHk6Ci1zeW4gbWF0Y2ggYWRhRXJyb3IgIi8vIgotc3luIG1hdGNoIGFkYUVycm9yICIvXCoiCi1zeW4gbWF0Y2ggYWRhRXJyb3IgIj09IgorIgorc3ludGF4IG1hdGNoIGFkYUVycm9yICIvLyIKK3N5bnRheCBtYXRjaCBhZGFFcnJvciAiL1wqIgorc3ludGF4IG1hdGNoIGFkYUVycm9yICI9PSIKIAogCi1pZiBleGlzdHMoImFkYV9zcGFjZV9lcnJvcnMiKQotICBpZiAhZXhpc3RzKCJhZGFfbm9fdHJhaWxfc3BhY2VfZXJyb3IiKQotICAgIHN5biBtYXRjaCAgIGFkYVNwYWNlRXJyb3IgICAgIGV4Y2x1ZGVubCAiXHNcKyQiCi0gIGVuZGlmCi0gIGlmICFleGlzdHMoImFkYV9ub190YWJfc3BhY2VfZXJyb3IiKQotICAgIHN5biBtYXRjaCAgIGFkYVNwYWNlRXJyb3IgICAgICIgXCtcdCJtZT1lLTEKLSAgZW5kaWYKKyIgU2VjdGlvbjogU3BhY2UgRXJyb3JzIHt7ezEKKyIKK2lmIGV4aXN0cygiZzphZGFfc3BhY2VfZXJyb3JzIikKKyAgIGlmICFleGlzdHMoImc6YWRhX25vX3RyYWlsX3NwYWNlX2Vycm9yIikKKyAgICAgICBzeW50YXggbWF0Y2ggICBhZGFTcGFjZUVycm9yCSBleGNsdWRlbmwgIlxzXCskIgorICAgZW5kaWYKKyAgIGlmICFleGlzdHMoImc6YWRhX25vX3RhYl9zcGFjZV9lcnJvciIpCisgICAgICBzeW50YXggbWF0Y2ggICBhZGFTcGFjZUVycm9yCSAiIFwrXHQibWU9ZS0xCisgICBlbmRpZgorICAgaWYgIWV4aXN0cygiZzphZGFfYWxsX3RhYl91c2FnZSIpCisgICAgICBzeW50YXggbWF0Y2ggICBhZGFTcGVjaWFsCSAiXHQiCisgICBlbmRpZgogZW5kaWYKIAorIiBTZWN0aW9uOiBlbmQge3t7MQogIiBVbmxlc3Mgc3BlY2lhbCAoImVuZCBsb29wIiwgImVuZCBpZiIsIGV0Yy4pLCAiZW5kIiBtYXJrcyB0aGUgZW5kIG9mIGEKICIgYmVnaW4sIHBhY2thZ2UsIHRhc2sgZXRjLiBBc3NpZ2luZyBpdCB0byBhZGFFbmQuCi1zeW4gbWF0Y2ggYWRhRW5kCQkiXDxlbmRcPiIKK3N5bnRheCBtYXRjaCAgICBhZGFFbmQJIlw8ZW5kXD4iCiAKLXN5biBrZXl3b3JkIGFkYVByZXByb2MJCXByYWdtYQorc3ludGF4IGtleXdvcmQgIGFkYVByZXByb2MJCSBwcmFnbWEKIAotc3luIGtleXdvcmQgYWRhUmVwZWF0CQlleGl0IGZvciBsb29wIHJldmVyc2Ugd2hpbGUKLXN5biBtYXRjaCBhZGFSZXBlYXQJCSJcPGVuZFxzXCtsb29wXD4iCitzeW50YXgga2V5d29yZCAgYWRhUmVwZWF0CSBleGl0IGZvciBsb29wIHJldmVyc2Ugd2hpbGUKK3N5bnRheCBtYXRjaCAgICBhZGFSZXBlYXQJCSAgICJcPGVuZFxzXCtsb29wXD4iCiAKLXN5biBrZXl3b3JkIGFkYVN0YXRlbWVudAlhY2NlcHQgZGVsYXkgZ290byByYWlzZSByZXF1ZXVlIHJldHVybgotc3luIGtleXdvcmQgYWRhU3RhdGVtZW50CXRlcm1pbmF0ZQotc3luIG1hdGNoIGFkYVN0YXRlbWVudAkiXDxhYm9ydFw+Igorc3ludGF4IGtleXdvcmQgIGFkYVN0YXRlbWVudCBhY2NlcHQgZGVsYXkgZ290byByYWlzZSByZXF1ZXVlIHJldHVybgorc3ludGF4IGtleXdvcmQgIGFkYVN0YXRlbWVudCB0ZXJtaW5hdGUKK3N5bnRheCBtYXRjaCAgICBhZGFTdGF0ZW1lbnQgICJcPGFib3J0XD4iCiAKLSIgSGFuZGxlIEFkYSdzIHJlY29yZCBrZXl3b3Jkcy4KKyIgU2VjdGlvbjogSGFuZGxlIEFkYSdzIHJlY29yZCBrZXl3b3Jkcy4ge3t7MQorIgogIiAncmVjb3JkJyB1c3VhbGx5IHN0YXJ0cyBhIHN0cnVjdHVyZSwgYnV0ICJ3aXRoIG51bGwgcmVjb3JkOyIgZG9lcyBub3QsCiAiIGFuZCAnZW5kIHJlY29yZDsnIGVuZHMgYSBzdHJ1Y3R1cmUuICBUaGUgb3JkZXJpbmcgaGVyZSBpcyBjcml0aWNhbCAtCiAiICdyZWNvcmQ7JyBtYXRjaGVzIGEgIndpdGggbnVsbCByZWNvcmQiLCBzbyBtYWtlIGl0IGEga2V5d29yZCAodGhpcyBjYW4KICIgbWF0Y2ggd2hlbiB0aGUgJ3dpdGgnIG9yICdudWxsJyBpcyBvbiBhIHByZXZpb3VzIGxpbmUpLgogIiBXZSBzZWUgdGhlICJlbmQiIGluICJlbmQgcmVjb3JkIiBiZWZvcmUgdGhlIHdvcmQgcmVjb3JkLCBzbyB3ZSBtYXRjaCB0aGF0CiAiIHBhdHRlcm4gYXMgYWRhU3RydWN0dXJlIChhbmQgaXQgd29uJ3QgbWF0Y2ggdGhlICJyZWNvcmQ7IiBwYXR0ZXJuKS4KLXN5biBtYXRjaCBhZGFTdHJ1Y3R1cmUJIlw8cmVjb3JkXD4iCi1zeW4gbWF0Y2ggYWRhU3RydWN0dXJlCSJcPGVuZFxzXCtyZWNvcmRcPiIKLXN5biBtYXRjaCBhZGFLZXl3b3JkCSJcPHJlY29yZDsibWU9ZS0xCisiCitzeW50YXggbWF0Y2ggYWRhU3RydWN0dXJlICAgIlw8cmVjb3JkXD4iCWNvbnRhaW5zPWFkYVJlY29yZAorc3ludGF4IG1hdGNoIGFkYVN0cnVjdHVyZSAgICJcPGVuZFxzXCtyZWNvcmRcPiIJY29udGFpbnM9YWRhUmVjb3JkCitzeW50YXggbWF0Y2ggYWRhS2V5d29yZAkgICAgIlw8cmVjb3JkOyJtZT1lLTEKIAotc3luIGtleXdvcmQgYWRhU3RvcmFnZUNsYXNzCWFic3RyYWN0IGFjY2VzcyBhbGlhc2VkIGFycmF5IGF0IGNvbnN0YW50IGRlbHRhCi1zeW4ga2V5d29yZCBhZGFTdG9yYWdlQ2xhc3MJZGlnaXRzIGxpbWl0ZWQgb2YgcHJpdmF0ZSByYW5nZSB0YWdnZWQKLXN5biBrZXl3b3JkIGFkYVR5cGVkZWYJCXN1YnR5cGUgdHlwZQorIiBTZWN0aW9uOiB0eXBlIGNsYXNzZXMge3t7MQorIgorc3ludGF4IGtleXdvcmQgYWRhU3RvcmFnZUNsYXNzCWFic3RyYWN0IGFjY2VzcyBhbGlhc2VkIGFycmF5IGF0IGNvbnN0YW50IGRlbHRhCitzeW50YXgga2V5d29yZCBhZGFTdG9yYWdlQ2xhc3MJZGlnaXRzIGxpbWl0ZWQgb2YgcHJpdmF0ZSByYW5nZSB0YWdnZWQKK3N5bnRheCBrZXl3b3JkIGFkYVN0b3JhZ2VDbGFzcwlpbnRlcmZhY2Ugc3luY2hyb25pemVkCitzeW50YXgga2V5d29yZCBhZGFUeXBlZGVmCXN1YnR5cGUgdHlwZQogCi0iIENvbmRpdGlvbmFscy4gImFib3J0IiBhZnRlciAidGhlbiIgaXMgYSBjb25kaXRpb25hbCBvZiBpdHMgb3duLgotc3luIG1hdGNoIGFkYUNvbmRpdGlvbmFsCSJcPHRoZW5cPiIKLXN5biBtYXRjaCBhZGFDb25kaXRpb25hbAkiXDx0aGVuXHNcK2Fib3J0XD4iCi1zeW4gbWF0Y2ggYWRhQ29uZGl0aW9uYWwJIlw8ZWxzZVw+Igotc3luIG1hdGNoIGFkYUNvbmRpdGlvbmFsCSJcPGVuZFxzXCtpZlw+Igotc3luIG1hdGNoIGFkYUNvbmRpdGlvbmFsCSJcPGVuZFxzXCtjYXNlXD4iCi1zeW4gbWF0Y2ggYWRhQ29uZGl0aW9uYWwJIlw8ZW5kXHNcK3NlbGVjdFw+Igotc3luIGtleXdvcmQgYWRhQ29uZGl0aW9uYWwJaWYgY2FzZSBzZWxlY3QKLXN5biBrZXl3b3JkIGFkYUNvbmRpdGlvbmFsCWVsc2lmIHdoZW4KKyIgU2VjdGlvbjogQ29uZGl0aW9uYWxzIHt7ezEKKyIKKyIgImFib3J0IiBhZnRlciAidGhlbiIgaXMgYSBjb25kaXRpb25hbCBvZiBpdHMgb3duLgorIgorc3ludGF4IG1hdGNoICAgIGFkYUNvbmRpdGlvbmFsICAiXDx0aGVuXD4iCitzeW50YXggbWF0Y2ggICAgYWRhQ29uZGl0aW9uYWwJIlw8dGhlblxzXCthYm9ydFw+Igorc3ludGF4IG1hdGNoICAgIGFkYUNvbmRpdGlvbmFsCSJcPGVsc2VcPiIKK3N5bnRheCBtYXRjaCAgICBhZGFDb25kaXRpb25hbAkiXDxlbmRcc1wraWZcPiIKK3N5bnRheCBtYXRjaCAgICBhZGFDb25kaXRpb25hbAkiXDxlbmRcc1wrY2FzZVw+Igorc3ludGF4IG1hdGNoICAgIGFkYUNvbmRpdGlvbmFsCSJcPGVuZFxzXCtzZWxlY3RcPiIKK3N5bnRheCBrZXl3b3JkICBhZGFDb25kaXRpb25hbAlpZiBjYXNlIHNlbGVjdAorc3ludGF4IGtleXdvcmQgIGFkYUNvbmRpdGlvbmFsCWVsc2lmIHdoZW4KIAotc3luIGtleXdvcmQgYWRhS2V5d29yZAkJYWxsIGRvIGV4Y2VwdGlvbiBpbiBpcyBuZXcgbnVsbCBvdXQKLXN5biBrZXl3b3JkIGFkYUtleXdvcmQJCXNlcGFyYXRlIHVudGlsCisiIFNlY3Rpb246IG90aGVyIGtleXdvcmRzIHt7ezEKK3N5bnRheCBtYXRjaCAgICBhZGFLZXl3b3JkCSAgICAiXDxpc1w+IiBjb250YWlucz1hZGFSZWNvcmQKK3N5bnRheCBrZXl3b3JkICBhZGFLZXl3b3JkCSAgICBhbGwgZG8gZXhjZXB0aW9uIGluIG5ldyBudWxsIG91dAorc3ludGF4IGtleXdvcmQgIGFkYUtleXdvcmQJICAgIHNlcGFyYXRlIHVudGlsIG92ZXJyaWRpbmcKIAorIiBTZWN0aW9uOiBiZWdpbiBrZXl3b3JkcyB7e3sxCisiCiAiIFRoZXNlIGtleXdvcmRzIGJlZ2luIHZhcmlvdXMgY29uc3RydWN0cywgYW5kIHlvdSBfbWlnaHRfIHdhbnQgdG8KICIgaGlnaGxpZ2h0IHRoZW0gZGlmZmVyZW50bHkuCi1zeW4ga2V5d29yZCBhZGFCZWdpbgkJYmVnaW4gYm9keSBkZWNsYXJlIGVudHJ5IGZ1bmN0aW9uIGdlbmVyaWMKLXN5biBrZXl3b3JkIGFkYUJlZ2luCQlwYWNrYWdlIHByb2NlZHVyZSBwcm90ZWN0ZWQgcmVuYW1lcyB0YXNrCisiCitzeW50YXgga2V5d29yZCAgYWRhQmVnaW4JYmVnaW4gYm9keSBkZWNsYXJlIGVudHJ5IGdlbmVyaWMKK3N5bnRheCBrZXl3b3JkICBhZGFCZWdpbglwcm90ZWN0ZWQgcmVuYW1lcyB0YXNrCiAKK3N5bnRheCBtYXRjaCAgICBhZGFCZWdpbgkiXDxmdW5jdGlvblw+IiBjb250YWlucz1hZGFGdW5jdGlvbgorc3ludGF4IG1hdGNoICAgIGFkYUJlZ2luCSJcPHByb2NlZHVyZVw+IiBjb250YWlucz1hZGFQcm9jZWR1cmUKK3N5bnRheCBtYXRjaCAgICBhZGFCZWdpbgkiXDxwYWNrYWdlXD4iIGNvbnRhaW5zPWFkYVBhY2thZ2UKIAoraWYgZXhpc3RzKCJhZGFfd2l0aF9nbmF0X3Byb2plY3RfZmlsZXMiKQorICAgc3ludGF4IGtleXdvcmQgYWRhQmVnaW4JcHJvamVjdAorZW5kaWYKKworIiBTZWN0aW9uOiB3aXRoLCB1c2Uge3t7MQorIgogaWYgZXhpc3RzKCJhZGFfd2l0aHVzZV9vcmRpbmFyeSIpCi0iIERvbid0IGJlIGZhbmN5LiBEaXNwbGF5ICJ3aXRoIiBhbmQgInVzZSIgYXMgb3JkaW5hcnkga2V5d29yZHMgaW4gYWxsIGNhc2VzLgotIHN5biBrZXl3b3JkIGFkYUtleXdvcmQJCXdpdGggdXNlCisgICAiIERvbid0IGJlIGZhbmN5LiBEaXNwbGF5ICJ3aXRoIiBhbmQgInVzZSIgYXMgb3JkaW5hcnkga2V5d29yZHMgaW4gYWxsIGNhc2VzLgorICAgc3ludGF4IGtleXdvcmQgYWRhS2V5d29yZAkJd2l0aCB1c2UKIGVsc2UKLSAiIEhpZ2hsaWdodCAid2l0aCIgYW5kICJ1c2UiIGNsYXVzZXMgbGlrZSBDJ3MgIiNpbmNsdWRlIiB3aGVuIHRoZXkncmUgdXNlZAotICIgdG8gcmVmZXJlbmNlIG90aGVyIGNvbXBpbGF0aW9uIHVuaXRzOyBvdGhlcndpc2UgdGhleSdyZSBvcmRpbmFyeSBrZXl3b3Jkcy4KLSAiIElmIHdlIGhhdmUgdmltIDYuMCBvciBsYXRlciwgd2UnbGwgdXNlIGl0cyBhZHZhbmNlZCBwYXR0ZXJuLW1hdGNoaW5nCi0gIiBjYXBhYmlsaXRpZXMgc28gdGhhdCB3ZSB3b24ndCBtYXRjaCBsZWFkaW5nIHNwYWNlcy4KLSBzeW4gbWF0Y2ggYWRhS2V5d29yZAkiXDx3aXRoXD4iCi0gc3luIG1hdGNoIGFkYUtleXdvcmQJIlw8dXNlXD4iCi0gaWYgdmVyc2lvbiA8IDYwMAotICBzeW4gbWF0Y2ggYWRhQmVnaW5XaXRoICJeXHMqXChcKHdpdGhcKFxzXCt0eXBlXClcPVwpXHxcKHVzZVwpXClcPiIgY29udGFpbnM9YWRhSW5jCi0gIHN5biBtYXRjaCBhZGFTZW1pV2l0aAkiO1xzKlwoXCh3aXRoXChcc1wrdHlwZVwpXD1cKVx8XCh1c2VcKVwpXD4ibGM9MSBjb250YWlucz1hZGFJbmMKLSBlbHNlCi0gIHN5biBtYXRjaCBhZGFCZWdpbldpdGggIl5ccypcenNcKFwod2l0aFwoXHNcK3R5cGVcKVw9XClcfFwodXNlXClcKVw+IiBjb250YWlucz1hZGFJbmMKLSAgc3luIG1hdGNoIGFkYVNlbWlXaXRoCSI7XHMqXHpzXChcKHdpdGhcKFxzXCt0eXBlXClcPVwpXHxcKHVzZVwpXClcPiIgY29udGFpbnM9YWRhSW5jCi0gZW5kaWYKLSBzeW4gbWF0Y2ggYWRhSW5jCSJcPHdpdGhcPiIgY29udGFpbmVkIGNvbnRhaW5zPU5PTkUKLSBzeW4gbWF0Y2ggYWRhSW5jCSJcPHdpdGhcc1wrdHlwZVw+IiBjb250YWluZWQgY29udGFpbnM9Tk9ORQotIHN5biBtYXRjaCBhZGFJbmMJIlw8dXNlXD4iIGNvbnRhaW5lZCBjb250YWlucz1OT05FCi0gIiBSZWNvZ25pemUgIndpdGggbnVsbCByZWNvcmQiIGFzIGEga2V5d29yZCAoZXZlbiB0aGUgInJlY29yZCIpLgotIHN5biBtYXRjaCBhZGFLZXl3b3JkCSJcPHdpdGhcc1wrbnVsbFxzXCtyZWNvcmRcPiIKLSAiIENvbnNpZGVyIGdlbmVyaWMgZm9ybWFsIHBhcmFtZXRlcnMgb2Ygc3VicHJvZ3JhbXMgYW5kIHBhY2thZ2VzIGFzIGtleXdvcmRzLgotIGlmIHZlcnNpb24gPCA2MDAKLSAgc3luIG1hdGNoIGFkYUtleXdvcmQJIjtccyp3aXRoXHNcK1woZnVuY3Rpb25cfHByb2NlZHVyZVx8cGFja2FnZVwpXD4iCi0gIHN5biBtYXRjaCBhZGFLZXl3b3JkCSJeXHMqd2l0aFxzXCtcKGZ1bmN0aW9uXHxwcm9jZWR1cmVcfHBhY2thZ2VcKVw+IgotIGVsc2UKLSAgc3luIG1hdGNoIGFkYUtleXdvcmQJIjtccypcenN3aXRoXHNcK1woZnVuY3Rpb25cfHByb2NlZHVyZVx8cGFja2FnZVwpXD4iCi0gIHN5biBtYXRjaCBhZGFLZXl3b3JkCSJeXHMqXHpzd2l0aFxzXCtcKGZ1bmN0aW9uXHxwcm9jZWR1cmVcfHBhY2thZ2VcKVw+IgotIGVuZGlmCisgICAiIEhpZ2hsaWdodCAid2l0aCIgYW5kICJ1c2UiIGNsYXVzZXMgbGlrZSBDJ3MgIiNpbmNsdWRlIiB3aGVuIHRoZXkncmUgdXNlZAorICAgIiB0byByZWZlcmVuY2Ugb3RoZXIgY29tcGlsYXRpb24gdW5pdHM7IG90aGVyd2lzZSB0aGV5J3JlIG9yZGluYXJ5IGtleXdvcmRzLgorICAgIiBJZiB3ZSBoYXZlIHZpbSA2LjAgb3IgbGF0ZXIsIHdlJ2xsIHVzZSBpdHMgYWR2YW5jZWQgcGF0dGVybi1tYXRjaGluZworICAgIiBjYXBhYmlsaXRpZXMgc28gdGhhdCB3ZSB3b24ndCBtYXRjaCBsZWFkaW5nIHNwYWNlcy4KKyAgIHN5bnRheCBtYXRjaCBhZGFLZXl3b3JkCSJcPHdpdGhcPiIKKyAgIHN5bnRheCBtYXRjaCBhZGFLZXl3b3JkCSJcPHVzZVw+IgorICAgc3ludGF4IG1hdGNoIGFkYUJlZ2luV2l0aAkiXlxzKlx6c1woXCh3aXRoXChcc1wrdHlwZVwpXD1cKVx8XCh1c2VcKVwpXD4iIGNvbnRhaW5zPWFkYUluYworICAgc3ludGF4IG1hdGNoIGFkYVNlbWlXaXRoCSI7XHMqXHpzXChcKHdpdGhcKFxzXCt0eXBlXClcPVwpXHxcKHVzZVwpXClcPiIgY29udGFpbnM9YWRhSW5jCisgICBzeW50YXggbWF0Y2ggYWRhSW5jCQkiXDx3aXRoXD4iIGNvbnRhaW5lZCBjb250YWlucz1OT05FCisgICBzeW50YXggbWF0Y2ggYWRhSW5jCQkiXDx3aXRoXHNcK3R5cGVcPiIgY29udGFpbmVkIGNvbnRhaW5zPU5PTkUKKyAgIHN5bnRheCBtYXRjaCBhZGFJbmMJCSJcPHVzZVw+IiBjb250YWluZWQgY29udGFpbnM9Tk9ORQorICAgIiBSZWNvZ25pemUgIndpdGggbnVsbCByZWNvcmQiIGFzIGEga2V5d29yZCAoZXZlbiB0aGUgInJlY29yZCIpLgorICAgc3ludGF4IG1hdGNoIGFkYUtleXdvcmQJIlw8d2l0aFxzXCtudWxsXHNcK3JlY29yZFw+IgorICAgIiBDb25zaWRlciBnZW5lcmljIGZvcm1hbCBwYXJhbWV0ZXJzIG9mIHN1YnByb2dyYW1zIGFuZCBwYWNrYWdlcyBhcyBrZXl3b3Jkcy4KKyAgIHN5bnRheCBtYXRjaCBhZGFLZXl3b3JkCSI7XHMqXHpzd2l0aFxzXCtcKGZ1bmN0aW9uXHxwcm9jZWR1cmVcfHBhY2thZ2VcKVw+IgorICAgc3ludGF4IG1hdGNoIGFkYUtleXdvcmQJIl5ccypcenN3aXRoXHNcK1woZnVuY3Rpb25cfHByb2NlZHVyZVx8cGFja2FnZVwpXD4iCiBlbmRpZgogCisiIFNlY3Rpb246IFN0cmluZyBhbmQgY2hhcmFjdGVyIGNvbnN0YW50cy4ge3t7MQorIgorc3ludGF4IHJlZ2lvbiAgYWRhU3RyaW5nCWNvbnRhaW5zPUBTcGVsbCBzdGFydD0rIisgc2tpcD0rIiIrIGVuZD0rIisgCitzeW50YXggbWF0Y2ggICBhZGFDaGFyYWN0ZXIgIicuJyIKIAotIiBTdHJpbmcgYW5kIGNoYXJhY3RlciBjb25zdGFudHMuCi1zeW4gcmVnaW9uICBhZGFTdHJpbmcJCXN0YXJ0PSsiKyAgc2tpcD0rIiIrICBlbmQ9KyIrCi1zeW4gbWF0Y2ggICBhZGFDaGFyYWN0ZXIJIicuJyIKKyIgU2VjdGlvbjogVG9kbyAob25seSBoaWdobGlnaHRlZCBpbiBjb21tZW50cykge3t7MQorIgorc3ludGF4IGtleXdvcmQgYWRhVG9kbyBjb250YWluZWQgVE9ETyBGSVhNRSBYWFggTk9URQogCi0iIFRvZG8gKG9ubHkgaGlnaGxpZ2h0ZWQgaW4gY29tbWVudHMpCi1zeW4ga2V5d29yZCBhZGFUb2RvIGNvbnRhaW5lZAlUT0RPIEZJWE1FIFhYWAorIiBTZWN0aW9uOiBDb21tZW50cy4ge3t7MQorIgorc3ludGF4IHJlZ2lvbiAgYWRhQ29tbWVudCAKKyAgICBcIG9uZWxpbmUgCisgICAgXCBjb250YWlucz1hZGFUb2RvLGFkYUxpbmVFcnJvcixAU3BlbGwKKyAgICBcIHN0YXJ0PSItLSIgCisgICAgXCBlbmQ9IiQiCiAKLSIgQ29tbWVudHMuCi1zeW4gcmVnaW9uICBhZGFDb21tZW50CW9uZWxpbmUgY29udGFpbnM9YWRhVG9kbyBzdGFydD0iLS0iICBlbmQ9IiQiCisiIFNlY3Rpb246IGxpbmUgZXJyb3JzIHt7ezEKKyIKKyIgTm90ZTogTGluZSBlcnJvcnMgaGF2ZSBiZWNvbWUgcXVpdGUgc2xvdyB3aXRoIFZpbSA3LjAKKyIKK2lmIGV4aXN0cygiZzphZGFfbGluZV9lcnJvcnMiKQorICAgIHN5bnRheCBtYXRjaCBhZGFMaW5lRXJyb3IgIlwoXi5cezc5fVwpXEA8PS4iICBjb250YWlucz1BTEwgY29udGFpbmVkaW49QUxMCitlbmRpZgogCisiIFNlY3Rpb246IHN5bnRheCBmb2xkaW5nIHt7ezEKKyIKKyIJU3ludGF4IGZvbGRpbmcgaXMgdmVyeSB0cmlja3kgLSBmb3Igbm93IEkgc3RpbGwgc3VnZ2VzdCB0byB1c2UKKyIJaW5kZW50IGZvbGRpbmcKKyIKK2lmIGV4aXN0cygiZzphZGFfZm9sZGluZyIpICYmIGc6YWRhX2ZvbGRpbmdbMF0gPT0gJ3MnCisgICBpZiBzdHJpZHggKGc6YWRhX2ZvbGRpbmcsICdwJykgPj0gMAorICAgICAgc3ludGF4IHJlZ2lvbiBhZGFQYWNrYWdlCisgICAgICAgICBcIHN0YXJ0PSJcKFw8cGFja2FnZVxzXCtib2R5XD5cfFw8cGFja2FnZVw+XClccypceihcaypcKSIKKyAgICAgICAgIFwgZW5kPSJlbmRcc1wrXHoxXHMqOyIKKyAgICAgICAgIFwga2VlcGVuZCBleHRlbmQgdHJhbnNwYXJlbnQgZm9sZCBjb250YWlucz1BTEwKKyAgIGVuZGlmCisgICBpZiBzdHJpZHggKGc6YWRhX2ZvbGRpbmcsICdmJykgPj0gMAorICAgICAgc3ludGF4IHJlZ2lvbiBhZGFQcm9jZWR1cmUKKyAgICAgICAgIFwgc3RhcnQ9Ilw8cHJvY2VkdXJlXD5ccypceihcaypcKSIKKyAgICAgICAgIFwgZW5kPSJcPGVuZFw+XHNcK1x6MVxzKjsiCisgICAgICAgICBcIGtlZXBlbmQgZXh0ZW5kIHRyYW5zcGFyZW50IGZvbGQgY29udGFpbnM9QUxMCisgICAgICBzeW50YXggcmVnaW9uIGFkYUZ1bmN0aW9uCisgICAgICAgICBcIHN0YXJ0PSJcPHByb2NlZHVyZVw+XHMqXHooXGsqXCkiCisgICAgICAgICBcIGVuZD0iZW5kXHNcK1x6MVxzKjsiCisgICAgICAgICBcIGtlZXBlbmQgZXh0ZW5kIHRyYW5zcGFyZW50IGZvbGQgY29udGFpbnM9QUxMCisgICBlbmRpZgorICAgaWYgc3RyaWR4IChnOmFkYV9mb2xkaW5nLCAnZicpID49IDAKKyAgICAgIHN5bnRheCByZWdpb24gYWRhUmVjb3JkCisgICAgICAgICBcIHN0YXJ0PSJcPGlzXHNcK3JlY29yZFw+IgorICAgICAgICAgXCBlbmQ9Ilw8ZW5kXHNcK3JlY29yZFw+IgorICAgICAgICAgXCBrZWVwZW5kIGV4dGVuZCB0cmFuc3BhcmVudCBmb2xkIGNvbnRhaW5zPUFMTAorICAgZW5kaWYKK2VuZGlmCiAKKyIgU2VjdGlvbjogVGhlIGRlZmF1bHQgbWV0aG9kcyBmb3IgaGlnaGxpZ2h0aW5nLiBDYW4gYmUgb3ZlcnJpZGRlbiBsYXRlci4ge3t7MQorIgoraGlnaGxpZ2h0IGRlZiBsaW5rIGFkYUNoYXJhY3RlcgkgICAgQ2hhcmFjdGVyCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhQ29tbWVudAkgICAgQ29tbWVudAoraGlnaGxpZ2h0IGRlZiBsaW5rIGFkYUNvbmRpdGlvbmFsICAgQ29uZGl0aW9uYWwKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFLZXl3b3JkCSAgICBLZXl3b3JkCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhTGFiZWwJICAgIExhYmVsCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhTnVtYmVyCSAgICBOdW1iZXIKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFTaWduCSAgICBOdW1iZXIKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFPcGVyYXRvcgkgICAgT3BlcmF0b3IKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFQcmVwcm9jCSAgICBQcmVQcm9jCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhUmVwZWF0CSAgICBSZXBlYXQKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFTcGVjaWFsCSAgICBTcGVjaWFsCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhU3RhdGVtZW50CSAgICBTdGF0ZW1lbnQKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFTdHJpbmcJICAgIFN0cmluZworaGlnaGxpZ2h0IGRlZiBsaW5rIGFkYVN0cnVjdHVyZQkgICAgU3RydWN0dXJlCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhVG9kbwkgICAgVG9kbworaGlnaGxpZ2h0IGRlZiBsaW5rIGFkYVR5cGUJICAgIFR5cGUKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFUeXBlZGVmCSAgICBUeXBlZGVmCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhU3RvcmFnZUNsYXNzICBTdG9yYWdlQ2xhc3MKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFCb29sZWFuCSAgICBCb29sZWFuCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhRXhjZXB0aW9uCSAgICBFeGNlcHRpb24KK2hpZ2hsaWdodCBkZWYgbGluayBhZGFBdHRyaWJ1dGUJICAgIFRhZworaGlnaGxpZ2h0IGRlZiBsaW5rIGFkYUluYwkgICAgSW5jbHVkZQoraGlnaGxpZ2h0IGRlZiBsaW5rIGFkYUVycm9yCSAgICBFcnJvcgoraGlnaGxpZ2h0IGRlZiBsaW5rIGFkYVNwYWNlRXJyb3IgICAgRXJyb3IKK2hpZ2hsaWdodCBkZWYgbGluayBhZGFMaW5lRXJyb3IJICAgIEVycm9yCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhQnVpbHRpblR5cGUgICBUeXBlCitoaWdobGlnaHQgZGVmIGxpbmsgYWRhQXNzaWdubWVudCAgICBTcGVjaWFsCiAKLSIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KLSIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQotIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAotaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2FkYV9zeW5faW5pdHMiKQotICBpZiB2ZXJzaW9uIDwgNTA4Ci0gICAgbGV0IGRpZF9hZGFfc3luX2luaXRzID0gMQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+Ci0gIGVsc2UKLSAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KLSAgZW5kaWYKLQotICAiIFRoZSBkZWZhdWx0IG1ldGhvZHMgZm9yIGhpZ2hsaWdodGluZy4gQ2FuIGJlIG92ZXJyaWRkZW4gbGF0ZXIuCi0gIEhpTGluayBhZGFDaGFyYWN0ZXIJQ2hhcmFjdGVyCi0gIEhpTGluayBhZGFDb21tZW50CUNvbW1lbnQKLSAgSGlMaW5rIGFkYUNvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCi0gIEhpTGluayBhZGFLZXl3b3JkCUtleXdvcmQKLSAgSGlMaW5rIGFkYUxhYmVsCUxhYmVsCi0gIEhpTGluayBhZGFOdW1iZXIJTnVtYmVyCi0gIEhpTGluayBhZGFTaWduCU51bWJlcgotICBIaUxpbmsgYWRhT3BlcmF0b3IJT3BlcmF0b3IKLSAgSGlMaW5rIGFkYVByZXByb2MJUHJlUHJvYwotICBIaUxpbmsgYWRhUmVwZWF0CVJlcGVhdAotICBIaUxpbmsgYWRhU3BlY2lhbAlTcGVjaWFsCi0gIEhpTGluayBhZGFTdGF0ZW1lbnQJU3RhdGVtZW50Ci0gIEhpTGluayBhZGFTdHJpbmcJU3RyaW5nCi0gIEhpTGluayBhZGFTdHJ1Y3R1cmUJU3RydWN0dXJlCi0gIEhpTGluayBhZGFUb2RvCVRvZG8KLSAgSGlMaW5rIGFkYVR5cGUJVHlwZQotICBIaUxpbmsgYWRhVHlwZWRlZglUeXBlZGVmCi0gIEhpTGluayBhZGFTdG9yYWdlQ2xhc3MJU3RvcmFnZUNsYXNzCi0gIEhpTGluayBhZGFCb29sZWFuCUJvb2xlYW4KLSAgSGlMaW5rIGFkYUV4Y2VwdGlvbglFeGNlcHRpb24KLSAgSGlMaW5rIGFkYUluYwlJbmNsdWRlCi0gIEhpTGluayBhZGFFcnJvcglFcnJvcgotICBIaUxpbmsgYWRhU3BhY2VFcnJvcglFcnJvcgotICBIaUxpbmsgYWRhQnVpbHRpblR5cGUgVHlwZQotCi0gIGlmIGV4aXN0cygiYWRhX2JlZ2luX3ByZXByb2MiKQorIiBTdWJzZWN0aW9uOiBCZWdpbiwgRW5kIHt7ezIKKyIKK2lmIGV4aXN0cyAoImFkYV9iZWdpbl9wcmVwcm9jIikKICAgICIgVGhpcyBpcyB0aGUgb2xkIGRlZmF1bHQgZGlzcGxheToKLSAgIEhpTGluayBhZGFCZWdpbglQcmVQcm9jCi0gICBIaUxpbmsgYWRhRW5kCVByZVByb2MKLSAgZWxzZQorICAgaGlnaGxpZ2h0IGRlZiBsaW5rIGFkYUJlZ2luICAgUHJlUHJvYworICAgaGlnaGxpZ2h0IGRlZiBsaW5rIGFkYUVuZCAgICAgUHJlUHJvYworZWxzZQogICAgIiBUaGlzIGlzIHRoZSBuZXcgZGVmYXVsdCBkaXNwbGF5OgotICAgSGlMaW5rIGFkYUJlZ2luCUtleXdvcmQKLSAgIEhpTGluayBhZGFFbmQJS2V5d29yZAotICBlbmRpZgotCi0gIGRlbGNvbW1hbmQgSGlMaW5rCisgICBoaWdobGlnaHQgZGVmIGxpbmsgYWRhQmVnaW4gICBLZXl3b3JkCisgICBoaWdobGlnaHQgZGVmIGxpbmsgYWRhRW5kICAgICBLZXl3b3JkCiBlbmRpZgogCi1sZXQgYjpjdXJyZW50X3N5bnRheCA9ICJhZGEiCiAKLSIgdmltOiB0cz04CisiIFNlY3Rpb246IGZvcm1hdG9wdGlvbnMge3t7MQorIgorc2V0bG9jYWwgZm9ybWF0b3B0aW9ucys9cm9uCisKKyIgU2VjdGlvbjogc3luYyB7e3sxCisiCisiIFdlIGRvbid0IG5lZWQgdG8gbG9vayBiYWNrd2FyZHMgdG8gaGlnaGxpZ2h0IGNvcnJlY3RseTsKKyIgdGhpcyBzcGVlZHMgdGhpbmdzIHVwIGdyZWF0bHkuCitzeW50YXggc3luYyBtaW5saW5lcz0xIG1heGxpbmVzPTEKKworZmluaXNoICIgMX19fQorCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICAgQ29weXJpZ2h0IChDKSAyMDA2CU1hcnRpbiBLcmlzY2hpaworIgorIiAgIFZpbSBpcyBDaGFyaXR5d2FyZSAtIHNlZSAiOmhlbHAgbGljZW5zZSIgb3IgdWdhbmRhLnR4dCBmb3IgbGljZW5jZSBkZXRhaWxzLgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorInZpbTogdGV4dHdpZHRoPTc4IG5vd3JhcCB0YWJzdG9wPTggc2hpZnR3aWR0aD0zIHNvZnR0YWJzdG9wPTMgbm9leHBhbmR0YWIKKyJ2aW06IGZvbGRtZXRob2Q9bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9ic3QudmltIGIvcnVudGltZS9zeW50YXgvYnN0LnZpbQppbmRleCAzZmVlZmVjLi44ZmRjZDQzIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9ic3QudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2JzdC52aW0KQEAgLTEsNyArMSw2IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgIEJpYlRlWCBCaWJsaW9ncmFwaHkgU3R5bGUKLSIgTWFpbnRhaW5lcjogICBUaW0gUG9wZSA8dmltQHJlYmVsb25ndG8udXM+Ci0iIExhc3QgQ2hhbmdlOiAgMjAwNiBBcHIgMjcKKyIgTWFpbnRhaW5lcjogICBUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+CiAiIEZpbGVuYW1lczogICAgKi5ic3QKICIgJElkJAogCkBAIC0yMyw3ICsyMiwxMSBAQAogCiBzeW4gY2FzZSBpZ25vcmUKIAotc3luIHJlZ2lvbiAgYnN0U3RyaW5nIHN0YXJ0PSsiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisgY29udGFpbnM9YnN0RmllbGQsYnN0VHlwZQorc3luIG1hdGNoICAgYnN0U3RyaW5nICsiW14iXSpcJSgiXHwkXCkrIGNvbnRhaW5zPWJzdEZpZWxkLGJzdFR5cGUsYnN0RXJyb3IKKyIgSGlnaGxpZ2h0IHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhbiB1bmNsb3NlZCBzdHJpbmcsIGJ1dCBvbmx5IHdoZW4gdGhlIGN1cnNvcgorIiBpcyBub3QgYmV5b25kIGl0IChpLmUuLCBpdCBpcyBzdGlsbCBiZWluZyBlZGl0ZWQpLiBJbXBlcmZlY3QuCitzeW4gbWF0Y2ggICBic3RFcnJvciAgICAgJ1teIl1cJSNcQCEkJyBjb250YWluZWQKKwogc3luIG1hdGNoICAgYnN0TnVtYmVyICAgICAgICAgIiMtXD1cZFwrXD4iCiBzeW4ga2V5d29yZCBic3ROdW1iZXIgICAgICAgICBlbnRyeS5tYXgkIGdsb2JhbC5tYXgkCiBzeW4gbWF0Y2ggICBic3RDb21tZW50ICAgICAgICAiJS4qIgpAQCAtNzcsNiArODAsNyBAQAogICAgIEhpTGluayBic3ROdW1iZXIgICAgICAgICAgICBOdW1iZXIKICAgICBIaUxpbmsgYnN0VHlwZSAgICAgICAgICAgICAgVHlwZQogICAgIEhpTGluayBic3RJZGVudGlmaWVyICAgICAgICBJZGVudGlmaWVyCisgICAgSGlMaW5rIGJzdEVycm9yICAgICAgICAgICAgIEVycm9yCiAgICAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2NvYm9sLnZpbSBiL3J1bnRpbWUvc3ludGF4L2NvYm9sLnZpbQppbmRleCAwYjU5ZjcyLi5kY2UyZDM2IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9jb2JvbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvY29ib2wudmltCkBAIC0xLDkgKzEsMTAgQEAKICIgVmltIHN5bnRheCBmaWxlCi0iIExhbmd1YWdlOiBDT0JPTAotIiBNYWludGFpbmVyczogIERhdnlkIE9uZHJlamtvIDx2b25kcmFjb0Bjb2x1bWJ1cy5yci5jb20+CisiIExhbmd1YWdlOiAgIENPQk9MCisiIE1haW50YWluZXI6IFRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KKyIgICAgIChmb3JtZXJseSBEYXZ5ZCBPbmRyZWprbyA8dm9uZHJhY29AY29sdW1idXMucnIuY29tPikKICIgICAgIChmb3JtZXJseSBTaXRhcmFtIENoYW1hcnR5IDxzaXRhcmFtQGRpYWMuY29tPiBhbmQKICIJCSAgICBKYW1lcyBNaXRjaGVsbCA8amFtZXNfbWl0Y2hlbGxAYWNtLm9yZz4pCi0iIExhc3QgY2hhbmdlOiAgMjAwMSBTZXAgMDIKKyIgJElkJAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApAQCAtMjIsNzcgKzIzLDk3IEBACiAKIHN5biBjYXNlIGlnbm9yZQogCi1zeW4gbWF0Y2ggY29ib2xLZXlzICJeXGFcezEsNlx9IiBjb250YWlucz1jb2JvbFJlc2VydmVkCitzeW4gY2x1c3RlciBjb2JvbFN0YXJ0ICAgICAgY29udGFpbnM9Y29ib2xBcmVhQSxjb2JvbEFyZWFCLGNvYm9sQ29tbWVudCxjb2JvbENvbXBpbGVyCitzeW4gY2x1c3RlciBjb2JvbEFyZWFBICAgICAgY29udGFpbnM9Y29ib2xQYXJhZ3JhcGgsY29ib2xTZWN0aW9uLGNvYm9sRGl2aXNpb24KKyJzeW4gY2x1c3RlciBjb2JvbEFyZWFCICAgICAgY29udGFpbnM9CitzeW4gY2x1c3RlciBjb2JvbEFyZWFBQiAgICAgY29udGFpbnM9Y29ib2xMaW5lCitzeW4gY2x1c3RlciBjb2JvbExpbmUgICAgICAgY29udGFpbnM9Y29ib2xSZXNlcnZlZAorc3luIG1hdGNoICAgY29ib2xNYXJrZXIgICAgICJeXCUoIFx7LDVcfVteIF1cKVxAPS5ceyw2fSIgbmV4dGdyb3VwPUBjb2JvbFN0YXJ0CitzeW4gbWF0Y2ggICBjb2JvbFNwYWNlICAgICAgIl4gXHs2XH0iICBuZXh0Z3JvdXA9QGNvYm9sU3RhcnQKK3N5biBtYXRjaCAgIGNvYm9sQXJlYUEgICAgICAiIFx7MSw0XH0iICBjb250YWluZWQgbmV4dGdyb3VwPUBjb2JvbEFyZWFBLEBjb2JvbEFyZWFBQgorc3luIG1hdGNoICAgY29ib2xBcmVhQiAgICAgICIgXHs1LFx9XHwtICoiIGNvbnRhaW5lZCBuZXh0Z3JvdXA9QGNvYm9sQXJlYUIsQGNvYm9sQXJlYUFCCitzeW4gbWF0Y2ggICBjb2JvbENvbW1lbnQgICAgIlsvKkNdLiokIiBjb250YWluZWQKK3N5biBtYXRjaCAgIGNvYm9sQ29tcGlsZXIgICAiJC4qJCIgICAgIGNvbnRhaW5lZAorc3luIG1hdGNoICAgY29ib2xMaW5lICAgICAgICIuKiQiICAgICAgY29udGFpbmVkIGNvbnRhaW5zPWNvYm9sUmVzZXJ2ZWQsQGNvYm9sTGluZQorCitzeW4gbWF0Y2ggICBjb2JvbERpdmlzaW9uICAgICAgICJbQS1aXVtBLVowLTktXSpbQS1aMC05XVxzXCtESVZJU0lPTlwuImhlPWUtMSBjb250YWluZWQgY29udGFpbnM9Y29ib2xEaXZpc2lvbk5hbWUKK3N5biBrZXl3b3JkIGNvYm9sRGl2aXNpb25OYW1lICAgY29udGFpbmVkIElERU5USUZJQ0FUSU9OIEVOVklST05NRU5UIERBVEEgUFJPQ0VEVVJFCitzeW4gbWF0Y2ggICBjb2JvbFNlY3Rpb24gICAgICAgICJbQS1aXVtBLVowLTktXSpbQS1aMC05XVxzXCtTRUNUSU9OXC4iaGU9ZS0xICBjb250YWluZWQgY29udGFpbnM9Y29ib2xTZWN0aW9uTmFtZQorc3luIGtleXdvcmQgY29ib2xTZWN0aW9uTmFtZSAgICBjb250YWluZWQgQ09ORklHVVJBVElPTiBJTlBVVC1PVVRQVVQgRklMRSBXT1JLSU5HLVNUT1JBR0UgTE9DQUwtU1RPUkFHRSBMSU5LQUdFCitzeW4gbWF0Y2ggICBjb2JvbFBhcmFncmFwaCAgICAgICJcYVtBLVowLTktXSpbQS1aMC05XVwuXHxcZFtBLVowLTktXSpbQS1aXVwuImhlPWUtMSAgICAgICAgICAgICBjb250YWluZWQgY29udGFpbnM9Y29ib2xQYXJhZ3JhcGhOYW1lCitzeW4ga2V5d29yZCBjb2JvbFBhcmFncmFwaE5hbWUgIGNvbnRhaW5lZCBQUk9HUkFNLUlEIFNPVVJDRS1DT01QVVRFUiBPQkpFQ1QtQ09NUFVURVIgU1BFQ0lBTC1OQU1FUyBGSUxFLUNPTlRST0wgSS1PLUNPTlRST0wKKworCisic3luIG1hdGNoIGNvYm9sS2V5cyAiXlxhXHsxLDZcfSIgY29udGFpbnM9Y29ib2xSZXNlcnZlZAogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgQUNDRVBUIEFDQ0VTUyBBREQgQUREUkVTUyBBRFZBTkNJTkcgQUZURVIgQUxQSEFCRVQgQUxQSEFCRVRJQwogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgQUxQSEFCRVRJQy1MT1dFUiBBTFBIQUJFVElDLVVQUEVSIEFMUEhBTlVNRVJJQyBBTFBIQU5VTUVSSUMtRURJVEVEIEFMUwogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgQUxURVJOQVRFIEFORCBBTlkgQVJFIEFSRUEgQVJFQVMgQVNDRU5ESU5HIEFTU0lHTiBBVCBBVVRIT1IgQkVGT1JFIEJJTkFSWQogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgQkxBTksgQkxPQ0sgQk9UVE9NIEJZIENBTkNFTCBDQkxMIENEIENGIENIIENIQVJBQ1RFUiBDSEFSQUNURVJTIENMQVNTCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBDTE9DSy1VTklUUyBDTE9TRSBDT0JPTCBDT0RFIENPREUtU0VUIENPTExBVElORyBDT0xVTU4gQ09NTUEgQ09NTU9OCi1zeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBDT01NVU5JQ0FUSU9OUyBDT01QVVRBVElPTkFMIENPTVBVVEUgQ09ORklHVVJBVElPTiBDT05URU5UIENPTlRJTlVFCi1zeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBDT05UUk9MIENPTlZFUlRJTkcgQ09SUiBDT1JSRVNQT05ESU5HIENPVU5UIENVUlJFTkNZIERBVEEgREFURSBEQVRFLUNPTVBJTEVECitzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBDT01NVU5JQ0FUSU9OUyBDT01QVVRBVElPTkFMIENPTVBVVEUgQ09OVEVOVCBDT05USU5VRQorc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgQ09OVFJPTCBDT05WRVJUSU5HIENPUlIgQ09SUkVTUE9ORElORyBDT1VOVCBDVVJSRU5DWSBEQVRFIERBVEUtQ09NUElMRUQKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIERBVEUtV1JJVFRFTiBEQVkgREFZLU9GLVdFRUsgREUgREVCVUctQ09OVEVOVFMgREVCVUctSVRFTSBERUJVRy1MSU5FCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBERUJVRy1OQU1FIERFQlVHLVNVQi0xIERFQlVHLVNVQi0yIERFQlVHLVNVQi0zIERFQlVHR0lORyBERUNJTUFMLVBPSU5UCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBERUxBUkFUSVZFUyBERUxFVEUgREVMSU1JVEVEIERFTElNSVRFUiBERVBFTkRJTkcgREVTQ0VORElORyBERVNUSU5BVElPTgogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgREVUQUlMIERJU0FCTEUgRElTUExBWSBESVZJREUgRElWSVNJT04gRE9XTiBEVVBMSUNBVEVTIERZTkFNSUMgRUdJIEVMU0UgRU1JCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBFTkFCTEUgRU5ELUFERCBFTkQtQ09NUFVURSBFTkQtREVMRVRFIEVORC1ESVZJREUgRU5ELUVWQUxVQVRFIEVORC1JRgotc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgRU5ELU1VTFRJUExZIEVORC1PRi1QQUdFIEVORC1QRVJGT1JNIEVORC1SRUFEIEVORC1SRUNFSVZFIEVORC1SRVRVUk4KK3N5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIEVORC1NVUxUSVBMWSBFTkQtT0YtUEFHRSBFTkQtUkVBRCBFTkQtUkVDRUlWRSBFTkQtUkVUVVJOCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBFTkQtUkVXUklURSBFTkQtU0VBUkNIIEVORC1TVEFSVCBFTkQtU1RSSU5HIEVORC1TVUJUUkFDVCBFTkQtVU5TVFJJTkcKLXN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIEVORC1XUklURSBFTlZJUk9OTUVOVCBFUVVBTCBFUlJPUiBFU0kgRVZBTFVBVEUgRVZFUlkgRVhDRVBUSU9OIEVYSVQKLXN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIEVYVEVORCBFWFRFUk5BTCBGQUxTRSBGRCBGSUxFIEZJTEUtQ09OVFJPTCBGSUxMRVIgRklOQUwgRklSU1QgRk9PVElORyBGT1IgRlJPTQorc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgRU5ELVdSSVRFIEVRVUFMIEVSUk9SIEVTSSBFVkFMVUFURSBFVkVSWSBFWENFUFRJT04gRVhJVAorc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgRVhURU5EIEVYVEVSTkFMIEZBTFNFIEZEIEZJTExFUiBGSU5BTCBGSVJTVCBGT09USU5HIEZPUiBGUk9NCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBHRU5FUkFURSBHSVZJTkcgR0xPQkFMIEdSRUFURVIgR1JPVVAgSEVBRElORyBISUdILVZBTFVFIEhJR0gtVkFMVUVTIEktTwotc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgSS1PLUNPTlRST0wgSURFTlRJRklDQVRJT04gSU4gSU5ERVggSU5ERVhFRCBJTkRJQ0FURSBJTklUSUFMIElOSVRJQUxJWkUKLXN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIElOSVRJQVRFIElOUFVUIElOUFVULU9VVFBVVCBJTlNQRUNUIElOU1RBTExBVElPTiBJTlRPIElTIEpVU1QKK3N5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIElOIElOREVYIElOREVYRUQgSU5ESUNBVEUgSU5JVElBTCBJTklUSUFMSVpFCitzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBJTklUSUFURSBJTlBVVCBJTlNQRUNUIElOU1RBTExBVElPTiBJTlRPIElTIEpVU1QKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIEpVU1RJRklFRCBLRVkgTEFCRUwgTEFTVCBMRUFESU5HIExFRlQgTEVOR1RIIExPQ0sgTUVNT1JZCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBNRVJHRSBNRVNTQUdFIE1PREUgTU9EVUxFUyBNT1ZFIE1VTFRJUExFIE1VTFRJUExZIE5BVElWRSBORUdBVElWRSBORVhUIE5PIE5PVAotc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgTlVNQkVSIE5VTUVSSUMgTlVNRVJJQy1FRElURUQgT0JKRUNULUNPTVBVVEVSIE9DQ1VSUyBPRiBPRkYgT01JVFRFRCBPTiBPUEVOCitzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBOVU1CRVIgTlVNRVJJQyBOVU1FUklDLUVESVRFRCBPQ0NVUlMgT0YgT0ZGIE9NSVRURUQgT04gT1BFTgogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgT1BUSU9OQUwgT1IgT1JERVIgT1JHQU5JWkFUSU9OIE9USEVSIE9VVFBVVCBPVkVSRkxPVyBQQUNLRUQtREVDSU1BTCBQQURESU5HCiBzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBQQUdFIFBBR0UtQ09VTlRFUiBQRVJGT1JNIFBGIFBIIFBJQyBQSUNUVVJFIFBMVVMgUE9JTlRFUiBQT1NJVElPTiBQT1NJVElWRQotc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgUFJJTlRJTkcgUFJPQ0VEVVJFIFBST0NFRFVSRVMgUFJPQ0VERCBQUk9HUkFNIFBST0dSQU0tSUQgUFVSR0UgUVVFVUUgUVVPVEVTCitzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBQUklOVElORyBQUk9DRURVUkVTIFBST0NFREQgUFJPR1JBTSBQVVJHRSBRVUVVRSBRVU9URVMKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFJBTkRPTSBSRCBSRUFEIFJFQ0VJVkUgUkVDT1JEIFJFQ09SRFMgUkVERUZJTkVTIFJFRUwgUkVGRVJFTkNFIFJFRkVSRU5DRVMKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFJFTEFUSVZFIFJFTEVBU0UgUkVNQUlOREVSIFJFTU9WQUwgUkVQTEFDRSBSRVBMQUNJTkcgUkVQT1JUIFJFUE9SVElORwogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgUkVQT1JUUyBSRVJVTiBSRVNFUlZFIFJFU0VUIFJFVFVSTiBSRVRVUk5JTkcgUkVWRVJTRUQgUkVXSU5EIFJFV1JJVEUgUkYgUkgKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFJJR0hUIFJPVU5ERUQgUlVOIFNBTUUgU0QgU0VBUkNIIFNFQ1RJT04gU0VDVVJJVFkgU0VHTUVOVCBTRUdNRU5ULUxJTUlURUQKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFNFTEVDVCBTRU5EIFNFTlRFTkNFIFNFUEFSQVRFIFNFUVVFTkNFIFNFUVVFTlRJQUwgU0VUIFNJR04gU0laRSBTT1JUCi1zeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBTT1JULU1FUkdFIFNPVVJDRSBTT1VSQ0UtQ09NUFVURVIgU1BFQ0lBTC1OQU1FUyBTVEFOREFSRAorc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgU09SVC1NRVJHRSBTT1VSQ0UgU1RBTkRBUkQKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFNUQU5EQVJELTEgU1RBTkRBUkQtMiBTVEFSVCBTVEFUVVMgU1RPUCBTVFJJTkcgU1VCLVFVRVVFLTEgU1VCLVFVRVVFLTIKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFNVQi1RVUVVRS0zIFNVQlRSQUNUIFNVTSBTVVBQUkVTUyBTWU1CT0xJQyBTWU5DIFNZTkNIUk9OSVpFRCBUQUJMRSBUQUxMWUlORwogc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgVEFQRSBURVJNSU5BTCBURVJNSU5BVEUgVEVTVCBURVhUIFRIQU4gVEhFTiBUSFJPVUdIIFRIUlUgVElNRSBUSU1FUyBUTyBUT1AKIHN5biBrZXl3b3JkIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkIFRSQUlMSU5HIFRSVUUgVFlQRSBVTklUIFVOU1RSSU5HIFVOVElMIFVQIFVQT04gVVNBR0UgVVNFIFVTSU5HIFZBTFVFIFZBTFVFUwotc3luIGtleXdvcmQgY29ib2xSZXNlcnZlZCBjb250YWluZWQgVkFSWUlORyBXSEVOIFdJVEggV09SRFMgV09SS0lORy1TVE9SQUdFIFdSSVRFCitzeW4ga2V5d29yZCBjb2JvbFJlc2VydmVkIGNvbnRhaW5lZCBWQVJZSU5HIFdIRU4gV0lUSCBXT1JEUyBXUklURQogc3luIG1hdGNoICAgY29ib2xSZXNlcnZlZCBjb250YWluZWQgIlw8Q09OVEFJTlNcPiIKIHN5biBtYXRjaCAgIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkICJcPFwoSUZcfElOVkFMSURcfEVORFx8RU9QXClcPiIKIHN5biBtYXRjaCAgIGNvYm9sUmVzZXJ2ZWQgY29udGFpbmVkICJcPEFMTFw+IgogCitzeW4gY2x1c3RlciBjb2JvbExpbmUgICAgIGFkZD1jb2JvbENvbnN0YW50LGNvYm9sTnVtYmVyLGNvYm9sUGljCiBzeW4ga2V5d29yZCBjb2JvbENvbnN0YW50IFNQQUNFIFNQQUNFUyBOVUxMIFpFUk8gWkVST0VTIFpFUk9TIExPVy1WQUxVRSBMT1ctVkFMVUVTCiAKLXN5biBtYXRjaCAgIGNvYm9sTWFya2VyICAgICAgICJeLlx7Nlx9Igotc3luIG1hdGNoICAgY29ib2xCYWRMaW5lICAgICAgIl4uXHs2XH1bXiBEXC0qJC9dLioiaHM9cys2Ci0KLSIgSWYgY29tbWVudCBtYXJrIHNvbWVob3cgZ2V0cyBpbnRvIGNvbHVtbiBwYXN0IENvbHVtbiA3Lgotc3luIG1hdGNoICAgY29ib2xCYWRMaW5lICAgICAgIl4uXHs2XH1cc1wrXCouKiIKLQotc3luIG1hdGNoICAgY29ib2xOdW1iZXIgICAgICAgIlw8LVw9XGQqXC5cPVxkXCtcPiIgY29udGFpbnM9Y29ib2xNYXJrZXIsY29ib2xDb21tZW50Ci1zeW4gbWF0Y2ggICBjb2JvbFBpYwkJIlw8Uyo5XCtcPiIgY29udGFpbnM9Y29ib2xNYXJrZXIsY29ib2xDb21tZW50Ci1zeW4gbWF0Y2ggICBjb2JvbFBpYwkJIlw8JCpcLlw9OVwrXD4iIGNvbnRhaW5zPWNvYm9sTWFya2VyLGNvYm9sQ29tbWVudAotc3luIG1hdGNoICAgY29ib2xQaWMJCSJcPFoqXC5cPTlcK1w+IiBjb250YWlucz1jb2JvbE1hcmtlcixjb2JvbENvbW1lbnQKLXN5biBtYXRjaCAgIGNvYm9sUGljCQkiXDxWOVwrXD4iIGNvbnRhaW5zPWNvYm9sTWFya2VyLGNvYm9sQ29tbWVudAotc3luIG1hdGNoICAgY29ib2xQaWMJCSJcPDlcK1ZcPiIgY29udGFpbnM9Y29ib2xNYXJrZXIsY29ib2xDb21tZW50Ci1zeW4gbWF0Y2ggICBjb2JvbFBpYwkJIlw8LVwrW1o5XVwrXD4iIGNvbnRhaW5zPWNvYm9sTWFya2VyLGNvYm9sQ29tbWVudAotc3luIG1hdGNoICAgY29ib2xUb2RvCQkidG9kbyIgY29udGFpbmVkCi1zeW4gbWF0Y2ggICBjb2JvbENvbW1lbnQgICAgICAiXi5cezZcfVwqLioiaHM9cys2IGNvbnRhaW5zPWNvYm9sVG9kbyxjb2JvbE1hcmtlcgotc3luIG1hdGNoICAgY29ib2xDb21tZW50ICAgICAgIl4uXHs2XH0vLioiaHM9cys2IGNvbnRhaW5zPWNvYm9sVG9kbyxjb2JvbE1hcmtlcgotc3luIG1hdGNoICAgY29ib2xDb21tZW50ICAgICAgIl4uXHs2XH1DLioiaHM9cys2IGNvbnRhaW5zPWNvYm9sVG9kbyxjb2JvbE1hcmtlcgotc3luIG1hdGNoICAgY29ib2xDb21waWxlciAgICAgIl4uXHs2XH0kLioiaHM9cys2CitzeW4gbWF0Y2ggICBjb2JvbE51bWJlciAgICAgICAiXDwtXD1cZCpcLlw9XGRcK1w+IiBjb250YWluZWQKK3N5biBtYXRjaCAgIGNvYm9sUGljCQkiXDxTKjlcK1w+IiBjb250YWluZWQKK3N5biBtYXRjaCAgIGNvYm9sUGljCQkiXDwkKlwuXD05XCtcPiIgY29udGFpbmVkCitzeW4gbWF0Y2ggICBjb2JvbFBpYwkJIlw8WipcLlw9OVwrXD4iIGNvbnRhaW5lZAorc3luIG1hdGNoICAgY29ib2xQaWMJCSJcPFY5XCtcPiIgY29udGFpbmVkCitzeW4gbWF0Y2ggICBjb2JvbFBpYwkJIlw8OVwrVlw+IiBjb250YWluZWQKK3N5biBtYXRjaCAgIGNvYm9sUGljCQkiXDwtXCtbWjldXCtcPiIgY29udGFpbmVkCitzeW4gbWF0Y2ggICBjb2JvbFRvZG8JCSJ0b2RvIiBjb250YWluZWQgY29udGFpbmVkaW49Y29ib2xDb21tZW50CiAKICIgRm9yIE1pY3JvRm9jdXMgb3Igb3RoZXIgaW5saW5lIGNvbW1lbnRzLCBpbmNsdWRlIHRoaXMgbGluZS4KICIgc3luIHJlZ2lvbiAgY29ib2xDb21tZW50ICAgICAgc3RhcnQ9Iio+IiBlbmQ9IiQiIGNvbnRhaW5zPWNvYm9sVG9kbyxjb2JvbE1hcmtlcgogCitzeW4gbWF0Y2ggICBjb2JvbEJhZExpbmUgICAgICAiW14gRFwqJC8tXS4qIiBjb250YWluZWQKKyIgSWYgY29tbWVudCBtYXJrIHNvbWVob3cgZ2V0cyBpbnRvIGNvbHVtbiBwYXN0IENvbHVtbiA3Lgorc3luIG1hdGNoICAgY29ib2xCYWRMaW5lICAgICAgIlxzXCtcKi4qIiBjb250YWluZWQKK3N5biBjbHVzdGVyIGNvYm9sU3RhcnQgICAgICAgIGFkZD1jb2JvbEJhZExpbmUKKworCiBzeW4ga2V5d29yZCBjb2JvbEdvVG8JCUdPIEdPVE8KIHN5biBrZXl3b3JkIGNvYm9sQ29weQkJQ09QWQogCiAiIGNvYm9sQkFEOiB0aGluZ3MgdGhhdCBhcmUgQkFEIE5FV1MhCiBzeW4ga2V5d29yZCBjb2JvbEJBRAkJQUxURVIgRU5URVIgUkVOQU1FUwogCitzeW4gY2x1c3RlciBjb2JvbExpbmUgICAgICAgYWRkPWNvYm9sR29Ubyxjb2JvbENvcHksY29ib2xCQUQsY29ib2xXYXRjaCxjb2JvbEVYRUNzCisKICIgY29ib2xXYXRjaDogdGhpbmdzIHRoYXQgYXJlIGltcG9ydGFudCB3aGVuIHRyeWluZyB0byB1bmRlcnN0YW5kIGEgcHJvZ3JhbQogc3luIGtleXdvcmQgY29ib2xXYXRjaAkJT0NDVVJTIERFUEVORElORyBWQVJZSU5HIEJJTkFSWSBDT01QIFJFREVGSU5FUwogc3luIGtleXdvcmQgY29ib2xXYXRjaAkJUkVQTEFDSU5HIFJVTgpAQCAtMTAxLDM5ICsxMjIsMzggQEAKIHN5biBrZXl3b3JkIGNvYm9sRVhFQ3MJCUVYRUMgRU5ELUVYRUMKIAogCi1zeW4gbWF0Y2ggICBjb2JvbERlY2wJCSJeLlx7Nn0gXHsxLDR9XCgwXD0xXHw3N1x8NzhcKSAiaHM9cys3LGhlPWUtMSBjb250YWlucz1jb2JvbE1hcmtlcgotc3luIG1hdGNoICAgY29ib2xEZWNsCQkiXi5cezZ9IFwrWzEtNF1cZCAiaHM9cys3LGhlPWUtMSBjb250YWlucz1jb2JvbE1hcmtlcgotc3luIG1hdGNoICAgY29ib2xEZWNsCQkiXi5cezZ9IFwrMFw9WzItOV0gImhzPXMrNyxoZT1lLTEgY29udGFpbnM9Y29ib2xNYXJrZXIKLXN5biBtYXRjaCAgIGNvYm9sRGVjbAkJIl4uXHs2fSBcKzY2ICJocz1zKzcsaGU9ZS0xIGNvbnRhaW5zPWNvYm9sTWFya2VyCitzeW4gY2x1c3RlciBjb2JvbEFyZWFBICAgICAgYWRkPWNvYm9sRGVjbEEKK3N5biBjbHVzdGVyIGNvYm9sQXJlYUFCICAgICBhZGQ9Y29ib2xEZWNsCitzeW4gbWF0Y2ggICBjb2JvbERlY2xBICAgICAgIlwoMFw9MVx8NzdcfDc4XCkgIiBjb250YWluZWQgbmV4dGdyb3VwPWNvYm9sTGluZQorc3luIG1hdGNoICAgY29ib2xEZWNsCQkiWzEtNF1cZCAiIGNvbnRhaW5lZCBuZXh0Z3JvdXA9Y29ib2xMaW5lCitzeW4gbWF0Y2ggICBjb2JvbERlY2wJCSIwXD1bMi05XSAiIGNvbnRhaW5lZCBuZXh0Z3JvdXA9Y29ib2xMaW5lCitzeW4gbWF0Y2ggICBjb2JvbERlY2wJCSI2NiAiIGNvbnRhaW5lZCBuZXh0Z3JvdXA9Y29ib2xMaW5lCiAKLXN5biBtYXRjaCAgIGNvYm9sV2F0Y2gJCSJeLlx7Nn0gXCs4OCAiaHM9cys3LGhlPWUtMSBjb250YWlucz1jb2JvbE1hcmtlcgorc3luIG1hdGNoICAgY29ib2xXYXRjaAkJIjg4ICIgY29udGFpbmVkIG5leHRncm91cD1jb2JvbExpbmUKIAotc3luIG1hdGNoICAgY29ib2xCYWRJRAkJIlxrXCstXCgkXHxbXi1BLVowLTldXCkiCisic3luIG1hdGNoICAgY29ib2xCYWRJRAkJIlxrXCstXCgkXHxbXi1BLVowLTldXCkiIGNvbnRhaW5lZAogCi1zeW4ga2V5d29yZCBjb2JvbENBTExzCQlDQUxMIENBTkNFTCBHT0JBQ0sgUEVSRk9STSBJTlZPS0UKK3N5biBjbHVzdGVyIGNvYm9sTGluZSAgICAgICBhZGQ9Y29ib2xDQUxMcyxjb2JvbFN0cmluZyxjb2JvbENvbmRGbG93CitzeW4ga2V5d29yZCBjb2JvbENBTExzCQlDQUxMIEVORC1DQUxMIENBTkNFTCBHT0JBQ0sgUEVSRk9STSBFTkQtUEVSRk9STSBJTlZPS0UKIHN5biBtYXRjaCAgIGNvYm9sQ0FMTHMJCSJFWElUIFwrUFJPR1JBTSIKIHN5biBtYXRjaCAgIGNvYm9sRXh0cmFzICAgICAgIC9cPFZBTFVFIFwrXGRcK1wuL2hzPXMrNixoZT1lLTEKIAogc3luIG1hdGNoICAgY29ib2xTdHJpbmcgICAgICAgLyJbXiJdKlwoIlx8JFwpLwogc3luIG1hdGNoICAgY29ib2xTdHJpbmcgICAgICAgLydbXiddKlwoJ1x8JFwpLwogCi1zeW4gcmVnaW9uICBjb2JvbExpbmUgICAgICAgc3RhcnQ9Il4uXHs2fSAiIGVuZD0iJCIgY29udGFpbnM9QUxMCisic3luIHJlZ2lvbiAgY29ib2xMaW5lICAgICAgICBzdGFydD0iXi5cezZ9WyBELV0iIGVuZD0iJCIgY29udGFpbnM9QUxMCitzeW4gbWF0Y2ggICBjb2JvbEluZGljYXRvciAgICJcJTdjW0QtXSIgY29udGFpbmVkCiAKIGlmIGV4aXN0cygiY29ib2xfbGVnYWN5X2NvZGUiKQotc3luIHJlZ2lvbiAgY29ib2xDb25kRmxvdyAgICAgY29udGFpbnM9QUxMQlVULGNvYm9sTGluZSBzdGFydD0iXDxcKElGXHxJTlZBTElEXHxFTkRcfEVPUFwpXD4iIHNraXA9L1woJ1x8IlwpW14iXVx7LX1cKCJcfCdcfCRcKS8gZW5kPSJcLiIga2VlcGVuZAotZW5kaWYKLQotaWYgISBleGlzdHMoImNvYm9sX2xlZ2FjeV9jb2RlIikKLSAgICAiIGNhdGNoIGp1bmsgaW4gY29sdW1ucyAxLTYgZm9yIG1vZGVybiBjb2RlCi0gICAgc3luIG1hdGNoIGNvYm9sQkFEICAgICAgIl4gXHswLDVcfVteIF0uKiIKKyAgc3luIHJlZ2lvbiAgY29ib2xDb25kRmxvdyAgICAgY29udGFpbnM9QUxMQlVULGNvYm9sTGluZSBzdGFydD0iXDxcKElGXHxJTlZBTElEXHxFTkRcfEVPUFwpXD4iIHNraXA9L1woJ1x8IlwpW14iXVx7LX1cKCJcfCdcfCRcKS8gZW5kPSJcLiIga2VlcGVuZAogZW5kaWYKIAogIiBtYW55IGxlZ2FjeSBzb3VyY2VzIGhhdmUganVuayBpbiBjb2x1bW5zIDEtNjogbXVzdCBiZSBiZWZvcmUgb3RoZXJzCiAiIFN0dWZmIGFmdGVyIGNvbHVtbiA3MiBpcyBpbiBlcnJvciAtIG11c3QgYmUgYWZ0ZXIgYWxsIG90aGVyICJtYXRjaCIgZW50cmllcwogaWYgZXhpc3RzKCJjb2JvbF9sZWdhY3lfY29kZSIpCi0gICAgc3luIG1hdGNoICAgY29ib2xCYWRMaW5lICAgICAgIl4uXHs2fVteKi9dLlx7NjYsXH0iCisgICAgc3luIG1hdGNoICAgY29ib2xCYWRMaW5lICAgICAgIlwlNzNjLioiIGNvbnRhaW5lZGluPUFMTEJVVCxjb2JvbENvbW1lbnQKIGVsc2UKLSAgICBzeW4gbWF0Y2ggICBjb2JvbEJhZExpbmUgICAgICAiXi5cezZ9Llx7NjcsXH0iCisgICAgc3luIG1hdGNoICAgY29ib2xCYWRMaW5lICAgICAgIlwlNzNjLioiIGNvbnRhaW5lZGluPUFMTAogZW5kaWYKIAogIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgpAQCAtMTUwLDcgKzE3MCwxMSBAQAogICBIaUxpbmsgY29ib2xCQUQgICAgICBFcnJvcgogICBIaUxpbmsgY29ib2xCYWRJRCAgICBFcnJvcgogICBIaUxpbmsgY29ib2xCYWRMaW5lICBFcnJvcgotICBIaUxpbmsgY29ib2xNYXJrZXIgICBDb21tZW50CisgIGlmIGV4aXN0cygiZzpjb2JvbF9sZWdhY3lfY29kZSIpCisgICAgICBIaUxpbmsgY29ib2xNYXJrZXIgICBDb21tZW50CisgIGVsc2UKKyAgICAgIEhpTGluayBjb2JvbE1hcmtlciAgIEVycm9yCisgIGVuZGlmCiAgIEhpTGluayBjb2JvbENBTExzICAgIEZ1bmN0aW9uCiAgIEhpTGluayBjb2JvbENvbW1lbnQgIENvbW1lbnQKICAgSGlMaW5rIGNvYm9sS2V5cyAgICAgQ29tbWVudApAQCAtMTU4LDYgKzE4Miw3IEBACiAgIEhpTGluayBjb2JvbENvbXBpbGVyIFByZVByb2MKICAgSGlMaW5rIGNvYm9sQ29uZEZsb3cgU3BlY2lhbAogICBIaUxpbmsgY29ib2xDb3B5ICAgICBQcmVQcm9jCisgIEhpTGluayBjb2JvbERlY2xBICAgIGNvYm9sRGVjbAogICBIaUxpbmsgY29ib2xEZWNsICAgICBUeXBlCiAgIEhpTGluayBjb2JvbEV4dHJhcyAgIFNwZWNpYWwKICAgSGlMaW5rIGNvYm9sR29UbyAgICAgU3BlY2lhbApAQCAtMTY1LDkgKzE5MCwxNiBAQAogICBIaUxpbmsgY29ib2xOdW1iZXIgICBDb25zdGFudAogICBIaUxpbmsgY29ib2xQaWMgICAgICBDb25zdGFudAogICBIaUxpbmsgY29ib2xSZXNlcnZlZCBTdGF0ZW1lbnQKKyAgSGlMaW5rIGNvYm9sRGl2aXNpb24gTGFiZWwKKyAgSGlMaW5rIGNvYm9sU2VjdGlvbiAgTGFiZWwKKyAgSGlMaW5rIGNvYm9sUGFyYWdyYXBoIExhYmVsCisgIEhpTGluayBjb2JvbERpdmlzaW9uTmFtZSAgS2V5d29yZAorICBIaUxpbmsgY29ib2xTZWN0aW9uTmFtZSAgIEtleXdvcmQKKyAgSGlMaW5rIGNvYm9sUGFyYWdyYXBoTmFtZSBLZXl3b3JkCiAgIEhpTGluayBjb2JvbFN0cmluZyAgIENvbnN0YW50CiAgIEhpTGluayBjb2JvbFRvZG8gICAgIFRvZG8KICAgSGlMaW5rIGNvYm9sV2F0Y2ggICAgU3BlY2lhbAorICBIaUxpbmsgY29ib2xJbmRpY2F0b3IgU3BlY2lhbAogCiAgIGRlbGNvbW1hbmQgSGlMaW5rCiBlbmRpZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZG9zaW5pLnZpbSBiL3J1bnRpbWUvc3ludGF4L2Rvc2luaS52aW0KaW5kZXggNzM3NDQxOC4uMjE5Mzg0ZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZG9zaW5pLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9kb3NpbmkudmltCkBAIC0xLDggKzEsMTAgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglDb25maWd1cmF0aW9uIEZpbGUgKGluaSBmaWxlKSBmb3IgTVNET1MvTVMgV2luZG93cwotIiBNYWludGFpbmVyOglTZWFuIE0uIE1jS2VlIDxtY2tlZUBtaXNzbGluay5uZXQ+Ci0iIExhc3QgQ2hhbmdlOgkyMDAxIE1heSAwOQotIiBWZXJzaW9uIEluZm86IEAoIylkb3NpbmkudmltCTEuNgk5Ny8xMi8xNSAwODo1NDoxMgorIiBWZXJzaW9uIEluZm86IEAoIylkb3NpbmkudmltIDEuNiA5Ny8xMi8xNSAwODo1NDoxMgorIiBBdXRob3I6ICAgICAgIFNlYW4gTS4gTWNLZWUgPG1ja2VlQG1pc3NsaW5rLm5ldD4KKyIgTWFpbnRhaW5lcjogICBOaW1hIFRhbGViaSA8bmltYUBpdC5uZXQuYXU+CisiIExhc3QgQ2hhbmdlOglNb24sIDI2IEp1biAyMDA2IDIyOjA3OjI4ICsxMDAwCisKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTE2LDcgKzE4LDcgQEAKIHN5biBjYXNlIGlnbm9yZQogCiBzeW4gbWF0Y2ggIGRvc2luaUxhYmVsCQkiXi5cey19PSIKLXN5biByZWdpb24gZG9zaW5pSGVhZGVyCQlzdGFydD0iXFsiIGVuZD0iXF0iCitzeW4gcmVnaW9uIGRvc2luaUhlYWRlcgkJc3RhcnQ9Il5cWyIgZW5kPSJcXSIKIHN5biBtYXRjaCAgZG9zaW5pQ29tbWVudAkiXjsuKiQiCiAKICIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RveHlnZW4udmltIGIvcnVudGltZS9zeW50YXgvZG94eWdlbi52aW0KaW5kZXggNWUzMTI2ZS4uNDkxNmI0ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZG94eWdlbi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZG94eWdlbi52aW0KQEAgLTEsMTEgKzEsMTEgQEAKICIgRG94eUdlbiBzeW50YXggaGlsaWdodGluZyBleHRlbnNpb24gZm9yIGMvYysrL2lkbC9qYXZhCiAiIExhbmd1YWdlOiAgICAgZG94eWdlbiBvbiB0b3Agb2YgYywgY3BwLCBpZGwsIGphdmEKLSIgTWFpbnRhaW5lcjogICBNaWNoYWVsIEdlZGRlcyA8bWljaGFlbHJnZWRkZXNAb3B0dXNob21lLmNvbS5hdT4KKyIgTWFpbnRhaW5lcjogICBNaWNoYWVsIEdlZGRlcyA8dmltbWVyQGZyb2cud2hlZWx5Y3JlZWsubmV0PgogIiBBdXRob3I6ICAgICAgIE1pY2hhZWwgR2VkZGVzCi0iIExhc3QgQ2hhbmdlOiAgMTIgRGVjZW1iZXIgMjAwNQotIiBWZXJzaW9uOiAgICAgIDEuMTUKKyIgTGFzdCBDaGFuZ2U6ICBBcHJpbCAyMDA3CisiIFZlcnNpb246ICAgICAgMS4yMAogIgotIiBDb3B5cmlnaHQgMjAwNCBNaWNoYWVsIEdlZGRlcworIiBDb3B5cmlnaHQgMjAwNC0yMDA2IE1pY2hhZWwgR2VkZGVzCiAiIFBsZWFzZSBmZWVsIGZyZWUgdG8gdXNlLCBtb2RpZnkgJiBkaXN0cmlidXRlIGFsbCBvciBwYXJ0IG9mIHRoaXMgc2NyaXB0LAogIiBwcm92aWRpbmcgdGhpcyBjb3B5cmlnaHQgbWVzc2FnZSByZW1haW5zLgogIiBJIHdvdWxkIGFwcHJlY2lhdGUgYmVpbmcgYWNrbm93bGVkZ2VkIGluIGFueSBkZXJpdmVkIHNjcmlwdHMsIGFuZCB3b3VsZApAQCAtMTMsMjYgKzEzLDI3IEBACiAKICIgTk9URTogIENvbW1lbnRzIHdlbGNvbWUhCiAiCi0iIFRoZXJlIGFyZSB0d28gdmFyaWFibGVzIHRoYXQgY29udHJvbCB0aGUgc3ludGF4IGhpbGlnaHRpbmcgcHJvZHVjZWQgYnkgdGhpcworIiBUaGVyZSBhcmUgdHdvIHZhcmlhYmxlcyB0aGF0IGNvbnRyb2wgdGhlIHN5bnRheCBoaWdobGlnaHRpbmcgcHJvZHVjZWQgYnkgdGhpcwogIiBzY3JpcHQ6Ci0iIGRveHlnZW5fZW5oYW5jZWRfY29sb3VyICAtIFVzZSB0aGUgKG5vbi1zdGFuZGFyZCkgb3JpZ2luYWwgY29sb3VycyBkZXNpZ25lZCBmb3IgdGhpcyBoaWxpZ2h0aW5nLgorIiBkb3h5Z2VuX2VuaGFuY2VkX2NvbG91ciAgLSBVc2UgdGhlIChub24tc3RhbmRhcmQpIG9yaWdpbmFsIGNvbG91cnMgZGVzaWduZWQKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgaGlnaGxpZ2h0aW5nLgogIiBkb3h5Z2VuX215X3JlbmRlcmluZyAgICAgLSBEaXNhYmxlIHRoZSBIVE1MIGJvbGQvaXRhbGljL3VuZGVybGluZSByZW5kZXJpbmcuCiAiCiAiIEEgYnJpZWYgZGVzY3JpcHRpb24gd2l0aG91dCAnLicgb3IgJyEnIHdpbGwgY2F1c2UgdGhlIGVuZCBjb21tZW50CiAiIGNoYXJhY3RlciB0byBiZSBtYXJrZWQgYXMgYW4gZXJyb3IuICBZb3UgY2FuIGRlZmluZSB0aGUgY29sb3VyIG9mIHRoaXMgdXNpbmcKICIgdGhlIGhpZ2hsaWdodCBkb3h5Z2VuRXJyb3JDb21tZW50LgotIiBBIFxsaW5rIHdpdGhvdXQgYW4gXGVuZGxpbmsgd2lsbCBjYXVzZSBhbiBlcnJvciBoaWxpZ2h0IG9uIHRoZSBlbmQtY29tbWVudC4KKyIgQSBcbGluayB3aXRob3V0IGFuIFxlbmRsaW5rIHdpbGwgY2F1c2UgYW4gZXJyb3IgaGlnaGxpZ2h0IG9uIHRoZSBlbmQtY29tbWVudC4KICIgVGhpcyBpcyBkZWZpbmVkIGJ5IGRveHlnZW5MaW5rRXJyb3IKICIKICIgVGhlIHZhcmlhYmxlIGc6ZG94eWdlbl9jb2Rld29yZF9mb250IGNhbiBiZSBzZXQgdG8gdGhlIGd1aWZvbnQgZm9yIG1hcmtpbmcgXGMKICIgd29yZHMgLSBhICd0eXBld3JpdGVyJyBsaWtlIGZvbnQgbm9ybWFsbHkuIFNwYWNlcyBtdXN0IGJlIGVzY2FwZWQuICBJdCBjYW4KLSIgYWxzbyBiZSBzZXQgdG8gYW55IGhpbGlnaHQgYXR0cmlidXRlLiBBbHRlcm5hdGl2ZWx5LCBhIGhpbGlnaHQgZm9yIGRveHlnZW5Db2RlV29yZAorIiBhbHNvIGJlIHNldCB0byBhbnkgaGlnaGxpZ2h0IGF0dHJpYnV0ZS4gQWx0ZXJuYXRpdmVseSwgYSBoaWdobGlnaHQgZm9yIGRveHlnZW5Db2RlV29yZAogIiBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBpdC4KICIKLSIgQnkgZGVmYXVsdCwgaGlsaWdodGluZyBpcyBkb25lIGFzc3VtbmcgeW91IGhhdmUgdGhlIEpBVkFET0NfQVVUT0JSSUVGCi0iIHNldHRpbmcgdHVucmVkIG9uIGluIHlvdXIgRG94eWdlbiBjb25maWd1cmF0aW9uLiAgSWYgeW91IGRvbid0LCB5b3UKKyIgQnkgZGVmYXVsdCwgaGlnaGxpZ2h0aW5nIGlzIGRvbmUgYXNzdW1uZyB5b3UgaGF2ZSB0aGUgSkFWQURPQ19BVVRPQlJJRUYKKyIgc2V0dGluZyB0dXJuZWQgb24gaW4geW91ciBEb3h5Z2VuIGNvbmZpZ3VyYXRpb24uICBJZiB5b3UgZG9uJ3QsIHlvdQogIiBjYW4gc2V0IHRoZSB2YXJpYWJsZSBnOmRveHlnZW5famF2YWRvY19hdXRvYnJpZWYgdG8gMCB0byBoYXZlIHRoZQotIiBoaWxpZ2h0aW5nIG1vcmUgYWNjdXJhdGVseSByZWZsZWN0IHRoZSB3YXkgRG94eWdlbiB3aWxsIGludGVycHJldCB5b3VyCisiIGhpZ2hsaWdodGluZyBtb3JlIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGUgd2F5IERveHlnZW4gd2lsbCBpbnRlcnByZXQgeW91cgogIiBjb21tZW50cy4KICIKICIgU3BlY2lhbCB0aGFua3MgdG86ICBXdSBZb25nd2VpLCBUb2J5IEFsbHNvcHAKQEAgLTU1LDEzICs1NiwxMyBAQAogICAiCiAKICAgIiBDL0MrKyBTdHlsZSBsaW5lIGNvbW1lbnRzCi0gIHN5biByZWdpb24gZG94eWdlbkNvbW1lbnQgc3RhcnQ9Ky9cKlwoXCovXClcQCFbKiFdKyAgZW5kPStcKi8rIGNvbnRhaW5zPWRveHlnZW5TeW5jU3RhcnQsZG94eWdlblN0YXJ0LGRveHlnZW5UT0RPIGtlZXBlbmQKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuQ29tbWVudEwgc3RhcnQ9Ky8vWy8hXTxcQCErbWU9ZS0xIGVuZD0rJCsgY29udGFpbnM9ZG94eWdlblN0YXJ0TCBrZWVwZW5kIHNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPWRveHlnZW5Db21tZW50MgotICBzeW4gcmVnaW9uIGRveHlnZW5Db21tZW50TCBzdGFydD0rLy9bLyFdPCttZT1lLTIgZW5kPSskKyBjb250YWlucz1kb3h5Z2VuU3RhcnRMIGtlZXBlbmQgc2tpcHdoaXRlIHNraXBubAotICBzeW4gcmVnaW9uIGRveHlnZW5Db21tZW50TCBzdGFydD0rLy9AXHplW3t9XSsgZW5kPSskKyBjb250YWlucz1kb3h5Z2VuR3JvdXBEZWZpbmUsZG94eWdlbkdyb3VwRGVmaW5lU3BlY2lhbAorICBzeW4gcmVnaW9uIGRveHlnZW5Db21tZW50IHN0YXJ0PSsvXCpcKFwqL1wpXEAhWyohXSsgIGVuZD0rXCovKyBjb250YWlucz1kb3h5Z2VuU3luY1N0YXJ0LGRveHlnZW5TdGFydCxkb3h5Z2VuVE9ETyBrZWVwZW5kIGZvbGQKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuQ29tbWVudEwgc3RhcnQ9Ky8vWy8hXTxcQCErbWU9ZS0xIGVuZD0rJCsgY29udGFpbnM9ZG94eWdlblN0YXJ0TCBrZWVwZW5kIHNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPWRveHlnZW5Db21tZW50MiBmb2xkCisgIHN5biByZWdpb24gZG94eWdlbkNvbW1lbnRMIHN0YXJ0PSsvL1svIV08K21lPWUtMiBlbmQ9KyQrIGNvbnRhaW5zPWRveHlnZW5TdGFydEwga2VlcGVuZCBza2lwd2hpdGUgc2tpcG5sIGZvbGQKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuQ29tbWVudEwgc3RhcnQ9Ky8vQFx6ZVt7fV0rIGVuZD0rJCsgY29udGFpbnM9ZG94eWdlbkdyb3VwRGVmaW5lLGRveHlnZW5Hcm91cERlZmluZVNwZWNpYWwgZm9sZAogCiAgICIgU2luZ2xlIGxpbmUgYnJpZWYgZm9sbG93ZWQgYnkgbXVsdGlsaW5lIGNvbW1lbnQuCi0gIHN5biByZWdpb24gZG94eWdlbkNvbW1lbnQyIHN0YXJ0PSsvXCpcKFwqL1wpXEAhWyohXSsgZW5kPStcKi8rIGNvbnRhaW5lZCBjb250YWlucz1kb3h5Z2VuU3luY1N0YXJ0Mixkb3h5Z2VuU3RhcnQyLGRveHlnZW5UT0RPIGtlZXBlbmQKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuQ29tbWVudDIgc3RhcnQ9Ky9cKlwoXCovXClcQCFbKiFdKyBlbmQ9K1wqLysgY29udGFpbmVkIGNvbnRhaW5zPWRveHlnZW5TeW5jU3RhcnQyLGRveHlnZW5TdGFydDIsZG94eWdlblRPRE8ga2VlcGVuZCBmb2xkCiAgICIgVGhpcyBoZWxwcyB3aXRoIHN5bmMtaW5nIGFzIGZvciBzb21lIHJlYXNvbiwgc3luY2luZyBiZWhhdmVzIGRpZmZlcmVudGx5IHRvIGEgbm9ybWFsIHJlZ2lvbiwgYW5kIHRoZSBzdGFydCBwYXR0ZXJuIGRvZXMgbm90IGdldCBtYXRjaGVkLgogICBzeW4gbWF0Y2ggZG94eWdlblN5bmNTdGFydDIgK1teKi9dKyBjb250YWluZWQgbmV4dGdyb3VwPWRveHlnZW5Cb2R5LGRveHlnZW5QcmV2LGRveHlnZW5TdGFydFNwZWNpYWwsZG94eWdlblNraXBDb21tZW50LGRveHlnZW5TdGFydFNraXAyIHNraXB3aGl0ZSBza2lwbmwKIApAQCAtNzAsNDYgKzcxLDU2IEBACiAgIHN5biBtYXRjaCBkb3h5Z2VuU3RhcnRTa2lwMiArXlxzKlwqJCsgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuQm9keSxkb3h5Z2VuU3RhcnRTcGVjaWFsLCxkb3h5Z2VuU3RhcnRTa2lwIHNraXB3aGl0ZSBza2lwbmwKICAgc3luIG1hdGNoIGRveHlnZW5TdGFydDIgKy9cKlsqIV0rIGNvbnRhaW5lZCBuZXh0Z3JvdXA9ZG94eWdlbkJvZHksZG94eWdlblByZXYsZG94eWdlblN0YXJ0U3BlY2lhbCxkb3h5Z2VuU3RhcnRTa2lwMiBza2lwd2hpdGUgc2tpcG5sCiAKKwogICAiIE1hdGNoIHRoZSBTdGFydGluZyBwYXR0ZXJuIChlZmZlY3RpdmVseSBjcmVhdGluZyB0aGUgc3RhcnQgb2YgYSBCTkYpCiAgIGlmICFleGlzdHMoJ2c6ZG94eWdlbl9qYXZhZG9jX2F1dG9icmllZicpIHx8IGc6ZG94eWdlbl9qYXZhZG9jX2F1dG9icmllZgogICAgIHN5biBtYXRjaCBkb3h5Z2VuU3RhcnQgKy9cKlsqIV0rIGNvbnRhaW5lZCBuZXh0Z3JvdXA9ZG94eWdlbkJyaWVmLGRveHlnZW5QcmV2LGRveHlnZW5GaW5kQnJpZWZTcGVjaWFsLGRveHlnZW5TdGFydFNwZWNpYWwsZG94eWdlblN0YXJ0U2tpcCxkb3h5Z2VuUGFnZSBza2lwd2hpdGUgc2tpcG5sCisgICAgc3luIG1hdGNoIGRveHlnZW5TdGFydEwgKy8vWy8hXSsgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuUHJldkwsZG94eWdlbkJyaWVmTCxkb3h5Z2VuU3BlY2lhbCBza2lwd2hpdGUKKyAgICAiIE1hdGNoIHRoZSBmaXJzdCBzZW50ZW5jZSBhcyBhIGJyaWVmIGNvbW1lbnQKKyAgICBpZiAhIGV4aXN0cygnZzpkb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbicpCisgICAgICBsZXQgZzpkb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbj0nWy5dJworICAgIGVuZGlmCisKKyAgICBleGUgJ3N5biByZWdpb24gZG94eWdlbkJyaWVmIGNvbnRhaW5lZCBzdGFydD0rW1xcQF1cKFtucGNiZWFdXD5cfGVtXD5cfHJlZlw+XHxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcfFteIFx0XFxAKl0rIHN0YXJ0PStcKF5ccypcKVxAPCFcKi9cQCErIHN0YXJ0PStcPFxrKyBza2lwPSsnLmRveHlnZW5fZW5kX3B1bmN0dWF0aW9uLidcU1xAPSsgZW5kPSsnLmRveHlnZW5fZW5kX3B1bmN0dWF0aW9uLicrIGVuZD0rXChccypcKFxuXHMqXCpcPVxzKlwpW0BcXF1cKFtucGNiZWFdXD5cfGVtXD5cfHJlZlw+XHxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcQCFcKVxAPSsgY29udGFpbnM9ZG94eWdlblNtYWxsU3BlY2lhbCxkb3h5Z2VuQ29udGludWVDb21tZW50LGRveHlnZW5CcmllZkVuZENvbW1lbnQsZG94eWdlbkZpbmRCcmllZlNwZWNpYWwsZG94eWdlblNtYWxsU3BlY2lhbCxAZG94eWdlbkh0bWxHcm91cCxkb3h5Z2VuVE9ETyxkb3h5Z2VuSHlwZXJMaW5rLGRveHlnZW5IYXNoTGluayxAU3BlbGwgIHNraXBubCBuZXh0Z3JvdXA9ZG94eWdlbkJvZHknCisKKyAgICBzeW4gbWF0Y2ggZG94eWdlbkJyaWVmRW5kQ29tbWVudCArXCovKyBjb250YWluZWQKKworICAgIGV4ZSAnc3luIHJlZ2lvbiBkb3h5Z2VuQnJpZWZMIHN0YXJ0PStAXGtcQCFcfFtcXEBdXChbbnBjYmVhXVw+XHxlbVw+XHxyZWZcPlx8bGlua1w+XHxmXCRcfFskXFwmPD4jXVwpXHxbXiBcdFxcQF0rIHN0YXJ0PStcPCsgc2tpcD0rJy5kb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbi4nXFMrIGVuZD0rJy5kb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbi4nXHwkKyBjb250YWluZWQgY29udGFpbnM9ZG94eWdlblNtYWxsU3BlY2lhbCxkb3h5Z2VuSHlwZXJMaW5rLGRveHlnZW5IYXNoTGluayxAZG94eWdlbkh0bWxHcm91cCxAU3BlbGwga2VlcGVuZCcKKyAgICBzeW4gbWF0Y2ggZG94eWdlblByZXZMICs8KyBjb250YWluZWQgIG5leHRncm91cD1kb3h5Z2VuQnJpZWZMLGRveHlnZW5TcGVjaWFsIHNraXB3aGl0ZQogICBlbHNlCiAgICAgc3luIG1hdGNoIGRveHlnZW5TdGFydCArL1wqWyohXSsgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuQm9keSxkb3h5Z2VuUHJldixkb3h5Z2VuRmluZEJyaWVmU3BlY2lhbCxkb3h5Z2VuU3RhcnRTcGVjaWFsLGRveHlnZW5TdGFydFNraXAsZG94eWdlblBhZ2Ugc2tpcHdoaXRlIHNraXBubAorICAgIHN5biBtYXRjaCBkb3h5Z2VuU3RhcnRMICsvL1svIV0rIGNvbnRhaW5lZCBuZXh0Z3JvdXA9ZG94eWdlblByZXZMLGRveHlnZW5MaW5lLGRveHlnZW5TcGVjaWFsIHNraXB3aGl0ZQorICAgIHN5biByZWdpb24gZG94eWdlbkxpbmUgc3RhcnQ9K0Bca1xAIVx8W1xcQF1cKFtucGNiZWFdXD5cfGVtXD5cfHJlZlw+XHxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcfFteIFx0XFxAPF0rIHN0YXJ0PStcPCsgZW5kPSckJyBjb250YWluZWQgY29udGFpbnM9ZG94eWdlblNtYWxsU3BlY2lhbCxkb3h5Z2VuSHlwZXJMaW5rLGRveHlnZW5IYXNoTGluayxAZG94eWdlbkh0bWxHcm91cCxAU3BlbGwga2VlcGVuZAorICAgIHN5biBtYXRjaCBkb3h5Z2VuUHJldkwgKzwrIGNvbnRhaW5lZCAgbmV4dGdyb3VwPWRveHlnZW5MaW5lLGRveHlnZW5TcGVjaWFsIHNraXB3aGl0ZQorCiAgIGVuZGlmCi0gIHN5biBtYXRjaCBkb3h5Z2VuU3RhcnRMICsvL1svIV0rIGNvbnRhaW5lZCBuZXh0Z3JvdXA9ZG94eWdlblByZXZMLGRveHlnZW5CcmllZkwsZG94eWdlblNwZWNpYWwgc2tpcHdoaXRlCiAKICAgIiBUaGlzIGhlbHBzIHdpdGggc3luYy1pbmcgYXMgZm9yIHNvbWUgcmVhc29uLCBzeW5jaW5nIGJlaGF2ZXMgZGlmZmVyZW50bHkgdG8gYSBub3JtYWwgcmVnaW9uLCBhbmQgdGhlIHN0YXJ0IHBhdHRlcm4gZG9lcyBub3QgZ2V0IG1hdGNoZWQuCiAgIHN5biBtYXRjaCBkb3h5Z2VuU3luY1N0YXJ0ICtcemVbXiovXSsgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuQnJpZWYsZG94eWdlblByZXYsZG94eWdlblN0YXJ0U3BlY2lhbCxkb3h5Z2VuRmluZEJyaWVmU3BlY2lhbCxkb3h5Z2VuU3RhcnRTa2lwLGRveHlnZW5QYWdlIHNraXB3aGl0ZSBza2lwbmwKIAotICAiIE1hdGNoIHRoZSBmaXJzdCBzZW50ZW5jZSBhcyBhIGJyaWVmIGNvbW1lbnQKLSAgaWYgISBleGlzdHMoJ2c6ZG94eWdlbl9lbmRfcHVuY3R1YXRpb24nKQotICAgIGxldCBnOmRveHlnZW5fZW5kX3B1bmN0dWF0aW9uPSdbLl0nCi0gIGVuZGlmCi0gIGV4ZSAnc3luIHJlZ2lvbiBkb3h5Z2VuQnJpZWYgY29udGFpbmVkIHN0YXJ0PStbXFxAXVwoW3BjYmVhXVw+XHxlbVw+XHxyZWZcPlx8bGlua1w+XHxmXCRcfFskXFwmPD4jXVwpXHxbXiBcdFxcQCpdKyBzdGFydD0rXCheXHMqXClcQDwhXCovXEAhKyBzdGFydD0rXDxcaysgc2tpcD0rJy5kb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbi4nXFMrIGVuZD0rJy5kb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbi4nKyBlbmQ9K1woXHMqXChcblxzKlwqXD1ccypcKVtAXFxdXChbcGNiZWFdXD5cfGVtXD5cfHJlZlw+XHxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcQCFcKVxAPSsgY29udGFpbnM9ZG94eWdlblNtYWxsU3BlY2lhbCxkb3h5Z2VuQ29udGludWVDb21tZW50LGRveHlnZW5CcmllZkVuZENvbW1lbnQsZG94eWdlbkZpbmRCcmllZlNwZWNpYWwsZG94eWdlblNtYWxsU3BlY2lhbCxAZG94eWdlbkh0bWxHcm91cCxkb3h5Z2VuVE9ETyxkb3h5Z2VuT3RoZXJMaW5rLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rICBza2lwbmwgbmV4dGdyb3VwPWRveHlnZW5Cb2R5JwotCi0gIHN5biBtYXRjaCBkb3h5Z2VuQnJpZWZFbmRDb21tZW50ICtcKi8rIGNvbnRhaW5lZAotCi0gIGV4ZSAnc3luIHJlZ2lvbiBkb3h5Z2VuQnJpZWZMIHN0YXJ0PStAXGtcQCFcfFtcXEBdXChbcGNiZWFdXD5cfGVtXD5cfHJlZlw+XHxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcfFteIFx0XFxAXSsgc3RhcnQ9K1w8KyBza2lwPSsnLmRveHlnZW5fZW5kX3B1bmN0dWF0aW9uLidcUysgZW5kPSsnLmRveHlnZW5fZW5kX3B1bmN0dWF0aW9uLidcfCQrIGNvbnRhaW5lZCBjb250YWlucz1kb3h5Z2VuU21hbGxTcGVjaWFsLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rLEBkb3h5Z2VuSHRtbEdyb3VwIGtlZXBlbmQnCi0KLSAgc3luIHJlZ2lvbiBkb3h5Z2VuQnJpZWZMaW5lIGNvbnRhaW5lZCBzdGFydD0rXDxcaysgZW5kPStcKFxuXHMqXCpcPVxzKlwoW0BcXF1cKFtwY2JlYV1cPlx8ZW1cPlx8cmVmXD5cfGxpbmtcPlx8ZlwkXHxbJFxcJjw+I11cKVxAIVwpXHxccyokXClcQD0rIGNvbnRhaW5zPWRveHlnZW5Db250aW51ZUNvbW1lbnQsZG94eWdlbkZpbmRCcmllZlNwZWNpYWwsZG94eWdlblNtYWxsU3BlY2lhbCxAZG94eWdlbkh0bWxHcm91cCxkb3h5Z2VuVE9ETyxkb3h5Z2VuT3RoZXJMaW5rLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rICBza2lwd2hpdGUga2VlcGVuZAorICBzeW4gcmVnaW9uIGRveHlnZW5CcmllZkxpbmUgY29udGFpbmVkIHN0YXJ0PStcPFxrKyBlbmQ9K1woXG5ccypcKlw9XHMqXChbQFxcXVwoW25wY2JlYV1cPlx8ZW1cPlx8cmVmXD5cfGxpbmtcPlx8ZlwkXHxbJFxcJjw+I11cKVxAIVwpXHxccyokXClcQD0rIGNvbnRhaW5zPWRveHlnZW5Db250aW51ZUNvbW1lbnQsZG94eWdlbkZpbmRCcmllZlNwZWNpYWwsZG94eWdlblNtYWxsU3BlY2lhbCxAZG94eWdlbkh0bWxHcm91cCxkb3h5Z2VuVE9ETyxkb3h5Z2VuSHlwZXJMaW5rLGRveHlnZW5IYXNoTGluayAgc2tpcHdoaXRlIGtlZXBlbmQKIAogICAiIE1hdGNoIGEgJzwnIGZvciBhcHBseWluZyBhIGNvbW1lbnQgdG8gdGhlIHByZXZpb3VzIGVsZW1lbnQuCi0gIHN5biBtYXRjaCBkb3h5Z2VuUHJldiArPCsgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuQnJpZWYsZG94eWdlblNwZWNpYWwsZG94eWdlblN0YXJ0U2tpcCBza2lwd2hpdGUKLSAgc3luIG1hdGNoIGRveHlnZW5QcmV2TCArPCsgY29udGFpbmVkICBuZXh0Z3JvdXA9ZG94eWdlbkJyaWVmTCxkb3h5Z2VuU3BlY2lhbCBza2lwd2hpdGUKKyAgc3luIG1hdGNoIGRveHlnZW5QcmV2ICs8KyBjb250YWluZWQgbmV4dGdyb3VwPWRveHlnZW5CcmllZixkb3h5Z2VuQm9keSxkb3h5Z2VuU3BlY2lhbCxkb3h5Z2VuU3RhcnRTa2lwIHNraXB3aGl0ZQogCi0gICIgVGhlc2UgYXJlIGFudGktZG94eWdlbiBjb21tZW50cy4gIElmIHRoZXJlIGFyZSBtb3JlIHRoYW4gdHdvIGFzdGVyaXNrcyBvciAzICcvJ3MKK2lmIGV4aXN0cygiY19jb21tZW50X3N0cmluZ3MiKQorICAiIFRoZXNlIGFyZSBhbnRpLURveHlnZW4gY29tbWVudHMuICBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIHR3byBhc3Rlcmlza3Mgb3IgMyAnLydzCiAgICIgdGhlbiB0dXJuIHRoZSBjb21tZW50cyBiYWNrIGludG8gbm9ybWFsIEMgY29tbWVudHMuCiAgIHN5biByZWdpb24gY0NvbW1lbnQgc3RhcnQ9Ii9cKlwqXCoiIGVuZD0iXCovIiBjb250YWlucz1AY0NvbW1lbnRHcm91cCxjQ29tbWVudFN0cmluZyxjQ2hhcmFjdGVyLGNOdW1iZXJzQ29tLGNTcGFjZUVycm9yCiAgIHN5biByZWdpb24gY0NvbW1lbnRMIHN0YXJ0PSIvLy8vIiBza2lwPSJcXCQiIGVuZD0iJCIgY29udGFpbnM9QGNDb21tZW50R3JvdXAsY0NvbW1lbnQyU3RyaW5nLGNDaGFyYWN0ZXIsY051bWJlcnNDb20sY1NwYWNlRXJyb3IKK2Vsc2UKKyAgc3luIHJlZ2lvbiBjQ29tbWVudCBzdGFydD0iL1wqXCpcKiIgZW5kPSJcKi8iIGNvbnRhaW5zPUBjQ29tbWVudEdyb3VwLGNTcGFjZUVycm9yCisgIHN5biByZWdpb24gY0NvbW1lbnRMIHN0YXJ0PSIvLy8vIiBza2lwPSJcXCQiIGVuZD0iJCIgY29udGFpbnM9QGNDb21tZW50R3JvdXAsY1NwYWNlRXJyb3IKK2VuZGlmCiAKICAgIiBTcGVjaWFsIGNvbW1hbmRzIGF0IHRoZSBzdGFydCBvZiB0aGUgYXJlYTogIHN0YXJ0aW5nIHdpdGggJ0AnIG9yICdcJwotICBzeW4gcmVnaW9uIGRveHlnZW5TdGFydFNwZWNpYWwgY29udGFpbmVkIHN0YXJ0PStbQFxcXVwoW3BjYmVhXVw+XHxlbVw+XHxyZWZcPlx8bGlua1w+XHxmXCRcfFskXFwmPD4jXVwpXEAhKyBlbmQ9KyQrIGVuZD0rXCovK21lPXMtMSxoZT1zLTEgIGNvbnRhaW5zPWRveHlnZW5TcGVjaWFsIG5leHRncm91cD1kb3h5Z2VuU2tpcENvbW1lbnQgc2tpcG5sIGtlZXBlbmQKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuU3RhcnRTcGVjaWFsIGNvbnRhaW5lZCBzdGFydD0rW0BcXF1cKFtucGNiZWFdXD5cfGVtXD5cfHJlZlw+XHxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcQCErIGVuZD0rJCsgZW5kPStcKi8rbWU9cy0xLGhlPXMtMSAgY29udGFpbnM9ZG94eWdlblNwZWNpYWwgbmV4dGdyb3VwPWRveHlnZW5Ta2lwQ29tbWVudCBza2lwbmwga2VlcGVuZAogICBzeW4gbWF0Y2ggZG94eWdlblNraXBDb21tZW50IGNvbnRhaW5lZCArXlxzKlwqL1xAISsgbmV4dGdyb3VwPWRveHlnZW5CcmllZixkb3h5Z2VuU3RhcnRTcGVjaWFsLGRveHlnZW5GaW5kQnJpZWZTcGVjaWFsLGRveHlnZW5QYWdlIHNraXB3aGl0ZQogCiAgICJzeW4gcmVnaW9uIGRveHlnZW5Cb2R5Qml0IGNvbnRhaW5lZCBzdGFydD0rJCsKIAogICAiIFRoZSBtYWluIGJvZHkgb2YgYSBkb3h5Z2VuIGNvbW1lbnQuCi0gIHN5biByZWdpb24gZG94eWdlbkJvZHkgY29udGFpbmVkIHN0YXJ0PSsuXHwkKyBtYXRjaGdyb3VwPWRveHlnZW5FbmRDb21tZW50IGVuZD0rXCovK3JlPWUtMixtZT1lLTIgY29udGFpbnM9ZG94eWdlbkNvbnRpbnVlQ29tbWVudCxkb3h5Z2VuVE9ETyxkb3h5Z2VuU3BlY2lhbCxkb3h5Z2VuU21hbGxTcGVjaWFsLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rLEBkb3h5Z2VuSHRtbEdyb3VwCisgIHN5biByZWdpb24gZG94eWdlbkJvZHkgY29udGFpbmVkIHN0YXJ0PStcKC9cKlsqIV1cKVxAPCE8XHxbXjxdXHwkKyBtYXRjaGdyb3VwPWRveHlnZW5FbmRDb21tZW50IGVuZD0rXCovK3JlPWUtMixtZT1lLTIgY29udGFpbnM9ZG94eWdlbkNvbnRpbnVlQ29tbWVudCxkb3h5Z2VuVE9ETyxkb3h5Z2VuU3BlY2lhbCxkb3h5Z2VuU21hbGxTcGVjaWFsLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rLEBkb3h5Z2VuSHRtbEdyb3VwLEBTcGVsbAogCiAgICIgVGhlc2UgYWxsb3cgdGhlIHNraXBwaW5nIG9mIGNvbW1lbnQgY29udGludWF0aW9uICcqJyBjaGFyYWN0ZXJzLgogICBzeW4gbWF0Y2ggZG94eWdlbkNvbnRpbnVlQ29tbWVudCBjb250YWluZWQgK15ccypcKi9cQCFccyorCkBAIC0xMzMsNyArMTQ0LDcgQEAKICAgIgogICAiIHN5biBtYXRjaCBkb3h5Z2VuQnJpZWZMaW5lICBjb250YWluZWQKICAgc3luIG1hdGNoIGRveHlnZW5CcmllZlNwZWNpYWwgY29udGFpbmVkICtbQFxcXSsgbmV4dGdyb3VwPWRveHlnZW5CcmllZldvcmQgc2tpcHdoaXRlCi0gIHN5biByZWdpb24gZG94eWdlbkZpbmRCcmllZlNwZWNpYWwgc3RhcnQ9K1tAXFxdYnJpZWZcPisgZW5kPStcKFxuXHMqXCpcPVxzKlwoW0BcXF1cKFtwY2JlYV1cPlx8ZW1cPlx8cmVmXD5cfGxpbmtcPlx8ZlwkXHxbJFxcJjw+I11cKVxAIVwpXHxccyokXClcQD0rIGtlZXBlbmQgY29udGFpbnM9ZG94eWdlbkJyaWVmU3BlY2lhbCBuZXh0Z3JvdXA9ZG94eWdlbkJvZHkga2VlcGVuZCBza2lwd2hpdGUgc2tpcG5sIGNvbnRhaW5lZAorICBzeW4gcmVnaW9uIGRveHlnZW5GaW5kQnJpZWZTcGVjaWFsIHN0YXJ0PStbQFxcXWJyaWVmXD4rIGVuZD0rXChcblxzKlwqXD1ccypcKFtAXFxdXChbbnBjYmVhXVw+XHxlbVw+XHxyZWZcPlx8bGlua1w+XHxmXCRcfFskXFwmPD4jXVwpXEAhXClcfFxzKiRcKVxAPSsga2VlcGVuZCBjb250YWlucz1kb3h5Z2VuQnJpZWZTcGVjaWFsIG5leHRncm91cD1kb3h5Z2VuQm9keSBrZWVwZW5kIHNraXB3aGl0ZSBza2lwbmwgY29udGFpbmVkCiAKIAogICAiIENyZWF0ZSB0aGUgc2luZ2xlIHdvcmQgbWF0Y2hpbmcgc3BlY2lhbCBpZGVudGlmaWVycy4KQEAgLTE0Miw3ICsxNTMsNyBAQAogCiAgICAgbGV0IG14PSdbLTowLTlBLVphLXpfJT0mKyovIX4+fF1cQDwhXChbLTAtOUEtWmEtel8lPSsqLyF+PnwjXVwrWy0wLTlBLVphLXpfJT0rKi8hfj58XVxAIVx8XFxbXFw8PiYuXUBcfFsuLF1bMC05YS16QS1aX11cQD1cfDo6XHwoW14pXSopXHwmWzAtOWEtekEtWl1cezIsN307XClcKycKICAgICBleGUgJ3N5biByZWdpb24gZG94eWdlblNwZWNpYWwnLmE6bmFtZS4nV29yZCBjb250YWluZWQgc3RhcnQ9KycuYTprd29yZC4nKyBlbmQ9K1woXF9zXCsnLm14LidcKVxAPD1bLWEtekEtWl8wLTkrKi9eJXx+IT0mXFxdXEAhKyBza2lwd2hpdGUgY29udGFpbnM9ZG94eWdlbkNvbnRpbnVlQ29tbWVudCxkb3h5Z2VuJy5hOm5hbWUuJ1dvcmQnCi0gICAgZXhlICdzeW4gbWF0Y2ggZG94eWdlbicuYTpuYW1lLidXb3JkIGNvbnRhaW5lZCAiXF9zXEA8PScubXguJyIgY29udGFpbnM9ZG94eWdlbkh0bWxTcGVjaWFsIGtlZXBlbmQnCisgICAgZXhlICdzeW4gbWF0Y2ggZG94eWdlbicuYTpuYW1lLidXb3JkIGNvbnRhaW5lZCAiXF9zXEA8PScubXguJyIgY29udGFpbnM9ZG94eWdlbkh0bWxTcGVjaWFsLEBTcGVsbCBrZWVwZW5kJwogICBlbmRmdW4KICAgY2FsbCBzOkR4eUNyZWF0ZVNtYWxsU3BlY2lhbCgncCcsICdDb2RlJykKICAgY2FsbCBzOkR4eUNyZWF0ZVNtYWxsU3BlY2lhbCgnYycsICdDb2RlJykKQEAgLTE1MywxMCArMTY0LDEwIEBACiAgIGNhbGwgczpEeHlDcmVhdGVTbWFsbFNwZWNpYWwoJ3JlZicsICdSZWYnKQogICBkZWxmdW4gczpEeHlDcmVhdGVTbWFsbFNwZWNpYWwKIAotICBzeW4gbWF0Y2ggZG94eWdlblNtYWxsU3BlY2lhbCBjb250YWluZWQgK1tAXFxdXChcPFtwY2JlYV1cPlx8XDxlbVw+XHxcPHJlZlw+XHxcPGxpbmtcPlx8ZlwkXHxbJFxcJjw+I11cKVxAPSsgbmV4dGdyb3VwPWRveHlnZW5PdGhlckxpbmssZG94eWdlbkh5cGVyTGluayxkb3h5Z2VuSGFzaExpbmssZG94eWdlbkZvcm11bGEsZG94eWdlblN5bWJvbCxkb3h5Z2VuU3BlY2lhbC4qV29yZAorICBzeW4gbWF0Y2ggZG94eWdlblNtYWxsU3BlY2lhbCBjb250YWluZWQgK1tAXFxdXChcPFtucGNiZWFdXD5cfFw8ZW1cPlx8XDxyZWZcPlx8XDxsaW5rXD5cfGZcJFx8WyRcXCY8PiNdXClcQD0rIG5leHRncm91cD1kb3h5Z2VuT3RoZXJMaW5rLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rLGRveHlnZW5Gb3JtdWxhLGRveHlnZW5TeW1ib2wsZG94eWdlblNwZWNpYWwuKldvcmQKIAogICAiIE5vdyBmb3Igc3BlY2lhbCBjaGFyYWN0ZXJzCi0gIHN5biBtYXRjaCBkb3h5Z2VuU3BlY2lhbCBjb250YWluZWQgK1tAXFxdXChcPFtwY2JlYV1cPlx8XDxlbVw+XHxcPHJlZlx8XDxsaW5rXD5cPlx8XDxmXCRcfFskXFwmPD4jXVwpXEAhKyBuZXh0Z3JvdXA9ZG94eWdlblBhcmFtLGRveHlnZW5SZXR2YWwsZG94eWdlbkJyaWVmV29yZCxkb3h5Z2VuQm9sZCxkb3h5Z2VuQk90aGVyLGRveHlnZW5PdGhlcixkb3h5Z2VuT3RoZXJUT0RPLGRveHlnZW5PdGhlcldBUk4sZG94eWdlbk90aGVyQlVHLGRveHlnZW5QYWdlLGRveHlnZW5Hcm91cERlZmluZSxkb3h5Z2VuQ29kZVJlZ2lvbixkb3h5Z2VuVmVyYmF0aW1SZWdpb24sZG94eWdlbkRvdFJlZ2lvbgorICBzeW4gbWF0Y2ggZG94eWdlblNwZWNpYWwgY29udGFpbmVkICtbQFxcXVwoXDxbbnBjYmVhXVw+XHxcPGVtXD5cfFw8cmVmXHxcPGxpbmtcPlw+XHxcPGZcJFx8WyRcXCY8PiNdXClcQCErIG5leHRncm91cD1kb3h5Z2VuUGFyYW0sZG94eWdlblJldHZhbCxkb3h5Z2VuQnJpZWZXb3JkLGRveHlnZW5Cb2xkLGRveHlnZW5CT3RoZXIsZG94eWdlbk90aGVyLGRveHlnZW5PdGhlclRPRE8sZG94eWdlbk90aGVyV0FSTixkb3h5Z2VuT3RoZXJCVUcsZG94eWdlblBhZ2UsZG94eWdlbkdyb3VwRGVmaW5lLGRveHlnZW5Db2RlUmVnaW9uLGRveHlnZW5WZXJiYXRpbVJlZ2lvbixkb3h5Z2VuRG90UmVnaW9uCiAgICIgZG94eWdlbk90aGVyTGluayxkb3h5Z2VuU3ltYm9sLGRveHlnZW5Gb3JtdWxhLGRveHlnZW5FcnJvclNwZWNpYWwsZG94eWdlblNwZWNpYWwuKldvcmQKICAgIgogICBzeW4gbWF0Y2ggZG94eWdlbkdyb3VwRGVmaW5lIGNvbnRhaW5lZCArQFxAPD1be31dKwpAQCAtMTY0LDggKzE3NSw4IEBACiAKICAgc3luIG1hdGNoIGRveHlnZW5FcnJvclNwZWNpYWwgY29udGFpbmVkICtccysKIAotICAiIE1hdGNoIFBhcm1hdGVycyBhbmQgcmV0dmFscyAoaGlsaWdodGluZyB0aGUgZmlyc3Qgd29yZCBhcyBzcGVjaWFsKS4KLSAgc3luIG1hdGNoIGRveHlnZW5QYXJhbURpcmVjdGlvbiBjb250YWluZWQgK1xbXChcPGluXD5cfFw8b3V0XD5cfCxcKVwrXF0rIG5leHRncm91cD1kb3h5Z2VuUGFyYW1OYW1lIHNraXB3aGl0ZQorICAiIE1hdGNoIHBhcmFtZXRlcnMgYW5kIHJldHZhbHMgKGhpZ2hsaWdodGluZyB0aGUgZmlyc3Qgd29yZCBhcyBzcGVjaWFsKS4KKyAgc3luIG1hdGNoIGRveHlnZW5QYXJhbURpcmVjdGlvbiBjb250YWluZWQgIlx2XFsoXHMqaW4+KChdXHMqXFt8XHMqLFxzKilvdXQ+KT18b3V0PigoXVxzKlxbfFxzKixccyopaW4+KT0pXF0iIG5leHRncm91cD1kb3h5Z2VuUGFyYW1OYW1lIHNraXB3aGl0ZQogICBzeW4ga2V5d29yZCBkb3h5Z2VuUGFyYW0gY29udGFpbmVkIHBhcmFtIG5leHRncm91cD1kb3h5Z2VuUGFyYW1OYW1lLGRveHlnZW5QYXJhbURpcmVjdGlvbiBza2lwd2hpdGUKICAgc3luIG1hdGNoIGRveHlnZW5QYXJhbU5hbWUgY29udGFpbmVkICtbQS1aYS16MC05XzpdXCsrIG5leHRncm91cD1kb3h5Z2VuU3BlY2lhbE11bHRpbGluZURlc2Mgc2tpcHdoaXRlCiAgIHN5biBrZXl3b3JkIGRveHlnZW5SZXR2YWwgY29udGFpbmVkIHJldHZhbCB0aHJvdyBleGNlcHRpb24gbmV4dGdyb3VwPWRveHlnZW5QYXJhbU5hbWUgc2tpcHdoaXRlCkBAIC0xNzksMTAgKzE5MCwxMCBAQAogICBcIHhtbG9ubHkgZW5keG1sb25seQogICBcIG5leHRncm91cD1kb3h5Z2VuU3BlY2lhbE9uZWxpbmVEZXNjCiAKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuQ29kZVJlZ2lvbiBjb250YWluZWQgbWF0Y2hncm91cD1kb3h5Z2VuT3RoZXIgc3RhcnQ9K1w8Y29kZVw+KyBtYXRjaGdyb3VwPWRveHlnZW5PdGhlciBlbmQ9K1tcXEBdXEA8PVw8ZW5kY29kZVw+KyBjb250YWlucz1kb3h5Z2VuQ29kZVJlZ2lvblNwZWNpYWwsZG94eWdlbkNvbnRpbnVlQ29tbWVudCxkb3h5Z2VuRXJyb3JDb21tZW50CisgIHN5biByZWdpb24gZG94eWdlbkNvZGVSZWdpb24gY29udGFpbmVkIG1hdGNoZ3JvdXA9ZG94eWdlbk90aGVyIHN0YXJ0PStcPGNvZGVcPisgbWF0Y2hncm91cD1kb3h5Z2VuT3RoZXIgZW5kPStbXFxAXVxAPD1cPGVuZGNvZGVcPisgY29udGFpbnM9ZG94eWdlbkNvZGVSZWdpb25TcGVjaWFsLGRveHlnZW5Db250aW51ZUNvbW1lbnQsZG94eWdlbkVycm9yQ29tbWVudCxATm9TcGVsbAogICBzeW4gbWF0Y2ggZG94eWdlbkNvZGVSZWdpb25TcGVjaWFsIGNvbnRhaW5lZCArW1xcQF1cKGVuZGNvZGVcPlwpXEA9KwogCi0gIHN5biByZWdpb24gZG94eWdlblZlcmJhdGltUmVnaW9uIGNvbnRhaW5lZCBtYXRjaGdyb3VwPWRveHlnZW5PdGhlciBzdGFydD0rXDx2ZXJiYXRpbVw+KyBtYXRjaGdyb3VwPWRveHlnZW5PdGhlciBlbmQ9K1tcXEBdXEA8PVw8ZW5kdmVyYmF0aW1cPisgY29udGFpbnM9ZG94eWdlblZlcmJhdGltUmVnaW9uU3BlY2lhbCxkb3h5Z2VuQ29udGludWVDb21tZW50LGRveHlnZW5FcnJvckNvbW1lbnQKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuVmVyYmF0aW1SZWdpb24gY29udGFpbmVkIG1hdGNoZ3JvdXA9ZG94eWdlbk90aGVyIHN0YXJ0PStcPHZlcmJhdGltXD4rIG1hdGNoZ3JvdXA9ZG94eWdlbk90aGVyIGVuZD0rW1xcQF1cQDw9XDxlbmR2ZXJiYXRpbVw+KyBjb250YWlucz1kb3h5Z2VuVmVyYmF0aW1SZWdpb25TcGVjaWFsLGRveHlnZW5Db250aW51ZUNvbW1lbnQsZG94eWdlbkVycm9yQ29tbWVudCxATm9TcGVsbAogICBzeW4gbWF0Y2ggZG94eWdlblZlcmJhdGltUmVnaW9uU3BlY2lhbCBjb250YWluZWQgK1tcXEBdXChlbmR2ZXJiYXRpbVw+XClcQD0rCiAKICAgaWYgZXhpc3RzKCdiOmN1cnJlbnRfc3ludGF4JykgCkBAIC0xOTksNyArMjEwLDcgQEAKICAgICB1bmxldCBiOmN1cnJlbnRfc3ludGF4CiAgIGVuZGlmCiAKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuRG90UmVnaW9uIGNvbnRhaW5lZCBtYXRjaGdyb3VwPWRveHlnZW5PdGhlciBzdGFydD0rXDxkb3RcPisgbWF0Y2hncm91cD1kb3h5Z2VuT3RoZXIgZW5kPStbXFxAXVxAPD1cPGVuZGRvdFw+KyBjb250YWlucz1kb3h5Z2VuRG90UmVnaW9uU3BlY2lhbCxkb3h5Z2VuRXJyb3JDb21tZW50LGRveHlnZW5Db250aW51ZUNvbW1lbnQsQERvdHgKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuRG90UmVnaW9uIGNvbnRhaW5lZCBtYXRjaGdyb3VwPWRveHlnZW5PdGhlciBzdGFydD0rXDxkb3RcPisgbWF0Y2hncm91cD1kb3h5Z2VuT3RoZXIgZW5kPStbXFxAXVxAPD1cPGVuZGRvdFw+KyBjb250YWlucz1kb3h5Z2VuRG90UmVnaW9uU3BlY2lhbCxkb3h5Z2VuRXJyb3JDb21tZW50LGRveHlnZW5Db250aW51ZUNvbW1lbnQsQE5vU3BlbGwsQERvdHgKICAgc3luIG1hdGNoIGRveHlnZW5Eb3RSZWdpb25TcGVjaWFsIGNvbnRhaW5lZCArW1xcQF1cKGVuZGRvdFw+XClcQD0rCiAKICAgIiBNYXRjaCBzaW5nbGUgbGluZSBpZGVudGlmaWVycy4KQEAgLTIxMCwxMyArMjIxLDEzIEBACiAgIHN5biBrZXl3b3JkIGRveHlnZW5PdGhlciBjb250YWluZWQgcGFyIG5leHRncm91cD1kb3h5Z2VuSGVhZGVyTGluZQogICBzeW4gcmVnaW9uIGRveHlnZW5IZWFkZXJMaW5lIHN0YXJ0PSsuKyBlbmQ9K14rIGNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPWRveHlnZW5TcGVjaWFsTXVsdGlsaW5lRGVzYwogCi0gIHN5biBrZXl3b3JkIGRveHlnZW5PdGhlciBjb250YWluZWQgYXJnIGF1dGhvciBkYXRlIGRlcHJlY2F0ZWQgbGkgcmV0dXJuIHNlZSBpbnZhcmlhbnQgbm90ZSBwb3N0IHByZSByZW1hcmtzIHNpbmNlIHRlc3QgbmV4dGdyb3VwPWRveHlnZW5TcGVjaWFsTXVsdGlsaW5lRGVzYworICBzeW4ga2V5d29yZCBkb3h5Z2VuT3RoZXIgY29udGFpbmVkIGFyZyBhdXRob3IgZGF0ZSBkZXByZWNhdGVkIGxpIHJldHVybiByZXR1cm5zIHNlZSBpbnZhcmlhbnQgbm90ZSBwb3N0IHByZSByZW1hcmtzIHNpbmNlIHRlc3QgbmV4dGdyb3VwPWRveHlnZW5TcGVjaWFsTXVsdGlsaW5lRGVzYwogICBzeW4ga2V5d29yZCBkb3h5Z2VuT3RoZXJUT0RPIGNvbnRhaW5lZCB0b2RvIGF0dGVudGlvbiBuZXh0Z3JvdXA9ZG94eWdlblNwZWNpYWxNdWx0aWxpbmVEZXNjCiAgIHN5biBrZXl3b3JkIGRveHlnZW5PdGhlcldBUk4gY29udGFpbmVkIHdhcm5pbmcgbmV4dGdyb3VwPWRveHlnZW5TcGVjaWFsTXVsdGlsaW5lRGVzYwogICBzeW4ga2V5d29yZCBkb3h5Z2VuT3RoZXJCVUcgY29udGFpbmVkIGJ1ZyBuZXh0Z3JvdXA9ZG94eWdlblNwZWNpYWxNdWx0aWxpbmVEZXNjCiAKLSAgIiBIYW5kbGUgXGxpbmssIFxlbmRsaW5rLCBoaWxpZ2h0aW5nIHRoZSBsaW5rLXRvIGFuZCB0aGUgbGluayB0ZXh0IGJpdHMgc2VwYXJhdGVseS4KLSAgc3luIHJlZ2lvbiBkb3h5Z2VuT3RoZXJMaW5rIG1hdGNoZ3JvdXA9ZG94eWdlbk90aGVyIHN0YXJ0PStsaW5rKyBlbmQ9K1tcQF1cQDw9ZW5kbGlua1w+KyBjb250YWluZWQgY29udGFpbnM9ZG94eWdlbkxpbmtXb3JkLGRveHlnZW5Db250aW51ZUNvbW1lbnQsZG94eWdlbkxpbmtFcnJvcixkb3h5Z2VuRW5kbGlua1NwZWNpYWwKKyAgIiBIYW5kbGUgXGxpbmssIFxlbmRsaW5rLCBoaWdobGlnaHRpbmcgdGhlIGxpbmstdG8gYW5kIHRoZSBsaW5rIHRleHQgYml0cyBzZXBhcmF0ZWx5LgorICBzeW4gcmVnaW9uIGRveHlnZW5PdGhlckxpbmsgbWF0Y2hncm91cD1kb3h5Z2VuT3RoZXIgc3RhcnQ9K1w8bGlua1w+KyBlbmQ9K1tcQF1cQDw9ZW5kbGlua1w+KyBjb250YWluZWQgY29udGFpbnM9ZG94eWdlbkxpbmtXb3JkLGRveHlnZW5Db250aW51ZUNvbW1lbnQsZG94eWdlbkxpbmtFcnJvcixkb3h5Z2VuRW5kbGlua1NwZWNpYWwKICAgc3luIG1hdGNoIGRveHlnZW5FbmRsaW5rU3BlY2lhbCBjb250YWluZWQgK1tcXEBdXHplZW5kbGlua1w+KwogCiAgIHN5biBtYXRjaCBkb3h5Z2VuTGlua1dvcmQgIltfYS16QS1aOiMoKV1bX2EtejAtOUEtWjojKCldKlw+IiBjb250YWluZWQgc2tpcG5sIG5leHRncm91cD1kb3h5Z2VuTGlua1Jlc3QsZG94eWdlbkNvbnRpbnVlTGlua0NvbW1lbnQKQEAgLTIzMiwxMiArMjQzLDEyIEBACiAgIHN5biBtYXRjaCBkb3h5Z2VuUGFnZSAiW1xcQF1wYWdlXD4ibWU9cysxIGNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPWRveHlnZW5QYWdlUGFnZQogICBzeW4ga2V5d29yZCBkb3h5Z2VuUGFnZVBhZ2UgcGFnZSBjb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1kb3h5Z2VuUGFnZUlkZW50CiAgIHN5biByZWdpb24gZG94eWdlblBhZ2VEZXNjICBzdGFydD0rLlwrKyBlbmQ9KyQrIGNvbnRhaW5lZCBza2lwd2hpdGUgY29udGFpbnM9ZG94eWdlblNtYWxsU3BlY2lhbCxAZG94eWdlbkh0bWxHcm91cCBrZWVwZW5kIHNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPWRveHlnZW5Cb2R5Ci0gIHN5biBtYXRjaCBkb3h5Z2VuUGFnZUlkZW50ICJcPFthLXpBLVowLTldXCtcPiIgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuUGFnZURlc2MKKyAgc3luIG1hdGNoIGRveHlnZW5QYWdlSWRlbnQgIlw8W2EtekEtWl8wLTldXCtcPiIgY29udGFpbmVkIG5leHRncm91cD1kb3h5Z2VuUGFnZURlc2MKIAogICAiIEhhbmRsZSBzZWN0aW9uCiAgIHN5biBrZXl3b3JkIGRveHlnZW5PdGhlciBkZWZncm91cCBzZWN0aW9uIHN1YnNlY3Rpb24gc3Vic3Vic2VjdGlvbiB3ZWFrZ3JvdXAgY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9ZG94eWdlblNwZWNpYWxJZGVudAogICBzeW4gcmVnaW9uIGRveHlnZW5TcGVjaWFsU2VjdGlvbkRlc2MgIHN0YXJ0PSsuXCsrIGVuZD0rJCsgY29udGFpbmVkIHNraXB3aGl0ZSBjb250YWlucz1kb3h5Z2VuU21hbGxTcGVjaWFsLEBkb3h5Z2VuSHRtbEdyb3VwIGtlZXBlbmQgc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9ZG94eWdlbkNvbnRpbnVlQ29tbWVudAotICBzeW4gbWF0Y2ggZG94eWdlblNwZWNpYWxJZGVudCAiXDxbYS16QS1aMC05XVwrXD4iIGNvbnRhaW5lZCBuZXh0Z3JvdXA9ZG94eWdlblNwZWNpYWxTZWN0aW9uRGVzYworICBzeW4gbWF0Y2ggZG94eWdlblNwZWNpYWxJZGVudCAiXDxbYS16QS1aXzAtOV1cK1w+IiBjb250YWluZWQgbmV4dGdyb3VwPWRveHlnZW5TcGVjaWFsU2VjdGlvbkRlc2MKIAogICAiIERvZXMgdGhlIG9uZS1saW5lIGRlc2NyaXB0aW9uIGZvciB0aGUgb25lLWxpbmUgdHlwZSBpZGVudGlmaWVycy4KICAgc3luIHJlZ2lvbiBkb3h5Z2VuU3BlY2lhbFR5cGVPbmVsaW5lRGVzYyAgc3RhcnQ9Ky5cKysgZW5kPSskKyBjb250YWluZWQgc2tpcHdoaXRlIGNvbnRhaW5zPWRveHlnZW5TbWFsbFNwZWNpYWwsQGRveHlnZW5IdG1sR3JvdXAga2VlcGVuZApAQCAtMjQ2LDcgKzI1Nyw3IEBACiAgICIgSGFuZGxlIHRoZSBtdWx0aWxpbmUgZGVzY3JpcHRpb24gZm9yIHRoZSBtdWx0aWxpbmUgdHlwZSBpZGVudGlmaWVycy4KICAgIiBDb250aW51ZSB1bnRpbCBhbiAnZW1wdHknIGxpbmUgKGNhbiBjb250YWluIGEgJyonIGNvbnRpbnVhdGlvbikgb3IgdW50aWwgdGhlCiAgICIgbmV4dCB3aG9sZS1saW5lIEAgY29tbWFuZCBcIGNvbW1hbmQuCi0gIHN5biByZWdpb24gZG94eWdlblNwZWNpYWxNdWx0aWxpbmVEZXNjICBzdGFydD0rLlwrKyBza2lwPSteXHMqXChcKi9cQCFccypcKVw9XChcPFx8W0BcXF1cPFwoW3BjYmVhXVw+XHxlbVw+XHxyZWZcfGxpbmtcPlw+XHxmXCRcfFskXFwmPD4jXVwpXHxbXiBcdFxcQCpdXCkrIGVuZD0rXisgY29udGFpbmVkIGNvbnRhaW5zPWRveHlnZW5TcGVjaWFsQ29udGludWVDb21tZW50LGRveHlnZW5TbWFsbFNwZWNpYWwsZG94eWdlbkh5cGVyTGluayxkb3h5Z2VuSGFzaExpbmssQGRveHlnZW5IdG1sR3JvdXAgIHNraXB3aGl0ZSBrZWVwZW5kCisgIHN5biByZWdpb24gZG94eWdlblNwZWNpYWxNdWx0aWxpbmVEZXNjICBzdGFydD0rLlwrKyBza2lwPSteXHMqXChcKi9cQCFccypcKVw9XChcPFx8W0BcXF1cPFwoW25wY2JlYV1cPlx8ZW1cPlx8cmVmXHxsaW5rXD5cPlx8ZlwkXHxbJFxcJjw+I11cKVx8W14gXHRcXEAqXVwpKyBlbmQ9K14rIGNvbnRhaW5lZCBjb250YWlucz1kb3h5Z2VuU3BlY2lhbENvbnRpbnVlQ29tbWVudCxkb3h5Z2VuU21hbGxTcGVjaWFsLGRveHlnZW5IeXBlckxpbmssZG94eWdlbkhhc2hMaW5rLEBkb3h5Z2VuSHRtbEdyb3VwLEBTcGVsbCAgc2tpcHdoaXRlIGtlZXBlbmQKICAgc3luIG1hdGNoIGRveHlnZW5TcGVjaWFsQ29udGludWVDb21tZW50IGNvbnRhaW5lZCArXlxzKlwqL1xAIVxzKisgbmV4dGdyb3VwPWRveHlnZW5TcGVjaWFsIHNraXB3aGl0ZQogCiAgICIgSGFuZGxlIHNwZWNpYWwgY2FzZXMgICdib2xkJyBhbmQgJ2dyb3VwJwpAQCAtMjU3LDcgKzI2OCw3IEBACiAgIHN5biBrZXl3b3JkIGRveHlnZW5Hcm91cE5hbWUgY29udGFpbmVkICtca1wrKyBuZXh0Z3JvdXA9ZG94eWdlblNwZWNpYWxPbmVsaW5lRGVzYyBza2lwd2hpdGUKIAogICAiIEhhbmRsZSBzcGVjaWFsIHN5bWJvbCBpZGVudGlmaWVycyAgQCQsIEBcLCBAJCBldGMKLSAgc3luIG1hdGNoIGRveHlnZW5TeW1ib2wgY29udGFpbmVkICtbJFxcJjw+I10rCisgIHN5biBtYXRjaCBkb3h5Z2VuU3ltYm9sIGNvbnRhaW5lZCArWyRcXCY8PiNuXSsKIAogICAiIFNpbXBsaXN0aWMgaGFuZGxpbmcgb2YgZm9ybXVsYSByZWdpb25zCiAgIHN5biByZWdpb24gZG94eWdlbkZvcm11bGEgY29udGFpbmVkIG1hdGNoZ3JvdXA9ZG94eWdlbkZvcm11bGFFbmRzIHN0YXJ0PStmXCQrIGVuZD0rW0BcXF1mXCQrIGNvbnRhaW5zPWRveHlnZW5Gb3JtdWxhU3BlY2lhbCxkb3h5Z2VuRm9ybXVsYU9wZXJhdG9yCkBAIC0yODksMzcgKzMwMCwzNyBAQAogICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sTGluayBjb250YWluZWQgc3RhcnQ9KzxbYUFdXD5ccypcKFxuXHMqXCpccypcKVw9XChcKG5hbWVcfGhyZWZcKT1cKCJbXiJdKiJcfCdbXiddKidcKVwpXD1ccyo+KyBlbmQ9KzwvW2FBXT4rbWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcAogICBoaSBsaW5rIGRveHlnZW5IdG1sTGluayBVbmRlcmxpbmVkCiAKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEJvbGQgY29udGFpbmVkIHN0YXJ0PSJcYzxiXD4iIGVuZD0iXGM8L2I+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxCb2xkVW5kZXJsaW5lLGRveHlnZW5IdG1sQm9sZEl0YWxpYwotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPHN0cm9uZ1w+IiBlbmQ9IlxjPC9zdHJvbmc+Im1lPWUtOSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxCb2xkVW5kZXJsaW5lLGRveHlnZW5IdG1sQm9sZEl0YWxpYwotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sQm9sZFVuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEJvbGRVbmRlcmxpbmVJdGFsaWMKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEJvbGRJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxpXD4iIGVuZD0iXGM8L2k+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxCb2xkSXRhbGljVW5kZXJsaW5lCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkSXRhbGljIGNvbnRhaW5lZCBzdGFydD0iXGM8ZW1cPiIgZW5kPSJcYzwvZW0+Im1lPWUtNSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxCb2xkSXRhbGljVW5kZXJsaW5lCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkVW5kZXJsaW5lSXRhbGljIGNvbnRhaW5lZCBzdGFydD0iXGM8aVw+IiBlbmQ9IlxjPC9pPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkVW5kZXJsaW5lSXRhbGljIGNvbnRhaW5lZCBzdGFydD0iXGM8ZW1cPiIgZW5kPSJcYzwvZW0+Im1lPWUtNSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEJvbGRJdGFsaWNVbmRlcmxpbmUgY29udGFpbmVkIHN0YXJ0PSJcYzx1XD4iIGVuZD0iXGM8L3U+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxCb2xkVW5kZXJsaW5lSXRhbGljCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8Ylw+IiBlbmQ9IlxjPC9iPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLGRveHlnZW5IdG1sQm9sZFVuZGVybGluZSxkb3h5Z2VuSHRtbEJvbGRJdGFsaWMsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8c3Ryb25nXD4iIGVuZD0iXGM8L3N0cm9uZz4ibWU9ZS05IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEJvbGRVbmRlcmxpbmUsZG94eWdlbkh0bWxCb2xkSXRhbGljLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sQm9sZFVuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEJvbGRVbmRlcmxpbmVJdGFsaWMsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkSXRhbGljIGNvbnRhaW5lZCBzdGFydD0iXGM8aVw+IiBlbmQ9IlxjPC9pPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLGRveHlnZW5IdG1sQm9sZEl0YWxpY1VuZGVybGluZSxAU3BlbGwKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEJvbGRJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxlbVw+IiBlbmQ9IlxjPC9lbT4ibWU9ZS01IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEJvbGRJdGFsaWNVbmRlcmxpbmUsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxCb2xkVW5kZXJsaW5lSXRhbGljIGNvbnRhaW5lZCBzdGFydD0iXGM8aVw+IiBlbmQ9IlxjPC9pPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sQm9sZFVuZGVybGluZUl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGVtXD4iIGVuZD0iXGM8L2VtPiJtZT1lLTUgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sQm9sZEl0YWxpY1VuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEJvbGRVbmRlcmxpbmVJdGFsaWMsQFNwZWxsCiAKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbFVuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbFVuZGVybGluZUJvbGQsZG94eWdlbkh0bWxVbmRlcmxpbmVJdGFsaWMKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbFVuZGVybGluZUJvbGQgY29udGFpbmVkIHN0YXJ0PSJcYzxiXD4iIGVuZD0iXGM8L2I+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxVbmRlcmxpbmVCb2xkSXRhbGljCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8c3Ryb25nXD4iIGVuZD0iXGM8L3N0cm9uZz4ibWU9ZS05IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbFVuZGVybGluZUJvbGRJdGFsaWMKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbFVuZGVybGluZUl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGlcPiIgZW5kPSJcYzwvaT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxodG1VbmRlcmxpbmVJdGFsaWNCb2xkCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxlbVw+IiBlbmQ9IlxjPC9lbT4ibWU9ZS01IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxodG1VbmRlcmxpbmVJdGFsaWNCb2xkCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVJdGFsaWNCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8Ylw+IiBlbmQ9IlxjPC9iPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVJdGFsaWNCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8c3Ryb25nXD4iIGVuZD0iXGM8L3N0cm9uZz4ibWU9ZS05IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcAotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sVW5kZXJsaW5lQm9sZEl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGlcPiIgZW5kPSJcYzwvaT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcAotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sVW5kZXJsaW5lQm9sZEl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGVtXD4iIGVuZD0iXGM8L2VtPiJtZT1lLTUgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmUgY29udGFpbmVkIHN0YXJ0PSJcYzx1XD4iIGVuZD0iXGM8L3U+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxVbmRlcmxpbmVCb2xkLGRveHlnZW5IdG1sVW5kZXJsaW5lSXRhbGljLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sVW5kZXJsaW5lQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPGJcPiIgZW5kPSJcYzwvYj4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbFVuZGVybGluZUJvbGRJdGFsaWMsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8c3Ryb25nXD4iIGVuZD0iXGM8L3N0cm9uZz4ibWU9ZS05IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbFVuZGVybGluZUJvbGRJdGFsaWMsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxpXD4iIGVuZD0iXGM8L2k+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsaHRtVW5kZXJsaW5lSXRhbGljQm9sZCxAU3BlbGwKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbFVuZGVybGluZUl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGVtXD4iIGVuZD0iXGM8L2VtPiJtZT1lLTUgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLGh0bVVuZGVybGluZUl0YWxpY0JvbGQsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVJdGFsaWNCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8Ylw+IiBlbmQ9IlxjPC9iPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sVW5kZXJsaW5lSXRhbGljQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPHN0cm9uZ1w+IiBlbmQ9IlxjPC9zdHJvbmc+Im1lPWUtOSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxVbmRlcmxpbmVCb2xkSXRhbGljIGNvbnRhaW5lZCBzdGFydD0iXGM8aVw+IiBlbmQ9IlxjPC9pPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sVW5kZXJsaW5lQm9sZEl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGVtXD4iIGVuZD0iXGM8L2VtPiJtZT1lLTUgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLEBTcGVsbAogCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxpXD4iIGVuZD0iXGM8L2k+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxJdGFsaWNCb2xkLGRveHlnZW5IdG1sSXRhbGljVW5kZXJsaW5lCi0gIHN5biByZWdpb24gZG94eWdlbkh0bWxJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxlbVw+IiBlbmQ9IlxjPC9lbT4ibWU9ZS01IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcAotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPGJcPiIgZW5kPSJcYzwvYj4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEl0YWxpY0JvbGRVbmRlcmxpbmUKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEl0YWxpY0JvbGQgY29udGFpbmVkIHN0YXJ0PSJcYzxzdHJvbmdcPiIgZW5kPSJcYzwvc3Ryb25nPiJtZT1lLTkgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLGRveHlnZW5IdG1sSXRhbGljQm9sZFVuZGVybGluZQotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljQm9sZFVuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcAotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljVW5kZXJsaW5lIGNvbnRhaW5lZCBzdGFydD0iXGM8dVw+IiBlbmQ9IlxjPC91PiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLGRveHlnZW5IdG1sSXRhbGljVW5kZXJsaW5lQm9sZAotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljVW5kZXJsaW5lQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPGJcPiIgZW5kPSJcYzwvYj4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcAotICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljVW5kZXJsaW5lQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPHN0cm9uZ1w+IiBlbmQ9IlxjPC9zdHJvbmc+Im1lPWUtOSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEl0YWxpYyBjb250YWluZWQgc3RhcnQ9IlxjPGlcPiIgZW5kPSJcYzwvaT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEl0YWxpY0JvbGQsZG94eWdlbkh0bWxJdGFsaWNVbmRlcmxpbmUsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxJdGFsaWMgY29udGFpbmVkIHN0YXJ0PSJcYzxlbVw+IiBlbmQ9IlxjPC9lbT4ibWU9ZS01IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxAU3BlbGwKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEl0YWxpY0JvbGQgY29udGFpbmVkIHN0YXJ0PSJcYzxiXD4iIGVuZD0iXGM8L2I+Im1lPWUtNCBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxJdGFsaWNCb2xkVW5kZXJsaW5lLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPHN0cm9uZ1w+IiBlbmQ9IlxjPC9zdHJvbmc+Im1lPWUtOSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsZG94eWdlbkh0bWxJdGFsaWNCb2xkVW5kZXJsaW5lLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljQm9sZFVuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxAU3BlbGwKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbEl0YWxpY1VuZGVybGluZSBjb250YWluZWQgc3RhcnQ9IlxjPHVcPiIgZW5kPSJcYzwvdT4ibWU9ZS00IGNvbnRhaW5zPUBkb3h5Z2VuSHRtbFRvcCxkb3h5Z2VuSHRtbEl0YWxpY1VuZGVybGluZUJvbGQsQFNwZWxsCisgIHN5biByZWdpb24gZG94eWdlbkh0bWxJdGFsaWNVbmRlcmxpbmVCb2xkIGNvbnRhaW5lZCBzdGFydD0iXGM8Ylw+IiBlbmQ9IlxjPC9iPiJtZT1lLTQgY29udGFpbnM9QGRveHlnZW5IdG1sVG9wLEBTcGVsbAorICBzeW4gcmVnaW9uIGRveHlnZW5IdG1sSXRhbGljVW5kZXJsaW5lQm9sZCBjb250YWluZWQgc3RhcnQ9IlxjPHN0cm9uZ1w+IiBlbmQ9IlxjPC9zdHJvbmc+Im1lPWUtOSBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsQFNwZWxsCiAKLSAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbENvZGUgY29udGFpbmVkIHN0YXJ0PSJcYzxjb2RlXD4iIGVuZD0iXGM8L2NvZGU+Im1lPWUtNyBjb250YWlucz1AZG94eWdlbkh0bWxUb3AKKyAgc3luIHJlZ2lvbiBkb3h5Z2VuSHRtbENvZGUgY29udGFpbmVkIHN0YXJ0PSJcYzxjb2RlXD4iIGVuZD0iXGM8L2NvZGU+Im1lPWUtNyBjb250YWlucz1AZG94eWdlbkh0bWxUb3AsQE5vU3BlbGwKIAotICAiIFByZXZlbnQgdGhlIGRveHlnZW4gY29udGFpbmVkIG1hdGNoZXMgZnJvbSBsZWFraW5nIGludG8gdGhlIGMgZ3JvdXBzLgorICAiIFByZXZlbnQgdGhlIGRveHlnZW4gY29udGFpbmVkIG1hdGNoZXMgZnJvbSBsZWFraW5nIGludG8gdGhlIGMvcmMgZ3JvdXBzLgogICBzeW4gY2x1c3RlciBjUGFyZW5Hcm91cCBhZGQ9ZG94eWdlbi4qCiAgIHN5biBjbHVzdGVyIGNQYXJlbkdyb3VwIHJlbW92ZT1kb3h5Z2VuQ29tbWVudCxkb3h5Z2VuQ29tbWVudEwKICAgc3luIGNsdXN0ZXIgY1ByZVByb2NHcm91cCBhZGQ9ZG94eWdlbi4qCkBAIC0zODksMTAgKzQwMCwxNiBAQAogICAgICAgICAgICAgZW5kaWYKIAogICAgICAgICAgIGVsc2VpZiBoYXMoJ2d1aV93aW4zMicpIHx8IGhhcygnZ3VpX3dpbjE2JykgfHwgaGFzKCdndWlfd2luOTUnKQotICAgICAgICAgICAgaWYgJmd1aWZvbnQgPT0gJycKLSAgICAgICAgICAgICAgbGV0IGZvbnQ9J2ZvbnQ9THVjaWRhX0NvbnNvbGU6aDEwJworCisgICAgICAgICAgICBpZiBleGlzdHMoJ2c6ZG94eWdlbl91c2VfYml0c3JlYW1fdmVyYScpICAmJiBnOmRveHlnZW5fdXNlX2JpdHNyZWFtX3ZlcmEKKyAgICAgICAgICAgICAgbGV0IGZvbnRfYmFzZT0nQml0c3RyZWFtX1ZlcmFfU2Fuc19Nb25vJwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICBsZXQgZm9udD0nZm9udD0nLnN1YnN0aXR1dGUoJmd1aWZvbnQsICdeW146XSonLCAnTHVjaWRhX0NvbnNvbGUnLCcnKQorICAgICAgICAgICAgICBsZXQgZm9udF9iYXNlPSdMdWNpZGFfQ29uc29sZScKKyAgICAgICAgICAgIGVuZGlmCisgICAgICAgICAgICBpZiAmZ3VpZm9udCA9PSAnJworICAgICAgICAgICAgICBsZXQgZm9udD0nZm9udD0nLmZvbnRfYmFzZS4nOmgxMCcKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgbGV0IGZvbnQ9J2ZvbnQ9Jy5tYXRjaHN0cihzdWJzdGl0dXRlKCZndWlmb250LCAnXlteOl0qJywgZm9udF9iYXNlLCcnKSwnW14sXSonKQogICAgICAgICAgICAgZW5kaWYKICAgICAgICAgICBlbHNlaWYgaGFzKCdndWlfYXRoZW5hJykgfHwgaGFzKCdndWlfZ3RrJykgfHwgJmd1aWZvbnQ9fideXCgtW14tXVwrXClcezE0fScKICAgICAgICAgICAgIGlmICZndWlmb250ID09ICcnCkBAIC00NTgsNiArNDc1LDcgQEAKIAogCiAgICAgU3luTGluayBkb3h5Z2VuQm9keSAgICAgICAgICAgICAgICAgICBDb21tZW50CisgICAgU3luTGluayBkb3h5Z2VuTGluZSAgICAgICAgICAgICAgICAgICBkb3h5Z2VuQm9keQogICAgIFN5bkxpbmsgZG94eWdlblRPRE8gICAgICAgICAgICAgICAgICAgVG9kbwogICAgIFN5bkxpbmsgZG94eWdlbk90aGVyVE9ETyAgICAgICAgICAgICAgVG9kbwogICAgIFN5bkxpbmsgZG94eWdlbk90aGVyV0FSTiAgICAgICAgICAgICAgVG9kbwpAQCAtNDczLDYgKzQ5MSw3IEBACiAgICAgU3luTGluayBkb3h5Z2VuRW5kbGlua1NwZWNpYWwgICAgICAgICBkb3h5Z2VuU3BlY2lhbAogICAgIFN5bkxpbmsgZG94eWdlbkNvZGVSZWdpb25TcGVjaWFsICAgICAgZG94eWdlblNwZWNpYWwKICAgICBTeW5MaW5rIGRveHlnZW5WZXJiYXRpbVJlZ2lvblNwZWNpYWwgIGRveHlnZW5TcGVjaWFsCisgICAgU3luTGluayBkb3h5Z2VuRG90UmVnaW9uU3BlY2lhbCAgICAgICBkb3h5Z2VuU3BlY2lhbAogICAgIFN5bkxpbmsgZG94eWdlbkdyb3VwRGVmaW5lICAgICAgICAgICAgZG94eWdlblBhcmFtCiAKICAgICBTeW5MaW5rIGRveHlnZW5TcGVjaWFsTXVsdGlsaW5lRGVzYyAgIGRveHlnZW5TcGVjaWFsT25lbGluZURlc2MKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZyZWViYXNpYy52aW0gYi9ydW50aW1lL3N5bnRheC9mcmVlYmFzaWMudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZTdmOWUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9mcmVlYmFzaWMudmltCkBAIC0wLDAgKzEsMjUyIEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZTogICAgRnJlZUJhc2ljCisiIE1haW50YWluZXI6ICBNYXJrIE1hbm5pbmcgPG1hcmtlbUBhaXJtYWlsLm5ldD4KKyIgVXBkYXRlZDogICAgIDEwLzIyLzIwMDYKKyIKKyIgRGVzY3JpcHRpb246CisiCisiCUJhc2VkIG9yaWdpbmFsbHkgb24gdGhlIHdvcmsgZG9uZSBieSBBbGxhbiBLZWxseSA8QWxsYW4uS2VsbHlAZWQuYWMudWs+CisiCVVwZGF0ZWQgYnkgTWFyayBNYW5uaW5nIDxtYXJrZW1AYWlybWFpbC5uZXQ+CisiCUFwcGxpZWQgRnJlZUJhc2ljIHN1cHBvcnQgdG8gdGhlIGFscmVhZHkgZXhjZWxsZW50IHN1cHBvcnQKKyIJZm9yIHN0YW5kYXJkIGJhc2ljIHN5bnRheCAobGlrZSBRQikuCisiCisiCUZpcnN0IHZlcnNpb24gYmFzZWQgb24gTWljcm8kc29mdCBRQkFTSUMgY2lyY2EKKyIJMTk4OSwgYXMgZG9jdW1lbnRlZCBpbiAnTGVhcm4gQkFTSUMgTm93JyBieQorIglIYWx2b3Jzb24mUnlnbXlyLiBNaWNyb3NvZnQgUHJlc3MgMTk4OS4gIFRoaXMgc3ludGF4IGZpbGUKKyIJbm90IGEgY29tcGxldGUgaW1wbGVtZW50YXRpb24geWV0LiAgU2VuZCBzdWdnZXN0aW9ucyB0bworIgl0aGUgbWFpbnRhaW5lci4KKyIKKyIJUXVpdCB3aGVuIGEgKGN1c3RvbSkgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkIChUYWtlbiBmcm9tIGMudmltKQorIgoraWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorIgorIglCZSBzdXJlIHRvIHR1cm4gb24gdGhlICJjYXNlIGlnbm9yZSIgc2luY2UgY3VycmVudCB2ZXJzaW9ucworIglvZiBmcmVlYmFzaWMgc3VwcG9ydCBib3RoIHVwcGVyIGFzIHdlbGwgYXMgbG93ZXJjYXNlCisiCWxldHRlcnMuIC0gTUVNIDEwLzEvMjAwNgorIgorc3luIGNhc2UgaWdub3JlCisiCisiCVRoaXMgbGlzdCBvZiBrZXl3b3JkcyBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIHRoZSBGcmVlQmFzaWMKKyIJdXNlcidzIGd1aWRlIGFzIHByZXNlbnRlZCBieSB0aGUgRnJlZUJhc2ljIG9ubGluZSBzaXRlLgorIgorc3luIGtleXdvcmQJZnJlZWJhc2ljQXJyYXlzCQkJRVJBU0UgTEJPVU5EIFJFRElNIFBSRVNFUlZFIFVCT1VORAorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNCaXRNYW5pcHVsYXRpb24JQklUIEJJVFJFU0VUIEJJVFNFVCBISUJZVEUgSElXT1JEIExPQllURSBMT1dPUkQgU0hMIFNIUgorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNDb21waWxlclN3aXRjaGVzCURFRkJZVEUgREVGREJMIERFRklOVCBERUZMTkcgREVGTE5HSU5UIERFRlNIT1JUIERFRlNORyBERUZTVFIKK3N5biBrZXl3b3JkCWZyZWViYXNpY0NvbXBpbGVyU3dpdGNoZXMJREVGVUJZVEUgREVGVUlOVCBERUZVTE5HSU5UIERFRlVTSE9SVAorc3luIG1hdGNoCWZyZWViYXNpY0NvbXBpbGVyU3dpdGNoZXMJIlw8b3B0aW9uXHMrXChCQVNFXHxCWVZBTFx8RFlOQU1JQ1x8RVNDQVBFXHxFWFBMSUNJVFx8Tk9LRVlXT1JEXClcPiIKK3N5biBtYXRjaAlmcmVlYmFzaWNDb21waWxlclN3aXRjaGVzCSJcPG9wdGlvblxzK1woUFJJVkFURVx8U1RBVElDXClcPiIKKworc3luIHJlZ2lvbglmcmVlYmFzaWNDb25kaXRpb25hbAkJc3RhcnQ9Ilxzb25ccysiIHNraXA9Ii4qIiBlbmQ9Imdvc3ViIgorc3luIHJlZ2lvbglmcmVlYmFzaWNDb25kaXRpb25hbAkJc3RhcnQ9Ilxzb25ccysiIHNraXA9Ii4qIiBlbmQ9ImdvdG8iCitzeW4gbWF0Y2gJZnJlZWJhc2ljQ29uZGl0aW9uYWwJCSJcPHNlbGVjdFxzK2Nhc2VcPiIKK3N5biBrZXl3b3JkCWZyZWViYXNpY0NvbmRpdGlvbmFsCQlpZiBpaWYgdGhlbiBjYXNlIGVsc2UgZWxzZWlmIHdpdGgKKworc3luIG1hdGNoCWZyZWViYXNpY0NvbnNvbGUJCSJcPG9wZW5ccytcKENPTlNcfEVSUlx8UElQRVx8U0NSTlwpXD4iCitzeW4ga2V5d29yZAlmcmVlYmFzaWNDb25zb2xlCQlCRUVQIENMUyBDU1JMSU4gTE9DQVRFIFBSSU5UIFBPUyBTUEMgVEFCIFZJRVcgV0lEVEgKKworc3luIGtleXdvcmQJZnJlZWJhc2ljRGF0YVR5cGVzCQlCWVRFIEFTIERJTSBDT05TVCBET1VCTEUgRU5VTSBJTlRFR0VSIExPTkcgTE9OR0lOVCBTSEFSRUQgU0hPUlQgU1RSSU5HCitzeW4ga2V5d29yZAlmcmVlYmFzaWNEYXRhVHlwZXMJCVNJTkdMRSBUWVBFIFVCWVRFIFVJTlRFR0VSIFVMT05HSU5UIFVOSU9OIFVOU0lHTkVEIFVTSE9SVCBXU1RSSU5HIFpTVFJJTkcKKworc3luIGtleXdvcmQJZnJlZWJhc2ljRGF0ZVRpbWUJCURBVEUgREFURUFERCBEQVRFRElGRiBEQVRFUEFSVCBEQVRFU0VSSUFMIERBVEVWQUxVRSBEQVkgSE9VUiBNSU5VVEUKK3N5biBrZXl3b3JkCWZyZWViYXNpY0RhdGVUaW1lCQlNT05USCBNT05USE5BTUUgTk9XIFNFQ09ORCBTRVREQVRFIFNFVFRJTUUgVElNRSBUSU1FU0VSSUFMIFRJTUVWQUxVRQorc3luIGtleXdvcmQJZnJlZWJhc2ljRGF0ZVRpbWUJCVRJTUVSIFlFQVIgV0VFS0RBWSBXRUVLREFZTkFNRQorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNEZWJ1ZwkJCUFTU0VSVCBTVE9QCisKK3N5biBrZXl3b3JkCWZyZWViYXNpY0Vycm9ySGFuZGxpbmcJCUVSUiBFUkwgRVJST1IgTE9DQUwgUkVTVU1FCitzeW4gbWF0Y2gJZnJlZWJhc2ljRXJyb3JIYW5kbGluZwkJIlw8cmVzdW1lXHMrbmV4dFw+Igorc3luIG1hdGNoCWZyZWViYXNpY0Vycm9ySGFuZGxpbmcJCSJcPG9uXHMrZXJyb3JcPiIKKworc3luIG1hdGNoCWZyZWViYXNpY0ZpbGVzCQkJIlw8Z2V0XHMrI1w+Igorc3luIG1hdGNoCWZyZWViYXNpY0ZpbGVzCQkJIlw8aW5wdXRccysjXD4iCitzeW4gbWF0Y2gJZnJlZWJhc2ljRmlsZXMJCQkiXDxsaW5lXHMraW5wdXRccysjXD4iCitzeW4gbWF0Y2gJZnJlZWJhc2ljRmlsZXMJCQkiXDxwdXRccysjXD4iCitzeW4ga2V5d29yZAlmcmVlYmFzaWNGaWxlcwkJCUFDQ0VTUyBBUFBFTkQgQklOQVJZIEJMT0FEIEJTQVZFIENMT1NFIEVPRiBGUkVFRklMRSBJTlBVVCBMT0MKK3N5biBrZXl3b3JkCWZyZWViYXNpY0ZpbGVzCQkJTE9DSyBMT0YgT1BFTiBPVVRQVVQgUkFORE9NIFJFU0VUIFNFRUsgVU5MT0NLIFdSSVRFCisKK3N5biBrZXl3b3JkCWZyZWViYXNpY0Z1bmN0aW9ucwkJQUxJQVMgQU5ZIEJZUkVGIEJZVkFMIENBTEwgQ0RFQ0wgQ09OU1RSVUNUT1IgREVTVFJVQ1RPUgorc3luIGtleXdvcmQJZnJlZWJhc2ljRnVuY3Rpb25zCQlERUNMQVJFIEZVTkNUSU9OIExJQiBPVkVSTE9BRCBQQVNDQUwgU1RBVElDIFNVQiBTVERDQUxMCitzeW4ga2V5d29yZAlmcmVlYmFzaWNGdW5jdGlvbnMJCVZBX0FSRyBWQV9GSVJTVCBWQV9ORVhUCisKK3N5biBtYXRjaAlmcmVlYmFzaWNHcmFwaGljcwkJIlw8cGFsZXR0ZVxzK2dldFw+Igorc3luIGtleXdvcmQJZnJlZWJhc2ljR3JhcGhpY3MJCUFMUEhBIENJUkNMRSBDTFMgQ09MT1IgQ1VTVE9NIERSQVcgRkxJUCBHRVQKK3N5biBrZXl3b3JkCWZyZWViYXNpY0dyYXBoaWNzCQlJTUFHRUNSRUFURSBJTUFHRURFU1RST1kgTElORSBQQUlOVCBQQUxFVFRFIFBDT1BZIFBNQVAgUE9JTlQKK3N5biBrZXl3b3JkCWZyZWViYXNpY0dyYXBoaWNzCQlQUkVTRVQgUFNFVCBQVVQgUkdCIFJHQkEgU0NSRUVOIFNDUkVFTkNPUFkgU0NSRUVOSU5GTyBTQ1JFRU5MSVNUCitzeW4ga2V5d29yZAlmcmVlYmFzaWNHcmFwaGljcwkJU0NSRUVOTE9DSyBTQ1JFRU5QVFIgU0NSRUVOUkVTIFNDUkVFTlNFVCBTQ1JFRU5TWU5DIFNDUkVFTlVOTE9DSworc3luIGtleXdvcmQJZnJlZWJhc2ljR3JhcGhpY3MJCVRSQU5TIFVTSU5HIFZJRVcgV0lORE9XCisKK3N5biBtYXRjaAlmcmVlYmFzaWNIYXJkd2FyZQkJIlw8b3BlblxzK2NvbVw+Igorc3luIGtleXdvcmQJZnJlZWJhc2ljSGFyZHdhcmUJCUlOUCBPVVQgV0FJVCBMUFQgTFBPUyBMUFJJTlQKKworc3luIGtleXdvcmQJZnJlZWJhc2ljTG9naWNhbAkJQU5EIEVRViBJTVAgT1IgTk9UIFhPUgorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNNYXRoCQkJQUJTIEFDT1MgQVNJTiBBVEFOMiBBVE4gQ09TIEVYUCBGSVggSU5UIExPRyBNT0QgUkFORE9NSVpFCitzeW4ga2V5d29yZAlmcmVlYmFzaWNNYXRoCQkJUk5EIFNHTiBTSU4gU1FSIFRBTgorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNNZW1vcnkJCQlBTExPQ0FURSBDQUxMT0NBVEUgQ0xFQVIgREVBTExPQ0FURSBGSUVMRCBGUkUgUEVFSyBQT0tFIFJFQUxMT0NBVEUKKworc3luIGtleXdvcmQJZnJlZWJhc2ljTWlzYwkJCUFTTSBEQVRBIExFVCBUTyBSRUFEIFJFU1RPUkUgU0laRU9GIFNXQVAgT0ZGU0VUT0YKKworc3luIGtleXdvcmQJZnJlZWJhc2ljTW9kdWxhcml6aW5nCQlDSEFJTiBDT01NT04gRVhQT1JUIEVYVEVSTiBEWUxJQkZSRUUgRFlMSUJMT0FEIERZTElCU1lNQk9MCitzeW4ga2V5d29yZAlmcmVlYmFzaWNNb2R1bGFyaXppbmcJCVBSSVZBVEUgUFVCTElDCisKK3N5biBrZXl3b3JkCWZyZWViYXNpY011bHRpdGhyZWFkaW5nCQlNVVRFWENSRUFURSBNVVRFWERFU1RST1kgTVVURVhMT0NLIE1VVEVYVU5MT0NLIFRIUkVBRENSRUFURSBUSFJFQURXQUlUCisKK3N5biBrZXl3b3JkCWZyZWViYXNpY1NoZWxsCQkJQ0hESVIgRElSIENPTU1BTkQgRU5WSVJPTiBFWEVDIEVYRVBBVEggS0lMTCBOQU1FIE1LRElSIFJNRElSIFJVTgorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNFbnZpcm9uCQlTSEVMTCBTWVNURU0gV0lORE9XVElUTEUgUE9JTlRFUlMKKworc3luIGtleXdvcmQJZnJlZWJhc2ljTG9vcHMJCQlGT1IgTE9PUCBXSElMRSBXRU5EIERPIENPTlRJTlVFIFNURVAgVU5USUwgbmV4dAorCitzeW4gbWF0Y2gJZnJlZWJhc2ljSW5jbHVkZQkJIlw8I1xzKlwoaW5jbGliXHxpbmNsdWRlXClcPiIKK3N5biBtYXRjaAlmcmVlYmFzaWNJbmNsdWRlCQkiXDxcJFxzKmluY2x1ZGVcPiIKKworc3luIGtleXdvcmQJZnJlZWJhc2ljUG9pbnRlcgkJUFJPQ1BUUiBQVFIgU0FERCBTVFJQVFIgVkFSUFRSCisKK3N5biBrZXl3b3JkCWZyZWViYXNpY1ByZWRlZmluZWQJCV9fREFURV9fIF9fRkJfRE9TX18gX19GQl9MSU5VWF9fIF9fRkJfTUFJTl9fIF9fRkJfTUlOX1ZFUlNJT05fXworc3luIGtleXdvcmQJZnJlZWJhc2ljUHJlZGVmaW5lZAkJX19GQl9TSUdOQVRVUkVfXyBfX0ZCX1ZFUlNJT05fXyBfX0ZCX1dJTjMyX18gX19GQl9WRVJfTUFKT1JfXworc3luIGtleXdvcmQJZnJlZWJhc2ljUHJlZGVmaW5lZAkJX19GQl9WRVJfTUlOT1JfXyBfX0ZCX1ZFUl9QQVRDSF9fIF9fRklMRV9fIF9fRlVOQ1RJT05fXworc3luIGtleXdvcmQJZnJlZWJhc2ljUHJlZGVmaW5lZAkJX19MSU5FX18gX19USU1FX18KKworc3luIG1hdGNoCWZyZWViYXNpY1ByZVByb2Nlc3NvcgkJIlw8XiNccypcKGRlZmluZVx8dW5kZWZcKVw+Igorc3luIG1hdGNoCWZyZWViYXNpY1ByZVByb2Nlc3NvcgkJIlw8XiNccypcKGlmZGVmXHxpZm5kZWZcfGVsc2VcfGVsc2VpZlx8ZW5kaWZcfGlmXClcPiIKK3N5biBtYXRjaAlmcmVlYmFzaWNQcmVQcm9jZXNzb3IJCSJcPCNccyplcnJvclw+Igorc3luIG1hdGNoCWZyZWViYXNpY1ByZVByb2Nlc3NvcgkJIlw8I1xzKlwocHJpbnRcfGR5bmFtaWNcfHN0YXRpY1wpXD4iCitzeW4ga2V5d29yZAlmcmVlYmFzaWNQcmVQcm9jZXNzb3IJCURFRklORUQgT05DRQorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNQcm9ncmFtRmxvdwkJRU5EIEVYSVQgR09TVUIgR09UTworc3luIGtleXdvcmQJZnJlZWJhc2ljUHJvZ3JhbUZsb3cJCUlTIFJFVFVSTiBTQ09QRSBTTEVFUAorCitzeW4ga2V5d29yZAlmcmVlYmFzaWNTdHJpbmcJCQlJTlNUUiBMQ0FTRSBMRUZUIExFTiBMU0VUIExUUklNIE1JRCBSSUdIVCBSU0VUIFJUUklNCitzeW4ga2V5d29yZAlmcmVlYmFzaWNTdHJpbmcJCQlTUEFDRSBTVFJJTkcgVFJJTSBVQ0FTRSBBU0MgQklOIENIUiBDVkQgQ1ZJIENWTCBDVkxPTkdJTlQKK3N5biBrZXl3b3JkCWZyZWViYXNpY1N0cmluZwkJCUNWUyBDVlNIT1JUIEZPUk1BVCBIRVggTUtEIE1LSSBNS0wgTUtMT05HSU5UIE1LUyBNS1NIT1JUCitzeW4ga2V5d29yZAlmcmVlYmFzaWNTdHJpbmcJCQlPQ1QgU1RSIFZBTCBWQUxMTkcgVkFMSU5UIFZBTFVJTlQgVkFMVUxORworCitzeW4ga2V5d29yZAlmcmVlYmFzaWNUeXBlQ2FzdGluZwkJQ0FTVCBDQllURSBDREJMIENJTlQgQ0xORyBDTE5HSU5UIENQVFIgQ1NIT1JUIENTSUdOIENTTkcKK3N5biBrZXl3b3JkCWZyZWViYXNpY1R5cGVDYXN0aW5nCQlDVUJZVEUgQ1VJTlQgQ1VMTkdJTlQgQ1VOU0cgQ1VSRElSIENVU0hPUlQKKworc3luIG1hdGNoCWZyZWViYXNpY1VzZXJJbnB1dAkJIlw8bGluZVxzK2lucHV0XD4iCitzeW4ga2V5d29yZAlmcmVlYmFzaWNVc2VySW5wdXQJCUdFVEpPWVNUSUNLIEdFVEtFWSBHRVRNT1VTRSBJTktFWSBJTlBVVCBNVUxUSUtFWSBTRVRNT1VTRQorIgorIglEbyB0aGUgQmFzaWMgdmFyaWFibGVzIG5hbWVzIGZpcnN0LiAgVGhpcyBpcyBiZWNhdXNlIGl0CisiCWlzIHRoZSBtb3N0IGluY2x1c2l2ZSBvZiB0aGUgdGVzdHMuICBMYXRlciBvbiB3ZSBjaGFuZ2UKKyIJdGhpcyBzbyB0aGUgaWRlbnRpZmllcnMgYXJlIHNwbGl0IHVwIGludG8gdGhlIHZhcmlvdXMKKyIJdHlwZXMgb2YgaWRlbnRpZmllcnMgbGlrZSBmdW5jdGlvbnMsIGJhc2ljIGNvbW1hbmRzIGFuZAorIglzdWNoLiBNRU0gOS85LzIwMDYKKyIKK3N5biBtYXRjaAlmcmVlYmFzaWNJZGVudGlmaWVyCQkiXDxbYS16QS1aX11bYS16QS1aMC05X10qXD4iCitzeW4gbWF0Y2gJZnJlZWJhc2ljR2VuZXJpY0Z1bmN0aW9uCSJcPFthLXpBLVpfXVthLXpBLVowLTlfXSpcPlxzKigibWU9ZS0xLGhlPWUtMQorIgorIglGdW5jdGlvbiBsaXN0CisiCitzeW4ga2V5d29yZAlmcmVlYmFzaWNUb2RvCQljb250YWluZWQgVE9ETworIgorIglDYXRjaCBlcnJvcnMgY2F1c2VkIGJ5IHdyb25nIHBhcmVudGhlc2lzCisiCitzeW4gcmVnaW9uCWZyZWViYXNpY1BhcmVuCQl0cmFuc3BhcmVudCBzdGFydD0nKCcgZW5kPScpJyBjb250YWlucz1BTExCVVQsQGZyZWViYXNpY1BhcmVuR3JvdXAKK3N5biBtYXRjaAlmcmVlYmFzaWNQYXJlbkVycm9yCSIpIgorc3luIG1hdGNoCWZyZWViYXNpY0luUGFyZW4JY29udGFpbmVkICJbe31dIgorc3luIGNsdXN0ZXIJZnJlZWJhc2ljUGFyZW5Hcm91cAljb250YWlucz1mcmVlYmFzaWNQYXJlbkVycm9yLGZyZWViYXNpY1NwZWNpYWwsZnJlZWJhc2ljVG9kbyxmcmVlYmFzaWNVc2VyQ29udCxmcmVlYmFzaWNVc2VyTGFiZWwsZnJlZWJhc2ljQml0RmllbGQKKyIKKyIJSW50ZWdlciBudW1iZXIsIG9yIGZsb2F0aW5nIHBvaW50IG51bWJlciB3aXRob3V0IGEgZG90IGFuZCB3aXRoICJmIi4KKyIKK3N5biByZWdpb24JZnJlZWJhc2ljSGV4CQlzdGFydD0iJmgiIGVuZD0iXFciCitzeW4gcmVnaW9uCWZyZWViYXNpY0hleEVycm9yCXN0YXJ0PSImaFx4KltnLXpHLVpdIiBlbmQ9IlxXIgorc3luIG1hdGNoCWZyZWViYXNpY0ludGVnZXIJIlw8XGRcK1wodVw9bFw9XHxsdVx8ZlwpXD4iCisiCisiCUZsb2F0aW5nIHBvaW50IG51bWJlciwgd2l0aCBkb3QsIG9wdGlvbmFsIGV4cG9uZW50CisiCitzeW4gbWF0Y2gJZnJlZWJhc2ljRmxvYXQJCSJcPFxkXCtcLlxkKlwoZVstK11cPVxkXCtcKVw9W2ZsXVw9XD4iCisiCisiCUZsb2F0aW5nIHBvaW50IG51bWJlciwgc3RhcnRpbmcgd2l0aCBhIGRvdCwgb3B0aW9uYWwgZXhwb25lbnQKKyIKK3N5biBtYXRjaAlmcmVlYmFzaWNGbG9hdAkJIlwuXGRcK1woZVstK11cPVxkXCtcKVw9W2ZsXVw9XD4iCisiCisiCUZsb2F0aW5nIHBvaW50IG51bWJlciwgd2l0aG91dCBkb3QsIHdpdGggZXhwb25lbnQKKyIKK3N5biBtYXRjaAlmcmVlYmFzaWNGbG9hdAkJIlw8XGRcK2VbLStdXD1cZFwrW2ZsXVw9XD4iCisiCisiCUhleCBudW1iZXIKKyIKK3N5biBjYXNlIG1hdGNoCitzeW4gbWF0Y2gJZnJlZWJhc2ljT2N0YWwJCSJcPDBcbypcPiIKK3N5biBtYXRjaAlmcmVlYmFzaWNPY3RhbEVycm9yCSJcPDBcbypbODldIgorIgorIglTdHJpbmcgYW5kIENoYXJhY3RlciBjb250c3RhbnRzCisiCitzeW4gcmVnaW9uCWZyZWViYXNpY1N0cmluZwkJc3RhcnQ9JyInIGVuZD0nIicgY29udGFpbnM9ZnJlZWJhc2ljU3BlY2lhbCxmcmVlYmFzaWNUb2RvCitzeW4gcmVnaW9uCWZyZWViYXNpY1N0cmluZwkJc3RhcnQ9IiciIGVuZD0iJyIgY29udGFpbnM9ZnJlZWJhc2ljU3BlY2lhbCxmcmVlYmFzaWNUb2RvCisiCisiCUNvbW1lbnRzCisiCitzeW4gbWF0Y2gJZnJlZWJhc2ljU3BlY2lhbAljb250YWluZWQgIlxcLiIKK3N5biByZWdpb24JZnJlZWJhc2ljQ29tbWVudAlzdGFydD0iXnJlbSIgZW5kPSIkIiBjb250YWlucz1mcmVlYmFzaWNTcGVjaWFsLGZyZWViYXNpY1RvZG8KK3N5biByZWdpb24JZnJlZWJhc2ljQ29tbWVudAlzdGFydD0iOlxzKnJlbSIgZW5kPSIkIiBjb250YWlucz1mcmVlYmFzaWNTcGVjaWFsLGZyZWViYXNpY1RvZG8KK3N5biByZWdpb24JZnJlZWJhc2ljQ29tbWVudAlzdGFydD0iXHMqJyIgZW5kPSIkIiBjb250YWlucz1mcmVlYmFzaWNTcGVjaWFsLGZyZWViYXNpY1RvZG8KK3N5biByZWdpb24JZnJlZWJhc2ljQ29tbWVudAlzdGFydD0iXiciIGVuZD0iJCIgY29udGFpbnM9ZnJlZWJhc2ljU3BlY2lhbCxmcmVlYmFzaWNUb2RvCisiCisiCU5vdyBkbyB0aGUgY29tbWVudHMgYW5kIGxhYmVscworIgorc3luIG1hdGNoCWZyZWViYXNpY0xhYmVsCQkiXlxkIgorc3luIG1hdGNoCWZyZWViYXNpY0xhYmVsCQkiXDxeXHcrOlw+Igorc3luIHJlZ2lvbglmcmVlYmFzaWNMaW5lTnVtYmVyCXN0YXJ0PSJeXGQiIGVuZD0iXHMiCisiCisiCUNyZWF0ZSB0aGUgY2x1c3RlcnMKKyIKK3N5biBjbHVzdGVyCWZyZWViYXNpY051bWJlcgkJY29udGFpbnM9ZnJlZWJhc2ljSGV4LGZyZWViYXNpY09jdGFsLGZyZWViYXNpY0ludGVnZXIsZnJlZWJhc2ljRmxvYXQKK3N5biBjbHVzdGVyCWZyZWViYXNpY0Vycm9yCQljb250YWlucz1mcmVlYmFzaWNIZXhFcnJvcixmcmVlYmFzaWNPY3RhbEVycm9yCisiCisiCVVzZWQgd2l0aCBPUEVOIHN0YXRlbWVudAorIgorc3luIG1hdGNoCWZyZWViYXNpY0ZpbGVudW1iZXIJIiNcZFwrIgorc3luIG1hdGNoCWZyZWViYXNpY01hdGhPcGVyYXRvcgkiW1wrXC1cPVx8XCpcL1w+XDxcJVwoKVtcXV0iIGNvbnRhaW5zPWZyZWViYXNpY1BhcmVuCisiCisiCVRoZSBkZWZhdWx0IG1ldGhvZHMgZm9yIGhpZ2hsaWdodGluZy4gIENhbiBiZSBvdmVycmlkZGVuIGxhdGVyCisiCitoaSBkZWYgbGluayBmcmVlYmFzaWNBcnJheXMJCVN0b3JhZ2VDbGFzcworaGkgZGVmIGxpbmsgZnJlZWJhc2ljQml0TWFuaXB1bGF0aW9uCU9wZXJhdG9yCitoaSBkZWYgbGluayBmcmVlYmFzaWNDb21waWxlclN3aXRjaGVzCVByZUNvbmRpdAoraGkgZGVmIGxpbmsgZnJlZWJhc2ljQ29uc29sZQkJU3BlY2lhbAoraGkgZGVmIGxpbmsgZnJlZWJhc2ljRGF0YVR5cGVzCQlUeXBlCitoaSBkZWYgbGluayBmcmVlYmFzaWNEYXRlVGltZQkJVHlwZQoraGkgZGVmIGxpbmsgZnJlZWJhc2ljRGVidWcJCVNwZWNpYWwKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0Vycm9ySGFuZGxpbmcJU3BlY2lhbAoraGkgZGVmIGxpbmsgZnJlZWJhc2ljRmlsZXMJCVNwZWNpYWwKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0Z1bmN0aW9ucwkJRnVuY3Rpb24KK2hpIGRlZiBsaW5rIGZyZWViYXNpY0dyYXBoaWNzCQlGdW5jdGlvbgoraGkgZGVmIGxpbmsgZnJlZWJhc2ljSGFyZHdhcmUJCVNwZWNpYWwKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0xvZ2ljYWwJCUNvbmRpdGlvbmFsCitoaSBkZWYgbGluayBmcmVlYmFzaWNNYXRoCQlGdW5jdGlvbgoraGkgZGVmIGxpbmsgZnJlZWJhc2ljTWVtb3J5CQlGdW5jdGlvbgoraGkgZGVmIGxpbmsgZnJlZWJhc2ljTWlzYwkJU3BlY2lhbAoraGkgZGVmIGxpbmsgZnJlZWJhc2ljTW9kdWxhcml6aW5nCVNwZWNpYWwKK2hpIGRlZiBsaW5rIGZyZWViYXNpY011bHRpdGhyZWFkaW5nCVNwZWNpYWwKK2hpIGRlZiBsaW5rIGZyZWViYXNpY1NoZWxsCQlTcGVjaWFsCitoaSBkZWYgbGluayBmcmVlYmFzaWNFbnZpcm9uCQlTcGVjaWFsCitoaSBkZWYgbGluayBmcmVlYmFzaWNQb2ludGVyCQlTcGVjaWFsCitoaSBkZWYgbGluayBmcmVlYmFzaWNQcmVkZWZpbmVkCQlQcmVQcm9jCitoaSBkZWYgbGluayBmcmVlYmFzaWNQcmVQcm9jZXNzb3IJUHJlUHJvYworaGkgZGVmIGxpbmsgZnJlZWJhc2ljUHJvZ3JhbUZsb3cJU3RhdGVtZW50CitoaSBkZWYgbGluayBmcmVlYmFzaWNTdHJpbmcJCVN0cmluZworaGkgZGVmIGxpbmsgZnJlZWJhc2ljVHlwZUNhc3RpbmcJVHlwZQoraGkgZGVmIGxpbmsgZnJlZWJhc2ljVXNlcklucHV0CQlTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0NvbW1lbnQJCUNvbW1lbnQKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0NvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCitoaSBkZWYgbGluayBmcmVlYmFzaWNFcnJvcgkJRXJyb3IKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0lkZW50aWZpZXIJCUlkZW50aWZpZXIKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0luY2x1ZGUJCUluY2x1ZGUKK2hpIGRlZiBsaW5rIGZyZWViYXNpY0dlbmVyaWNGdW5jdGlvbglGdW5jdGlvbgoraGkgZGVmIGxpbmsgZnJlZWJhc2ljTGFiZWwJCUxhYmVsCitoaSBkZWYgbGluayBmcmVlYmFzaWNMaW5lTnVtYmVyCQlMYWJlbAoraGkgZGVmIGxpbmsgZnJlZWJhc2ljTWF0aE9wZXJhdG9yCU9wZXJhdG9yCitoaSBkZWYgbGluayBmcmVlYmFzaWNOdW1iZXIJCU51bWJlcgoraGkgZGVmIGxpbmsgZnJlZWJhc2ljU3BlY2lhbAkJU3BlY2lhbAoraGkgZGVmIGxpbmsgZnJlZWJhc2ljVG9kbwkJVG9kbworCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJmcmVlYmFzaWMiCisKKyIgdmltOiB0cz04CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9oZWxwLnZpbSBiL3J1bnRpbWUvc3ludGF4L2hlbHAudmltCmluZGV4IDMyZTIyMzEuLmU2MDBkZTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2hlbHAudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2hlbHAudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVZpbSBoZWxwIGZpbGUKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgKEJyYW1AdmltLm9yZykKLSIgTGFzdCBDaGFuZ2U6CTIwMDYgQXByIDEzCisiIExhc3QgQ2hhbmdlOgkyMDA2IE1heSAxMwogCiAiIFF1aXQgd2hlbiBhIChjdXN0b20pIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2h0bWwudmltIGIvcnVudGltZS9zeW50YXgvaHRtbC52aW0KaW5kZXggODVmOWEwMi4uMTM3YzEzYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaHRtbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvaHRtbC52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOglIVE1MCiAiIE1haW50YWluZXI6CUNsYXVkaW8gRmxlaW5lciA8Y2xhdWRpb0BmbGVpbmVyLmNvbT4KICIgVVJMOgkJaHR0cDovL3d3dy5mbGVpbmVyLmNvbS92aW0vc3ludGF4L2h0bWwudmltCi0iIExhc3QgQ2hhbmdlOiAgMjAwNiBBcHJpbCAxMworIiBMYXN0IENoYW5nZTogIDIwMDYgSnVuIDE5CiAKICIgUGxlYXNlIGNoZWNrIDpoZWxwIGh0bWwudmltIGZvciBzb21lIGNvbW1lbnRzIGFuZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBvcHRpb25zCiAKQEAgLTI0LDYgKzI0LDcgQEAKICAgY29tbWFuZCEgLW5hcmdzPSsgSHRtbEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KIGVuZGlmCiAKK3N5bnRheCBzcGVsbCB0b3BsZXZlbAogCiBzeW4gY2FzZSBpZ25vcmUKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaHRtbGRqYW5nby52aW0gYi9ydW50aW1lL3N5bnRheC9odG1sZGphbmdvLnZpbQppbmRleCBhM2M2NWZkLi40YjEzODYzIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9odG1sZGphbmdvLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9odG1sZGphbmdvLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglEamFuZ28gSFRNTCB0ZW1wbGF0ZQogIiBNYWludGFpbmVyOglEYXZlIEhvZGRlciA8ZG1oQGRtaC5vcmcudWs+Ci0iIExhc3QgQ2hhbmdlOgkyMDA2IE1hciAwNgorIiBMYXN0IENoYW5nZToJMjAwNyBKYW4gMjYKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTI0LDcgKzI0LDExIEBACiAgIHVubGV0IGI6Y3VycmVudF9zeW50YXgKIGVuZGlmCiAKLXN5bnRheCBjbHVzdGVyIGh0bWxQcmVwcm9jIGFkZD1kamFuZ29QbGFjZUhvbGRlcgotc3ludGF4IGNsdXN0ZXIgaHRtbFN0cmluZyBhZGQ9ZGphbmdvUGxhY2VIb2xkZXIKK3N5biBjbHVzdGVyIGRqYW5nb0Jsb2NrcyBhZGQ9ZGphbmdvVGFnQmxvY2ssZGphbmdvVmFyQmxvY2ssZGphbmdvQ29tbWVudCxkamFuZ29Db21CbG9jaworCitzeW4gcmVnaW9uIGRqYW5nb1RhZ0Jsb2NrIHN0YXJ0PSJ7JSIgZW5kPSIlfSIgY29udGFpbnM9ZGphbmdvU3RhdGVtZW50LGRqYW5nb0ZpbHRlcixkamFuZ29Bcmd1bWVudCxkamFuZ29UYWdFcnJvciBkaXNwbGF5IGNvbnRhaW5lZGluPUFMTEJVVCxAZGphbmdvQmxvY2tzCitzeW4gcmVnaW9uIGRqYW5nb1ZhckJsb2NrIHN0YXJ0PSJ7eyIgZW5kPSJ9fSIgY29udGFpbnM9ZGphbmdvRmlsdGVyLGRqYW5nb0FyZ3VtZW50LGRqYW5nb1ZhckVycm9yIGRpc3BsYXkgY29udGFpbmVkaW49QUxMQlVULEBkamFuZ29CbG9ja3MKK3N5biByZWdpb24gZGphbmdvQ29tbWVudCBzdGFydD0ieyVccypjb21tZW50XHMqJX0iIGVuZD0ieyVccyplbmRjb21tZW50XHMqJX0iIGNvbnRhaW5zPWRqYW5nb1RvZG8gY29udGFpbmVkaW49QUxMQlVULEBkamFuZ29CbG9ja3MKK3N5biByZWdpb24gZGphbmdvQ29tQmxvY2sgc3RhcnQ9InsjIiBlbmQ9IiN9IiBjb250YWlucz1kamFuZ29Ub2RvIGNvbnRhaW5lZGluPUFMTEJVVCxAZGphbmdvQmxvY2tzCiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gImh0bWxkamFuZ28iCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9saXNwLnZpbSBiL3J1bnRpbWUvc3ludGF4L2xpc3AudmltCmluZGV4IDYxNzkyZDEuLmNkODAwZTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2xpc3AudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2xpc3AudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6ICAgIExpc3AKICIgTWFpbnRhaW5lcjogIERyLiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+Ci0iIExhc3QgQ2hhbmdlOiBPY3QgMTIsIDIwMDUKLSIgVmVyc2lvbjogICAgIDE3YQorIiBMYXN0IENoYW5nZTogQXByIDEyLCAyMDA3CisiIFZlcnNpb246ICAgICAxOQogIiBVUkw6CSAgICAgICBodHRwOi8vbXlzaXRlLnZlcml6b24ubmV0L2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgIFRoYW5rcyB0byBGIFhhdmllciBOb3JpYSBmb3IgYSBsaXN0IG9mIDk3OCBDb21tb24gTGlzcCBzeW1ib2xzCkBAIC0zNCw2ICszNCw4IEBACiAgc3luIGNsdXN0ZXIJCQkgbGlzcExpc3RDbHVzdGVyCQkgIGNvbnRhaW5zPUBsaXNwQmFzZUxpc3RDbHVzdGVyLGxpc3BTdHJpbmcKIGVuZGlmCiAKK3N5biBjYXNlIGlnbm9yZQorCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBMaXN0czoge3t7MQogc3luIG1hdGNoCQkJIGxpc3BTeW1ib2wJCQkgIGNvbnRhaW5lZAkJCSAgICFbXigpJ2AsIjsgXHRdXCshCkBAIC00MzYsNyArNDM4LDcgQEAKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgU3RyaW5nczoge3t7MQotc3luIHJlZ2lvbgkJCSBsaXNwU3RyaW5nCQkJICBzdGFydD0rIisgc2tpcD0rXFxcXFx8XFwiKyBlbmQ9KyIrCitzeW4gcmVnaW9uCQkJIGxpc3BTdHJpbmcJCQkgIHN0YXJ0PSsiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisJY29udGFpbnM9QFNwZWxsCiBpZiBleGlzdHMoImc6bGlzcF9pbnN0cmluZyIpCiAgc3luIHJlZ2lvbgkJCSBsaXNwSW5TdHJpbmcJCQkgIGtlZXBlbmQgbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9KyIoK3JzPXMrMSBza2lwPSt8Llx7LX18KyBtYXRjaGdyb3VwPURlbGltaXRlciBlbmQ9KykiKyBjb250YWlucz1AbGlzcEJhc2VMaXN0Q2x1c3RlcixsaXNwSW5TdHJpbmdTdHJpbmcKICBzeW4gcmVnaW9uCQkJIGxpc3BJblN0cmluZ1N0cmluZwkJICBzdGFydD0rXFwiKyBza2lwPStcXFxcKyBlbmQ9K1xcIisgY29udGFpbmVkCkBAIC00NTQsMTQgKzQ1NiwxNSBAQAogIiBOdW1iZXJzOiBzdXBwb3J0aW5nIGludGVnZXJzIGFuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzIHt7ezEKIHN5biBtYXRjaCBsaXNwTnVtYmVyCQkgIi1cPVwoXC5cZFwrXHxcZFwrXChcLlxkKlwpXD1cKVwoZVstK11cPVxkXCtcKVw9IgogCi1zeW4gbWF0Y2ggbGlzcFNwZWNpYWwJCSAiXCpbYS16QS1aX11bYS16QS1aXzAtOS1dKlwqIgorc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgIlwqXHdbYS16XzAtOS1dKlwqIgogc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgISN8W14oKSdgLCI7IFx0XVwrfCMhCi1zeW4gbWF0Y2ggbGlzcFNwZWNpYWwJCSAhI3hbMC05YS1mQS1GXVwrIQotc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgISNvWzAtN11cKyEKK3N5biBtYXRjaCBsaXNwU3BlY2lhbAkJICEjeFx4XCshCitzeW4gbWF0Y2ggbGlzcFNwZWNpYWwJCSAhI29cb1wrIQogc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgISNiWzAxXVwrIQotc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgISNcXFsgLVx+XSEKK3N5biBtYXRjaCBsaXNwU3BlY2lhbAkJICEjXFxbIC19XH5dIQogc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgISNbJzpdW14oKSdgLCI7IFx0XVwrIQogc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkgISMoW14oKSdgLCI7IFx0XVwrKSEKK3N5biBtYXRjaCBsaXNwU3BlY2lhbAkJICEjXFxcJShTcGFjZVx8TmV3bGluZVx8VGFiXHxQYWdlXHxSdWJvdXRcfExpbmVmZWVkXHxSZXR1cm5cfEJhY2tzcGFjZVwpIQogCiBzeW4gbWF0Y2ggbGlzcENvbmNhdAkJICJcc1wuXHMiCiBzeW4gbWF0Y2ggbGlzcFBhcmVuRXJyb3IJICIpIgpAQCAtNDcxLDkgKzQ3NCw3IEBACiBzeW4gY2x1c3RlciBsaXNwQ29tbWVudEdyb3VwCSBjb250YWlucz1saXNwVG9kbyxAU3BlbGwKIHN5biBtYXRjaCAgIGxpc3BDb21tZW50CQkgIjsuKiQiCQkJCSAgY29udGFpbnM9QGxpc3BDb21tZW50R3JvdXAKIHN5biByZWdpb24gIGxpc3BDb21tZW50UmVnaW9uCSBzdGFydD0iI3wiIGVuZD0ifCMiCQkgIGNvbnRhaW5zPWxpc3BDb21tZW50UmVnaW9uLEBsaXNwQ29tbWVudEdyb3VwCi1zeW4gY2FzZSBpZ25vcmUKIHN5biBrZXl3b3JkIGxpc3BUb2RvCQkgY29udGFpbmVkCQkJICBjb21iYWsJCQkgICBjb21iYWs6CQkJICAgIHRvZG8JCQkgICAgIHRvZG86Ci1zeW4gY2FzZSBtYXRjaAogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBTeW5jaHJvbml6YXRpb246IHt7ezEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21haWwudmltIGIvcnVudGltZS9zeW50YXgvbWFpbC52aW0KaW5kZXggMjkxZGFhMi4uNzcxN2NkOSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbWFpbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWFpbC52aW0KQEAgLTIyLDEzICsyMiwxNSBAQAogc3luIGNhc2UgbWF0Y2gKICIgRm9yICJGcm9tICIgbWF0Y2hpbmcgY2FzZSBpcyByZXF1aXJlZC4gVGhlICJGcm9tICIgaXMgbm90IG1hdGNoZWQgaW4gcXVvdGVkCiAiIGVtYWlscwotc3luIHJlZ2lvbgltYWlsSGVhZGVyCWNvbnRhaW5zPUBtYWlsSGVhZGVyRmllbGRzLEBOb1NwZWxsIHN0YXJ0PSJeRnJvbSAiIHNraXA9Il5ccyIgZW5kPSJcdl5bLUEtWmEtejAtOV0qKFteLUEtWmEtejAtOTpdfCQpIm1lPXMtMQorIiBBY2NvcmRpbmcgdG8gUkZDIDI4MjIgYW55IHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXIgY2FuIGFwcGVhciBpbiBhIGZpZWxkCisiIG5hbWUsIGV4Y2VwdCAnOicuCitzeW4gcmVnaW9uCW1haWxIZWFkZXIJY29udGFpbnM9QG1haWxIZWFkZXJGaWVsZHMsQE5vU3BlbGwgc3RhcnQ9Il5Gcm9tICIgc2tpcD0iXlxzIiBlbmQ9Ilx2XlshLTk7LX5dKihbXiEtfl18JCkibWU9cy0xCiBzeW4gbWF0Y2gJbWFpbEhlYWRlcktleQljb250YWluZWQgY29udGFpbnM9bWFpbEVtYWlsLEBOb1NwZWxsICJeRnJvbVxzLiokIgogCiBzeW4gY2FzZSBpZ25vcmUKICIgTm90aGluZyBlbHNlIGRlcGVuZHMgb24gY2FzZS4gSGVhZGVycyBpbiBwcm9wZXJseSBxdW90ZWQgKHdpdGggIj4gIiBvciAiPiIpCiAiIGVtYWlscyBhcmUgbWF0Y2hlZAotc3luIHJlZ2lvbgltYWlsSGVhZGVyCWtlZXBlbmQgY29udGFpbnM9QG1haWxIZWFkZXJGaWVsZHMsQG1haWxRdW90ZUV4cHMsQE5vU3BlbGwgc3RhcnQ9Il5ceihcKD4gXD9cKSpcKVx2KG5ld3Nncm91cHN8ZnJvbXwoKGluLSk/cmVwbHktKT90b3xiP2NjfHN1YmplY3R8cmV0dXJuLXBhdGh8cmVjZWl2ZWR8ZGF0ZXxyZXBsaWVkKToiIHNraXA9Il5cejFccyIgZW5kPSJcdl5cejFbLWEtejAtOV0qKFteLWEtejAtOTpdfCQpIm1lPXMtMSBlbmQ9Ilx2Xlx6MUAhIm1lPXMtMSBlbmQ9Ilx2Xlx6MShcPiA/KSsibWU9cy0xCitzeW4gcmVnaW9uCW1haWxIZWFkZXIJa2VlcGVuZCBjb250YWlucz1AbWFpbEhlYWRlckZpZWxkcyxAbWFpbFF1b3RlRXhwcyxATm9TcGVsbCBzdGFydD0iXlx6KFwoPiBcP1wpKlwpXHYobmV3c2dyb3Vwc3xmcm9tfCgoaW4tKT9yZXBseS0pP3RvfGI/Y2N8c3ViamVjdHxyZXR1cm4tcGF0aHxyZWNlaXZlZHxkYXRlfHJlcGxpZWQpOiIgc2tpcD0iXlx6MVxzIiBlbmQ9Ilx2Xlx6MVshLTk7LX5dKihbXiEtfl18JCkibWU9cy0xIGVuZD0iXHZeXHoxQCEibWU9cy0xIGVuZD0iXHZeXHoxKFw+ID8pKyJtZT1zLTEKIAogc3luIHJlZ2lvbgltYWlsSGVhZGVyS2V5CWNvbnRhaW5lZCBjb250YWlucz1tYWlsSGVhZGVyRW1haWwsbWFpbEVtYWlsLEBtYWlsUXVvdGVFeHBzLEBOb1NwZWxsIHN0YXJ0PSJcdiheKFw+ID8pKilAPD0odG98Yj9jYyk6IiBza2lwPSIsJCIgZW5kPSIkIgogc3luIG1hdGNoCW1haWxIZWFkZXJLZXkJY29udGFpbmVkIGNvbnRhaW5zPW1haWxIZWFkZXJFbWFpbCxtYWlsRW1haWwsQE5vU3BlbGwgIlx2KF4oXD4gPykqKUA8PShmcm9tfHJlcGx5LXRvKTouKiQiCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tZXNzYWdlcy52aW0gYi9ydW50aW1lL3N5bnRheC9tZXNzYWdlcy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRiYWE1YQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L21lc3NhZ2VzLnZpbQpAQCAtMCwwICsxLDU5IEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZTogICAgICAgICAvdmFyL2xvZy9tZXNzYWdlcyBmaWxlCisiIE1haW50YWluZXI6ICAgICAgIFlha292IExlcm5lciA8aWxlci5tbEBnbWFpbC5jb20+CisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDYtMDYtMTkKKworaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitsZXQgczpjcG9fc2F2ZSA9ICZjcG8KK3NldCBjcG8mdmltCisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzQmVnaW4gICAgICAgZGlzcGxheSAnXicgbmV4dGdyb3VwPW1lc3NhZ2VzRGF0ZQorCitzeW4gbWF0Y2ggICBtZXNzYWdlc0RhdGUgICAgICAgIGNvbnRhaW5lZCBkaXNwbGF5ICdcYVxhXGEgWyAwLTldXGQgKicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bWVzc2FnZXNIb3VyCisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzSG91ciAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xkXGQ6XGRcZDpcZFxkXHMqJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tZXNzYWdlc0hvc3QKKworc3luIG1hdGNoICAgbWVzc2FnZXNIb3N0ICAgICAgICBjb250YWluZWQgZGlzcGxheSAnXFMqXHMqJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tZXNzYWdlc0xhYmVsCisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzTGFiZWwgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xzKlteOl0qOlxzKicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bWVzc2FnZXNUZXh0IGNvbnRhaW5zPW1lc3NhZ2VzS2VybmVsLG1lc3NhZ2VzUElECisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzUElEICAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xbXHpzXGRcK1x6ZVxdJworCitzeW4gbWF0Y2ggICBtZXNzYWdlc0tlcm5lbCAgICAgIGNvbnRhaW5lZCBkaXNwbGF5ICdrZXJuZWw6JworCisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzSVAgICAgICAgICAgJ1xkXCtcLlxkXCtcLlxkXCtcLlxkXCsnCisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzVVJMICAgICAgICAgJ1x3XCs6Ly9cU1wrJworCitzeW4gbWF0Y2ggICBtZXNzYWdlc1RleHQgICAgICAgIGNvbnRhaW5lZCBkaXNwbGF5ICcuKicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz1tZXNzYWdlc051bWJlcixtZXNzYWdlc0lQLG1lc3NhZ2VzVVJMLG1lc3NhZ2VzRXJyb3IKKworc3luIG1hdGNoICAgbWVzc2FnZXNOdW1iZXIgICAgICBjb250YWluZWQgJzB4WzAtOWEtZkEtRl0qXHxcWzxbMC05YS1mXVwrPlxdXHxcPFxkWzAtOWEtZkEtRl0qJworCitzeW4gbWF0Y2ggICBtZXNzYWdlc0Vycm9yICAgICAgIGNvbnRhaW5lZCAnXGMuKlw8XChGQVRBTFx8RVJST1JcfEVSUk9SU1x8RkFJTEVEXHxGQUlMVVJFXCkuKicKKworCitoaSBkZWYgbGluayBtZXNzYWdlc0RhdGUgICAgICAgIENvbnN0YW50CitoaSBkZWYgbGluayBtZXNzYWdlc0hvdXIgICAgICAgIFR5cGUKK2hpIGRlZiBsaW5rIG1lc3NhZ2VzSG9zdCAgICAgICAgSWRlbnRpZmllcgoraGkgZGVmIGxpbmsgbWVzc2FnZXNMYWJlbCAgICAgICBPcGVyYXRvcgoraGkgZGVmIGxpbmsgbWVzc2FnZXNQSUQgICAgICAgICBDb25zdGFudAoraGkgZGVmIGxpbmsgbWVzc2FnZXNLZXJuZWwgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBtZXNzYWdlc0Vycm9yICAgICAgIEVycm9yTXNnCitoaSBkZWYgbGluayBtZXNzYWdlc0lQICAgICAgICAgIENvbnN0YW50CitoaSBkZWYgbGluayBtZXNzYWdlc1VSTCAgICAgICAgIFVuZGVybGluZWQKK2hpIGRlZiBsaW5rIG1lc3NhZ2VzVGV4dCAgICAgICAgTm9ybWFsCitoaSBkZWYgbGluayBtZXNzYWdlc051bWJlciAgICAgIE51bWJlcgorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJtZXNzYWdlcyIKKworbGV0ICZjcG8gPSBzOmNwb19zYXZlCit1bmxldCBzOmNwb19zYXZlCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tcnh2dHJjLnZpbSBiL3J1bnRpbWUvc3ludGF4L21yeHZ0cmMudmltCmluZGV4IGQzZTMxMjkuLmQ4NmY4ZTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L21yeHZ0cmMudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L21yeHZ0cmMudmltCkBAIC0xLDEyOSArMSwyNTQgQEAKICIgQ3JlYXRlZAk6IFdlZCAyNiBBcHIgMjAwNiAwMToyMDo1MyBBTSBDRFQKLSIgTW9kaWZpZWQJOiBUaHUgMjcgQXByIDIwMDYgMDI6Mjk6MjUgUE0gQ0RUCisiIE1vZGlmaWVkCTogTW9uIDIwIE5vdiAyMDA2IDEyOjE0OjE2IEFNIFBTVAogIiBBdXRob3IJOiBHYXV0YW0gSXllciA8Z2kxMjQyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLSIgRGVzY3JpcHRpb24JOiBTeW50YXggZmlsZSBmb3IgbXJ4dnRyYworIiBEZXNjcmlwdGlvbgk6IFZpbSBzeW50YXggZmlsZSBmb3IgbXJ4dnRyYyAoZm9yIG1yeHZ0LTAuNS4wIGFuZCB1cCkKIAogIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaAogZW5kaWYKIAotIiBEZWZpbmUgb3B0aW9ucy4KLWxldCBzOmJvb2xPcHRzID0gJyhoaWdobGlnaHRUYWJPbkJlbGx8c3luY1RhYlRpdGxlfGhpZGVUYWJiYXJ8YXV0b2hpZGVUYWJiYXJ8Ym90dG9tVGFiYmFyfGhpZGVCdXR0b25zfHN5bmNUYWJJY29ufHZlcnlCb2xkRm9udHxtYXhpbWl6ZWR8ZnVsbHNjcmVlbnxyZXZlcnNlVmlkZW98bG9naW5TaGVsbHxqdW1wU2Nyb2xsfHNjcm9sbEJhcnxzY3JvbGxiYXJSaWdodHxzY3JvbGxiYXJGbG9hdGluZ3xzY3JvbGxUdHlPdXRwdXRJbmhpYml0fHNjcm9sbFR0eUtleXByZXNzfHNjcm9sbFdpdGhCdWZmZXJ8dHJhbnNwYXJlbnR8dHJhbnNwYXJlbnRGb3JjZXx0cmFuc3BhcmVudFNjcm9sbGJhcnx0cmFuc3BhcmVudE1lbnViYXJ8dHJhbnNwYXJlbnRUYWJiYXJ8dGFiVXNlUGl4bWFwfHV0bXBJbmhpYml0fHZpc3VhbEJlbGx8bWFwQWxlcnR8bWV0YTh8bW91c2VXaGVlbFNjcm9sbFBhZ2V8bXVsdGlieXRlX2N1cnNvcnx0cmlwbGVjbGlja3dvcmRzfHNob3dNZW51fHhmdHx4ZnROb21Gb250fHhmdFNsb3dPdXRwdXR8eGZ0QW50aWFsaWFzfHhmdEhpbnRpbmd8eGZ0QXV0b0hpbnR8eGZ0R2xvYmFsQWR2YW5jZXx0YWJTaGVsbHxjbWRBbGxUYWJzfGNtZEluaXRUYWJzfHByb3RlY3RTZWNvbmRhcnl8dGhhaXxib3JkZXJMZXNzfG92ZXJyaWRlUmVkaXJlY3R8aG9sZEV4aXR8YnJvYWRjYXN0fHNtYXJ0UmVzaXplfHNtb290aFJlc2l6ZXxwb2ludGVyQmxhbmt8Y3Vyc29yQmxpbmt8bm9TeXNDb25maWd8ZGlzYWJsZU1hY3Jvc3xsaW51eEhvbWVFbmRLZXl8c2Vzc2lvbk1ndCknCi0KLWxldCBzOmNvbG9yT3B0cyA9ICcodnRcZCsuKGZvcmVncm91bmR8YmFja2dyb3VuZCl8YmFja2dyb3VuZHxmb3JlZ3JvdW5kfHVmQmFja2dyb3VuZHx0ZXh0U2hhZG93fGk/dGFiKEZvcmVncm91bmR8QmFja2dyb3VuZCl8Y29sb3IoWzAtOV18MVswLTVdfEJEfFVMfFJWKXwoc2Nyb2xsfHRyb3VnaHxoaWdobGlnaHR8Y3Vyc29yfHBvaW50ZXJ8Ym9yZGVyfHRpbnQpQ29sb3J8Y3Vyc29yQ29sb3IyKScKLQotbGV0IHM6bnVtT3B0cyA9ICcodnRcZCsuc2F2ZUxpbmVzfG1heFRhYldpZHRofG1pblZpc2libGVUYWJzfHNhdmVMaW5lc3xzY3JvbGxiYXJUaGlja25lc3N8eGZ0bVNpemV8eGZ0U2l6ZXxkZXNrdG9wfGV4dGVybmFsQm9yZGVyfGludGVybmFsQm9yZGVyfGxpbmVTcGFjZXxwb2ludGVyQmxhbmtEZWxheXxjdXJzb3JCbGlua0ludGVydmFsfGluaXRUZXJtTnVtYmVyfHNoYWRpbmd8YmFja2dyb3VuZEZhZGV8YmdSZWZyZXNoSW50ZXJ2YWx8ZmFkaW5nfG9wYWNpdHl8b3BhY2l0eURlZ3JlZXx4ZnRQU2l6ZSknCi0KLWxldCBzOnN0ck9wdHMgPSAnKHZ0XGQrXC4odGFiVGl0bGV8Y29tbWFuZCl8dGFiVGl0bGV8dGVybU5hbWV8dGl0bGV8Y2xpZW50TmFtZXxpY29uTmFtZXxiZWxsQ29tbWFuZHxob2xkRXhpdFRleHR8YmFja3NwYWNlS2V5fGRlbGV0ZUtleXxwcmludFBpcGV8Y3V0Q2hhcnN8YW5zd2VyYmFja1N0cmluZ3xzbUNsaWVudElEfGdlb21ldHJ5fGNvbmZGaWxlU2F2ZXxwYXRofGJvbGRGb250fG0/Zm9udFsxLTVdP3x4ZnRGb250fHhmdG1Gb250fHhmdFBGb250fGlucHV0TWV0aG9kfGdyZWVrdG9nZ2xlX2tleXxtZW51fG1lbnViYXJQaXhtYXB8dnRcZCtcLlBpeG1hcHxQaXhtYXB8c2Nyb2xsYmFyUGl4bWFwfHRhYmJhclBpeG1hcHxhcHBJY29ufG11bHRpY2hhcl9lbmNvZGluZyknCi0KIHN5biBjYXNlIG1hdGNoCiAKLXN5biBtYXRjaAltcnh2dHJjQ29tbWVudAljb250YWlucz1AU3BlbGwgJ15ccyohLiokJwotc3luIG1hdGNoCW1yeHZ0cmNDb21tZW50CSdcdl5ccyohXHMqXHcrWy4qXVx3Ky4qOi4qJworIiBFcnJvcnMKK3N5biBtYXRjaAltcnh2dHJjRXJyb3IJY29udGFpbmVkCSdcdlxTKycKKworIiBDb21tZW50cworc3luIG1hdGNoCW1yeHZ0cmNDb21tZW50CWNvbnRhaW5zPUBTcGVsbCAnXlxzKlshI10uKiQnCitzeW4gbWF0Y2gJbXJ4dnRyY0NvbW1lbnQJJ1x2XlxzKlsjIV1ccypcdytbLipdXHcrLio6LionCiAKICIKLSIgR2VuZXJpYyBvcHRpb25zIChzdHJpbmcgLyBjb2xvciAvIG51bWJlciAvIGJvb2xlYW4pCisiIE9wdGlvbnMuCiAiCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdEVycgknXHZeXHMqXHcrWy4qXT8uey19KDp8JCknCi1leGVjICdzeW4gbWF0Y2gJbXJ4dnRyY0Jvb2xPcHRzCW5leHRncm91cD1tcnh2dHJjQm9vbFZhbCxtcnh2dHJjVmFsRXJyJwotCSAgICBcICciXHZeXHcrWy4qXScuczpib29sT3B0cy4nOlxzKiInCi1leGVjICdzeW4gbWF0Y2gJbXJ4dnRyY051bU9wdHMJbmV4dGdyb3VwPW1yeHZ0cmNOdW1WYWwsbXJ4dnRyY1ZhbEVycicKLQkgICAgXCAnIlx2Xlx3K1suKl0nLnM6bnVtT3B0cy4nOlxzKiInCi1leGVjICdzeW4gbWF0Y2gJbXJ4dnRyY0NvbG9yT3B0cwluZXh0Z3JvdXA9bXJ4dnRyY0NvbG9yVmFsJwotCSAgICBcICciXHZeXHcrWy4qXScuczpjb2xvck9wdHMuJzpccyoiJwotZXhlYyAnc3luIG1hdGNoCW1yeHZ0cmNTdHJPcHRzCW5leHRncm91cD1tcnh2dHJjU3RyVmFsLG1yeHZ0cmNWYWxFcnInCi0JICAgIFwgJyJcdl5cdytbLipdJy5zOnN0ck9wdHMuJzpccyoiJworc3luIG1hdGNoCW1yeHZ0cmNDbGFzcwknXHZeXHMqXHcrWy4qXScKKwkgICAgXCBuZXh0Z3JvdXA9bXJ4dnRyY09wdGlvbnMsbXJ4dnRyY1Byb2ZpbGUsQG1yeHZ0cmNQT3B0cyxtcnh2dHJjRXJyb3IKIAorIiBCb29sZWFuIG9wdGlvbnMKK3N5biBrZXl3b3JkCW1yeHZ0cmNPcHRpb25zCWNvbnRhaW5lZCBuZXh0Z3JvdXA9bXJ4dnRyY0JDb2xvbixtcnh2dHJjRXJyb3IKKwkJCQlcIGhpZ2hsaWdodFRhYk9uQmVsbCBzeW5jVGFiVGl0bGUgaGlkZVRhYmJhcgorCQkJCVwgYXV0b2hpZGVUYWJiYXIgYm90dG9tVGFiYmFyIGhpZGVCdXR0b25zCisJCQkJXCBzeW5jVGFiSWNvbiB2ZXJ5Qm9sZEZvbnQgbWF4aW1pemVkCisJCQkJXCBmdWxsc2NyZWVuIHJldmVyc2VWaWRlbyBsb2dpblNoZWxsCisJCQkJXCBqdW1wU2Nyb2xsIHNjcm9sbEJhciBzY3JvbGxiYXJSaWdodAorCQkJCVwgc2Nyb2xsYmFyRmxvYXRpbmcgc2Nyb2xsVHR5T3V0cHV0SW5oaWJpdAorCQkJCVwgc2Nyb2xsVHR5S2V5cHJlc3Mgc2Nyb2xsV2l0aEJ1ZmZlcgorCQkJCVwgdHJhbnNwYXJlbnRGb3JjZSB0cmFuc3BhcmVudFNjcm9sbGJhcgorCQkJCVwgdHJhbnNwYXJlbnRNZW51YmFyIHRyYW5zcGFyZW50VGFiYmFyCisJCQkJXCB0YWJVc2VQaXhtYXAgdXRtcEluaGliaXQgdmlzdWFsQmVsbCBtYXBBbGVydAorCQkJCVwgbWV0YTggbW91c2VXaGVlbFNjcm9sbFBhZ2UgbXVsdGlieXRlX2N1cnNvcgorCQkJCVwgdHJpcGxlY2xpY2t3b3JkcyBzaG93TWVudSB4ZnQgeGZ0Tm9tRm9udAorCQkJCVwgeGZ0U2xvd091dHB1dCB4ZnRBbnRpYWxpYXMgeGZ0SGludGluZworCQkJCVwgeGZ0QXV0b0hpbnQgeGZ0R2xvYmFsQWR2YW5jZSBjbWRBbGxUYWJzCisJCQkJXCBwcm90ZWN0U2Vjb25kYXJ5IHRoYWkgYm9yZGVyTGVzcworCQkJCVwgb3ZlcnJpZGVSZWRpcmVjdCBicm9hZGNhc3QKKwkJCQlcIHNtYXJ0UmVzaXplIHNtb290aFJlc2l6ZSBwb2ludGVyQmxhbmsKKwkJCQlcIGN1cnNvckJsaW5rIG5vU3lzQ29uZmlnIGRpc2FibGVNYWNyb3MKKwkJCQlcIGxpbnV4SG9tZUVuZEtleSBzZXNzaW9uTWd0CitzeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIG5leHRncm91cD1tcnh2dHJjQkNvbG9uLG1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2PHRyYW5zcGFyZW50PicKK3N5biBtYXRjaAltcnh2dHJjQkNvbG9uCWNvbnRhaW5lZCBza2lwd2hpdGUKKwkJCQlcIG5leHRncm91cD1tcnh2dHJjQm9vbFZhbCxtcnh2dHJjRXJyb3IgJzonCiBzeW4gY2FzZSBpZ25vcmUKLQotc3luIG1hdGNoCW1yeHZ0cmNWYWxFcnIJY29udGFpbmVkICdcdi4rJCcKLXN5biBrZXl3b3JkCW1yeHZ0cmNCb29sVmFsCWNvbnRhaW5lZCAwIDEgeWVzIG5vIG9uIG9mZiB0cnVlIGZhbHNlCi1zeW4gbWF0Y2gJbXJ4dnRyY1N0clZhbAljb250YWluZWQgJ1x2LiskJwotc3luIG1hdGNoCW1yeHZ0cmNDb2xvclZhbAljb250YWluZWQgJ1x2I1swLTlhLWZdezZ9XHMqJCcKLXN5biBtYXRjaAltcnh2dHJjTnVtVmFsCWNvbnRhaW5lZCAnXHZbKy1dPygwWzAtN10rfFxkK3wweFswLTlhLWZdKykkJwotCitzeW4ga2V5d29yZAltcnh2dHJjQm9vbFZhbAljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKKwkJCQlcIDAgMSB5ZXMgbm8gb24gb2ZmIHRydWUgZmFsc2UKIHN5biBjYXNlIG1hdGNoCiAKLSIKLSIgT3B0aW9ucyB3aXRoIHNwZWNpYWwgdmFsdWVzCi0iCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNTQnN0eWxlLG1yeHZ0cmNWYWxFcnIKLQkJCQlcICdcdl5cdytbLipdc2Nyb2xsYmFyU3R5bGU6XHMqJwotc3luIGtleXdvcmQJbXJ4dnRyY1NCc3R5bGUJY29udGFpbmVkIHBsYWluIHh0ZXJtIHJ4dnQgbmV4dCBzZ2kKKyIgQ29sb3Igb3B0aW9ucworc3luIGtleXdvcmQJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIG5leHRncm91cD1tcnh2dHJjQ0NvbG9uLG1yeHZ0cmNFcnJvcgorCQkJCVwgdWZCYWNrZ3JvdW5kIHRleHRTaGFkb3cgdGFiRm9yZWdyb3VuZAorCQkJCVwgaXRhYkZvcmVncm91bmQgdGFiQmFja2dyb3VuZCBpdGFiQmFja2dyb3VuZAorCQkJCVwgc2Nyb2xsQ29sb3IgdHJvdWdoQ29sb3IgaGlnaGxpZ2h0Q29sb3IKKwkJCQlcIGN1cnNvckNvbG9yIGN1cnNvckNvbG9yMiBwb2ludGVyQ29sb3IKKwkJCQlcIGJvcmRlckNvbG9yIHRpbnRDb2xvcgorc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCWNvbnRhaW5lZCBuZXh0Z3JvdXA9bXJ4dnRyY0NDb2xvbixtcnh2dHJjRXJyb3IKKwkJCQlcICdcdjxjb2xvcihbMC05XXwxWzAtNV18QkR8VUx8UlYpPicKK3N5biBtYXRjaAltcnh2dHJjQ0NvbG9uCWNvbnRhaW5lZCBza2lwd2hpdGUKKwkJCQlcIG5leHRncm91cD1tcnh2dHJjQ29sb3JWYWwgJzonCitzeW4gbWF0Y2gJbXJ4dnRyY0NvbG9yVmFsCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2I1swLTlhLWZBLUZdezZ9JwogCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNTQmFsaWduLG1yeHZ0cmNWYWxFcnIKLQkJCQlcICdcdl5cdytbLipdc2Nyb2xsYmFyQWxpZ246XHMqJwotc3luIGtleXdvcmQJbXJ4dnRyY1NCYWxpZ24JY29udGFpbmVkIHRvcCBib3R0b20KKyIgTnVtZXJpYyBvcHRpb25zCitzeW4ga2V5d29yZAltcnh2dHJjT3B0aW9ucwljb250YWluZWQgbmV4dGdyb3VwPW1yeHZ0cmNOQ29sb24sbXJ4dnRyY0Vycm9yCisJCQkJXCBtYXhUYWJXaWR0aCBtaW5WaXNpYmxlVGFicworCQkJCVwgc2Nyb2xsYmFyVGhpY2tuZXNzIHhmdG1TaXplIHhmdFNpemUgZGVza3RvcAorCQkJCVwgZXh0ZXJuYWxCb3JkZXIgaW50ZXJuYWxCb3JkZXIgbGluZVNwYWNlCisJCQkJXCBwb2ludGVyQmxhbmtEZWxheSBjdXJzb3JCbGlua0ludGVydmFsCisJCQkJXCBzaGFkaW5nIGJhY2tncm91bmRGYWRlIGJnUmVmcmVzaEludGVydmFsCisJCQkJXCBmYWRpbmcgZm9jdXNEZWxheSBvcGFjaXR5IG9wYWNpdHlEZWdyZWUKKwkJCQlcIHhmdFBTaXplCitzeW4gbWF0Y2gJbXJ4dnRyY05Db2xvbgljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY051bVZhbCxtcnh2dHJjRXJyb3IgJzonCitzeW4gbWF0Y2gJbXJ4dnRyY051bVZhbAljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKKwkJCQlcICdcdlsrLV0/PCgwWzAtN10rfFxkK3wweFswLTlhLWZdKyk+JwogCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNUU21vZGUsbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl10ZXh0U2hhZG93TW9kZTpccyonCi1zeW4ga2V5d29yZAltcnh2dHJjVFNtb2RlCWNvbnRhaW5lZAorIiBTdHJpbmcgb3B0aW9ucworc3luIGtleXdvcmQJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIG5leHRncm91cD1tcnh2dHJjU0NvbG9uLG1yeHZ0cmNFcnJvcgorCQkJCVwgdGFiVGl0bGUgdGVybU5hbWUgdGl0bGUgY2xpZW50TmFtZSBpY29uTmFtZQorCQkJCVwgYmVsbENvbW1hbmQgYmFja3NwYWNlS2V5IGRlbGV0ZUtleQorCQkJCVwgcHJpbnRQaXBlIGN1dENoYXJzIGFuc3dlcmJhY2tTdHJpbmcKKwkJCQlcIHNtQ2xpZW50SUQgZ2VvbWV0cnkgcGF0aCBib2xkRm9udCB4ZnRGb250CisJCQkJXCB4ZnRtRm9udCB4ZnRQRm9udCBpbnB1dE1ldGhvZAorCQkJCVwgZ3JlZWt0b2dnbGVfa2V5IG1lbnUgbWVudWJhclBpeG1hcAorCQkJCVwgc2Nyb2xsYmFyUGl4bWFwIHRhYmJhclBpeG1hcCBhcHBJY29uCisJCQkJXCBtdWx0aWNoYXJfZW5jb2RpbmcgaW5pdFByb2ZpbGVMaXN0CisJCQkJXCB3aW5UaXRsZUZvcm1hdAorc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCWNvbnRhaW5lZCBuZXh0Z3JvdXA9bXJ4dnRyY1NDb2xvbixtcnh2dHJjRXJyb3IKKwkJCQlcICdcdjxtP2ZvbnRbMS01XT8+Jworc3luIG1hdGNoCW1yeHZ0cmNTQ29sb24JY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bXJ4dnRyY1N0clZhbCAnOicKK3N5biBtYXRjaAltcnh2dHJjU3RyVmFsCWNvbnRhaW5lZCAnXHZcUy4qJworCisiIFByb2ZpbGUgb3B0aW9ucworc3luIGNsdXN0ZXIJbXJ4dnRyY1BPcHRzCWNvbnRhaW5zPW1yeHZ0cmNQU09wdHMsbXJ4dnRyY1BDT3B0cyxtcnh2dHJjUE5PcHRzCitzeW4gbWF0Y2gJbXJ4dnRyY1Byb2ZpbGUJY29udGFpbmVkIG5leHRncm91cD1AbXJ4dnRyY1BPcHRzLG1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2cHJvZmlsZVxkK1wuJworc3luIGtleXdvcmQJbXJ4dnRyY1BTT3B0cwljb250YWluZWQgbmV4dGdyb3VwPW1yeHZ0cmNTQ29sb24sbXJ4dnRyY0Vycm9yCisJCQkJXCB0YWJUaXRsZSBjb21tYW5kIGhvbGRFeGl0VGV4dCBob2xkRXhpdFRpdGxlCisJCQkJXCBQaXhtYXAgd29ya2luZ0RpcmVjdG9yeSB0aXRsZUZvcm1hdAorc3luIGtleXdvcmQJbXJ4dnRyY1BDT3B0cwljb250YWluZWQgbmV4dGdyb3VwPW1yeHZ0cmNDQ29sb24sbXJ4dnRyY0Vycm9yCisJCQkJXCBiYWNrZ3JvdW5kIGZvcmVncm91bmQKK3N5biBrZXl3b3JkCW1yeHZ0cmNQTk9wdHMJY29udGFpbmVkIG5leHRncm91cD1tcnh2dHJjTkNvbG9uLG1yeHZ0cmNFcnJvcgorCQkJCVwgaG9sZEV4aXQgc2F2ZUxpbmVzCisKKyIgc2Nyb2xsYmFyU3R5bGUKK3N5biBtYXRjaAltcnh2dHJjT3B0aW9ucwljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY1NCc3R5bGUsbXJ4dnRyY0Vycm9yCisJCQkJXCAnXHY8c2Nyb2xsYmFyU3R5bGU6Jworc3luIGtleXdvcmQJbXJ4dnRyY1NCc3R5bGUJY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bXJ4dnRyY0Vycm9yCisJCQkJXCBwbGFpbiB4dGVybSByeHZ0IG5leHQgc2dpCisKKyIgc2Nyb2xsYmFyQWxpZ24KK3N5biBtYXRjaAltcnh2dHJjT3B0aW9ucwljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY1NCYWxpZ24sbXJ4dnRyY0Vycm9yCisJCQkJXCAnXHY8c2Nyb2xsYmFyQWxpZ246Jworc3luIGtleXdvcmQJbXJ4dnRyY1NCYWxpZ24JY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bXJ4dnRyY0Vycm9yCisJCQkJXCB0b3AgYm90dG9tCisKKyIgdGV4dFNoYWRvd01vZGUKK3N5biBtYXRjaAltcnh2dHJjT3B0aW9ucwljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY1RTbW9kZSxtcnh2dHJjRXJyb3IKKwkJCQlcICdcdjx0ZXh0U2hhZG93TW9kZTonCitzeW4ga2V5d29yZAltcnh2dHJjVFNtb2RlCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW1yeHZ0cmNFcnJvcgogCQkJCVwgbm9uZSB0b3AgYm90dG9tIGxlZnQgcmlnaHQgdG9wbGVmdCB0b3ByaWdodAogCQkJCVwgYm90bGVmdCBib3RyaWdodAogCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNHcmtLYmQsbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl1ncmVla19rZXlib2FyZDpccyonCi1zeW4ga2V5d29yZAltcnh2dHJjR3JrS2JkCWNvbnRhaW5lZCBpc28gaWJtCisiIGdyZWVrX2tleWJvYXJkCitzeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIHNraXB3aGl0ZQorCQkJCVwgbmV4dGdyb3VwPW1yeHZ0cmNHcmtLYmQsbXJ4dnRyY0Vycm9yCisJCQkJXCAnXHY8Z3JlZWtfa2V5Ym9hcmQ6Jworc3luIGtleXdvcmQJbXJ4dnRyY0dya0tiZAljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKKwkJCQlcIGlzbyBpYm0KIAotc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCW5leHRncm91cD1tcnh2dHJjWGZ0V3QsbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl14ZnRXZWlnaHQ6XHMqJwotc3luIGtleXdvcmQJbXJ4dnRyY1hmdFd0CWNvbnRhaW5lZCBsaWdodCBtZWRpdW0gYm9sZAorIiB4ZnRXZWlnaHQKK3N5biBtYXRjaAltcnh2dHJjT3B0aW9ucwljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY1hmdFd0LG1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2PCh4ZnRXZWlnaHR8eGZ0Qm9sZFdlaWdodCk6Jworc3luIGtleXdvcmQJbXJ4dnRyY1hmdFd0CWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW1yeHZ0cmNFcnJvcgorCQkJCVwgbGlnaHQgbWVkaXVtIGRlbWlib2xkIGJvbGQgYmxhY2sKIAotc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCW5leHRncm91cD1tcnh2dHJjWGZ0U2wsbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl14ZnRTbGFudDpccyonCi1zeW4ga2V5d29yZAltcnh2dHJjWGZ0U2wJY29udGFpbmVkIHJvbWFuIGl0YWxpYyBvYmxpcXVlCisiIHhmdFNsYW50CitzeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIHNraXB3aGl0ZQorCQkJCVwgbmV4dGdyb3VwPW1yeHZ0cmNYZnRTbCxtcnh2dHJjRXJyb3IKKwkJCQlcICdcdjx4ZnRTbGFudDonCitzeW4ga2V5d29yZAltcnh2dHJjWGZ0U2wJY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bXJ4dnRyY0Vycm9yCisJCQkJXCByb21hbiBpdGFsaWMgb2JsaXF1ZQogCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNYZnRXZCxtcnh2dHJjVmFsRXJyCi0JCQkJXCAnXHZeXHcrWy4qXXhmdFdpZHRoOlxzKicKLXN5biBrZXl3b3JkCW1yeHZ0cmNYZnRXZAljb250YWluZWQKKyIgeGZ0V2lkdGgKK3N5biBtYXRjaAltcnh2dHJjT3B0aW9ucwljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY1hmdFdkLG1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2PHhmdFdpZHRoOicKK3N5biBrZXl3b3JkCW1yeHZ0cmNYZnRXZAljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKIAkJCQlcIHVsdHJhY29uZGVuc2VkIHVsdHJhZXhwYW5kZWQKIAkJCQlcIGNvbmRlbnNlZCBleHBhbmRlZCBub3JtYWwKIAotc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCW5leHRncm91cD1tcnh2dHJjWGZ0SHQsbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl14ZnRSR0JBOlxzKicKLXN5biBrZXl3b3JkCW1yeHZ0cmNYZnRIdAljb250YWluZWQgcmdiIGJnciB2cmdiIHZiZ3Igbm9uZQorIiB4ZnRSR0JBCitzeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIHNraXB3aGl0ZQorCQkJCVwgbmV4dGdyb3VwPW1yeHZ0cmNYZnRIdCxtcnh2dHJjRXJyb3IKKwkJCQlcICdcdjx4ZnRSR0JBOicKK3N5biBrZXl3b3JkCW1yeHZ0cmNYZnRIdAljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKKwkJCQlcIHJnYiBiZ3IgdnJnYiB2YmdyIG5vbmUKIAotc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCW5leHRncm91cD1tcnh2dHJjUGVkaXQsbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl1wcmVlZGl0VHlwZTpccyonCi1zeW4ga2V5d29yZAltcnh2dHJjUGVkaXQJY29udGFpbmVkIE92ZXJUaGVTcG90IE9mZlRoZVNwb3QgUm9vdAorIiBwcmVlZGl0VHlwZQorc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCWNvbnRhaW5lZCBza2lwd2hpdGUKKwkJCQlcIG5leHRncm91cD1tcnh2dHJjUGVkaXQsbXJ4dnRyY0Vycm9yCisJCQkJXCAnXHY8cHJlZWRpdFR5cGU6Jworc3luIGtleXdvcmQJbXJ4dnRyY1BlZGl0CWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW1yeHZ0cmNFcnJvcgorCQkJCVwgT3ZlclRoZVNwb3QgT2ZmVGhlU3BvdCBSb290CiAKLXN5biBtYXRjaAltcnh2dHJjT3B0aW9ucwluZXh0Z3JvdXA9bXJ4dnRyY01vZCxtcnh2dHJjVmFsRXJyCi0JCQkJXCAnXHZeXHcrWy4qXW1vZGlmaWVyOlxzKicKLXN5biBrZXl3b3JkCW1yeHZ0cmNNb2QJY29udGFpbmVkCisiIG1vZGlmaWVyCitzeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIHNraXB3aGl0ZQorCQkJCVwgbmV4dGdyb3VwPW1yeHZ0cmNNb2QsbXJ4dnRyY0Vycm9yCisJCQkJXCAnXHY8bW9kaWZpZXI6Jworc3luIGtleXdvcmQJbXJ4dnRyY01vZAljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKIAkJCQlcIGFsdCBtZXRhIGh5cGVyIHN1cGVyIG1vZDEgbW9kMiBtb2QzIG1vZDQgbW9kNQogCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNTZWxTdHksbXJ4dnRyY1ZhbEVycgotCQkJCVwgJ1x2Xlx3K1suKl1zZWxlY3RTdHlsZTpccyonCi1zeW4ga2V5d29yZAltcnh2dHJjU2VsU3R5CWNvbnRhaW5lZCBvbGQgb2xkd29yZAorIiBzZWxlY3RTdHlsZQorc3luIG1hdGNoCW1yeHZ0cmNPcHRpb25zCWNvbnRhaW5lZCBza2lwd2hpdGUKKwkJCQlcIG5leHRncm91cD1tcnh2dHJjU2VsU3R5LG1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2PHNlbGVjdFN0eWxlOicKK3N5biBrZXl3b3JkCW1yeHZ0cmNTZWxTdHkJY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bXJ4dnRyY0Vycm9yCisJCQkJXCBvbGQgb2xkd29yZAogCiAKICIKICIgTWFjcm9zCiAiCi1zeW4gbWF0Y2gJbXJ4dnRyY09wdGlvbnMJbmV4dGdyb3VwPW1yeHZ0cmNNYWNybyxtcnh2dHJjVmFsRXJyCi0JICAgIFwgJ1x2XGNeXHcrWy4qXW1hY3JvLihwcmltYXJ5XCspPygoY3RybHxhbHR8bWV0YXxzaGlmdClcKykqXHcrOlxzKicKLXN5biBrZXl3b3JkCW1yeHZ0cmNNYWNybwljb250YWluZWQgbmV4dGdyb3VwPW1yeHZ0cmNNYWNyb0FyZwotCQkJCVwgRHVtbXkgRXNjIFN0ciBOZXdUYWIgQ2xvc2UgR290b1RhYiBNb3ZlVGFiCi0JCQkJXCBTY3JvbGwgQ29weSBQYXN0ZSBUb2dnbGVTdWJ3aW4gUmVzaXplRm9udAotCQkJCVwgVG9nZ2xlVmVyeUJvbGQgVG9nZ2xlVHJhbnNwYXJlbmN5Ci0JCQkJXCBUb2dnbGVCcm9hZGNhc3QgVG9nZ2xlSG9sZCBTZXRUaXRsZQotCQkJCVwgUHJpbnRTY3JlZW4gU2F2ZUNvbmZpZyBUb2dnbGVNYWNyb3MKLXN5biBtYXRjaAltcnh2dHJjTWFjcm9BcmcJY29udGFpbmVkICcuXCskJworc3luIGtleXdvcmQJbXJ4dnRyY09wdGlvbnMJY29udGFpbmVkIG5leHRncm91cD1tcnh2dHJjS2V5LG1yeHZ0cmNFcnJvcgorCQkJCVwgbWFjcm8KK3N5biBjYXNlIGlnbm9yZQorc3luIG1hdGNoCW1yeHZ0cmNLZXkJY29udGFpbmVkIHNraXB3aGl0ZQorCQkJICAgIFwgbmV4dGdyb3VwPW1yeHZ0cmNNYWNybyxtcnh2dHJjRXJyb3IKKwkJCSAgICBcICdcdlwuKChwcmltYXJ5fGFkZHxjdHJsfGFsdHxtZXRhfHNoaWZ0KVwrKSpcdys6Jworc3luIGNhc2UgbWF0Y2gKIAorIiBNYWNyb3Mgd2l0aG91dCBhcmd1bWVudHMKK3N5biBrZXl3b3JkCW1yeHZ0cmNNYWNybwljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1tcnh2dHJjRXJyb3IKKwkJCQlcIER1bW15IENvcHkgUGFzdGUgVG9nZ2xlVmVyeUJvbGQKKwkJCQlcIFRvZ2dsZVRyYW5zcGFyZW5jeSBUb2dnbGVCcm9hZGNhc3QKKwkJCQlcIFRvZ2dsZUhvbGQgU2V0VGl0bGUgVG9nZ2xlTWFjcm9zCisJCQkJXCBUb2dnbGVGdWxsc2NyZWVuCiAKLXVubGV0IHM6c3RyT3B0cyBzOmJvb2xPcHRzIHM6Y29sb3JPcHRzIHM6bnVtT3B0cworIiBNYWNyb3Mgd2l0aCBhIHN0cmluZyBhcmd1bWVudAorc3luIGtleXdvcmQJbXJ4dnRyY01hY3JvCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW1yeHZ0cmNTdHJWYWwKKwkJCQlcIEVzYyBTdHIgRXhlYyBTY3JvbGwgUHJpbnRTY3JlZW4gU2F2ZUNvbmZpZworCisiIE1hY3JvcyB3aXRoIGEgbnVtZXJpYyBhcmd1bWVudAorc3luIGtleXdvcmQJbXJ4dnRyY01hY3JvCWNvbnRhaW5lZCBza2lwd2hpdGUKKwkJCQlcIG5leHRncm91cD1tcnh2dHJjTnVtVmFsLG1yeHZ0cmNFcnJvcgorCQkJCVwgQ2xvc2UgR290b1RhYiBNb3ZlVGFiIFJlc2l6ZUZvbnQKKworIiBOZXdUYWIgbWFjcm8KK3N5biBrZXl3b3JkCW1yeHZ0cmNNYWNybwljb250YWluZWQgc2tpcHdoaXRlCisJCQkJXCBuZXh0Z3JvdXA9bXJ4dnRyY1RpdGxlLG1yeHZ0cmNTaGVsbCxtcnh2dHJjQ21kCisJCQkJXCBOZXdUYWIKK3N5biByZWdpb24JbXJ4dnRyY1RpdGxlCWNvbnRhaW5lZCBvbmVsaW5lIHNraXB3aGl0ZQorCQkJCVwgbmV4dGdyb3VwPW1yeHZ0cmNTaGVsbCxtcnh2dHJjQ21kCisJCQkJXCBzdGFydD0nIicgZW5kPSciJworc3luIG1hdGNoCW1yeHZ0cmNTaGVsbAljb250YWluZWQgbmV4dGdyb3VwPW1yeHZ0cmNDbWQgJyEnIAorc3luIG1hdGNoCW1yeHZ0cmNDbWQJY29udGFpbmVkICdcdlteISIgXHRdLionCisKKyIgVG9nZ2xlU3Vid2luIG1hY3JvCitzeW4ga2V5d29yZAltcnh2dHJjTWFjcm8JY29udGFpbmVkIHNraXB3aGl0ZQorCQkJCVwgbmV4dGdyb3VwPW1yeHZ0cmNTdWJ3aW4sbXJ4dnRyY0Vycm9yCisJCQkJXCBUb2dnbGVTdWJ3aW4KK3N5biBtYXRjaAltcnh2dHJjU3Vid2luCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW1yeHZ0cmNFcnJvcgorCQkJCVwgJ1x2Wy0rXT9bYm1zdF0+JwogCiAiCiAiIEhpZ2hsaWdodGluZyBncm91cHMKICIKK2hpIGRlZiBsaW5rIG1yeHZ0cmNFcnJvcglFcnJvcgogaGkgZGVmIGxpbmsgbXJ4dnRyY0NvbW1lbnQJQ29tbWVudAogCi1oaSBkZWYgbGluayBtcnh2dHJjQm9vbE9wdHMJU3RhdGVtZW50Ci1oaSBkZWYgbGluayBtcnh2dHJjQ29sb3JPcHRzCW1yeHZ0cmNCb29sT3B0cwotaGkgZGVmIGxpbmsgbXJ4dnRyY051bU9wdHMJbXJ4dnRyY0Jvb2xPcHRzCi1oaSBkZWYgbGluayBtcnh2dHJjU3RyT3B0cwltcnh2dHJjQm9vbE9wdHMKLWhpIGRlZiBsaW5rIG1yeHZ0cmNPcHRpb25zCW1yeHZ0cmNCb29sT3B0cworaGkgZGVmIGxpbmsgbXJ4dnRyY0NsYXNzCVN0YXRlbWVudAoraGkgZGVmIGxpbmsgbXJ4dnRyY09wdGlvbnMJbXJ4dnRyY0NsYXNzCitoaSBkZWYgbGluayBtcnh2dHJjQkNvbG9uCW1yeHZ0cmNDbGFzcworaGkgZGVmIGxpbmsgbXJ4dnRyY0NDb2xvbgltcnh2dHJjQ2xhc3MKK2hpIGRlZiBsaW5rIG1yeHZ0cmNOQ29sb24JbXJ4dnRyY0NsYXNzCitoaSBkZWYgbGluayBtcnh2dHJjU0NvbG9uCW1yeHZ0cmNDbGFzcworaGkgZGVmIGxpbmsgbXJ4dnRyY1Byb2ZpbGUJbXJ4dnRyY0NsYXNzCitoaSBkZWYgbGluayBtcnh2dHJjUFNPcHRzCW1yeHZ0cmNDbGFzcworaGkgZGVmIGxpbmsgbXJ4dnRyY1BDT3B0cwltcnh2dHJjQ2xhc3MKK2hpIGRlZiBsaW5rIG1yeHZ0cmNQTk9wdHMJbXJ4dnRyY0NsYXNzCiAKIGhpIGRlZiBsaW5rIG1yeHZ0cmNCb29sVmFsCUJvb2xlYW4KIGhpIGRlZiBsaW5rIG1yeHZ0cmNTdHJWYWwJU3RyaW5nCkBAIC0xNDMsOSArMjY4LDEwIEBACiBoaSBkZWYgbGluayBtcnh2dHJjU2VsU3R5CW1yeHZ0cmNTdHJWYWwKIAogaGkgZGVmIGxpbmsgbXJ4dnRyY01hY3JvCUlkZW50aWZpZXIKLWhpIGRlZiBsaW5rIG1yeHZ0cmNNYWNyb0FyZwlTdHJpbmcKLQotaGkgZGVmIGxpbmsgbXJ4dnRyY09wdEVycglFcnJvcgotaGkgZGVmIGxpbmsgbXJ4dnRyY1ZhbEVycglFcnJvcgoraGkgZGVmIGxpbmsgbXJ4dnRyY0tleQkJbXJ4dnRyY0NsYXNzCitoaSBkZWYgbGluayBtcnh2dHJjVGl0bGUJbXJ4dnRyY1N0clZhbAoraGkgZGVmIGxpbmsgbXJ4dnRyY1NoZWxsCVNwZWNpYWwKK2hpIGRlZiBsaW5rIG1yeHZ0cmNDbWQJCVByZVByb2MKK2hpIGRlZiBsaW5rIG1yeHZ0cmNTdWJ3aW4JbXJ4dnRyY1N0clZhbAogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJtcnh2dHJjIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcG9kLnZpbSBiL3J1bnRpbWUvc3ludGF4L3BvZC52aW0KaW5kZXggMzhmYTE4Zi4uOTgwOWQwMCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcG9kLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9wb2QudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVBlcmwgUE9EIGZvcm1hdAogIiBNYWludGFpbmVyOglTY290dCBCaWdoYW0gPGRzYkBraWxsZXJidW5uaWVzLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDUgSnVsIDA1CisiIExhc3QgQ2hhbmdlOgkyMDA3IEphbiAyMQogCiAiIFRvIGFkZCBlbWJlZGRlZCBQT0QgZG9jdW1lbnRhdGlvbiBoaWdobGlnaHRpbmcgdG8geW91ciBzeW50YXggZmlsZSwgYWRkCiAiIHRoZSBjb21tYW5kczoKQEAgLTUzLDYgKzUzLDcgQEAKIAogIiBTcGVjaWFsIGZvcm1hdHRpbmcgc2VxdWVuY2VzCiBzeW4gcmVnaW9uIHBvZEZvcm1hdAlzdGFydD0iW0lCU0NMRlhdPFtePF0ibWU9ZS0xIGVuZD0iPiIgb25lbGluZSBjb250YWlucz1wb2RGb3JtYXQsQE5vU3BlbGwKK3N5biByZWdpb24gcG9kRm9ybWF0CXN0YXJ0PSJbSUJTQ0xGWF08PFxzIiBlbmQ9IlxzPj4iIG9uZWxpbmUgY29udGFpbnM9cG9kRm9ybWF0LEBOb1NwZWxsCiBzeW4gbWF0Y2ggIHBvZEZvcm1hdAkiWjw+Igogc3luIG1hdGNoICBwb2RGb3JtYXQJIkU8XChcZFwrXHxcSVxpKlwpPiIgY29udGFpbnM9cG9kRXNjYXBlLHBvZEVzY2FwZTIsQE5vU3BlbGwKIHN5biBtYXRjaCAgcG9kRXNjYXBlCSJcSVxpKj4ibWU9ZS0xIGNvbnRhaW5lZCBjb250YWlucz1ATm9TcGVsbApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcHl0aG9uLnZpbSBiL3J1bnRpbWUvc3ludGF4L3B5dGhvbi52aW0KaW5kZXggNzQ5NmMzZC4uNTI4OGQ5YiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcHl0aG9uLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9weXRob24udmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVB5dGhvbgogIiBNYWludGFpbmVyOglOZWlsIFNjaGVtZW5hdWVyIDxuYXNAcHl0aG9uLmNhPgotIiBVcGRhdGVkOgkyMDAyLTEwLTE4CisiIFVwZGF0ZWQ6CTIwMDYtMTAtMTUKICIJCUFkZGVkIFB5dGhvbiAyLjQgZmVhdHVyZXMgMjAwNiBNYXkgNCAoRG1pdHJ5IFZhc2lsaWV2KQogIgogIiBPcHRpb25zIHRvIGNvbnRyb2wgUHl0aG9uIHN5bnRheCBoaWdobGlnaHRpbmc6CkBAIC00MCw3ICs0MCw3IEBACiBzeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJYnJlYWsgY29udGludWUgZGVsCiBzeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJZXhjZXB0IGV4ZWMgZmluYWxseQogc3luIGtleXdvcmQgcHl0aG9uU3RhdGVtZW50CXBhc3MgcHJpbnQgcmFpc2UKLXN5biBrZXl3b3JkIHB5dGhvblN0YXRlbWVudAlyZXR1cm4gdHJ5CitzeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJcmV0dXJuIHRyeSB3aXRoCiBzeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJZ2xvYmFsIGFzc2VydAogc3luIGtleXdvcmQgcHl0aG9uU3RhdGVtZW50CWxhbWJkYSB5aWVsZAogc3luIGtleXdvcmQgcHl0aG9uU3RhdGVtZW50CWRlZiBjbGFzcyBuZXh0Z3JvdXA9cHl0aG9uRnVuY3Rpb24gc2tpcHdoaXRlCkBAIC01MCwyMSArNTAsMjEgQEAKIHN5biBrZXl3b3JkIHB5dGhvbk9wZXJhdG9yCWFuZCBpbiBpcyBub3Qgb3IKICIgQVMgd2lsbCBiZSBhIGtleXdvcmQgaW4gUHl0aG9uIDMKIHN5biBrZXl3b3JkIHB5dGhvblByZUNvbmRpdAlpbXBvcnQgZnJvbSBhcwotc3luIG1hdGNoICAgcHl0aG9uQ29tbWVudAkiIy4qJCIgY29udGFpbnM9cHl0aG9uVG9kbworc3luIG1hdGNoICAgcHl0aG9uQ29tbWVudAkiIy4qJCIgY29udGFpbnM9cHl0aG9uVG9kbyxAU3BlbGwKIHN5biBrZXl3b3JkIHB5dGhvblRvZG8JCVRPRE8gRklYTUUgWFhYIGNvbnRhaW5lZAogCiAiIERlY29yYXRvcnMgKG5ldyBpbiBQeXRob24gMi40KQogc3luIG1hdGNoICAgcHl0aG9uRGVjb3JhdG9yCSJAIiBkaXNwbGF5IG5leHRncm91cD1weXRob25GdW5jdGlvbiBza2lwd2hpdGUKIAogIiBzdHJpbmdzCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZwkJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPScrIGVuZD0rJysgc2tpcD0rXFxcXFx8XFwnKyBjb250YWlucz1weXRob25Fc2NhcGUKLXN5biByZWdpb24gcHl0aG9uU3RyaW5nCQltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9IisgZW5kPSsiKyBza2lwPStcXFxcXHxcXCIrIGNvbnRhaW5zPXB5dGhvbkVzY2FwZQotc3luIHJlZ2lvbiBweXRob25TdHJpbmcJCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD0iIiIrIGVuZD0rIiIiKyBjb250YWlucz1weXRob25Fc2NhcGUKLXN5biByZWdpb24gcHl0aG9uU3RyaW5nCQltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9JycnKyBlbmQ9KycnJysgY29udGFpbnM9cHl0aG9uRXNjYXBlCi1zeW4gcmVnaW9uIHB5dGhvblJhd1N0cmluZwltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9W3JSXScrIGVuZD0rJysgc2tpcD0rXFxcXFx8XFwnKwotc3luIHJlZ2lvbiBweXRob25SYXdTdHJpbmcJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPVtyUl0iKyBlbmQ9KyIrIHNraXA9K1xcXFxcfFxcIisKLXN5biByZWdpb24gcHl0aG9uUmF3U3RyaW5nCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD1bclJdIiIiKyBlbmQ9KyIiIisKLXN5biByZWdpb24gcHl0aG9uUmF3U3RyaW5nCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD1bclJdJycnKyBlbmQ9KycnJysKK3N5biByZWdpb24gcHl0aG9uU3RyaW5nCQltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9JysgZW5kPSsnKyBza2lwPStcXFxcXHxcXCcrIGNvbnRhaW5zPXB5dGhvbkVzY2FwZSxAU3BlbGwKK3N5biByZWdpb24gcHl0aG9uU3RyaW5nCQltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9IisgZW5kPSsiKyBza2lwPStcXFxcXHxcXCIrIGNvbnRhaW5zPXB5dGhvbkVzY2FwZSxAU3BlbGwKK3N5biByZWdpb24gcHl0aG9uU3RyaW5nCQltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9IiIiKyBlbmQ9KyIiIisgY29udGFpbnM9cHl0aG9uRXNjYXBlLEBTcGVsbAorc3luIHJlZ2lvbiBweXRob25TdHJpbmcJCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD0nJycrIGVuZD0rJycnKyBjb250YWlucz1weXRob25Fc2NhcGUsQFNwZWxsCitzeW4gcmVnaW9uIHB5dGhvblJhd1N0cmluZwltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9W3JSXScrIGVuZD0rJysgc2tpcD0rXFxcXFx8XFwnKyBjb250YWlucz1AU3BlbGwKK3N5biByZWdpb24gcHl0aG9uUmF3U3RyaW5nCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD1bclJdIisgZW5kPSsiKyBza2lwPStcXFxcXHxcXCIrIGNvbnRhaW5zPUBTcGVsbAorc3luIHJlZ2lvbiBweXRob25SYXdTdHJpbmcJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPVtyUl0iIiIrIGVuZD0rIiIiKyBjb250YWlucz1AU3BlbGwKK3N5biByZWdpb24gcHl0aG9uUmF3U3RyaW5nCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD1bclJdJycnKyBlbmQ9KycnJysgY29udGFpbnM9QFNwZWxsCiBzeW4gbWF0Y2ggIHB5dGhvbkVzY2FwZQkJK1xcW2FiZm5ydHYnIlxcXSsgY29udGFpbmVkCiBzeW4gbWF0Y2ggIHB5dGhvbkVzY2FwZQkJIlxcXG9cezEsM30iIGNvbnRhaW5lZAogc3luIG1hdGNoICBweXRob25Fc2NhcGUJCSJcXHhceFx7Mn0iIGNvbnRhaW5lZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGNsLnZpbSBiL3J1bnRpbWUvc3ludGF4L3RjbC52aW0KaW5kZXggMTQ1ZGE5MC4uZTk1NjJkNiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdGNsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC90Y2wudmltCkBAIC0xLDEwICsxLDExIEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJVENML1RLCi0iIE1haW50YWluZXI6CURlYW4gQ29wc2V5IDxjb3BzZXlAY3MudWNkYXZpcy5lZHU+CisiIE1haW50YWluZXI6CUJyZXR0IENhbm5vbiA8YnJldHRAcHl0aG9uLm9yZz4KKyIgCQkocHJldmlvdXNseSBEZWFuIENvcHNleSA8Y29wc2V5QGNzLnVjZGF2aXMuZWR1PikKICIJCShwcmV2aW91c2x5IE1hdHQgTmV1bWFubiA8bWF0dG5ldUBwdXJwbGV0dXJ0bGUuY29tPikKICIJCShwcmV2aW91c2x5IEFsbGFuIEtlbGx5IDxhbGxhbkBmcnVpdGxvYWYuY28udWs+KQogIiBPcmlnaW5hbDoJUm9iaW4gQmVja2VyIDxyb2JpbkBqZXNzaWthdC5kZW1vbi5jby51az4KLSIgTGFzdCBDaGFuZ2U6CTIwMDQgTWF5IDE2CisiIExhc3QgQ2hhbmdlOgkyMDA2IE5vdiAxNwogIgogIiBLZXl3b3JkcyBUT0RPOiBmb3JtYXQgY2xvY2sgY2xpY2sgYW5jaG9yCiAKQEAgLTE3LDkgKzE4LDE2IEBACiBlbmRpZgogCiAiIEEgYnVuY2ggb2YgdXNlZnVsIGtleXdvcmRzCi1zeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQJcHJvYyBnbG9iYWwgcmV0dXJuIGxpbmRleAotc3luIGtleXdvcmQgdGNsU3RhdGVtZW50CWxsZW5ndGggbGFwcGVuZCBscmVwbGFjZSBscmFuZ2UgbGlzdCBjb25jYXQgaW5jcgotc3luIGtleXdvcmQgdGNsU3RhdGVtZW50CXVwdmFyIHNldAorc3luIGtleXdvcmQgdGNsU3RhdGVtZW50ICB0ZWxsIHNvY2tldCBzdWJzdCBvcGVuIGVvZiBwd2QgZ2xvYiBsaXN0IGV4ZWMgcGlkCitzeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgIGF1dG9fbG9hZF9pbmRleCB0aW1lIHVua25vd24gZXZhbCBscmFuZ2UgZmJsb2NrZWQKK3N5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgbHNlYXJjaCBhdXRvX2ltcG9ydCBnZXRzIGxhcHBlbmQgcHJvYyB2YXJpYWJsZSBsbGVuZ3RoCitzeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgIGF1dG9fZXhlY29rIHJldHVybiBsaW5zZXJ0IGVycm9yIGNhdGNoIGNsb2NrIGluZm8KK3N5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgc3BsaXQgYXJyYXkgZmNvbmZpZ3VyZSBjb25jYXQgam9pbiBscmVwbGFjZSBzb3VyY2UKK3N5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgZmNvcHkgZ2xvYmFsIGF1dG9fcXVhbGlmeSB1cGRhdGUgY2xvc2UgY2QgYXV0b19sb2FkCitzeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgIGZpbGUgYXBwZW5kIGZvcm1hdCByZWFkIHBhY2thZ2Ugc2V0IGJpbmFyeSBuYW1lc3BhY2UKK3N5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgc2NhbiB0cmFjZSBzZWVrIGZsdXNoIGFmdGVyIHZ3YWl0IHVwbGV2ZWwgbHNldCByZW5hbWUKK3N5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgZmlsZWV2ZW50IHJlZ2V4cCB1cHZhciB1bnNldCBlbmNvZGluZyBleHByIGxvYWQgcmVnc3ViCitzeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgaW50ZXJwIGV4aXQgcHV0cyBpbmNyIGxpbmRleCBsc29ydCB0Y2xMb2cgc3RyaW5nCiBzeW4ga2V5d29yZCB0Y2xMYWJlbAkJY2FzZSBkZWZhdWx0CiBzeW4ga2V5d29yZCB0Y2xDb25kaXRpb25hbAlpZiB0aGVuIGVsc2UgZWxzZWlmIHN3aXRjaAogc3luIGtleXdvcmQgdGNsUmVwZWF0CQl3aGlsZSBmb3IgZm9yZWFjaCBicmVhayBjb250aW51ZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvenNoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3pzaC52aW0KaW5kZXggODM3NjNhNi4uNzYxZTNhYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvenNoLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC96c2gudmltCkBAIC0xLDExOCArMSwxOTQgQEAKICIgVmltIHN5bnRheCBmaWxlCi0iIExhbmd1YWdlOglaIHNoZWxsICh6c2gpCi0iIE1haW50YWluZXI6CUZlbGl4IHZvbiBMZWl0bmVyIDxsZWl0bmVyQG1hdGguZnUtYmVybGluLmRlPgotIiBIZWF2aWx5IGJhc2VkIG9uIHNoLnZpbSBieSBMZW5uYXJ0IFNjaHVsdHoKLSIgTGFzdCBDaGFuZ2U6CTIwMDMgTWF5IDExCisiIExhbmd1YWdlOiAgICAgICAgIFpzaCBzaGVsbCBzY3JpcHQKKyIgTWFpbnRhaW5lcjogICAgICAgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+CisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDYtMDgtMDYKIAotIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKLSIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKLWlmIHZlcnNpb24gPCA2MDAKLSAgc3ludGF4IGNsZWFyCi1lbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaAogZW5kaWYKIAotIiBTdHJpbmcgYW5kIENoYXJhY3RlciBjb250c3RhbnRzCi0iIEhpZ2hsaWdodCBzcGVjaWFsIGNoYXJhY3RlcnMgKHRob3NlIHdoaWNoIGhhdmUgYSBiYWNrc2xhc2gpIGRpZmZlcmVudGx5Ci1zeW4gbWF0Y2ggICB6c2hTcGVjaWFsCSJcXFxkXGRcZFx8XFxbYWJjZm5ydHZcXCddIgotc3luIHJlZ2lvbgl6c2hTaW5nbGVxdW90ZQlzdGFydD0rJysgc2tpcD0rXFwnKyBlbmQ9KycrCi0iIEEgYnVuY2ggb2YgdXNlZnVsIHpzaCBrZXl3b3JkcwotIiBzeW4ga2V5d29yZAl6c2hGdW5jdGlvbglmdW5jdGlvbgotc3luIGtleXdvcmQJenNoU3RhdGVtZW50CWJnIGJyZWFrIGNkIGNoZGlyIGNvbnRpbnVlIGVjaG8gZXZhbCBleGVjCi1zeW4ga2V5d29yZAl6c2hTdGF0ZW1lbnQJZXhpdCBleHBvcnQgZmcgZ2V0b3B0cyBoYXNoIGpvYnMga2lsbAotc3luIGtleXdvcmQJenNoU3RhdGVtZW50CXB3ZCByZWFkIHJlYWRvbmx5IHJldHVybiBzZXQgenNoaWZ0IGZ1bmN0aW9uCi1zeW4ga2V5d29yZAl6c2hTdGF0ZW1lbnQJc3RvcCBzdXNwZW5kIHRlc3QgdGltZXMgdHJhcCB0eXBlIHVsaW1pdAotc3luIGtleXdvcmQJenNoU3RhdGVtZW50CXVtYXNrIHVuc2V0IHdhaXQgc2V0b3B0IGNvbXBjdGwgc291cmNlCi1zeW4ga2V5d29yZAl6c2hTdGF0ZW1lbnQJd2hlbmNlIGRpc293biBzaGlmdCB3aGljaCB1bmhhc2ggdW5hbGlhcwotc3luIGtleXdvcmQJenNoU3RhdGVtZW50CWFsaWFzIGZ1bmN0aW9ucyB1bmZ1bmN0aW9uIGdldGxuIGRpc2FibGUKLXN5biBrZXl3b3JkCXpzaFN0YXRlbWVudAl2YXJlZCBnZXRvcHQgZW5hYmxlIHVuc2V0b3B0IGF1dG9sb2FkCi1zeW4ga2V5d29yZAl6c2hTdGF0ZW1lbnQJYmluZGtleSBwdXNobG4gY29tbWFuZCBsaW1pdCB1bmxpbWl0IGZjCi1zeW4ga2V5d29yZAl6c2hTdGF0ZW1lbnQJcHJpbnQgYnVpbHRpbiBub2dsb2Igc2NoZWQgciB0aW1lCi1zeW4ga2V5d29yZAl6c2hTdGF0ZW1lbnQJdHlwZXNldCBkZWNsYXJlIGxvY2FsIGludGVnZXIKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwbyZ2aW0KIAotc3luIGtleXdvcmQJenNoQ29uZGl0aW9uYWwJaWYgZWxzZSBlc2FjIGNhc2UgdGhlbiBlbGlmIGZpIGluCi1zeW4ga2V5d29yZAl6c2hSZXBlYXQJd2hpbGUgZm9yIGRvIGRvbmUKK3NldGxvY2FsIGlza2V5d29yZD1ALDQ4LTU3LF8sLQogCi0iIEZvbGxvd2luZyBpcyB3b3J0aCB0byBub3RpY2U6IGNvbW1hbmQgc3Vic3RpdHV0aW9uLCBmaWxlIHJlZGlyZWN0aW9uIGFuZCBmdW5jdGlvbnMgKHNvIHRoZXNlIGZlYXR1cmVzIHR1cm5zIHJlZCkKLXN5biBtYXRjaAl6c2hGdW5jdGlvbk5hbWUJIlxoXHcqXHMqKCkiCi1zeW4gcmVnaW9uCXpzaENvbW1hbmRTdWIJc3RhcnQ9K2ArIHNraXA9K1xcYCsgZW5kPStgKwotIiBjb250YWlucz1BTExCVVQsenNoRnVuY3Rpb24KLXN5biBtYXRjaAl6c2hSZWRpcgkiXGRcPVwoPFx8PDxcfD5cfD4+XClcKHxcfCZcZFwpXD0iCitzeW4ga2V5d29yZCB6c2hUb2RvICAgICAgICAgICAgIGNvbnRhaW5lZCBUT0RPIEZJWE1FIFhYWCBOT1RFCiAKLXN5biBrZXl3b3JkCXpzaFRvZG8gY29udGFpbmVkIFRPRE8KK3N5biByZWdpb24gIHpzaENvbW1lbnQgICAgICAgICAgZGlzcGxheSBvbmVsaW5lIHN0YXJ0PSdcJSheXHxcc1wpIycgZW5kPSckJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5zPXpzaFRvZG8sQFNwZWxsCiAKLXN5biBrZXl3b3JkCXpzaFNoZWxsVmFyaWFibGVzCVVTRVIgTE9HTkFNRSBIT01FIFBBVEggQ0RQQVRIIFNIRUxMCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlMQ19UWVBFIExDX01FU1NBR0UgTUFJTCBNQUlMQ0hFQ0sKLXN5biBrZXl3b3JkCXpzaFNoZWxsVmFyaWFibGVzCVBTMSBQUzIgSUZTIEVHSUQgRVVJRCBFUlJOTyBHSUQgVUlECi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlIT1NUIExJTkVOTyBNQUNIVFlQRSBPTERQV0QgT1BUQVJHCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlPUFRJTkQgT1NUWVBFIFBQSUQgUFdEIFJBTkRPTSBTRUNPTkRTCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlTSExWTCBUVFkgc2lnbmFscyBUVFlJRExFIFVTRVJOQU1FCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlWRU5ET1IgWlNIX05BTUUgWlNIX1ZFUlNJT04gQVJHVjAKLXN5biBrZXl3b3JkCXpzaFNoZWxsVmFyaWFibGVzCUJBVUQgQ09MVU1OUyBjZHBhdGggRElSU1RBQ0tTSVpFCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlGQ0VESVQgZmlnbm9yZSBmcGF0aCBoaXN0Y2hhcnMgSElTVENIQVJTCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlISVNURklMRSBISVNUU0laRSBLRVlUSU1FT1VUIExBTkcKLXN5biBrZXl3b3JkCXpzaFNoZWxsVmFyaWFibGVzCUxDX0FMTCBMQ19DT0xMQVRFIExDX0NUWVBFIExDX01FU1NBR0VTCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlMQ19USU1FIExJTkVTIExJU1RNQVggTE9HQ0hFQ0sgbWFpbHBhdGgKLXN5biBrZXl3b3JkCXpzaFNoZWxsVmFyaWFibGVzCU1BSUxQQVRIIE1BTlBBVEggbWFucGF0aCBtb2R1bGVfcGF0aAotc3luIGtleXdvcmQJenNoU2hlbGxWYXJpYWJsZXMJTU9EVUxFX1BBVEggTlVMTENNRCBwYXRoIFBPU1RFRElUCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlQUzMgUFM0IFBST01QVCBQUk9NUFQyIFBST01QVDMgUFJPTVBUNAotc3luIGtleXdvcmQJenNoU2hlbGxWYXJpYWJsZXMJcHN2YXIgUFNWQVIgcHJvbXB0IFJFQUROVUxMQ01ECi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwlSRVBPUlRUSU1FIFJQUk9NUFQgUlBTMSBTQVZFSElTVAotc3luIGtleXdvcmQJenNoU2hlbGxWYXJpYWJsZXMJU1BST01QVCBTVFRZIFRJTUVGTVQgVE1PVVQgVE1QUFJFRklYCi1zeW4ga2V5d29yZAl6c2hTaGVsbFZhcmlhYmxlcwl3YXRjaCBXQVRDSCBXQVRDSEZNVCBXT1JEQ0hBUlMgWkRPVERJUgotc3luIG1hdGNoCXpzaFNwZWNpYWxTaGVsbFZhcgkiXCRbLSNAKiQ/ITAtOV0iCi1zeW4ga2V5d29yZAl6c2hTZXRWYXJpYWJsZXMJCWlnbm9yZWVvZiBub2Nsb2JiZXIKLXN5biByZWdpb24JenNoRGVyZWZPcHIJc3RhcnQ9IlwkeyIgZW5kPSJ9IiBjb250YWlucz16c2hTaGVsbFZhcmlhYmxlcwotc3luIG1hdGNoCXpzaERlcmVmSWRlbnRpZmllcgkiXCRbYS16QS1aX11bYS16QS1aMC05X10qXD4iCi1zeW4gbWF0Y2gJenNoT3BlcmF0b3IJCSJbXVt9eyY7fCkoXSIKK3N5biBtYXRjaCAgIHpzaFByZVByb2MgICAgICAgICAgJ15cJTFsI1wlKCFcfGNvbXBkZWZcfGF1dG9sb2FkXCkuKiQnCiAKK3N5biBtYXRjaCAgIHpzaFF1b3RlZCAgICAgICAgICAgJ1xcLicKK3N5biByZWdpb24gIHpzaFN0cmluZyAgICAgICAgICAgbWF0Y2hncm91cD16c2hTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9KyIrIGVuZD0rIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz16c2hRdW90ZWQsQHpzaERlcmVmcyxAenNoU3Vic3QKK3N5biByZWdpb24gIHpzaFN0cmluZyAgICAgICAgICAgbWF0Y2hncm91cD16c2hTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9KycrIGVuZD0rJysKKyIgWFhYOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBtb3JlIHByZWNpc2UsIGJ1dCBac2ggc2VlbXMgYSBiaXQgY29uZnVzZWQgYWJvdXQgaXQgaXRzZWxmCitzeW4gcmVnaW9uICB6c2hQT1NJWFN0cmluZyAgICAgIG1hdGNoZ3JvdXA9enNoU3RyaW5nRGVsaW1pdGVyIHN0YXJ0PStcJCcrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZW5kPSsnKyBjb250YWlucz16c2hRdW90ZWQKK3N5biBtYXRjaCAgIHpzaEpvYlNwZWMgICAgICAgICAgJyVcKFxkXCtcfD9cPVx3XCtcfFslKy1dXCknCiAKK3N5biBrZXl3b3JkIHpzaFByZWNvbW1hbmQgICAgICAgbm9nbG9iIG5vY29ycmVjdCBleGVjIGNvbW1hbmQgYnVpbHRpbiAtIHRpbWUKIAotc3luIG1hdGNoICB6c2hOdW1iZXIJCSItXD1cPFxkXCtcPiIKLXN5biBtYXRjaCAgenNoQ29tbWVudAkiIy4qJCIgY29udGFpbnM9enNoTnVtYmVyLHpzaFRvZG8KK3N5biBrZXl3b3JkIHpzaERlbGltaXRlciAgICAgICAgZG8gZG9uZQogCitzeW4ga2V5d29yZCB6c2hDb25kaXRpb25hbCAgICAgIGlmIHRoZW4gZWxpZiBlbHNlIGZpIGNhc2UgaW4gZXNhYyBzZWxlY3QKIAotc3luIG1hdGNoIHpzaFRlc3RPcHIJIi1cPFtvZWF6bmxnXVt0ZnFldF1cPVw+XHwhXD09XHwtXDxbYi1na0xwcnNTdHV3anhPR11cPiIKLSJzeW4gcmVnaW9uIHpzaFRlc3QJICAgICAgc3RhcnQ9IlxbIiBza2lwPSJcXCQiIGVuZD0iXF0iIGNvbnRhaW5zPXpzaFN0cmluZyx6c2hUZXN0T3ByLHpzaERlcmVmSWRlbnRpZmllcix6c2hEZXJlZk9wcgotc3luIHJlZ2lvbiAgenNoU3RyaW5nCXN0YXJ0PSsiKyAgc2tpcD0rXFwiKyAgZW5kPSsiKyAgY29udGFpbnM9enNoU3BlY2lhbCx6c2hPcGVyYXRvcix6c2hEZXJlZklkZW50aWZpZXIsenNoRGVyZWZPcHIsenNoU3BlY2lhbFNoZWxsVmFyLHpzaFNpbmdsZXF1b3RlLHpzaENvbW1hbmRTdWIKK3N5biBrZXl3b3JkIHpzaFJlcGVhdCAgICAgICAgICAgZm9yIHdoaWxlIHVudGlsIHJlcGVhdCBmb3JlYWNoCiAKLSIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KLSIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQotIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAotaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX3pzaF9zeW50YXhfaW5pdHMiKQotICBpZiB2ZXJzaW9uIDwgNTA4Ci0gICAgbGV0IGRpZF96c2hfc3ludGF4X2luaXRzID0gMQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+Ci0gIGVsc2UKLSAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KLSAgZW5kaWYKK3N5biBrZXl3b3JkIHpzaEV4Y2VwdGlvbiAgICAgICAgYWx3YXlzCiAKLSAgSGlMaW5rIHpzaFNpbmdsZXF1b3RlCQl6c2hTdHJpbmcKLSAgSGlMaW5rIHpzaENvbmRpdGlvbmFsCQl6c2hTdGF0ZW1lbnQKLSAgSGlMaW5rIHpzaFJlcGVhdAkJenNoU3RhdGVtZW50Ci0gIEhpTGluayB6c2hGdW5jdGlvbk5hbWUJenNoRnVuY3Rpb24KLSAgSGlMaW5rIHpzaENvbW1hbmRTdWIJCXpzaE9wZXJhdG9yCi0gIEhpTGluayB6c2hSZWRpcgkJenNoT3BlcmF0b3IKLSAgSGlMaW5rIHpzaFNldFZhcmlhYmxlcwl6c2hTaGVsbFZhcmlhYmxlcwotICBIaUxpbmsgenNoU3BlY2lhbFNoZWxsVmFyCXpzaFNoZWxsVmFyaWFibGVzCi0gIEhpTGluayB6c2hUZXN0T3ByCQl6c2hPcGVyYXRvcgotICBIaUxpbmsgenNoRGVyZWZPcHIJCXpzaFNwZWNpYWwKLSAgSGlMaW5rIHpzaERlcmVmSWRlbnRpZmllcgl6c2hTaGVsbFZhcmlhYmxlcwotICBIaUxpbmsgenNoT3BlcmF0b3IJCU9wZXJhdG9yCi0gIEhpTGluayB6c2hTdGF0ZW1lbnQJCVN0YXRlbWVudAotICBIaUxpbmsgenNoTnVtYmVyCQlOdW1iZXIKLSAgSGlMaW5rIHpzaFN0cmluZwkJU3RyaW5nCi0gIEhpTGluayB6c2hDb21tZW50CQlDb21tZW50Ci0gIEhpTGluayB6c2hTcGVjaWFsCQlTcGVjaWFsCi0gIEhpTGluayB6c2hUb2RvCQlUb2RvCi0gIEhpTGluayB6c2hTaGVsbFZhcmlhYmxlcwlTcGVjaWFsCi0iICBoaSB6c2hPcGVyYXRvcgkJdGVybT11bmRlcmxpbmUgY3Rlcm1mZz02IGd1aWZnPVB1cnBsZSBndWk9Ym9sZAotIiAgaGkgenNoU2hlbGxWYXJpYWJsZXMJdGVybT11bmRlcmxpbmUgY3Rlcm1mZz0yIGd1aWZnPVNlYUdyZWVuIGd1aT1ib2xkCi0iICBoaSB6c2hGdW5jdGlvbgkJdGVybT1ib2xkIGN0ZXJtYmc9MSBndWlmZz1SZWQKK3N5biBrZXl3b3JkIHpzaEtleXdvcmQgICAgICAgICAgZnVuY3Rpb24gbmV4dGdyb3VwPXpzaEtTSEZ1bmN0aW9uIHNraXB3aGl0ZQogCi0gIGRlbGNvbW1hbmQgSGlMaW5rCitzeW4gbWF0Y2ggICB6c2hLU0hGdW5jdGlvbiAgICAgIGNvbnRhaW5lZCAnXGtcKycKK3N5biBtYXRjaCAgIHpzaEZ1bmN0aW9uICAgICAgICAgJ15ccypca1wrXHplXHMqKCknCisKK3N5biBtYXRjaCAgIHpzaE9wZXJhdG9yICAgICAgICAgJ3x8XHwmJlx8O1x8JiFcPScKKworc3luIG1hdGNoICAgenNoUmVkaXIgICAgICAgICAgICAnXGRcPVwoPFx8PD5cfDw8PFx8PCZccypbMC05cC1dXD1cKScKK3N5biBtYXRjaCAgIHpzaFJlZGlyICAgICAgICAgICAgJ1xkXD1cKD5cfD4+XHw+JlxzKlswLTlwLV1cPVx8Jj5cfD4+Jlx8Jj4+XClbfCFdXD0nCitzeW4gbWF0Y2ggICB6c2hSZWRpciAgICAgICAgICAgICd8Jlw9JworCitzeW4gcmVnaW9uICB6c2hIZXJlRG9jICAgICAgICAgIG1hdGNoZ3JvdXA9enNoUmVkaXIgc3RhcnQ9Jzw8XHMqXHooXFMqXCknCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZW5kPSdeXHoxXD4nIGNvbnRhaW5zPUB6c2hTdWJzdAorc3luIHJlZ2lvbiAgenNoSGVyZURvYyAgICAgICAgICBtYXRjaGdyb3VwPXpzaFJlZGlyIHN0YXJ0PSc8PC1ccypceihcUypcKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBlbmQ9J15ccypcejFcPicgY29udGFpbnM9QHpzaFN1YnN0CitzeW4gcmVnaW9uICB6c2hIZXJlRG9jICAgICAgICAgIG1hdGNoZ3JvdXA9enNoUmVkaXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBzdGFydD0rPDxccypcKFsiJ11cKVx6KFxTKlwpXDErICBlbmQ9J15cejFcPicKK3N5biByZWdpb24gIHpzaEhlcmVEb2MgICAgICAgICAgbWF0Y2hncm91cD16c2hSZWRpcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHN0YXJ0PSs8PC1ccypcKFsiJ11cKVx6KFxTKlwpXDErCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZW5kPSdeXHMqXHoxXD4nCisKK3N5biBtYXRjaCAgIHpzaFZhcmlhYmxlICAgICAgICAgJ1w8XGhcdypcemUrXD09JworIiBYWFg6IGhvdyBzYWZlIGlzIHRoaXM/CitzeW4gcmVnaW9uICB6c2hWYXJpYWJsZSAgICAgICAgIG9uZWxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBzdGFydD0nXCRcQDwhXDxcaFx3KlxbJyBlbmQ9J1xdXHplK1w9PScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz1AenNoU3Vic3QKKworc3luIGNsdXN0ZXIgenNoRGVyZWZzICAgICAgICAgICBjb250YWlucz16c2hTaG9ydERlcmVmLHpzaExvbmdEZXJlZix6c2hEZXJlZgorCitpZiAhZXhpc3RzKCJnOnpzaF9zeW50YXhfdmFyaWFibGVzIikKKyAgbGV0IHM6enNoX3N5bnRheF92YXJpYWJsZXMgPSAnYWxsJworZWxzZQorICBsZXQgczp6c2hfc3ludGF4X3ZhcmlhYmxlcyA9IGc6enNoX3N5bnRheF92YXJpYWJsZXMKIGVuZGlmCiAKK2lmIHM6enNoX3N5bnRheF92YXJpYWJsZXMgPX4gJ3Nob3J0XHxhbGwnCisgIHN5biBtYXRjaCB6c2hTaG9ydERlcmVmICAgICAgICdcJFshIyQqQD9fLV1cd1xAIScKKyAgc3luIG1hdGNoIHpzaFNob3J0RGVyZWYgICAgICAgJ1wkWz1efl0qWyMrXSpcZFwrXD4nCitlbmRpZgorCitpZiBzOnpzaF9zeW50YXhfdmFyaWFibGVzID1+ICdsb25nXHxhbGwnCisgIHN5biBtYXRjaCB6c2hMb25nRGVyZWYgICAgICAgICdcJFwlKEFSR0NcfGFyZ3ZcfHN0YXR1c1x8cGlwZXN0YXR1c1x8Q1BVVFlQRVx8RUdJRFx8RVVJRFx8RVJSTk9cfEdJRFx8SE9TVFx8TElORU5PXHxMT0dOQU1FXCknCisgIHN5biBtYXRjaCB6c2hMb25nRGVyZWYgICAgICAgICdcJFwlKE1BQ0hUWVBFXHxPTERQV0QgT1BUQVJHXHxPUFRJTkRcfE9TVFlQRVx8UFBJRFx8UFdEXHxSQU5ET01cfFNFQ09ORFNcfFNITFZMXHxzaWduYWxzXCknCisgIHN5biBtYXRjaCB6c2hMb25nRGVyZWYgICAgICAgICdcJFwlKFRSWV9CTE9DS19FUlJPUlx8VFRZXHxUVFlJRExFXHxVSURcfFVTRVJOQU1FXHxWRU5ET1JcfFpTSF9OQU1FXHxaU0hfVkVSU0lPTlx8UkVQTFlcfHJlcGx5XHxURVJNXCknCitlbmRpZgorCitpZiBzOnpzaF9zeW50YXhfdmFyaWFibGVzID1+ICdhbGwnCisgIHN5biBtYXRjaCB6c2hEZXJlZiAgICAgICAgICAgICdcJFs9Xn5dKlsjK10qXGhcdypcPicKK2Vsc2UKKyAgc3luIG1hdGNoIHpzaERlcmVmICAgICAgICAgICAgdHJhbnNwYXJlbnQgJ1wkWz1efl0qWyMrXSpcaFx3Klw+JworZW5kaWYKKworc3luIG1hdGNoICAgenNoQ29tbWFuZHMgICAgICAgICAnXCUoXlx8XHNcKVsuOl1cemVccycKK3N5biBrZXl3b3JkIHpzaENvbW1hbmRzICAgICAgICAgYWxpYXMgYXV0b2xvYWQgYmcgYmluZGtleSBicmVhayBieWUgY2FwIGNkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY2hkaXIgY2xvbmUgY29tcGFyZ3VtZW50cyBjb21wY2FsbCBjb21wY3RsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29tcGRlc2NyaWJlIGNvbXBmaWxlcyBjb21wZ3JvdXBzIGNvbXBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbXB0YWdzIGNvbXB0cnkgY29tcHZhbHVlcyBjb250aW51ZSBkaXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZGlzYWJsZSBkaXNvd24gZWNobyBlY2hvdGMgZWNob3RpIGVtdWxhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBlbmFibGUgZXZhbCBleGVjIGV4aXQgZXhwb3J0IGZhbHNlIGZjIGZnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZnVuY3Rpb25zIGdldGNhcCBnZXRsbiBnZXRvcHRzIGhhc2ggaGlzdG9yeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGpvYnMga2lsbCBsZXQgbGltaXQgbG9nIGxvZ291dCBwb3BkIHByaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgcHJpbnRmIHB1c2hkIHB1c2hsbiBwd2QgciByZWFkIHJlYWRvbmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgcmVoYXNoIHJldHVybiBzY2hlZCBzZXQgc2V0Y2FwIHNldG9wdCBzaGlmdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNvdXJjZSBzdGF0IHN1c3BlbmQgdGVzdCB0aW1lcyB0cmFwIHRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCB0dHljdGwgdHlwZSB1bGltaXQgdW1hc2sgdW5hbGlhcyB1bmZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgdW5oYXNoIHVubGltaXQgdW5zZXQgdW5zZXRvcHQgdmFyZWQgd2FpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHdoZW5jZSB3aGVyZSB3aGljaCB6Y29tcGlsZSB6Zm9ybWF0IHpmdHAgemxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgem1vZGxvYWQgenBhcnNlb3B0cyB6cHJvZiB6cHR5IHpyZWdleHBhcnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgenNvY2tldCB6c3R5bGUgenRjcAorCitzeW4ga2V5d29yZCB6c2hUeXBlcyAgICAgICAgICAgIGZsb2F0IGludGVnZXIgbG9jYWwgdHlwZXNldCBkZWNsYXJlCisKKyIgWFhYOiB0aGlzIG1heSBiZSB0b28gbXVjaAorIiBzeW4gbWF0Y2ggICB6c2hTd2l0Y2hlcyAgICAgICAgICdcc1x6cy0tXD1bYS16QS1aMC05LV1cKycKKworc3luIG1hdGNoICAgenNoTnVtYmVyICAgICAgICAgICAnWystXVw9XDxcZFwrXD4nCitzeW4gbWF0Y2ggICB6c2hOdW1iZXIgICAgICAgICAgICdbKy1dXD1cPDB4XHhcK1w+Jworc3luIG1hdGNoICAgenNoTnVtYmVyICAgICAgICAgICAnWystXVw9XDwwXG9cK1w+Jworc3luIG1hdGNoICAgenNoTnVtYmVyICAgICAgICAgICAnWystXVw9XGRcKyNbLStdXD1cd1wrXD4nCitzeW4gbWF0Y2ggICB6c2hOdW1iZXIgICAgICAgICAgICdbKy1dXD1cZFwrXC5cZFwrXD4nCisKK3N5biBjbHVzdGVyIHpzaFN1YnN0ICAgICAgICAgICAgY29udGFpbnM9enNoU3Vic3QsenNoT2xkU3Vic3QsenNoTWF0aFN1YnN0CitzeW4gcmVnaW9uICB6c2hTdWJzdCAgICAgICAgICAgIG1hdGNoZ3JvdXA9enNoU3Vic3REZWxpbSB0cmFuc3BhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHN0YXJ0PSdcJCgnIHNraXA9J1xcKScgZW5kPScpJyBjb250YWlucz1UT1AKK3N5biByZWdpb24gIHpzaFBhcmVudGhlc2VzICAgICAgdHJhbnNwYXJlbnQgc3RhcnQ9JygnIHNraXA9J1xcKScgZW5kPScpJworc3luIHJlZ2lvbiAgenNoTWF0aFN1YnN0ICAgICAgICBtYXRjaGdyb3VwPXpzaFN1YnN0RGVsaW0gdHJhbnNwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBzdGFydD0nXCQoKCcgc2tpcD0nXFwpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG1hdGNoZ3JvdXA9enNoU3Vic3REZWxpbSBlbmQ9JykpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5zPXpzaFBhcmVudGhlc2VzLEB6c2hTdWJzdCx6c2hOdW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgQHpzaERlcmVmcyx6c2hTdHJpbmcKK3N5biByZWdpb24gIHpzaEJyYWNrZXRzICAgICAgICAgY29udGFpbmVkIHRyYW5zcGFyZW50IHN0YXJ0PSd7JyBza2lwPSdcXH0nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgZW5kPSd9Jworc3luIHJlZ2lvbiAgenNoU3Vic3QgICAgICAgICAgICBtYXRjaGdyb3VwPXpzaFN1YnN0RGVsaW0gc3RhcnQ9J1wkeycgc2tpcD0nXFx9JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGVuZD0nfScgY29udGFpbnM9QHpzaFN1YnN0LHpzaEJyYWNrZXRzLHpzaFF1b3RlZAorc3luIHJlZ2lvbiAgenNoT2xkU3Vic3QgICAgICAgICBtYXRjaGdyb3VwPXpzaFN1YnN0RGVsaW0gc3RhcnQ9K2ArIHNraXA9K1xcYCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBlbmQ9K2ArIGNvbnRhaW5zPVRPUCx6c2hPbGRTdWJzdAorCitoaSBkZWYgbGluayB6c2hUb2RvICAgICAgICAgICAgIFRvZG8KK2hpIGRlZiBsaW5rIHpzaENvbW1lbnQgICAgICAgICAgQ29tbWVudAoraGkgZGVmIGxpbmsgenNoUHJlUHJvYyAgICAgICAgICBQcmVQcm9jCitoaSBkZWYgbGluayB6c2hRdW90ZWQgICAgICAgICAgIFNwZWNpYWxDaGFyCitoaSBkZWYgbGluayB6c2hTdHJpbmcgICAgICAgICAgIFN0cmluZworaGkgZGVmIGxpbmsgenNoU3RyaW5nRGVsaW1pdGVyICB6c2hTdHJpbmcKK2hpIGRlZiBsaW5rIHpzaFBPU0lYU3RyaW5nICAgICAgenNoU3RyaW5nCitoaSBkZWYgbGluayB6c2hKb2JTcGVjICAgICAgICAgIFNwZWNpYWwKK2hpIGRlZiBsaW5rIHpzaFByZWNvbW1hbmQgICAgICAgU3BlY2lhbAoraGkgZGVmIGxpbmsgenNoRGVsaW1pdGVyICAgICAgICBLZXl3b3JkCitoaSBkZWYgbGluayB6c2hDb25kaXRpb25hbCAgICAgIENvbmRpdGlvbmFsCitoaSBkZWYgbGluayB6c2hFeGNlcHRpb24gICAgICAgIEV4Y2VwdGlvbgoraGkgZGVmIGxpbmsgenNoUmVwZWF0ICAgICAgICAgICBSZXBlYXQKK2hpIGRlZiBsaW5rIHpzaEtleXdvcmQgICAgICAgICAgS2V5d29yZAoraGkgZGVmIGxpbmsgenNoRnVuY3Rpb24gICAgICAgICBOb25lCitoaSBkZWYgbGluayB6c2hLU0hGdW5jdGlvbiAgICAgIHpzaEZ1bmN0aW9uCitoaSBkZWYgbGluayB6c2hIZXJlRG9jICAgICAgICAgIFN0cmluZworaWYgMAorICBoaSBkZWYgbGluayB6c2hPcGVyYXRvciAgICAgICAgIE9wZXJhdG9yCitlbHNlCisgIGhpIGRlZiBsaW5rIHpzaE9wZXJhdG9yICAgICAgICAgTm9uZQorZW5kaWYKK2lmIDEKKyAgaGkgZGVmIGxpbmsgenNoUmVkaXIgICAgICAgICAgICBPcGVyYXRvcgorZWxzZQorICBoaSBkZWYgbGluayB6c2hSZWRpciAgICAgICAgICAgIE5vbmUKK2VuZGlmCitoaSBkZWYgbGluayB6c2hWYXJpYWJsZSAgICAgICAgIE5vbmUKK2hpIGRlZiBsaW5rIHpzaERlcmVmZXJlbmNpbmcgICAgUHJlUHJvYworaWYgczp6c2hfc3ludGF4X3ZhcmlhYmxlcyA9fiAnc2hvcnRcfGFsbCcKKyAgaGkgZGVmIGxpbmsgenNoU2hvcnREZXJlZiAgICAgenNoRGVyZWZlcmVuY2luZworZWxzZQorICBoaSBkZWYgbGluayB6c2hTaG9ydERlcmVmICAgICBOb25lCitlbmRpZgoraWYgczp6c2hfc3ludGF4X3ZhcmlhYmxlcyA9fiAnbG9uZ1x8YWxsJworICBoaSBkZWYgbGluayB6c2hMb25nRGVyZWYgICAgICB6c2hEZXJlZmVyZW5jaW5nCitlbHNlCisgIGhpIGRlZiBsaW5rIHpzaExvbmdEZXJlZiAgICAgIE5vbmUKK2VuZGlmCitpZiBzOnpzaF9zeW50YXhfdmFyaWFibGVzID1+ICdhbGwnCisgIGhpIGRlZiBsaW5rIHpzaERlcmVmICAgICAgICAgIHpzaERlcmVmZXJlbmNpbmcKK2Vsc2UKKyAgaGkgZGVmIGxpbmsgenNoRGVyZWYgICAgICAgICAgTm9uZQorZW5kaWYKK2hpIGRlZiBsaW5rIHpzaENvbW1hbmRzICAgICAgICAgS2V5d29yZAoraGkgZGVmIGxpbmsgenNoVHlwZXMgICAgICAgICAgICBUeXBlCitoaSBkZWYgbGluayB6c2hTd2l0Y2hlcyAgICAgICAgIFNwZWNpYWwKK2hpIGRlZiBsaW5rIHpzaE51bWJlciAgICAgICAgICAgTnVtYmVyCitoaSBkZWYgbGluayB6c2hTdWJzdCAgICAgICAgICAgIFByZVByb2MKK2hpIGRlZiBsaW5rIHpzaE1hdGhTdWJzdCAgICAgICAgenNoU3Vic3QKK2hpIGRlZiBsaW5rIHpzaE9sZFN1YnN0ICAgICAgICAgenNoU3Vic3QKK2hpIGRlZiBsaW5rIHpzaFN1YnN0RGVsaW0gICAgICAgenNoU3Vic3QKKwogbGV0IGI6Y3VycmVudF9zeW50YXggPSAienNoIgogCi0iIHZpbTogdHM9OAorbGV0ICZjcG8gPSBzOmNwb19zYXZlCit1bmxldCBzOmNwb19zYXZlCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmRlIGIvcnVudGltZS90dXRvci90dXRvci5kZQppbmRleCBiYTgzNDNmLi43NDM4Yzk2IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmRlCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZGUKQEAgLTEsODQgKzEsNzcgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLT0gICAgVyBpIGwgbCBrIG8gbSBtIGUgbiAgIHogdSBtICAgViBJIE0gICBUIHUgdCBvIHIgICAgLSAgICBWZXJzaW9uIDEuNUQgICAgID0KKz0gICAgICBXIGkgbCBsIGsgbyBtIG0gZSBuICAgaW0gICBWIEkgTSAgIFQgdSB0IG8gciAgICAtICAgIFZlcnNpb24gMS43RCAgICAgID0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgVmltIGlzdCBlaW4gc2VociBt5GNodGlnZXIgRWRpdG9yLCBkZXIgdmllbGUgQmVmZWhsZSBiZXJlaXRzdGVsbHQ7IHp1IHZpZWxlLAogICAgdW0gYWxsZSBpbiBlaW5lbSBUdXRvciB3aWUgZGllc2VtIHp1IGVya2zkcmVuLiAgRGllc2VyIFR1dG9yIGlzdCBzbwotICAgZ2VzdGFsdGV0LCB1bSBnZW51ZyBCZWZlaGxlIHZvcnp1c3RlbGxlbiwgc28gZGFzcyBEdSBkaWUgRuRoaWdrZWl0IGVybGFuZ3N0LAorICAgZ2VzdGFsdGV0LCB1bSBnZW51ZyBCZWZlaGxlIHZvcnp1c3RlbGxlbiwgZGFzcyBEdSBkaWUgRuRoaWdrZWl0IGVybGFuZ3N0LAogICAgVmltIG1pdCBMZWljaHRpZ2tlaXQgYWxzIGVpbmVuIEFsbHp3ZWNrLUVkaXRvciB6dSBiZW51dHplbi4KLQogICAgRGllIFplaXQgZvxyIGRhcyBEdXJjaGFyYmVpdGVuIGRpZXNlcyBUdXRvcnMgYmV0cuRndCBjYS4gMjUtMzAgTWludXRlbiwKICAgIGFiaORuZ2lnIGRhdm9uLCB3aWUgdmllbCBaZWl0IER1IG1pdCBFeHBlcmltZW50aWVyZW4gdmVyYnJpbmdzdC4KKworICAgQUNIVFVORzoKICAgIERpZSBpbiBkZW4gTGVrdGlvbmVuIGFuZ2V3ZW5kZXRlbiBLb21tYW5kb3Mgd2VyZGVuIGRlbiBUZXh0IG1vZGlmaXppZXJlbi4KLSAgIEVyc3RlbGxlIGVpbmUgS29waWUgZGllc2VyIERhdGVpLCBpbiBkZXIgRHUg/GJlbiB3aWxsc3QgKGZhbGxzIER1Ci0gICAidmltdHV0b3IuYmF0IiBhdWZnZXJ1ZmVuIGhhc3QsIGlzdCBkaWVzIGJlcmVpdHMgZWluZSBLb3BpZSkuCisgICBFcnN0ZWxsZSBlaW5lIEtvcGllIGRpZXNlciBEYXRlaSwgaW4gZGVyIER1IPxiZW4gd2lsbHN0IChmYWxscyBEdSAidmltdHV0b3IiCisgICBhdWZnZXJ1ZmVuIGhhc3QsIGlzdCBkaWVzIGJlcmVpdHMgZWluZSBLb3BpZSkuCiAKLSAgIEVzIGlzdCB3aWNodGlnLCBzaWNoIHp1IHZlcmdlZ2Vud+RydGlnZW4sIGRhc3MgZGllc2VyIFR1dG9yIGFuZ2VsZWd0IGlzdCwgdW0KLSAgIPxiZXIgZGFzIEFud2VuZGVuIHp1IGxlaHJlbi4gRGFzIGJlZGV1dGV0LCBkYXNzIER1IGRpZSBCZWZlaGxlIGF1c2b8aHJlbgotICAgbXVzc3QsIHVtIHNpZSByaWNodGlnIHp1IGxlcm5lbi4gV2VubiBEdSBudXIgZGVuIFRleHQgbGllc3QsIHZlcmdpc3N0IER1IGRpZQotICAgQmVmZWhsZSEKKyAgIEVzIGlzdCB3aWNodGlnLCBzaWNoIHp1IHZlcmdlZ2Vud+RydGlnZW4sIGRhc3MgZGllc2VyIFR1dG9yIGb8ciBkYXMgQW53ZW5kZW4KKyAgIGtvbnppcGllcnQgaXN0LiBEYXMgYmVkZXV0ZXQsIGRhc3MgRHUgZGllIEJlZmVobGUgYXVzZvxocmVuIG11c3N0LCB1bSBzaWUKKyAgIHJpY2h0aWcgenUgbGVybmVuLiBXZW5uIER1IG51ciBkZW4gVGV4dCBsaWVzdCwgdmVyZ2lzc3QgRHUgZGllIEJlZmVobGUhCiAKLSAgIEpldHp0IHN0ZWxsZSBzaWNoZXIsIGRhc3MgRGVpbmUgVW1zdGVsbHRhc3RlIE5JQ0hUIGdlZHL8Y2t0IGlzdCwgdW5kCi0gICBiZXTkdGlnZSBkaWUgICBqICAgVGFzdGUgZ2Vu/GdlbmQgTWFsZSwgdW0gZGVuIEN1cnNvciBuYWNoIHVudGVuIHp1IGJld2VnZW4sCi0gICBzbyBkYXNzIExla3Rpb24gMS4xIGRlbiBCaWxkc2NoaXJtIHZvbGxrb21tZW4gYXVzZvxsbHQuCisgICBKZXR6dCBzdGVsbGUgc2ljaGVyLCBkYXNzIERlaW5lIFVtc3RlbGx0YXN0ZSBOSUNIVCBnZWRy/GNrdCBpc3QgdW5kIGJldOR0aWdlCisgICBkaWUgICBqICAgVGFzdGUgZ2Vu/GdlbmQgTWFsZSwgdW0gZGVuIEN1cnNvciBuYWNoIHVudGVuIHp1IGJld2VnZW4sIHNvIGRhc3MKKyAgIExla3Rpb24gMS4xIGRlbiBCaWxkc2NoaXJtIHZvbGxrb21tZW4gYXVzZvxsbHQuCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCUxla3Rpb24gMS4xOiBCRVdFR0VOIERFUyBDVVJTT1JTCiAKLQogICAqKiBVbSBkZW4gQ3Vyc29yIHp1IGJld2VnZW4sIGRy/GNrZSBkaWUgaCxqLGssbCBUYXN0ZW4gd2llIHVudGVuIGdlemVpZ3QuICoqCi0KIAkgICAgIF4JCSBIaWxmZXN0ZWxsdW5nOgogCSAgICAgawkJIERpZSBoIFRhc3RlIGJlZmluZGV0IHNpY2ggbGlua3MgdW5kIGJld2VndCBuYWNoIGxpbmtzLgogICAgICAgIDwgaAkgbCA+CSBEaWUgbCBUYXN0ZSBsaWVndCByZWNodHMgdW5kIGJld2VndCBuYWNoIHJlY2h0cy4KIAkgICAgIGoJCSBEaWUgaiBUYXN0ZSDkaG5lbHQgZWluZW0gUGZlaWwgbmFjaCB1bnRlbi4KIAkgICAgIHYKLSAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgYXVmIGRlbSBCaWxkc2NoaXJtIGhlcnVtLCBiaXMgRHUgRGljaCBzaWNoZXIgZvxobHN0LgorICAxLiBCZXdlZ2UgZGVuIEN1cnNvciBhdWYgZGVtIEJpbGRzY2hpcm0gdW1oZXIsIGJpcyBEdSBEaWNoIHNpY2hlciBm/Ghsc3QuCiAKICAgMi4gSGFsdGUgZGllIE5hY2gtVW50ZW4tVGFzdGUgKGopIGdlZHL8Y2t0LCBiaXMgc2llIHNpY2ggd2llZGVyaG9sdC4KLS0tLT4gSmV0enQgd2Vp33QgRHUsIHdpZSBEdSBEaWNoIHp1ciBu5GNoc3RlbiBMZWt0aW9uIGJld2VnZW4ga2FubnN0LgorICAgICBKZXR6dCB3ZWnfdCBEdSwgd2llIER1IERpY2ggenVyIG7kY2hzdGVuIExla3Rpb24gYmV3ZWdlbiBrYW5uc3QuCiAKICAgMy4gQmVudXR6ZSBkaWUgTmFjaC1VbnRlbi1UYXN0ZSwgdW0gRGljaCB6dSBMZWt0aW9uIDEuMiB6dSBiZXdlZ2VuLgogCiBCZW1lcmt1bmc6IEltbWVyLCB3ZW5uIER1IERpciB1bnNpY2hlciBiaXN0IPxiZXIgZGFzLCB3YXMgRHUgZ2V0aXBwdCBoYXN0LAotCSAgIGRy/GNrZSA8RVNDPiAsIHVtIERpY2ggaW4gZGVuIE5vcm1hbC1Nb2R1cyB6dSBiZWdlYmVuLgorCSAgIGRy/GNrZSA8RVNDPiAsIHVtIERpY2ggaW4gZGVuIE5vcm1hbG1vZHVzIHp1IGJlZ2ViZW4uCiAJICAgRGFubiBnaWIgZGFzIGdld/xuc2NodGUgS29tbWFuZG8gbm9jaCBlaW5tYWwgZWluLgogCiBCZW1lcmt1bmc6IERpZSBDdXJzb3ItVGFzdGVuIHNvbGx0ZW4gZWJlbmZhbGxzIGZ1bmt0aW9uaWVyZW4uICBBYmVyIHdlbm4gRHUKIAkgICBoamtsIGJlbnV0enQsIHdpcnN0IER1IGluIGRlciBMYWdlIHNlaW4sIERpY2ggc2VociB2aWVsIHNjaG5lbGxlcgotCSAgIHVtaGVyenViZXdlZ2VuLCB3ZW5uIER1IERpY2ggZXJzdCBlaW5tYWwgZGFyYW4gZ2V39mhudCBoYXN0LgotCi0KKwkgICB1bWhlcnp1YmV3ZWdlbiwgd2VubiBEdSBEaWNoIGVpbm1hbCBkYXJhbiBnZXf2aG50IGhhc3QuIFdpcmtsaWNoIQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgIExla3Rpb24gMS4yOiBTVEFSVEVOIFVORCBWRVJMQVNTRU4gVk9OIFZJTQorCQkJICAgIExla3Rpb24gMS4yOiBWSU0gQkVFTkRFTgogCiAKICAgISEgQUNIVFVORzogQmV2b3IgRHUgZWluZW4gZGVyIHVudGVuIGF1ZmdlZvxocnRlbiBTY2hyaXR0ZSBhdXNm/Ghyc3QsIGxpZXMKICAgICAgZGllc2UgZ2VzYW10ZSBMZWt0aW9uISEKIAotICAxLiBEcvxja2UgZGllIDxFU0M+IFRhc3RlICh1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3MgRHUgaW0gTm9ybWFsLU1vZHVzIGJpc3QpLgorICAxLiBEcvxja2UgZGllIDxFU0M+IFRhc3RlICh1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3MgRHUgaW0gTm9ybWFsbW9kdXMgYmlzdCkuCiAKLSAgMi4gVGlwcGU6CQkJOnEhIDxFTlRFUj4uCisgIDIuIFRpcHBlOgk6cSEgPEVOVEVSPi4KKyAgICAgRGllcyBiZWVuZGV0IGRlbiBFZGl0b3IgdW5kIFZFUldJUkZUIGFsbGUgxG5kZXJ1bmdlbiwgZGllIER1IGdlbWFjaHQgaGFzdC4KIAotLS0tPiBEaWVzIGJlZW5kZXQgZGVuIEVkaXRvciBPSE5FIGplZHdlbGNoZSDEbmRlcnVuZ2VuLCBkaWUgRHUgZ2VtYWNodCBoYXN0LgotICAgICBXZW5uIER1IGRpZSDEbmRlcnVuZ2VuIHNwZWljaGVybiB1bmQgYmVlbmRlbiB3aWxsc3QsIHRpcHBlOgotCQkJCTp3cSAgPEVOVEVSPgorICAzLiBXZW5uIER1IGRpZSBFaW5nYWJlYXVmZm9yZGVydW5nIHNpZWhzdCwgZ2liIGRhcyBLb21tYW5kbyBlaW4sIGRhcyBEaWNoIHp1CisgICAgIGRpZXNlbSBUdXRvciBnZWb8aHJ0IGhhdC4gRGllcyB35HJlOgl2aW10dXRvciA8RU5URVI+CiAKLSAgMy4gV2VubiBEdSBkaWUgRWluZ2FiZWF1ZmZvcmRlcnVuZyBzaWVoc3QsIHRpcHBlIGRhcyBLb21tYW5kbywgZGFzIERpY2ggenUKLSAgICAgZGllc2VtIFR1dG9yIGdlZvxocnQgaGF0LiBEYXMga/ZubnRlIHNlaW46IHZpbXR1dG9yIDxFTlRFUj4KLSAgICAgSW0gTm9ybWFsZmFsbCB3/HJkZXN0IER1IGVpbmdlYmVuCQkJVmltIHR1dG9yIDxFTlRFUj4KLQotLS0tPiAnVmltJyBpc3QgZGVyIEF1ZnJ1ZiBkZXMgRWRpdG9ycywgJ3R1dG9yJyBpc3QgZGllIHp1IGVkaXRpZXJlbmRlIERhdGVpLgotCi0gIDQuIFdlbm4gRHUgRGlyIGRpZXNlIFNjaHJpdHRlIGVpbmdlcHLkZ3QgaGFzdCB1bmQgRHUgRGljaCBzaWNoZXIgZ2VudWcgZvxobHN0LAorICA0LiBXZW5uIER1IERpciBkaWVzZSBTY2hyaXR0ZSBlaW5nZXBy5Gd0IGhhc3QgdW5kIER1IERpY2ggc2ljaGVyIGb8aGxzdCwKICAgICAgZvxocmUgU2Nocml0dGUgMSBiaXMgMyBhdXMsIHVtIGRlbiBFZGl0b3IgenUgdmVybGFzc2VuIHVuZCB3aWVkZXIKLSAgICAgaGluZWluenVnZWxhbmdlbi4gRGFubiBiZXdlZ2UgZGVuIEN1cnNvciBuYWNoIHVudGVuIHp1ciBMZWt0aW9uIDEuMy4KKyAgICAgaGluZWluenVnZWxhbmdlbi4KIAorQmVtZXJrdW5nOiAgOnEhIDxFTlRFUj4gIHZlcndpcmZ0IGFsbGUgxG5kZXJ1bmdlbiwgZGllIER1IGdlbWFjaHQgaGFzdC4gSW4KKyAgICAgZWluaWdlbiBMZWt0aW9uZW4gbGVybnN0IER1ICwgZGllIMRuZGVydW5nZW4gaW4gZWluZXIgRGF0ZWkgenUgc3BlaWNoZXJuLgogCi1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgNS4gQmV3ZWdlIGRlbiBDdXJzb3IgYWJ35HJ0cyB6dSBMZWt0aW9uIDEuMy4KKyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICBMZWt0aW9uIDEuMzogVEVYVCBFRElUSUVSRU4gLSBM1lNDSEVOCiAKIAotICoqIEltIE5vcm1hbC1Nb2R1cywgZHL8Y2tlICB4ICB1bSBkYXMgWmVpY2hlbiB1bnRlciBkZW0gQ3Vyc29yIHp1IGz2c2NoZW4uICoqCisJICoqIERy/GNrZSAgeCAgdW0gZGFzIFplaWNoZW4gdW50ZXIgZGVtIEN1cnNvciB6dSBs9nNjaGVuLiAqKgogCiAgIDEuIEJld2VnZSBkZW4gQ3Vyc29yIHp1IGRlciBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlIHVudGVuLgogCkBAIC0xMDEsODkgKzk0LDEzMCBAQAogCQkgICAgIExla3Rpb24gMS40OiBURVhUIEVESVRJRVJFTiAtIEVJTkbcR0VOCiAKIAotICAgICAqKiBX5GhyZW5kIER1IGltIE5vcm1hbC1Nb2R1cyBiaXN0LCBkcvxja2UgIGkgICwgdW0gVGV4dCBlaW56dWb8Z2VuLiAqKgorCQkgICAgKiogIERy/GNrZSAgaSAgLCB1bSBUZXh0IGVpbnp1ZvxnZW4uICoqCiAKLSAgMS5CZXdlZ2UgZGVuIEN1cnNvciB6dSBkZXIgbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZSB1bnRlbi4KKyAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIGVyc3RlbiB1bnRlbiBzdGVoZW5kZW4gbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZS4KIAogICAyLiBVbSBkaWUgZXJzdGUgWmVpbGUgbWl0IGRlciB6d2VpdGVuIGdsZWljaHp1bWFjaGVuLCBiZXdlZ2UgZGVuIEN1cnNvciBhdWYKICAgICAgZGFzIGVyc3RlIFplaWNoZW4gTkFDSCBkZXIgU3RlbGxlLCB3byBkZXIgVGV4dCBlaW5nZWb8Z3Qgd2VyZGVuIHNvbGwuCiAKLSAgMy4gRHL8Y2tlICBpICB1bmQgZ2liIGRpZSBub3R3ZW5kaWdlIEVyZ+RuenVuZyBlaW4uCisgIDMuIERy/GNrZSAgaSAgdW5kIGdpYiBkaWUgbm90d2VuZGlnZW4gRXJn5G56dW5nZW4gZWluLgogCi0gIDQuIFdlbm4gamV3ZWlscyBlaW4gRmVobGVyIGJlc2VpdGlndCBpc3QsIGRy/GNrZSA8RVNDPiAsIHVtIHp1bSBOb3JtYWwtTW9kdXMKKyAgNC4gV2VubiBqZXdlaWxzIGVpbiBGZWhsZXIgYmVzZWl0aWd0IGlzdCwgZHL8Y2tlIDxFU0M+ICwgdW0genVtIE5vcm1hbG1vZHVzCiAgICAgIHp1cvxja3p1a2VocmVuLgogICAgICBXaWVkZXJob2xlIGRpZSBTY2hyaXR0ZSAyIGJpcyA0LCB1bSBkZW4gU2F0eiB6dSBrb3JyaWdpZXJlbi4KIAogLS0tPiBJbiBkaWVzZXIgZnQgZXR3YXMgLgogLS0tPiBJbiBkaWVzZXIgWmVpbGUgZmVobHQgZXR3YXMgVGV4dC4KIAotICA1LiBXZW5uIER1IERpY2ggbWl0IGRlbSBFaW5m/GdlbiB2b24gVGV4dCBzaWNoZXIgZvxobHN0LCBiZXdlZ2UgZGVuIEN1cnNvciB6dXIKLSAgICAgdW50ZW5zdGVoZW5kZW4gWnVzYW1tZW5mYXNzdW5nLgorICA1LiBXZW5uIER1IERpY2ggbWl0IGRlbSBFaW5m/GdlbiB2b24gVGV4dCBzaWNoZXIgZvxobHN0LCBnZWhlIHp1IExla3Rpb24gMS41LgogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkJICAgWlVTQU1NRU5GQVNTVU5HIFZPTiBMRUtUSU9OIDEKKwkJICAgICBMZWt0aW9uIDEuNTogVEVYVCBFRElUSUVSRU4gLSBBTkbcR0VOCiAKIAotICAxLiBEZXIgQ3Vyc29yIHdpcmQgYmV3ZWd0LCBpbmRlbSBtYW4gZW50d2VkZXIgZGllIFBmZWlsdGFzdGVuIG9kZXIgZGllCi0gICAgIGhqa2wgVGFzdGVuIGJlbnV0enQuCisJCSAgICAgKiogRHL8Y2tlICBBICAsIHVtIFRleHQgYW56dWb8Z2VuLiAqKgorCisgIDEuIEJld2VnZSBkZW4gQ3Vyc29yIHp1ciBlcnN0ZW4gdW50ZW4gc3RlaGVuZGVuIG1pdCAtLS0+IG1hcmtpZXJ0ZW4gWmVpbGUuCisgICAgIEVzIGlzdCBnbGVpY2hn/Gx0aWcsIGF1ZiB3ZWxjaGVtIFplaWNoZW4gZGVyIFplaWxlIGRlciBDdXJzb3Igc3RlaHQuCisKKyAgMi4gRHL8Y2tlICBBICB1bmQgZ2liIGRpZSBu9nRpZ2VuIEVyZ+RuenVuZ2VuIGVpbi4KKworICAzLiBXZW5uIGRhcyBBbmb8Z2VuIGFiZ2VzY2hsb3NzZW4gaXN0LCBkcvxja2UgPEVTQz4sIHVtIGluIGRlbiBOb3JtYWxtb2R1cworICAgICB6dXL8Y2t6dWtlaHJlbi4KKworICA0LiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgendlaXRlbiBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlIHVuZCB3aWVkZXJob2xlCisgICAgIGRpZSBTY2hyaXR0ZSAyIHVuZCAzLCB1bSBkZW4gU2F0eiB6dSBrb3JyaWdpZXJlbi4KKworLS0tPiBJbiBkaWVzZXIgWmVpbGUgZmVoCisgICAgIEluIGRpZXNlciBaZWlsZSBmZWhsdCBldHdhcyBUZXh0LgorLS0tPiBBdWNoIGhpZXIgc3RlaAorICAgICBBdWNoIGhpZXIgc3RlaHQgZXR3YXMgVW52b2xsc3TkbmRpZ2VzLgorCisgIDUuIFdlbm4gRHUgZGljaCBtaXQgZGVtIEFuZvxnZW4gdm9uIFRleHQgc2ljaGVyIGb8aGxzdCwgZ2VoZSB6dSBMZWt0aW9uIDEuNi4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICAgTGVrdGlvbiAxLjY6IEVJTkUgREFURUkgRURJVElFUkVOCisKKworICAgICAqKiBCZW51dHplICA6d3EgICwgdW0gZWluZSBEYXRlaSB6dSBzcGVpY2hlcm4gdW5kIFZpbSB6dSB2ZXJsYXNzZW4uICoqCisKKyAgISEgQUNIVFVORzogQmV2b3IgRHUgZWluZW4gZGVyIHVudGVuIGF1ZmdlZvxocnRlbiBTY2hyaXR0ZSBhdXNm/Ghyc3QsIGxpZXMKKyAgICAgZGllc2UgZ2VzYW10ZSBMZWt0aW9uISEKKworICAxLiBWZXJsYXNzZSBkZW4gRWRpdG9yIHNvIHdpZSBpbiBMZWt0aW9uIDEuMjogIDpxIQorCisgIDIuIEdpYiBkaWVzZXMgS29tbWFuZG8gaW4gZGllIEVpbmdhYmVhdWZmb3JkZXJ1bmcgZWluOiAgdmltIHR1dG9yIDxFTlRFUj4KKyAgICAgJ3ZpbScgaXN0IGRlciBBdWZydWYgZGVzIEVkaXRvcnMsICd0dXRvcicgaXN0IGRpZSB6dSBlZGl0aWVyZW5kZSBEYXRlaS4KKyAgICAgQmVudXR6ZSBlaW5lIERhdGVpLCBkaWUgZ2XkbmRlcnQgd2VyZGVuIGthbm4uCisKKyAgMy4gRvxnZSBUZXh0IGVpbiBvZGVyIGz2c2NoZSBpaG4sIHdpZSBEdSBpbiBkZW4gdm9yaWdlbiBMZWt0aW9uZW4gZ2VsZXJudAorICAgICBoYXN0LgorCisgIDQuIFNwZWljaGVyZSBkaWUgZ2XkbmRlcnRlIERhdGVpIHVuZCB2ZXJsYXNzZSBWaW0gbWl0OiAgOndxIDxFTlRFUj4KKworICA1LiBTdGFydGUgZGVuIHZpbXR1dG9yIG5ldSB1bmQgYmV3ZWdlIERpY2ggenUgZGVyIGZvbGdlbmRlbiBadXNhbW1lbmZhc3N1bmcuCisKKyAgNi4gTmFjaGRlbSBEdSBvYmlnZSBTY2hyaXR0ZSBnZWxlc2VuIHVuZCB2ZXJzdGFuZGVuIGhhc3QsIGb8aHJlIHNpZSBkdXJjaC4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIFpVU0FNTUVORkFTU1VORyBWT04gTEVLVElPTiAxCisKKworICAxLiBEZXIgQ3Vyc29yIHdpcmQgbWl0IGRlbiBQZmVpbHRhc3RlbiBvZGVyIGRlbiBUYXN0ZW4gaGprbCBiZXdlZ3QuCiAJIGggKGxpbmtzKSAgICAgaiAodW50ZW4pICAgICBrIChhdWZ35HJ0cykgICAgbCAocmVjaHRzKQogCi0gIDIuIFVtIFZpbSBhdWZ6dXJ1ZmVuICh2b20gJSBwcm9tcHQpIHRpcHBlOiAgdmltIERBVEVJTkFNRSA8RU5URVI+CisgIDIuIFVtIFZpbSB2b24gZGVyIEVpbmdhYmVhdWZmb3JkZXJ1bmcgYXVzenVm/GhyZW4sIHRpcHBlOiB2aW0gREFURUkgPEVOVEVSPgogCi0gIDMuIFVtIFZpbSB6dSB2ZXJsYXNzZW4sIHRpcHBlOgk8RVNDPiAgOnEhICA8RU5URVI+ICwKLQkgdW0gYWxsZSDEbmRlcnVuZ2VuIHp1IHZlcndlcmZlbi4KLSAgICAgT0RFUiB0aXBwZToJCQk8RVNDPiAgOndxICA8RU5URVI+ICwKLQkgdW0gZGllIMRuZGVydW5nZW4genUgc3BlaWNoZXJuLgorICAzLiBVbSBWaW0genUgdmVybGFzc2VuIHVuZCBhbGxlIMRuZGVydW5nZW4genUgdmVyd2VyZmVuLCB0aXBwZToKKwkJPEVTQz4gIDpxISAgPEVOVEVSPiAuCisJT0RFUiB0aXBwZToJPEVTQz4gIDp3cSAgPEVOVEVSPiAsIHVtIGRpZSDEbmRlcnVuZ2VuIHp1IHNwZWljaGVybi4KIAotICA0LiBVbSBlaW4gWmVpY2hlbiBpbSBOb3JtYWwtTW9kdXMgenUgbPZzY2hlbiwgdGlwcGU6CXgKKyAgNC4gVW0gZGFzIFplaWNoZW4gdW50ZXIgZGVtIEN1cnNvciB6dSBs9nNjaGVuLCB0aXBwZTogIHgKIAotICA1LiBVbSBUZXh0IGJlaW0gQ3Vyc29yIGVpbnp1Z2ViZW4sIHfkaHJlbmQgRHUgaW0gTm9ybWFsLU1vZHVzIGJpc3QsIHRpcHBlOgotCSBpICAgICBUZXh0IGVpbmdlYmVuCTxFU0M+CisgIDUuIFVtIFRleHQgZWluenVm/GdlbiBvZGVyIGFuenVm/GdlbiwgdGlwcGU6CisJIGkgICBFaW56dWb8Z2VuZGVuIFRleHQgZWluZ2ViZW4gICA8RVNDPiAgICBFaW5m/GdlbiB2b3IgZGVtIEN1cnNvcgorCSBBICAgQW56dWb8Z2VuZGVuIFRleHQgZWluZ2ViZW4gICAgPEVTQz4gICAgQW5m/GdlbiBuYWNoIGRlbSBaZWlsZW5kZW5lCiAKLUJlbWVya3VuZzogRHL8Y2tlbiB2b24gPEVTQz4gYnJpbmd0IERpY2ggaW4gZGVuIE5vcm1hbC1Nb2R1cyBvZGVyIGJyaWNodCBlaW4KK0JlbWVya3VuZzogRHL8Y2tlbiB2b24gPEVTQz4gYnJpbmd0IERpY2ggaW4gZGVuIE5vcm1hbG1vZHVzIG9kZXIgYnJpY2h0IGVpbgogICAgICB1bmdld29sbHRlcywgZXJzdCB0ZWlsd2Vpc2UgZWluZ2VnZWJlbmVzIEtvbW1hbmRvIGFiLgogCi1OdW4gZmFocmUgbWl0IExla3Rpb24gMiBmb3J0LgotCi0KKyAgICAgTnVuIGZhaHJlIG1pdCBMZWt0aW9uIDIgZm9ydC4KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICBMZWt0aW9uIDIuMTogTNZTQ0hLT01NQU5ET1MKIAogCi0JICAgICoqIFRpcHBlICBkdyAgLCB1bSBiaXMgenVtIEVuZGUgZGVzIFdvcnRlcyB6dSBs9nNjaGVuICoqCisJCSAgICoqIFRpcHBlICBkdyAgLCB1bSBlaW4gV29ydCB6dSBs9nNjaGVuLiAqKgogCi0gIDEuIERy/GNrZSAgPEVTQz4gIHVtIHNpY2hlcnp1c3RlbGxlbiwgZGFzcyBEdSBpbSBOb3JtYWwtTW9kdXMgYmlzdC4KKyAgMS4gRHL8Y2tlICA8RVNDPiAgdW0gc2ljaGVyenVzdGVsbGVuLCBkYXNzIER1IGltIE5vcm1hbG1vZHVzIGJpc3QuCiAKICAgMi4gQmV3ZWdlIGRlbiBDdXJzb3IgenUgZGVyIG1pdCAtLS0+IG1hcmtpZXJ0ZW4gWmVpbGUgdW50ZW4uCiAKICAgMy4gQmV3ZWdlIGRlbiBDdXJzb3IgenVtIEFuZmFuZyBlaW5lcyBXb3J0ZXMsIGRhcyBnZWz2c2NodCB3ZXJkZW4gc29sbC4KIAotICA0LiBUaXBwZSAgIGR3ICwgdW0gZGFzIFdvcnQgenUgZW50ZmVybmVuLgorICA0LiBUaXBwZSAgZHcgICwgdW0gZGFzIFdvcnQgenUgZW50ZmVybmVuLgogCi0gIEJlbWVya3VuZzogRGllIEJ1Y2hzdGFiZW4gIGR3ICBlcnNjaGVpbmVuIGF1ZiBkZXIgbGV0enRlbiBaZWlsZSBkZXMKLSAgICAgQmlsZHNjaGlybXMsIHdlbm4gRHUgc2llIGVpbmdpYnN0LiBXZW5uIER1IGV0d2FzIGZhbHNjaCBlaW5nZXRpcHB0IGhhc3QsCi0gICAgIGRy/GNrZSA8RVNDPiB1bmQgZmFocmUgZm9ydC4KKyAgQmVtZXJrdW5nOiBEZXIgQnVjaHN0YWJlICBkICBlcnNjaGVpbnQgYXVmIGRlciBsZXR6dGVuIFplaWxlIGRlcyBCaWxkc2NoaXJtcywKKyAgICAgICAgd2VubiBEdSBpaG4gZWluZ2lic3QuIFZpbSB3YXJ0ZXQgZGFyYXVmLCBkYd8gRHUgIHcgIGVpbmdpYnN0LiBXZW5uIER1CisgICAgICAgIGVpbiBhbmRlcmVzIFplaWNoZW4gYWxzICBkICBzaWVoc3QsIGhhc3QgRHUgZXR3YXMgZmFsc2NoZXMgZ2V0aXBwdDsKKyAgICAgICAgZHL8Y2tlIDxFU0M+IHVuZCBiZWdpbm5lIG5ldS4KIAogLS0tPiBFaW5pZ2UgV/ZydGVyIGx1c3RpZyBnZWj2cmVuIG5pY2h0IFBhcGllciBpbiBkaWVzZW4gU2F0ei4KIAogICA1LiBXaWVkZXJob2xlIGRpZSBTY2hyaXR0ZSAzIHVuZCA0LCBiaXMgZGVyIFNhdHoga29ycmVrdCBpc3QgdW5kIGdlaGUKICAgICAgZGFuYWNoIHp1ciBMZWt0aW9uIDIuMi4KLQotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICAgTGVrdGlvbiAyLjI6IFdFSVRFUkUgTNZTQ0hLT01NQU5ET1MKIAogCiAJICAgICoqIFRpcHBlICBkJCAgLCB1bSBiaXMgenVtIEVuZGUgZGVyIFplaWxlIHp1IGz2c2NoZW4uICoqCiAKLSAgMS4gRHL8Y2tlIDxFU0M+ICx1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3MgRHUgaW0gTm9ybWFsLU1vZHVzIGJpc3QuCisgIDEuIERy/GNrZSA8RVNDPiAsIHVtIHNpY2hlcnp1c3RlbGxlbiwgZGFzcyBEdSBpbSBOb3JtYWxtb2R1cyBiaXN0LgogCiAgIDIuIEJld2VnZSBkZW4gQ3Vyc29yIHp1IGRlciBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlIHVudGVuLgogCiAgIDMuIEJld2VnZSBkZW4gQ3Vyc29yIHp1bSBFbmRlIGRlciBrb3JyZWt0ZW4gWmVpbGUgKE5BQ0ggZGVtIGVyc3RlbiAuICkuCiAKLSAgNC4gVGlwcGUgICAgZCQgICx1bSBiaXMgenVtIEVuZGUgZGVyIFplaWxlIHp1IGz2c2NoZW4uCisgIDQuIFRpcHBlICAgIGQkICAgICwgdW0gYmlzIHp1bSBFbmRlIGRlciBaZWlsZSB6dSBs9nNjaGVuLgogCiAtLS0+IEplbWFuZCBoYXQgZGFzIEVuZGUgZGVyIFplaWxlIGRvcHBlbHQgZWluZ2VnZWJlbi4gZG9wcGVsdCBlaW5nZWdlYmVuLgogCkBAIC0xOTEsNTcgKzIyNSwxMDMgQEAKICAgNS4gR2VoZSB3ZWl0ZXIgenVyIExla3Rpb24gMi4zICwgdW0genUgdmVyc3RlaGVuLCB3YXMgaGllcmJlaSBwYXNzaWVydC4KIAogCi1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgIExla3Rpb24gMi4zOiDcQkVSIEtPTU1BTkRPUyBVTkQgT0JKRUtURQogCiAKLSAgRGFzIEZvcm1hdCBm/HIgZGFzIEz2c2Noa29tbWFuZG8gIGQgIGlzdCBmb2xnZW5kZXJtYd9lbjoKLQotCSBbTnVtbWVyXSAgIGQJT2JqZWt0CSAgICAgT0RFUglkICAgW051bW1lcl0gICBPYmpla3QKLQotICBXb2JlaToKLSAgIE51bW1lciAtIGdpYnQgYW4sIHdpZSB2aWVsZSBNYWxlIGRhcyBLb21tYW5kbyBhdXNnZWb8aHJ0IHdlcmRlbiBzb2xsCi0JCQkJICAgICAgIChvcHRpb25hbCwgc3RhbmRhcmRt5N9pZyAxKS4KLSAgIGQgLSBpc3QgZGFzIEz2c2Noa29tbWFuZG8uCi0gICBPYmpla3QgLSBiZWRldXRldCwgd29yYXVmIGRhcyBLb21tYW5kbyBhbmdld2VuZGV0IHdpcmQgKHVudGVuIGF1ZmdlZvxocnQpLgotCi0gIEVpbmUga3VyemUgTGlzdGUgdm9uIE9iamVrdGVuOgotICAgIHcgLSB2b20gQ3Vyc29yIGFuIGJpcyB6dW0gRW5kZSBkZXMgV29ydGVzLCBpbmtsdXNpdmUgZGVtIExlZXJ6ZWljaGVuLgotICAgIGUgLSB2b20gQ3Vyc29yIGFuIGJpcyB6dW0gRW5kZSBkZXMgV29ydGVzLCBPSE5FIGRhcyBMZWVyemVpY2hlbi4KLSAgICAkIC0gdm9tIEN1cnNvciBhbiBiaXMgenVtIEVuZGUgZGVyIFplaWxlLgotCi1CZW1lcmt1bmc6ICBG/HIgZGllIFdhZ2VtdXRpZ2VuOiBkaWUgRWluZ2FiZSBsZWRpZ2xpY2ggZGVzIE9iamVrdC1UZWlscyBpbQotICAgIE5vcm1hbC1Nb2R1cyBvaG5lIGVpbiBLb21tYW5kbyBiZXdlZ3QgZGVuIEN1cnNvciBzbywKLSAgICB3aWUgaW4gZGVyIE9iamVrdGxpc3RlIGFuZ2VnZWJlbiBpc3QuCi0KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCUxla3Rpb24gMi40OiBFSU5FIEFVU05BSE1FIFpVICdLT01NQU5ETy1PQkpFS1QnCisJCSBMZWt0aW9uIDIuMzog3EJFUiBPUEVSQVRPUkVOIFVORCBCRVdFR1VOR1Na3EdFCisKKworICBWaWVsZSBLb21tYW5kb3MsIGRpZSBUZXh0IORuZGVybiwgc2V0emVuIHNpY2ggYXVzIGVpbmVtIE9wZXJhdG9yIHVuZCBlaW5lcgorICBCZXdlZ3VuZyB6dXNhbW1lbi4gRGFzIEZvcm1hdCBm/HIgZWluIEz2c2Noa29tbWFuZG8gbWl0IGRlbSBM9nNjaG9wZXJhdG9yICBkCisgIGxhdXRldCB3aWUgZm9sZ3Q6CisKKyAgICBkICBCZXdlZ3VuZworCisgIHdvYmVpOgorICAgIGQgICAgICAgIC0gZGVyIEz2c2Nob3BlcmF0b3IKKyAgICBCZXdlZ3VuZyAtIHdvcmF1ZiBkZXIgTPZzY2hvcGVyYXRvciBhbmdld2FuZHQgd2lyZCAodW50ZW4gYXVmZ2VsaXN0ZXQpLgorCisgIEVpbmUga2xlaW5lIEF1Zmxpc3R1bmcgdm9uIEJld2VndW5nZW46CisgICAgdyAtIGJpcyB6dW0gQmVnaW5uIGRlcyBu5GNoc3RlbiBXb3J0ZXMgT0hORSBkZXNzZW4gZXJzdGVzIFplaWNoZW4uCisgICAgZSAtIHp1bSBFbmRlIGRlcyBha3R1ZWxsZW4gV29ydGVzIE1JVCBkZXNzZW4gbGV0enRlbSBaZWljaGVuLgorICAgICQgLSB6dW0gRW5kZSBkZXIgWmVpbGUgTUlUIGRlbSBsZXR6ZW4gWmVpY2hlbi4KKworICBEZW1lbnRzcHJlY2hlbmQgbPZzY2h0IGRpZSBFaW5nYWJlIHZvbiAgZGUgIHZvbSBDdXJzb3IgYW4gYmlzIHp1bSBXb3J0ZW5kZS4KKworQmVtZXJrdW5nOiAgRGllIEVpbmdhYmUgbGVkaWdsaWNoIGRlcyBCZXdlZ3VuZ3N0ZWlscyBpbSBOb3JtYWxtb2R1cyBiZXdlZ3QgZGVuCisgIEN1cnNvciBlbnRzcHJlY2hlbmQuCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwlMZWt0aW9uIDIuNDogQU5XRU5EVU5HIEVJTkVTIFrESExFUlMgRtxSIEVJTkVOIEJFV0VHVU5HU1NDSFJJVFQKKworCisgICAqKiBEaWUgRWluZ2FiZSBlaW5lciBaYWhsIHZvciBlaW5lbSBCZXdlZ3VuZ3NzY2hyaXR0IHdpZWRlcmhvbHQgZGllc2VuLiAqKgorCisgIDEuIEJld2VnZSBkZW4gQ3Vyc29yIHp1bSBCZWdpbm4gZGVyIG1pdCAtLS0+IG1hcmtpZXJ0ZW4gWmVpbGUgdW50ZW4uCisKKyAgMi4gVGlwcGUgIDJ3ICAsIHVtIGRlbiBDdXJzb3IgendlaSBX9nJ0ZXIgdm9yd+RydHMgenUgYmV3ZWdlbi4KKworICAzLiBUaXBwZSAgM2UgICwgdW0gZGVuIEN1cnNvciB6dW0gRW5kZSBkZXMgZHJpdHRlbiBXb3J0ZXMgenUgYmV3ZWdlbi4KKworICA0LiBUaXBwZSAgMCAgKE51bGwpICwgdW0genVtIEFuZmFuZyBkZXIgWmVpbGUgenUgZ2VsYW5nZW4uCisKKyAgNS4gV2llZGVyaG9sZSBTY2hyaXR0ZSAyIHVuZCAzIG1pdCB2ZXJzY2hpZWRlbmVuIFrkaGxlcm4uCisKKyAgLS0tPiBEaWVzIGlzdCBudXIgZWluZSBaZWlsZSBhdXMgV/ZydGVuIHVtIHNpY2ggZGFyaW4gaGVydW16dWJld2VnZW4uCisKKyAgNi4gR2VoZSB3ZWl0ZXIgenUgTGVrdGlvbiAyLjUuCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSBMZWt0aW9uIDIuNTogQU5XRU5EVU5HIEVJTkVTIFrESExFUlMgRtxSIE1FSFJFUkUgTNZTQ0hWT1JHxE5HRQorCisKKyAgICoqIERpZSBFaW5nYWJlIGVpbmVyIFphaGwgbWl0IGVpbmVtIE9wZXJhdG9yIHdpZWRlcmhvbHQgZGllc2VuIG1laHJmYWNoLiAqKgorCisgIEb8ciBkaWUgS29tYmluYXRpb24gZGVzIEz2c2Nob3BlcmF0b3JzIHVuZCBlaW5lbSBCZXdlZ3VuZ3NzY2hyaXR0IChzaWVoZQorICBvYmVuKSBzdGVsbHQgbWFuIGRlbSBCZXdlZ3VuZ3NzY2hyaXR0IGVpbmVuIFrkaGxlciB2b3JhbiwgdW0gbWVociB6dSBs9nNjaGVuOgorCSBkICBOdW1tZXIgIEJld2VndW5nc3NjaHJpdHQKKworICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dW0gZXJzdGVuIFdvcnQgaW4gR1JPU1NCVUNIU1RBQkVOIGluIGRlciBtaXQgLS0tPgorICAgICBtYXJraWVyZW4gWmVpbGUuCisKKyAgMi4gVGlwcGUgIGQydyAgLCB1bSBkaWUgendlaSBX9nJ0ZXIgaW4gR1JPU1NCVUNIU1RBQkVOIHp1IGz2c2NoZW4uCisKKyAgMy4gV2llZGVyaG9sZSBTY2hyaXR0ZSAxIHVuZCAgMiBtaXQgZWluZW0gYW5kZXJlbiBa5GhsZXIsIHVtIGRpZQorICAgICBkYXJhdWZmb2xnZW5kZW4gV/ZydGVyIGluIEdST1NTQlVDSFNUQUJFTiBtaXQgZWluZW0gZWluemlnZW4gS29tbWFuZG8KKyAgICAgenUgbPZzY2hlbi4KKworLS0tPiAgRGllc2UgQUJDIERFIFplaWxlIEZHSEkgSksgTE1OIE9QIG1pdCBX9nJ0ZXJuIGlzdCBRIFJTIFRVViBiZXJlaW5pZ3QuCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCUxla3Rpb24gMi42OiBBUkJFSVRFTiBBVUYgWkVJTEVOCiAKIAogCSAgICAgICAqKiBUaXBwZSAgZGQgICwgdW0gZWluZSBnYW56ZSBaZWlsZSB6dSBs9nNjaGVuLiAqKgogCi0gIFdlZ2VuIGRlciBI5HVmaWdrZWl0LCBkYXNzIG1hbiBnYW56ZSBaZWlsZW4gbPZzY2h0LCBrYW1lbiBkaWUKLSAgRW50d2lja2xlciB2b24gVmltIGRhcmF1ZiwgZGFzcyBlcyBsZWljaHRlciB35HJlLCB6d2VpIGQncyBoaW50ZXJlaW5hbmRlcgotICBlaW56dWdlYmVuLCB1bSBlaW5lIFplaWxlIHp1IGz2c2NoZW4uCisgIFdlZ2VuIGRlciBI5HVmaWdrZWl0LCBkYXNzIG1hbiBnYW56ZSBaZWlsZW4gbPZzY2h0LCBrYW1lbiBkaWUgRW50d2lja2xlciB2b24KKyAgVmkgZGFyYXVmLCBkYXNzIGVzIGxlaWNodGVyIHfkcmUsIGVpbmZhY2ggendlaSBkJ3MgZWluenVnZWJlbiwgdW0gZWluZSBaZWlsZQorICB6dSBs9nNjaGVuLgogCiAgIDEuIEJld2VnZSBkZW4gQ3Vyc29yIHp1ciB6d2VpdGVuIFplaWxlIGluIGRlciB1bnRlbiBzdGVoZW5kZW4gUmVkZXdlbmR1bmcuCiAgIDIuIFRpcHBlICBkZCAgLCB1bSBkaWUgWmVpbGUgenUgbPZzY2hlbi4KICAgMy4gTnVuIGJld2VnZSBEaWNoIHp1ciB2aWVydGVuIFplaWxlLgotICA0LiBUaXBwZSAgIDJkZCAgIChlcmlubmVyZSBEaWNoIGFuICBOdW1tZXItS29tbWFuZG8tT2JqZWt0KSwKLSAgICAgdW0gZGllIPxiZXJmbPxzc2lnZW4gWmVpbGVuIHp1IGz2c2NoZW4uCisgIDQuIFRpcHBlICAyZGQgICwgdW0gendlaSBaZWlsZW4genUgbPZzY2hlbi4KIAotICAgICAgMSkgIFJvc2VuIHNpbmQgcm90LAotICAgICAgMikgIE1hdHNjaCBpc3QgbHVzdGlnLAotICAgICAgMykgIFZlaWxjaGVuIHNpbmQgYmxhdSwKLSAgICAgIDQpICBJY2ggaGFiZSBlaW4gQXV0bywKLSAgICAgIDUpICBEaWUgVWhyIHNhZ3QgZGllIFplaXQsCi0gICAgICA2KSAgWnVja2VyIGlzdCBz/N8sCi0gICAgICA3KSAgU28gd2llIER1IGF1Y2guCi0KKy0tLT4gIDEpICBSb3NlbiBzaW5kIHJvdCwKKy0tLT4gIDIpICBNYXRzY2ggaXN0IGx1c3RpZywKKy0tLT4gIDMpICBWZWlsY2hlbiBzaW5kIGJsYXUsCistLS0+ICA0KSAgSWNoIGhhYmUgZWluIEF1dG8sCistLS0+ICA1KSAgRGllIFVociBzYWd0IGRpZSBaZWl0LAorLS0tPiAgNikgIFp1Y2tlciBpc3Qgc/zfLAorLS0tPiAgNykgIFNvIHdpZSBEdSBhdWNoLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCSBMZWt0aW9uIDIuNTogUtxDS0fETkdJRyBNQUNIRU4gKFVORE8pCisJCSAgICAgTGVrdGlvbiAyLjc6IFLcQ0tHxE5HSUcgTUFDSEVOIChVTkRPKQogCiAKIAkgKiogVGlwcGUgdSAsIHVtIGRpZSBsZXR6dGVuIEtvbW1hbmRvcyBy/GNrZ+RuZ2lnIHp1IG1hY2hlbiAqKgpAQCAtMjQ5LDg4ICszMjksODIgQEAKIAogICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dSBkZXIgbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZSB1bnRlbgogICAgICB1bmQgc2V0emUgaWhuIGF1ZiBkZW4gZXJzdGVuIEZlaGxlci4KLSAgMi4gVGlwcGUgIHggICwgdW0gZGFzIGVyc3RlIPxiZXJmbPxzc2lnZSBaZWljaGVuIHp1IGz2c2NoZW4uCisgIDIuIFRpcHBlICB4ICAsIHVtIGRhcyBlcnN0ZSB1bmVyd/xuc2NodGUgWmVpY2hlbiB6dSBs9nNjaGVuLgogICAzLiBOdW4gdGlwcGUgIHUgIHVtIGRhcyBzb2ViZW4gYXVzZ2Vm/GhydGUgS29tbWFuZG8gcvxja2fkbmdpZyB6dSBtYWNoZW4uCi0gIDQuIERpZXNlcyBNYWwgYmVoZWJlIGFsbGUgRmVobGVyIGF1ZiBkZXIgWmVpbGUsIGluZGVtIER1IGRhcyAgeCAgS29tbWFuZG8KLSAgICAgYW53ZW5kZXN0LgorICA0LiBKZXR6dCBiZWhlYmUgYWxsZSBGZWhsZXIgYXVmIGRlciBaZWlsZSBtaXQgSGlsZmUgZGVzIHggIEtvbW1hbmRvcy4KICAgNS4gTnVuIHRpcHBlIGVpbiBncm/fZXMgIFUgLCB1bSBkaWUgWmVpbGUgaW4gaWhyZW4gVXJzcHJ1bmdzenVzdGFuZAogICAgICB3aWVkZXJoZXJ6dXN0ZWxsZW4uCi0gIDYuIE51biB0aXBwZSAgdSAgbWVocmVyZSBNYWxlLCB1bSBkYXMgVSB1bmQgZGllIHZvcmhlcmdlaGVuZGVuIEtvbW1hbmRvcworICA2LiBOdW4gdGlwcGUgIHUgIGVpbmlnZSBNYWxlLCB1bSBkYXMgVSB1bmQgZGllIHZvcmhlcmdlaGVuZGVuIEtvbW1hbmRvcwogICAgICBy/GNrZ+RuZ2lnIHp1IG1hY2hlbi4KLSAgNy4gTnVuIHRpcHBlIENUUkwtUiAoaGFsdGUgZGllIENUUkwtVGFzdGUgZ2Vkcvxja3QgdW5kIGRy/GNrZSBSICkKLSAgICAgbWVocmVyZSBNYWxlLCB1bSBkaWUgS29tbWFuZG9zIHL8Y2tn5G5naWcgenUgbWFjaGVuCi0gICAgIChkaWUgUvxja2fkbmdpZ21hY2h1bmdlbiBy/GNrZ+RuZ2lnIG1hY2hlbikuCisgIDcuIE51biB0aXBwZSBDVFJMLVIgKGhhbHRlIENUUkwgZ2Vkcvxja3QgdW5kIGRy/GNrZSBSKSBtZWhyZXJlIE1hbGUsIHVtIGRpZQorICAgICBLb21tYW5kb3Mgd2llZGVyaGVyenVzdGVsbGVuIChkaWUgUvxja2fkbmdpZ21hY2h1bmdlbiBy/GNrZ+RuZ2lnIG1hY2hlbikuCiAKIC0tLT4gQmVlaGViZSBkaWUgRmVobGxlciBkaWVzc2VyIFplaWxlIHVuZCBzdHRlbGxlIHNpZSBtaXR0ICd1bmRvJyB3aWVkZXIgaGVyLgogCi0gIDguIERpZXNlcyBzaW5kIHNlaHIgbvx0emxpY2hlIEtvbW1hbmRvcy4KKyAgOC4gRGllcyBzaW5kIHNlaHIgbvx0emxpY2hlIEtvbW1hbmRvcy4KICAgICAgTnVuIGdlaGUgd2VpdGVyIHp1ciBadXNhbW1lbmZhc3N1bmcgdm9uIExla3Rpb24gMi4KLQotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCSAgIFpVU0FNTUVORkFTU1VORyBWT04gTEVLVElPTiAyCisJCQkgWlVTQU1NRU5GQVNTVU5HIFZPTiBMRUtUSU9OIDIKIAogCi0gIDEuIFVtIHZvbSBDdXJzb3IgYmlzIHp1bSBFbmRlIGVpbmVzIFdvcnRlcyB6dSBs9nNjaGVuLCB0aXBwZTogICAgZHcKLQorICAxLiBVbSB2b20gQ3Vyc29yIGJpcyB6dW0gbuRjaHN0ZW4gV29ydCB6dSBs9nNjaGVuLCB0aXBwZTogICAgZHcKICAgMi4gVW0gdm9tIEN1cnNvciBiaXMgenVtIEVuZGUgZWluZXIgWmVpbGUgenUgbPZzY2hlbiwgdGlwcGU6ICAgICBkJAotCiAgIDMuIFVtIGVpbmUgZ2FuemUgWmVpbGUgenUgbPZzY2hlbiwgdGlwcGU6ICAgIGRkCiAKLSAgNC4gRGFzIEZvcm1hdCBm/HIgZWluIEtvbW1hbmRvcyBpbSBOb3JtYWwtTW9kdXMgaXN0OgorICA0LiBVbSBlaW5lIEJld2VndW5nIHp1IHdpZWRlcmhvbGVuLCBzdGVsbGUgZWluZSBOdW1tZXIgdm9yYW46ICAgMncKKyAgNS4gRGFzIEZvcm1hdCBm/HIgZWluIMRuZGVydW5nc2tvbW1hbmRvIGlzdDoKKyAgICAgICAgICAgICAgIE9wZXJhdG9yICAgW0FuemFobF0gICBCZXdlZ3VuZ3NzY2hyaXR0CisgICAgIHdvYmVpOgorICAgICAgIE9wZXJhdG9yIC0gZ2lidCBhbiwgd2FzIGdldGFuIHdlcmRlbiBzb2xsLCB6dW0gQmVpc3BpZWwgIGQgIGb8ciBkZWxldGUKKyAgICAgICBbQW56YWhsXSAtIGVpbiBvcHRpb25hbGVyIFrkaGxlciwgdW0gZGVuIEJld2VndW5nc3NjaHJpdHQgenUgd2llZGVyaG9sZW4KKyAgICAgICBCZXdlZ3VuZ3NzY2hyaXR0IC0gQmV3ZWd1bmcg/GJlciBkZW4genUg5G5kZXJuZGVuIFRleHQsIHNvIHdpZQorCQkgIHcgKFdvcnQpLCAkICh6dW0gRW5kZSBkZXIgWmVpbGUpLCBldGMuCiAKLSAgICAgICBbTnVtbWVyXSAgIEtvbW1hbmRvICAgT2JqZWt0ICAgICBPREVSICAgICBLb21tYW5kbyAgIFtOdW1tZXJdICAgT2JqZWt0Ci0JIHdvYmVpOgotICAgICAgIE51bW1lciAtIGdpYnQgYW4sIHdpZSBvZnQgZGFzIEtvbW1hbmRvIHdpZWRlcmhvbHQgd2lyZAotICAgICAgIEtvbW1hbmRvIC0gZ2lidCBhbiwgd2FzIGdldGFuIHdlcmRlbiBzb2xsLCB6dW0gQmVpc3BpZWwJZCAgZvxyIGRlbGV0ZQotICAgICAgIE9iamVrdCAtIGdpYnQgYW4sIHdvcmF1ZiBkYXMgS29tbWFuZG8gYW5nZXdlbmRldCB3ZXJkZW4gc29sbCwKLQkgenVtIEJlaXNwaWVsIHcgKFdvcnQpLCAkICh6dW0gRW5kZSBkZXIgWmVpbGUpLCBldGMuCisgIDYuIFVtIERpY2ggenVtIEFuZmFuZyBkZXIgWmVpbGUgenUgYmVnZWJlbiwgYmVudXR6ZSBkaWUgTnVsbDogIDAKIAotICA1LiBVbSB2b3JoZXJpZ2UgQWt0aW9uZW4gcvxja2fkbmdpZyB6dSBtYWNoZW4sIHRpcHBlOgkJdSAoa2xlaW5lcyB1KQorICA3LiBVbSB2b3JoZXJpZ2UgQWt0aW9uZW4gcvxja2fkbmdpZyB6dSBtYWNoZW4sIHRpcHBlOgkJdSAoa2xlaW5lcyB1KQogICAgICBVbSBhbGxlIMRuZGVydW5nZW4gYXVmIGVpbmVyIFplaWxlIHL8Y2tn5G5naWcgenUgbWFjaGVuOiAgIFUgKGdyb99lcyBVKQogICAgICBVbSBkaWUgUvxja2fkbmdpZ21hY2h1bmdlbiBy/GNrZ+RuZ2lnIHp1IG1hY2hlbiwgdGlwcGU6ICAgIENUUkwtUgogCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICAgTGVrdGlvbiAzLjE6IEFORtxHRU4gKFBVVCkKIAogCi0gICAgICAgKiogVGlwcGUgcCAsIHVtIGRhcyB6dWxldHp0IEdlbPZzY2h0ZSBuYWNoIGRlbSBDdXJzb3IgYW56dWb8Z2VuLiAqKgorICAgICAqKiBUaXBwZSAgcCAgLCB1bSB2b3JoZXIgZ2Vs9nNjaHRlbiBUZXh0IG5hY2ggZGVtIEN1cnNvciBhbnp1ZvxnZW4uICoqCiAKLSAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIGVyc3RlbiBaZWlsZSBkZXMgdW50ZW4gc3RlaGVuZGVuIFNpbm5zcHJ1Y2hzLgorICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgZXJzdGVuIHVudGVuIHN0ZWhlbmRlbiBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlLgogCi0gIDIuIFRpcHBlICBkZCAgLCB1bSBkaWUgWmVpbGUgenUgbPZzY2hlbiB1bmQgc2llIGluIFZpbXMgUHVmZmVyIHp1IHNwZWljaGVybi4KKyAgMi4gVGlwcGUgIGRkICAsIHVtIGRpZSBaZWlsZSB6dSBs9nNjaGVuIHVuZCBzaWUgaW4gZWltZW0gVmltLVJlZ2lzdGVyIHp1CisgICAgIHNwZWljaGVybi4KIAotICAzLiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgWmVpbGUg3EJFUiBkZXJqZW5pZ2VuLAotICAgICB3byBkaWUgZ2Vs9nNjaHRlIFplaWxlIHBsYXR6aWVydCB3ZXJkZW4gc29sbC4KKyAgMy4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIFplaWxlIGMpLCDcQkVSIGRlcmplbmlnZW4sIHdvIGRpZSBnZWz2c2NodGUgWmVpbGUKKyAgICAgcGxhdHppZXJ0IHdlcmRlbiBzb2xsLgogCi0gIDQuIEltIE5vcm1hbC1Nb2R1cywgdGlwcGUgICAgcCAgICAsICB1bSBkaWUgWmVpbGUgenUgcGxhdHppZXJlbi4KKyAgNC4gIFRpcHBlICAgcCAgICwgdW0gZGllIFplaWxlIHVudGVyaGFsYiBkZXMgQ3Vyc29ycyB6dSBwbGF0emllcmVuLgogCi0gIDUuIFdpZWRlcmhvbGUgZGllIFNjaHJpdHRlIDIgYmlzIDQsIHVtIGFsbGUgWmVpbGVuIGluIGRpZSByaWNodGlnZSBSZWloZW5mb2xnZQotICAgICB6dSBicmluZ2VuLgorICA1LiBXaWVkZXJob2xlIGRpZSBTY2hyaXR0ZSAyIGJpcyA0LCB1bSBhbGxlIFplaWxlbiBpbiBkaWUgcmljaHRpZ2UKKyAgICAgUmVpaGVuZm9sZ2UgenUgYnJpbmdlbi4KIAotICAgICBkKSBLYW5uc3QgRHUgZGFzIGF1Y2g/Ci0gICAgIGIpIFZlaWxjaGVuIHNpbmQgYmxhdSwKLSAgICAgYykgSW50ZWxsaWdlbnogaXN0IGVybGVybmJhciwKLSAgICAgYSkgUm9zZW4gc2luZCByb3QsCi0KLQorLS0tPiBkKSBLYW5uc3QgRHUgZGFzIGF1Y2g/CistLS0+IGIpIFZlaWxjaGVuIHNpbmQgYmxhdSwKKy0tLT4gYykgSW50ZWxsaWdlbnogaXN0IGVybGVybmJhciwKKy0tLT4gYSkgUm9zZW4gc2luZCByb3QsCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCUxla3Rpb24gMy4yOiBFUlNFVFpFTiAoUkVQTEFDRSkKIAogCi0gKiogVGlwcGUgIHIgIHVuZCBlaW4gWmVpY2hlbiwgdW0gZGFzIFplaWNoZW4gdW50ZXIgZGVtIEN1cnNvciB6dSBlcnNldHplbi4gKioKKyAgICoqIFRpcHBlICByeCAgLCB1bSBkYXMgWmVpY2hlbiB1bnRlciBkZW0gQ3Vyc29yIGR1cmNoICB4IHp1IGVyc2V0emVuLiAqKgogCi0gIDEuIEJld2VnZSBkZW4gQ3Vyc29yIHp1ciBlcnN0ZW4gdW50ZW4gc3RlaGVuZGVuLCBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlLgorICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgZXJzdGVuIHVudGVuIHN0ZWhlbmRlbiBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlLgogCiAgIDIuIEJld2VnZSBkZW4gQ3Vyc29yLCBiaXMgZXIgc2ljaCBhdWYgZGVtIGVyc3RlbiBGZWhsZXIgYmVmaW5kZXQuCiAKLSAgMy4gVGlwcGUgIHIgIHVuZCBhbnNjaGxpZd9lbmQgZGFzIFplaWNoZW4sIHdlbGNoZXMgZGVuIEZlaGxlciBiZWhlYmVuIHNvbGx0ZS4KKyAgMy4gVGlwcGUgIHIgIHVuZCBhbnNjaGxpZd9lbmQgZGFzIFplaWNoZW4sIHdlbGNoZXMgZG9ydCBzdGVoZW4gc29sbHRlLgogCi0gIDQuIFdpZWRlcmhvbGUgZGllIFNjaHJpdHRlIDIgdW5kIDMsIGJpcyBkaWUgZXJzdGUgWmVpbGUga29ycmVrdCBpc3QuCisgIDQuIFdpZWRlcmhvbGUgU2Nocml0dGUgMiB1bmQgMywgYmlzIGRpZSBlcnN0ZSBaZWlsZSBnbGVpY2ggZGVyIHp3ZWl0ZW4gaXN0LgogCi0tLS0+ICBBbHMgZGllc2UgWmVpdGUgZWluZ2Vnb2JlbiB3dXJkZSwgd3VyZGVuIGVpbmlrZSBmYWxzY2hlIFRhc3RlbiBnZWxpcHB0LgotLS0tPiAgQWxzIGRpZXNlIFplaWxlIGVpbmdlZ2ViZW4gd3VyZGUsIHd1cmRlbiBlaW5pZ2UgZmFsc2NoZSBUYXN0ZW4gZ2V0aXBwdC4KKy0tLT4gIEFscyBkaWVzZSBaZWl0ZSBlaW5nZWdvYmVuIHd1cmRlLCB3dXJkZW4gZWluaWtlIGZhbHNjaGUgVGFzdGVuIGdlbGlwcHQhCistLS0+ICBBbHMgZGllc2UgWmVpbGUgZWluZ2VnZWJlbiB3dXJkZSwgd3VyZGVuIGVpbmlnZSBmYWxzY2hlIFRhc3RlbiBnZXRpcHB0IQogCiAgIDUuIE51biBmYWhyZSBmb3J0IG1pdCBMZWt0aW9uIDMuMi4KIApAQCAtMzQyLDQyNyArNDE2LDQ0MiBAQAogCQkJICBMZWt0aW9uIDMuMzogxE5ERVJOIChDSEFOR0UpCiAKIAotICAgICAgICoqIFVtIGVpbiBXb3J0dGVpbCBvZGVyIGVpbiBnYW56ZXMgV29ydCB6dSDkbmRlcm4sIHRpcHBlICBjdyAuICoqCisgICAgICAqKiBVbSBlaW5lIMRuZGVydW5nIGJpcyB6dW0gV29ydGVuZGUgZHVyY2h6dWb8aHJlbiwgdGlwcGUgIGNlIC4gKioKIAotICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgZXJzdGVuIHVudGVuIHN0ZWhlbmRlbiwgbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZS4KKyAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVyIGVyc3RlbiB1bnRlbiBzdGVoZW5kZW4gbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZS4KIAotICAyLiBQbGF0emllcmUgZGVuIEN1cnNvciBhdWYgZGFzIHMgdm9uIFdzdHdyLgorICAyLiBQbGF0emllcmUgZGVuIEN1cnNvciBhdWYgZGFzICBzICB2b24gV3N0d3IuCiAKLSAgMy4gVGlwcGUgIGN3ICB1bmQgZGllIFdvcnRrb3JyZWt0dXIgZWluIChpbiBkaWVzZW0gRmFsbCwgdGlwcGUgICf2cnRlcicuKQorICAzLiBUaXBwZSAgY2UgIHVuZCBkaWUgV29ydGtvcnJla3R1ciBlaW4gKGluIGRpZXNlbSBGYWxsIHRpcHBlICD2cnRlciApLgogCi0gIDQuIERy/GNrZSA8RVNDPiB1bmQgYmV3ZWdlIGRlbiBDdXJzb3IgenVtIG7kY2hzdGVuIEZlaGxlcgotICAgIChEYXMgZXJzdGUgenUg5G5kZXJuZGUgWmVpY2hlbi4pCisgIDQuIERy/GNrZSA8RVNDPiB1bmQgYmV3ZWdlIGRlbiBDdXJzb3IgenVtIG7kY2hzdGVuIHp1IORuZGVybmRlbiBaZWljaGVuLgogCiAgIDUuIFdpZWRlcmhvbGUgU2Nocml0dGUgMyB1bmQgNCBiaXMgZGVyIGVyc3RlIFNhdHogZ2xlaWNoIGRlbSB6d2VpdGVuIGlzdC4KIAotLS0tPiBFaW5pZ2UgV3N0d3IgZGllc2VyIFpsYXd3IGxhc2RqbGFmIG1pdCBkZW0gxG5kZXJuLUtvbW1hbmRvIGdhYWF1dSB3ZXJkZW4uCi0tLS0+IEVpbmlnZSBX9nJ0ZXIgZGllc2VyIFplaWxlIHNvbGxlbiBtaXQgZGVtIMRuZGVybi1Lb21tYW5kbyBnZeRuZGVydCB3ZXJkZW4uCistLS0+IEVpbmlnZSBXc3R3ciBkaWVzZXIgWmxhd3cgbGFzZGpsYWYgbWl0IGRlbSDEbmRlcm4tT3BlcmF0b3IgZ2FhYXV1IHdlcmRlbi4KKy0tLT4gRWluaWdlIFf2cnRlciBkaWVzZXIgWmVpbGUgc29sbGVuIG1pdCBkZW0gxG5kZXJuLU9wZXJhdG9yIGdl5G5kZXJ0IHdlcmRlbi4KIAotQmVtZXJrZSwgZGFzcyAgY3cgIG5pY2h0IG51ciBkYXMgV29ydCBlcnNldHp0LCBzb25kZXJuIERpY2ggYXXfZXJkZW0gaW4gZGVuCi0gICAgIEVpbmdhYmVtb2R1cyB2ZXJzZXR6dC4KK0JlbWVya2UsIGRhc3MgIGNlICBkYXMgV29ydCBs9nNjaHQgdW5kIERpY2ggaW4gZGVuIEVpbmdhYmVtb2R1cyB2ZXJzZXR6dC4KKwogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkgICAgIExla3Rpb24gMy40OiBNRUhSIMROREVSVU5HRU4gTUlUVEVMUyBjCiAKIAotICAgICAqKiBEYXMgY2hhbmdlLUtvbW1hbmRvIGFyYmVpdGV0IG1pdCBkZW5zZWxiZW4gT2JqZWt0ZW4gd2llIGRlbGV0ZSAgKioKKyAgICAgKiogRGFzIGNoYW5nZS1Lb21tYW5kbyBhcmJlaXRldCBtaXQgZGVuc2VsYmVuIEJld2VndW5nZW4gd2llIGRlbGV0ZS4gICoqCiAKLSAgMS4gRGFzIGNoYW5nZSBLb21tYW5kbyBhcmJlaXRldCBpbiBnbGVpY2hlciBXZWlzZSB3aWUgZGVsZXRlLiBEYXMgRm9ybWF0IGlzdDoKKyAgMS4gRGVyIGNoYW5nZSBPcGVyYXRvciBhcmJlaXRldCBpbiBnbGVpY2hlciBXZWlzZSB3aWUgZGVsZXRlLiBEYXMgRm9ybWF0IGlzdDoKIAotICAgICAgIFtOdW1tZXJdICAgYyAgIE9iamVrdCAgICAgICBPREVSICAgICAgIGMgICBbTnVtbWVyXSAgIE9iamVrdAorICAgICAgICAgYyAgICBbQW56YWhsXSAgQmV3ZWd1bmdzc2Nocml0dAogCi0gIDIuIEF1Y2ggc2luZCBkaWUgT2JqZWt0ZSBnbGVpY2gsIHNvIHdpZSAgdyAgKFdvcnQpLCAkIChFbmRlIGRlciBaZWlsZSksIGV0Yy4KKyAgMi4gRGllIEJld2VndW5nc3NjaHJpdHRlIHNpbmQgZGllIGdsZWljaGVuICwgc28gd2llICB3ICAoV29ydCkgdW5kICAkCisgICAgIChaZWlsZW5lbmRlKS4KIAotICAzLiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgZXJzdGVuIHVudGVuIHN0ZWhlbmRlbiwgbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZS4KKyAgMy4gQmV3ZWdlIERpY2ggenVyIGVyc3RlbiB1bnRlbiBzdGVoZW5kZW4gbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZS4KIAotICA0LiBCZXdlZ2UgZGVuIEN1cnNvciB6dW0gZXJzdGVuIFVudGVyc2NoaWVkIHp1ciBhbmRlcmVuIFplaWxlLgorICA0LiBCZXdlZ2UgZGVuIEN1cnNvciB6dW0gZXJzdGVuIEZlaGxlci4KIAotICA1LiBUaXBwZSAgYyQgICwgdW0gZGVuIFJlc3QgZGVyIFplaWxlIGFuIGRpZSB6d2VpdGUgYW56dWdsZWljaGVuCi0gICAgIHVuZCBkcvxja2UgYWJzY2hsaWXfZW5kIDxFU0M+IC4KKyAgNS4gVGlwcGUgIGMkICAsIGdpYiBkZW4gUmVzdCBkZXIgWmVpbGUgd2llIGluIGRlciB6d2VpdGVuIGVpbiwgZHL8Y2tlIDxFU0M+IC4KIAotLS0tPiBEYXMgRW5kZSBkaWVzZXIgWmVpbGUgc29sbHRlIGFuIGRpZSB6d2VpdGUgWmVpbGUgYW5nZWdsaWNoZW4gd2VyZGVuLgotLS0tPiBEYXMgRW5kZSBkaWVzZXIgWmVpbGUgc29sbHRlIG1pdCBkZW0gJ2MkJyBLb21tYW5kbyBrb3JyaWdpZXJ0IHdlcmRlbi4KKy0tLT4gRGFzIEVuZGUgZGllc2VyIFplaWxlIHNvbGwgYW4gZGllIHp3ZWl0ZSBaZWlsZSBhbmdlZ2xpY2hlbiB3ZXJkZW4uCistLS0+IERhcyBFbmRlIGRpZXNlciBaZWlsZSBzb2xsIG1pdCBkZW0gIGMkICBLb21tYW5kbyBrb3JyaWdpZXJ0IHdlcmRlbi4KIAotCitCZW1lcmt1bmc6IER1IGthbm5zdCBkaWUgUvxja3Rhc3RlIGJlbnV0emVuLCB1bSBUaXBwZmVobGVyIHp1IGtvcnJpZ2llcmVuLgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCQkgICBaVVNBTU1FTkZBU1NVTkcgVk9OIExFS1RJT04gMworCQkJIFpVU0FNTUVORkFTU1VORyBWT04gTEVLVElPTiAzCiAKIAotICAxLiBVbSBlaW5lbiB2b3JoZXIgZ2Vs9nNjaHRlbiBUZXh0IGFuenVm/GdlbiwgdGlwcGUgIHAgIC4gRGllcyBm/Gd0IGRlbgotICAgICBnZWz2c2NodGVuIFRleHQgTkFDSCBkZW0gQ3Vyc29yIGFuICh3ZW5uIGVzIHNpY2ggdW0gZWluZSBnYW56ZSBaZWlsZQotICAgICBoYW5kZWx0LCB3aXJkIGFiIGRlciBaZWlsZSB1bnRlciBkZW0gQ3Vyc29yIGVpbmdlZvxndCkuCisgIDEuIFVtIGVpbmVuIHZvcmhlciBnZWz2c2NodGVuIFRleHQgYW56dWb8Z2VuLCB0aXBwZSAgIHAgLiBEaWVzIGb8Z3QgZGVuCisgICAgIGdlbPZzY2h0ZW4gVGV4dCBOQUNIIGRlbSBDdXJzb3IgYW4gKHdlbm4gZWluZSBnYW56ZSBaZWlsZSBnZWz2c2NodCB3dXJkZSwKKyAgICAgd2lyZCBkaWVzZSBpbiBkaWUgWmVpbGUgdW50ZXIgZGVtIEN1cnNvciBlaW5nZWb8Z3QpLgogCi0gIDIuIFVtIGRhcyBaZWljaGVuIHVudGVyIGRlbSBDdXJzb3IgenUgZXJzZXR6ZW4sIHRpcHBlICAgciAgOyBkYXMgZGFuYWNoCi0gICAgIGVpbmdlZ2ViZW5lIFplaWNoZW4gZXJzZXR6dCBkYXMgT3JpZ2luYWwuCisgIDIuIFVtIGRhcyBaZWljaGVuIHVudGVyIGRlbSBDdXJzb3IgenUgZXJzZXR6ZW4sIHRpcHBlICAgciAgIHVuZCBkYXMgYW4gZGllc2VyCisgICAgIFN0ZWxsZSBnZXf8bnNjaHRlIFplaWNoZW4uCiAKLSAgMy4gRGFzIMRuZGVydW5ncy0gKGNoYW5nZSkgS29tbWFuZG8gZXJsYXVidCwgZGFzIGFuZ2VnZWJlbmUgT2JqZWt0IHZvbSBDdXJzb3IKLSAgICAgYmlzIHp1bSBFbmRlIGRlcyBPYmpla3RlcyB6dSDkbmRlcm4uIFRpcHBlIHouQi4gY3cgLCB1bSBlaW5lIMRuZGVydW5nIHZvbQotICAgICBDdXJzb3IgYmlzIHp1bSBFbmRlIGRlcyBXb3J0ZXMgdm9yenVuZWhtZW47IGMkIGJpcyB6dW0gRW5kZSBkZXIgWmVpbGUuCisgIDMuIERlciDEbmRlcnVuZ3MtIChjaGFuZ2UpIE9wZXJhdG9yIGVybGF1YnQsIHZvbSBDdXJzb3IgYmlzIHp1bSBFbmRlIGRlcworICAgICBCZXdlZ3VuZ3NzY2hyaXR0ZXMgenUg5G5kZXJuLiBUaXBwZSAgY2UgICwgdW0gZWluZSDEbmRlcnVuZyB2b20gQ3Vyc29yIGJpcworICAgICB6dW0gRW5kZSBkZXMgV29ydGVzIHZvcnp1bmVobWVuOyAgYyQgIGJpcyB6dW0gRW5kZSBlaW5lciBaZWlsZS4KIAogICA0LiBEYXMgRm9ybWF0IGb8ciBjaGFuZ2UgaXN0OgogCi0JIFtOdW1tZXJdICAgYwlPYmpla3QJICAgICBPREVSCWMgICBbTnVtbWVyXSAgIE9iamVrdAorCSBjICAgW0FuemFobF0gIEJld2VndW5nc3NjaHJpdHQKIAotTnVuIGZhaHJlIG1pdCBkZXIgbuRjaHN0ZW4gTGVrdGlvbiBmb3J0LgorICBOdW4gZmFocmUgbWl0IGRlciBu5GNoc3RlbiBMZWt0aW9uIGZvcnQuCisKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgTGVrdGlvbiA0LjE6IERBVEVJUE9TSVRJT04gVU5EIERBVEVJU1RBVFVTCisJCSAgTGVrdGlvbiA0LjE6IENVUlNPUlBPU0lUSU9OIFVORCBEQVRFSVNUQVRVUwogCisgKiogVGlwcGUgQ1RSTC1HICwgdW0gRGVpbmUgRGF0ZWlwb3NpdGlvbiBzb3dpZSBkZW4gRGF0ZWlzdGF0dXMgYW56dXplaWdlbi4gKioKKyAgICAgKiogVGlwcGUgRyAsIHVtIERpY2ggenUgZWluZXIgWmVpbGUgaW4gZGVyIERhdGVpIHp1IGJlZ2ViZW4uICoqCiAKLSAqKiBUaXBwZSBDVFJMLWcgLCB1bSBEZWluZSBEYXRlaXBvc2l0aW9uIHNvd2llIGRlbiBEYXRlaXN0YXR1cyBhbnp1emVpZ2VuLiAqKgotICAgICAqKiBUaXBwZSBTSElGVC1HICwgdW0gRGljaCB6dSBlaW5lciBaZWlsZSBpbiBkZXIgRGF0ZWkgenUgYmV3ZWdlbi4gKioKK0JlbWVya3VuZzogTGllcyBkaWVzZSBnZXNhbXRlIExla3Rpb24sIGJldm9yIER1IGlyZ2VuZGVpbmVuIFNjaHJpdHQgYXVzZvxocnN0ISEKIAotIEJlbWVya3VuZzogTGllcyBkaWVzZSBnZXNhbXRlIExla3Rpb24sIGJldm9yIER1IGlyZ2VuZGVpbmVuIFNjaHJpdHQgYXVzZvxocnN0ISEKKyAgMS4gSGFsdGUgZGllIEN0cmwgVGFzdGUgdW50ZW4gdW5kIGRy/GNrZSAgZyAuIERpZXMgbmVubmVuIHdpciB3aXIgQ1RSTC1HLgorICAgICBFaW5lIFN0YXR1c21lbGR1bmcgYW0gRnXfIGRlciBTZWl0ZSBlcnNjaGVpbnQgbWl0IGRlbSBEYXRlaW5hbWVuIHVuZCBkZXIKKyAgICAgUG9zaXRpb24gaW5uZXJoYWxiIGRlciBEYXRlaS4gTWVya2UgRGlyIGRpZSBaZWlsZW5udW1tZXIgZvxyIFNjaHJpdHQgMy4KIAotICAxLiBIYWx0ZSBkaWUgQ3RybCBUYXN0ZSB1bnRlbiB1bmQgZHL8Y2tlICBnIC4gIEVpbmUgU3RhdHVzemVpbGUgZXJzY2hlaW50IGluCi0gICAgIGRlciB1bnRlcnN0ZW4gWmVpbGUgZGVzIEZlbnN0ZXJzIG1pdCBkZW0gRGF0ZWluYW1lbiB1bmQgZGVyIFplaWxlLAotICAgICBhdWYgZGVyIER1IERpY2ggYmVmaW5kZXN0LiBQcuRnZSBEaXIgZGllIFplaWxlbm51bW1lciBm/HIgU2Nocml0dCAzIGVpbi4KK0JlbWVya3VuZzogTfZnbGljaGVyd2Vpc2Ugc2llaHN0IER1IGRpZSBDdXJzb3Jwb3NpdGlvbiBpbiBkZXIgdW50ZXJlbiByZWNodGVuCisgICAgICBCaWxkc2NoaXJtZWNrZS4gRGllcyBpc3QgRm9sZ2UgZGVyICdydWxlcicgT3B0aW9uIChzaWVoZSA6aGVscCAncnVsZXInKQogCi0gIDIuIERy/GNrZSBTaGlmdC1HICwgdW0gRGljaCB6dW0gRW5kZSBkZXIgRGF0ZWkgenUgYmVnZWJlbi4KKyAgMi4gRHL8Y2tlICBHICAsIHVtIERpY2ggenVtIEVuZGUgZGVyIERhdGVpIHp1IGJlZ2ViZW4uCisgICAgIFRpcHBlICBnZyAgLCB1bSBEaWNoIHp1bSBBbmZhbmcgZGVyIERhdGVpIHp1IGJlZ2ViZW4uCiAKLSAgMy4gR2liIGRpZSBOdW1tZXIgZGVyIFplaWxlIGVpbiwgYXVmIGRlciBEdSB2b3JoZXIgd2Fyc3QsIGdlZm9sZ3Qgdm9uIFNoaWZ0LUcuCi0gICAgIERpZXNlcyBicmluZ3QgRGljaCB6dXL8Y2sgenUgZGVyIFplaWxlLCBhdWYgZGVyIER1IGdlc3RhbmRlbiBoYXN0LCBhbHMgRHUKLSAgICAgZGFzIGVyc3RlIE1hbCBDdHJsLWcgZ2Vkcvxja3QgaGFzdC4KLSAgICAgKFdlbm4gRHUgZGllIFppZmZlcm4gZWluZ2lic3QsIHdlcmRlbiBzaWUgTklDSFQgYXVmIGRlbSBTY2hpcm0gYW5nZXplaWd0LikKKyAgMy4gR2liIGRpZSBOdW1tZXIgZGVyIFplaWxlIGVpbiwgYXVmIGRlciBEdSB2b3JoZXIgd2Fyc3QsIGdlZm9sZ3Qgdm9uICBHIC4KKyAgICAgRGllcyBicmluZ3QgRGljaCB6dXL8Y2sgenUgZGVyIFplaWxlLCBhdWYgZGVyIER1IGdlc3RhbmRlbiBoYXN0LCBhbHMgRHUKKyAgICAgZGFzIGVyc3RlIE1hbCBDVFJMLUcgZ2Vkcvxja3QgaGFzdC4KIAotICA0LiBXZW5uIER1IHNpY2hlciBnZW51ZyBm/Ghsc3QsIGb8aHJlIGRpZSBTY2hyaXR0ZSAxIGJpcyAzIGF1cy4KLQotCisgIDQuIFdlbm4gRHUgRGljaCBzaWNoZXIgZ2VudWcgZvxobHN0LCBm/GhyZSBkaWUgU2Nocml0dGUgMSBiaXMgMyBhdXMuCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICAgIExla3Rpb24gNC4yOiBEQVMgU1VDSEVOIC0gS09NTUFORE8KIAogCiAgICoqIFRpcHBlICAvICBnZWZvbGd0IHZvbiBlaW5lbSBBdXNkcnVjaywgdW0gbmFjaCBkZW0gQXVzZHJ1Y2sgenUgc3VjaGVuLiAqKgogCi0gIDEuIFdlbm4gRHUgaW0gTm9ybWFsLU1vZHVzIGJpc3QsIHRpcHBlIGRhcyAgLyAgWmVpY2hlbi4gIEJlYWNodGUsIGRhc3MgZGFzICAvCi0gICAgIHVuZCBkZXIgQ3Vyc29yIGF1ZiBkZXIgdW50ZXJzdGVuIFplaWxlIGRlcyBTY2hpcm1zIGVyc2NoZWluZW4sCi0gICAgIHNvIHdpZSBiZWltICA6ICBLb21tYW5kby4KKyAgMS4gSW0gTm9ybWFsbW9kdXMsIHRpcHBlIGRhcyAgLyAgWmVpY2hlbi4gIEJlbWVya2UsIGRhc3MgZGFzICAvIHVuZCBkZXIKKyAgICAgQ3Vyc29yIGFtIEZ13yBkZXMgU2NoaXJtcyBlcnNjaGVpbmVuLCBzbyB3aWUgYmVpbSA6CUtvbW1hbmRvLgogCi0gIDIuIE51biB0aXBwZSAnRmVoaGxlcicgPEVOVEVSPi4gIERpZXMgaXN0IGRhcyBXb3J0LCBuYWNoIGRlbSBEdSBzdWNoZW4gd2lsbHN0LgorICAyLiBOdW4gdGlwcGUgJ0ZlaGhsZXInIDxFTlRFUj4uIERpZXMgaXN0IGRhcyBXb3J0LCBuYWNoIGRlbSBEdSBzdWNoZW4gd2lsbHN0LgogCi0gIDMuIFVtIG5hY2ggZGVtc2VsYmVuIEF1c2RydWNrIHdlaXRlcnp1c3VjaGVuLCB0aXBwZSBlaW5mYWNoICBuIChm/HIgKm4qZXh0KS4KLSAgICAgVW0gbmFjaCBkZW1zZWxiZW4gQXVzZHJ1Y2sgaW4gZGVyIGFuZGVyZW4gUmljaHR1bmcgenUgc3VjaGVuLCBTaGlmdC1OIC4KKyAgMy4gVW0gbmFjaCBkZW1zZWxiZW4gQXVzZHJ1Y2sgd2VpdGVyenVzdWNoZW4sIHRpcHBlIGVpbmZhY2ggIG4gKGb8ciBuZXh0KS4KKyAgICAgVW0gbmFjaCBkZW1zZWxiZW4gQXVzZHJ1Y2sgaW4gZGVyIEdlZ2VucmljaHR1bmcgenUgc3VjaGVuLCB0aXBwZSAgTiAuCiAKLSAgNC4gV2VubiBEdSBuYWNoIGVpbmVtIEF1c2RydWNrIHL8Y2t35HJ0cyBpbiBkZXIgRGF0ZWkgc3VjaGVuIHdpbGxzdCwKLSAgICAgYmVudXR6ZSBkYXMgS29tbWFuZG8gID8gIHN0YXR0ICAvIC4KKyAgNC4gVW0gbmFjaCBlaW5lbSBBdXNkcnVjayBy/GNrd+RydHMgenUgc3VjaGVuICwgYmVudXR6ZSAgPyAgc3RhdHQgIC8gLgogCi0tLS0+IFdlbm4gZGllIFN1Y2hlIGRhcyBEYXRlaWVuZGUgZXJyZWljaHQgaGF0LCB3aXJkIHNpZSBhbSBBbmZhbmcgZm9ydGdlc2V0enQuCisgIDUuIFVtIGRhaGluIHp1cvxja3p1a2VocmVuLCB2b24gd28gRHUgZ2Vrb21tZW4gYmlzdCwgZHL8Y2tlIENUUkwtTyAoSGFsdGUKKyAgICAgQ3RybCB1bnRlbiB1bmQgZHL8Y2tlIGRlbiBCdWNoc3RhYmVuIG8pLiBXaWVkZXJob2xlIGRpZXMsIHVtIHdlaXRlcgorICAgICB6dXL8Y2t6dWdlaGVuLiAgQ1RSTC1JIGJyaW5ndCBkaWNoIHZvcnfkcnRzLgogCi0gIEZlaGxlciBzY2hyZWlidCBzaWNoIG5pY2h0ICJGZWhobGVyIjsgIkZlaGhsZXIiIGlzdCBlaW4gRmVobGVyCi0KLQorLS0tPiAgRmVobGVyIHNjaHJlaWJ0IHNpY2ggbmljaHQgIkZlaGhsZXIiOyBGZWhobGVyIGlzdCBlaW4gRmVobGVyCitCZW1lcmt1bmc6IFdlbm4gZGllIFN1Y2hlIGRhcyBEYXRlaWVuZGUgZXJyZWljaHQgaGF0LCB3aXJkIHNpZSBhbSBBbmZhbmcKKyAgICAgICAgZm9ydGdlc2V0enQsIGVzIHNlaSBkZW5uLCBkaWUgJ3dyYXBzY2FuJyBPcHRpb24gd3VyZGUgYWJnZXNjaGFsdGV0Lgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgICAgTGVrdGlvbiA0LjM6IFBBU1NFTkRFIEtMQU1NRVJOIEZJTkRFTgogCiAKICAgICoqIFRpcHBlICAlICwgdW0gZWluZSBrb3JyZXNwb25kaWVyZW5kZSBLbGFtbWVyICksXSwgb2RlciB9IHp1IGZpbmRlbi4gKioKIAotICAxLiBQbGF0emllcmUgZGVuIEN1cnNvciBhdWYgaXJnZW5kZWluZW0gZGVyIFplaWNoZW4gKCwgWywgb2RlciB7Ci0gICAgIGluIGRlciB1bnRlbiBzdGVoZW5kZW4gWmVpbGUsIGRpZSBtaXQgLS0tPiBtYXJraWVydCBpc3QuCisgIDEuIFBsYXR6aWVyZSBkZW4gQ3Vyc29yIGF1ZiBpcmdlbmRlaW5lcyBkZXIgWmVpY2hlbiAoLCBbLCBvZGVyIHsgaW4gZGVyIHVudGVuCisgICAgIHN0ZWhlbmRlbiBaZWlsZSwgZGllIG1pdCAtLS0+IG1hcmtpZXJ0IGlzdC4KIAogICAyLiBOdW4gdGlwcGUgZGFzICAlICBaZWljaGVuLgogCi0gIDMuIERlciBDdXJzb3Igc29sbHRlIHNpY2ggbnVuIGF1ZiBkZXIgZ2VnZW78YmVybGllZ2VuZGVuIEtsYW1tZXIgYmVmaW5kZW4uCisgIDMuIERlciBDdXJzb3IgYmV3ZWd0IHNpY2ggenVyIHBhc3NlbmRlbiBnZWdlbvxiZXJsaWVnZW5kZW4gS2xhbW1lci4KIAotICA0LiBUaXBwZSAgJSAsIHVtIGRlbiBDdXJzb3IgenVy/GNrIGF1ZiBkaWUgZXJzdGUgR2VnZW5rbGFtbWVyIHp1cvxja3p1YmV3ZWdlbi4KKyAgNC4gVGlwcGUgICUgLCB1bSBkZW4gQ3Vyc29yIHp1ciBhbmRlcmVuIHBhc3NlbmRlbiBLbGFtbWVyIHp1IGJld2VnZW4uCiAKLS0tLT4gRGllcyAoIGlzdCBlaW5lIFRlc3R6ZWlsZSBtaXQgKCB2ZXJzY2hpZWRlbmVuIFsgS2xhbW1lcm4gXSB7IHh4IH0gZGFyaW4uICkpCisgIDUuIFNldHplIGRlbiBDdXJzb3IgYXVmIGVpbiBhbmRlcmVzICgsKSxbLF0seyBvZGVyIH0gdW5kIHByb2JpZXJlICAlICBhdXMuCisKKy0tLT4gRGllcyAoIGlzdCBlaW5lIFRlc3R6ZWlsZSAoIG1pdCBbIHZlcnNjaGllZGVuZW4gXSB7IEtsYW1tZXJuIH0gIGRhcmluLiApKQogCiBCZW1lcmt1bmc6IERpZXNlIEZ1bmt0aW9uYWxpdOR0IGlzdCBzZWhyIG78dHpsaWNoIGJlaSBkZXIgRmVobGVyc3VjaGUgaW4gZWluZW0KLSAgICAgUHJvZ3JhbW10ZXh0LCBpbiBkZW0gZWluZSBwYXNzZW5kZSBLbGFtbWVyIGZlaGx0IQorICAgICBQcm9ncmFtbXRleHQsIGluIGRlbSBwYXNzZW5kZSBLbGFtbWVybiBmZWhsZW4hCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgIExla3Rpb24gNC40OiBXRUdFLCBVTSBGRUhMRVIgWlUgQkVIRUJFTgorCQlMZWt0aW9uIDQuNDogREFTIEVSU0VUWlVOR1NLT01NQU5ETyAoU1VCU1RJVFVURSkKIAogCi0JICoqIFRpcHBlIDpzL2FsdC9uZXUvZwksIHVtICdhbHQnIGR1cmNoICduZXUnIHp1IGVyc2V0emVuLiAqKgorCSAqKiBUaXBwZSA6cy9hbHQvbmV1L2cgICwgdW0gJ2FsdCcgZHVyY2ggJ25ldScgenUgZXJzZXR6ZW4uICoqCiAKICAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenUgZGVyIHVudGVuIHN0ZWhlbmRlbiBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlLgogCiAgIDIuIFRpcHBlICA6cy9kaWVlL2RpZSA8RU5URVI+IC4gIEJlbWVya2UsIGRhc3MgZGVyIEJlZmVobCBudXIgZGFzIGVyc3RlCi0gICAgIFZvcmtvbW1lbiBhdWYgZGVyIFplaWxlIGVyc2V0enQuCisgICAgIFZvcmtvbW1lbiB2b24gImRpZWUiIGVyc2V0enQuCiAKLSAgMy4gTnVuIHRpcHBlICAgOnMvZGllZS9kaWUvZyAgICAsIHdlbGNoZXMgYmVkZXV0ZXQsIGVpbmUgemVpbGVud2VpdGUKLSAgICAgKCpnKmxvYmFsZSkgRXJzZXR6dW5nIHZvcnp1bmVobWVuLgotICAgICBEaWVzIGVyc2V0enQgYWxsZSBWb3Jrb21tZW4gYXVmIGRlciBaZWlsZS4KKyAgMy4gTnVuIHRpcHBlICAgOnMvZGllZS9kaWUvZyAuIERhcyBadWb8Z2VuIGRlcyBGbGFncyAgZyAgIGJlZGV1dGV0LCBlaW5lCisgICAgIGdsb2JhbGUgRXJzZXR6dW5nIPxiZXIgZGllIFplaWxlIGR1cmNoenVm/GhyZW4sIHdhcyBhbGxlIFZvcmtvbW1lbiB2b24KKyAgICAgImRpZWUiIGF1ZiBkZXIgWmVpbGUgZXJzZXR6dC4KIAogLS0tPiBkaWVlIHNjaPZuc3RlIFplaXQsIHVtIGRpZWUgQmx1bWVuIGFuenVzY2hhdWVuLCBpc3QgZGllZSBGcvxobGluZ3N6ZWl0LgogCi0gIDQuIFVtIGFsbGUgVm9ya29tbWVuIGVpbmVyIFplaWNoZW5rZXR0ZSB6d2lzY2hlbiB6d2VpIFplaWxlbiB6dSDkbmRlcm4sCi0gICAgIHRpcHBlICA6Iywjcy9hbHQvbmV1L2cgICwgd29iZWkgIywjIGRpZSB6d2VpIE51bW1lcm4gZGVyIFplaWxlbiBzaW5kLgotICAgICBUaXBwZSAgOiVzL2FsdC9uZXUvZyAsIHVtIGFsbGUgVm9ya29tbWVuIGluIGRlciBnZXNhbXRlbiBEYXRlaSB6dSDkbmRlcm4uCi0KLQorICA0LiBVbSBhbGxlIFZvcmtvbW1lbiBlaW5lciBaZWljaGVua2V0dGUgaW5uZXJoYWxiIHp3ZWllciBaZWlsZW4genUg5G5kZXJuLAorICAgICB0aXBwZSAgOiMsI3MvYWx0L25ldS9nICAgd29iZWkgIywjIGRpZSBaZWlsZW5udW1tZXJuIGRlcyBaZWlsZW5iZXJlaWNoZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaW5kLCBpbiBkZW0gZGllIEVyc2V0enVuZyBkdXJjaGdlZvxocnQgd2VyZGVuIHNvbGwuCisgICAgIFRpcHBlICA6JXMvYWx0L25ldS9nICAgIHVtIGFsbGUgVm9ya29tbWVuIGluIGRlciBnZXNhbXRlbiBEYXRlaSB6dSDkbmRlcm4uCisgICAgIFRpcHBlICA6JXMvYWx0L25ldS9nYyAgIHVtIGFsbGUgVm9ya29tbWVuIGluIGRlciBnZXNhbXRlbiBEYXRlaSB6dSBmaW5kZW4KKyAgICAgICAgICAgICAgICAgICAgIG1pdCBlaW5lbSBGcmFnZWRpYWxvZywgb2IgZXJzZXR6dCB3ZXJkZW4gc29sbCBvZGVyIG5pY2h0Lgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCQkgICBaVVNBTU1FTkZBU1NVTkcgVk9OIExFS1RJT04gNAorCQkJIFpVU0FNTUVORkFTU1VORyBWT04gTEVLVElPTiA0CiAKKyAgMS4gQ1RSTC1HICB6ZWlndCBkaWUgYWt0dWVsbGUgRGF0ZWlwb3NpdGlvbiBzb3dpZSBkZW4gRGF0ZWlzdGF0dXMuCisgICAgICAgICAgICAgRyAgYnJpbmd0IERpY2ggenVtIEVuZGUgZGVyIERhdGVpLgorICAgICBOdW1tZXIgIEcgIGJyaW5ndCBEaWNoIHp1ciBlbnRzcHJlY2hlbmRlbiBaZWlsZW5udW1tZXIuCisgICAgICAgICAgICBnZyAgYnJpbmd0IERpY2ggenVyIGVyc3RlbiBaZWlsZS4KIAotICAxLiBDdHJsLWcgIHplaWd0IGRpZSBha3R1ZWxsZSBEYXRlaXBvc2l0aW9uIHNvd2llIGRlbiBEYXRlaXN0YXR1cy4KLSAgICAgU2hpZnQtRyBicmluZ3QgRGljaCBiaXMgenVtIEVuZGUgZGVyIERhdGVpLiAgRWluZSBaZWlsZW5udW1tZXIKLSAgICAgZ2Vmb2xndCB2b24gU2hpZnQtRyBiZXdlZ3QgZGVuIEN1cnNvciB6dSBkZXIgWmVpbGVubnVtbWVyLgotCi0gIDIuIERpZSBFaW5nYWJlIHZvbiAgLyBnZWZvbGd0IHZvbiBlaW5lbSBBdXNkcnVjayBzdWNodCBWT1JXxFJUUyBuYWNoIGRlbQotICAgICBBdXNkcnVjay4KLSAgICAgRGllIEVpbmdhYmUgdm9uICA/ICAgICBnZWZvbGd0IHZvbiBlaW5lbSBBdXNkcnVjayBzdWNodCBS3ENLV8RSVFMgbmFjaCBkZW0KLSAgICAgQXVzZHJ1Y2suCisgIDIuIERpZSBFaW5nYWJlIHZvbiAgLyAgcGx1cyBlaW5lbSBBdXNkcnVjayBzdWNodCBWT1JXxFJUUyBuYWNoIGRlbSBBdXNkcnVjay4KKyAgICAgRGllIEVpbmdhYmUgdm9uICA/ICBwbHVzIGVpbmVtIEF1c2RydWNrIHN1Y2h0IFLcQ0tXxFJUUyBuYWNoIGRlbSBBdXNkcnVjay4KICAgICAgVGlwcGUgbmFjaCBlaW5lciBTdWNoZSAgbiAgLCB1bSBkYXMgbuRjaHN0ZSBWb3Jrb21tZW4gaW4gZGVyIGdsZWljaGVuCi0gICAgIFJpY2h0dW5nIHp1IGZpbmRlbjsgb2RlciBTaGlmdC1OICwgdW0gaW4gZGVyIGVudGdlZ2VuZ2VzZXR6dGVuIFJpY2h0dW5nCi0gICAgIHp1IHN1Y2hlbi4KKyAgICAgUmljaHR1bmcgenUgZmluZGVuOyBvZGVyICBOICAsIHVtIGluIGRlciBHZWdlbnJpY2h0dW5nIHp1IHN1Y2hlbi4KKyAgICAgQ1RSTC1PIGJyaW5ndCBEaWNoIHp1cvxjayB6dSDkbHRlcmVuIFBvc2l0aW9uZW4sIENUUkwtSSB6dSBuZXVlcmVuLgogCi0gIDMuIERpZSBFaW5nYWJlIHZvbiAgJSAgLCB3ZW5uIGRlciBDdXJzb3Igc2ljaCBhdWYgICgsKSxbLF0seywgb2RlciB9Ci0gICAgIGJlZmluZGV0LCBmaW5kZXQgZGllIGtvcnJlc3BvbmRpZXJlbmRlIEdlZ2Vua2xhbW1lci4KKyAgMy4gRGllIEVpbmdhYmUgdm9uICAlICAsIHdlbm4gZGVyIEN1cnNvciBzaWNoIGF1ZiAoLCksWyxdLHssIG9kZXIgfQorICAgICBiZWZpbmRldCwgYnJpbmd0IERpY2ggenVyIEdlZ2Vua2xhbW1lci4KIAotICA0LiBVbSBkYXMgRVJTVEUgVm9ya29tbWVuIHZvbiBhbHQgaW4gZWluZSBaZWlsZSBkdXJjaCBuZXUgenUgZXJzZXR6ZW4sIHRpcHBlCi0JCTpzL2FsdC9uZXUKLSAgICAgVW0gQUxMRSBWb3Jrb21tZW4gdm9uIGFsdCBpbiBlaW5lIFplaWxlIGR1cmNoIG5ldSB6dSBlcnNldHplbiwgdGlwcGUKLQkJOnMvYWx0L25ldS9nCi0gICAgIFVtIEF1c2Ry/GNrZSBpbm5lcmhhbGIgdm9uIHp3ZWkgWmVpbGVuIHp1IGVyc2V0emVuLCB0aXBwZQotCQk6Iywjcy9hbHQvbmV1L2cKLSAgICAgVW0gYWxsZSBWb3Jrb21tZW4gaW4gZGVyIGdhbnplbiBEYXRlaSB6dSBlcnNldHplbiwgdGlwcGUKLQkJOiVzL2FsdC9uZXUvZwotICAgICBVbSBqZWRlcyBNYWwgbmFjaCBlaW5lciBCZXN05HRpZ3VuZyBnZWZyYWd0IHp1IHdlcmRlbiwgZvxnZSAnYycgaGluenUuCi0JCTolcy9hbHQvbmV1L2djCQkoKmMqb25maXJtKQotCi0KKyAgNC4gVW0gZGFzIGVyc3RlIFZvcmtvbW1lbiB2b24gImFsdCIgaW4gZWluZXIgWmVpbGUgZHVyY2ggIm5ldSIgenUgZXJzZXR6ZW4sCisgICAgICAgICAgICAgdGlwcGUgICAgICAgOnMvYWx0L25ldQorICAgICBVbSBhbGxlIFZvcmtvbW1lbiB2b24gImFsdCIgaW4gZGVyIFplaWxlIGVyc2V0emVuLCB0aXBwZSAgOnMvYWx0L25ldS9nCisgICAgIFVtIEF1c2Ry/GNrZSBpbm5lcmhhbGIgendlaWVyIFplaWxlbm51bW1lcm4genUgZXJzZXR6ZW4sICA6Iywjcy9hbHQvbmV1L2cKKyAgICAgVW0gYWxsZSBWb3Jrb21tZW4gaW4gZGVyIGdhbnplbiBEYXRlaSB6dSBlcnNldHplbiwgdGlwcGUgIDolcy9hbHQvbmV1L2cKKyAgICAgRvxyIGVpbmUgamVkbWFsaWdlIEJlc3TkdGlndW5nLCBhZGRpZXJlICAnYycgIChjb25maXJtKSAgIDolcy9hbHQvbmV1L2djCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJTGVrdGlvbiA1LjE6IEFVU0bcSFJFTiBFSU5FUyBFWFRFUk5FTiBLT01NQU5ET1MKIAogCiAgICoqIEdpYiAgOiEgLCBnZWZvbGd0IHZvbiBlaW5lbSBleHRlcm5lbiBLb21tYW5kbyBlaW4sIHVtIGVzIGF1c3p1ZvxocmVuLiAqKgogCi0gIDEuIFRpcHBlIGRhcyB2ZXJ0cmF1dGUgS29tbWFuZG8gIDogICwgdW0gZGVuIEN1cnNvciBhdWYgZGllIHVudGVyc3RlIFplaWxlCi0gICAgIGRlcyBGZW5zdGVycyB6dSBzZXR6ZW4uIERpZXMgZXJsYXVidCBEaXIsIGVpbiBLb21tYW5kbyBlaW56dWdlYmVuLgorICAxLiBUaXBwZSBkYXMgdmVydHJhdXRlIEtvbW1hbmRvICA6ICAsIHVtIGRlbiBDdXJzb3IgYXVmIGRlbiBGdd8gZGVzIFNjaGlybXMKKyAgICAgenUgc2V0emVuLiBEaWVzIGVybGF1YnQgRGlyLCBlaW4gS29tbWFuZG96ZWlsZW4tS29tbWFuZG8gZWluenVnZWJlbi4KIAotICAyLiBOdW4gdGlwcGUgZWluICAhICAoQXVzcnVmZXplaWNoZW4pLiAgRGllc2VzIGVybfZnbGljaHQgRGlyLCBlaW4KLSAgICAgYmVsaWViaWdlcywgZXh0ZXJuZXMgU2hlbGxrb21tYW5kbyBhdXN6dWb8aHJlbi4KKyAgMi4gTnVuIHRpcHBlIGVpbiAgISAgKEF1c3J1ZmV6ZWljaGVuKS4gIERpZXMgZXJt9mdsaWNodCBEaXIsIGVpbiBiZWxpZWJpZ2VzLAorICAgICBleHRlcm5lcyBTaGVsbGtvbW1hbmRvIGF1c3p1ZvxocmVuLgogCiAgIDMuIEFscyBCZWlzcGllbCB0aXBwZSAgIGxzICAgbmFjaCBkZW0gICEgIHVuZCBkcvxja2UgPEVOVEVSPi4gRGllcyB6ZWlndAogICAgICBlaW5lIEF1Zmxpc3R1bmcgRGVpbmVzIFZlcnplaWNobmlzc2VzOyBnZW5hdXNvLCBhbHMgd2VubiBEdSBhdWYgZGVyCi0gICAgIEVpbmdhYmVhdWZmb3JkZXJ1bmcgd+Ryc3QuCi0gICAgIFZlcndlbmRlICA6IWRpciAgLCBmYWxscyBscyBuaWNodCBmdW5rdGlvbmllcnQuCisgICAgIEVpbmdhYmVhdWZmb3JkZXJ1bmcgd+Ryc3QuICBPZGVyIHZlcndlbmRlICA6IWRpciAgLCBmYWxscyBscyBuaWNodCBnZWh0LgogCi0tLS0+IEJlbWVya3VuZzogIE1pdCBkaWVzZXIgTWV0aG9kZSBrYW5uIGplZGVzIGJlbGllYmlnZSBleHRlcm5lIEtvbW1hbmRvCi0gICAgIGF1c2dlZvxocnQgd2VyZGVuLgorQmVtZXJrdW5nOiAgTWl0IGRpZXNlciBNZXRob2RlIGthbm4gamVkZXMgYmVsaWViaWdlIGV4dGVybmUgS29tbWFuZG8KKyAgICAgYXVzZ2Vm/GhydCB3ZXJkZW4sIGF1Y2ggbWl0IEFyZ3VtZW50ZW4uCiAKLS0tLT4gQmVtZXJrdW5nOiAgQWxsZSAgOiAgS29tbWFuZG9zIG38c3NlbiBkdXJjaCBFaW5nYWJlIHZvbiA8RU5URVI+Ci0gICAgIGFiZ2VzY2hsb3NzZW4gd2VyZGVuLgorQmVtZXJrdW5nOiAgQWxsZSAgOiAgS29tbWFuZG9zIG38c3NlbiBkdXJjaCBFaW5nYWJlIHZvbiA8RU5URVI+CisgICAgIGFiZ2VzY2hsb3NzZW4gd2VyZGVuLiBWb24gamV0enQgYW4gZXJ35GhuZW4gd2lyIGRpZXMgbmljaHQgamVkZXNtYWwuCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCUxla3Rpb24gNS4yOiBNRUhSINxCRVIgREFTIFNDSFJFSUJFTiBWT04gREFURUlFTgogCiAKLSoqIFVtIGFuIGRlciBEYXRlaSBkdXJjaGdlZvxocnRlIMRuZGVydW5nZW4gIHp1IHNpY2hlcm4gLCB0aXBwZSA6dyBEQVRFSU5BTUUuICoqCisqKiBVbSBhbSBUZXh0IGR1cmNoZ2Vm/GhydGUgxG5kZXJ1bmdlbiB6dSBzcGVpY2hlcm4sIHRpcHBlIDp3IERBVEVJTkFNRS4gKioKIAotICAxLiBUaXBwZSAgOiFscyAgb2RlciA6IWRpciAgLCB1bSBlaW5lIEF1Zmxpc3R1bmcgRGVpbmVzIFZlcnplaWNobmlzc2VzCi0gICAgIHp1IGVyaGFsdGVuLgotICAgICBEdSB3ZWnfdCBudW4gYmVyZWl0cywgZGFzcyBEdSBkYW5hY2ggPEVOVEVSPiBlaW5nZWJlbiBtdXNzdC4KKyAgMS4gVGlwcGUgIDohZGlyICBvZGVyICA6IWxzICAsIHVtIGVpbmUgQXVmbGlzdHVuZyBEZWluZXMgVmVyemVpY2huaXNzZXMgenUKKyAgICAgZXJoYWx0ZW4uICBEdSB3ZWnfdCBudW4gYmVyZWl0cywgZGFzcyBEdSBkYW5hY2ggPEVOVEVSPiBlaW5nZWJlbiBtdXNzdC4KIAotICAyLiBX5GhsZSBlaW5lbiBEYXRlaW5hbWVuLCBkZXIgZG9ydCBub2NoIG5pY2h0IGV4aXN0aWVydCwgei5CLiBURVNULgorICAyLiBX5GhsZSBlaW5lbiBEYXRlaW5hbWVuLCBkZXIgbm9jaCBuaWNodCBleGlzdGllcnQsIHouQi4gVEVTVC4KIAotICAzLiBOdW4gdGlwcGU6ICA6dyBURVNUICAgKHdvYmVpIFRFU1QgZGVyIGdld+RobHRlIERhdGVpbmFtZSBpc3QuKQorICAzLiBOdW4gdGlwcGU6ICA6dyBURVNUICAgKHdvYmVpIFRFU1QgZGVyIGdld+RobHRlIERhdGVpbmFtZSBpc3QpLgogCi0gIDQuIERpZXNlcyBzcGVpY2hlcnQgZGllc2UgZ2FuemUgRGF0ZWkgIChWaW0gVHV0b3IpICB1bnRlciBkZW0gTmFtZW4gVEVTVC4KLSAgICAgVW0gZGllc2VzIHp1IPxiZXJwcvxmZW4sIHRpcHBlIG5vY2htYWxzICA6IWxzICBiencuICAhZGlyLAotICAgICB1bSBEZWluZW4gVmVyemVpY2huaXNpbmhhbHQgenUgc2VoZW4uCisgIDQuIERpZXMgc3BlaWNoZXJ0IGRpZSBnYW56ZSBEYXRlaSAoZGVuIFZpbSBUdXRvcikgdW50ZXIgZGVtIE5hbWVuIFRFU1QuCisgICAgIFVtIGRpZXMgenUg/GJlcnBy/GZlbiwgdGlwcGUgbm9jaG1hbHMgIDohbHMgIGJ6dy4gICFkaXIsIHVtIERlaW5lbgorICAgICBWZXJ6ZWljaG5pc2luaGFsdCB6dSBzZWhlbi4KIAotLS0tPiBCZWFjaHRlOiB3/HJkZXN0IER1IFZpbSBqZXR6dCBiZWVuZGVuIHVuZCBkYW5hY2ggd2llZGVyIG1pdCBkZW0gRGF0ZWluYW1lbgotICAgICBURVNUIPZmZm5lbiwgZGFubiB35HJlIGRpZXNlIERhdGVpIGVpbmUgZXhha3RlIEtvcGllIGRlcyBUdXRvcnMgenUgZGVtCi0gICAgIFplaXRwdW5rdCwgYWxzIER1IGlobiBnZXNwZWljaGVydCBoYXN0LgorQmVtZXJrdW5nOiBX/HJkZXN0IER1IFZpbSBqZXR6dCBiZWVuZGVuIHVuZCBkYW5hY2ggd2llZGVyIG1pdCB2aW0gVEVTVAorICAgIHN0YXJ0ZW4sIGRhbm4gd+RyZSBkaWVzZSBEYXRlaSBlaW5lIGV4YWt0ZSBLb3BpZSBkZXMgVHV0b3JzIHp1IGRlbQorICAgIFplaXRwdW5rdCwgYWxzIER1IGlobiBnZXNwZWljaGVydCBoYXN0LgogCi0gIDUuIE51biBlbnRmZXJuZSBkaWUgRGF0ZWkgZHVyY2ggRWluZ2FiZSB2b24gICA6IXJtIFRFU1QgICBiencuICAgOiFkZWwgVEVTVC4KLQotCisgIDUuIE51biBlbnRmZXJuZSBkaWUgRGF0ZWkgZHVyY2ggRWluZ2FiZSB2b24gKE1TLURPUyk6ICAgIDohZGVsIFRFU1QKKwkJCQlvZGVyIChVbml4KToJOiFybSBURVNUCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJIExla3Rpb24gNS4zOiBTRUxFS1RJVkVTIFNDSFJFSUJFTiBWT04gREFURUlFTgorCQkgTGVrdGlvbiA1LjM6IEFVU1fESExFTiBWT04gVEVYVCBaVU0gU0NIUkVJQkVOCiAKKyoqIFVtIGVpbmVuIEFic2Nobml0dCBkZXIgRGF0ZWkgenUgc3BlaWNoZXJuLCAgdGlwcGUgIHYgIEJld2VndW5nICA6dyBEQVRFSSAqKgogCi0gICAgKiogVW0gZWluZW4gQWJzY2huaXR0IGRlciBEYXRlaSB6dSBzcGVpY2hlcm4gdGlwcGUgICA6IywjIHcgREFURUlOQU1FICoqCisgIDEuIEJld2VnZSBkZW4gQ3Vyc29yIHp1IGRpZXNlciBaZWlsZS4KIAotICAxLiBHaWIgbm9jaG1hbHMgIDohbHMgIGJ6dyAgOiFkaXIgIGVpbiwgdW0gZWluZSBBdWZsaXN0dW5nIERlaW5lcwotICAgICBWZXJ6ZWljaG5pc3NlcyB6dSBlcmhhbHRlbiB1bmQgd+RobGUgZWluZW4gZ2VlaWduZXRlbiBEYXRlaW5hbWVuIHdpZSBURVNULgorICAyLiBUaXBwZSAgdiAgdW5kIGJld2VnZSBkZW4gQ3Vyc29yIHp1bSBm/G5mdGVuIEF1Zmxpc3R1bmdzcHVua3QgdW50ZW4uCisgICAgIEJlbWVya2UsIGRh3yBkZXIgVGV4dCBoZXJ2b3JnZWhvYmVuIHdpcmQuCiAKLSAgMi4gQmV3ZWdlIGRlbiBDdXJzb3IgenVtIEFuZmFuZyBkaWVzZXMgS2FwaXRlbHMgdW5kIHRpcHBlICBDdHJsLWcgICwgdW0gZGllCi0gICAgIE51bW1lciBkaWVzZXIgWmVpbGUgenUgZXJoYWx0ZW4uIFBSxEdFIERJUiBESUVTRSBOVU1NRVIgRUlOIQorICAzLiBEcvxja2UgZGFzIFplaWNoZW4gIDogLiBBbSBGdd8gZGVzIFNjaGlybXMgZXJzY2hlaW50ICA6JzwsJz4gLgogCi0gIDMuIE51biBiZXdlZ2UgRGljaCB6dW0gRW5kZSBkaWVzZXMgS2FwaXRlbHMgdW5kIHRpcHBlIHdpZWRlciBDdHJsLWcgLgotICAgICBQUsRHRSBESVIgQVVDSCBESUVTRSBaRUlMRU5OVU1NRVIgRUlOIQorICA0LiBUaXBwZSAgdyBURVNUICAsIHdvYmVpIFRFU1QgZWluIG5vY2ggbmljaHQgdm9yaGFuZGVuZXIgRGF0ZWluYW1lIGlzdC4KKyAgICAgVmVyZ2V3aXNzZXJlIERpY2gsIGRh3yBEdSAgOic8LCc+dyBURVNUICBzaWVoc3QsIGJldm9yIER1IEVudGVyIGRy/GNrc3QuCiAKLSAgNC4gVW0gTlVSIGVpbmVuIEFic2Nobml0dCBlaW5lciBEYXRlaSB6dSBzcGVpY2hlcm4sIHRpcHBlICAgOiMsIyB3IFRFU1QKLSAgICAgd29iZWkgIywjIGRpZSB6d2VpIE51bW1lcm4gc2luZCwgZGllIER1IGltIEdlZORjaHRuaXMgaGFzdCAob2JlbiwgdW50ZW4pOwotICAgICB1bmQgVEVTVCBEZWluIERhdGVpbmFtZSBpc3QuCisgIDUuIFZpbSBzY2hyZWlidCBkaWUgYXVzZ2V35GhsdGVuIFplaWxlbiBpbiBkaWUgRGF0ZWkgVEVTVC4gQmVudXR6ZSAgOiFkaXIKKyAgICAgb2RlciAgOiFscyAsIHVtIHNpZSB6dSBzZWhlbi4gTPZzY2hlIHNpZSBub2NoIG5pY2h0ISBXaXIgd2VyZGVuIHNpZSBpbgorICAgICBkZXIgbuRjaHN0ZW4gTGVrdGlvbiBiZW51dHplbi4KIAotICA1LiDcYmVycHL8ZmUgd2llZGVydW0gbWl0ICA6IWxzICAgb2RlciAgOiFkaXIgICBuYWNoLCBkYXNzIGRpZSBEYXRlaQotICAgICBleGlzdGllcnQsIGFiZXIgbPZzY2hlIHNpZSBOSUNIVC4KLQotCitCZW1lcmt1bmc6IERy/GNrZW4gdm9uICB2ICBzdGFydGV0IGRpZSBWaXN1ZWxsZSBBdXN3YWhsLiBEdSBrYW5uc3QgZGVuIEN1cnNvcgorICAgdW1oZXJiZXdlZ2VuLCB1bSBkaWUgQXVzd2FobCBncvbfZXIgb2RlciBrbGVpbmVyIHp1IG1hY2hlbi4gQW5zY2hsaWXfZW5kCisgICBrYW5uIG1hbiBlaW5lbiBPcGVyYXRvciBhbndlbmRlbiwgdW0gbWl0IGRlbSBUZXh0IGV0d2FzIHp1IHR1bi4gWnVtCisgICBCZWlzcGllbCBs9nNjaHQgIGQgIGRlbiBUZXh0Lgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJICAgICAgTGVrdGlvbiA1LjQ6IEVJTkxFU0VOIFVORCBaVVNBTU1FTkbcSFJFTiBWT04gREFURUlFTgogCiAKLQkgKiogVW0gZGVuIEluaGFsdCBlaW5lciBEYXRlaSBlaW56dWxlc2VuLCB0aXBwZSA6ciBEQVRFSU5BTUUgKioKKyAgICAgICAqKiBVbSBkZW4gSW5oYWx0IGVpbmVyIERhdGVpIGVpbnp1bGVzZW4sIHRpcHBlICA6ciBEQVRFSU5BTUUgICoqCiAKLSAgMS4gVGlwcGUgICA6IWxzICAgYnp3LiAgICFkaXIgLCAgdW0gc2ljaGVyenVzdGVsbGVuLCBkYXNzIERlaW5lIERhdGVpIFRFU1QKLSAgICAgdm9uIHZvcmhpbiB2b3JoYW5kZW4gaXN0LgorICAxLiBQbGF0emllcmUgZGVuIEN1cnNvciD8YmVyaGFsYiBkaWVzZXIgWmVpbGUuCiAKLSAgMi4gUGxhdHppZXJlIGRlbiBDdXJzb3IgYXVmIGRlciBlcnN0ZW4gWmVpbGUgZGllc2VzIEthcGl0ZWxzLgorQkVBQ0hURTogIE5hY2hkZW0gRHUgU2Nocml0dCAyIGF1c2dlZvxocnQgaGFzdCwgd2lyc3QgRHUgVGV4dCBhdXMgTGVrdGlvbiA1LjMKKyAgICAgICBzZWhlbi4gRGFubiBiZXdlZ2UgRGljaCB3aWVkZXIgQUJXxFJUUywgdW0gZGllc2UgTGVrdGlvbiB3aWVkZXJ6dXNlaGVuLgogCi1CRUFDSFRFOiAgTmFjaGRlbSBEdSBTY2hyaXR0IDMgYXVzZ2Vm/GhydCBoYXN0LCB3aXJzdCBEdSBMZWt0aW9uIDUuMyAgc2VoZW4uCi0JICBBbiBkaWVzZW0gUHVua3QgYmV3ZWdlIERpY2ggd2llZGVyIEFCV8RSVFMgenUgZGllc2VyIExla3Rpb24uCisgIDIuIE51biBsaWVzIERlaW5lIERhdGVpIFRFU1QgZWluIGluZGVtIER1IGRhcyBLb21tYW5kbyAgOnIgVEVTVCAgYXVzZvxocnN0LAorICAgICB3b2JlaSBURVNUIGRlciB2b24gRGlyIHZlcndlbmRldGUgRGF0ZWluYW1lIGlzdC4KKyAgICAgRGllIGVpbmdlbGVzZW5lIERhdGVpIHdpcmQgdW50ZXJoYWxiIGRlciBDdXJzb3J6ZWlsZSBlaW5nZWb8Z3QuCiAKLSAgMy4gTnVuIGxpZXMgRGVpbmUgRGF0ZWkgVEVTVCBlaW4gaW5kZW0gRHUgZGFzIEtvbW1hbmRvIDpyIFRFU1QgIGF1c2b8aHJzdCwKLSAgICAgd29iZWkgVEVTVCBkZXIgTmFtZSBkZXIgRGF0ZWkgaXN0LgorICAzLiBVbSB6dSD8YmVycHL8ZmVuLCBkYXNzIGRpZSBEYXRlaSBlaW5nZWxlc2VuIHd1cmRlLCBnZWhlIHp1cvxjayB1bmQgc2llaGUsCisgICAgIGRhc3MgZXMgamV0enQgendlaSBLb3BpZW4gdm9uIExla3Rpb24gNS4zIGdpYnQsIGRhcyBPcmlnaW5hbCB1bmQgZGllCisgICAgIGVpbmdlZvxndGUgRGF0ZWl2ZXJzaW9uLgogCi1CRU1FUktVTkc6ICBEaWUgRGF0ZWksIGRpZSBEdSBlaW5saWVzdCwgd2lyZCBhbiBkZXIgU3RlbGxlIGVpbmdlZvxndCwgYW4gZGVyCi0gICAgc2ljaCBkZXIgQ3Vyc29yIGJlZmluZGV0LgotCi0gIDQuIFVtIHp1IPxiZXJwcvxmZW4sIGRhc3MgZWluZSBEYXRlaSBlaW5nZWxlc2VuIHd1cmRlLCBnZWhlIHp1cvxjayB1bmQKLSAgICAgc2VoZSwgZGFzcyBlcyBqZXR6dCB6d2VpIEtvcGllbiB2b24gTGVrdGlvbiA1LjMgZ2lidCwgZGFzIE9yaWdpbmFsIHVuZCBkaWUKLSAgICAgZWluZ2Vm/Gd0ZSBWZXJzaW9uLgotCitCZW1lcmt1bmc6IER1IGthbm5zdCBhdWNoIGRpZSBBdXNnYWJlIGVpbmVzIGV4dGVybmVuIEtvbW1hbmRvcyBlaW5sZXNlbi4gWnVtCisgICAgIEJlaXNwaWVsIGxpZXN0ICA6ciAhbHMgIGRpZSBBdXNnYWJlIGRlcyBLb21tYW5kb3MgbHMgZWluIHVuZCBwbGF0emllcnQKKyAgICAgc2llIHVudGVyaGFsYiBkZXMgQ3Vyc29ycy4KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCQkgWlVTQU1NRU5GQVNTVU5HIFZPTiBMZWt0aW9uIDUKKwkJCSBaVVNBTU1FTkZBU1NVTkcgVk9OIExFS1RJT04gNQogCiAKLSAgMS4gIDohS29tbWFuZG8gIGb8aHJ0IGVpbiBleHRlcm5lcyAoU2hlbGwtKUtvbW1hbmRvIGF1cy4KKyAgMS4gOiFLb21tYW5kbyAgZvxocnQgZWluIGV4dGVybmVzIEtvbW1hbmRvIGF1cy4KIAogICAgICAgRWluaWdlIG78dHpsaWNoZSBCZWlzcGllbGUgc2luZAotICAgICAgVU5JWDoKLQkgIDohbHMJCSAgLSAgICBBdWZsaXN0dW5nIGRlcyBha3R1ZWxsZW4gVmVyemVpY2huaXNzZXMKLQkgIDohcm0gREFURUlOQU1FICAtICAgIGVudGZlcm50IERhdGVpIERBVEVJTkFNRQotICAgICAgTVMtRE9TL1dpbmRvd3M6Ci0JICA6IWRpcgkJICAtICAgIEF1Zmxpc3R1bmcgZGVzIGFrdHVlbGxlbiBWZXJ6ZWljaG5pc3NlcwotCSAgOiFkZWwgREFURUlOQU1FIC0gICAgZW50ZmVybnQgRGF0ZWkgREFURUlOQU1FCisJKE1TLURPUykJICAoVW5peCkKKwkgOiFkaXIJCSAgIDohbHMJCSAgIC0gIHplaWd0IGVpbmUgVmVyemVpY2huaXNhdWZsaXN0dW5nLgorCSA6IWRlbCBEQVRFSU5BTUUgICA6IXJtIERBVEVJTkFNRSAgLSAgZW50ZmVybnQgRGF0ZWkgREFURUlOQU1FLgogCi0gIDIuICA6dyBEQVRFSU5BTUUgIHNjaHJlaWJ0IGRpZSBha3R1ZWxsZSBWaW0tRGF0ZWkgYWxzIERBVEVJTkFNRSBhdWYgZGllCi0gICAgICAgUGxhdHRlLgorICAyLiA6dyBEQVRFSU5BTUUgIHNwZWljaGVydCBkaWUgYWt0dWVsbGUgVmltLURhdGVpIHVudGVyIGRlbSBOYW1lbiAgREFURUlOQU1FLgogCi0gIDMuICA6IywjdyBEQVRFSU5BTUUgIHNwZWljaGVydCBkaWUgWmVpbGVuICMgYmlzICMgaW4gZGVyIERhdGVpIERBVEVJTkFNRS4KKyAgMy4gdiAgQmV3ZWd1bmcgIDp3IERBVEVJTkFNRSAgc2NocmVpYnQgZGllIFZpc3VlbGwgYXVzZ2V35GhsdGVuIFplaWxlbiBpbgorICAgICBkaWUgRGF0ZWkgREFURUlOQU1FLgogCi0gIDQuICA6ciBEQVRFSU5BTUUgIGzkZHQgZGllIERhdGVpIERBVEVJTkFNRSB2b24gZGVyIFBsYXR0ZSB1bmQgZvxndCBzaWUgaW4KLSAgICAgICBkaWUgYWt0dWVsbGUgRGF0ZWkgbmFjaCBkZXIgQ3Vyc29ycG9zaXRpb24gZWluLgorICA0LiA6ciBEQVRFSU5BTUUgIGzkZHQgZGllIERhdGVpIERBVEVJTkFNRSB1bmQgZvxndCBzaWUgdW50ZXJoYWxiIGRlcgorICAgICBDdXJzb3Jwb3NpdGlvbiBlaW4uCisKKyAgNS4gOnIgIWRpciAgbGllc3QgZGllIEF1c2dhYmUgZGVzIEtvbW1hbmRvcyBkaXIgdW5kIGb8Z3Qgc2llIHVudGVyaGFsYiBkZXIKKyAgICAgQ3Vyc29ycG9zaXRpb24gZWluLgogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkgICAgICAgTGVrdGlvbiA2LjE6IFpFSUxFTiDWRkZORU4gKE9QRU4pCiAKIAotICAgKiogVGlwcGUgIG8JLCB1bSBlaW5lIFplaWxlIHVudGVyIGRlbSBDdXJzb3IgenUg9mZmbmVuIHVuZCBEaWNoIGluIGRlbiAqKgotCQkJICoqIEVpbmb8Z2Vtb2R1cyB6dSBiZWdlYmVuLiAqKgorICAgKiogVGlwcGUgIG8JLCB1bSBlaW5lIFplaWxlIHVudGVyaGFsYiBkZXMgQ3Vyc29ycyB6dSD2ZmZuZW4gdW5kIERpY2ggaW4gKioKKyAgICAgICAgICAgICAgICAgICAgICAqKiBkZW4gRWluZvxnZW1vZHVzIHp1IGJlZ2ViZW4uICoqCiAKLSAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenUgZGVyIHVudGVuIHN0ZWhlbmRlbiBaZWlsZSwgZGllIG1pdCAtLS0+IG1hcmtpZXJ0IGlzdC4KKyAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenUgZGVyIGVyc3RlbiBtaXQgLS0tPiBtYXJraWVydGVuIFplaWxlIHVudGVuLgogCi0gIDIuIFRpcHBlIG8gKGtsZWluIGdlc2NocmllYmVuKSwgdW0gZWluZSBaZWlsZSBVTlRFUiBkZW0gQ3Vyc29yIGF1Znp1bWFjaGVuCisgIDIuIFRpcHBlIG8gKGtsZWluIGdlc2NocmllYmVuKSwgdW0gZWluZSBaZWlsZSBVTlRFUkhBTEIgZGVzIEN1cnNvcyB6dSD2ZmZuZW4KICAgICAgdW5kIERpY2ggaW4gZGVuIEVpbmb8Z2Vtb2R1cyB6dSBiZWdlYmVuLgogCi0gIDMuIE51biB0aXBwZSBkZW4gVGV4dCBkZXIgbWl0IC0tLT4gbWFya2llcnRlIFplaWxlIGFiIHVuZCBkcvxja2UgPEVTQz4gLCB1bQotICAgICBkZW4gRWluZvxnZW1vZHVzIHp1IHZlcmxhc3Nlbi4KKyAgMy4gTnVuIHRpcHBlIGV0d2FzIFRleHQgdW5kIGRy/GNrZSA8RVNDPiAsIHVtIGRlbiBFaW5m/GdlbW9kdXMgenUgdmVybGFzc2VuLgogCi0tLS0+IE1pdCAgbyAgd2lyZCBkZXIgQ3Vyc29yIGF1ZiBkZXIgZ2X2ZmZuZXRlbiBaZWlsZSBpbSBFaW5nYWJlbW9kdXMgcGxhdHppZXJ0LgorLS0tPiBNaXQgIG8gIHdpcmQgZGVyIEN1cnNvciBhdWYgZGVyIG9mZmVuZW4gWmVpbGUgaW0gRWluZvxnZW1vZHVzIHBsYXR6aWVydC4KIAotICA0LiBVbSBlaW5lIFplaWxlINxCRVIgZGVtIEN1cnNvciBhdWZ6dW1hY2hlbiwgZ2liIGVpbmZhY2ggZWluIGdyb99lcyAgTwotICAgICBhbnN0ZWxsZSBlaW5lcyBrbGVpbmVuICBvICBlaW4uIFZlcnN1Y2hlIGRpZXMgYXVmIGRlciB1bnRlbiBzdGVoZW5kZW4KLSAgICAgWmVpbGUuCi3WZmZuZSBlaW5lIFplaWxlIPxiZXIgZGllc2VyIG1pdCBTaGlmdC1PICwgd2VubiBkZXIgQ3Vyc29yIGF1ZiBkaWVzZXIgWmVpbGUgaXN0LgorICA0LiBVbSBlaW5lIFplaWxlINxCRVJIQUxCIGRlcyBDdXJzb3MgYXVmenVtYWNoZW4sIGdpYiBlaW5mYWNoIGVpbiBncm/fZXMgIE8KKyAgICAgc3RhdHQgZWluZW0ga2xlaW5lbiAgbyAgZWluLiBWZXJzdWNoZSBkaWVzIGF1ZiBkZXIgdW50ZW4gc3RlaGVuZGVuIFplaWxlLgorCistLS0+INZmZm5lIGVpbmUgWmVpbGUg/GJlciBkaWVzZXIgbWl0IE8gLCB3ZW5uIGRlciBDdXJzb3IgYXVmIGRpZXNlciBaZWlsZSBpc3QuCisKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICAgIExla3Rpb24gNi4yOiBURVhUIEFORtxHRU4gKEFQUEVORCkKIAogCi0JICAgICAgKiogVGlwcGUgYSAgLCB1bSBUZXh0IE5BQ0ggZGVtIEN1cnNvciBlaW56dWb8Z2VuLiAqKgorCSAgICAgKiogVGlwcGUgIGEgICwgdW0gVGV4dCBOQUNIIGRlbSBDdXJzb3IgZWluenVm/Gdlbi4gKioKIAotICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dW0gRW5kZSBkZXIgdW50ZW4gc3RlaGVuZGVuIFplaWxlLCBkaWUgbWl0IC0tLT4KLSAgICAgbWFya2llcnQgaXN0LCBpbmRlbSBEdSBpbSBOb3JtYWwtTW9kdXMgICQgICBlaW5naWJzdC4KKyAgMS4gQmV3ZWdlIGRlbiBDdXJzb3IgenVtIEFuZmFuZyBkZXIgZXJzdGVuINxidW5nc3plaWxlIG1pdCAtLS0+IHVudGVuLgogCi0gIDIuIFRpcHBlIGVpbiAgYSAgKGtsZWluIGdlc2NocmllYmVuKSwgdW0gVGV4dCBOQUNIIGRlbSBaZWljaGVuIHVudGVyIGRlbQotICAgICBDdXJzb3IgZWluenVnZWJlbi4gIChFaW4gZ3Jv32VzIEEgZvxndCBuYWNoIGRlbSBFbmRlIGRlciBaZWlsZSBhbi4pCisgIDIuIERy/GNrZSAgZSAgLCBiaXMgZGVyIEN1cnNvciBhbSBFbmRlIHZvbiAgWmVpICBzdGVodC4KIAotQmVtZXJrdW5nOiBEaWVzIG1hY2h0IGVzIPxiZXJmbPxzc2lnLCBlcnN0IGkgenUgdGlwcGVuLCBkYW5uIGRhcyBsZXR6dGUKLQkgICBaZWljaGVuLCBkZW4gYW56dWjkbmdlbmRlbiBUZXh0LCA8RVNDPiwgQ3Vyc29yLVJlY2h0cywKLQkgICB1bmQgc2NobGll32xpY2gsIHgsIG51ciB1bSBUZXh0IGFuIGVpbmUgWmVpbGUgYW56dWjkbmdlbiEKKyAgMy4gVGlwcGUgZWluIGtsZWluZXMgIGEgICwgdW0gVGV4dCBOQUNIIGRlbSBDdXJzb3IgYW56dWb8Z2VuLgogCi0gIDMuIE51biB2ZXJ2b2xsc3TkbmRpZ2UgZGllIGVyc3RlIFplaWxlLiAgQmVhY2h0ZSBhdd9lcmRlbSAsIGRhc3MgQW5m/GdlbgotICAgICAoQXBwZW5kKSBnZW5hdSBkYXMgZ2xlaWNoZSBpc3QsIHdpZSBkZXIgRWluZvxnZS0gKEluc2VydC0pIE1vZHVzLAotICAgICBhYmdlc2VoZW4gdm9uIGRlciBTdGVsbGUsIGFuIGRlbSBkZXIgVGV4dCBlaW5nZWb8Z3Qgd2lyZC4KKyAgNC4gVmVydm9sbHN05G5kaWdlIGRhcyBXb3J0IHNvIHdpZSBpbiBkZXIgWmVpbGUgZGFydW50ZXIuICBEcvxja2UgPEVTQz4gLAorICAgICB1bSBkZW4gRWluZvxnZW1vZHVzIHp1IHZlcmxhc3Nlbi4KIAotLS0tPiBEaWVzZSBaZWlsZSBiaWV0ZXQgR2VsZWdlbmhlaXQKLS0tLT4gRGllc2UgWmVpbGUgYmlldGV0IEdlbGVnZW5oZWl0LCBUZXh0IGFuIGlociBFbmRlIGFuenVm/Gdlbi4KKyAgNS4gQmV3ZWdlIERpY2ggbWl0ICBlICB6dW0gbuRjaHN0ZW4gdW52b2xsc3TkbmRpZ2VuIFdvcnQgdW5kIHdpZWRlcmhvbGUKKyAgICAgU2Nocml0dGUgMyB1bmQgNC4KIAorLS0tPiBEaWVzZSBaZWkgYmlldGV0IEdlbGVnZW4gLCBUZXh0IGluIGVpbmVyIFplaWxlIGFuenVm/C4KKy0tLT4gRGllc2UgWmVpbGUgYmlldGV0IEdlbGVnZW5oZWl0LCBUZXh0IGluIGVpbmVyIFplaWxlIGFuenVm/Gdlbi4KIAorQmVtZXJrdW5nOiAgYSwgaSB1bmQgQSBnZWhlbiBhbGxlIGdsZWljaGVybWHfZW4gaW4gZGVuIEVpbmb8Z2Vtb2R1czsgZGVyCisgICAgICAgICAgICBlaW56aWdlIFVudGVyc2NoaWVkIGlzdCwgd28gZGllIFplaWNoZW4gZWluZ2Vm/Gd0IHdlcmRlbi4KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCSAgICBMZWt0aW9uIDYuMzogRUlORSBBTkRFUkUgVkVSU0lPTiBERVMgRVJTRVRaRU5TIChSRVBMQUNFKQorCSAgICAgIExla3Rpb24gNi4zOiBFSU5FIEFOREVSRSBBUlQgREVTIEVSU0VUWkVOUyAoUkVQTEFDRSkKIAogCiAgICAgICAgKiogVGlwcGUgZWluIGdyb99lcyAgUiAgLCB1bSBtZWhyIGFscyBlaW4gWmVpY2hlbiB6dSBlcnNldHplbi4gKioKIAogICAxLiBCZXdlZ2UgZGVuIEN1cnNvciB6dXIgZXJzdGVuIHVudGVuIHN0ZWhlbmRlbiwgbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZS4KKyAgICAgQmV3ZWdlIGRlbiBDdXJzb3IgenVtIEFuZmFuZyBkZXMgZXJzdGVuICB4eHggLgogCi0gIDIuIFBsYXR6aWVyZSBkZW4gQ3Vyc29yIGF1ZiBkZW4gQW5mYW5nIGRlcyBlcnN0ZW4gV29ydGVzLCB3ZWxjaGVzIHNpY2ggdm9uCi0gICAgIGRlciB6d2VpdGVuIG1pdCAtLS0+IG1hcmtpZXJ0ZW4gWmVpbGUgdW50ZXJzY2hlaWRldCAoZGFzIFdvcnQgJ2JlbnV0emUnKS4KKyAgMi4gTnVuIGRy/GNrZSAgUiAgdW5kIHRpcHBlIGRpZSBOdW1tZXIsIGRpZSBkYXJ1bnRlciBpbiBkZXIgendlaXRlbiBaZWlsZQorICAgICBzdGVodCwgc28gZGFzIGRpZXNlIGRhcyB4eHggZXJzZXR6dC4KIAotICAzLiBOdW4gZ2liIGVpbiBSICBlaW4sIHVuZCBlcnNldHplIGRlbiBSZXN0IGRlcyBUZXh0ZXMgYXVmIGRlciBlcnN0ZW4KLSAgICAgWmVpbGUsIHVtIGRpZXNlIGdsZWljaCBkZXIgendlaXRlbiB6dSBtYWNoZW4sIGluZGVtIER1IGRlbiBhbHRlbiBUZXh0Ci0gICAgIPxiZXJzY2hyZWlic3QuCisgIDMuIERy/GNrZSA8RVNDPiAsIHVtIGRlbiBFcnNldHp1bmdzbW9kdXMgenUgdmVybGFzc2VuLiBCZW1lcmtlLCBkYd8gZGVyIFJlc3QKKyAgICAgZGVyIFplaWxlIHVudmVy5G5kZXJ0IGJsZWlidC4KIAotLS0tPiBVbSBkaWUgZXJzdGUgWmVpbGUgZ2xlaWNoIGRlciB6d2VpdGVuIHp1IG1hY2hlbiwgYmVudXR6ZSBkaWUgVGFzdGF0dXIuCi0tLS0+IFVtIGRpZSBlcnN0ZSBaZWlsZSBnbGVpY2ggZGVyIHp3ZWl0ZW4genUgbWFjaGVuLCB0aXBwZSBSIHVuZCBuZXVlbiBUZXh0LgorICA0LiBXaWVkZXJob2xlIGRpZSBTY2hyaXR0ZSwgdW0gZGFzIHZlcmJsaWViZW5lIHh4eCB6dSBlcnNldHplbi4KIAotICA0LiBCZWFjaHRlLCBkYXNzLCB3ZW5uIER1IHp1bSBWZXJsYXNzZW4gPEVTQz4gZHL8Y2tzdCwgc+RtdGxpY2hlcgotICAgICB1bmdl5G5kZXJ0ZSBUZXh0IGJlc3RlaGVuIGJsZWlidC4KKy0tLT4gRGFzIEFkZGllcmVuIHZvbiAxMjMgenUgeHh4IGVyZ2lidCB4eHguCistLS0+IERhcyBBZGRpZXJlbiB2b24gMTIzIHp1IDQ1NiBlcmdpYnQgNTc5LgogCitCZW1lcmt1bmc6IERlciBFcnNldHp1bmdzbW9kdXMgaXN0IHdpZSBkZXIgRWluZvxnZW1vZHVzLCBhYmVyIGplZGVzIGVpbmdldGlwcHRlCisgICAgICAgICAgIFplaWNoZW4gbPZzY2h0IGVpbiB2b3JoYW5kZW5lcyBaZWljaGVuLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCSAgTGVrdGlvbiA2LjQ6IE9QVElPTkVOIFNFVFpFTgorCQkgICAgTGVrdGlvbiA2LjQ6IFRFWFQgS09QSUVSRU4gVU5EIEVJTkbcR0VOCiAKKyAqKiBCZW51dHplIGRlbiAgeSAgT3BlcmF0b3IsIHVtIFRleHQgenUga29waWVyZW47ICBwICAsIHVtIGlobiBlaW56dWb8Z2VuICoqCisKKyAgMS4gR2VoZSB6dSBkZXIgbWl0IC0tLT4gbWFya2llcnRlbiBaZWlsZSB1bnRlbiwgc2V0emUgZGVuIEN1cnNvciBoaW50ZXIgImEpIi4KKworICAyLiBTdGFydGUgZGVuIFZpc3VlbGxlbiBNb2R1cyBtaXQgIHYgICwgYmV3ZWdlIGRlbiBDdXJzb3IgZ2VuYXUgdm9yICJlcnN0ZSIuCisKKyAgMy4gVGlwcGUgIHkgICwgdW0gZGVuIGhlcnZvcmdlaG9iZW4gVGV4dCB6dSBrb3BpZXJlbi4KKworICA0LiBCZXdlZ2UgZGVuIEN1cnNvciB6dW0gRW5kZSBkZXIgbuRjaHN0ZW4gWmVpbGU6ICBqJAorCisgIDUuIFRpcHBlICBwICwgdW0gZGVuIFRleHQgZWluenVm/GdlbiB1bmQgYW5zY2hsaWXfZW5kOiAgYSB6d2VpdGUgPEVTQz4gLgorCisgIDYuIEJlbnV0emUgZGVuIFZpc3VlbGxlbiBNb2R1cywgdW0gIiBFaW50cmFnLiIgYXVzenV35GhsZW4sIGtvcGllcmUgbWl0dGVscworICAgICB5ICwgYmV3ZWdlIERpY2ggenVtIEVuZGUgZGVyIG7kY2hzdGVuIFplaWxlIG1pdCAgaiQgIHVuZCBm/GdlIGRlbiBUZXh0CisgICAgIGRvcnQgbWl0ICBwICBhbi4KKworLS0tPiAgYSkgZGllcyBpc3QgZGVyIGVyc3RlIEVpbnRyYWcuCisgICAgICBiKQorCitCZW1lcmt1bmc6IER1IGthbm5zdCAgeSAgYXVjaCBhbHMgT3BlcmF0b3IgdmVyd2VuZGVuOyAgeXcgIGtvcGllcnQgZWluIFdvcnQuCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgTGVrdGlvbiA2LjU6IE9QVElPTkVOIFNFVFpFTgogCiAgICAgICAqKiBTZXR6ZSBlaW5lIE9wdGlvbiBzbywgZGFzcyBlaW5lIFN1Y2hlIG9kZXIgZWluZSBFcnNldHp1bmcgR3Jv3y0gKioKIAkJICAgICAgKiogdW5kIEtsZWluc2NocmVpYnVuZyBpZ25vcmllcnQgKioKIAotCi0gIDEuIFN1Y2hlIG5hY2ggJ2lnbm8nLCBpbmRlbSBEdSAgICAvaWdubyAgIGVpbmdpYnN0LgorICAxLiBTdWNoZSBuYWNoICdpZ25vcmllcmUnLCBpbmRlbSBEdSAgICAvaWdub3JpZXJlICAgZWluZ2lic3QuCiAgICAgIFdpZWRlcmhvbGUgZGllIFN1Y2hlIGVpbmlnZSBNYWxlLCBpbmRlbSBEdSBkaWUgbiAtIFRhc3RlIGRy/GNrc3QuCiAKLSAgMi4gU2V0emUgZGllICdpYycgKGlnbm9yZWNhc2U7IElnbm9yaWVyZSBHcm/fLS9LbGVpbnNjaHJlaWJ1bmcpIC0gT3B0aW9uLAotICAgICBpbmRlbSBEdSAgIDpzZXQgaWMgICBlaW5naWJzdC4KKyAgMi4gU2V0emUgZGllICdpYycgKElnbm9yZSBjYXNlKSAtIE9wdGlvbiwgaW5kZW0gRHUgICA6c2V0IGljICAgZWluZ2lic3QuCiAKLSAgMy4gTnVuIHN1Y2hlIHdpZWRlciBuYWNoICdpZ25vJywgaW5kZW0gRHUgbiB0aXBwc3QuCi0gICAgIFdpZWRlcmhvbGUgZGllc2VzIG5vY2ggZWluaWdlIE1hbGUsIGluZGVtIER1IGRpZSBuIFRhc3RlIGRy/GNrc3QuCisgIDMuIE51biBzdWNoZSB3aWVkZXIgbmFjaCAnaWdub3JpZXJlJywgaW5kZW0gRHUgIG4gIHRpcHBzdC4KKyAgICAgQmVtZXJrZSwgZGHfIGpldHp0IElnbm9yaWVyZSB1bmQgYXVjaCBJR05PUklFUkUgZ2VmdW5kZW4gd2lyZC4KIAotICA0LiBTZXR6ZSBkaWUgJ2hsc2VhcmNoJyAoU3VjaGUgaGVydm9yaGViZW4pIHVuZCAnaW5jc2VhcmNoJyAoSW5rcmVtZW50ZWxsZQotICAgICBTdWNoZSkgLSBPcHRpb25lbjoKLSAgICAgOnNldCBobHMgaXMKKyAgNC4gU2V0emUgZGllICdobHNlYXJjaCcgdW5kICdpbmNzZWFyY2gnIC0gT3B0aW9uZW46ICAgICA6c2V0IGhscyBpcwogCi0gIDUuIEpldHp0IGdpYiBkZW4gU3VjaGVuLUJlZmVobCBub2NoIGVpbm1hbCBlaW4gdW5kIGJlb2JhY2h0ZSwgd2FzIHBhc3NpZXJ0OgotICAgICAvaWdubworICA1LiBXaWVkZXJob2xlIGRpZSBTdWNoZSB1bmQgYmVvYmFjaHRlLCB3YXMgcGFzc2llcnQ6IC9pZ25vcmllcmUgPEVOVEVSPgogCisgIDYuIFVtIGRhcyBJZ25vcmllcmVuIHZvbiBHcm/fL0tsZWluc2NocmVpYnVuZyBhYnp1c2NoYWx0ZW4sIHRpcHBlOiAgOnNldCBub2ljCiAKK0JlbWVya3VuZzogVW0gZGllIEhlcnZvcmhlYnVuZyBkZXIgVHJlZmZlciB6dSBlbmZlcm5lbiwgZ2liIGVpbjogIDpub2hsc2VhcmNoCitCZW1lcmt1bmc6IFVtIGRpZSBTY2hyZWlid2Vpc2UgZvxyIGVpbmUgZWluemlnZSBTdWNoZSB6dSBpZ25vcmllcmVuLCBiZW51dHplCisgICAgICAgICAgIFxjIGltIFN1Y2hhdXNkcnVjazogIC9pZ25vcmllcmVcYyAgPEVOVEVSPgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCQkgWlVTQU1NRU5GQVNTVU5HIFZPTiBMZWt0aW9uIDYKKwkJCSBaVVNBTU1FTkZBU1NVTkcgVk9OIExFS1RJT04gNgogCisgMS4gVGlwcGUgIG8gICwgdW0gZWluZSBaZWlsZSBVTlRFUiBkZW0gQ3Vyc29yIHp1IPZmZm5lbiB1bmQgZGVuIEVpbmb8Z2Vtb2R1cworICAgICAgICAgICAgICAgIHp1IHN0YXJ0ZW4uCisgICAgVGlwcGUgIE8gICwgdW0gZWluZSBaZWlsZSDcQkVSIGRlbSBDdXJzb3IgenUg9mZmbmVuLgogCi0gIDEuIERpZSBFaW5nYWJlIHZvbiAgbyAgbWFjaHQgZWluZSBaZWlsZSBVTlRFUiBkZW0gQ3Vyc29yIGF1ZiB1bmQKLSAgICAgcGxhdHppZXJ0IGRlbiBDdXJzb3IgYXVmIGRlciBnZfZmZm5ldGVuIFplaWxlIGltIEVpbmb8Z2Vtb2R1cy4KLSAgICAgRGllIEVpbmdhYmUgZWluZXMgZ3Jv32VuICBPICD2ZmZuZXQgZWluZSBaZWlsZSDcQkVSIGRlcmplbmlnZW4sCi0gICAgIGF1ZiBkZXIgc2ljaCBkZXIgQ3Vyc29yIGJlZmluZGV0LgorIDIuIFRpcHBlICBhICAsIHVtIFRleHQgTkFDSCBkZW0gQ3Vyc29yIGFuenVm/Gdlbi4KKyAgICBUaXBwZSAgQSAgLCB1bSBUZXh0IG5hY2ggZGVtIFplaWxlbmVuZGUgYW56dWb8Z2VuLgogCi0gIDIuIEdpYiBlaW4gIGEgIGVpbiwgdW0gVGV4dCBOQUNIIGRlbSBaZWljaGVuLCBhdWYgZGVtIHNpY2ggZGVyIEN1cnNvcgotICAgICBiZWZpbmRldCwgZWluenVm/Gdlbi4KLSAgICAgRGllIEVpbmdhYmUgZWluZXMgZ3Jv32VuICBBICBlcmxhdWJ0IGRhcyBBbmb8Z2VuIHZvbiBUZXh0IG5hY2ggZGVtCi0gICAgIEVuZGUgZGVyIFplaWxlLgorIDMuIERhcyBLb21tYW5kbyAgZSAgYnJpbmd0IERpY2ggenVtIEVuZGUgZWluZXMgV29ydGVzLgogCi0gIDMuIERpZSBFaW5nYWJlIGVpbmVzIGdyb99lbiAgUiAgd2VjaHNlbHQgaW4gZGVuIEVyc2V0enVuZ3MtKFJlcGxhY2UpLU1vZHVzLAotICAgICBiaXMgenVtIFZlcmxhc3NlbiA8RVNDPiBlaW5nZWdlYmVuIHdpcmQuCisgNC4gRGVyIE9wZXJhdG9yICB5ICAoeWFuaykga29waWVydCBUZXh0LCAgcCAgKHB1dCkgZvxndCBpaG4gZWluLgogCi0gIDQuIERpZSBFaW5nYWJlIHZvbiAiOnNldCB4eHgiIHNldHp0IGRpZSBPcHRpb24gInh4eCIKKyA1LiBFaW4gZ3Jv32VzICBSICBnZWh0IGluIGRlbiBFcnNldHp1bmdzbW9kdXMgYmlzIHp1bSBEcvxja2VuIHZvbiAgPEVTQz4gLgogCisgNi4gRGllIEVpbmdhYmUgdm9uICI6c2V0IHh4eCIgc2V0enQgZGllIE9wdGlvbiAieHh4Ii4gRWluaWdlIE9wdGlvbmVuIHNpbmQ6CisJJ2ljJyAnaWdub3JlY2FzZScgICAgSWdub3JpZXJlIEdyb98vS2xlaW5zY2hyZWlidW5nIGJlaSBlaW5lciBTdWNoZQorCSdpcycgJ2luY3NlYXJjaCcgICAgIFplaWdlIFRlaWz8YmVyZWluc3RpbW11bmdlbiBm/HIgZWluZW4gU3VjaGF1c2RydWNrCisJJ2hscycgJ2hsc2VhcmNoJyAgICAgSGViZSBhbGxlIHBhc3NlbmRlbiBBdXNkcvxja2UgaGVydm9yCisgICAgRGVyIE9wdGlvbnNuYW1lIGthbm4gaW4gZGVyIEt1cnotIG9kZXIgZGVyIExhbmdmb3JtIGFuZ2VnZWJlbiB3ZXJkZW4uCiAKKyA3LiBTdGVsbGUgZWluZXIgT3B0aW9uICJubyIgdm9yYW4sIHVtIHNpZSBhYnp1c2NoYWx0ZW46ICAgOnNldCBub2ljCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCSAgTGVrdGlvbiA3IDogRElFIE9OTElORS1ISUxGRQorCQkJTGVrdGlvbiA3LjEgOiBBVUZSVUZFTiBWT04gSElMRkUKKwogCiAJCSAgICAgKiogTnV0emUgZGFzIGVpbmdlYmF1dGUgSGlsZmVzeXN0ZW0gKioKIApAQCAtNzcyLDgyICs4NjEsMTIwIEBACiAJLSBEcvxja2UgZGllIDxGMT4gVGFzdGUgKGZhbGxzIER1IGVpbmUgYmVzaXR6dCkKIAktIFRpcHBlICAgOmhlbHAgPEVOVEVSPgogCisgIExpZXMgZGVuIFRleHQgaW0gSGlsZmVmZW5zdGVyLCB1bSB6dSB2ZXJzdGVoZW4gd2llIGRpZSBIaWxmZSBmdW5rdGlvbmllcnQuCisgIFRpcHBlICBDVFJMLVcgQ1RSTC1XICAgLCB1bSB2b24gZWluZW0gRmVuc3RlciB6dW0gYW5kZXJlbiB6dSBzcHJpbmdlbi4KICAgVGlwcGUgICA6cSA8RU5URVI+ICAsIHVtIGRhcyBIaWxmZWZlbnN0ZXIgenUgc2NobGll32VuLgogCi0gIER1IGthbm5zdCBIaWxmZSD8YmVyIHByYWt0aXNjaCBqZWRlcyBUaGVtYSBmaW5kZW4sIGluZGVtIER1IGRlbSAiOmhlbHAiCisgIER1IGthbm5zdCBIaWxmZSB6dSBwcmFrdGlzY2ggamVkZW0gVGhlbWEgZmluZGVuLCBpbmRlbSBEdSBkZW0gIjpoZWxwIi0KICAgS29tbWFuZG8gZWluIEFyZ3VtZW50IGdpYnN0LiAgUHJvYmllcmUgZm9sZ2VuZGVzICg8RU5URVI+IG5pY2h0IHZlcmdlc3Nlbik6CiAKLSAgOmhlbHAgdwotICA6aGVscCBjXzxUCi0gIDpoZWxwIGluc2VydC1pbmRleAotICA6aGVscCB1c2VyLW1hbnVhbAotCi0KKwk6aGVscCB3CisJOmhlbHAgY19DVFJMLUQKKwk6aGVscCBpbnNlcnQtaW5kZXgKKwk6aGVscCB1c2VyLW1hbnVhbAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICAgIExla3Rpb24gODogRVJTVEVMTEUgRUlOIFNUQVJULVNLUklQVAorCQkgICAgIExla3Rpb24gNy4yOiBFUlNURUxMRSBFSU4gU1RBUlQtU0tSSVBUCiAKLQkJICoqICBBa3RpdmllcmUgZGllIEZ1bmt0aW9uYWxpdOR0ZW4gdm9uIFZpbSAqKgorCisJICAgKiogIEFrdGl2aWVyZSBkaWUgZWluZ2ViYXV0ZW4gRnVua3Rpb25hbGl05HRlbiB2b24gVmltICoqCiAKICAgVmltIGJlc2l0enQgdmllbGUgRnVua3Rpb25hbGl05HRlbiwgZGllIPxiZXIgVmkgaGluYXVzZ2VoZW4sIGFiZXIgZGllIG1laXN0ZW4KLSAgdm9uIGlobmVuIHNpbmQgc3RhbmRhcmRt5N9pZyBkZWFrdGl2aWVydC4KLSAgVW0gZGllc2UgenUgYWt0aXZpZXJlbiwgbXVzc3QgRHUgZWluZSAidmltcmMiIC0gRGF0ZWkgZXJzdGVsbGVuLgorICB2b24gaWhuZW4gc2luZCBzdGFuZGFyZG3k32lnIGRlYWt0aXZpZXJ0LiBVbSBtZWhyIEZ1bmt0aW9uYWxpdOR0ZW4genUgbnV0emVuLAorICBtdXNzdCBEdSBlaW5lICJ2aW1yYyIgLSBEYXRlaSBlcnN0ZWxsZW4uCiAKLTEuIFN0YXJ0ZSBkYXMgRWRpdGllcmVuIGRlciAidmltcmMiLURhdGVpLCBkaWVzIGlzdCB2b24gRGVpbmVtIFN5c3RlbSBhYmjkbmdpZzoKLQk6ZWRpdCB+Ly52aW1yYwkJCWb8ciBVbml4Ci0JOmVkaXQgJFZJTS9fdmltcmMJCWb8ciBNUy1XaW5kb3dzCisgIDEuIFN0YXJ0ZSBkYXMgRWRpdGllcmVuIGRlciAidmltcmMiLURhdGVpLCBhYmjkbmdpZyB2b24gRGVpbmVtIFN5c3RlbToKKwk6ZSB+Ly52aW1yYwkJZvxyIFVuaXgKKwk6ZSAkVklNL192aW1yYwkJZvxyIE1TLVdpbmRvd3MKIAotMi4gTnVuIGxpZXMgZGllIEJlaXNwaWVsIC0gInZpbXJjIiBlaW46CisgIDIuIE51biBsaWVzIGRlbiBJbmhhbHQgZGVyIEJlaXNwaWVsLSJ2aW1yYyItRGF0ZWkgZWluOgorCTpyICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCiAKLQk6cmVhZCAkVklNUlVOVElNRS92aW1yY19leGFtcGxlLnZpbQorICAzLiBTcGVpY2hlcmUgZGllIERhdGVpIG1pdDoKKwk6dwogCi0zLiBTcGVpY2hlcmUgZGllIERhdGVpIG1pdDoKKyAgQmVpbSBu5GNoc3RlbiBTdGFydCB2b24gVmltIHdpcmQgZGllIFN5bnRheGhlcnZvcmhlYnVuZyBha3RpdmllcnQgc2Vpbi4KKyAgRHUga2FubnN0IGFsbCBEZWluZSBiZXZvcnp1Z3RlbiBPcHRpb25lbiB6dSBkaWVzZXIgInZpbXJjIi1EYXRlaSB6dWb8Z2VuLgorICBG/HIgbWVociBJbmZvcm1hdGlvbmVuIHRpcHBlICA6aGVscCB2aW1yYy1pbnRybworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgTGVrdGlvbiA3LjM6IFZFUlZPTExTVMRORElHRU4KIAotCTp3cml0ZQogCi1EYXMgbuRjaHN0ZSBNYWwsIHdlbm4gRHUgVmltIHN0YXJ0ZXN0LCB3aXJkIGRpZSBTeW50YXgtSGVydm9yaGVidW5nCi1ha3RpdmllcnQgc2Vpbi4KLUR1IGthbm5zdCBhbGwgRGVpbmUgTGllYmxpbmdzb3B0aW9uZW4genUgZGllc2VyICJ2aW1yYyIgLSBEYXRlaSB6dWb8Z2VuLgorCSAgICoqIEtvbW1hbmRvemVpbGVudmVydm9sbHN05G5kaWd1bmcgbWl0IENUUkwtRCBhbmQgPFRBQj4gKioKKworICAxLiBTdGVsbGUgc2ljaGVyLCBkYd8gVmltIG5pY2h0IGltIHZpLUtvbXBhdGliaWxpdOR0c21vZHVzIGlzdDogIDpzZXQgbm9jcAorCisgIDIuIFNpZWhlIG5hY2gsIHdlbGNoZSBEYXRlaWVuIGltIFZlcnplaWNobmlzIGV4aXN0aWVyZW46ICA6IWxzICBvZGVyICA6ZGlyCisKKyAgMy4gVGlwcGUgZGVuIEJlZ2lubiBlaW5lcyBLb21hbmRvczogIDplCisKKyAgNC4gRHL8Y2tlICBDVFJMLUQgIHVuZCBWaW0gemVpZ3QgZWluZSBMaXN0ZSBtaXQgImUiIGJlZ2lubmVuZGVyIEtvbW1hbmRvcy4KKworICA1LiBEcvxja2UgIDxUQUI+ICB1bmQgVmltIHZlcnZvbGxzdORuZGlndCBkZW4gS29tbWFuZG9uYW1lbiB6dSAiOmVkaXQiLgorCisgIDYuIE51biBm/GdlIGVpbiBMZWVyemVpY2hlbiB1bmQgZGVuIEJlZ2lubiBlaW5lciBleGlzdGllcmVuZGVuIERhdGVpIGFuOgorICAgICA6ZWRpdCBEQVQKKworICA3LiBEcvxja2UgPFRBQj4uIFZpbSB2ZXJ2b2xsc3TkbmRpZ3QgZGVuIE5hbWVuIChmYWxscyBlciBlaW5kZXV0aWcgaXN0KS4KKworQmVtZXJrdW5nOiBWZXJ2b2xsc3TkbmRpZ3VuZyBmdW5rdGlvbmllcnQgZvxyIHZpZWxlIEtvbW1hbmRvcy4gVmVyc3VjaGUKKyAgICAgZWluZmFjaCBDVFJMLUQgdW5kIDxUQUI+LiAgRGllcyBpc3QgaW5zYmVzb25kZXJlIG78dHpsaWNoIGb8ciAgOmhlbHAgLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgWlVTQU1NRU5GQVNTVU5HIFZPTiBMRUtUSU9OIDcKKworCisgIDEuIFRpcHBlICA6aGVscCAgb2RlciBkcvxja2UgPEYxPiBvZGVyIDxIZWxwPiwgdW0gZWluIEhpbGZlZmVuc3RlciB6dSD2ZmZuZW4uCisKKyAgMi4gVGlwcGUgIDpoZWxwIEtvbW1hbmRvICAsIHVtIEhpbGZlIPxiZXIgIEtvbW1hbmRvICB6dSBlcmhhbHRlbi4KKworICAzLiBUaXBwZSAgQ1RSTC1XIENUUkwtVyAgLCB1bSB6dW0gYW5kZXJlbiBGZW5zdGVyIHp1IHNwcmluZ2VuLgorCisgIDQuIFRpcHBlICA6cSAgLCB1bSBkYXMgSGlsZmVmZW5zdGVyIHp1IHNjaGxpZd9lbi4KKworICA1LiBFcnN0ZWxsZSBlaW4gdmltcmMgLSBTdGFydHNrcmlwdCB6dXIgU2ljaGVydW5nIGJldm9yenVndGVyIEVpbnN0ZWxsdW5nZW4uCisKKyAgNi4gRHL8Y2tlIENUUkwtRCBuYWNoIGRlbSBUaXBwZW4gZWluZXMgS29tbWFuZG9zICA6ICAsIHVtIG32Z2xpY2hlCisgICAgIFZlcnZvbGxzdORuZGlndW5nZW4genUgc2VoZW4uCisgICAgIERy/GNrZSA8VEFCPiBm/HIgZWluZSBlaW56aWdlIFZlcnZvbGxzdORuZGlndW5nLgorCisKKworCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAKICAgRGFtaXQgaXN0IGRlciBWaW0gVHV0b3IgYmVlbmRldC4gIERpZSBJbnRlbnRpb24gd2FyLCBlaW5lbiBrdXJ6ZW4gdW5kCiAgIGL8bmRpZ2VuINxiZXJibGljayD8YmVyIGRlbiBWaW0gRWRpdG9yIHp1IGxpZWZlcm47IGdlcmFkZSBnZW51ZywgdW0gcmVsYXRpdgotICBsZWljaHQgbWl0IGlobSB1bWdlaGVuIHp1IGv2bm5lbi4KLSAgRGVyIFZpbSBUdXRvciBoYXQgbmljaHQgZGVuIGdlcmluZ3N0ZW4gQW5zcHJ1Y2ggYXVmIFZvbGxzdORuZGlna2VpdDsKLSAgVmltIGhhdCBub2NoIHdlaXRhdXMgbWVociBLb21tYW5kb3MuCi0gIFdhZ2UgRGljaCBhbHMgbuRjaHN0ZXMgYW4gZGFzIFVzZXIgTWFudWFsOiAiOmhlbHAgdXNlci1tYW51YWwiLgorICBsZWljaHQgbWl0IGlobSB1bWdlaGVuIHp1IGv2bm5lbi4gIERlciBWaW0gVHV0b3IgaGF0IG5pY2h0IGRlbiBnZXJpbmdzdGVuCisgIEFuc3BydWNoIGF1ZiBWb2xsc3TkbmRpZ2tlaXQ7IFZpbSBoYXQgbm9jaCB3ZWl0YXVzIG1laHIgS29tbWFuZG9zLiBMaWVzIGFscworICBu5GNoc3RlcyBkYXMgVXNlciBNYW51YWw6ICI6aGVscCB1c2VyLW1hbnVhbCIuCiAKLSAgRvxyIHdlaXRlcmVzIExlc2VuIHVuZCBMZXJuZW4ga2FubiBmb2xnZW5kZXMgQnVjaCBlbXBmb2hsZW4gd2VyZGVuOgorICBG/HIgd2VpdGVyZXMgTGVzZW4gdW5kIExlcm5lbiBpc3QgZm9sZ2VuZGVzIEJ1Y2ggZW1wZm9obGVuIDoKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIHZvbiBTdGV2ZSBPdWFsbGluZQogCVZlcmxhZzogTmV3IFJpZGVycwotICBEYXMgZXJzdGUgQnVjaCwgZGFzIGR1cmNoZ+RuZ2lnIFZpbSBnZXdpZG1ldCBpc3QuICBCZXNvbmRlcnMgbvx0emxpY2gKLSAgZvxyIEFuZuRuZ2VyLgotICBWaWVsZSBCZWlzcGllbGUgdW5kIEJpbGRlciBzaW5kIGVudGhhbHRlbi4KLSAgU2llaGUgaHR0cDovL3d3dy5pY2NmLm5sL2NsaWNrNS5odG1sCi0KLSAgQWxzIGFrdHVlbGxlIFJlZmVyZW56IGbvv71yIFZlcnNpb24gNi4yIHVuZCBrbmFwcGUgRWluZu+/vWhydW5nIGRpZW50IGRhcwotICBmb2xnZW5kZSBCdWNoOgotICAgICAgICB2aW0gZ2UtcGFja3Qgdm9uIFJlaW5oYXJkIFdvYnN0Ci0JbWl0cC1WZXJsYWcsIElTQk4gMy04MjY2LTE0MjUtOQotICBUcm90eiBkZXIga29tcGFrdGVuIERhcnN0ZWxsdW5nIGlzdCBlcyBkdXJjaCB2aWVsZSBu77+9dHpsaWNoZSBCZWlzcGllbGUgYXVjaAotICBm77+9ciBFaW5zdGVpZ2VyIGVtcGZlaGxlbnN3ZXJ0LiAgUHJvYmVrYXBpdGVsIHVuZCBkaWUgQmVpc3BpZWxza3JpcHRlIHNpbmQKLSAgb25saW5lIGVyaO+/vWx0bGljaC4gIFNpZWhlIGh0dHA6Ly93d3cuaWNjZi5ubC9jbGljazUuaHRtbAorICBEYXMgZXJzdGUgQnVjaCwgd2VsY2hlcyBkdXJjaGfkbmdpZyBWaW0gZ2V3aWRtZXQgaXN0LiAgQmVzb25kZXJzIG78dHpsaWNoCisgIGb8ciBBbmbkbmdlci4gIFZpZWxlIEJlaXNwaWVsZSB1bmQgQmlsZGVyIHNpbmQgZW50aGFsdGVuLgorICBTaWVoZSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAogCiAgIEZvbGdlbmRlcyBCdWNoIGlzdCDkbHRlciB1bmQgbWVociD8YmVyIFZpIGFscyBWaW0sIGFiZXIgYXVjaCBlbXBmZWhsZW5zd2VydDoKLQlMaW5kYSBMYW1iIHVuZCBBcm5vbGQgUm9iYmlucwotCVRleHRiZWFyYmVpdHVuZyBtaXQgZGVtIHZpLUVkaXRvcgorCVRleHRiZWFyYmVpdHVuZyBtaXQgZGVtIHZpLUVkaXRvciAgLSAgdm9uIExpbmRhIExhbWIgdW5kIEFybm9sZCBSb2JiaW5zCiAJVmVybGFnIE8nUmVpbGx5IC0gSVNCTjogMzg5NzIxMTI2MgogICBJbiBkaWVzZW0gQnVjaCBrYW5uIG1hbiBmYXN0IGFsbGVzIGZpbmRlbiwgd2FzIG1hbiBtaXQgVmkgdHVuIG32Y2h0ZS4KICAgRGllIHNlY2hzdGUgQXVzZ2FiZSBlbnRo5Gx0IGF1Y2ggSW5mb3JtYXRpb25lbiD8YmVyIFZpbS4KIAorICBBbHMgYWt0dWVsbGUgUmVmZXJlbnogZvxyIFZlcnNpb24gNi4yIHVuZCBrbmFwcGUgRWluZvxocnVuZyBkaWVudCBkYXMKKyAgZm9sZ2VuZGUgQnVjaDoKKwl2aW0gZ2UtcGFja3Qgdm9uIFJlaW5oYXJkIFdvYnN0CisJbWl0cC1WZXJsYWcsIElTQk4gMy04MjY2LTE0MjUtOQorICBUcm90eiBkZXIga29tcGFrdGVuIERhcnN0ZWxsdW5nIGlzdCBlcyBkdXJjaCB2aWVsZSBu/HR6bGljaGUgQmVpc3BpZWxlIGF1Y2gKKyAgZvxyIEVpbnN0ZWlnZXIgZW1wZmVobGVuc3dlcnQuICBQcm9iZWthcGl0ZWwgdW5kIGRpZSBCZWlzcGllbHNrcmlwdGUgc2luZAorICBvbmxpbmUgZXJo5Gx0bGljaC4gIFNpZWhlIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCisKICAgRGllc2VzIFR1dG9yaWFsIHd1cmRlIGdlc2NocmllYmVuIHZvbiBNaWNoYWVsIEMuIFBpZXJjZSBhbmQgUm9iZXJ0IEsuIFdhcmUsCi0gIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcy4gRXMgYmVudXR6dCBJZGVlbiwgZGllIENoYXJsZXMgU21pdGgsCi0gIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHksIHp1ciBWZXJm/Gd1bmcgc3RlbGx0ZS4KLSAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCisgIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcy4gRXMgYmVudXR6dCBJZGVlbiwgZGllIENoYXJsZXMgU21pdGgsIENvbG9yYWRvIFN0YXRlCisgIFVuaXZlcnNpdHksIHp1ciBWZXJm/Gd1bmcgc3RlbGx0ZS4gIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgogCiAgIEJlYXJiZWl0ZXQgZvxyIFZpbSB2b24gQnJhbSBNb29sZW5hYXIuCisgIERldXRzY2hlINxiZXJzZXR6dW5nIHZvbiBKb2FjaGltIEhvZm1hbm4gMjAwNy4gIEUtbWFpbDogSm9hY2hpbS5Ib2ZAZ214LmRlCiAKLSAgRGV1dHNjaGUg3GJlcnNldHp1bmcgdm9uIEpvYWNoaW0gSG9mbWFubiwgU2VwdGVtYmVyIDIwMDIuCi0gIEUtbWFpbDogSm9hY2hpbS5Ib2ZAZ214LmRlCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZ3IgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmdyCmluZGV4IDUyODk3N2IuLmQ0MDJiYzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZ3IKKysrIGIvcnVudGltZS90dXRvci90dXRvci5ncgpAQCAtNTU3LDcgKzU1Nyw3IEBACiAKIAkgICoqIMPp4SDt4SDz/vPl9OUg9Oze7OEg9O/1IOHx9+Xf7/UsIOPx3Pj05SAgOiMsIyB3IMHR18XJzyAqKgogCi0gIDEuIKLr6+cg7OnhIPbv8dwsIOPx3Pj05SAgOiFkaXIgIN4gIDohbHMgIOPp4SDt4SDw3PHl9OUg7N/hIOvf8/ThIOHw/CD07+0KKyAgMS4gtuvr5yDs6eEg9u/x3Cwg4/Hc+PTlICA6IWRpciAg3iAgOiFscyAg4+nhIO3hIPDc8eX05SDs3+Eg69/z9OEg4fD8IPTv7QogICAgICDq4fTc6+/j/CDz4fIg6uHpIOTp4evd7vTlIN3t4SDq4fTc6+vn6+8g/O3v7OEg4fH35d/v9SD88PnyIPTvIFRFU1QuCiAKICAgMi4gzOX04erp7eXf8/TlIPTv7SDk8e/s3eEg8/TvIPDc7fkg7N3x7/Ig4fX03vIg9OfyIPPl69/k4fIg6uHpIPDh9N7z9OUKQEAgLTY0Niw3ICs2NDYsNyBAQAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJIMzc6Ofs4SA2LjI6IMcgxc3Uz8vHINDRz9PIx8rH0wogCi0JICAqKiDQ4fTe8/TlICAgYSAgIOPp4SDt4SDl6fPc4+X05SDq5d/s5e3vIMzF1KIg9O/tIOTx7+zd4S4gKioKKwkgICoqINDh9N7z9OUgICBhICAg4+nhIO3hIOXp89zj5fTlIOrl3+zl7e8gzMXUwSD07+0g5PHv7N3hLiAqKgogCiAgIDEuIMzl9OHq6e3l3/P05SD07+0g5PHv7N3hIPP07yD03evv8iD05/Ig8PH+9OfyIOPx4ezs3vIg8OHx4erc9PkKICAgICAg8+fs5en57N3t5yDs5SAtLS0+IPDh9P7t9OHyICAkICDz9OftIMrh7e/t6ereIMrh9Nzz9OHz5y4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZ3IuY3A3MzcgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmdyLmNwNzM3CmluZGV4IDZhZDM3MmUuLjY5Y2VmZjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZ3IuY3A3MzcKKysrIGIvcnVudGltZS90dXRvci90dXRvci5nci5jcDczNwpAQCAtODcsNyArODcsNyBAQAogCiAtLS0+IFRoZSBjY293IGp1bXBlZGQgb3Z2ZXJyIHRoaGUgbW9vb24uCiAKLSAgNS4gkumomCCnpqwgniCaqJijo+MgnOWkmKAgqeCpq+MsIKeempjlpJyrnCCpq6Ygi+GfnqOYIDEuNC4KKyAgNS4gkumomCCnpqwgniCaqJijo+MgnOWkmKAgqeCpq+MsIKeempjlpKucIKmrpiCL4Z+eo5ggMS40LgogCiCRhouEiJeRhjogiZif6aogm6CYq6jirpyrnCCYrKvjpCCrnqQgp5yooOOanqmeLCCnqKapp5if46mrnCCkmCCjnqQKIAkgIJinpqOknqOmpJznnKucLCCjmJ+Y5aScq5wgo5wgq54grqjjqZ4uCkBAIC0xMjQsNyArMTI0LDcgQEAKICAgMi4ggqCYIKSYIKOnnOWrnCCpq6akIFZpbSAomKfmIKuepCCnqKarqKan4yAlKSCaqOGvq5w6ICB2aW0ggJCVhIiOIDxFTlRFUj4KIAogICAzLiCCoJggpJggmZqc5aucIJqo4a+rnDogIDxFU0M+ICAgOnEhICAgPEVOVEVSPiAgIJqgmCCYp+aoqKCvniCr4KQgmKKimJrppC4KLQkJIOwgmqjhr6ucOiAgPEVTQz4gICA6d3EJPEVOVEVSPiAgIJqgmCCYp6af46GcrKmeIKvgpCCYoqKYmumkLgorCQkg7CCaqOGvq5w6ICA8RVNDPiAgIDp3cSAgIDxFTlRFUj4gICCaoJggmKemn+OhnKypniCr4KQgmKKimJrppC4KIAogICA0LiCCoJggpJggm6CYmqjhr5yrnCDipJikIK6YqJihq+OomCCh4avgIJin5iCrpqQgm6imo+KYIKmcCiAgICAgIImYpKakoKHjIImYq+Gpq5ipniCnmKvjqaucOiAgeApAQCAtMTU3LDcgKzE1Nyw3IEBACiAtLS0+IFRoZXJlIGFyZSBhIHNvbWUgd29yZHMgZnVuIHRoYXQgZG9uJ3QgYmVsb25nIHBhcGVyIGluIHRoaXMgc2VudGVuY2UuCiAKICAgNS4ghKeYpJii4Zmcq5wgq5ggmeOjmKuYIDMgoZigIDQgo+KuqKAgniCnqOarmKmeIKSYIJzlpJigIKngqavjIKGYoAotICAgICCnnpqY5aSrnCCpq6Ygi+GfnqOYIDIuMi4KKyAgICAgp56amOWknKucIKmrpiCL4Z+eo5ggMi4yLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgIIvhn56jmCAyLjI6II+EkIiRkY6ShJCEkSCEjJKOioSRIIOIgIKQgJSGkQpAQCAtMjc3LDYgKzI3Nyw3IEBACiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQmL4Z+eo5ggMy4xOiCGIISMko6KhiCSjo+Oh4SShpGGkQogCisKICAgKiogj5ir46mrnCAgcCAgmqCYIKSYIKump6afnKvjqZyrnCCrnqQgq5yinKyrmOWYIJugmJqomK3jIKOcq+Egq6akIJuopqPimC4gICoqCiAKICAgMS4gi5yrmKGgpJzlqaucIKumpCCbqKaj4pggqauepCCnqOmrniCaqJijo+Mgq56qIKeYqJih4avgIKaj4ZuYqi4KQEAgLTMwNCw3ICszMDUsNyBAQAogICAgICoqII+Yq+Opq5wgIHIgIKGYoCCumKiYoavjqJggmqCYIKSYIJiiouGlnKucIJisq+akIKemrCCc5aSYoAogICAgICAgIKHhq+AgmKfmIKumpCCbqKaj4pguICoqCiAKLSAgMS4gi5yrmKGgpJzlqaucIKumpCCbqKaj4pggqauepCCnqOmrniCaqJijo+Mgp5iomKHhq+AgqZ6jnKDpo5ykniCjnCAtLS0+LgorICAxLiCLnKuYoaCknOWpq5wgq6akIJuopqPimCCpq56kIKeo6aueIJqomKOj4yCnmKiYoeGr4CCpnqOcoOCj4qSeIKOcIC0tLT4uCiAKICAgMi4gi5yrmKGgpJzlqaucIKumpCCbqKaj4pgg4qupoCDpqaucIKSYIJzlpJigIKfhpOAgqaumIKeo6aumIKLhn6aqLgogCkBAIC02MDMsNyArNjA0LDcgQEAKICAgMS4gIDohnKSrpqLjICCcoaucopzlIKPlmCCcpeCrnKigoeMgnKSrpqLjLgogCiAgICAgICCLnKigoeEgrqjjqaCjmCCnmKiYm5zlmqOYq5ggnOWkmKAgKE1TLURPUyk6Ci0gICAgICA6IWRpcgkgICAgICAgLSCco63hpKCpniCi5amrmKognKTmqiChmKuYouaapqwuCisgICAgICA6IWRpciAgICAgICAgICAgIC0gnKOt4aSgqZ4gouWpq5iqIJyk5qogoZirmKLmmqasLgogICAgICAgOiFkZWwggJCVhIiOICAgICAtIJugmJqo4a2coCCrpiCAkJWEiI4uCiAKICAgMi4gIDp3IICQlYSIjiAgIJqo4a2coCCrpiCrqOKu4KQgmKiunOWmIKumrCBWaW0gqaumIJvlqaGmIKOcIOakpqOYIICQlYSIji4KQEAgLTY0NSw3ICs2NDYsNyBAQAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJIIvhn56jmCA2LjI6IIYghIySjoqGII+QjpGHhomGkQogCi0JICAqKiCPmKvjqaucICAgYSAgIJqgmCCkmCCcoKnhmpyrnCChnOWjnKSmIIuEkuogq6akIJuopqPimC4gKioKKwkgICoqII+Yq+Opq5wgICBhICAgmqCYIKSYIJygqeGanKucIKGc5aOcpKYgi4SSgCCrpqQgm6imo+KYLiAqKgogCiAgIDEuIIucq5ihoKSc5amrnCCrpqQgm6imo+KYIKmrpiCr4qKmqiCrnqogp6jpq56qIJqomKOj46ogp5iomKHhq+AKICAgICAgqZ6jnKDgo+KkniCjnCAtLS0+IKeYq+mkq5iqICAkICCpq56kIImYpKakoKHjIImYq+Gpq5ipni4KQEAgLTY2MCw3ICs2NjEsNyBAQAogCiAgIDMuIJGso6einqjpqaucIKvpqJggq56kIKeo6aueIJqomKOj4y4gkZ6jnKDpqaucIJyn5ameqiDmq6AgniCnqKapn+OhniCc5aSYoAogICAgICCYoaigmemqIOWboJggqauepCCJmKvhqauYqZ4giZygo+Kkpqwgo5wgq56kIImYq+Gpq5ipniCEoKmYmuCa46osIJyhq+aqCi0JICCYp+Ygq54gn+KpniCnpqwgnKCp4Zqcq5igIKumIKGc5aOcpKYuCisgICAgIJin5iCrniCf4qmeIKemrCCcoKnhmpyrmKAgq6YgoZzlo5ykpi4KIAogLS0tPiBUaGlzIGxpbmUgd2lsbCBhbGxvdyB5b3UgdG8gcHJhY3RpY2UKIC0tLT4gVGhpcyBsaW5lIHdpbGwgYWxsb3cgeW91IHRvIHByYWN0aWNlIGFwcGVuZGluZyB0ZXh0IHRvIHRoZSBlbmQgb2YgYSBsaW5lLgpAQCAtODEyLDQgKzgxMywzIEBACiAgII+opqmYqKOmmuMgmqCYIKumpCBWaW0gmKfmIKumpCBCcmFtIE1vb2xlbmFhci4KIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLm5vIGIvcnVudGltZS90dXRvci90dXRvci5ubwppbmRleCAyZTAzNjA0Li4xNzE3OGRmIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLm5vCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3Iubm8KQEAgLTEsMjUgKzEsMjYgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLT0gViBlIGwgayBvIG0gbSBlIG4gICB0IGkgbCAgIGkgbiBuIGYg+CByIGkgbiBnIGUgbiAgIGkgICBWIGkgbSAgLS0gIFZlci4gMS41ID0KKz0gViBlIGwgayBvIG0gbSBlIG4gICB0IGkgbCAgIGkgbiBuIGYg+CByIGkgbiBnIGUgbiAgIGkgICBWIGkgbSAgLS0gIFZlci4gMS43ID0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotICAgICBWaW0gZXIgZW4gbWVnZXQga3JhZnRpZyBlZGl0b3IgbWVkIG1hbmdlIGtvbW1hbmRvZXIsIGFsdCBmb3IgbWFuZ2UKLSAgICAgdGlsIOUga3VubmUgZ+UgZ2plbm5vbSBhbGxlIGkgZW4gaW5uZvhyaW5nIHNvbSBkZW5uZS4gRGVuIGVyIGJlcmVnbmV0Ci0gICAgIHDlIOUgc2V0dGUgZGVnIGlubiBpIGJydWtlbiBhdiBub2sga29tbWFuZG9lciBz5SBkdSB2aWwgduZyZSBpIHN0YW5kCi0gICAgIHRpbCBsZXR0IOUga3VubmUgYnJ1a2UgVmltIHNvbSBlbiBlZGl0b3IgdGlsIGFsbGUgZm9ybeVsLgorICAgICBWaW0gZXIgZW4gbWVnZXQga3JhZnRpZyBlZGl0b3IgbWVkIG1hbmdlIGtvbW1hbmRvZXIsIGFsdCBmb3IgbWFuZ2UgdGlsIOUKKyAgICAga3VubmUgZ+UgZ2plbm5vbSBhbGxlIGkgZW4gaW5uZvhyaW5nIHNvbSBkZW5uZS4gRGVuIGVyIGJlcmVnbmV0IHDlIOUKKyAgICAgc2V0dGUgZGVnIGlubiBpIGJydWtlbiBhdiBub2sga29tbWFuZG9lciBz5SBkdSB2aWwgduZyZSBpIHN0YW5kIHRpbCBsZXR0CisgICAgIOUga3VubmUgYnJ1a2UgVmltIHNvbSBlbiBlZGl0b3IgdGlsIGFsbGUgZm9ybeVsLgogCiAgICAgIFRpZGVuIHNvbSBrcmV2ZXMgZm9yIOUgZ+UgZ2plbm5vbSBkZW5uZSBpbm5m+HJpbmdlbiB0YXIgY2EuIDI1LTMwCiAgICAgIG1pbnV0dGVyLCBhdmhlbmdpZyBhdiBodm9yIG15ZSB0aWQgZHUgYnJ1a2VyIHRpbCBla3NwZXJpbWVudGVyaW5nLgogCisgICAgIE1FUks6CiAgICAgIEtvbW1hbmRvZW5lIGkgbGVrc2pvbmVuZSB2aWwgbW9kaWZpc2VyZSB0ZWtzdGVuLiBMYWcgZW4ga29waSBhdiBkZW5uZQogICAgICBmaWxlbiBzb20gZHUga2FuIPh2ZSBkZWcgcOUgKGh2aXMgZHUga2r4cnRlIKt2aW10dXRvcrsta29tbWFuZG9lbiwgZXIKICAgICAgZGV0dGUgYWxsZXJlZGUgZW4ga29waSkuCiAKLSAgICAgRGV0IGVyIHZpa3RpZyDlIGh1c2tlIGF0IGRlbm5lIGlubmb4cmluZ2VuIGVyIGJlcmVnbmV0IHDlIGzmcmluZwotICAgICBnamVubm9tIGJydWsuIERldCBiZXR5ciBhdCBkdSBt5SB1dGb4cmUga29tbWFuZG9lbmUgZm9yIOUgbOZyZSBkZW0KLSAgICAgc2tpa2tlbGlnLiBIdmlzIGR1IGJhcmUgbGVzZXIgdGVrc3RlbiwgdmlsIGR1IGdsZW1tZSBrb21tYW5kb2VuZSEKKyAgICAgRGV0IGVyIHZpa3RpZyDlIGh1c2tlIGF0IGRlbm5lIGlubmb4cmluZ2VuIGVyIGJlcmVnbmV0IHDlIGzmcmluZyBnamVubm9tCisgICAgIGJydWsuIERldCBiZXR5ciBhdCBkdSBt5SB1dGb4cmUga29tbWFuZG9lbmUgZm9yIOUgbOZyZSBkZW0gc2tpa2tlbGlnLgorICAgICBIdmlzIGR1IGJhcmUgbGVzZXIgdGVrc3RlbiwgdmlsIGR1IGdsZW1tZSBrb21tYW5kb2VuZSEKIAotICAgICBG+HJzdCBhdiBhbHQsIHNqZWtrIGF0IKtDYXBzIExvY2u7IElLS0UgZXIgYWt0aXYgb2cgdHJ5a2sgq2q7LXRhc3RlbgotICAgICBoZWx0IHRpbCBsZWtzam9uIDEuMSBmeWxsZXIgc2tqZXJtZW4uCisgICAgIEb4cnN0IGF2IGFsdCwgc2pla2sgYXQgq0NhcHMgTG9ja7sgSUtLRSBlciBha3RpdiBvZyB0cnlrayCrarstdGFzdGVuIGZvcgorICAgICDlIGZseXR0ZSBtYXJr+HJlbiBoZWx0IHRpbCBsZWtzam9uIDEuMSBmeWxsZXIgc2tqZXJtZW4uCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICAgTGVrc2pvbiAxLjE6ICBGTFlUVElORyBBViBNQVJL2FJFTgogCkBAIC0zMyw0NiArMzQsNDYgQEAKICAgMS4gRmx5dHQgbWFya/hyZW4gcnVuZHQgcOUgc2tqZXJtZW4gdGlsIGR1IGhhciBm5XR0IGRldCBpbm4gaSBmaW5ncmVuZS4KIAogICAyLiBIb2xkIGlubmUgbmVkb3ZlcnRhc3RlbiAoaikgdGlsIGRlbiByZXBldGVyZXIuCi0tLS0+IE7lIHZldCBkdSBodm9yZGFuIGR1IGJldmVnZXIgZGVnIHRpbCBuZXN0ZSBsZWtzam9uLgorICAgICBO5SB2ZXQgZHUgaHZvcmRhbiBkdSBiZXZlZ2VyIGRlZyB0aWwgbmVzdGUgbGVrc2pvbi4KIAogICAzLiBH5SB0aWwgbGVrc2pvbiAxLjIgdmVkIGhqZWxwIGF2IG5lZG92ZXJ0YXN0ZW4uCiAKLU1FUks6IEh2aXMgZHUgYmxpciB1c2lra2VyIHDlIG5vZSBkdSBoYXIgc2tyZXZldCwgdHJ5a2sgPEVTQz4gZm9yIOUgZ+UgdGlsCi0gICAgICBub3JtYWxtb2R1cy4gU2tyaXYgZGVyZXR0ZXIga29tbWFuZG9lbiBkdSD4bnNrZXQuCitNZXJrOiBIdmlzIGR1IGJsaXIgdXNpa2tlciBw5SBub2UgZHUgaGFyIHNrcmV2ZXQsIHRyeWtrIDxFU0M+IGZvciDlIGflIHRpbAorICAgICAgbm9ybWFsbW9kdXMuIFNrcml2IGRlcmV0dGVyIGtvbW1hbmRvZW4gZHUg+G5za2V0IHDlIG55dHQuCiAKLU1FUks6IFBpbHRhc3RlbmUgc2thbCBvZ3PlIHZpcmtlLiBNZW4gdmVkIOUgYnJ1a2UgaGprbCB2aWwgZHUgduZyZSBpIHN0YW5kIHRpbAotICAgICAg5SBiZXZlZ2UgbWFya/hyZW4gbXllIHJhc2tlcmUgbuVyIGR1IGVyIGJsaXR0IHZhbnQgdGlsIGRldC4KK01lcms6IFBpbHRhc3RlbmUgc2thbCBvZ3PlIHZpcmtlLiBNZW4gdmVkIOUgYnJ1a2UgaGprbCB2aWwgZHUgduZyZSBpIHN0YW5kIHRpbAorICAgICAg5SBiZXZlZ2UgbWFya/hyZW4gbXllIHJhc2tlcmUgbuVyIGR1IGVyIGJsaXR0IHZhbnQgdGlsIGRldC4gSGVsdCBzYW50IQogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICBMZWtzam9uIDEuMjogT1BQU1RBUlQgT0cgQVZTTFVUTklORyBBViBWSU0KKwkJCSAgTGVrc2pvbiAxLjI6IEFWU0xVVFRFIFZJTQogCiAKLSAgISEgTUVSSzogRvhyIGR1IHV0ZvhyZXIgbm9lbiBhdiBwdW5rdGVuZSBuZWRlbmZvciwgbGVzIGhlbGUgbGVrc2pvbmVuIQorICAhISBNRVJLOiBG+HIgZHUgdXRm+HJlciBub2VuIGF2IHB1bmt0ZW5lIG5lZGVuZm9yLCBsZXMgaGVsZSBsZWtzam9uZW4hIQogCiAgIDEuIFRyeWtrIDxFU0M+LXRhc3RlbiAoZm9yIOUgZm9yc2lrcmUgZGVnIG9tIGF0IGR1IGVyIGkgbm9ybWFsbW9kdXMpLgogCi0gIDIuIFNrcml2OiAgOnEhIDxFTlRFUj4KLQotLS0tPiBEZXR0ZSBhdnNsdXR0ZXIgZWRpdG9yZW4gVVRFTiBhdCBlbmRyaW5nZXIgYmxpciBsYWdyZXQuCi0gICAgIEh2aXMgZHUgdmlsIGxhZ3JlIGVuZHJpbmdlbmUgb2cgYXZzbHV0dGUsIHNrcml2ZXIgZHU6Ci0JICAgICA6d3EgPEVOVEVSPgorICAyLiBTa3JpdjoJOnEhIDxFTlRFUj4uCisgICAgIERldHRlIGF2c2x1dHRlciBlZGl0b3JlbiBvZyBGT1JLQVNURVIgYWxsZSBmb3JhbmRyaW5nZXIgc29tIGR1IGhhciBnam9ydC4KIAogICAzLiBO5XIgZHUgc2VyIGtvbW1hbmRvbGluamVuIGkgc2thbGxldCwgc2tyaXYga29tbWFuZG9lbiBzb20gc3RhcnRldCBkZW5uZQotICAgICBpbm5m+HJpbmdlbi4gRGV0IGthbiB25nJlOiAgdmltdHV0b3IgPEVOVEVSPgotICAgICBOb3JtYWx0IHZpbCBkdSBicnVrZToJIHZpbSB0dXRvciA8RU5URVI+Ci0KLS0tLT4gTWVkIKt2aW27IG1lbmVzIFZpbS1lZGl0b3Jlbiwgq3R1dG9yuyBlciBmaWxlbiBzb20gZHUgdmlsIHJlZGlnZXJlLgorICAgICBpbm5m+HJpbmdlbi4gRGVuIGVyOiAgIHZpbXR1dG9yIDxFTlRFUj4KIAogICA0LiBIdmlzIGR1IGVyIHNpa2tlciBw5SBhdCBkdSBodXNrZXIgZGV0dGUsIHV0ZvhyIHB1bmt0ZW5lIDEgdGlsIDMgZm9yIOUKLSAgICAgYXZzbHV0dGUgb2cgc3RhcnRlIGVkaXRvcmVuIHDlIG55dHQuIERlcmV0dGVyIGZseXR0ZXIgZHUgbWFya/hyZW4gbmVkIHRpbAotICAgICBsZWtzam9uIDEuMy4KKyAgICAgYXZzbHV0dGUgb2cgc3RhcnRlIGVkaXRvcmVuIHDlIG55dHQuCisKK01FUks6ICA6cSEgPEVOVEVSPiAgZm9ya2FzdGVyIGFsbGUgZm9yYW5kcmluZ2VyIHNvbSBkdSBnam9yZGUuIEkgbPhwZXQgYXYgbm9lbgorICAgICAgIGblIGxla3Nqb25lciB2aWwgZHUgbOZyZSBodm9yZGFuIGR1IGxhZ3JlciBmb3JhbmRyaW5nZW5lIHRpbCBlbiBmaWwuCisKKyAgNS4gRmx5dHQgbWFya/hyZW4gbmVkIHRpbCBsZWtzam9uIDEuMy4KKworCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJIExla3Nqb24gMS4zOiBSRURJR0VSSU5HIEFWIFRFS1NUIC0tIFNMRVRUSU5HCiAKIAotCSAgKiogVHJ5a2sgdGFzdGVuICB4ICBmb3Ig5SBzbGV0dGUgdGVnbmV0IHVuZGVyIG1hcmv4cmVuLiAqKgorCSAgICAgKiogVHJ5a2sgIHggIGZvciDlIHNsZXR0ZSB0ZWduZXQgdW5kZXIgbWFya/hyZW4uICoqCiAKLSAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG1lcmtldCBtZWQgIC0tLT4gIC4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG1lcmtldCBtZWQgIC0tLT4uCiAKICAgMi4gRm9yIOUgb3JkbmUgZmVpbGVuZSBw5SBsaW5qZW4sIGZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZXIgb3Bw5SB0ZWduZXQgc29tCiAgICAgIHNrYWwgc2xldHRlcy4KQEAgLTgxLDIxICs4MiwyMSBAQAogCiAgIDQuIFJlcGV0ZXIgcHVua3QgMiB0aWwgNCB0aWwgc2V0bmluZ2VuIGVyIGxpayBkZW4gc29tIGVyIHVuZGVyLgogCi0tLS0+IEtrdWEgaG9wcGV0dCBvdnZlcnIgbeXl5eVuZW5uLgotLS0tPiBLdWEgaG9wcGV0IG92ZXIgbeVuZW4uCistLS0+IEhlc3NzdGVubm5uIGJycnLlc251ZGRkZGUgaWkgZ2FhYXRhLgorLS0tPiBIZXN0ZW4gYnLlc251ZGRlIGkgZ2F0YS4KIAogICA1LiBO5SBzb20gbGluamVuIGVyIGtvcnJla3QsIGflIHRpbCBsZWtzam9uIDEuNC4KIAotSFVTSzogTuVyIGR1IGflciBnamVubm9tIGlubmb4cmluZ2VuLCBpa2tlIGJhcmUgcHL4diDlIGh1c2tlIGtvbW1hbmRvZW5lLCBtZW4KK01FUks6IE7lciBkdSBn5XIgZ2plbm5vbSBpbm5m+HJpbmdlbiwgaWtrZSBiYXJlIHBy+HYg5SBodXNrZSBrb21tYW5kb2VuZSwgbWVuCiAgICAgICBicnVrIGRlbSBoZWx0IHRpbCBkZSBzaXR0ZXIuCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQlMZWtzam9uIDEuNDogUkVESUdFUklORyBBViBURUtTVCAtLSBJTk5TRVRUSU5HCiAKIAotICAgICAgICoqIE7lciBkdSBlciBpIG5vcm1hbG1vZHVzLCB0cnlrayAgaSAgZm9yIOUgc2V0dGUgaW5uIHRla3N0LiAqKgorCQkgICAgKiogVHJ5a2sgIGkgIGZvciDlIHNldHRlIGlubiB0ZWtzdC4gKioKIAotICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGb4cnN0ZSBsaW5qZW4gc29tIGVyIG1lcmtldCBtZWQgIC0tLT4gIC4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIHNvbSBlciBtZXJrZXQgbWVkIC0tLT4uCiAKICAgMi4gRm9yIOUgZ2r4cmUgZGVuIGb4cnN0ZSBsaW5qZW4gbGlrIGRlbiBhbmRyZSwgZmx5dHQgbWFya/hyZW4gdGlsIGRlbiBzdOVyCiAgICAgIHDlIHRlZ25ldCBFVFRFUiBwb3Npc2pvbmVuIGRlciB0ZWtzdGVuIHNrYWwgc2V0dGVzIGlubi4KQEAgLTExMyw0NSArMTE0LDkxIEBACiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCUxla3Nqb24gMS41OiBSRURJR0VSSU5HIEFWIFRFS1NUIC0tIExFR0dFIFRJTAorCisKKwkJICAgICoqIFRyeWtrICBBICBmb3Ig5SBsZWdnZSB0aWwgdGVrc3QuICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+LgorICAgICBEZXQgaGFyIGlra2Ugbm9lIOUgc2kgaHZvciBtYXJr+HJlbiBlciBwbGFzc2VydCBw5SBkZW4gbGluamVuLgorCisgIDIuIFRyeWtrICBBICBvZyBza3JpdiBpbm4gZGV0IHNvbSBza2FsIGxlZ2dlcyB0aWwuCisKKyAgMy4gTuVyIHRla3N0ZW4gZXIgbGFndCB0aWwsIHRyeWtrIDxFU0M+IGZvciDlIHJldHVybmVyZSB0aWwgbm9ybWFsbW9kdXNlbi4KKworICA0LiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGFuZHJlIGxpbmplbiBtYXJrZXJ0IG1lZCAtLS0+IG9nIHJlcGV0ZXIgc3RlZyAyIG9nCisgICAgIDMgZm9yIOUgcmVwYXJlcmUgZGVubmUgc2V0bmluZ2VuLgorCistLS0+IERldCBtYW5nbGVyIG5vZSB0ZWtzdCBwCisgICAgIERldCBtYW5nbGVyIG5vZSB0ZWtzdCBw5SBkZW5uZSBsaW5qZW4uCistLS0+IERldCBtYW5nbGVyIG9nc+UgbGl0dCB0ZWsKKyAgICAgRGV0IG1hbmdsZXIgb2dz5SBsaXR0IHRla3N0IHDlIGRlbm5lIGxpbmplbi4KKworICA1LiBO5XIgZHUgZvhsZXIgYXQgZHUgYmVoZXJza2VyIOUgbGVnZ2UgdGlsIHRla3N0LCBn5SB0aWwgbGVrc2pvbiAxLjYuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIExla3Nqb24gMS42OiBSRURJR0VSRSBFTiBGSUwKKworCisJICAgICAgICoqIEJydWsJOndxICBmb3Ig5SBsYWdyZSBlbiBmaWwgb2cgYXZzbHV0dGUuICoqCisKKyAgISEgTUVSSzogRvhyIGR1IHV0ZvhyZXIgbm9lbiBhdiBzdGVnZW5lIG5lZGVuZm9yLCBsZXMgaGVsZSBkZW5uZSBsZWtzam9uZW4hIQorCisgIDEuIEF2c2x1dHQgZGVubmUgaW5uZvhyaW5nZW4gc29tIGR1IGdqb3JkZSBpIGxla3Nqb24gMS4yOiAgOnEhCisKKyAgMi4gU2tyaXYgZGVubmUga29tbWFuZG9lbiBw5SBrb21tYW5kb2xpbmphOiAgdmltIHR1dG9yIDxFTlRFUj4KKyAgICAgq3ZpbbsgZXIga29tbWFuZG9lbiBmb3Ig5SBzdGFydGUgVmltLWVkaXRvcmVuLCCrdHV0b3K7IGVyIG5hdm5ldCBw5SBmaWxhCisgICAgIHNvbSBkdSB2aWwgcmVkaWdlcmUuIEJydWsgZW4gZmlsIHNvbSBrYW4gZm9yYW5kcmVzLgorCisgIDMuIFNldHQgaW5uIG9nIHNsZXR0IHRla3N0IHNvbSBkdSBs5nJ0ZSBpIGRlIGZvcmVn5WVuZGUgbGVrc2pvbmVuZS4KKworICA0LiBMYWdyZSBmaWxlbiBtZWQgZm9yYW5kcmluZ2VuZSBvZyBhdnNsdXR0IFZpbSBtZWQ6CTp3cSA8RU5URVI+CisKKyAgNS4gU3RhcnQgaW5uZvhyaW5nZW4gcOUgbnl0dCBvZyBmbHl0dCBuZWQgdGlsIG9wcHN1bW1lcmluZ2VuIHNvbSBm+GxnZXIuCisKKyAgNi4gRXR0ZXIg5SBoYSBsZXN0IG9nIGZvcnN05XR0IHN0ZWdlbmUgb3ZlbmZvcjogU2V0dCBpIGdhbmcuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDEKIAogCiAgIDEuIE1hcmv4cmVuIGJldmVnZXMgdmVkIGhqZWxwIGF2IHBpbHRhc3RlbmUgZWxsZXIgaGprbC10YXN0ZW5lLgogCSBoICh2ZW5zdHJlKQkgaiAobmVkKSAgICAgayAob3BwKQkgbCAoaPh5cmUpCiAKLSAgMi4gRm9yIOUgc3RhcnRlIFZpbSAoZnJhIHNrYWxsLWtvbW1hbmRvbGluamVuKSwgc2tyaXY6ICB2aW0gRklMTkFWTiA8RU5URVI+CisgIDIuIEZvciDlIHN0YXJ0ZSBWaW0gZnJhIHNrYWxsLWtvbW1hbmRvbGluamVuLCBza3JpdjoJdmltIEZJTE5BVk4gPEVOVEVSPgogCi0gIDMuIEZvciDlIGF2c2x1dHRlIFZpbSwgc2tyaXY6ICA8RVNDPiA6cSEgPEVOVEVSPiAgZm9yIOUgZm9ya2FzdGUgZm9yYW5kcmluZ2VyLgorICAzLiBGb3Ig5SBhdnNsdXR0ZSBWaW0sIHNrcml2OiAgPEVTQz4gOnEhIDxFTlRFUj4gIGZvciDlIGZvcmthc3RlIGVuZHJpbmdlci4KIAkJICAgRUxMRVIgc2tyaXY6ICA8RVNDPiA6d3EgPEVOVEVSPiAgZm9yIOUgbGFncmUgZm9yYW5kcmluZ2VuZS4KIAotICA0LiBGb3Ig5SBzbGV0dGUgZXQgdGVnbiB1bmRlciBtYXJr+HJlbiBu5XIgZHUgZXIgaSBub3JtYWxtb2R1cywgdHJ5a2sgIHgKKyAgNC4gRm9yIOUgc2xldHRlIHRlZ25ldCB1bmRlciBtYXJr+HJlbiwgdHJ5a2s6ICB4CiAKLSAgNS4gRm9yIOUgc2V0dGUgaW5uIHRla3N0IHZlZCBtYXJr+HJlbiBu5XIgZHUgZXIgaSBub3JtYWxtb2R1cywgdHJ5a2s6Ci0JIGkgICAgW3Nrcml2IGlubiB0ZWtzdGVuXSAgICA8RVNDPgorICA1LiBGb3Ig5SBzZXR0ZSBpbm4gZWxsZXIgbGVnZ2UgdGlsIHRla3N0LCB0cnlrazoKKwkgaSAgICBza3JpdiBpbm5zYXR0IHRla3N0ICA8RVNDPglzZXR0IGlubiBm+HIgbWFya/hyZW4KKwkgQSAgICBza3JpdiB0aWxsYWd0IHRla3N0ICA8RVNDPglsZWdnIHRpbCBw5SBzbHV0dGVuIGF2IGxpbmplbgogCiBNRVJLOiBO5XIgZHUgdHJ5a2tlciA8RVNDPiBn5XIgZHUgdGlsIG5vcm1hbG1vZHVzIGVsbGVyIGR1IGF2YnJ5dGVyIGVuIHX4bnNrZXQKICAgICAgIG9nIGRlbHZpcyBmdWxsZvhydCBrb21tYW5kby4KIAogICBO5SBrYW4gZHUgZ+UgdmlkZXJlIHRpbCBsZWtzam9uIDIuCiAKLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQlMZWtzam9uIDIuMTogU0xFVFRFS09NTUFORE9FUgogCiAKLQkgICAgICoqIFRyeWtrICBkdyAgZm9yIOUgc2xldHRlIHRpbCBzbHV0dGVuIGF2IGV0IG9yZC4gKioKKwkJICAgICoqIFRyeWtrICBkdyAgZm9yIOUgc2xldHRlIGV0IG9yZC4gKioKIAogICAxLiBUcnlrayA8RVNDPiBmb3Ig5SB25nJlIHNpa2tlciBw5SBhdCBkdSBlciBpIG5vcm1hbG1vZHVzLgogCi0gIDIuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgIC0tLT4gIC4KKyAgMi4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+LgogCiAgIDMuIEZseXR0IG1hcmv4cmVuIHRpbCBiZWd5bm5lbHNlbiBhdiBvcmRldCBzb20gc2thbCBzbGV0dGVzLgogCiAgIDQuIFRyeWtrICBkdwlvZyBvcmRldCB2aWwgZm9yc3Zpbm5lLgogCi1NRVJLOiBCb2tzdGF2ZW5lIHZpbCBrb21tZSB0aWwgc3luZSBw5SBkZW4gbmVkZXJzdGUgbGluamVuIHDlIHNramVybWVuCi0gICAgICBldHRlcmh2ZXJ0IHNvbSBkdSBza3JpdmVyIGRlbS4gSHZpcyBkdSBza3JpdmVyIGZlaWwsIHRyeWtrIDxFU0M+IG9nCi0gICAgICBzdGFydCBw5SBueXR0LgorTUVSSzogQm9rc3RhdmVuICBkICB2aWwga29tbWUgdGlsIHN5bmUgcOUgZGVuIG5lZGVyc3RlIGxpbmplbiBw5SBza2plcm1lbiBu5XIKKyAgICAgIGR1IHNrcml2ZXIgZGVuLiBWaW0gdmVudGVyIHDlIGF0IGR1IHNrYWwgc2tyaXZlIHcgLiBIdmlzIGR1IHNlciBldCBhbm5ldAorICAgICAgdGVnbiBlbm4JZCAgaGFyIGR1IHNrcmV2ZXQgbm9lIGZlaWw7IHRyeWtrIDxFU0M+IG9nIHN0YXJ0IHDlIG55dHQuCiAKIC0tLT4gRGV0IGVyIGFndXJrIHRyZSBvcmQgZXBsZSBzb20gaWtrZSBo+HJlciBw5nJlIGhqZW1tZSBpIGRlbm5lIHNldG5pbmdlbi4KIC0tLT4gRGV0IGVyIHRyZSBvcmQgc29tIGlra2UgaPhyZXIgaGplbW1lIGkgZGVubmUgc2V0bmluZ2VuLgpAQCAtMTY2LDEzICsyMTMsMTMgQEAKIAogICAxLiBUcnlrayA8RVNDPiBmb3Ig5SB25nJlIHNpa2tlciBw5SBhdCBkdSBlciBpIG5vcm1hbG1vZHVzLgogCi0gIDIuIEZseXR0IG1hcmv4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0CS0tLT4gIC4KKyAgMi4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KIAogICAzLiBGbHl0dCBtYXJr+HJlbiB0aWwgcHVua3RldCBkZXIgbGluamVuIHNrYWwga3V0dGVzIChFVFRFUiBm+HJzdGUgcHVua3R1bSkuCiAKICAgNC4gVHJ5a2sgIGQkCWZvciDlIHNsZXR0ZSBhbHQgdGlsIHNsdXR0ZW4gYXYgbGluamVuLgogCi0tLS0+IE5vZW4gc2tyZXYgc2x1dHRlbiBw5SBsaW5qZW4gZW4gZ2FuZyBmb3IgbXllLiBw5SBsaW5qZW4gZW4gZ2FuZyBmb3IgbXllLgorLS0tPiBOb2VuIHNrcmV2IHNsdXR0ZW4gcOUgbGluamVuIGVuIGdhbmcgZm9yIG15ZS4gbGluamVuIGVuIGdhbmcgZm9yIG15ZS4KIAogICA1LiBH5SB0aWwgbGVrc2pvbiAyLjMgZm9yIOUgZm9yc3TlIGh2YSBzb20gc2tqZXIuCiAKQEAgLTE4Miw2NSArMjI5LDExMiBAQAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkgICAgTGVrc2pvbiAyLjM6IE9NIEtPTU1BTkRPRVIgT0cgT0JKRUtURVIKKwkJICAgTGVrc2pvbiAyLjM6IE9NIE9QRVJBVE9SRVIgT0cgQkVWRUdFTFNFUgogCiAKLSAgRm9ybWF0ZXQgZm9yIHNsZXR0ZWtvbW1hbmRvZW4gIGQgIGVyIHNvbSBm+GxnZXI6CisgIE1hbmdlIGtvbW1hbmRvZXIgc29tIGZvcmFuZHJlciB0ZWtzdGVuIGVyIGxhZ2V0IHV0IGkgZnJhIGVuIG9wZXJhdG9yIG9nIGVuCisgIGJldmVnZWxzZS4gRm9ybWF0ZXQgZm9yIGVuIHNsZXR0ZWtvbW1hbmRvIG1lZCBzbGV0dGVvcGVyYXRvcmVuICBkICBlcjoKIAotCVtudW1tZXJdICBkICBvYmpla3QJRUxMRVIJICBkICBbbnVtbWVyXSAgb2JqZWt0CisJZCAgIGJldmVnZWxzZQogCiAgIERlcjoKLSAgICBudW1tZXIgLS0gaHZvciBtYW5nZSBnYW5nZXIga29tbWFuZG9lbiB1dGb4cmVzICh2YWxnZnJpLCBzdGFuZGFyZD0xKS4KLSAgICBkCSAgIC0tIHNlbHZlIHNsZXR0ZWtvbW1hbmRvZW4uCi0gICAgb2JqZWt0IC0tIGh2YSBrb21tYW5kb2VuIHZpbCBvcGVyZXJlIHDlIChsaXN0ZXQgdXQgbmVkZW5mb3IpLgorICAgIGQJICAgICAgLSBlciBzbGV0dGVvcGVyYXRvcmVuLgorICAgIGJldmVnZWxzZSAtIGVyIGh2YSBvcGVyYXRvcmVuIHZpbCBvcGVyZSBw5SAobGlzdGV0IG5lZGVuZm9yKS4KIAotICBFbiBrb3J0IGxpc3RlIG1lZCBvYmpla3RlcjoKLSAgICB3IC0tIGZyYSBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBvcmRldCwgaW5rbHVkZXJ0IG1lbGxvbXJvbS4KLSAgICBlIC0tIGZyYSBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBvcmRldCwgSUtLRSBpbmtsdWRlcnQgbWVsbG9tcm9tLgotICAgICQgLS0gZnJhIG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IGxpbmplbi4KKyAgRW4ga29ydCBsaXN0ZSBtZWQgYmV2ZWdlbHNlcjoKKyAgICB3IC0gdGlsIHN0YXJ0ZW4gYXYgZGV0IG5lc3RlIG9yZGV0LCBVTk5UQVRUIGRldCBm+HJzdGUgdGVnbmV0LgorICAgIGUgLSB0aWwgc2x1dHRlbiBhdiBkZXQgbuV25nJlbmRlIG9yZGV0LCBJTktMVURFUlQgZGV0IHNpc3RlIHRlZ25ldC4KKyAgICAkIC0gdGlsIHNsdXR0ZW4gYXYgbGluamVuLCBJTktMVURFUlQgZGV0IHNpc3RlIHRlZ25ldC4KIAotTUVSSzogRm9yIGRlbiBldmVudHlybHlzdG5lOiBTa3JpdmluZyBhdiBrdW4gb2JqZWt0ZXQgaSBub3JtYWxtb2R1cyB1dGVuIGVuCi0gICAgICBrb21tYW5kbyB2aWwgZmx5dHRlIG1hcmv4cmVuIHRpbCBvYmpla3RldCBpIGxpc3Rlbi4KKyAgVmVkIOUgc2tyaXZlCWRlICB2aWwgYWx0c+UgYWx0IGZyYSBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBvcmRldCBibGkKKyAgc2xldHRldC4KKworTUVSSzogIFZlZCDlIHNrcml2ZSBrdW4gYmV2ZWdlbHNlbiBpIG5vcm1hbG1vZHVzZW4gdXRlbiBlbiBvcGVyYXRvciB2aWwKKyAgICAgICBtYXJr+HJlbiBmbHl0dGVzIHNvbSBzcGVzaWZpc2VydC4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgTEVLU0pPTiAyLjQ6IEJSVUsgQVYgVEVMTEVSIEZPUiBFTiBCRVZFR0VMU0UKKworCisgKiogVmVkIOUgc2tyaXZlIGV0IHRhbGwgZm9yYW4gZW4gYmV2ZWdlbHNlIHJlcGV0ZXJlciBkZW4gc+UgbWFuZ2UgZ2FuZ2VyLiAqKgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBzdGFydGVuIGF2IGxpbmplbiBtYXJrZXJ0IC0tLT4gbmVkZW5mb3IuCisKKyAgMi4gU2tyaXYgIDJ3CWZvciDlIGZseXR0ZSBtYXJr+HJlbiB0byBvcmQgZnJhbW92ZXIuCisKKyAgMy4gU2tyaXYgIDNlCWZvciDlIGZseXR0ZSBtYXJr+HJlbiBmcmFtb3ZlciB0aWwgc2x1dHRlbiBhdiBkZXQgdHJlZGplCisgICAgIG9yZGV0LgorCisgIDQuIFNrcml2ICAwICAobnVsbCkgZm9yIOUgZmx5dHRlIHRpbCBzdGFydGVuIGF2IGxpbmplbi4KKworICA1LiBSZXBldGVyIHN0ZWcgMiBvZyAzIG1lZCBmb3Jza2plbGxpZ2UgdGFsbC4KKworLS0tPiBEZXR0ZSBlciBlbiBsaW5qZSBtZWQgbm9lbiBvcmQgc29tIGR1IGthbiBiZXZlZ2UgZGVnIHJ1bmR0IHDlLgorCisgIDYuIEflIHZpZGVyZSB0aWwgbGVrc2pvbiAyLjUuCiAKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkgICAgIExla3Nqb24gMi40OiBFVCBVTk5UQUsgRlJBIKtLT01NQU5ETy1PQkpFS1S7LVJFR0VMRU4KKwkJIExla3Nqb24gMi41OiBCUlVLIEFWIEFOVEFMTCBGT1IgxSBTTEVUVEUgTUVSCisKKworICAgICAqKiBFdCB0YWxsIHNhbW1lbiBtZWQgZW4gb3BlcmF0b3IgcmVwZXRlcmVyIGRlbiBz5SBtYW5nZSBnYW5nZXIuICoqCisKKyAgSSBrb21iaW5hc2pvbmVuIG1lZCBzbGV0dGVvcGVyYXRvcmVuIG9nIGVuIGJldmVnZWxzZSBuZXZudCBvdmVuZm9yIHNldHRlciBkdQorICBpbm4gYW50YWxsIGb4ciBiZXZlZ2Vsc2VuIGZvciDlIHNsZXR0ZSBtZXI6CisJIGQgIG51bW1lciAgYmV2ZWdlbHNlCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRldCBm+HJzdGUgb3JkZXQgbWVkIFNUT1JFIEJPS1NUQVZFUiBw5SBsaW5qZW4gbWFya2VydAorICAgICBtZWQgLS0tPi4KKworICAyLiBTa3JpdiAgMmR3ICBmb3Ig5SBzbGV0dGUgZGUgdG8gb3JkZW5lIG1lZCBzdG9yZSBib2tzdGF2ZXIuCisKKyAgMy4gUmVwZXRlciBzdGVnIDEgb2cgMiBtZWQgZm9yc2tqZWxsaW5nIGFudGFsbCBmb3Ig5SBzbGV0dGUgZGUgZXR0ZXJm+GxnZW5kZQorICAgICBvcmRlbmUgc29tIGhhciBzdG9yZSBib2tzdGF2ZXIuCisKKy0tLT4gRGVubmUgQUJDIERFIGxpbmplbiBGR0hJIEpLIExNTiBPUCBlciBu5SBRIFJTIFRVViBsaXR0IG1lciBsZXNiYXIuCisKK01FUks6IEV0IGFudGFsbCBtZWxsb20gb3BlcmF0b3JlbiAgZCAgb2cgYmV2ZWdlbHNlbiB2aXJrZXIgcOUgc2FtbWUgbeV0ZSBzb20g5QorICAgICAgYnJ1a2UgYmV2ZWdlbHNlbiB1dGVuIGVuIG9wZXJhdG9yLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCUxla3Nqb24gMi42OiBPUEVSRVJFIFDFIExJTkpFUgogCiAKIAkJICoqIFRyeWtrICBkZCAgZm9yIOUgc2xldHRlIGVuIGhlbCBsaW5qZS4gKioKIAogICBQ5SBncnVubiBhdiBhdCBzbGV0dGluZyBhdiBsaW5qZXIgZXIgbXllIGJydWt0LCBmYW50IHV0dmlrbGVybmUgYXYgVmkgdXQgYXQKLSAgZGV0IHZpbCB25nJlIGxldHRlcmUg5SByZXR0IG9nIHNsZXR0IHRyeWtrZSB0byCrZLstZXIgZXR0ZXIgaHZlcmFuZHJlIGZvciDlCi0gIHNsZXR0ZSBlbiBsaW5qZS4KKyAgZGV0IHZpbCB25nJlIGxldHRlcmUg5SByZXR0IG9nIHNsZXR0IHRyeWtrZSB0byBkLWVyIGZvciDlIHNsZXR0ZSBlbiBsaW5qZS4KIAogICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGFuZHJlIGxpbmplbiBpIHZlcnNldCBuZWRlbmZvci4KLSAgMi4gVHJ5a2sgIGRkCWZvciDlIHNsZXR0ZSBsaW5qZW4uCisgIDIuIFRyeWtrICBkZAkg5SBzbGV0dGUgbGluamVuLgogICAzLiBGbHl0dCBkZXJldHRlciB0aWwgZGVuIGZqZXJkZSBsaW5qZW4uCi0gIDQuIFRyeWtrICAyZGQgIChodXNrIKtudW1tZXIta29tbWFuZG8tb2JqZWt0uykgZm9yIOUgc2xldHRlIGRpc3NlIHRvCi0gICAgIGxpbmplbmUuCisgIDQuIFRyeWtrICAyZGQgIGZvciDlIHNsZXR0ZSB0byBsaW5qZXIuCiAKLSAgICAgICAxKSBSb3NlciBlciBy+GRlCi0gICAgICAgMikgR2r4cm1lIGVyIGf4eSwKLSAgICAgICAzKSBGaW9sZXIgZXIgYmzlLAotICAgICAgIDQpIEplZyBoYXIgZW4gYmlsLAotICAgICAgIDUpIEtsb2trZXIgdmlzZXIgdGlkZW4sCi0gICAgICAgNikgRHJ1ZXIgZXIgc/h0ZQotICAgICAgIDcpIE9nIGR1IGVyIGxpa2Vz5S4KKy0tLT4gIDEpIFJvc2VyIGVyIHL4ZGUsCistLS0+ICAyKSBHavhybWUgZXIgZ/h5LAorLS0tPiAgMykgRmlvbGVyIGVyIGJs5SwKKy0tLT4gIDQpIEplZyBoYXIgZW4gYmlsLAorLS0tPiAgNSkgS2xva2tlciB2aXNlciB0aWRlbiwKKy0tLT4gIDYpIERydWVyIGVyIHP4dGUKKy0tLT4gIDcpIE9nIGR1IGVyIGxpa2Vz5S4KKworCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJCUxla3Nqb24gMi41OiBBTkdSRS1LT01NQU5ET0VOCisJCQlMZWtzam9uIDIuNzogQU5HUkUtS09NTUFORE9FTgogCiAKICAgKiogVHJ5a2sgIHUgIGZvciDlIGFuZ3JlIHNpc3RlIGtvbW1hbmRvLCAgVSAgZm9yIOUgZmlrc2UgZW4gaGVsIGxpbmplLiAqKgogCi0gIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0CS0tLT4gIG9nIHBsYXNzZXIgZGVuIHDlIGRlbgorICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+IG9nIHBsYXNzZXIgZGVuIHDlIGRlbgogICAgICBm+HJzdGUgZmVpbGVuLgogICAyLiBUcnlrayAgeCAgZm9yIOUgc2xldHRlIGRldCBm+HJzdGUgdfhuc2tlZGUgdGVnbmV0LgogICAzLiBUcnlrayBz5SAgdSAgZm9yIOUgYW5ncmUgZGVuIHNpc3RlIHV0ZvhydGUga29tbWFuZG9lbi4KLSAgNC4gRGVyZXR0ZXIgb3JkbmVyIGR1IGFsbGUgZmVpbGVuZSBw5SBsaW5qZW5lIHZlZCDlIGJydWtlICB4CWtvbW1hbmRvZW4uCi0gIDUuIFRyeWtrIG7lIGVuIHN0b3IgIFUgIGZvciDlIHNldHRlIGxpbmplbiB0aWxiYWtlIHRpbCBkZXQgZGVuIHZhci4KKyAgNC4gRGVyZXR0ZXIgb3JkbmVyIGR1IGFsbGUgZmVpbGVuZSBw5SBsaW5qZW5lIHZlZCDlIGJydWtlIGtvbW1hbmRvZW4JeCAgLgorICA1LiBUcnlrayBu5SBlbiBzdG9yICBVICBmb3Ig5SBzZXR0ZSBsaW5qZW4gdGlsYmFrZSB0aWwgZGV0IGRlbiB2YXIKKyAgICAgb3JpZ2luYWx0LgogICA2LiBUcnlrayAgdSAgbm9lbiBnYW5nZXIgZm9yIOUgYW5ncmUJVSAgb2cgZm9yZWflZW5kZSBrb21tYW5kb2VyLgotICA3LiBEZXJldHRlciB0cnlra2VyIGR1ICBDdHJsLXIgIChob2xkIEN0cmwgbmVkZSBtZW5zIGR1IHRyeWtrZXIgq3K7KSBub2VuCisgIDcuIERlcmV0dGVyIHRyeWtrZXIgZHUgIENUUkwtUiAgKGhvbGQgQ1RSTCBuZWRlIG1lbnMgZHUgdHJ5a2tlciBSKSBub2VuCiAgICAgIGdhbmdlciBmb3Ig5SBnamVub3BwcmV0dGUga29tbWFuZG9lbmUgKG9tZ2r4cmUgYW5ncmVrb21tYW5kb2VuZSkuCiAKIC0tLT4gUlJlcGFyZXIgZmVpaWxlbmUgcOXlIGRlbm5lIGxpbm5uamVuIG9vZyBlcnNzc3RhdHQgZGVtIG1lZWQgYW5ncmUuCkBAIC0yNDksNTAgKzM0Myw0OSBAQAogICAgICBsZWtzam9uIDIuCiAKIAotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gMgogCiAKLSAgMS4gRm9yIOUgc2xldHRlIGZyYSBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBldCBvcmQsIHRyeWtrOiAgZHcKLQorICAxLiBGb3Ig5SBzbGV0dGUgZnJhIG1hcmv4cmVuIGZyYW0gdGlsIGRldCBuZXN0ZSBvcmRldCwgdHJ5a2s6ICBkdwogICAyLiBGb3Ig5SBzbGV0dGUgZnJhIG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IGVuIGxpbmplLCB0cnlrazoJZCQKLQogICAzLiBGb3Ig5SBzbGV0dGUgZW4gaGVsIGxpbmplLCB0cnlrazoJZGQKIAotICA0LiBGb3JtYXRldCBmb3IgZW4ga29tbWFuZG8gaSBub3JtYWxtb2R1cyBlcjoKLQotICAgICAgIFtudW1tZXJdICBrb21tYW5kbyAgb2JqZWt0ICAgIEVMTEVSICAgIGtvbW1hbmRvCVtudW1tZXJdICBvYmpla3QKKyAgNC4gRm9yIOUgcmVwZXRlcmUgZW4gYmV2ZWdlbHNlLCBzZXR0IGV0IG51bW1lciBmb3JhbjogIDJ3CisgIDUuIEZvcm1hdGV0IGZvciBlbiBmb3JhbmRyaW5nc2tvbW1hbmRvIGVyOgorCSAgICAgICBvcGVyYXRvciAgW251bW1lcl0gIGJldmVnZWxzZQogICAgICBkZXI6Ci0gICAgICAgbnVtbWVyCS0tIGh2b3IgbWFuZ2UgZ2FuZ2VyIGtvbW1hbmRvZW4gc2thbCByZXBldGVyZXMKLSAgICAgICBrb21tYW5kbyAtLSBodmEgc29tIHNrYWwgZ2r4cmVzLCBmLmVrcy4JZCAgZm9yIOUgc2xldHRlCi0gICAgICAgb2JqZWt0CS0tIGh2YSBrb21tYW5kb2VuIHNrYWwgb3BlcmVyZSBw5SwgZWtzZW1wZWx2aXMJdyAgKG9yZCksCisgICAgICAgb3BlcmF0b3IgIC0gaHZhIHNvbSBza2FsIGdq+HJlcywgZi5la3MuCWQgIGZvciDlIHNsZXR0ZQorICAgICAgIFtudW1tZXJdICAtIGV0IHZhbGdmcml0dCBhbnRhbGwgZm9yIOUgcmVwZXRlcmUgYmV2ZWdlbHNlbgorICAgICAgIGJldmVnZWxzZSAtIGh2YSBrb21tYW5kb2VuIHNrYWwgb3BlcmVyZSBw5SwgZWtzZW1wZWx2aXMJdyAgKG9yZCksCiAJCSAgICQgICh0aWwgc2x1dHRlbiBhdiBsaW5qZW4pIG9nIHPlIHZpZGVyZS4KIAotICA1LiBGb3Ig5SBhbmdyZSB0aWRsaWdlcmUga29tbWFuZG9lciwgc2tyaXYgIHUgIChsaXRlbiB1KQotICAgICBGb3Ig5SBhbmdyZSBhbGxlIGZvcmFuZHJpbmdlciBw5SBlbiBsaW5qZSwgc2tyaXYgIFUgIChzdG9yIFUpCi0gICAgIEZvciDlIG9tZ2r4cmUgYW5ncmluZ2VuLCB0cnlrayAgQ3RybC1yCisgIDYuIEZvciDlIGflIHRpbCBzdGFydGVuIGF2IGVuIGxpbmplLCBicnVrIGVuIG51bGw6ICAwCisKKyAgNy4gRm9yIOUgYW5ncmUgdGlkbGlnZXJlIGVuZHJpbmdlciwgc2tyaXY6CQl1ICAobGl0ZW4gdSkKKyAgICAgRm9yIOUgYW5ncmUgYWxsZSBmb3JhbmRyaW5nZXIgcOUgZW4gbGluamUsIHNrcml2OglVICAoc3RvciBVKQorICAgICBGb3Ig5SBvbWdq+HJlIGFuZ3JpbmdlbiwgdHJ5a2s6CQkJQ1RSTC1SCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkgICAgICBMZWtzam9uIDMuMTogq0xJTSBJTk67LUtPTU1BTkRPRU4KIAogCi0gICAqKiBUcnlrayAgcAlmb3Ig5SBsaW1lIGlubiBkZW4gc2lzdGUgc2xldHRlZGUgdGVrc3RlbiBldHRlciBtYXJr+HJlbiAqKgorICAgICoqIFRyeWtrICBwICBmb3Ig5SBsaW1lIGlubiB0aWRsaWdlcmUgc2xldHRldCB0ZWtzdCBldHRlciBtYXJr+HJlbiAqKgogCi0gIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBpIGxpc3RlbiBuZWRlbmZvci4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG1lZCAtLS0+IG5lZGVuZm9yLgogCi0gIDIuIFRyeWtrICBkZAlmb3Ig5SBzbGV0dGUgbGluamVuIG9nIGxhZ3JlIGRlbiBpIHV0a2xpcHBzdGF2bGVuIHRpbCBWaW0uCisgIDIuIFRyeWtrICBkZAlmb3Ig5SBzbGV0dGUgbGluamVuIG9nIGxhZ3JlIGRlbiBpIGV0IFZpbS1yZWdpc3Rlci4KIAotICAzLiBGbHl0dCBtYXJr+HJlbiB0aWwgbGluamVuIE9WRVIgcG9zaXNqb25lbiBsaW5qZW4gc2thbCBzZXR0ZXMgaW5uLgorICAzLiBGbHl0dCBtYXJr+HJlbiB0aWwgYyktbGluamVuLCBPVkVSIHBvc2lzam9uZW4gbGluamVuIHNrYWwgc2V0dGVzIGlubi4KIAotICA0LiBNZW5zIGR1IGVyIGkgbm9ybWFsbW9kdXMsIHRyeWtrICBwICBmb3Ig5SBlcnN0YXR0ZSBsaW5qZW4uCisgIDQuIFRyeWtrICBwICBmb3Ig5SBsZWdnZSBsaW5qZW4gdW5kZXIgbWFya/hyZW4uCiAKICAgNS4gUmVwZXRlciBwdW5rdCAyIHRpbCA0IGhlbHQgdGlsIGxpbmplbmUgZXIgaSByaWt0aWcgcmVra2Vm+GxnZS4KIAotICAgICAgIGQpIEthbiBkdSBvZ3PlIGzmcmU/Ci0gICAgICAgYikgRmlvbGVyIGVyIGJs5SwKLSAgICAgICBjKSBJbnRlbGxpZ2VucyBt5SBs5nJlcywKLSAgICAgICBhKSBSb3NlciBlciBy+GRlLAorLS0tPiBkKSBLYW4gZHUgb2dz5SBs5nJlPworLS0tPiBiKSBGaW9sZXIgZXIgYmzlLAorLS0tPiBjKSBJbnRlbGxpZ2VucyBt5SBs5nJlcywKKy0tLT4gYSkgUm9zZXIgZXIgcvhkZSwKIAogCiAKQEAgLTMwMCwxNyArMzkzLDE3IEBACiAJCSAgICAgIExla3Nqb24gMy4yOiCrRVJTVEFUVLstS09NTUFORE9FTgogCiAKLSAgICAgICAqKiBUcnlrayAgciAgb2cgZXQgdGVnbiBmb3Ig5SBlcnN0YXR0ZSB0ZWduZXQgdW5kZXIgbWFya/hyZW4uICoqCisJICoqIFRyeWtrICByeCAgZm9yIOUgZXJzdGF0dGUgdGVnbmV0IHVuZGVyIG1hcmv4cmVuIG1lZCB4LiAqKgogCi0gIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgIC0tLT4gIC4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+LgogCiAgIDIuIEZseXR0IG1hcmv4cmVuIHPlIGRlbiBzdOVyIG9wcOUgZGVuIGb4cnN0ZSBmZWlsZW4uCiAKLSAgMy4gVHJ5a2sgIHIgIG9nIGRlcmV0dGVyIHRlZ25ldCBzb20gc2thbCBlcnN0YXR0ZSBkZXQgc29tIGVyIGZlaWwuCisgIDMuIFRyeWtrICByICBvZyBkZXJldHRlciB0ZWduZXQgc29tIHNrYWwgduZyZSBkZXIuCiAKLSAgNC4gUmVwZXRlciBwdW5rdCAyIG9nIDMgdGlsIGRlbiBm+HJzdGUgbGluamVuIGVyIGtvcnJla3QuCisgIDQuIFJlcGV0ZXIgcHVua3QgMiBvZyAzIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBlciBsaWsgZGVuIGFuZHJlLgogCi0tLS0+IERhIGRmbm5lIGx5bmp4biBibGUgemtyZXZldCwgdmFyIGRldCBu+GVuIHNvbSB0cnlra2V0IGZlaXRlIHRhc3RlciEKKy0tLT4gRGEgZGZubmUgbHluanhuIGJsZSB6a3JldmV0LCB2YXIgZGV0IG74ZW4gc29tIHRqeWtrZXQgZmVpdGUgdGFzdGVyIQogLS0tPiBEYSBkZW5uZSBsaW5qZW4gYmxlIHNrcmV2ZXQsIHZhciBkZXQgbm9lbiBzb20gdHJ5a2tldCBmZWlsZSB0YXN0ZXIhCiAKICAgNS4gR+UgdmlkZXJlIHRpbCBsZWtzam9uIDMuMi4KQEAgLTMyMCwxODkgKzQxMywxODkgQEAKIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgICAgTGVrc2pvbiAzLjM6IKtGT1JBTkRSRbstS09NTUFORE9FTgorCQkgICAgICBMZWtzam9uIDMuMzogq0ZPUkFORFJFuy1PUEVSQVRPUkVOCiAKIAotCSoqIEZvciDlIGZvcmFuZHJlIGVuIGRlbCBhdiBlbGxlciBldCBoZWx0IG9yZCwgdHJ5a2sgIGN3ICAuICoqCisJICAgKiogRm9yIOUgZm9yYW5kcmUgdGlsIHNsdXR0ZW4gYXYgZXQgb3JkLCB0cnlrayAgY2UgLiAqKgogCi0gIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBzb20gZXIgbWVya2V0ICAtLS0+CS4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIHNvbSBlciBtZXJrZXQgLS0tPi4KIAotICAyLiBQbGFzc2VyIG1hcmv4cmVuIHDlIKt1uy1lbiBpIKtsdWJqd3K7LgorICAyLiBQbGFzc2VyIG1hcmv4cmVuIHDlICB1ICBpIKtsdWJqd3K7LgogCi0gIDMuIFRyeWtrICBjdwlvZyBkZXQga29ycmVrdGUgb3JkZXQgKGkgZGV0dGUgdGlsZmVsbGV0LCBza3JpdiCraW5qZW67LikKKyAgMy4gVHJ5a2sgIGNlCW9nIGRldCBrb3JyZWt0ZSBvcmRldCAoaSBkZXR0ZSB0aWxmZWxsZXQsIHNrcml2IKtpbmplbrspLgogCi0gIDQuIFRyeWtrIDxFU0M+IG9nIGflIHRpbCBkZW4gbmVzdGUgZmVpbGVuIChkZXQgZvhyc3RlIHRlZ25ldCBzb20gc2thbAotICAgICBmb3JhbmRyZXMpLgorICA0LiBUcnlrayA8RVNDPiBvZyBn5SB0aWwgZGV0IG5lc3RlIHRlZ25ldCBzb20gc2thbCBmb3JhbmRyZXMuCiAKICAgNS4gUmVwZXRlciBwdW5rdCAzIG9nIDQgaGVsdCB0aWwgZGVuIGb4cnN0ZSBzZXRuaW5nZW4gZXIgbGlrIGRlbiBhbmRyZS4KIAogLS0tPiBEZW5uZSBsdWJqd3IgaGFyIG5vZW4gd2doIHNvbSBt5SBmb3Jrd+VwIG1lZCCrZm9y5mt6cnlhc7sta29tbWFuZG9lbi4KIC0tLT4gRGVubmUgbGluamVuIGhhciBub2VuIG9yZCBzb20gbeUgZm9yYW5kcmVzIG1lZCCrZm9yYW5kcmW7LWtvbW1hbmRvZW4uCiAKLSAgVuZyIG9wcG1lcmtzb20gcOUgYXQJY3cgIGlra2UgYmFyZSBmb3JhbmRyZXIgb3JkZXQsIG1lbiBvZ3PlIGflciBpbm4gaQotICBpbm5zZXR0aW5nc21vZHVzLgorVuZyIG9wcG1lcmtzb20gcOUgYXQgIGNlICBzbGV0dGVyIG9yZGV0IG9nIGflciBpbm4gaSBpbm5zZXR0aW5nc21vZHVzLgorCisKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCUxla3Nqb24gMy40OiBGTEVSRSBGT1JBTkRSSU5HRVIgVkVEIEJSVUsgQVYgYwogCiAKLSAgKiogq0ZvcmFuZHJluy1rb21tYW5kb2VuIGJsaXIgYnJ1a3QgbWVkIGRlIHNhbW1lIG9iamVrdGVuZSBzb20gq3NsZXR0uy4gKioKKyAqKiBGb3JhbmRyaW5nc2tvbW1hbmRvZW4gYmxpciBicnVrdCBtZWQgZGUgc2FtbWUgYmV2ZWdlbHNlciBzb20gq3NsZXR0uy4gKioKIAotICAxLiCrRm9yYW5kcmW7LWtvbW1hbmRvZW4gZnVuZ2VyZXIgcOUgc2FtbWUgbeV0ZSBzb20gq3NsZXR0uy4gRm9ybWF0ZXQgZXI6CisgIDEuIEZvcmFuZHJpbmdzb3BlcmF0b3JlbiBmdW5nZXJlciBw5SBzYW1tZSBt5XRlIHNvbSCrc2xldHS7LiBGb3JtYXRldCBlcjoKIAotICAgICAgIFtudW1tZXJdICBjICBvYmpla3QgICAgRUxMRVIgICAgYyAgW251bW1lcl0gIG9iamVrdAorCSBjICAgIFtudW1tZXJdCSBiZXZlZ2Vsc2UKIAotICAyLiBPYmpla3RlbmUgZXIgb2dz5SBkZSBzYW1tZSwgc29tIGZvciBla3NlbXBlbCAgdyAgKG9yZCksICAkICAoc2x1dHRlbiBhdgotICAgICBlbiBsaW5qZSkgb2cgc+UgdmlkZXJlLgorICAyLiBCZXZlZ2Vsc2VuZSBlciBkZSBzYW1tZSwgc29tIGZvciBla3NlbXBlbAl3ICAob3JkKSBvZyAgJAkoc2x1dHRlbiBhdiBlbgorICAgICBsaW5qZSkuCiAKLSAgMy4gR+UgdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIHNvbSBlciBtZXJrZXQgIC0tLT4gIC4KKyAgMy4gR+UgdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIHNvbSBlciBtZXJrZXQgLS0tPi4KIAogICA0LiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGb4cnN0ZSBmZWlsZW4uCiAKLSAgNS4gU2tyaXYgIGMkCWZvciDlIGZvcmFuZHJlIHJlc3RlbiBhdiBsaW5qZW4gbGlrIGRlbiBhbmRyZSBvZyB0cnlrayA8RVNDPi4KKyAgNS4gU2tyaXYgIGMkCW9nIHNrcml2IHJlc3RlbiBhdiBsaW5qZW4gbGlrIGRlbiBhbmRyZSBvZyB0cnlrayA8RVNDPi4KIAogLS0tPiBTbHV0dGVuIHDlIGRlbm5lIGxpbmplbiB0cmVuZ2VyIGxpdHQgaGplbHAgZm9yIOUgZ2r4cmUgZGVuIGxpayBkZW4gbmVzdGUuCi0tLS0+IFNsdXR0ZW4gcOUgZGVubmUgbGluamVuIHRyZW5nZXIg5SBibGkgcmV0dGV0IHZlZCBicnVrIGF2IKtjJLsta29tbWFuZG9lbi4KKy0tLT4gU2x1dHRlbiBw5SBkZW5uZSBsaW5qZW4gdHJlbmdlciDlIGJsaSByZXR0ZXQgdmVkIGJydWsgYXYgYyQta29tbWFuZG9lbi4KIAotCitNRVJLOiBEdSBrYW4gYnJ1a2Ugc2xldHRldGFzdGVuIGZvciDlIHJldHRlIGZlaWwgbWVucyBkdSBza3JpdmVyLgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDMKIAogCi0gIDEuIEZvciDlIGVyc3RhdHRlIHRla3N0IHNvbSBhbGxlcmVkZSBlciBibGl0dCBzbGV0dGV0LCB0cnlrawlwICAuIERldHRlCisgIDEuIEZvciDlIGxlZ2dlIHRpbGJha2UgdGVrc3Qgc29tIG5ldHRvcHAgZXIgYmxpdHQgc2xldHRldCwgdHJ5a2sgIHAgIC4gRGV0dGUKICAgICAgbGltZXIgaW5uIGRlbiBzbGV0dGVkZSB0ZWtzdGVuIEVUVEVSIG1hcmv4cmVuIChodmlzIGVuIGxpbmplIGJsZSBzbGV0dGV0CiAgICAgIHZpbCBkZW4gYmxpIGxpbXQgaW5uIHDlIGxpbmplbiB1bmRlciBtYXJr+HJlbikuCiAKICAgMi4gRm9yIOUgZXJzdGF0dGUgZXQgdGVnbiB1bmRlciBtYXJr+HJlbiwgdHJ5a2sgIHIgIG9nIGRlcmV0dGVyIHRlZ25ldCBzb20KLSAgICAgc2thbCBlcnN0YXR0ZSBkZXQgb3JpZ2luYWxlIHRlZ25ldC4KKyAgICAgZHUgdmlsIGhhIGRlci4KIAotICAzLiCrRm9yYW5kcmW7LWtvbW1hbmRvZW4gbGFyIGRlZyBmb3JhbmRyZSBkZXQgc3Blc2lmaXNlcnRlIG9iamVrdGV0IGZyYQotICAgICBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBvYmpla3RldCwgZi5la3MuOiBUcnlrayAgY3cgIGZvciDlIGZvcmFuZHJlIGZyYQotICAgICBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBvcmRldCwgIGMkICBmb3Ig5SBmb3JhbmRyZSB0aWwgc2x1dHRlbiBhdiBsaW5qZW4uCisgIDMuIEZvcmFuZHJpbmdzb3BlcmF0b3JlbiBsYXIgZGVnIGZvcmFuZHJlIGZyYSBtYXJr+HJlbiB0aWwgZGl0IGJldmVnZWxzZW4KKyAgICAgdGFyIGRlZy4gRGV0IHZpbCBzaSwgc2tyaXYgIGNlICBmb3Ig5SBmb3JhbmRyZSBmcmEgbWFya/hyZW4gdGlsIHNsdXR0ZW4KKyAgICAgYXYgb3JkZXQsCWMkICBmb3Ig5SBmb3JhbmRyZSB0aWwgc2x1dHRlbiBhdiBsaW5qZW4uCiAKICAgNC4gRm9ybWF0ZXQgZm9yIKtmb3JhbmRyZbsgZXI6CiAKLQkgW251bW1lcl0gIGMgIG9iamVrdAlFTExFUgkgYyAgW251bW1lcl0gIG9iamVrdAorCSBjICAgW251bW1lcl0JYmV2ZWdlbHNlCiAKLSAgTuUga2FuIGR1IGflIHRpbCBuZXN0ZSBsZWtzam9uLgorTuUga2FuIGR1IGflIHRpbCBuZXN0ZSBsZWtzam9uLgogCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICAgIExla3Nqb24gNC4xOiBQT1NJU0pPTiBPRyBGSUxTVEFUVVMKKwkgICAgIExla3Nqb24gNC4xOiBQT1NJU0pPTkVSSU5HIEFWIE1BUkvYUkVOIE9HIEZJTFNUQVRVUwogCisJKiogVHJ5a2sgQ1RSTC1HIGZvciDlIHZpc2UgcG9zaXNqb25lbiBpIGZpbGVuIG9nIGZpbHN0YXR1c2VuLgorCSAgIFRyeWtrICBHICBmb3Ig5SBn5SB0aWwgZW4gc3Blc2lmaWtrIGxpbmplIGkgZmlsZW4uICoqCiAKLSAqKiBUcnlrayBDdHJsLWcgZm9yIOUgdmlzZSBwb3Npc2pvbmVuIGkgZmlsZW4gb2cgZmlsc3RhdHVzZW4uCi0gICAgVHJ5a2sgU2hpZnQtRyBmb3Ig5SBn5SB0aWwgZW4gc3Blc2lmaWtrIGxpbmplIGkgZmlsZW4uICoqCisgIE1lcms6IExlcyBoZWxlIGxla3Nqb25lbiBm+HIgZHUgdXRm+HJlciBub2VuIGF2IHB1bmt0ZW5lIQogCi1NRVJLOiBMZXMgaGVsZSBsZWtzam9uZW4gZvhyIGR1IHV0ZvhyZXIgbm9lbiBhdiBwdW5rdGVuZSEKKyAgMS4gSG9sZCBuZWRlIEN0cmwtdGFzdGVuIG9nIHRyeWtrICBnCS4gVmkga2FsbGVyIGRldHRlIENUUkwtRy4gRW4gbWVsZGluZworICAgICB2aWwga29tbWUgdGlsIHN5bmUgcOUgYnVubmVuIGF2IHNramVybWVuIG1lZCBmaWxuYXZuZXQgb2cgcG9zaXNqb25lbiBpCisgICAgIGZpbGVuLiBIdXNrIGxpbmplbnVtbWVyZXQgZm9yIGJydWsgaSBzdGVnIDMuCiAKLSAgMS4gSG9sZCBuZWRlIEN0cmwtdGFzdGVuIG9nIHRyeWtrICBnCS4gRW4gc3RhdHVzbGluamUgdmlsIGtvbW1lIHRpbCBzeW5lIHDlCi0gICAgIGJ1bm5lbiBhdiBza2plcm1lbiBtZWQgZmlsbmF2bmV0IG9nIGh2aWxrZW4gbGluamUgbWFya/hyZW4gZXIgcOUuIEh1c2sKLSAgICAgbGluamVudW1tZXJldCBmb3IgYnJ1ayBpIHN0ZWcgMy4KK01lcms6IER1IGthbiBzZSBtYXJr+HJwb3Npc2pvbmVuIGkgbmVkZXJzdGUgaPh5cmUgaGr4cm5lIGF2IHNramVybWVuLiBEZXR0ZQorICAgICAgc2tqZXIgbuVyIKtydWxlcrstdmFsZ2V0IGVyIHNhdHQgKGZvcmtsYXJ0IGkgbGVrc2pvbiA2KS4KIAotICAyLiBUcnlrayBTaGlmdC1HIGZvciDlIGflIHRpbCBidW5uZW4gYXYgZmlsZW4uCisgIDIuIFRyeWtrICBHICBmb3Ig5SBn5SB0aWwgYnVubmVuIGF2IGZpbGVuLgorICAgICBTa3JpdiAgZ2cJZm9yIOUgZ+UgdGlsIGJlZ3lubmVsc2VuIGF2IGZpbGVuLgogCi0gIDMuIFNrcml2IGlubiBsaW5qZW51bW1lcmV0IGR1IHZhciBw5SBvZyBkZXJldHRlciBTaGlmdC1HLiBEZXR0ZSB2aWwgZvhyZSBkZWcKLSAgICAgdGlsYmFrZSB0aWwgbGluamVuIGR1IHZhciBw5SBkYSBkdSB0cnlra2V0IEN0cmwtZy4gKE7lciBkdSBza3JpdmVyIGlubgotICAgICBudW1tZXJldCwgdmlsIGRldCBJS0tFIGJsaSB2aXN0IHDlIHNramVybWVuLikKKyAgMy4gU2tyaXYgaW5uIGxpbmplbnVtbWVyZXQgZHUgdmFyIHDlIG9nIGRlcmV0dGVyICBHIC4gRGV0dGUgdmlsIGb4cmUgZGVnCisgICAgIHRpbGJha2UgdGlsIGxpbmplbiBkdSB2YXIgcOUgZGEgZHUgZvhyc3QgdHJ5a2tldCBDVFJMLUcuCiAKICAgNC4gVXRm+HIgc3RlZyAxIHRpbCAzIGh2aXMgZHUgZvhsZXIgZGVnIHNpa2tlciBw5SBwcm9zZWR5cmVuLgogCi0KLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgTGVrc2pvbiA0LjI6IFPYS0VLT01NQU5ET0VOCiAKLQogICAgICAgKiogU2tyaXYJLyAgZXR0ZXJmdWxndCBhdiBlbiBz+Gtlc3RyZW5nIHNvbSBkdSB2aWwgbGV0ZSBldHRlci4gKioKIAogICAxLiBUcnlrayAgLyAgbuVyIGR1IGVyIGkgbm9ybWFsbW9kdXNlbi4gTGVnZyBtZXJrZSB0aWwgYXQgc2ty5XN0cmVrZW4gb2cKICAgICAgbWFya/hyZW4ga29tbWVyIHRpbCBzeW5lIHDlIGJ1bm5lbiBhdiBza2plcm1lbiBpIGxpa2hldCBtZWQKICAgICAgqzq7LWtvbW1hbmRvZW5lLgogCi0gIDIuIFNrcml2ICBmZWVlaWlsICBvZyB0cnlrayBFTlRFUi4gRGV0dGUgZXIgdGVrc3RlbiBkdSB2aWwgbGV0ZSBldHRlci4KKyAgMi4gU2tyaXYgq2ZlZWVpaWy7IG9nIHRyeWtrIDxFTlRFUj4uIERldHRlIGVyIHRla3N0ZW4gZHUgdmlsIGxldGUgZXR0ZXIuCiAKLSAgMy4gRm9yIOUgZmlubmUgbmVzdGUgZm9yZWtvbXN0IGF2IHP4a2VzdHJlbmdlbiwgdHJ5a2sgIG4gIC4gRm9yIOUgbGV0ZSBldHRlcgotICAgICBzYW1tZSBz+GtldGVrc3RlbiBpIG1vdHNhdHQgcmV0bmluZywgdHJ5a2sgIFNoaWZ0LU4gIC4KKyAgMy4gRm9yIOUgZmlubmUgbmVzdGUgZm9yZWtvbXN0IGF2IHP4a2VzdHJlbmdlbiwgdHJ5a2sgIG4gLgorICAgICBGb3Ig5SBsZXRlIGV0dGVyIHNhbW1lIHP4a2V0ZWtzdGVuIGkgbW90c2F0dCByZXRuaW5nLCB0cnlrayAgTiAuCiAKLSAgNC4gSHZpcyBkdSB2aWwgbGV0ZSBldHRlciBlbiB0ZWtzdCBiYWtvdmVyIGkgZmlsZW4sIGJydWsga29tbWFuZG9lbiAgPwotICAgICBpc3RlZGVuZm9yICAvICAuCisgIDQuIEZvciDlIGxldGUgZXR0ZXIgZW4gdGVrc3QgYmFrb3ZlciBpIGZpbGVuLCBicnVrICA/ICBpc3RlZGVuZm9yICAvCS4KIAotTUVSSzogTuVyIHP4a2V0IHRyZWZmZXIgc2x1dHRlbiBhdiBmaWxlbiB2aWwgZGV0IGZvcnRzZXR0ZSBmcmEgZGVuIGFuZHJlIGVuZGVuCi0gICAgICBhdiBmaWxlbi4KKyAgNS4gRm9yIOUgZ+UgdGlsYmFrZSB0aWwgZGVyIGR1IGtvbSBmcmEsIHRyeWtrICBDVFJMLU8gIChIb2xkIEN0cmwgbmVkZSBtZW5zCisgICAgIGR1IHRyeWtrZXIgYm9rc3RhdmVuICBvICkuIFJlcGV0ZXIgZm9yIOUgZ+UgZW5kYSBsZW5ncmUgdGlsYmFrZS4gQ1RSTC1JCisgICAgIGflciBmcmFtb3Zlci4KIAogLS0tPiCrZmVlZWlpbLsgZXIgaWtrZSBt5XRlbiDlIHNrcml2ZSCrZmVpbLsgcOUsIGZlZWVpaWwgZXIgaGVsdCBmZWlsLgotCitNZXJrOiBO5XIgc/hraW5nZW4gbuVyIHNsdXR0ZW4gYXYgZmlsZW4sIHZpbCBkZW4gZm9ydHNldHRlIGZyYSBzdGFydGVuIHVubnRhdHQKKyAgICAgIGh2aXMgq3dyYXBzY2Fuuy12YWxnZXQgZXIgcmVzYXR0Lgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCSAgIExla3Nqb24gNC4zOiBGSU5OIFNBTVNWQVJFTkRFIFBBUkVOVEVTRVIKIAogCiAJICAqKiBUcnlrayAgJSAgZm9yIOUgZmlubmUgZW4gc2Ftc3ZhcmVuZGUgKSwgXSBlbGxlciB9IC4gKioKIAotICAxLiBQbGFzc2VyIG1hcmv4cmVuIHDlIGVuICgsIFsgZWxsZXIgeyBw5SBsaW5qZW4gbmVkZW5mb3IgbWVya2V0ICAtLS0+ICAuCisgIDEuIFBsYXNzZXIgbWFya/hyZW4gcOUgZW4gKCwgWyBlbGxlciB7IHDlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KIAogICAyLiBUcnlrayAgJSAgLgogCi0gIDMuIE1hcmv4cmVuIGZseXR0ZXIgc2VnIG7lIHRpbCBwYXJlbnRlc2VuIHNvbSBzYW1zdmFyZXIgbWVkIGRlbiBkdSBzdG9kIHDlLgorICAzLiBNYXJr+HJlbiB2aWwgZ+UgdGlsIGRlbiBzYW1zdmFyZW5kZSBwYXJlbnRlc2VuIGVsbGVyIGhha2VwYXJlbnRlc2VuLgogCi0gIDQuIFRyeWtrICAlICBmb3Ig5SBmbHl0dGUgbWFya/hyZW4gdGlsYmFrZSB0aWwgZGVuIGb4cnN0ZSBwYXJlbnRlc2VuLgorICA0LiBUcnlrayAgJSAgZm9yIOUgZmx5dHRlIG1hcmv4cmVuIHRpbCBkZW4gYW5kcmUgc2Ftc3ZhcmVuZGUgcGFyZW50ZXNlbi4KIAotLS0tPiBEZXR0ZSAoIGVyIGVuIHRlc3RsaW5qZSBtZWQgKCwgWyBdIG9nIHsgfSBpIGRlbiApKQorICA1LiBGbHl0dCBtYXJr+HJlbiB0aWwgZW4gYW5uZW4gKCwgKSwgWywgXSwgeyBlbGxlciB9IG9nIHNlIGh2YSAgJSAgZ2r4ci4KIAotTUVSSzogRGV0dGUgZXIgbWVnZXQgZ29kIGhqZWxwIHRpbCBmZWlsc/hraW5nIGkgcHJvZ3JhbW1lciBzb20gaGFyIHViYWxhbnNlcnQKKy0tLT4gRGV0dGUgKCBlciBlbiB0ZXN0bGluamUgbWVkICgsIFsgXSBvZyB7IH0gaSBkZW4gKSkuCisKK01lcms6IERldHRlIGVyIHZlbGRpZyBueXR0aWcgdGlsIGZlaWxz+GtpbmcgaSBwcm9ncmFtbWVyIHNvbSBoYXIgdWJhbGFuc2VydAogICAgICAgYW50YWxsIHBhcmVudGVzZXIhCiAKIAogCi0KLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgTGVrc2pvbiA0LjQ6IEVOIE3FVEUgxSBSRVRURSBTS1JJVkVGRUlMIFDFCisJCSAgICAgICBMZWtzam9uIDQuNDogRVJTVEFUVC1LT01NQU5ET0VOCiAKIAogCSoqIFNrcml2ICA6cy9nYW1tZWwvbnkvZyAgZm9yIOUgZXJzdGF0dGUgq2dhbW1lbLsgbWVkIKtuebsuICoqCiAKLSAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBzb20gYmVneW5uZXIgbWVkICAtLS0+CS4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBzb20gZXIgbWVya2V0IG1lZCAtLS0+LgogCiAgIDIuIFNrcml2ICA6cy9kZWVuL2Rlbi8gPEVOVEVSPiAgLiBMZWdnIG1lcmtlIHRpbCBhdCBkZW5uZSBrb21tYW5kb2VuIGJhcmUKLSAgICAgZm9yYW5kcmVyIGRlbiBm+HJzdGUgZm9yZWtvbXN0ZW4gYXYgb3JkZXQgcOUgbGluamVuLgorICAgICBmb3JhbmRyZXIgZGVuIGb4cnN0ZSBmb3Jla29tc3RlbiBhdiCrZGVlbrsgcOUgbGluamVuLgogCi0gIDMuIFNrcml2ICA6cy9kZWVuL2Rlbi9nICBzb20gYmV0eXIgZ2xvYmFsIGVyc3RhdG5pbmcgcOUgbGluamVuLiBEZXR0ZSB2aWwKLSAgICAgZXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBhdiBz+GtldGVrc3RlbiBw5SBsaW5qZW4gZHUgc3TlciBw5S4KKyAgMy4gU2tyaXYgIDpzL2RlZW4vZGVuL2cgLiBO5XIgZy1mbGFnZ2V0IGxlZ2dlcyB0aWwsIGJldHlyIGRldHRlIGdsb2JhbAorICAgICBlcnN0YXRuaW5nIHDlIGxpbmplbiBvZyBlcnN0YXR0ZXIgYWxsZSBmb3Jla29tc3RlciBhdiCrZGVlbrsgcOUgbGluamVuLgogCi0tLS0+IGRlZW4gYmVzdGUgZXIgZGVlbiBzb20ga2FuIGthc3RlIGRlZW4gdHluZ3N0ZSBzdGVpbmVuIGxlbmdzdAorLS0tPiBkZWVuIHNvbSBrYW4ga2FzdGUgZGVlbiB0eW5nc3RlIHN0ZWluZW4gbGVuZ3N0IGVyIGRlZW4gYmVzdGUKIAotICA0LiBTa3JpdiAgOiMsI3MvZ2FtbWVsL255L2cgIGZvciDlIGVyc3RhdHRlIHRla3N0IG1lbGxvbSB0byBsaW5qZXIsIGRlciAjLCMKLQkJCSAgICAgICBlciBsaW5qZW51bXJlbmUgcOUgZGUgdG8gbGluamVuZS4KKyAgNC4gRm9yIOUgZXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBhdiBlbiB0ZWtzdHN0cmVuZyBtZWxsb20gdG8gbGluamVyLAorICAgICBza3JpdiAgOiMsI3MvZ2FtbWVsL255L2cgIGRlciAjLCMgZXIgbGluamVudW1yZW5lIHDlIGRlIHRvIGxpbmplbmUgZm9yCisJCQkgICAgICAgbGluamVvbXLlZGV0IGVyc3RhdG5pbmdlbiBza2FsIGdq+HJlcy4KICAgICAgU2tyaXYgIDolcy9nYW1tZWwvbnkvZyAgICBmb3Ig5SBlcnN0YXR0ZSB0ZWtzdCBpIGhlbGUgZmlsZW4uCi0KLQotCi0KKyAgICAgU2tyaXYgIDolcy9nYW1tZWwvbnkvZ2MgICBmb3Ig5SBmaW5uZSBhbGxlIGZvcmVrb21zdGVyIGkgaGVsZSBmaWxlbiwgb2cKKwkJCSAgICAgICBkZXJldHRlciBzcPhycmUgb20gdGVrc3RlbiBza2FsIGVyc3RhdHRlcyBlbGxlcgorCQkJICAgICAgIGlra2UuCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gNAogCiAKLSAgMS4gQ3RybC1nIHZpc2VyIG7lduZyZW5kZSBwb3Npc2pvbiBpIGZpbGVuIG9nIGZpbHN0YXR1c2VuLiBTaGlmdC1HIGflciB0aWwKLSAgICAgc2x1dHRlbiBhdiBmaWxlbi4gRXQgbGluamVudW1tZXIgZXR0ZXJmdWxndCBhdiBTaGlmdC1HIGflciB0aWwgZGVubmUKLSAgICAgbGluamVuLgorICAxLiBDdHJsLUcgdmlzZXIgbuV25nJlbmRlIHBvc2lzam9uIGkgZmlsZW4gb2cgZmlsc3RhdHVzZW4uCisJICAgICBHCWflciB0aWwgc2x1dHRlbiBhdiBmaWxlbi4KKyAgICAgbnVtbWVyICBHCWflciB0aWwgZGV0IGxpbmplbnVtbWVyZXQuCisJICAgIGdnCWflciB0aWwgZGVuIGb4cnN0ZSBsaW5qZW4uCiAKICAgMi4gU2tyaXYgIC8gIGV0dGVyZnVsZ3QgYXYgZW4gc/hrZXRla3N0IGZvciDlIGxldGUgRlJBTU9WRVIgZXR0ZXIgdGVrc3Rlbi4KICAgICAgU2tyaXYgID8gIGV0dGVyZnVsZ3QgYXYgZW4gc/hrZXRla3N0IGZvciDlIGxldGUgQkFLT1ZFUiBldHRlciB0ZWtzdGVuLgogICAgICBFdHRlciBldCBz+Gsga2FuIGR1IHRyeWtrZSAgbiAgZm9yIOUgZmlubmUgbmVzdGUgZm9yZWtvbXN0IGkgZGVuIHNhbW1lCi0gICAgIHJldG5pbmdlbiBlbGxlciBTaGlmdC1OIGZvciDlIGxldGUgaSBtb3RzYXR0IHJldG5pbmcuCisgICAgIHJldG5pbmdlbiBlbGxlciAgTiAgZm9yIOUgbGV0ZSBpIG1vdHNhdHQgcmV0bmluZy4KKyAgICAgQ1RSTC1PIHRhciBkZWcgdGlsYmFrZSB0aWwgZ2FtbGUgcG9zaXNqb25lciwgQ1RSTC1JIHRpbCBueWVyZSBwb3Npc2pvbmVyLgogCi0gIDMuIFNrcml2ICAlICBu5XIgbWFya/hyZW4gc3TlciBw5SBlbiAoLCApLCBbLCBdLCB7IGVsbGVyIH0gZm9yIOUgZmlubmUKLSAgICAgcGFyZW50ZXN0ZW4gc29tIHNhbXN2YXJlciBtZWQgZGVuIG1hcmv4cmVuIHN05XIgcOUuCisgIDMuIFNrcml2ICAlICBu5XIgbWFya/hyZW4gc3TlciBw5SBlbiAoLCApLCBbLCBdLCB7IGVsbGVyIH0gZm9yIOUgZmlubmUgZGVuCisgICAgIHNvbSBzYW1zdmFyZXIuCiAKICAgNC4gRXJzdGF0dGUgq2dhbW1lbLsgbWVkIGb4cnN0ZSCrbnm7IHDlIGVuIGxpbmplOiAgOnMvZ2FtbWVsL255CiAgICAgIEVyc3RhdHRlIGFsbGUgq2dhbW1lbLsgbWVkIKtuebsgcOUgZW4gbGluamU6ICAgIDpzL2dhbW1lbC9ueS9nCiAgICAgIEVyc3RhdHRlIHRla3N0IG1lbGxvbSB0byBsaW5qZW51bXJlOgkgICAgIDojLCNzL2dhbW1lbC9ueS9nCiAgICAgIEVyc3RhdHRlIGFsbGUgZm9yZWtvbXN0ZXIgaSBlbiBmaWw6CSAgICAgOiVzL2dhbW1lbC9ueS9nCiAgICAgIEZvciDlIGdvZGtqZW5uZSBodmVyIGVyc3RhdG5pbmcsIGxlZ2cgdGlsIKtjuzogIDolcy9nYW1tZWwvbnkvZ2MKLQotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkgICAgICAgTGVrc2pvbiA1LjE6IEhWT1JEQU4gVVRG2FJFIEVOIEVLU1RFUk4gS09NTUFORE8KIApAQCAtNTEwLDEzNCArNjAzLDEzNCBAQAogICAgICoqIFNrcml2ICA6ISAgZXR0ZXJmdWxndCBhdiBlbiBla3N0ZXJuIGtvbW1hbmRvIGZvciDlIHV0ZvhyZSBkZW5uZS4gKioKIAogICAxLiBTa3JpdiBkZW4gdmVsa2plbnRlIGtvbW1hbmRvZW4gIDoJIGZvciDlIHBsYXNzZXJlIG1hcmv4cmVuIHDlIGJ1bm5lbiBhdgotICAgICBza2plcm1lbi4gRGV0dGUgbGFyIGRlZyBza3JpdmUgZW4ga29tbWFuZG8uCisgICAgIHNramVybWVuLiBEZXR0ZSBsYXIgZGVnIHNrcml2ZSBlbiBrb21tYW5kb2xpbmpla29tbWFuZG8uCiAKLSAgMi4gTuUga2FuIGR1IHNrcml2ZSB0ZWduZXQgIQkuIERldHRlIGxhciBkZWcgdXRm+HJlIGVuIGh2aWxrZW4gc29tIGhlbHN0CisgIDIuIE7lIGthbiBkdSBza3JpdmUgdGVnbmV0ICAhICAuIERldHRlIGxhciBkZWcgdXRm+HJlIGVuIGh2aWxrZW4gc29tIGhlbHN0CiAgICAgIGVrc3Rlcm4ga29tbWFuZG8uCiAKICAgMy4gU29tIGV0IGVrc2VtcGVsLCBza3JpdiAgbHMgIGV0dGVyIHV0cm9wc3RlZ25ldCBvZyB0cnlrayA8RU5URVI+LiBEdSB2aWwKICAgICAgbuUgZuUgZW4gbGlzdGUgb3ZlciBmaWxlbmUgaSBrYXRhbG9nZW4sIGFra3VyYXQgc29tIG9tIGR1IGhhZGRlIGtq+HJ0Ci0gICAgIGtvbW1hbmRvZW4gZGlyZWt0ZSBmcmEgc2thbGxldC4gRWxsZXIgYnJ1ayAgOiFkaXIJaHZpcyCrbHO7IGlra2Ugdmlya2VyLgorICAgICBrb21tYW5kb2VuIGRpcmVrdGUgZnJhIGtvbW1hbmRvbGluamVuIGkgc2thbGxldC4gRWxsZXIgYnJ1ayAgOiFkaXIgIGh2aXMKKyAgICAgq2xzuyBpa2tlIHZpcmtlci4KIAotLS0tPiBNRVJLOiBEZXQgZXIgbXVsaWcg5SBravhyZSBhbGxlIG11bGlnZSBla3N0ZXJuZSBrb21tYW5kb2VyIHDlIGRlbm5lCi0gICAgIG3ldGVuLgorTUVSSzogRGV0IGVyIG11bGlnIOUga2r4cmUgYWxsZSBla3N0ZXJuZSBrb21tYW5kb2VyIHDlIGRlbm5lIG3ldGVuLCBvZ3PlIG1lZAorICAgICAgcGFyYW1ldGVyZS4KIAotLS0tPiBNRVJLOiBBbGxlIKs6uy1rb21tYW5kb2VyIG3lIGF2c2x1dHRlcyBtZWQgPEVOVEVSPi4KLQotCitNRVJLOiBBbGxlIKs6uy1rb21tYW5kb2VyIG3lIGF2c2x1dHRlcyBtZWQgPEVOVEVSPi4gRnJhIGRldHRlIHB1bmt0ZXQgZXIgZGV0CisgICAgICBpa2tlIGFsbHRpZCB2aSBuZXZuZXIgZGV0LgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJICAgICBMZWtzam9uIDUuMjogTUVSIE9NIExBR1JJTkcgQVYgRklMRVIKIAogCi0gICAgICoqIEZvciDlIGxhZ3JlIGVuZHJpbmdlbmUgZ2pvcnQgaSBlbiBmaWwsIHNrcml2ICA6dyBGSUxOQVZOICAuICoqCisgICAgICAqKiBGb3Ig5SBsYWdyZSBlbmRyaW5nZW5lIGdqb3J0IGkgZW4gdGVrc3QsIHNrcml2ICA6dyBGSUxOQVZOLiAqKgogCiAgIDEuIFNrcml2ICA6IWRpciAgZWxsZXIgIDohbHMJZm9yIOUgZuUgZW4gbGlzdGUgb3ZlciBmaWxlbmUgaSBrYXRhbG9nZW4uIER1CiAgICAgIHZldCBhbGxlcmVkZSBhdCBkdSBt5SB0cnlra2UgPEVOVEVSPiBldHRlciBkZXR0ZS4KIAotICAyLiBWZWxnIGV0IGZpbG5hdm4gcOUgZW4gZmlsIHNvbSBpa2tlIGZpbm5lcywgc29tIGZvciBla3NlbXBlbCAgVEVTVAkuCisgIDIuIFZlbGcgZXQgZmlsbmF2biBw5SBlbiBmaWwgc29tIGlra2UgZmlubmVzLCBzb20gZm9yIGVrc2VtcGVsICBURVNUIC4KIAogICAzLiBTa3JpdiAgOncgVEVTVCAgKGRlciBURVNUIGVyIGZpbG5hdm5ldCBkdSB2ZWxnZXIpLgogCiAgIDQuIERldHRlIGxhZ3JlciBoZWxlIGZpbGVuIChkZW5uZSBpbm5m+HJpbmdlbikgdW5kZXIgbmF2bmV0IFRFU1QgLiBGb3Ig5QotICAgICBzamVra2UgZGV0dGUsIHNrcml2ICA6IWRpciAgaWdqZW4gZm9yIOUgc2UgaW5uaG9sZGV0IGF2IGthdGFsb2dlbi4KKyAgICAgc2pla2tlIGRldHRlLCBza3JpdiAgOiFkaXIgIGVsbGVyCTohbHMgIGlnamVuIGZvciDlIHNlIGlubmhvbGRldCBhdgorICAgICBrYXRhbG9nZW4uCiAKLS0tLT4gSHZpcyBkdSBu5SBoYWRkZSBhdnNsdXR0ZXQgVmltIG9nIHN0YXJ0ZXQgcOUgbnl0dCBpZ2plbiBtZWQgZmlsbmF2bmV0Ci0gICAgIFRFU1QsIHZpbGxlIGZpbGVuIHbmcnQgZW4gZWtzYWt0IGtvcGkgYXYgaW5uZvhyaW5nZW4gZGEgZHUgbGFncmV0IGRlbi4KK01lcms6IEh2aXMgZHUgbuUgaGFkZGUgYXZzbHV0dGV0IFZpbSBvZyBzdGFydGV0IHDlIG55dHQgaWdqZW4gbWVkIKt2aW0gVEVTVLssCisgICAgICB2aWxsZSBmaWxlbiB25nJ0IGVuIGVrc2FrdCBrb3BpIGF2IGlubmb4cmluZ2VuIGRhIGR1IGxhZ3JldCBkZW4uCiAKLSAgNS4gRmplcm4gZmlsZW4gdmVkIOUgc2tyaXZlICA6IXJtIFRFU1QgIGh2aXMgZHUgZXIgcOUgZXQgVU5JWC1saWduZW5kZQorICA1LiBGamVybiBmaWxlbiB2ZWQg5SBza3JpdmUgIDohcm0gVEVTVCAgaHZpcyBkdSBlciBw5SBldCBVbml4LWxpZ25lbmRlCiAgICAgIG9wZXJhdGl2c3lzdGVtLCBlbGxlciAgOiFkZWwgVEVTVAlodmlzIGR1IGJydWtlciBNUy1ET1MuCiAKLQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0JCSAgICBMZWtzam9uIDUuMzogREVMVklTIExBR1JJTkcgQVYgRU4gRklMCisJCSAgIExla3Nqb24gNS4zOiBWRUxHRSBURUtTVCBTT00gU0tBTCBMQUdSRVMKIAogCi0JICAqKiBGb3Ig5SBsYWdyZSBlbiBkZWwgYXYgZW4gZmlsLCBza3JpdiAgOiMsIyB3IEZJTE5BVk4gICoqCisgICAgICoqIEZvciDlIGxhZ3JlIGVuIGRlbCBhdiBlbiBmaWwsIHNrcml2ICB2CWJldmVnZWxzZSAgOncgRklMTkFWTiAqKgogCi0gIDEuIEVuIGdhbmcgdGlsOiBTa3JpdiAgOiFkaXIJZWxsZXIgIDohbHMgIGZvciDlIGblIGVuIGxpc3RlIG92ZXIgZmlsZW5lIGkKLSAgICAga2F0YWxvZ2VuLiBWZWxnIGV0IHBhc3NlbmRlIGZpbG5hdm4sIHNvbSAgVEVTVCAgLgorICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVubmUgbGluamVuLgogCi0gIDIuIEZseXR0IG1hcmv4cmVuIHRpbCB0b3BwZW4gYXYgZGVubmUgc2lkZW4gb2cgdHJ5a2sgQ3RybC1nIGZvciDlIGZpbm5lCi0gICAgIG51bW1lcmV0IHDlIGRlbm5lIGxpbmplbi4gSFVTSyBERVRURSBOVU1NRVJFVCEKKyAgMi4gVHJ5a2sgIHYgIG9nIGZseXR0IG1hcmv4cmVuIHRpbCBkZXQgZmVtdGUgZWxlbWVudGV0IG5lZGVuZm9yLiBMZWdnIG1lcmtlCisgICAgIHRpbCBhdCB0ZWtzdGVuIGJsaXIgbWFya2VydC4KIAotICAzLiBH5SB0aWwgbmVkZXJzdGUgbGluamUgcOUgc2tqZXJtZW4gb2cgdHJ5a2sgQ3RybC1nIGlnamVuLiBIVVNLIERFVFRFCi0gICAgIExJTkpFTlVNTUVSRVQgT0dTxSEKKyAgMy4gVHJ5a2sgIDogIChrb2xvbikuIFDlIGJ1bm5lbiBhdiBza2plcm1lbiB2aWwgIDonPCwnPiAga29tbWUgdGlsIHN5bmUuCiAKLSAgNC4gRm9yIOUgbGFncmUgQkFSRSBlbiBkZWwgYXYgZmlsZW4sIHNrcml2ICA6IywjIHcgVEVTVCAgaHZvciAjLCMgZXIgZGUgdG8KLSAgICAgbnVtcmVuZSBkdSBza3VsbGUgaHVza2UgKHRvcHAgb2cgYnVubikgb2cJVEVTVCAgZXIgZmlsbmF2bmV0LgorICA0LiBUcnlrayAgdyBURVNUICAsIGRlciBURVNUIGVyIGV0IGZpbG5hdm4gc29tIGlra2UgZmlubmVzIGVuZGEuIEtvbnRyb2xsZXIKKyAgICAgYXQgZHUgc2VyCTonPCwnPncgVEVTVCAgZvhyIGR1IHRyeWtrZXIgRW50ZXIuCiAKLSAgNS4gU2pla2sgbWVkCTohZGlyICBvbSBmaWxlbiBlciBkZXIsIG1lbiBJS0tFIHNsZXR0IGRlbi4KKyAgNS4gVmltIHZpbCBza3JpdmUgZGUgdmFsZ3RlIGxpbmplbmUgdGlsIGZpbGVuIFRFU1QuIEJydWsgIDohZGlyICBlbGxlciAgIWxzCisgICAgIGZvciDlIHNlIGRlbi4gSWtrZSBzbGV0dCBkZW4gZW5kYSEgVmkgdmlsIGJydWtlIGRlbiBpIG5lc3RlIGxla3Nqb24uCiAKLQotCitNRVJLOiBWZWQg5SB0cnlra2UgIHYgIHN0YXJ0ZXMgdmlzdWVsdCB2YWxnLiBEdSBrYW4gZmx5dHRlIG1hcmv4cmVuIHJ1bmR0IGZvcgorICAgICAg5SBnavhyZSBkZXQgdmFsZ3RlIG9tcuVkZXQgc3T4cnJlIGVsbGVyIG1pbmRyZS4gRGVyZXR0ZXIga2FuIGR1IGJydWtlIGVuCisgICAgICBvcGVyYXRvciBmb3Ig5SBnavhyZSBub2UgbWVkIHRla3N0ZW4uIEZvciBla3NlbXBlbCBzbGV0dGVyICBkICB0ZWtzdGVuLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJTGVrc2pvbiA1LjQ6IEhFTlRJTkcgT0cgU0FNTUVOU0zFSU5HIEFWIEZJTEVSCiAKIAotKiogRm9yIOUgbGVzZSBpbm4gZW4gYW5uZW4gZmlsIGlubiBpIG7lduZyZW5kZSBidWZmZXIsIHNrcml2ICA6ciBGSUxOQVZOICAuICoqCisgKiogRm9yIOUgbGVzZSBpbm4gZW4gYW5uZW4gZmlsIGlubiBpIG7lduZyZW5kZSBidWZmZXIsIHNrcml2ICA6ciBGSUxOQVZOICAqKgogCi0gIDEuIFNrcml2ICA6IWRpciAgZm9yIOUgZm9yc2lrcmUgZGVnIG9tIGF0IGZpbGVuICBURVNUICBmaW5uZXMuCisgIDEuIFBsYXNzZXIgbWFya/hyZW4gbGlrZSBvdmVyIGRlbm5lIGxpbmplbi4KIAotICAyLiBQbGFzc2VyIG1hcmv4cmVuIHDlIHRvcHBlbiBhdiBkZW5uZSBzaWRlbi4KK01FUks6IEV0dGVyIOUgaGEgdXRm+HJ0IHN0ZWcgMiB2aWwgZHUgc2UgdGVrc3RlbiBmcmEgbGVrc2pvbiA1LjMuIEflIGRlcmV0dGVyCisgICAgICBORUQgZm9yIOUgc2UgZGVubmUgbGVrc2pvbmVuIGlnamVuLgogCi1NRVJLOiAgRXR0ZXIgYXQgZHUgaGFyIHV0ZvhydCBzdGVnIDMgdmlsIGR1IHNlIGxla3Nqb24gNS4zLiBH5SBuZWRvdmVyIGZvcmJpCi0gICAgICAgZGVuIG9nIHRpbCBkZW5uZSBwb3Npc2pvbmVuIGlnamVuLgorICAyLiBIZW50IFRFU1QtZmlsZW4gdmVkIOUgYnJ1a2Uga29tbWFuZG9lbiAgOnIgVEVTVCAgZGVyIFRFU1QgZXIgbmF2bmV0IHDlCisgICAgIGZpbGVuIGR1IGJydWt0ZS4gRmlsZW4gZHUgaGVudGVyIGJsaXIgcGxhc3NlcnQgbmVkZW5mb3IgbWFya/hybGluamVuLgogCi0gIDMuIEhlbnQgq1RFU1S7LWZpbGVuIGRpbiBtZWQga29tbWFuZG9lbiAgOnIgVEVTVCAgZGVyIFRFU1QgZXIgbmF2bmV0IHDlCi0gICAgIGZpbGVuLgotCi1NRVJLOiBGaWxlbiBkdSBoZW50ZXIgdmlsIGJsaSBwbGFzc2VydCBkZXIgbWFya/hyZW4gc3Tlci4KLQotICA0LiBGb3Ig5SBzamVra2UgYXQgZmlsZW4gYmxlIGhlbnRldCwgZ+UgdGlsYmFrZSBvZyBzZSBhdCBkZXQgZXIgdG8ga29waWVyIGF2CisgIDMuIEZvciDlIHNqZWtrZSBhdCBmaWxlbiBibGUgaGVudGV0LCBn5SB0aWxiYWtlIG9nIHNlIGF0IGRldCBlciB0byBrb3BpZXIgYXYKICAgICAgbGVrc2pvbiA1LjMsIG9yaWdpbmFsZW4gb2cgZGVubmUgdmVyc2pvbmVuLgogCitNRVJLOiBEdSBrYW4gb2dz5SBsZXNlIHV0ZGF0YWVuZSBhdiBlbiBla3N0ZXJuIGtvbW1hbmRvLiBGb3IgZWtzZW1wZWwsCTpyICFscworICAgICAgbGVzZXIgdXRkYXRhZW5lIGF2IGxzLWtvbW1hbmRvZW4gb2cgbGVnZ2VyIGRlbSBuZWRlbmZvciBtYXJr+HJlbi4KKworCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDUKIAogCi0gIDEuICA6IUtPTU1BTkRPICB1dGb4cmVyIGVuIGVrc3Rlcm4ga29tbWFuZGlvLgorICAxLiAgOiFrb21tYW5kbyAgdXRm+HJlciBlbiBla3N0ZXJuIGtvbW1hbmRpby4KIAotCU5vZW4gbnl0dGlnZSBla3NlbXBsZXIgZXI6Ci0JICAgIChNUy1ET1MpCShVbml4KQotCSAgICAgOiFkaXIJIDohbHMJICAgIC0tIExpc3QgZmlsZW5lIGkga2F0YWxvZ2VuCi0JICAgICA6IWRlbCBGSUwJIDohcm0gRklMICAgLS0gU2xldHQgZmlsZW4gIEZJTAorICAgICAgTm9lbiBueXR0aWdlIGVrc2VtcGxlciBlcjoKKwkgKE1TLURPUykJICAoVW5peCkKKwkgIDohZGlyCQkgICA6IWxzCQkgIC0gTGlzdCBmaWxlbmUgaSBrYXRhbG9nZW4uCisJICA6IWRlbCBGSUxOQVZOICAgIDohcm0gRklMTkFWTiAgIC0gU2xldHQgZmlsZW4gRklMTkFWTi4KIAotICAyLiAgOncgRklMTkFWTiAgc2tyaXZlciBkZW4gZmlsZW4gZHUgc3TlciBpIHRpbCBkaXNrZW4gbWVkIG5hdm5ldCBGSUxOQVZOIC4KKyAgMi4gIDp3IEZJTE5BVk4gIHNrcml2ZXIgZGVuIG7lduZyZW5kZSBWaW0tZmlsZW4gZGlza2VuIG1lZCBuYXZuZXQgRklMTkFWTiAuCiAKLSAgMy4gIDojLCN3IEZJTE5BVk4gIGxhZ3JlciBsaW5qZW5lICMgdGlsICMgdGlsIGZpbGVuIEZJTE5BVk4gLgorICAzLiAgdiAgYmV2ZWdlbHNlICA6dyBGSUxOQVZOCWxhZ3JlciBkZSB2aXN1ZWx0IHZhbGd0ZSBsaW5qZW5lIHRpbCBmaWxlbgorICAgICBGSUxOQVZOLgogCi0gIDQuICA6ciBGSUxOQVZOICBoZW50ZXIgaW5uIGVuIGFubmVuIGZpbCBvZyBsZWdnZXIgZGVuIGlubiBsaWtlIGV0dGVyCi0gICAgICBtYXJr+HJlbi4KKyAgNC4gIDpyIEZJTE5BVk4gIGhlbnRlciBmaWxlbiBGSUxOQVZOIG9nIGxlZ2dlciBkZW4gaW5uIG5lZGVuZm9yIG1hcmv4cmVuLgogCi0KLQorICA1LiAgOnIgIWRpciAgbGVzZXIgdXRkYXRhZW5lIGZyYSCrZGlyuy1rb21tYW5kb2VuIG9nIGxlZ2dlciBkZW0gbmVkZW5mb3IKKyAgICAgbWFya/hycG9zaXNqb25lbi4KIAogCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkJTGVrc2pvbiA2LjE6IKvFUE5FIExJTkpFuy1LT01NQU5ET0VOCisJCSAgICAgTGVrc2pvbiA2LjE6IKvFUE5FIExJTkpFuy1LT01NQU5ET0VOCiAKIAotICAgICAqKiBTa3JpdiAgbyAgZm9yIOUgq+VwbmUgb3BwuyBmb3IgZW4gbnkgbGluamUgZXR0ZXIgbWFya/hyZW4gb2cgZ+UgaQotCWlubnNldHRpbmdzbW9kdXMgKioKKyAgICAqKiBTa3JpdiAgbyAgZm9yIOUgq+VwbmUgb3BwuyBmb3IgZW4gbnkgbGluamUgZXR0ZXIgbWFya/hyZW4gb2cgZ+UgdGlsCisgICAgICAgaW5uc2V0dGluZ3Ntb2R1cyAqKgogCi0gIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0CS0tLT4gIC4KKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KIAotICAyLiBTa3JpdiAgbyAgKGxpdGVuIG8pIGZvciDlIHN0YXJ0ZSBw5SBlbiBueSBsaW5qZSBuZWRlbmZvciBtYXJr+HJlbiBvZyBn5QotICAgICBvdmVyIHRpbCBpbm5zZXR0aW5nc21vZHVzLgorICAyLiBTa3JpdiAgbyAgKGxpdGVuIG8pIGZvciDlIOVwbmUgb3BwIGVuIGxpbmplIE5FREVORk9SIG1hcmv4cmVuIG9nIGflIGlubiBpCisgICAgIGlubnNldHRpbmdzbW9kdXMuCiAKLSAgMy4gS29waWVyIGxpbmplbiBzb20gZXIgbWVya2V0ICAtLS0+CW9nIHRyeWtrIDxFU0M+IGZvciDlIGF2c2x1dHRlCi0gICAgIGlubnNldHRpbmdzbW9kdXNlbi4KKyAgMy4gU2tyaXYgbGl0dCB0ZWtzdCBvZyB0cnlrayA8RVNDPiBmb3Ig5SBn5SB1dCBhdiBpbm5zZXR0aW5nc21vZHVzZW4uCiAKIC0tLT4gRXR0ZXIgYXQgIG8gIGVyIHNrcmV2ZXQgYmxpciBtYXJr+HJlbiBwbGFzc2VydCBw5SBkZW4gdG9tbWUgbGluamVuLgogCi0gIDQuIEZvciDlIGxhZ2UgZW4gbnkgbGluamUgT1ZFUiBtYXJr+HJlbiwgdHJ5a2sgcmV0dCBvZyBzbGV0dCBlbiBzdG9yIE8KLSAgICAgaXN0ZWRlbmZvciBlbiBsaXRlbiBvIC4gUHL4diBkZXR0ZSBw5SBsaW5qZW4gbmVkZW5mb3IuCi0tLS0+IExhZyBlbiBueSwgdG9tIGxpbmplIG92ZXIgZGVubmUgbWVkIFNoaWZ0LU8gbWVucyBtYXJr+HJlbiBzdOVyIHDlIGRlbi4KKyAgNC4gRm9yIOUg5XBuZSBlbiBueSBsaW5qZSBPVkVSIG1hcmv4cmVuLCB0cnlrayByZXR0IG9nIHNsZXR0IGVuIHN0b3IJTworICAgICBpc3RlZGVuZm9yIGVuIGxpdGVuICBvIC4gUHL4diBkZXR0ZSBw5SBsaW5qZW4gbmVkZW5mb3IuCisKKy0tLT4gTGFnIG55IGxpbmplIG92ZXIgZGVubmUgdmVkIOUgdHJ5a2tlIE8gbWVucyBtYXJr+HJlbiBlciBw5SBkZW5uZSBsaW5qZW4uCiAKIAogCkBAIC02NDcsMTM5ICs3NDAsMjA5IEBACiAKIAkgICAgKiogU2tyaXYgIGEgIGZvciDlIGxlZ2dlIHRpbCB0ZWtzdCBFVFRFUiBtYXJr+HJlbi4gKioKIAotICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBkZW4gZvhyc3RlIGxpbmplbiBtZXJrZXQgIC0tLT4gIHZlZCDlCi0gICAgIHRyeWtrZSAgJAlpIG5vcm1hbG1vZHVzZW4uCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBzdGFydGVuIGF2IGxpbmplbiBtZXJrZXQgLS0tPiBuZWRlbmZvci4KIAotICAyLiBUcnlrayAgYSAgKGxpdGVuIGEpIGZvciDlIGxlZ2dlIHRpbCB0ZWtzdCBFVFRFUiB0ZWduZXQgdW5kZXIgbWFya/hyZW4uCi0gICAgIChTdG9yIEEgbGVnZ2VyIHRpbCBw5SBzbHV0dGVuIGF2IGxpbmplbi4pCisgIDIuIFRyeWtrICBlICB0aWwgbWFya/hyZW4gZXIgcOUgc2x1dHRlbiBhdiCrbGm7LgogCi1NRVJLOiBEZXR0ZSBnavhyIGF0IGR1IHNsaXBwZXIg5SB0cnlra2UgIGkgICwgZGV0IHNpc3RlIHRlZ25ldCwgdGVrc3RlbiBzb20KLSAgICAgIHNrYWwgc2V0dGVzIGlubiwgPEVTQz4sIGj4eXJlcGlsIG9nIHRpbCBzaXN0LCAgeAliYXJlIGZvciDlIGxlZ2dlIHRpbAotICAgICAgcOUgc2x1dHRlbiBhdiBlbiBsaW5qZSEKKyAgMy4gVHJ5a2sgIGEgIChsaXRlbiBhKSBmb3Ig5SBsZWdnZSB0aWwgdGVrc3QgRVRURVIgbWFya/hyZW4uCiAKLSAgMy4gR2r4ciBmZXJkaWcgZGVuIPh2ZXJzdGUgbGluamVuLiBMZWdnIG1lcmtlIHRpbCBhdCCrbGVnZyB0aWy7IGVyIGRldCBzYW1tZQotICAgICBzb20gaW5uc2V0dGluZ3Ntb2R1c2VuLCBtZWQgZGVuIGZvcnNramVsbGVuIGh2b3IgdGVrc3RlbiBzZXR0ZXMgaW5uLgorICA0LiBGdWxsZvhyIG9yZGV0IHPlbm4gc29tIHDlIGxpbmplbiBuZWRlbmZvci4gVHJ5a2sgPEVTQz4gZm9yIOUgZ+UgdXQgYXYKKyAgICAgaW5uc2V0dGluZ3Ntb2R1c2VuLgogCi0tLS0+IFDlIGRlbm5lIGxpbmplbiBt5SBkZXQgbGVnZ2VzCi0tLS0+IFDlIGRlbm5lIGxpbmplbiBt5SBkZXQgbGVnZ2VzIHRpbCB0ZWtzdCBw5SBzbHV0dGVuLgorICA1LiBCcnVrICBlICBmb3Ig5SBn5SB0aWwgZGV0IG5lc3RlIHVmdWxsc3RlbmRpZ2Ugb3JkZXQgb2cgcmVwZXRlciBzdGVnIDMgb2cKKyAgICAgNC4KIAorLS0tPiBEZW5uZSBsaSBsYXIgZGVnIPh2ZSBw5SDlIGxlZyB0aWwgdGVrIHDlIGVuIGxpbmplLgorLS0tPiBEZW5uZSBsaW5qZW4gbGFyIGRlZyD4dmUgcOUg5SBsZWdnZSB0aWwgdGVrc3QgcOUgZW4gbGluamUuCisKK01lcms6IGEsIGkgb2cgQSBn5XIgYWxsZSB0aWwgZGVuIHNhbW1lIGlubnNldHRpbmdzbW9kdXNlbiwgZGVuIGVuZXN0ZQorICAgICAgZm9yc2tqZWxsZW4gZXIgaHZvciB0ZWduZW5lIGJsaXIgc2F0dCBpbm4uCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgTGVrc2pvbiA2LjM6IEVOIEFOTkVOIE3FVEUgxSBFUlNUQVRURSBQxQorCisKKwkgICAqKiBTa3JpdiBlbiBzdG9yICBSCWZvciDlIGVyc3RhdHRlIG1lciBlbm4gZXR0IHRlZ24uICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+LiBGbHl0dCBtYXJr+HJlbgorICAgICB0aWwgYmVneW5uZWxzZW4gYXYgZGVuIGb4cnN0ZSCreHh4uy1lbi4KKworICAyLiBUcnlrayAgUiAgb2cgc2tyaXYgaW5uIHRhbGxldCBzb20gc3TlciBuZWRlbmZvciBw5SBkZW4gYW5kcmUgbGluamVuIHPlCisgICAgIGRldCBlcnN0YXR0ZXIgeHh4LgorCisgIDMuIFRyeWtrIDxFU0M+IGZvciDlIGflIHV0IGF2IGVyc3RhdG5pbmdzbW9kdXNlbi4gTGVnZyBtZXJrZSB0aWwgYXQgcmVzdGVuCisgICAgIGF2IGxpbmplbiBmb3JibGlyIHVmb3JhbmRyZXQuCisKKyAgNC4gUmVwZXRlciBzdGVnZW5lIGZvciDlIGVyc3RhdHRlIGRlbiBnamVuduZyZW5kZSB4eHguCisKKy0tLT4gVmVkIOUgbGVnZ2UgMTIzIHRpbCB4eHggZuVyIHZpIHh4eC4KKy0tLT4gVmVkIOUgbGVnZ2UgMTIzIHRpbCA0NTYgZuVyIHZpIDU3OS4KKworTUVSSzogRXJzdGF0bmluZ3Ntb2R1cyBlciBsaWsgaW5zZXR0aW5nc21vZHVzLCBtZW4gaHZlcnQgdGVnbiBzb20gc2tyaXZlcworICAgICAgZXJzdGF0dGVyIGV0IGVrc2lzdGVyZW5kZSB0ZWduLgogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICBMZWtzam9uIDYuMzogRU4gQU5ORU4gVkVSU0pPTiBBViCrRVJTVEFUVLsKKwkJICAgIExla3Nqb24gNi40OiBLT1BJRVJFIE9HIExJTUUgSU5OIFRFS1NUCiAKIAotCSAgICoqIFNrcml2ICBSCWZvciDlIGVyc3RhdHRlIG1lciBlbm4gZXR0IHRlZ24uICoqCisgICAgKiogQnJ1ayB5LW9wZXJhdG9yZW4gZm9yIOUga29waWVyZSB0ZWtzdCBvZyAgcCAgZm9yIOUgbGltZSBkZW4gaW5uICoqCiAKLSAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAgLS0tPiAgLgorICAxLiBH5SB0aWwgbGluamVuIG1lcmtldCAtLS0+IG5lZGVuZm9yIG9nIHBsYXNzZXIgbWFya/hyZW4gZXR0ZXIgq2Epuy4KIAotICAyLiBQbGFzc2VyIG1hcmv4cmVuIHDlIGJlZ3lubmVsc2VuIGF2IGRldCBm+HJzdGUgb3JkZXQgc29tIGVyIGZvcnNramVsbGlnCi0gICAgIGZyYSBkZW4gYW5kcmUgbGluamVuIG1lcmtldCAgLS0tPgkob3JkZXQgq3Npc3RluykuCisgIDIuIEflIGlubiBpIHZpc3VlbGwgbW9kdXMgbWVkICB2ICBvZyBmbHl0dCBtYXJr+HJlbiB0aWwgbGlrZSBm+HIgq2b4cnN0ZbsuCiAKLSAgMy4gVHJ5a2sgIFIgIG9nIGVyc3RhdHQgcmVzdGVuIGF2IGxpbmplbiBtZWQgZGVuIHNhbW1lIHRla3N0ZW4gc29tIHN05XIgcOUKLSAgICAgZGVuIGFuZHJlIGxpbmplbi4KKyAgMy4gVHJ5a2sgIHkgIGZvciDlIGtvcGllcmUgKGVuZ2Vsc2s6IKt5YW5ruykgZGVuIHV0aGV2ZWRlIHRla3N0ZW4uCiAKLS0tLT4gRm9yIOUgZ2r4cmUgZGVuIGb4cnN0ZSBsaW5qZW4gbGlrIGRlbiBhbmRyZSwgbeUgYm9rc3RhdmVuIHN0b3IgUiBicnVrZXMuCi0tLS0+IEZvciDlIGdq+HJlIGRlbiBm+HJzdGUgbGluamVuIGxpayBkZW4gYW5kcmUsIHRyeWtrIFIgb2cgZGVuIG55ZSB0ZWtzdGVuLgorICA0LiBGbHl0dCBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBkZW4gbmVzdGUgbGluamVuOiAgaiQKIAotICA0LiBMZWdnIG1lcmtlIHRpbCBhdCBu5XIgZHUgdHJ5a2tlciA8RVNDPiBmb3Ig5SBhdnNsdXR0ZSwgYmV2YXJlcyB0ZWtzdGVuCi0gICAgIHNvbSBpa2tlIGVyIHJlZGlnZXJ0LgorICA1LiBUcnlrayAgcCAgZm9yIOUgbGltZSBpbm4gdGVrc3Rlbi4gVHJ5a2sgZGVyZXR0ZXI6CWEgYW5kcmUgPEVTQz4gLgogCisgIDYuIEJydWsgdmlzdWVsbCBtb2R1cyBmb3Ig5SB2ZWxnZSCrIHZhbGdldC67LCBrb3BpZXIgZGV0IG1lZAl5ICwgZ+UgdGlsCisgICAgIHNsdXR0ZW4gYXYgZGVuIG5lc3RlIGxpbmplbiBtZWQgIGokICBvZyBsZWdnIGlubiB0ZWtzdGVuIGRlciBtZWQgIHAgLgogCistLS0+IGEpIERldHRlIGVyIGRldCBm+HJzdGUgdmFsZ2V0LgorICAgICBiKQogCi0KK01lcms6IER1IGthbiBvZ3PlIGJydWtlICB5ICBzb20gZW4gb3BlcmF0b3I7ICB5dyAga29waWVyZXIgZXR0IG9yZC4KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCQkJICAgIExla3Nqb24gNi40OiBTRVRUIFZBTEcKKwkJCSAgICBMZWtzam9uIDYuNTogU0VUVCBWQUxHCiAKIAotICoqIFNldHQgZXQgdmFsZyBz5SBldCBz+GsgZWxsZXIgZXJzdGF0bmluZyBpZ25vcmVyZXIgc3RvcmUvc23lIGJva3N0YXZlci4gKioKKyAgKiogU2V0dCBldCB2YWxnIHPlIHP4ayBlbGxlciBlcnN0YXRuaW5nIGlnbm9yZXJlciBzdG9yZS9zbeUgYm9rc3RhdmVyLiAqKgogCi0gIDEuIExldCBldHRlciCraWdub3JluyB2ZWQg5SBza3JpdmU6Ci0gICAgIC9pZ25vcmUgPEVOVEVSPgotICAgICBSZXBldGVyIGZsZXJlIGdhbmdlciB2ZWQg5SB0cnlra2UJbiAgLgorICAxLiBMZXQgZXR0ZXIgq2lnbm9yZbsgdmVkIOUgc2tyaXZlOiAgL2lnbm9yZSA8RU5URVI+CisgICAgIFJlcGV0ZXIgZmxlcmUgZ2FuZ2VyIHZlZCDlIHRyeWtrZQluIC4KIAotICAyLiBTZXR0IKtpY7stdmFsZ2V0IChJZ25vcmUgQ2FzZSkgdmVkIOUgc2tyaXZlOgotICAgICA6c2V0IGljCisgIDIuIFNldHQgq2ljuy12YWxnZXQgKElnbm9yZSBDYXNlKSB2ZWQg5SBza3JpdmU6ICA6c2V0IGljCiAKLSAgMy4gTGV0IGV0dGVyIKtpZ25vcmW7IGlnamVuIHZlZCDlIHNrcml2ZTogIG4KLSAgICAgUmVwZXRlciBz+GtldCBmbGVyZSBnYW5nZXIgdmVkIOUgdHJ5a2tlICBuICAuCisgIDMuIFP4ayBldHRlciCraWdub3JluyBpZ2plbiB2ZWQg5SB0cnlra2UgIG4gLgorICAgICBMZWdnIG1lcmtlIHRpbCBhdCBi5WRlIKtJZ25vcmW7IG9nIKtJR05PUkW7IGJsaXIgZnVubmV0LgogCi0gIDQuIFNldHQgq2hsc2VhcmNouy0gb2cgq2luY3NlYXJjaLstdmFsZ2VuZToKLSAgICAgOnNldCBobHMgaXMKKyAgNC4gU2V0dCCraGxzZWFyY2i7LSBvZyCraW5jc2VhcmNouy12YWxnZW5lOiAgOnNldCBobHMgaXMKIAotICA1LiBTa3JpdiBz+Gtla29tbWFuZG9lbiBpZ2plbiwgb2cgc2UgaHZhIHNvbSBza2plcjoKLSAgICAgL2lnbm9yZSA8RU5URVI+CisgIDUuIFNrcml2IHP4a2Vrb21tYW5kb2VuIGlnamVuIG9nIHNlIGh2YSBzb20gc2tqZXI6ICAvaWdub3JlIDxFTlRFUj4KIAotICA2LiBIdmlzIGR1IHZpbCBzbOUgYXYgdXRoZXZpbmdlbiBw5SBz+GtldGVrc3Rlbiwgc2tyaXYgIDpub2hsc2VhcmNoCisgIDYuIEZvciDlIHNs5SBhdiBpZ25vcmVyaW5nIGF2IHN0b3JlL3Nt5SBib2tzdGF2ZXIsIHNrcml2OiAgOnNldCBub2ljCisKK01lcms6IEZvciDlIGZqZXJuZSB1dGhldmluZ2VuIGF2IHRyZWZmLCBza3JpdjoJOm5vaGxzZWFyY2gKK01lcms6IEh2aXMgZHUgdmlsIGlnbm9yZXJlIHN0b3JlL3Nt5SBib2tzdGF2ZXIgZm9yIGt1biBlbiBz+Gtla29tbWFuZG8sIGJydWsKKyAgICAgIFxjICBpIHV0dHJ5a2tldDoJL2lnbm9yZVxjIDxFTlRFUj4KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiA2CiAKKyAgMS4gVHJ5a2sgIG8gIGZvciDlIGxlZ2dlIHRpbCBlbiBsaW5qZSBORURFTkZPUiBtYXJr+HJlbiBvZyBn5SBpbm4gaQorICAgICBpbm5zZXR0aW5nc21vZHVzLgorICAgICBUcnlrayAgTyAgZm9yIOUg5XBuZSBlbiBsaW5qZSBPVkVSIG1hcmv4cmVuLgogCi0gIDEuIFRyeWtrICBvICBmb3Ig5SBsZWdnZSB0aWwgZW4gbGluamUgTkVERU5GT1IgbWFya/hyZW4gb2cgcGxhc3NlcmUgbWFya/hyZW4KLSAgICAgcOUgZGVuIG55ZSBsaW5qZW4gaSBpbm5zZXR0aW5nc21vZHVzLgotICAgICBIdmlzIGR1IHRyeWtrZXIgZW4gc3RvciBPIOVwbmVzIGxpbmplbiBPVkVSIGxpbmplbiBtYXJr+HJlbiBzdOVyIHDlLgorICAyLiBTa3JpdiAgYSAgZm9yIOUgc2V0dGUgaW5uIHRla3N0IEVUVEVSIG1hcmv4cmVuLgorICAgICBTa3JpdiAgQSAgZm9yIOUgc2V0dGUgaW5uIHRla3N0IGV0dGVyIHNsdXR0ZW4gYXYgbGluamVuLgogCi0gIDIuIFNrcml2IGVuICBhICBmb3Ig5SBzZXR0ZSBpbm4gdGVrc3QgRVRURVIgdGVnbmV0IG1hcmv4cmVuIGVyIHDlLgotICAgICBFbiBzdG9yIEEgdmlsIGxlZ2dlIHRpbCB0ZWtzdCBw5SBzbHV0dGVuIGF2IGxpbmplbi4KKyAgMy4gS29tbWFuZG9lbiAgZSAgZ+VyIHRpbCBzbHV0dGVuIGF2IGV0IG9yZC4KIAotICAzLiBWZWQg5SB0cnlra2UgIFIgIGZvciBn5XIgaW5uIGkgZXJzdGF0bmluZ3Ntb2R1cyBoZWx0IHRpbCA8RVNDPiB0cnlra2VzCi0gICAgIGZvciDlIGF2c2x1dHRlIG1vZHVzZW4uCisgIDQuIE9wZXJhdG9yZW4gIHkgICireWFua7spIGtvcGllcmVyIHRla3N0LCAgcCAgKKtwYXN0ZbspIGxpbWVyIGRlbiBpbm4uCiAKLSAgNC4gU2tyaXYgIDpzZXQgeHh4ICBmb3Ig5SBzZXR0ZSB2YWxnZXQgq3h4eLsuCisgIDUuIFZlZCDlIHRyeWtrZSAgUiAgZ+VyIGR1IGlubiBpIGVyc3RhdG5pbmdzbW9kdXMgaGVsdCB0aWwgIDxFU0M+ICB0cnlra2VzLgogCisgIDYuIFNrcml2IKs6c2V0IHh4eLsgZm9yIOUgc2V0dGUgdmFsZ2V0IKt4eHi7LiBOb2VuIHZhbGcgZXI6CisJq2ljuyCraWdub3JlY2FzZbsJaWdub3JlciBzdG9yZS9zbeUgYm9rc3RhdmVyIHVuZGVyIHP4aworCatpc7sgq2luY3NlYXJjaLsJdmlzIGRlbHZpc2UgdHJlZmYgZm9yIGVuIHP4a2V0ZWtzdAorCatobHO7IKtobHNlYXJjaLsJdXRoZXYgYWxsZSBz+GtldHJlZmYKIAotCi0KLQotCi0KKyAgNy4gTGVnZyB0aWwgq25vuyBmb3JhbiB2YWxnZXQgZm9yIOUgc2zlIGRldCBhdjogIDpzZXQgbm9pYwogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICBMRUtTSk9OIDc6IFRJTEdKRU5HRUxJR0UgSEpFTFBFS09NTUFORE9FUgorCQkJICAgIExla3Nqb24gNy4xOiBGxSBISkVMUAogCiAKLQkJICAqKiBCcnVrIGRldCBpbm5lYnlnZ2VkZSBoamVscGVzeXN0ZW1ldC4gKioKKwkJICAgKiogQnJ1ayBkZXQgaW5uZWJ5Z2RlIGhqZWxwZXN5c3RlbWV0LiAqKgogCiAgIFZpbSBoYXIgZXQgb21mYXR0ZW5kZSBpbm5lYnlnZ2V0IGhqZWxwZXN5c3RlbS4gRm9yIOUgc3RhcnRlIGRldCwgcHL4diBlbiBhdgogICBkaXNzZSBt5XRlbmU6Ci0gICAgLSBUcnlrayBIamVscC10YXN0ZW4gKGh2aXMgZHUgaGFyIG5vZW4pCi0gICAgLSBUcnlrayBGMS10YXN0ZW4gKGh2aXMgZHUgaGFyIG5vZW4pCisgICAgLSBUcnlrayBIamVscC10YXN0ZW4gKGh2aXMgZHUgaGFyIGVuKQorICAgIC0gVHJ5a2sgRjEtdGFzdGVuIChodmlzIGR1IGhhciBlbikKICAgICAtIFNrcml2ICA6aGVscCA8RU5URVI+CiAKLSAgU2tyaXYgIDpxIDxFTlRFUj4gIGZvciDlIGx1a2tlIGhqZWxwZXZpbmR1ZXQuCisgIExlcyB0ZWtzdGVuIGkgaGplbHBldmluZHVldCBmb3Ig5SBmaW5uZSB1dCBodm9yZGFuIGhqZWxwZW4gdmlya2VyLgorICBTa3JpdiAgQ1RSTC1XIENUUkwtVwlmb3Ig5SBob3BwZSBmcmEgZXQgdmluZHUgdGlsIGV0IGFubmV0CisgIFNrcml2ICA6cSA8RU5URVI+CWZvciDlIGx1a2tlIGhqZWxwZXZpbmR1ZXQuCiAKLSAgRHUga2FuIGblIGhqZWxwIHDlIG9tdHJlbnQgYWxsZSB0ZW1hZXIgb20gVmltIHZlZCDlIHNrcml2ZSBldCBwYXJhbWV0ZXIgdGlsCi0gIKs6aGVscLsta29tbWFuZG9lbi4gUHL4diBkaXNzZSAoaWtrZSBnbGVtIEVudGVyIGV0dGVyIGh2ZXIpOgorICBEdSBrYW4gZuUgaGplbHAgZm9yIG9tdHJlbnQgYWxsZSB0ZW1hZXIgb20gVmltIHZlZCDlIHNrcml2ZSBldCBwYXJhbWV0ZXIgdGlsCisgIKs6aGVscLsta29tbWFuZG9lbi4gUHL4diBkaXNzZSAoaWtrZSBnbGVtIOUgdHJ5a2tlIDxFTlRFUj4pOgogCiAgICAgOmhlbHAgdwotICAgIDpoZWxwIGM8VAorICAgIDpoZWxwIGNfQ1RSTC1ECiAgICAgOmhlbHAgaW5zZXJ0LWluZGV4CiAgICAgOmhlbHAgdXNlci1tYW51YWwKLQotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQkJICAgICAgTEVLU0pPTiA4OiBMQUcgRVQgT1BQU1RBUlRTU0tSSVBUCisJCSAgICAgTGVrc2pvbiA3LjI6IExBRyBFVCBPUFBTVEFSVFNTS1JJUFQKIAogCi0JCQkqKiBTbOUgcOUgZnVua3Nqb25lciBpIFZpbS4gKioKKwkJCSoqIFNs5SBw5SBmdW5rc2pvbmVyIGkgVmltICoqCiAKICAgVmltIGhhciBtYW5nZSBmbGVyZSBmdW5rc2pvbmVyIGVubiBWaSwgbWVuIGZsZXN0ZXBhcnRlbiBhdiBkZW0gZXIgc2zldHQgYXYKLSAgc29tIHN0YW5kYXJkLiBGb3Ig5SBiZWd5bm5lIOUgYnJ1a2UgZGVtIGthbiBkdSBsYWdlIGVuIKt2aW1yY7stZmlsLgorICBzb20gc3RhbmRhcmQuIEZvciDlIGJlZ3lubmUg5SBicnVrZSBmbGVyZSBmdW5rc2pvbmVyIG3lIGR1IGxhZ2UgZW4KKyAgq3ZpbXJjuy1maWwuCiAKLSAgMS4gU3RhcnQgcmVkaWdlcmluZ2VuIGF2IKt2aW1yY7stZmlsZW4sIGRldHRlIGF2aGVuZ2VyIGF2IHN5c3RlbWV0IGRpdHQ6Ci0gICAgICAgOmVkaXQgfi8udmltcmMJICBmb3IgVU5JWAotICAgICAgIDplZGl0ICRWSU0vX3ZpbXJjICBmb3IgTVMgV2luZG93cworICAxLiBTdGFydCByZWRpZ2VyaW5nZW4gYXYgq3ZpbXJjuy1maWxlbi4gRGV0dGUgYXZoZW5nZXIgYXYgc3lzdGVtZXQgZGl0dDoKKwk6ZSB+Ly52aW1yYwkgIGZvciBVbml4CisJOmUgJFZJTS9fdmltcmMJICBmb3IgTVMgV2luZG93cwogCiAgIDIuIExlcyBpbm4gZWtzZW1wZWxmaWxlbiBmb3Igq3ZpbXJjuzoKLSAgICAgICA6cmVhZCAkVklNUlVOVElNRS92aW1yY19leGFtcGxlLnZpbQorCTpyICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCiAKICAgMy4gTGFncmUgZmlsZW4gbWVkOgotICAgICAgIDp3cml0ZQorCTp3CiAKLSAgTmVzdGUgZ2FuZyBkdSBzdGFydGVyIFZpbSB2aWwgZGVuIGJydWtlIGZhcmdlciBvZyB1dGhldmluZyBpIGhlbmhvbGQgdGlsCi0gIHN5bnRha3NlbiBpIGZpbGVuLiBWZWQg5SBsZWdnZSBpbm4gZm9yc2tqZWxsaWdlIHZhbGcgaSCrdmltcmO7LWZpbGVuLCBrYW4gZHUKLSAgZm9yYW5kcmUgb3Bwc2V0dGV0IGkgVmltIHRpbCBkZXQgZHUgZm9yZXRyZWtrZXIuCisgIE5lc3RlIGdhbmcgZHUgc3RhcnRlciBWaW0gdmlsIGRlbiBicnVrZSBzeW50YWtzLXV0aGV2aW5nLiBEdSBrYW4gbGVnZ2UgdGlsCisgIGFsbGUgZGluZSBmb3JldHJ1a25lIG9wcHNldHQgaSBkZW5uZSCrdmltcmO7LWZpbGVuLgorICBGb3IgbWVyIGluZm9ybWFzam9uLCBza3JpdiAgOmhlbHAgdmltcmMtaW50cm8KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgTGVrc2pvbiA3LjM6IEZVTExG2FJJTkcKKworCisJICAgICAgKiogS29tbWFuZG9saW5qZWZ1bGxm+HJpbmcgbWVkIENUUkwtRCBvZyA8VEFCPiAqKgorCisgIDEuIFbmciBzaWtrZXIgcOUgYXQgVmltIGlra2UgZXIgaSBWaS1rb21wYXRpYmVsIG1vZHVzOiAgOnNldCBub2NwCisKKyAgMi4gU2UgaHZpbGtlIGZpbGVyIHNvbSBlciBpIGthdGFsb2dlbjogIDohbHMJZWxsZXIgIDohZGlyCisKKyAgMy4gU2tyaXYgc3RhcnRlbiBw5SBlbiBrb21tYW5kbzogIDplCisKKyAgNC4gVHJ5a2sgIENUUkwtRCAgb2cgVmltIHZpbCB2aXNlIGVuIGxpc3RlIG92ZXIga29tbWFuZG9lciBzb20gc3RhcnRlciBtZWQKKyAgICAgq2W7LgorCisgIDUuIFRyeWtrICA8VEFCPiAgb2cgVmltIHZpbCBmdWxsZvhyZSBrb21tYW5kb25hdm5ldCB0aWwgqzplZGl0uy4KKworICA2LiBMZWdnIHRpbCBldCBtZWxsb21yb20gb2cgc3RhcnRlbiBw5SBldCBla3Npc3RlcmVuZGUgZmlsbmF2bjogIDplZGl0IEZJTAorCisgIDcuIFRyeWtrIDxUQUI+LiBWaW0gdmlsIGZ1bGxm+HJlIG5hdm5ldCAoaHZpcyBkZXQgZXIgdW5pa3QpLgorCitNRVJLOiBGdWxsZvhyaW5nIGZ1bmdlcmVyIGZvciBtYW5nZSBrb21tYW5kb2VyLiBQcvh2IHZlZCDlIHRyeWtrZSBDVFJMLUQgb2cKKyAgICAgIDxUQUI+LiBEZXQgZXIgc3Blc2llbHQgbnl0dGlnIGZvciBicnVrIHNhbW1lbiBtZWQgIDpoZWxwIC4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiA3CisKKworICAxLiBTa3JpdiAgOmhlbHAgIGVsbGVyIHRyeWtrIDxGMT4gZWxsZXIgPEhlbHA+IGZvciDlIOVwbmUgZXQgaGplbHBldmluZHUuCisKKyAgMi4gU2tyaXYgIDpoZWxwIGtvbW1hbmRvICBmb3Ig5SBm5SBoamVscCBvbSAga29tbWFuZG8gLgorCisgIDMuIFRyeWtrICBDVFJMLVcgQ1RSTC1XICBmb3Ig5SBob3BwZSB0aWwgZXQgYW5uZXQgdmluZHUuCisKKyAgNC4gVHJ5a2sgIDpxCWZvciDlIGx1a2tlIGhqZWxwZXZpbmR1ZXQuCisKKyAgNS4gT3BwcmV0dCBldCB2aW1yYy1vcHBzdGFydHNza3JpcHQgZm9yIOUgbGFncmUgZmF2b3JpdHR2YWxnZW5lIGRpbmUuCisKKyAgNi4gTuVyIGR1IHNrcml2ZXIgZW4gqzq7LWtvbW1hbmRvLCB0cnlrayBDVFJMLUQgZm9yIOUgc2UgbXVsaWdlCisgICAgIGZ1bGxm+HJpbmdlci4gVHJ5a2sgPFRBQj4gZm9yIOUgYnJ1a2UgZW4gZnVsbGb4cmluZy4KKworCisKKworCisKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKICAgSGVyIHNsdXR0ZXIgaW5uZvhyaW5nZW4gaSBWaW0uIERlbiB2YXIgbWVudCBzb20gZW4gcmFzayBvdmVyc2lrdCBvdmVyCiAgIGVkaXRvcmVuLCBha2t1cmF0IG5vayB0aWwg5SBsYSBkZWcgc2V0dGUgaSBnYW5nIG1lZCBlbmtlbCBicnVrLiBEZW4gZXIgcOUKICAgbGFuZ3QgbuZyIGtvbXBsZXR0LCBkYSBWaW0gaGFyIG1hbmdlIGZsZXJlIGtvbW1hbmRvZXIuIExlcyBicnVrc2FudmlzbmluZ2VuCkBAIC03ODgsOCArOTUxLDggQEAKICAgRm9yIHZpZGVyZSBsZXNpbmcgb2cgc3R1ZGllciwga2FuIGRlbm5lIGJva2VuIGFuYmVmYWxlczoKICAgICAgIKtWaW0gLSBWaSBJbXByb3ZlZLsgYXYgU3RldmUgT3VhbGxpbmUKICAgICAgIFV0Z2l2ZXI6IE5ldyBSaWRlcnMKLSAgRGVuIGb4cnN0bmV2bnRlIGJva2VuIGVyIGZ1bGx0IG9nIGhlbHQgZGVkaWtlcnQgdGlsIFZpbS4gU3Blc2llbHQgbnl0dGlnCi0gIGZvciBueWJlZ3lubmVyZS4gSW5uZWhvbGRlciBtYW5nZSBla3NlbXBsZXIgb2cgaWxsdXN0cmFzam9uZXIuCisgIERlbiBm+HJzdGUgYm9rZW4gc29tIGVyIGZ1bGx0IG9nIGhlbHQgZGVkaXNlcnQgdGlsIFZpbS4gU3Blc2llbHQgbnl0dGlnIGZvcgorICBueWJlZ3lubmVyZS4gSW5uZWhvbGRlciBtYW5nZSBla3NlbXBsZXIgb2cgaWxsdXN0cmFzam9uZXIuCiAgIFNlIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCiAKICAgRGVubmUgYm9rZW4gZXIgZWxkcmUgb2cgaGFuZGxlciBtZXIgb20gVmkgZW5uIFZpbSwgbWVuIGFuYmVmYWxlcyBvZ3PlOgpAQCAtODAwLDExICs5NjMsMTEgQEAKIAogICBEZW5uZSBpbm5m+HJpbmdlbiBlciBza3JldmV0IGF2IE1pY2hhZWwgQy4gUGllcmNlIG9nIFJvYmVydCBLLiBXYXJlLAogICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgbWVkIGlk6WVyIGF2IENoYXJsZXMgU21pdGgsIENvbG9yYWRvIFN0YXRlCi0gIFVuaXZlcnNpdHkuIEVtYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUgLgorICBVbml2ZXJzaXR5LiBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdSAuCiAKICAgTW9kaWZpc2VydCBmb3IgVmltIGF2IEJyYW0gTW9vbGVuYWFyLgotICBPdmVyc2F0dCBhdiDYeXZpbmQgQS4gSG9sbSAtLSBzdW5ueSBfQVRfIHN1bmJhc2Uub3JnCi0gIHR1dG9yLm5vIDI3OSAyMDA0LTA1LTEyIDA5OjIxOjUzWiBzdW5ueQorICBPdmVyc2F0dCBhdiDYeXZpbmQgQS4gSG9sbS4gRS1tYWlsOiB2aW10dXRvciBfQVRfIHN1bmJhc2Uub3JnCisgIElkOiB0dXRvci5ubyA0MDYgMjAwNy0wMy0xOCAyMjo0ODozNlogc3VubnkKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiB2aW06IHNldCB0cz04IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3Iuc2sudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLnNrLnV0Zi04Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0ZTBjNGYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnNrLnV0Zi04CkBAIC0wLDAgKzEsMTAwOCBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPSAgICBWIGkgdCBhIGogdCBlICAgdiBvICAgViBJIE0gICBUIHUgdCBvIHIgaSBhIGwgaSAgICAtICAgIFZlcnppYSAxLjcgICAgICAgPQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIFZpbSBqZSB2ZcS+bWkgdsO9a29ubsO9IGVkaXRvciwga3RvcsO9IG3DoSBwcsOtbGnFviB2ZcS+YSBwcsOta2F6b3YgbmEgdG8gYWJ5CisgICAgIG1vaGxpIGJ5dCB2xaFldGt5IHBvcMOtc2Fuw6kgdm8gdsO9dWtlIGFrb3UgamUgdMOhdG8uIFTDoXRvIHbDvXVrYQorICAgICBwb3Bpc3VqZSBkb3N0YXRvxI1uw6kgbW5vxb5zdHZvIHByw61rYXpvdiBuYXRvIGFieSBib2xvIG1vxb5uw6kgcG91xb7DrXZhxaUKKyAgICAgVmltIGFrbyB2aWFjw7rEjWVsb3bDvSBlZGl0b3IuCisKKyAgICAgUHJpYmxpxb5uw70gxI1hcyBwb3RyZWJuw70gbmEgcHJlYnJhdGllIHRlanRvIHbDvXVreSBqZSAyNS0zMCBtaW7DunQsCisgICAgIHrDoXZpc8OtIG5hIHRvbSwga2/EvmtvIGplIHN0csOhdmVuw6lobyDEjWFzdSBzIHByZXNrw7rFoWF2YW7DrW0uCisKKyAgICAgVVBPWk9STkVOSUU6CisgICAgIFByw61rYXp5IHYgbGVrY2nDoWNoIG1vZGlmaWt1asO6IHRleHQuIFZ5dHZvciBrw7NwaXUgdG9odG8gc8O6Ym9ydSBhYnkKKyAgICAgc2EgbW9obG8gcHJlY3ZpxI1vdmHFpSBuYSDFiG9tIChwcmkgxaF0YXJ0ZSAidmltdHV0b3IiIGplIHRvdG8ga8OzcGlhKS4KKworICAgICBKZSBkw7RsZcW+aXTDqSB6YXBhbcOkdGHFpSBzaSwgxb5lIHTDoXRvIHbDvXVrYSBqZSB2eXR2b3JlbsOhIHByZSB2w711a3UKKyAgICAgcG91xb7DrXZhbsOtbS4gVG8gem5hbWVuw6EsIMW+ZSBqZSBwb3RyZWJuw6kgc2kgcHLDrWthenkgdnlza8O6xaFhxaUsIGFieSBib2xvCisgICAgIHXEjWVuaWUgc3Byw6F2bmUuIEFrIGxlbiDEjWl0YXMgdGV4dCwgcHLDrWthenkgemFidWRuZcWhIQorCisgICAgIFByZXN2ZWTEjSBzYSwgxb5lIFNoaWZ0LUxvY2sgTklFSkUgc3RsYcSNZW7DvSBhIHN0bGHEjXQga2zDoXZlc3UKKyAgICAgaiAgbmlla2/EvmtvIGtyw6F0LCBhYnkgc2Ega3Vyem9yIHBvc3VudWwgbmF0b8S+a28sIMW+ZSBsZWtjaWEgMS4xCisgICAgIGNlbGtvbSB6YXBsbsOtIG9icmF6b3ZrdS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZWtjaWEgMS4xOiAgUE9IWUIgS1VSWk9ST00KKworCisgICAqKiBQcmUgcG9oeWIga3Vyem9ydW0gc3RsYcSNIGtsw6F2ZXN5IGgsaixrLGwgYWtvIGplIHpuw6F6b3JuZW7DqS4gKioKKyAgICAgICAgXgorICAgICAgICBrICAgICAgICBGdW5rY2lhOiBLbMOhdmVzYSBoIGplIG5hxL5hdm8gYSB2eWtvbsOhIHBvaHliIGRvxL5hdmEuCisgICA8IGggICAgIGwgPiAgIEtsw6F2ZXNhIGwgamUgbmFwcmF2byBhIHZ5a29uw6EgcG9oeWIgZG9wcmF2YS4KKyAgICAgICAgaiAgICAgICAgS2zDoXZlc2EgaiB2eXplcsOhIGFrbyDFocOtcGthIGRvbGUKKwkgICAgICB2CisgIDEuIFBvaHlidWoga3Vyem9yb20gcG8gb2JyYXpvdmtlLCBrw71tIHNpIG5hIHRvIG5lenZ5a25lxaEuCisKKyAgMi4gRHLFviBzdGxhxI1lbsO6IGtsw6F2ZXN1IHByZSBwb2h5YiBkb2xlIChqKSwga8O9bSBzYSBqZWogZnVua2NpYSBuZXpvcGFrdWplLgorLS0tPiBUZXJheiBzYSB1xb4gdmllxaEgcG9oeWJvdmHFpSBuYSBuYXNsZWR1asO6Y3UgbGVrY2l1LgorCisgIDMuIFBvdcW+aXTDrW0ga2zDoXZlc3kgcHJlIHBvaHliIGRvbGUgcHJlamRpIG5hIExla2NpdSAxLjIuCisKK1Bvem7DoW1rYTogQWsgc2kgbmllc2kgaXN0w70gdMO9bSDEjW8gc2kgbmFww61zYWwsIHN0bGHEjSA8RVNDPgorCSAgICAgICAgbmEgcHJlY2hvZCBkbyBub3Jtw6FsbmVobyBtw7NkdS4KKworUG96bsOhbWthOiBLdXJ6b3JvdsOpIGtsw6F2ZXN5IHPDuiB0aWXFviBmdW5rxI1uw6kuIEFsZSBwb3XFvsOtdmFuw61tIGhqa2wgc2EgYnVkZcWhCisJICAgICAgICBzY2hvcG7DvSBwb2h5Ym92YcWlIHLDvWNobGVqxaFpZSwga2XEjyBzaSB6dnlrbmXFoSBpY2ggcG91xb7DrXZhxaUuIE5hb3phaiEKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgTEVLQ0lBIDEuMjogWkFUVsOBUkFOSUUgVklNVQorCisKKyAgISEgUE9aTsOBTUtBOiBQcmVkIHZ5a29uYW7DrW0gdMO9Y2h0byBrcm9rb3Ygc2kgcHJlxI3DrXRhaiBjZWzDuiB0w7p0byBsZWtjaXUgISEKKworICAxLiBTdGxhxI0ga2zDoXZlc3UgPEVTQz4gKGFieSBzaSBzYSB1xI1pdGUgbmFjaMOhZHphbCB2IG5vcm3DoWxub20gbcOzZGUpCisKKyAgMi4gTmFww63FoTogICA6cSEgPEVOVEVSPi4KKyAgICAgVMO9bSB1a29uxI3DrcWhIHByw6FjdSBzIGVkaXRvcm9tIEJFWiB1bG/FvmVuaWEgem1pZW4sIGt0b3LDqSBzaSB2eWtvbmFsLgorCisgIDMuIEtlxI8gc2EgZG9zdGFuZcWhIG5hIHByw61rYXpvdsO9IHJpYWRvaywgbmFww63FoSBwcsOta2F6LCBrdG9yw71tIHNhIGRvc3RhbmXFoQorICAgICBzcGXFpSBkbyB0ZWp0byB2w711a3kuIFRvIG3DtMW+ZSBiecWlOgl2aW10dXRvciA8RU5URVI+CisKKyAgNC4gQWsgc2kgc2kgdGlldG8ga3Jva3kgc3BvxL5haGxpdm8gemFwYW3DpHRhbCwgdnlrb25haiBrcm9reSAxIGHFviAzLCBwcmUKKyAgICAgdWtvbsSNZW5pZSBhIHpub3Z1IHNwdXN0ZW5pZSBlZGl0b3JhLgorCitQT1pOw4FNS0E6IDpxISA8RU5URVI+IG5ldWxvxb7DrSB6bWVueSwga3RvcsOpIHNpIHZ5a29uYWwuIE8gbmlla2/EvmtvIGxla2Npw60KKyAgICAgICAgICBzYSBuYXXEjcOtxaEgYWtvIHVsb8W+acWlIHptZW55IGRvIHPDumJvcnUKKworICA1LiBwcmVzdcWIIGt1cnpvciBkb2xlIG5hIGxla2NpdSAxLjMuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICBMZWtjaWEgMS4zOiBFRElUw4FDSUEgVEVYVFUgLSBNQVpBTklFCisKKworKiogU3RsYcSNZW5pZSBrbMOhdmVzeSAgeCAgdiBub3Jtw6Fsbm9tIG3Ds2RlIHptYcW+ZSB6bmFrIG5hIG1pZXN0ZSBrdXJ6b3JhLiAqKgorCisgIDEuIFByZXN1xYgga3Vyem9yIG5pxb7FoWllIG5hIHJpYWRvayBvem5hxI1lbsO9IHpuYcSNa291IC0tLT4uCisKKyAgMi4gQWJ5IHNpIG1vaG9sIG9kc3Ryw6FuacWlIGNoeWJ5LCBwb2h5YnVqIGt1cnpvcm9tIGvDvW0gbmVwcmVqZGUgbmEgem5haywKKyAgICAga3RvcsO9IGNoY2XFoSB6bWF6YcWlLgorCisgIDMuIFN0bGHEjSBrbMOhdmVzdSAgeCAgYWJ5IHNhIHptYXphbCBuZWNoY2Vuw70gem5hay4KKworICA0LiBab3Bha3VqIGtyb2t5IDIgYcW+IDQgYcW+IGvDvW0gdmV0YSBuaWVqZSBzcHLDoXZuYS4KKworLS0tPiBLcmFhdmEgc2tvb8SNaWxsYSBjY2V6eiBtZXNpaWFjLgorCisgIDUuIEFrIGplIHZldGEgc3Byw6F2bmEsIHByZWpkaSBuYSBsZWtjaXUgMS40LgorCitQT1pOw4FNS0E6IE5lc2vDusWhYWogc2kgemFwYW3DpHRhxaUgb2JzYWggdGVqdG8gdsO9dWt5LCBhbGUgc2EgdcSNIHBvdcW+w612YW7DrW0uCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICBMZWtjaWEgMS40OiBFRElUw4FDSUEgVEVYVFUgLSBWS0xBREFOSUUKKworCisgICAgKiogU3RsYcSNZW5pZSBrbMOhdmVzeSAgaSAgdW1vxb7FiHVqZSB2a2xhZGFuaWUgdGV4dHUuICoqCisKKyAgMS4gUHJlc3XFiCBrdXJ6b3IgbmnFvsWhaWUgbmEgcHJ2w70gcmlhZG9rIHphIHpuYcSNa3UgLS0tPi4KKworICAyLiBQcmUgdXByYXZlbmllIHBydsOpaG8gcmlhZGt1IGRvIHJvdm5ha8OpaG8gdHZhcnUgYWtvIGplIGRydWjDvSByaWFkb2ssCisgICAgIHByZXN1xYgga3Vyem9yIG5hIHBydsO9IHpuYWsgemEgbWlzdG8sIGtkZSBtw6EgYnnFpSB0ZXh0IHZsb8W+ZW7DvS4KKworICAzLiBTdGxhxI0ga2zDoXZlc3UgIGkgIGEgbmFww63FoSBwb3RyZWJuw70gdGV4dC4KKworICA0LiBQbyBvcHJhdmVuw60ga2HFvmRlaiBjaHlieSwgc3RsYcSNIDxFU0M+IHByZSBuw6F2cmF0IGRvIG5vcm3DoWxuZWhvIG3Ds2R1LgorICAgICBab3Bha3VqIGtyb2t5IDIgYcW+IDQga8O9bSBuaWVqZSB2ZXRhIHNwcsOhdm5hLgorCistLS0+IFR1IGplIHRleHQgY2jDvWJhasO6Y2kgdGVqdG8uCistLS0+IFR1IGplIG5lamFrw70gdGV4dCBjaMO9YmFqw7pjaSBvZCB0ZWp0byDEjWlhcnkuCisKKyAgNS4gS2XEjyBzYSBkb3N0YXRvxI1uZSBuYXXEjcOtxaEgdmtsYWRhxaUgdGV4dCwgcHJlamRpIG5hIG5hc2xlZHVqw7pjZSB6aHJudXRpZS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgICAgICAgTGVrY2lhIDEuNTogRURJVMOBQ0lBIFRFWFRVIC0gUFJJRMOBVkFOSUUKKworCisgICAgICoqIFN0bGHEjWVuaWUga2zDoXZlc3kgIEEgIHVtb8W+xYh1amUgcHJpZMOhdmHFpSB0ZXh0LiAqKgorCisgIDEuIFByZXN1xYgga3Vyb3pyIG5pxb7FoWllIG5hIHBydsO9IHJpYWRvayB6YSB6bmHEjWtvdSAtLS0+LgorICAgICBOZXrDoWxlxb7DrSBuYSB0b20sIG5hIGt0b3JvbSB6bmFrdSBzYSBrdXJ6b3IgdiB0b20gcmlhZGt1IG5hY2jDoWR6YS4KKworICAyLiBTdGxhxI0ga2zDoXZlc3UgIEEgIGEgbmFww63FoSBwb3RyZWJuw70gdGV4dC4KKworICAzLiBQbyBwcmlkYW7DrSB0ZXh0dSBzdGxhxI0ga2zDoXZlc3UgPEVTQz4gcHJlIG7DoXZyYXQgZG8gTm9ybcOhbG5laG8gbcOzZHUuCisKKyAgNC4gUHJlc3XFiCBrdXJvenIgbmEgZHJ1aMO9IHJpYWRvayBvem5hxI1lbsO9IC0tLT4gYSB6b3Bha3VqCisgICAgIGtyb2t5IDIgYSAzIGvDvW0gbmllamUgdmV0YSBzcHLDoXZuYS4KKworLS0tPiBUdSBqZSBuZWpha8O9IHRleHQgY2jDvWJhasO6Y2kgbworICAgICBUdSBqZSBuZWpha8O9IHRleHQgY2jDvWJhasO6Y2kgb2QgdGlhxL50by4KKy0tLT4gVHUgdGllxb4gY2jDvWJhIG5lagorICAgICBUdSB0aWXFviBjaMO9YmEgbmVqYWvDvSB0ZXh0LgorCisgIDUuIEtlxI8gc2EgZG9zdGF0b8SNbmUgbmF1xI3DrcWhIHByaWTDoXZhxaUgdGV4dCwgcHJlamRpIG5hIGxla2NpdSAxLjYuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgICAgICAgTGVrY2lhIDEuNjogRURJVMOBQ0lBIFPDmkJPUlUKKworCisgICAgKiogTmFww61zYW7DrW0gIDp3cSAgc2Egc8O6Ym9yIHVsb8W+w60gYSB6YXZyaWUgKioKKworISEgUE9aTsOBTUtBOiBQcmVkIHZ5a29uYW7DrW0gdMO9Y2h0byBrcm9rb3Ygc2kgcHJlxI3DrXRhaiBjZWzDuiBsZWtjaXUhIQorCisxLiBPcHVzdGkgdMO6dG8gdsO9dWt1LCBha28gc2kgdG8gdXJvYmlsIHYgbGVrY2lpIDEuMjogIDpxIQorCisyLiBEbyBwcsOta2F6b3bDqWhvIHJpYWRrdSBuYXDDrcWhIHByw61rYXo6ICB2aW0gdHV0b3IgPEVOVEVSPgorICAgJ3ZpbScgamUgcHLDrWtheiwga3RvcsO9IHNwdXN0w60gZWRpdG9yIFZpbSwgJ3R1dG9yJyBqZSBtZW5vIHPDumJvcnUsCisgICBrdG9yw70gY2hjZcWhIGVkaXRvdmHFpS4gUG91xb5pIHRha8O9IHPDumJvciwga3RvcsO9IG3DtMW+ZcWhIG1lbmnFpS4KKworMy4gVmxvxb4gYSB6bWHFviB0ZXh0IHRhaywgYWtvIHNpIHNhIG5hdcSNaWwgdiBwcmVkb8WhbMO9Y2ggbGVrY2lhY2guCisKKzQuIFVsb8W+IHPDumJvciBzbyB6bWVuYW1pIGEgb3B1c3RpIFZpbSBwcsOta2F6b206ICA6d3EgIDxFTlRFUj4KKworNS4gUmXFoXRhcnR1aiB2aW10dXRvciBhIHByZXN1xYggc2EgZG9sZSBuYSBuYXNsZWR1asO6Y2UgemhybnV0aWUuCisKKzYuIFVyb2IgdGFrIHBvIHByZcSNw610YW7DrSBwcmVkb8WhbMO9Y2gga3Jva292IGEgcG9yb3p1bWVuaXUgaW0uCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICAgWkhSTlVUSUUgTEVLQ0lFIDEKKworCisgIDEuIEt1cnpvciBzYSBwb2h5YnVqZSBwb3XFvml0w61tIGtsw6F2ZXMgc28gxaHDrXBrYW1pIGFsZWJvIGtsw6F2ZXNtaSBoamtsLgorCSAgaCAoZG8gbGF2YSkgICAgaiAoZG9sZSkgICAgayAoaG9yZSkgICAgbCAoZG9wcmF2YSkKKworICAyLiBQcmUgc3B1c3RlbmllIFZpbXUgKHogcHLDrWthem92w6lobyByaWFka3UpIG5hcMOtxaE6IHZpbSBGSUxFTkFNRSA8RU5URVI+CisKKyAgMy4gTmEgdWtvbsSNZW5pZSBWaW11IG5hcMOtxaE6IDxFU0M+ICA6cSEgIDxFTlRFUj4gcHJlIHpydcWhZW5pZSB2xaFldGvDvWNoIHptaWVuCisgICAgICAgYWxlYm8gbmFww63FoTogICA8RVNDPiAgIDp3cSAgIDxFTlRFUj4gICAgcHJlIHVsb8W+ZW5pZSB6bWllbi4KKworICA0LiBOYSB6bWF6YW5pZSB6bmFrdSBuYSBtaWVzdGUga3Vyem9yYSBuYXDDrcWhOiAgeAorCisgIDUuIFByZSB2bG/FvmVuaWUgdGV4dHUgbmEgbWllc3RlIGt1cnpvcmEgdiBub3Jtw6Fsbm9tIG3Ds2RlIG5hcMOtxaE6CisJIGkgICAgIG5hcMOtxaEgdmtsYWRhbsO9IHRleHQgICA8RVNDPiAgdmtsYWRhbmllIHByZWQga3Vyem9yCisgICBBICAgICBuYXDDrcWhIHByaWTDoXZhbsO9IHRleHQgIDxFWEM+ICB2a2xhZGFuaWUgemEgcmlhZG9rCisKK1BPWk7DgU1LQTogU3RsYcSNZW5pZSA8RVNDPiDFpWEgcHJlbWllc3Ruw60gZG8gbm9ybcOhbG5laG8gbcOzZHUgYWxlYm8genJ1xaHDrQorCSAgICAgICAgbmVqYWvDvSBuZWNoY2Vuw70gYSDEjWlhc3RvxI1uZSBkb2tvbsSNZW7DvSBwcsOta2F6LgorCitUZXJheiBwb2tyYcSNdWogbGVrY2lvdSAyLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJTGVrY2lhIDIuMTogTWF6YWNpZSBwcsOta2F6eQorCisKKwkgKiogTmFww61zYW5pZSBwcsOta2F6dSAgZHcgIHptYcW+ZSB6bmFreSBkbyBrb25jYSBzbG92YS4gKioKKworMS4gU3RsYcSNICA8RVNDPiAgYWJ5IHNpIGJvbCBiZXpwZcSNbmUgdiBub3Jtw6Fsbm9tIG3Ds2RlLgorCisyLiBQcmVzdcWIIGt1cnpvciBuacW+xaFpZSBuYSByaWFkb2sgb3puYcSNZW7DvSB6bmHEjWtvdSAtLS0+LgorCiszLiBQcmVzdcWIIGt1cnpvciBuYSB6YcSNaWF0b2sgc2xvdmEsIGt0b3LDqSBqZSBwb3RyZWJuw6kgem1hemHFpS4KKworNC4gTmFww63FoSAgZHcgIGFieSBzbG92byB6bWl6bG8uCisKK1BPWk7DgU1LQTogUMOtc21lbm8gZCBzYSB6b2JyYXrDrSBuYSBwb3NsZWRub20gcmlhZGt1IG9icmF6b3ZreSBrZcSPIGhvCisJICAgICAgICBuYXDDrcWhZcWhLiBWaW0gbmEgdGViYSBwb8SNa8OhLCBhYnkgc2kgbW9ob2wgbmFww61zYcWlCisgICAgICAgICAgcMOtc21lbm8gdy4gQWsgdmlkw63FoSBuaWXEjW8gaW7DqSBha28gIGQgLCB0YWsgc2kgbmFww61zYWwKKyAgICAgICAgICBuZXNwcsOhdm55IHpuYWs7IHN0bGHEjSAgPEVTQz4gIGEgemHEjW5pIHpub3ZhLgorCistLS0+IFR1IGplIG5pZWtvxL5rbyBzbG92IHrDoWJhdmEsIGt0b3LDqSBuaWUgcGF0cmlhIGxpc3QgZG8gdGVqdG8gdmV0eS4KKworNS4gWm9wYWt1aiBrcm9reSAzIGHFviA0IGvDvW0gdmV0YSBuaWVqZSBzcHLDoXZuYSBhIHByZWpkaSBuYSBsZWtjaXUgMi4yLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NpYSAyLjI6IFZJQUMgTUFaQUPDjUNIIFBSw41LQVpPVgorCisKKwkgKiogTmFww61zYW5pZSBwcsOta2F6dSBkJCAgem1hxb5lIHpuYWt5IGRvIGtvbmNhIHJpYWRrdSAqKgorCisxLiBTdGxhxI0gIDxFU0M+ICBhYnkgc2kgYm9sIGJlenBlxI1uZSB2IG5vcm3DoWxub20gbcOzZGUuCisKKzIuIFByZXN1xYgga3Vyem9yIG5pxb7FoWllIG5hIHJpYWRvayBvem5hxI1lbsO9IHpuYcSNa291IC0tLT4uCisKKzMuIFByZXN1xYgga3Vyem9yIG5hIGtvbmllYyBzcHLDoXZuZWogdmV0eSAoWkEgcHJ2w7ogYm9ka3UpLgorCis0LiBOYXDDrcWhICAgIGQkICAgIGFieSBzYSB6bWF6YWxpIHpuYWt5IGRvIGtvbmNhIHJpYWRrdS4KKworLS0tPiBOaWVrdG8gbmFww61zYWwga29uaWVjIHRvaHRvIHJpYWRrdSBkdmFrcsOhdC4ga29uaWVjIHRvaG90IHJpYWRrdSBkdmFrcsOhdC4KKworCis1LiBQcmVqZGkgbmEgbGVrY2l1IDIuMyBwcmUgcG9jaG9wZW5pZSB0b2hvIMSNbyBzYSBzdGFsby4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICBMZWtjaWEgMi4zOiBPUEVSw4FUT1JZIEEgUE9IWUJZCisKKyAgVmXEvmEgcHLDrWthem92LCBrdG9yw6kgbWVuaWEgdGV4dCBzw7ogb2R2b2RlbsOpIG9kIG9wZXLDoXRvcm92IGEgcG9oeWJvdi4KKyAgRm9ybcOhdCBwcmUgcHLDrWtheiBtYXphbmlhIGtsw6F2ZXNvdSAgZCAgamUgbmFzbGVkb3Zuw706CisKKyAgICBkICAgcG9oeWIKKworICBrZGU6CisgICAgZCAgICAgLSBqZSBtYXphY8OtIG9wZXLDoXRvcgorICAgIHBvaHliIC0gamUgdG8gxI1vIG9wZXLDoXRvciB2eWtvbsOhdmEgKHZ5cMOtc2Fuw6kgbmnFvsWhaWUpCisKKyAgS3LDoXRreSBsaXN0IHBvaHlib3Y6CisgICAgdyAtIGRvIHphxI1pYXRrdSDEj2FsxaFpZWhvIHNsb3ZhLCBva3JlbSBqZWhvIHBydsOpaG8gcMOtc21lbmEuCisgICAgZSAtIGRvIGtvbmNhIHRlcmFqxaFpZWhvIHNsb3ZhLCB2csOhdGFuZSBwb3NsZWRuw6lobyB6bmFrdS4KKyAgICAkIC0gZG8ga29uY2EgcmlhZGt1LCB2csOhdGFuZSBwb3NsZWRuw6lobyB6bmFrdQorCisgIFRha8W+ZSBuYXDDrXNhbsOtbSAgZGUgIHNhIHptYcW+ZSB2xaFldGtvIG9kIGt1cnpvcmEgZG8ga29uY2Egc2xvdmEuCisKK1BPWk7DgU1LQTogU3RsYcSNZW7DrW0gaWJhIHBvaHlidSB2IG5vcm3DoWxub20gbcOzZGUgYmV6IG9wZXLDoXRvcmEKKyAgICAgICAgICBzYSBwcmVzdW5pZSBrdXJ6b3IgdGFrIGFrbyBqZSB0byDFoXBlY2l2aWtvdmFuw6kuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjaWEgMi40OiBQb3XFvml0aWUgdmlhY27DoXNvYm7DqWhvIHBvaHlidQorCisKKyAgICoqIE5hcMOtc2Fuw61tIMSNw61zbGEgcHJlZCBwb2h5YiBobyB6b3Bha3VqZSB6YWRuw70gcG/EjWV0IGtyw6F0ICoqCisKKyAgMS4gUHJlc3XFiCBrdXJvenIgbmnFvsWhaWUgbmEgemHEjWlhdG9rIHJpYWRrdSBvem5hxI1lbsOpaG8gLS0tPi4KKworICAyLiBOYXDDrcWhICAydyAgYSBrdXJvenIgc2EgcHJlc3VuaWUgbyBkdmUgc2xvdsOhIHZwcmVkLgorCisgIDMuIE5hcMOtxaEgIDNlICBhIGt1cm96ciBzYSBwcmVzdW5pZSB2cHJlZCBuYSBrb25pZWMgdHJldGllaG8gc2xvdmEuCisKKyAgNC4gTmFww63FoSAgMCAgKG51bGEpIGEga3Vyb3pyIHNhIHByZXN1bmllIG5hIHphxI1pYXRvayByaWFka3UuCisKKyAgNS4gWm9wYWt1aiBrcm9reSAyIGEgMyBzIHLDtHpueW1pIMSNw61zbGFtaS4KKworLS0tPiBUb3RvIGplIHJpYWRvayBzbyBzbG92YW1pIHBvIGtvdHLDvWNoIHNhIG3DtMW+ZXRlIHBvaHlib3ZhxaUuCisKKyAgNi4gUHJlamRpIG5hIGxla2NpdSAyLjUuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgTGVrY2lhIDIuNTogUE9Vxb1JVElFIFZJQUNOw4FTT0JOw4lITyBNQVpBTklBIFBSRSBIUk9NQUROw4kgTUFaQU5JRQorCisKKyAgICAqKiBOYXDDrXNhbmllIMSNw61zbGEgc3BvbHUgcyBvcGVyw6F0b3JvbSBobyB6b3Bha3VqZSB6YWRhbsO9IHBvxI1ldCBrcsOhdCAqKgorCisgIFYga29tYmluw6FjaWkgb3BlcsOhdG9yb3YgbWF6YW5pYSBhIHBvaHlidSBzcG9tw61uYW7DqWhvIHZ5xaHFoWllIHZsb8W+IHBvxI1ldAorICBwcmVkIHBvaHliIHByZSBkb2NpZWxlbmllIGhyb21hZG7DqWhvIG1hemFuaWE6CisgICAgZCAgIMSNw61zbG8gICBwb2h5YgorCisgIDEuIFByZXN1xYgga3Vyem9yIG5hIHBydsOpIHNsb3ZvIHDDrXNhbsOpIFZFxL1Lw51NSSBQw41TTUVOQU1JCisgICAgIHYgcmlhZGt1IG96bmHEjWVub20gLS0tPi4KKworICAyLiBOYXDDrcWhICAyZHcgIGEgem1hxb5lxaEgZHZlIHNsb3bDoSBww61zYW7DqSBWRcS9S8OdTUkgUMONU01FTkFNSQorCisgIDMuIFpvcGFrdWoga3Jva3kgMSBhIDIgcyBwb3XFvml0w61tIHLDtHpuZWhvIMSNw61zbGEgdGFrIGFieSBzaSB6bWF6YWwgc2xvdsOhCisgICAgIHDDrXNhbsOpIHZlxL5rw71taSBww61zbWVuYW1pIGplZG7DvW0gcHLDrWthem9tLgorCistLS0+IFRlbnRvIEFCQyBERSByaWFkb2sgRkdISSBKSyBMTU4gT1Agc28gc2xvdmFtSSBqZSBRIFJTIFRVViB2eWNpc3RlbnkuCisKK1BPWk7DgU1LQTogxIzDrXNsbyBtZWR6aSBvcGVyw6F0b3JvbSAgZCAgYSBwb2h5Ym9tIGZ1bmd1amUgcG9kb2JuZSBha28gcHJpCisgICAgICAgICAgcG91xb5pdMOtIHMgcG9oeWJvbSBiZXogb3BlcsOhdG9yYS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgICAJCUxla2NpYSAyLjY6IE9QRVLDgUNJRSBTIFJJQURLQU1JCisKKworCSAgICAqKiBOYXDDrXNhbmllIHByw61rYXp1ICAgZGQgICB6bWHFvmUgY2Vsw70gcmlhZG9rLiAqKgorCitWemjEvmFkb20gbmEgZnJla3ZlbmNpdSBtYXphbmlhIGNlbMOpaG8gcmlhZGt1LCBzYSBhdXRvcmkgVmltdSByb3pob2RsaSwKK8W+ZSBidWRlIGplZG5vZHVjaMWhaWUgbWF6YcWlIGNlbMO9IHJpYWRvayBuYXDDrXNhbsOtbSBkdm9jaCBww61zbWVuIGQuCisKKzEuIFByZXN1xYgga3Vyem9yIG5hIGRydWjDvSByaWFkb2sgdiB0ZXh0ZSBuYSBzcG9kdS4KKzIuIE5hcMOtxaEgIGRkICBhYnkgc2kgem1hemFsIHJpYWRvay4KKzMuIFByZWpkaSBuYSDFoXR2cnTDvSByaWFkb2suCis0LiBOYXDDrcWhICAgMmRkICAgYWJ5IHNpIHptYXphbCBkdmEgcmlhZGt5LgorCisgICAgMSkgIFJ1xb5lIHPDuiDEjWVydmVuw6ksCisgICAgMikgIEJsYXRvIGplIHrDoWJhdm7DqSwKKyAgICAzKSAgRmlhbGt5IHPDuiBtb2Ryw6ksCisgICAgNCkgIE3DoW0gYXV0bywKKyAgICA1KSAgSG9kaW5reSB1a2F6dWrDuiDEjWFzLAorICAgIDYpICBDdWtvciBqZSBzbGFka8O9LAorICAgIDcpICBBIHRvIHNpIHR5LgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJTGVrY2lhIDIuNzogUFLDjUtBWiBVTkRPCisKKworKiogU3RsYcSNICB1ICBwcmUgdnLDoXRlbmllIHBvc2xlZG7DqWhvIHByw61rYXp1LCAgVSAgcHJlIMO6cHJhdnUgY2Vsw6lobyByaWFka3UuICoqCisKKzEuIFByZXN1xYgga3Vyem9yIG5pxb7FoWllIG5hIHJpYWRvayBvem5hxI1lbsO9IHpuYcSNa291IC0tLT4gYSBwcmVtaWVzdG5pIGhvIG5hCisgICBwcnbDuiBjaHlidS4KKzIuIE5hcMOtxaEgIHggIHByZSB6bWF6YW5pZSBwcnbDqWhvIG5lY2hjZW7DqWhvIHJpYWRrdS4KKzMuIFRlcmF6IG5hcMOtxaEgIHUgIMSNw61tIHZyw6F0w63FoSBzcMOkxaUgcG9zbGVkbmUgdnlrb25hbsO9IHByw61rYXouCis0LiBUZXJheiBvcHJhdiB2xaFldGt5IGNoeWJ5IG5hIHJpYWRrdSBwb3XFvml0w61tIHByw61rYXp1ICB4ICAuCis1LiBUZXJheiBuYXDDrcWhIHZlxL5rw6kgICBVICDEjcOtbSB2csOhdMOtxaEgcmlhZG9rIGRvIHDDtHZvZG7DqWhvIHN0YXZ1LgorNi4gVGVyYXogbmFww63FoSAgdSAgbmlla2/EvmtvIGtyw6F0LCDEjcOtbSB2csOhdMOtxaEgc3DDpMWlIHByw61rYXogVS4KKzcuIFRlcmF6IG5hcMOtxaEgQ1RSTC1SIChkcsW+IGtsw6F2ZXN1IENUUkwgc3RsYcSNZW7DuiBrw71tIHN0bMOhxI1hxaEgUikgbmlla2/EvmtvCisgICBrcsOhdCwgxI3DrW0gdnLDoXTDrcWhIHNww6TFpSBwcmVkdMO9bSB2csOhdGVuw6kgcHLDrWthenkgKHVuZG8geiB1bmRvKS4KKworLS0tPiBPcHByYXYgY2h5YmJ5IG5uYSB0b29tdG8gcmlhZGt1IGEgem1lZcWIIGljaCBwb21tb2NvdSB1bmRvLgorCisgIDguIFRpZXRvIHByw61rYXp5IHPDuiDEjWFzdG8gcG91xb7DrXZhbsOpLiBUZXJheiBwcmVqZGkgbmEgemhybnV0aWUgbGVrY2llIDIuCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIExFS0NJQSAyIFpIUk5VVElFCisKKworICAxLiBQcmUgem1hemFuaWUgem5ha292IG9kIGt1cnpvcmEgZG8ga29uY2Egc2xvdmEgbmFww63FoTogICBkdworCisgIDIuIFByZSB6bWF6YW5pZSB6bmFrb3Ygb2Qga3Vyem9yYSBkbyBrb25jYSByaWFka3UgbmFww63FoTogICBkJAorCisgIDMuIFByZSB6bWF6YW5pZSBjZWzDqWhvIHJpYWRrdSBuYXDDrcWhOiAgIGRkCisKKyAgNC4gUHJlIHpvcGFrb3ZhbmllIHBvaHlidSwgbmFww63FoSBwcmVkIG5laG8gxI3DrXNsbzogICAydworCisgIDUuIEZvcm3DoXQgcHJlIHDDrWthejoKKworICAgICAgIG9wZXLDoXRvciAgIFvEjcOtc2xvXSAgIHBvaHliCisgICAgIGtkZToKKyAgICAgICBvcGVyw6F0b3IgLSDEjW8gdHJlYmEgcm9iacWlLCBuYXByw61rbGFkICBkICBwcmUgem1hemFuaWUKKyAgICAgICBbxI3DrXNsb10gLSBqZSB2b2xpdGXEvm7DvSBwb8SNZXQgcHJlIG9wYWtvdmFuaWUgcG9oeWJ1CisgICAgICAgcG9oeWIgLSBwb2h5YiBwbyB0ZXh0ZSB2emjEvmFkb20gbmEgb3BlcsOhdG9yLCBuYXByw61rbGFkIHcgKHNsb3ZvKSwKKwkJJCAoZG8ga29uY2EgcmlhZGt1KSwgYXTEjy4KKworICA2LiBQcmUgcG9oeWIgbmEgemHEjWlhdG9rIHJpYWRrdSBwb3XFvmkgbnVsdTogIDAKKworICA3LiBQcmUgdnLDoXRlbmllIHNww6TFpSBwcmVkb8WhbGVqIG9wZXLDoWNpZSBuYXDDrcWhOgl1ICAgKG1hbMOpIHUpCisgICAgIFByZSB2csOhdGVuaWUgdsWhZXRrw71jaCDDunByYXYgbmEgcmlhZGt1IG5hcMOtxaE6ICAgIFUgICAodmXEvmvDqSBVKQorICAgICBQcmUgdnLDoXRlbmllIHZyw6F0ZW7DvWNoIMO6cHJhdiBuYXDDrcWhOgkgICAgICBDVFJMLVIKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgTGVrY2lhIDMuMTogUFLDjUtBWiBWTE/FvUnFpAorCisKKwkgICoqIE5hcMOtc2FuaWUgcHLDrWthenUgIHAgIHZsb8W+w60gcHNsZWRuw70gdsO9bWF6IHphIGt1cnpvci4gKioKKworICAxLiBQcmVzdcWIIGt1cnpvciBuacW+xaFpZSBuYSBwcnbDvSByaWFkb2sgdGV4dHUuCisKKyAgMi4gTmFww63FoSAgZGQgIMSNw61tIHptYcW+ZcWhIHJpYWRvayBhIHVsb8W+w63FoSBobyBkbyBidWZmZXJhIGVkaXRvcmEgVmltLgorCisgIDMuIFByZXN1xYgga3Vyem9yIHZ5xaHFoWllIHRhbSwga2FtIHptYXphbsO9IHJpYWRvayBwYXRyw60uCisKKyAgNC4gQWsgbmFww63FoWXFoSB2IG5vcm3DoWxub20gbcOzZGUgICBwICAgem1hemFuw70gcmlhZGsgc2Egdmxvxb7DrS4KKworICA1LiBab3Bha3VqIGtyb2t5IDIgYcW+IDQsIGvDvW0gcmlhZGt5IG5pZXPDuiB2IHNwcsOhdm5vbSBwb3JhZMOtLgorCistLS0+IGQpIFRpZcW+IHNhIGRva8Ohxb5lxaEgdnpkZWzDoXZhxaU/CistLS0+IGIpIEZpYWxreSBzw7ogbW9kcsOpLAorLS0tPiBjKSBJbnRlbGlnZW5jaWEgc2EgdnpkZWzDoXZhLAorLS0tPiBhKSBSdcW+ZSBzw7ogxI1lcnZlbsOpLAorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgICBMZWtjaWEgMy4yOiBQUsONS0FaIE5BSFJBREVOSUEKKworCisgICAgICoqIE5hcMOtc2Fuw61tICByeCAgc2EgbmFocmFkw60gem5hayBuYSBtaWVzdGUga3Vyem9yYSB6bmFrb20gIHggLiAqKgorCisgIDEuIFByZXN1xYgga3Vyem9yIG5pxb7FoWllIG5hIHBydsOtIHJpYWRvayB0ZXh0dSBvem5hxI1lbsOpaG8gem5hxI1rb3UgLS0tPi4KKworICAyLiBQcmVzdcWIIGt1cnpvciBuYSB6YcSNaWF0b2sgcHJ2ZWogY2h5YnkuCisKKyAgMy4gbmFww63FoSAgciAgYSBwb3RvbSB6bmFrLCBrdG9yw70gdGFtIG3DoSBiecWlLgorCisgIDQuIFpvcGFrdWoga3Jva3kgMiBhIDMsIGvDvW0gcHJ2w70gcmlhZG9rIG5pZWplIHpob2Ruw70gcyBkcnVow71tLgorCistLS0+IEthxI8gYm9sIHRlbnRvIHJpYXNvayBww61hYW7DvSwgbmlla3JvIHN0bGHFoWlsIG5lc3Byw6FibmUga2zDoXZlc3khCistLS0+IEtlxI8gYm9sIHRlbnRvIHJpYWRvayBww61zYW7DvSwgbmlla3RvIHN0bGHEjWlsIG5lc3Byw6F2bmUga2zDoXZlc3khCisKKyAgNS4gVGVyYXogcHJlamRpIG5hIGxla2NpdSAzLjIuCisKK1BPWk7DgU1LQTogUGFtw6R0YWogc2ksIMW+ZSBuYXXEjWnFpSBzYSBtw7TFvmXFoSBsZW4gcG91xb7DrXZhbmltLCBuaWUgcGFtw6R0YW7DrW0uCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgIExla2NpYSAzLjMuIFBSw41LQVogw5pQUkFWWQorCisKKyAgICAgKiogQWsgY2hjZcWhIHptZW5pxaUgxI1hc8WlIHNsb3ZhIGRvIGtvbmNhIHNsb3ZhLCBuYXDDrcWhICBjZSAuICoqCisKKyAgMS4gUHJlc3XFiCBrdXJ6b3IgbmnFvsWhaWUgbmEgcHJ2w70gcmlhZG9rIG96bmHEjWVuw70gem5hxI1rb3UgLS0tPi4KKworICAyLiBVbWllc3RuaSBrdXJ6b3IgbmEgcMOtc21lbm8gbyB2IHNsb3ZlIHJvc2ZwbC4KKworICAzLiBOYXDDrcWhICBjZSAgYSBvcHJhdiBzbG92byAodiB0b210byBwcsOtcGFkZSBuYXDDrcWhICdpYWRvaycuKQorCisgIDQuIFN0bGHEjSA8RVNDPiBhIHByZWpkaSBuYSDEj2FsxaHDrSB6bmFrLCBrdG9yw70gdHJlYmEgem1lbmnFpS4KKworICA1LiBab3Bha3VqIGtyb2t5IDMgYSA0LCBrw71tIHBydsOhIHZldGEgbmllamUgcm92bmFrw6EgYWtvIGRydWjDoS4KKworLS0tPiBUZW50byByb3NmcGwgbcOhIG5pZWtvxL5rbyBza2ljLCBrdG9yw6kgamUgcGlyZXd2YsOtIHptZW5pxaUgcGl5xaV1xI3DoW4gcHLDrWthenUuCistLS0+IFRlbnRvIHJpYWRvayBtw6Egbmlla2/EvmtvIHNsb3YsIGt0b3LDqSBqZSBwb3RyZWJuw6kgem1lbmnFpSBwb3XFvml0w61tIHByw61rYXp1LgorCitQb3puw6Fta2EsIMW+ZSAgY2UgIHptYcW+ZSBzbG92byBhIG5hc3RhdsOtIHZrbGFkYWPDrSBtw7NkLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgICBMZWtjaWEgMy40OiBWSUFDIFpNSUVOIFBPVcW9SVTDjU0gYworCisKKyAgICoqIFByw61rYXogcHJlIMO6cHJhdnkgc2EgcG91xb7DrXZhIHMgcm92bmFrw71taSBwb2h5Ym1pIGFrbyBwcmUgbWF6YW5pZSAqKgorCisgIDEuIFByw61rYXogcHJlIMO6cHJhdnkgcHJhY3VqZSByb3ZuYWtvIGFrbyBwcmUgbWF6YW5pZS4gRm9ybcOhdCBqZToKKworICAgICAgICBjICAgIFvEjcOtc2xvXSAgICBwb2h5YgorCisgIDIuIFBvaHlieSBzw7ogcm92bmFrw6ksIGFrbyBuYXByw61rbGFkICAgdyAoc2xvdm8pIGEgICQgKGtvbmllYyByaWFka3UpLgorCisgIDMuIFByZXN1xYgga3Vyem9yIG5pxb7FoWllIG5hIHBydsO9IHJpYWRvayBvem5hxI1lbsO9IHpuYcSNa291IC0tLT4uCisKKyAgNC4gUHJlc3XFiCBrdXJ6b3IgbmEgcHJ2w7ogY2h5YnUuCisKKyAgNS4gbmFww63FoSAgYyQgIGFieSBzaSBtb2hvbCB1cHJhdmnFpSB6dnnFoW9rIHJpYWRrdSBwb2TEvmEgZHJ1aMOpaG8KKyAgICAgYSBzdGxhxI0gPEVTQz4uCisKKy0tLT4gS29uaWVjIHRvaHRvIHJpYWRrdSBwb3RyZWJ1amUgcG9tb2MsIGFieSBib2wgYWtvIGRydWh5LgorLS0tPiBLb25pZWMgdG9odG8gcmlhZGt1IHBvdHJlYnVqZSBvcHJhdmnFpSBwb3XFvml0w61tIHByw61rYXp1ICBjJCAuCisKK1BPWk7DgU1LQTogTcO0xb5lxaEgcG91xb5pxaUga2zDoXZlc3UgYmFja3NwYWNlIG5hIMO6cHJhdnUgem1pZW4gcG/EjWFzIHDDrXNhbmlhLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIExFS0NJQSAzIFpIUk5VVElFCisKKworICAxLiBOYSB2bG/FvmVuaWUgdGV4dHUsIGt0b3LDvSB1xb4gYm9sIHptYXphbsO9LCBuYXDDrcWhICBwIC4gVG8gdmxvxb7DrSB6bWF6YW7DvQorICAgICB0ZXh0IFpBIGt1cnpvciAoYWsgYm9sIHJpYWRvayB6bWF6YW7DvSBwcmVqZGUgbmEgcmlhZG9rIHBvZCBrdXJ6b3JvbSkuCisKKyAgMi4gUHJlIG5hcmFkZW5pZSB6bmFrdSBuYSBtaWVzdGUga3Vyem9yYSwgbmFww63FoSAgciAgYSBwb3RvbSB6bmFrLCBrdG9yw70KKyAgICAgbmFocmFkw60gcMO0dm9kbsO9IHpuYWsuCisKKyAgMy4gUHLDrWtheiBuYSB1cHJhdmVuaWUgdW1vxb7FiHVqZSB6bWVuacWlIG9kIGt1cnpvcmEgYcW+IHBvIG1pZXN0bywga3RvcsOpCisgICAgIHVyxI11amUgcG9oeWIuICBuYXByLiBOYXDDrcWhICBjZSAgxI3DrW0gem1uw63FoSB0ZXh0IG9kIHBvesOtY2llCisgICAgIGt1cnpvcmEgZG8ga29uY2Egc2xvdmEsIGMkICB6bWVuw60gdGV4dCBkbyBrb25jYSByaWFka3UuCisKKyAgNC4gRm9ybcOhdCBwcmUgbmFocmFkZW5pZSBqZToKKworCSAgICBjICAgIFvEjcOtc2xvXSAgICBwb2h5YgorCisKK1RlcmF6IHByZWpkaSBuYSBuYWxzZWR1asO6Y3UgbGVrY2l1LgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgTGVrY2lhIDQuMTogUE9aw41DSUEgQSBTVEFUVVMgU8OaQk9SVQorCisKKyAgKiogU3RsYcSNIENUUkwtZyBwcmUgem9icmF6ZW5pZSBzdm9qZWogcG96w61jaWUgdiBzw7pib3JlIGEgc3RhdHVzdSBzw7pib3J1LgorICAgICBOYXDDrcWhICBHICBwcmUgcHJlc3VuIG5hIHJpYWRvayB2IHPDumJvcmUuICoqCisKKyAgUG96bsOhbWthOiBQcmXEjcOtdGFqIHNpIGNlbMO6IHTDunRvIGxla2NpdSBza8O0ciBha28gemHEjW5lxaEgdnlrb27DoXZhxaUga3Jva3khIQorCisgIDEuIERyxb4gc3RsYcSNZW7DuiBrbMOhdmVzdSBDdHJsIGEgc3RsYcSNICBnIC4gVG90byBuYXrDvXZhbWUgQ1RSTC1HLgorICAgICBOYSBzcG9kdSBvYnJhem92a3kgc2Egem9icmF6w60gc3Byw6F2YSBzIG7DoXp2b20gc8O6Ym9ydSBhIHBvesOtY2lvdQorICAgICB2IHPDumJvcmUuIFphcGFtw6R0YWpzaSBzaSDEjcOtc2xvIHJpYWRrdSBwcmUgcG91xb5pdGllIHYga3Jva3UgMy4KKworICAyLiBTdGxhxI0gIEcgIMSNw61tIHNhIGRvc3RhbmXFoSBuYSBzcG9kb2sgc8O6Ym9ydS4KKyAgICAgTmFww63FoSAgZ2cgIMSNw61tIHNhIGRvc3RhbmXFoSBuYSB6YcSNaWF0b2sgc8O6Ym9ydS4KKworICAzLiBOYXDDrcWhIMSNw61zbG8gcmlhZGt1IG5hIGt0b3JvbSBzaSBzYSBuYWNow6FkemFsIGEgc3RsYcSNICBHLiBUbyDFpWEKKyAgICAgdnLDoXRpIG5hIHJpYWRvaywgbmEga3Rvcm9tIHNpIHBydsO9IGtyw6F0IHN0bGHEjWlsIENUUkwtRy4KKworICA0LiBBayBzYSBjw610w63FoSBzY2hvcG7DvSB2eWtvbmHFpSB0ZXRvIGtyb2t5LCB2eWtvbmFqIGtyb2t5IDEgYcW+IDMuCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCUxla2NpYSA0LjI6IFBSw41LQVogVllIxL1BRMOBVkFOSUEKKworCisgICoqIE5hcMOtxaEgIC8gIG5hc2xlZG92YW7DqSByZcWlYXpjb20gcHJlIHZ5aMS+YWRhbmllIHByw61zbHXFoW7DqWhvIHJlxaVhemNhLiAqKgorCisgIDEuIE5hcMOtxaEgem5hayAgLyAgdiBub3Jtw6Fsbm9tIG3Ds2RlLiBQb3puw6Fta2EsIMW+ZSB0ZW50byB6bmFrIHNhIHNwb2x1CisgICAgIHMga3Vyem9yb20gem9icmF6w60gdiBkb2xuZWogxI1hc3RpIG9icmF6b3ZreSBzICA6ICBwcsOta2F6b20uCisKKyAgMi4gVGVyYXogbmFww63FoSAnZXJycm9vcicgPEVOVEVSPi4gVG8gamUgc2xvdm8sIGt0b3LDqSBjaGNlxaEgdnloxL5hZGHFpS4KKworICAzLiBQcmUgdnloxL5hZGFuaWUgxI9hbMWhaWVobyB2w71za3l0dSByb3ZuYWvDqWhvIHJlxaVhemNhLCBzdGxhxI0gamVkbm9kdWNobyAgbi4KKyAgICAgUHJlIHZ5aMS+YWRhbmllIMSPYWzFoWllaG8gdsO9c2t5dHUgcm92bmFrw6lobyByZcWlYXpjYSBvcGHEjW7DvW0gc21lcm9tLAorICAgICBOLgorCisgIDQuIEFrIGNoY2XFoSB2eWjEvmFkYcWlIHJlxaVhemVjIHYgc3DDpHRub20gc21lcmUsIHBvdcW+w60gcHLDrWtheiAgPyAgbWllc3RvCisgICAgIHByw61rYXp1IC8uCisKKyAgNS4gUHJlIG7DoXZyYXQgbmEgbWllc3RvIHoga3RvcsOpaG8gc2kgcHJpxaFpZWwgc3RsYcSNIENUUkwtTyAoZHLFviBzdGxhxI1lbsO6CisgICAgIGtsw6F2ZXN1IEN0cmwgcG/EjWFzIHN0bGHEjWVuaWEga2zDoXZlc3kgbykuIFpvcGFrdWogcHJlIMSPYWzFocOtIG7DoXZyYXQKKyAgICAgc3DDpMWlLiBDVFJMLUkgaWRlIHZwcmVkLgorCitQT1pOw4FNS0E6ICJlcnJyb29yIiBuaWVqZSBzcMO0c29iIGhsw6Fza292YW5pYSBlcnJvcjsgZXJycm9vciBqZSBlcnJvci4KK1BPWk7DgU1LQTogS2XEjyB2eWjEvmFkw6F2YW5pZSBkb3NpYWhuZSBrb25pZWMgdG9odG8gc8O6Ym9ydSwgYnVkZSBwb2tyYcSNb3ZhxaUgbmEKKyAgICAgIHphxI1pYXRrdSwgZG9raWHEviBuaWVqZSByZXNldG92YW7DqSBuYXN0YXZlbmllICd3cmFwc2NhbicgLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCSAgICAgTGVrY2lhIDQuMzogVllIxL1BRMOBVkFOSUUgWk9EUE9WRURBSsOaQ0lDSCBaw4FUQVZPUklFSworCisKKwkgKiogTmFww63FoSAgJSAgcHJlIHZ5aMS+YWRhbmllIHByw61zbHXFoW7DqWhvIHpuYWt1ICksXSwgYWxlYm8gfSAuICoqCisKKyAgMS4gUHJlbWllc3RuaSBrdXJ6b3IgbmEgaG9jYWvDvSB6byB6bmFrb3YgKCwgWywgYWxlYm8geyB2IHJpYWRrdSBuacW+xaFpZQorICAgICBvem5hxI1lbsOpaG8gem5hxI1rb3UgLS0tPi4KKworICAyLiBUZXJheiBuYXDDrcWhIHpuYWsgICUgLgorCisgIDMuIEt1cnpvciBzYSBwcmVtaWVzdG5pIG5hIHpvZHBvdmVkYWrDumN1IHrDoXR2b3JrdS4KKworICA0LiBOYXDDrcWhICAlICBwcmUgcHJlc3VuIGt1cnpvcnUgc3DDpMWlIG5hIG90dsOhcmFqw7pjdSB6w6F0dm9ya3UuCisKKyAgNS4gUHJlc3XFiCBrdXJ6b3IgbmEgaW7DvSB6byB6bmFrb3YgKCwpLFssXSx7IGFsZWJvIH0gYSB2xaFpbW5pIHNpCisgICAgIMSNbyAlIHZ5a29uw6F2YS4KKworLS0tPiBUb3RvICggamUgdGVzdG92YWPDrSByaWFkb2sgcyAoJ3MsIFsncyBdIGEgeydzIH0gdiByaWFka3UuICkpCisKK1Bvem7DoW1rYTogVG90byBqZSB2ZcS+bWkgdsO9aG9kbsOpIHBvdcW+w63FpSBwcmkgbGFkZW7DrSBwcm9ncmFtdSBzIGNow71iYWrDumNpbWkKKwkgIHV6YXR2w6FyYWrDumNpbWkgesOhdHZvcmthbWkhCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgTGVrY2lhIDQuNDogUFLDjUtBWiBOQUhSQURFTklBCisKKworICoqIE5hcMOtxaEgICA6cy9zdGFyw70vbm92w70vZyAgcHJlIG5haHJhZGVuaWUgc2xvdmEgJ3N0YXLDvScgemEgc2xvdm8gJ25vdsO9Jy4gKioKKworICAxLiBQcmVzdcWIIGt1cnpvciBuacW+xaFpZSBuYSByaWFkb2sgb3puYcSNZW7DvSB6bmHEjWtvdSAtLS0+LgorCisgIDIuIE5hcMOtxaEgIDpzL3RoZWUvdGhlIDxFTlRFUj4gLiBQb3puYW1rYSwgxb5lIHRlbnRvIHByw61rYXogem1lbsOtIGxlbiBwcnbDvQorICAgICB2w71za3l0ICJ0aGVlIiB2IHJpYWRrdS4KKworICAzLiBUZXJheiBuYXDDrcWhICAgOnMvdGhlZS90aGUvZyAgIMSNbyB6bmFtZW7DoSBjZWxrb3bDqSBuYWhyYWRlbmllIHYgcmlhZGt1LgorICAgICBUb3RvIG5haHJhZMOtIHbFoWV0a3kgdsO9c2t5dHkgdiByaWFka3UuCisKKy0tLT4gVGhlZSBiZXN0IHRpbWUgdG8gc2VlIHRoZWUgZmxvd2VycyBpbiB0aGVlIHNwcmluZy4KKworICA0LiBQcmUgem1lbnUgdsWhZXRrw71jaCB2w71za3l0b3YgZGFuw6lobyByZcWlYXpjYSBtZWR6aSBkdm9taSByaWRha2FtaSwKKyAgICAgbmFww63FoSAgOiMsI3Mvc3RhcsO9L25vdsO9L2cgIGtkZSAjLCMgc8O6IMSNw61zbGEgZHZvY2ggcmlhZGtvdiwgdiByb3pzYWh1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt0b3LDvWNoIHNhIG5haHJhZGVuaWUgdnlrb27DoS4KKyAgICAgbmFww63FoSAgOiVzL3N0YXLDvS9ub3bDvS9nICAgIHByZSB6bWVudSB2xaFldGvDvWNoIHbDvXNreXRvdiB2IGNlbG9tIHJpYWRrdQorICAgICBuYXDDrcWhICA6JXMvc3RhcsO9L25vdsO9L2djICAgbsOhamRlIHbFoWV0a3kgdsO9c2t5dHkgdiBjZWxvbSBzw7pib3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzIG90w6F6a291IMSNaSBuYWhyYWRpxaUgYWxlYm8gbmllCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgICBMRUtDSUEgNCBaSFJOVVRJRQorCisKKyAgMS4gQ1RSTC1nICAgIHZ5cMOtxaFlIHR2b2p1IHBvesOtY2l1IHYgc8O6Ym9yZSBhIHN0YXR1cyBzw7pib3J1LgorICAgICAgICAgICAgRyAgxaVhIHByZW1pZXN0bmkgbmEga29uaWVjIHJpYWRrdS4KKyAgICAgxI3DrXNsbyAgRyAgxaVhIHByZW1pZXN0bmkgbmEgcmlhZG9rIHMgxI3DrXNsb20uCisgICAgICAgICAgIGdnICDFpWEgcHJlc3VuaWUgbmEgcHJ2w70gcmlhZG9rCisKKyAgMi4gTmFww61zYW5pZSAgLyAgbmFzbGVkb3ZhbsOpIHJlxaVhemNvbSB2eWjEvmFkw6EgcmXFpWF6ZWMgc21lcm9tIERPUFJFRFUuCisgICAgIE5hcMOtc2FuaWUgID8gIG5hc2xlZG92YW7DqSByZcWlYXpjb20gdnloxL5hZGEgcmXFpWF6ZWMgc21lcm9tIERPWkFEVS4KKyAgICAgTmFww61zYW5pZSAgbiAgcG8gdnloxL5hZMOhdmFuw60sIHZ5aMS+YWTDoSBuYXNsZWR1asO6Y2kgdsO9c2t5dCByZcWlYXpjYQorICAgICB2IHJvdm5ha29tIHNtZXJlLCBwcmnEjW9tICBOICB2eWjEvmFkw6EgdiBvcGHEjW5vbSBzbWVyZS4KKyAgICAgQ1RSTC1PIMWlYSB2csOhdGkgc3DDpMWlIG5hIHN0YXLFoWl1IHBvesOtY2l1LCBDVFJMLUkgbmEgbm92xaFpdSBwb3rDrWNpdS4KKworICAzLiBOYXDDrXNhbmllICAlICBrZcSPIGt1cnpvciBqZSBuYSAoLCksWyxdLHssIGFsZWJvIH0gbsOhamRlIHpvZHBvdmRhasO6Y3UKKyAgICAgcMOhcm51IHrDoXR2b3JrdS4KKworICA0LiBQcmUgbmFocmFkZW5pZSBub3bDqWhvIHphIHBydsO9IHN0YXLDvSB2IHJpYWRrdSBuYXDDrcWhICAgIDpzL3N0YXLDvS9ub3bDvQorICAgICBQcmUgbmFocmFkZW5pZSBub3bDqWhvIHphIHbFoWV0a3kgc3RhcsOpIHYgcmlhZGt1IG5hcMOtxaEgIDpzL3N0YXLDvS9ub3bDvS9nCisgICAgIFByZSBuYWhyYWRlbmllIHJlxaVhemNvdiBtZWR6aSBkdm9tYSByaWFka2FtaSAzIG5hcMOtxaEgIDojLCMvc3RhcsO9L25vdsO9L2cKKyAgICAgUHJlIG5haHJhZGVuaWUgdsWhZXRrw71jaCB2w71za3l0b3YgdiBzw7pib3JlIG5hcMOtxaEgICAgICAgOiVzL3N0YXLDvS9ub3bDvS9nCisgICAgIFByZSBwb3R2cmRlbmllIGthxb5kw6lobyBuYWhyYWRlbmlhIHByaWRhaiAnYycJICAgICAgICAgOiVzL3N0YXLDvS9ub3bDvS9nYworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQlMZWtjaWEgNS4xIEFLTyBTUFVTVEnFpCBWT05LQUrFoMONIFBSw41LQVoKKworCisgKiogTmFww63FoSBwcsOta2F6ICA6ISAgbmFzbGVkb3ZhbsO9IHZvbmthasWhw61tIHByw61rYXpvbSBwcmUgc3B1c3RlbmllIHByw61rYXp1ICoqCisKKyAgMS4gTmFww63FoSBvYnZ5a2zDvSBww61rYXogIDogIGt0b3LDvSBuYXN0YXbDrSBrdXJ6b3IgbmEgc3BvZG9rIG9icmF6b3ZreS4KKyAgICAgVG8gdW1vxb5uw60gbmFww61zYcWlIHByw61rYXouCisKKyAgMi4gVGVyYXogbmFww63FoSAgISAgKHbDvWtyacSNbsOtaykuIFRvIHVtb8W+bsOtIHNwdXN0acWlIGhvY2lha8O9IHZvbmthasWhw60gcHLDrWthegorICAgICB6IHByw61rYXpvdsOpaG8gcmlhZGt1LgorCisgIDMuIEFrbyBwcsOta2xhZCBuYXDDrcWhICBscyAgemEgISBhIHN0bGHEjSA8RU5URVI+LiBUZW50byBwcsOta2F6CisgICAgIHpvYnJhesOtIG9ic2FoIHR2b2pobyBhZHJlc8OhcmEgcm92bmFrbyBha28gbmEgcHLDrWthem92b20gcmlhZGt1LgorICAgICBBbGVibyBwb3XFvmkgIDohZGlyICBhayBscyBuZWZ1bmd1amUuCisKK1Bvem7DoW1rYTogIFRha3RvIGplIG1vxb5uw6kgc3B1c3RpxaUgaG9jaWFrw70gdm9ua2FqxaHDrSBwcsOta2F6IHMgYXJndW1lbnRhbWkuCitQb3puw6Fta2E6ICBWxaFldGt5IHByw61rYXp5ICA6ICBtdXNpYSBiecWlIGRva29uxI1lbsOpIHN0bGHEjWVuw61tIDxFTlRFUj4KKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIExla2NpYSA1LjI6IFZJQUMgTyBVS0xBREFOw40gU8OaQk9ST1YKKworCisgICAgICoqIFByZSB1bG/FvmVuaWUgem1pZW4gdiBzw7pib3JlLCBuYXDDrcWhICA6dyBGSUxFTkFNRS4gKioKKworICAxLiBOYXDDrcWhICA6IWRpciAgYWxlYm8gIDohbHMgIHByZSB2w71waXMgYWt0dcOhbG5laG8gYWRyZXPDoXJhLgorICAgICBVxb4gdmllxaEsIMW+ZSBtdXPDrcWhIHphIHTDvW10byBzdGxhxI1pxaUgPEVOVEVSPiAuCisKKyAgMi4gVnliZXIgbsOhem92IHPDumJvcnUsIGt0b3LDvSBlxaF0ZSBuZWV4aXN0dWplLCBha28gbmFwci4gVEVTVC4KKworICAzLiBUZXJheiBuYXDDrcWhOiAgIDp3IFRFU1QgICAoa2RlIFRFU1QgamUgbsOhem92IHZ5YnJhdMOpaG8gc8O6Ym9ydS4pCisKKyAgNC4gVG8gdWxvxb7DrSBjZWzDvSBzw7pib3IgIChWaW0gVHV0b3IpICBwb2QgbsOhem92bSBURVNULgorICAgICBQcmUgb3ZlcmVuaWUgbmFww63FoSAgIDohZGlyICAgLCDEjcOtbSAgem9icmF6w63FoSBvYnNhaCBhZHJlc8OhcmEuCisKK1Bvem7DoW1rYTogxb5lIGFrIHVrb27EjcOtxaEgcHLDoWN1IHMgZWRpdG9yb20gVmltIGEgem5vdnUgaG8gc3B1c3TDrcWhIHByw61rYXpvbQorCSAgICAgICAgdmltIFRFU1QsIHPDumJvciBidWRlIGvDs3BpYSB2w711a3ksIGtlxI8gc2kgaG8gdWxvxb5pbC4KKworICA1LiBUZXJheiBvZHN0csOhxYggc8O6Ym9yIG5hcMOtc2Fuw61tIChNUy1ET1MpOiAgIDohZGVsIFRFU1QKKwkJCSAgICAgYWxlYm8gKFVuaXgpOiAgICAgOiFybSBURVNUCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMZWtjaWEgNS4zIFbDnUJFUiBURVhUVSBQUkUgVUxPxb1FTklFCisKKworICAqKiBQcmUgdWxvxb5lbmllIMSNYXN0aSBzw7pib3J1LCBuYXDDrcWhICB2ICBwb2h5YiA6dyBGSUxFTkFNRSAqKgorCisgIDEuIFByZXN1xYgga3Vyb3pyIG5hIHRlbnRvIHJpYWRvay4KKworICAyLiBTdGxhxI0gIHYgIGEgcHJlc3XFiCBrdXJvenIgbmEgcGlhdHUgcG9sb8W+a3UgZG9sZS4gUG96bsOhbWthLCDFvmUKKyAgICAgdGVudG8gdGV4dCBqZSB2eXpuYcSNZW7DvSAoaGlnaGxpZ2h0ZWQpLgorCisgIDMuIFN0bGHEjSBrbMOhdmVzdSAgOiAuIFYgc3BvZG5laiDEjWFzdGkgb2tuYSBzYSBvYmphdsOtICA6JzwsJz4uCisKKyAgNC4gTmFww63FoSB3IFRFU1QgICwga2RlIFRFU1QgamUgbWVubyBzw7pib3J1LCBrdG9yw70gemF0aWFsIG5lZXhpc3R1amUuCisgICAgIFNrb250cm9sdWosIGUgdmlkw63FoSAgOic8LCc+dyBURVNUICBwcmVkdMO9bSBuZcW+IHN0bGHEjcOtxaEgRW50ZXIuCisKKyAgNS4gVmltIHphcMOtxaFlIG96bmHEjWVuw6kgcmlhZGt5IGRvIHPDumJvcnUgVEVTVC4gUG91xb5pIDohZGlyICBhbGVibyAgIWxzCisgICAgIHByZSBvdmVyZW5pZS4gWmF0aWFsIGhvIGXFoXRlIG5lbWHFviEgUG91xb5pamVtZSBobyB2IMSPYWzFoWVqIGxla2NpaS4KKworUE9aTsOBTUtBOiBTdGxhxI1lbsOtbSBrbMOhdmVzeSAgdiAgc2Egc3B1c3TDrSB2aXp1w6FsbmUgb3puYcSNb3ZhbmllLgorICAgICAgICAgIE3DtMW+ZcWhIHBvaHlib3ZhxaUga3Vyem9yb20gcHJlIHVwcmVzbmVuaWUgdnl6bmHEjWVuw6lobyB0ZXh0dS4KKyAgICAgICAgICBQb3RvbSBtw7TFvmXFoSBwb3XFvmnFpSBvcGVyw6F0b3IgcHJlIHZ5a29uYW5pZSBuZWpha2VqIGFrY2llCisgICAgICAgICAgcyB0ZXh0b20uIE5hcHLDrWtsYWQgIGQgIHptYcW+ZSB2eXpuYcSNZW7DvSB0ZXh0LgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICBMZWtjaWEgNS40OiBWw51CRVIgQSBaTFXEjE9WQU5JRSBTw5pCT1JPVgorCisKKwkqKiBQcmUgdmxvxb5lbmllIG9ic2FodSBzw7pib3J1LCBuYXDDrcWhICAgOnIgRklMRU5BTUUgKioKKworICAxLiBQcmVtaWVzdG5pIGt1cnpvciBuYWQgdGVudG8gcmlhZG9rLgorCitQT1pOw4FNS0E6IFBvIHZ5a29uYW7DrSBrcm9rdSAyIHV2aWTDrcWhIHRleHQgeiBsZWtjaWUgNS4zLiBQb3RvbSBzYSBwcmVzdcWICisgICAgICAgICAgZG9sZSwgYWJ5IHNpIHZpZGVsIHTDunRvIGxla2NpdS4KKworICAzLiBUZXJheiB2bG/FviBzw7pib3IgVEVTVCBwb3XFvml0w61tIHByw61rYXp1ICAgOnIgVEVTVCAgIGtkZSBURVNUIGplIG7DoXpvdgorICAgICBzw7pib3J1LiBTw7pib3IsIGt0b3LDvSBzaSBwb3XFvmlsIGplIHVtaWVzdG5lbsO9IHBvZCByaWFka29tIHMga3Vyem9yb20uCisKK1BPWk7DgU1LQTogTcO0xb5lxaEgdGllxb4gbmHEjcOtdGHFpSB2w71zdHVwIHZvbmthasWhaWVobyBwcsOta2F6dS4gTmFwcsOta2xhZCA6ciAhbHMKKyAgICAgICAgICBuYcSNw610YSB2w71zdHVwIHByw61rYXp1IGxzIGEgdW1pZXN0bmkgaG8gemEgcG96w61jaXUga3Vyem9yYS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgICBMRUtDSUEgNSBaSFJOVVRJRQorCisKKyAgMS4gIDohcHLDrWtheiAgc3B1c3TDrSB2b25rYWrFocOtIHByw61rYXouCisKKyAgICAgIE5pZWt0b3LDqSB2eXXFvml0ZcS+bsOpIHByw61rbGFkeSBzw7o6CisJKE1TX0RPUykgICAgKFVOSVgpCisJIDohZGlyICAgICAgIDohbHMJICAgIC0gIHpvYnJhesOtIG9ic2FoIGFkcmVzw6FyYQorCSA6IWRlbCBGSUxFTkFNRSAgICA6IXJtIEZJTEVOQU1FICAgIC0gIG9kc3Ryw6FuaSBzw7pib3IgRklMRU5BTUUKKworICAyLiAgOncgRklMRU5BTUUgIHVsb8W+w60gYWt0dcOhbG55IHPDumJvciBuYSBkaXNrIHBvZCBtZW5vbSBGSUxFTkFNRS4KKworICAzLiAgdiAgcG9oeWIgIDp3IEZJTEVOQU1FICB1bG/FvsOtIHZpenXDoWxuZSBvem5hxI1lbsOpIHJpYWRreSBkbworICAgICAgc8O6Ym9ydSBGSUxFTkFNRS4KKworICA0LiAgOnIgRklMRU5BTUUgIHZ5YmVyaWUgeiBkaXNrdSBzw7pib3IgRklMRU5BTUUgYSB2bG/FvsOtIGhvIGRvIGFrdHXDoWxuZWhvCisgICAgICBzw7pib3J1IHphIHBvesOtY2lvdSBrdXJ6b3JhLgorCisgIDUuIDpyICFkaXIgIG5hxI3DrXRhIHbDvXN0dXAgeiBwcsOta2F6dSBkaXIgYSB2bG/FvsOtIGhvIHphIHBvesOtY2l1IGt1cnpvcmEuCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSBMZWtjaWEgNi4xOiBQUsONS0FaIE9UVk9SScWkCisKKworKiogTmFww63FoSAgbyAgcHJlIHZsb8W+ZW5pZSByaWFka3UgcG9kIGt1cnpvciBhIHByZXBudXRpZSBkbyB2a2xhZGFjaWVobyBtw7NkdSAqKgorCisgIDEuIFByZXN1xYgga3Vyem9yIG5pxb7FoWllIG5hIHJpYWRvayBvem5hxI1lbsO9IHpuYcSNa291IC0tLT4uCisKKyAgMi4gTmFww63FoSBvIChtYWzDqSBww61zbWVubykgcHJlIHZsb8W+ZW5pZSDEjWlzdMOpaG8gcmlhZGt1IHBvZCBrdXJ6b3JtCisgICAgIGEgcHJlcG51dGllIGRvIHZrbGFkYWNpZWhvIG3Ds2R1LgorCisgIDMuIFRlcmF6IHNrb3DDrXJ1aiByaWFkb2sgb3puYcSNZW7DvSAtLS0+IGEgc3RsYcSNIDxFU0M+IHByZSB1a29uxI1lbmllCisgICAgIHZrbGFkYWNpZWhvIG3Ds2R1LgorCistLS0+IFBvIG5hcMOtc2Fuw60gIG8gIHNhIGt1cnpvciBwcmVtaWVzdG7DrSBuYSB2bG/FvmVuw70gcmlhZG9rIGRvIHZrbGFkYWNpZWhvCisgICAgIG3Ds2R1LgorCisgIDQuIFByZSBvdHZvcmVuaWUgcmlhZGt1IG5hZCBrdXJ6b3JvbSwgamVkbm90dWNobyBuYXDDrcWhIHZlxL5rw6kgIE8gLAorICAgICBuYW1pZXN0byBtYWzDqWhvICBvLiBWeXNrw7rFoWFqIHNpIHRvIG5hIHJpYWRrdSBkb2xlLgorCistLS0+IFZsb8W+IHJpYWRvayBuYWQgdMO9bXRvIG5hcMOtc2Fuw61tIE8sIGtlxI8ga3Vyem9yIGplIG5hIHRvbXRvIHJpYWRrdS4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZWtjaWEgNi4yOiBQUsONS0FaIFBSSURBxaQKKworCisJICAgKiogTmFww63FoSAgYSAgcHJlIHZsb8W+ZW5pZSB0ZXh0dSBaQSBrdXJ6b3IuICoqCisKKyAgMS4gUHJlc3XFiCBrdXJ6b3IgbmnFvsWhaWUgbmEga29uaWVjIHBydsOpaG8gcmlhZGt1IG96bmHEjWVuw6lobyB6bmHEjWtvdSAtLS0+CisKKyAgMi4gU3RsYcSNIGtsw6F2ZXN1ICBlICBkb2tpYcS+IGt1cm96ciBuaWVqZSBuYSBrb25jaSByaWFka3UuCisKKyAgMy4gTmFww63FoSAgYSAgKG1hbMOpIHDDrXNtZW5vKSBwcmUgcHJpZGFuaWUgdGV4dHUgWkEga3Vyem9yb20uCisKKyAgNC4gRG9rb27EjcOtIHNsb3ZvIHRhayBha28gamUgdG8gdiBkcnVob20gcmlhZGt1LiBTdGxhxaEgPEVTQz4gcHJlCisgICAgIG9wdXN0ZW5pZSB2a2xhZGFjaWVobyBtw7NkdS4KKworICA1LiBQb3XFvmkgIGUgIG5hIHByZXN1biBuYSDEj2FsxaFpZSBuZWRva29uxI1lbsOpIHNsb3ZvIGEgem9wYWt1aiBrcm9reSAzIGEgNC4KKworLS0tPiBUZW50byByaSB0aSBkb3ZvxL51amUgbsOhY3YgcHJpw6F2YW4gdGVzdHUgbmEga29uaWVjIHJpYWRrdS4KKy0tLT4gVGVudG8gcmlhZG9rIHRpIGRvdm/EvnVqZSBuw6FjdmlrIHByaWTDoXZhbmlhIHRleHR1IG5hIGtvbmllYyByaWFka3UuCisKK1BPWk7DgU1LQTogYSwgaSwgQSDFoXRhcnR1asO6IHJvdm5ha8O9IHZrbGFkYWPDrSBtw7NkLCBqZWRpbsO9IHJvemlkZWwgamUsIGtkZQorICAgICAgICAgIHNhIHpuYWt5IHZrbGFkYWrDui4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIExla2NpYSA2LjM6IElOw50gU1BPU09CIE5BSFJBRFpPVkFOSUEKKworCisgICAgICAqKiBOYXDDrcWhIHZlxL5rw6kgUiBwcmUgbmFocmFkZW5pZSB2aWFjIGFrbyBqZWRuw6lobyB6bmFrdS4gKioKKworICAxLiBQcmVzdcWIIGt1cnpvciBuacW+xaFpZSBuYSBwcnbDvSByaWFkb2sgb3puYcSNZW7DvSB6bmHEjWtvdSAtLS0+LiBQcmVtaWVzdG5pCisgICAgIGt1cnpvciBuYSB6YcSNaWF0b2sgcHJ2w6lobyB2w71za3l0dSAgeHh4LgorCisgIDIuIFRlcmF6IG5hcMOtxaEgIFIgIGEgIG5hcMOtxaEgIMSNw61zbG8gdXZlZGVuw6kgdiBkcnVob20gcmlhZGt1LCB0YWvFvmUKKyAgICAgc2EgbsOtbSBuYWhyYWTDrSBww7R2b2Ruw6kgeHh4LgorCisgIDMuIFN0bGHEjSA8RVNDPiBwcmUgb3B1c3RlbmllIG5haHJhZHpvdmFjaWVobyBtw7NkdS4gUG96bsOhbWthLCDFvmUgenZ5xaFvaworICAgICByaWFka3Ugem9zdGFuZSBuZXptZW5lbsO9LgorCisgIDQuIFpvcGFrdWogdGlldG8ga3Jva3kgcHJlIG5haHJhZGVuaWUgenZ5xaFuw71jaCB4eHguCisKKy0tLT4gUHJpZGFuw61tIDEyMyBrdSB4eHggZG9zdGFuZcWhIHh4eC4KKy0tLT4gUHJpZGFuw61tIDEyMyBrdSA0NTYgZG9zdGFuZcWhIDU3OS4KKworUE9aTsOBTUtBOiAgTmFocmFkem92YWPDrSBtw7NkIGplIGFrbyB2a2xhZGFjw60gbcOzZCwgYWxlIGthxb5kw70gbmFww61zYW7DvSB6bmFrCisgICAgICAgICAgIHptYcW+ZSBleGlzdHVqw7pjaSB6bmFrLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgICAgICAgICAgTGVrY2lhIDYuNDogQ29weSBQYXN0ZSB0ZXh0dQorCisgICAgKiogcG91xb7DrSBvcGVyw6F0b3IgIHkgIHByZSBjb3B5IHRleHRrdSBhICBwICBwcmUgamVobyBwYXN0ZSAqKgorCisgIDEuIENob8SPIG5pxb7FoWllIG5hIHJpYWRvayBvem5hxI1lbsO9IC0tLT4gYSB1bWllc3RuaSBrdXJvenIgemEgImEpIi4KKworICAyLiBOYcWhdGFydHVqIHZpenXDoWxueSBtw7NkIHBvdcW+aXTDrW0gIHYgIGEgcHJlc3XFiCBrdXJvenIgcHJlZCAiZmlyc3QiLgorCisgIDMuIE5hcMOtxaEgIHkgIHByZSAgdnlzdHJpaG51dGllIChjb3B5KSBvem5hxI1lbsOpaG8gdGV4dHUuCisKKyAgNC4gUHJlc3XFiCBrdXJvenIgbmEga29uaWVjIMSPYWzFoWllaG8gcmlhZGt1OiBqJAorCisgIDUuIE5hcMOtxaEgIHAgIHByZSB2bG/Fvm5pZSAocGFzdGUpIHRleHR1LiBQb3RvbSBuYXDDrcWhOiAgYSBkcnVoYSA8RVNDPi4KKworICA2LiBQb3XFvmkgdml6dcOhbG55IG3Ds2QgcHJlIG96bmHEjWVuaWUgInBvbG/FvmthLiIsIHZ5c3RyaWhuaSB0bworICAgICBwb3XFvml0w61tICB5LCBwcmVzdcWIIHNhIG5hIGtvbmllYyBuYXNsZWR1asO6Y2VobyByaWFka3UgcG91xb5pdMOtbSAgaiQKKyAgICAgYSB2bG/FviBzZW0gdGV4dCBwb3XFvml0w61tICBwLgorCistLS0+IGEpIHRvdG8gamUgcHJ2w6EgcG9sb8W+a2EKKy0tLT4gYikKKworUE9aTsOBTUtBOiBNw7TFvmXFoSBwb3XFvmnFpSB0aWXFviAgeSAgYWtvIG9wZXLDoXRvcjsgeXcgIHZ5c3RyaWhuZSBqZWRubyBzbG92by4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSBMZWtjaWEgNi41OiBOQVNUQVZFTklFIE1Pxb1OT1NUw40KKworCisqKiBOYXN0YXYgbW/Fvm5vc3RpLCB0YWvFvmUgdnloxL5hZMOhdmFuaWUgYWxlYm8gbmFocmFkem92YW5pZSBpZ25vcnVqZQorICAgcm96bGnFoW92YW5pZSAqKgorCisKKyAgMS4gVnloxL5hZGFqIHJlxaVhemVjICdpZ25vcmUnIG5hcMOtc2Fuw61tOgorICAgICAvaWdub3JlIDxFTlRFUj4KKyAgICAgWm9wYWt1aiB2eWjEvmFkw6F2YW5pZSBuaWVrb8S+a28ga3LDoXQgc3RsYcSNZW7DrW0ga2zDoXZlc3kgIG4gLgorCisgIDIuIE5hc3RhdiBtb8W+bm9zxaUgJ2ljJyAoSWdub3JlIGNhc2UpIG5hcMOtc2Fuw61tIHByw61rYXp1OgorICAgICA6c2V0IGljCisKKyAgMy4gVGVyYXogdnloxL5hZGFqIHJlxaVhemVjICdpbmdvcmUnIHpub3ZhIHN0bGHEjWVuw61tIGtsw6F2ZXN5ICBuCisgICAgIFBvem7DoW1rYSwgxb5lIHRlcmF6IHPDuiB2eWjEvmFkYW7DqSBhaiBJZ25vcmUgYSBJR05PUkUuCisKKyAgNC4gTmFzdGF2IG1vxb5ub3PFpWkgJ2hsc2VhcmNoJyBhICdpbmNzZWFyY2gnOgorICAgICA6c2V0IGhscyBpcworCisgIDUuIFRlcmF6IHNwdXN0aSB2eWjEvmFkw6F2YWPDrSBwcsOta2F6IHpub3Z1LCBhIHBvenJpIMSNbyBzYSBzdGFsbzoKKyAgICAgL2lnbm9yZSA8RU5URVI+CisKKyAgNi4gUHJlIG9wZXRvdm7DqSB6YXBudXRpZSByb3psecWhb3ZhbmlhIHZlxL5rw71jaCBhIG1hbMO9Y2ggcMOtc21lbgorICAgICBuYXDDrcWhOiAgOnNldCBub2ljCisKK1BPWk7DgU1LQTogTmEgb2RzdHLDoW5lbmllIHp2w71yYXpuZW5pYSB2w71yYXpvdiBuYXDDrcWhOiAgOm5vaGxzZWFyY2gKK1BPWk7DgU1LQTogQWsgY2hjZcWhIG5lcm96bHnFoW92YcWlIHZlxL5rb3PFpSBww61zbWVuIGxlbiBwcmUgamVkbm8KKyAgICAgICAgICBwb3XFvml0aWUgdnloxL5hZMOhdmFjaWVobyBwcsOta2F6dSwgcG91xb5pIFxjOiAgL2lnbm9yZVxjIDxFTlRFUj4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICBMRUtDSUEgNiBaSFJOVVRJRQorCisKKyAgMS4gTmFww63FoSAgbyAgcHJlIG90dm9yZW5pZSByaWFka3UgcG9kIGt1cnpvcm9tIGEgxaF0YXJ0IHZrbGFkYWNpZWhvIG3Ds2R1LgorICAgICBOYXDDrcWhICBPICBwcmUgb3R2b3JlbmllIHJpYWRrdSBuYWQga3Vyem9yb20uCisKKyAgMi4gTmFww63FoSAgYSAgcHJlIHZrbGFkYW5pZSB0ZXh0dSBaQSBrdXJ6b3IuCisgICAgIE5hcMOtxaEgIEEgIHByZSB2a2xhZGFuaWUgdGV4dHUgemEga29uY29tIHJpYWRrdS4KKworICAzLiBQcsOta2F6ICBlICBwcmVzdW5pZSBrdXJvenIgbmEga29uaWVjIHNsb3ZhCisKKyAgNC4gT3BlcsOhdG9yICB5ICB2eXN0cmlobmUgKHNrb3DDrXJ1amUpIHRleHQsICBwICBobyB2bG/FvsOtLgorCisgIDUuIE5hcMOtc2FuaWUgdmXEvmvDqWhvICBSICBwcmVwbmUgZG8gbmFocmFkem92YWNpZWhvIG3Ds2R1LCBrw71tIG5pZWplCisgICAgIHN0bGHEjWVuw6kgPEVTQz4uCisKKyAgNi4gTmFww61zYW5pZSAiOnNldCB4eHgiIG5hc3RhdsOtIG1vxb5ub3PFpSAieHh4Ii4gTmlla3RvcsOpIG5hc3RhdmVuaWEgc8O6OgorICAgICAnaWMnICdpZ25vcmVjYXNlJyBpZ25vcnVqZSB2ZcS+a8OpIGEgbWFsw6kgcMOtc21lbsOhIHBvxI1hcyB2eWjEvmFkw6F2YW5pYS4KKyAgICAgJ2lzJyAnaW5jc2VhcmNoJyB6b2JyYXp1amUgxI1pYXN0b8SNbsOpIHJlxaVhemNlIHZ5aMS+YWTDoXZhbsOpaG8gcmXFpWF6Y2EuCisgICAgICdobHMnICdobHNlYXJjaCcgdnl6bmHEjcOtIHbFoWV0a3kgdnloxL5hZMOhdmFuw6kgcmXFpWF6Y2UuCisgICAgICBNw7TFvmXFoSBwb3XFvmnFpSBob2Npa3RvcsO9IHogZGxow71jaCBhIGtyw6F0a3ljaCBuw6F6dm92IG1vxb5ub3N0w60uCisKKyAgNy4gVmxvxb4gIm5vIiBwcmVkIG5hc3RhdmVuaWUgcHJlIGplaG8gdnlwbnV0aWU6ICA6c2V0IG5vaWMKKworCisKKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICBMRUtDSUEgNy4xOiBaw41TS0FOSUUgTsOBUE9WRURZCisKKworCSAgKiogUG91xb7DrXZhaiBvbi1saW5lIHN5c3TDqW0gbsOhcG92ZWR5ICoqCisKKyAgVmltIG3DoSBvYnNpYWhseSBvbi1saW5lIHN5c3TDqW0gbsOhcG92ZWR5LiBQcmUgb2TFoXRhcnRvdmFuaWUsIHZ5c2vDusWhYWogamVkZW4KKyAgeiB0w71jaHRvIHRyb2NoOgorCS0gc3RsYcSNIGtsw6F2ZXN1IDxIRUxQPiAoYWsgbmVqYWvDuiBtw6HFoSkKKwktIHN0bGHEjSBrbMOhdmVzdSA8RjE+IChhayBuZWpha8O6IG3DocWhKQorCS0gbmFww63FoSAgOmhlbHAgPEVOVEVSPgorCisgIMSMw610YWogdGV4dCB2IG9rbmUgbsOhcG92ZWR5IHByZSB6w61za2FuaWUgcHJlZHN0YXZ5IGFrbyBuw6Fwb3ZlZGEgZnVuZ3VqZS4KKyAgTmFww63FoSAgIENUUkwtVyBDVFJMLVcgIHByZSBza29rIHogamVkbsOpaG8gb2tuYSBkbyBkcnVow6loby4KKyAgTmFww63FoSAgICA6cSA8RU5URVI+ICAgIMSNw61tIHphdHZvcsOtxaEgb2tubyBuw6Fwb3ZlZHkuCisKKyAgTcO0xb5lxaEgbsOhanPFpSBoZWxwIGt1IGhvY2lha2VqIHTDqW1lIHByaWRhbsOtbSBhcmd1bWVudHUga3UgcHLDrWthenUgIjpoZWxwIi4KKyAgVnlza8O6xaFhaiB0aWV0byAobmV6YWJ1ZG5pIHN0bGHEjWnFpSA8RU5URVI+KToKKworCTpoZWxwIHcKKwk6aGVscCBjX0NUUkwtRAorCTpoZWxwIGluc2VydC1pbmRleAorCTpoZWxwIHVzZXItbWFudWFsCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSBMRUtDSUEgNy4yOiBWWVRWT1JFTklFIMWgVEFSVE9WQUNJRUhPIFNLUklQVFUKKworCQkgICAgICAgKiogWmFwbmkgZnVua2NpZSBlZGl0b3JhIFZpbSAqKgorCisgIFZpbSBtw6Egb21ub2hvIHZpYWMgZnVua2NpaSBuZcW+IFZpLCBhbGUgdmXEjcWhaW5hIHogbmljaCBqZSBpbXBsaWNpdG5lCisgIHZ5cG51dMOhLiBQcmUgcG91xb7DrXZhbmllIHZpYWMgVmltIGZ1bmtjaWkgdnl0dm9yICJ2aW1yYyIgc8O6Ym9yLgorCisgIDEuIFphxI1uaSBlZGl0b3ZhxaUgInZpbXJjIiBzw7pib3IsIHRvIHrDoXZpc8OtIG5hIHBvdcW+aXRvbSBzeXN0w6ltZToKKwk6ZSB+Ly52aW1yYyAgICAgIHByZSBVbml4CisJOmUgJFZJTS9fdmltcmMgICBwcmUgTVMtV2luZG93cworCisgIDIuIFRlcmF6IHNpIHByZcSNw610YWogdGV4dCBwcsOta2xhZHUgInZpbXJjIiBzw7pib3J1OgorCisJOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKworICAzLiBVbG/FviBzw7pib3I6CisJOncKKworICBQcmkgbmFzbGVkdWrDumNvbSDFoXRhcnRlIGVkaXRvcmEgVmltIHNhIHBvdcW+aWplIHp2w71yYXrFiG92YW5pZSBzeW50YXhlLgorICBEbyAidmltcmMiIHPDumJvcnUgbcO0xb5lxaEgcHJpZGHFpSB2xaFldGt5IHN2b2plIHVwcmVkbm9zdMWIb3ZhbsOpIG5hc3RhdmVuaWEuCisgIFByZSB2aWFjIGluZm9ybcOhY2lpIG5hcMOtxaEgIDpoZWxwIHZpbXJjLWludHJvCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgICAgICAgICAgICAgICAgICAgTEVLQ0lBIDcuMyBET0tPTsSMRU5JRQorCisgICAgICoqIERva29uxI1pIHByw61rYXogbmEgcHLDrWthem92b20gcmlhZGt1IHBvdcW+aXTDrW0gQ1RSTC1EIGEgPFRBQj4gKioKKworICAxLiBVaXN0aSBzYSwgxb5lIFZpbSBuaWVqZSB2IGtvbXBhdGliaWxub20gbcOzZGU6ICA6c2V0IG5vY3AKKworICAyLiBQb3pyaSBzYSBha8OpIHPDumJvcnkgc2EgbmFjaMOhZHphasO6IHYgYWRyZXPDoXJpOiAgOiFscyAgYWxlYm8gIDohZGlyCisKKyAgMy4gTmFww63FoSB6YcSNaWF0b2sgcHLDrWthenU6ICA6ZQorCisgIDQuIFN0bGHEjSAgQ1RSTC1EICBhIFZpbSB6b2JyYXrDrSB6b3puYW0gcHLDrWthem92IHphxI3DrW5hasO6Y2ljaCAiZSIuCisKKyAgNS4gU3RsYcSNIDxUQUI+IGEgVmltIGRva29uxI3DrSBtZW5vIHByw61rYXp1IG5hICI6ZWRpdCIuCisKKyAgNi4gVGVyYXogcHJpZGFqIG1lZHplcm7DrWsgYSB6YcSNaWF0b2sgbWVuYSBleGlzdHVqw7pjZWhvIHPDumJvcnU6CisgICAgIDplZGl0IEZJTAorCisgIDcuIFN0bGHEjSA8VEFCPi4gVmltIGRva29uxI3DrSBtZW5vIChhayBqZSBqZWRpbmXEjW7DqSkuCisKK1BPWk7DgU1LQTogRG9rb27EjW92YW5pZSBmdW5ndWplIHByZSB2ZcS+YSBwcsOta2F6b3YuIFZ5c2vDusWhYWogc3RsYcSNZW5pZQorICAgICAgICAgIENUUkwtRCBhIDxUQUI+LiDFoHBlY2nDoWxuZSBqZSB0byB1xb5pdG/EjW7DqSBwcmUgcHLDrWtheiAgOmhlbHAuCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgICAgICAgICAgIExFS0NJQSA3IFpIUk5VVElFCisKKyAgMS4gTmFww63FoSAgOmhlbHAgIGFsZWJvIHN0bGHEjSA8RjE+IGFsZWJvIDxIZWxwPiBwcmUgb3R2b3JlbmllIG9rbmEgbsOhcG92ZWR5LgorCisgIDIuIE5hcMOtxaEgIDpoZWxwIHByw61rYXogIHByZSB2eWjEvmFkYW5pZSBuw6Fwb3ZlZHkga3UgcHLDrWthenUgcHLDrWthei4KKworICAzLiBOYXDDrcWhICBDVFJMLVcgQ1RSTC1XICBuYSBwcmVza2/EjWVuaWUgZG8gaW7DqWhvIG9rbmEuCisKKyAgNC4gTmFww63FoSAgOnEgIHByZSB6YXR2b3JlbmllIG9rbmEgbsOhcG92ZWR5CisKKyAgNS4gVnl0dm9yIMWhdGFydG92YWPDrSBza3JpcHQgdmltcmMgcHJlIHVkcsW+YW5pZSB1cHJlZG5vc3TFiG92YW7DvWNoIG5hc3RhdmVuw60uCisKKyAgNi4gUG/EjWFzIHDDrXNhbmlhIHByw61rYXp1ICA6ICBzdGxhxI0gQ1RSTC1EIHByZSB6b2JyYXplbmllIGRva29uxI1lbsOtLgorICAgICBTdGxhxI0gPFRBQj4gcHJlIHBvdcW+aXRpZSBqZWRuw6lobyB6IGRva29uxI1lbsOtLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisKKworICBUb3RvIHZ5bWVkenVqZSB2w711a3UgVmltdS4gVG90byBqZSB1csSNZW7DqSBwcmUgc3RydWNuw70gcHJlaMS+YWQgbyBlZGl0b3JlCisgIFZpbSwgw7pwbG5lIHBvc3RhxI11asO6Y2UgcHJlIMS+YWhrw6kgYSBvYnN0b2puw6kgcG91xb7DrXZhbmllIHRvaHRvIGVkaXRvcmEuCisgIFTDoXRvIHbDvXVrYSBqZSDEj2FsZWtvIG9kIGtvbXBsZXRub3N0aSwgcHJldG/FvmUgVmltIG3DoSBvbW5vaG8gdmlhY2VqIHByw61rYXpvdi4KKyAgQWtvIMSPYWzFoWllIHNpIHByZcSNw610YWogdcW+w612YXTEvnNrw70gbWFudcOhbDogIjpoZWxwIHVzZXItbWFudWFsIi4KKworICBQcmUgxI9hbMWhaWUgxI3DrXRhbmllIGEgxaF0w7pkaXVtIGplIG9kcG9yw7rEjWFuw6Ega25paGE6CisgIFZpbSAtIFZpIEltcHJvdmVkIC0gb2QgU3RldmUgT3VhbGxpbmUKKyAgVnlkYXZhdGXEvjogTmV3IFJpZGVycworICBQcnbDoSBrbmloYSB1csSNZW7DoSBwcmUgVmltLiDFoHBlY2nDoWxuZSB2aG9kbsOhIHByZSB6YcSNaWF0b8SNbsOta292LgorICBPYnNhaHVqZSBtbm/FvnN0dm8gcHLDrWtsYWRvdiBhIG9icsOhemtvdi4KKyAgUG96cmkgbmEgaHR0cDovL2ljY2YtaG9sbGFuZC5vcmcvY2xpY2s1Lmh0bWwKKworICBUw6F0byBrbmloYSBqZSBzdGFyxaFpYSBhIGplIHZpYWMgbyBWaSBha28gbyBWaW0sIGFsZSBqZSB0aWXFviBvZHBvcsO6xI1hbsOhOgorICBMZWFybmluZyB0aGUgVmkgRWRpdG9yIC0gb2QgTGluZGEgTGFtYgorICBWeWRhdmF0ZcS+OiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgorICBKZSB0byBkb2Jyw6Ega25paGEgcHJlIHrDrXNrYW5pZSB2ZWRvbW9zdMOtIG8gcHLDoWNpIHMgZWRpdG9yb20gVmkuCisgIMWgaWVzdGUgdnlkYW5pZSBvYnNhaHVqZSB0aWXFviBpbmZvcm3DoWNpZSBvIGVkaXRvcmUgVmltLgorCisgIFTDoXRvIHbDvXVrYSBib2xhIG5hcMOtc2Fuw6EgYXV0b3JtaSBNaWNoYWVsIEMuIFBpZXJjZSBhIFJvYmVydCBLLiBXYXJlLAorICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgcyBwb3XFvml0w61tIG15xaFsaWVub2sgZG9kYW7DvW1pIG9kIENoYXJsZXMgU21pdGgsCisgIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKworICBNb2RpZmlrb3ZhbsOpIHByZSBWaW0gb2QgQnJhbSBNb29sZW5hYXIuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgIFByZWtsYWQgZG8gU2xvdmVuxI1pbnk6IMS9dWJvxaEgxIxlbGtvCisgIGUtbWFpbDogICAgICAgY2VsYm9zQGlubWFpbC5zaworICBMYXN0IENoYW5nZTogIDIwMDYgQXByIDE4CisgIGVuY29kaW5nOiAgICAgaXNvODg1OS0yCmRpZmYgLS1naXQgYS9ydW50aW1lL3ZpbXJjX2V4YW1wbGUudmltIGIvcnVudGltZS92aW1yY19leGFtcGxlLnZpbQppbmRleCBmNjllM2Q2Li5lYWYzZmQ2IDEwMDY0NAotLS0gYS9ydW50aW1lL3ZpbXJjX2V4YW1wbGUudmltCisrKyBiL3J1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIEFuIGV4YW1wbGUgZm9yIGEgdmltcmMgZmlsZS4KICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBjaGFuZ2U6CTIwMDIgU2VwIDE5CisiIExhc3QgY2hhbmdlOgkyMDA2IE5vdiAxNgogIgogIiBUbyB1c2UgaXQsIGNvcHkgaXQgdG8KICIgICAgIGZvciBVbml4IGFuZCBPUy8yOiAgfi8udmltcmMKQEAgLTM3LDkgKzM3LDggQEAKICIgRG9uJ3QgdXNlIEV4IG1vZGUsIHVzZSBRIGZvciBmb3JtYXR0aW5nCiBtYXAgUSBncQogCi0iIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdGhhdCBhbHNvIHdvcmtzIGluIGJsb2NrIG1vZGUsIGJ1dCB0aGUgZGVsZXRlZAotIiB0ZXh0IGlzIGxvc3QgYW5kIGl0IG9ubHkgd29ya3MgZm9yIHB1dHRpbmcgdGhlIGN1cnJlbnQgcmVnaXN0ZXIuCi0idm5vcmVtYXAgcCAiX2RwCisiIEluIG1hbnkgdGVybWluYWwgZW11bGF0b3JzIHRoZSBtb3VzZSB3b3JrcyBqdXN0IGZpbmUsIHRodXMgZW5hYmxlIGl0Lgorc2V0IG1vdXNlPWEKIAogIiBTd2l0Y2ggc3ludGF4IGhpZ2hsaWdodGluZyBvbiwgd2hlbiB0aGUgdGVybWluYWwgaGFzIGNvbG9ycwogIiBBbHNvIHN3aXRjaCBvbiBoaWdobGlnaHRpbmcgdGhlIGxhc3QgdXNlZCBzZWFyY2ggcGF0dGVybi4KQEAgLTY5LDcgKzY4LDcgQEAKICAgIiAoaGFwcGVucyB3aGVuIGRyb3BwaW5nIGEgZmlsZSBvbiBndmltKS4KICAgYXV0b2NtZCBCdWZSZWFkUG9zdCAqCiAgICAgXCBpZiBsaW5lKCInXCIiKSA+IDAgJiYgbGluZSgiJ1wiIikgPD0gbGluZSgiJCIpIHwKLSAgICBcICAgZXhlICJub3JtYWwgZ2BcIiIgfAorICAgIFwgICBleGUgIm5vcm1hbCEgZ2BcIiIgfAogICAgIFwgZW5kaWYKIAogICBhdWdyb3VwIEVORApAQCAtNzksMyArNzgsOCBAQAogICBzZXQgYXV0b2luZGVudAkJIiBhbHdheXMgc2V0IGF1dG9pbmRlbnRpbmcgb24KIAogZW5kaWYgIiBoYXMoImF1dG9jbWQiKQorCisiIENvbnZlbmllbnQgY29tbWFuZCB0byBzZWUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY3VycmVudCBidWZmZXIgYW5kIHRoZQorIiBmaWxlIGl0IHdhcyBsb2FkZWQgZnJvbSwgdGh1cyB0aGUgY2hhbmdlcyB5b3UgbWFkZS4KK2NvbW1hbmQgRGlmZk9yaWcgdmVydCBuZXcgfCBzZXQgYnQ9bm9maWxlIHwgciAjIHwgMGRfIHwgZGlmZnRoaXMKKwkgCVwgfCB3aW5jbWQgcCB8IGRpZmZ0aGlzCg==