ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvYWRhLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhLnZpbQppbmRleCBmZmQwZmY4Li44ZjUyNWY0IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2FkYS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9hZGEudmltCkBAIC0xLDE1ICsxLDE1IEBACiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBEZXNjcmlwdGlvbjogUGVyZm9ybSBBZGEgc3BlY2lmaWMgY29tcGxldGlvbiAmIHRhZ2dpbmcuCiAiICAgICBMYW5ndWFnZTogQWRhICgyMDA1KQotIgkgICAkSWQkCisiCSAgICRJZDogYWRhLnZpbSA4ODcgMjAwOC0wNy0wOCAxNDoyOTowMVoga3Jpc2NoaWsgJAogIiAgIE1haW50YWluZXI6IE1hcnRpbiBLcmlzY2hpayA8a3Jpc2NoaWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogIgkJVGF5bG9yIFZlbmFibGUgPHRheWxvckBtZXRhc3ludGF4Lm5ldD4KICIJCU5laWwgQmlyZCA8bmVpbEBmbnh3ZWIuY29tPgogIgkJTmVkIE9raWUgPG5va2llQHJhZGZvcmQuZWR1PgotIiAgICAgICRBdXRob3IkCi0iCSAkRGF0ZSQKKyIgICAgICAkQXV0aG9yOiBrcmlzY2hpayAkCisiCSAkRGF0ZTogMjAwOC0wNy0wOCAxNjoyOTowMSArMDIwMCAoRGksIDA4IEp1bCAyMDA4KSAkCiAiICAgICAgVmVyc2lvbjogNC42Ci0iICAgICRSZXZpc2lvbiQKKyIgICAgJFJldmlzaW9uOiA4ODcgJAogIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vZ251YWRhLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2F1dG9sb2FkL2FkYS52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkyNi4wNS4yMDA2IE1LICcgc2hvdWxkIG5vdCBiZSBpbiBpc2tleXdvcmQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL2FkYWNvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhY29tcGxldGUudmltCmluZGV4IDhkYjQzNTEuLjI2NTlmNTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvYWRhY29tcGxldGUudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhY29tcGxldGUudmltCkBAIC0xLDEyICsxLDEyIEBACiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBEZXNjcmlwdGlvbjogVmltIEFkYSBvbW5pY29tcGxldGlvbiBmaWxlCiAiICAgICBMYW5ndWFnZToJQWRhICgyMDA1KQotIgkgICAkSWQkCisiCSAgICRJZDogYWRhY29tcGxldGUudmltIDg4NyAyMDA4LTA3LTA4IDE0OjI5OjAxWiBrcmlzY2hpayAkCiAiICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGlrCi0iICAgICAgJEF1dGhvciQKLSIJICREYXRlJAorIiAgICAgICRBdXRob3I6IGtyaXNjaGlrICQKKyIJICREYXRlOiAyMDA4LTA3LTA4IDE2OjI5OjAxICswMjAwIChEaSwgMDggSnVsIDIwMDgpICQKICIgICAgICBWZXJzaW9uOiA0LjYKLSIgICAgJFJldmlzaW9uJAorIiAgICAkUmV2aXNpb246IDg4NyAkCiAiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvYWRhY29tcGxldGUudmltICQKICIgICAgICBIaXN0b3J5OiAyNC4wNS4yMDA2IE1LIFVuaWZpZWQgSGVhZGVycwogIgkJMjYuMDUuMjAwNiBNSyBpbXByb3ZlZCBzZWFyY2ggZm9yIGJlZ2luIG9mIHdvcmQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL2RlY2FkYS52aW0gYi9ydW50aW1lL2F1dG9sb2FkL2RlY2FkYS52aW0KaW5kZXggZmI1NDAwZS4uNzc0MWZmMCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9kZWNhZGEudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvZGVjYWRhLnZpbQpAQCAtMSwxMyArMSwxMyBAQAogIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiAgRGVzY3JpcHRpb246IFZpbSBBZGEvRGVjIEFkYSBjb21waWxlciBmaWxlCiAiICAgICBMYW5ndWFnZTogQWRhIChEZWMgQWRhKQotIiAgICAgICAgICAkSWQkCisiICAgICAgICAgICRJZDogZGVjYWRhLnZpbSA4ODcgMjAwOC0wNy0wOCAxNDoyOTowMVoga3Jpc2NoaWsgJAogIiAgICBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNiBNYXJ0aW4gS3Jpc2NoaWsKICIgICBNYWludGFpbmVyOglNYXJ0aW4gS3Jpc2NoaWsgPGtyaXNjaGlrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLSIgICAgICAkQXV0aG9yJAotIiAgICAgICAgJERhdGUkCisiICAgICAgJEF1dGhvcjoga3Jpc2NoaWsgJAorIiAgICAgICAgJERhdGU6IDIwMDgtMDctMDggMTY6Mjk6MDEgKzAyMDAgKERpLCAwOCBKdWwgMjAwOCkgJAogIiAgICAgIFZlcnNpb246IDQuNiAgICAgIAotIiAgICAkUmV2aXNpb24kCisiICAgICRSZXZpc2lvbjogODg3ICQKICIgICAgICRIZWFkVVJMOiBodHRwczovL2dudWFkYS5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9hdXRvbG9hZC9kZWNhZGEudmltICQKICIgICAgICBIaXN0b3J5OiAyMS4wNy4yMDA2IE1LIE5ldyBEZWMgQWRhCiAiICAgICAgICAgICAgICAgMTUuMTAuMjAwNiBNSyBCcmFtJ3Mgc3VnZ2VzdGlvbiBmb3IgcnVudGltZSBpbnRlZ3JhdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC9nZXRzY3JpcHQudmltIGIvcnVudGltZS9hdXRvbG9hZC9nZXRzY3JpcHQudmltCmluZGV4IDVhNDY2Y2IuLjZlMDE5NzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvZ2V0c2NyaXB0LnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL2dldHNjcmlwdC52aW0KQEAgLTEsOCArMSw4IEBACiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBnZXRzY3JpcHQudmltCiAiICBBdXRob3I6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgotIiAgRGF0ZToJSnVsIDEwLCAyMDA4Ci0iICBWZXJzaW9uOgkzMQorIiAgRGF0ZToJRGVjIDI4LCAyMDA5CisiICBWZXJzaW9uOgkzMgogIiAgSW5zdGFsbGluZzoJOmhlbHAgZ2x2cy1pbnN0YWxsCiAiICBVc2FnZToJOmhlbHAgZ2x2cwogIgpAQCAtMTIsMTkgKzEyLDI0IEBACiAiIEluaXRpYWxpemF0aW9uOgl7e3sxCiAiIGlmIHlvdSdyZSBzb3VyY2luZyB0aGlzIGZpbGUsIHN1cmVseSB5b3UgY2FuJ3QgYmUKICIgZXhwZWN0aW5nIHZpbSB0byBiZSBpbiBpdHMgdmktY29tcGF0aWJsZSBtb2RlIQoraWYgZXhpc3RzKCJnOmxvYWRlZF9nZXRzY3JpcHQiKQorIGZpbmlzaAorZW5kaWYKK2xldCBnOmxvYWRlZF9nZXRzY3JpcHQ9ICJ2MzIiCiBpZiAmY3AKICBlY2hvZXJyICJHZXRMYXRlc3RWaW1TY3JpcHRzIGlzIG5vdCB2aS1jb21wYXRpYmxlOyBub3QgbG9hZGVkICh5b3UgbmVlZCB0byBzZXQgbm9jcCkiCiAgZmluaXNoCiBlbmRpZgoraWYgdjp2ZXJzaW9uIDwgNzAyCisgZWNob2hsIFdhcm5pbmdNc2cKKyBlY2hvICIqKip3YXJuaW5nKioqIHRoaXMgdmVyc2lvbiBvZiBnZXRzY3JpcHQgbmVlZHMgdmltIDcuMiIKKyBlY2hvaGwgTm9ybWFsCisgZmluaXNoCitlbmRpZgogbGV0IHM6a2VlcGNwbyA9ICZjcG8KIHNldCBjcG8mdmltCiAiRGVjaG9UYWJPbgogCi1pZiBleGlzdHMoImc6bG9hZGVkX2dldHNjcmlwdCIpCi0gZmluaXNoCi1lbmRpZgotbGV0IGc6bG9hZGVkX2dldHNjcmlwdD0gInYzMSIKLQogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgR2xvYmFsIFZhcmlhYmxlczoge3t7MQogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwLDI1ICs0NSw2IEBACiAgIGxldCBnOmdldHNjcmlwdF9jeWd3aW49IDAKICBlbmRpZgogZW5kaWYKLSIgc2hlbGwgcXVvdGluZyBjaGFyYWN0ZXIge3t7MgotaWYgZXhpc3RzKCJnOm5ldHJ3X3NocSIpICYmICFleGlzdHMoImc6Z2V0c2NyaXB0X3NocSIpCi0gbGV0IGc6Z2V0c2NyaXB0X3NocT0gZzpuZXRyd19zaHEKLWVsc2VpZiAhZXhpc3RzKCJnOmdldHNjcmlwdF9zaHEiKQotIGlmIGV4aXN0cygiJnNocSIpICYmICZzaHEgIT0gIiIKLSAgbGV0IGc6Z2V0c2NyaXB0X3NocT0gJnNocQotIGVsc2VpZiBleGlzdHMoIiZzeHEiKSAmJiAmc3hxICE9ICIiCi0gIGxldCBnOmdldHNjcmlwdF9zaHE9ICZzeHEKLSBlbHNlaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpCi0gIGlmIGc6Z2V0c2NyaXB0X2N5Z3dpbgotICAgbGV0IGc6Z2V0c2NyaXB0X3NocT0gIiciCi0gIGVsc2UKLSAgIGxldCBnOmdldHNjcmlwdF9zaHE9ICciJwotICBlbmRpZgotIGVsc2UKLSAgbGV0IGc6Z2V0c2NyaXB0X3NocT0gIiciCi0gZW5kaWYKLSIgY2FsbCBEZWNobygiZzpnZXRzY3JpcHRfc2hxPCIuZzpnZXRzY3JpcHRfc2hxLiI+IikKLWVuZGlmCiAKICIgd2dldCB2cyBjdXJsIHt7ezIKIGlmICFleGlzdHMoImc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0IikKQEAgLTExMiw3ICs5OCw5IEBACiAgIGVuZGlmCiAgZW5kaWYKIAotIGlmIGV4aXN0cygnJEhPTUUnKSAmJiBpc2RpcmVjdG9yeShleHBhbmQoIiRIT01FIikuIi8iLnM6ZG90dmltKQorIGlmIGV4aXN0cygiZzpHZXRMYXRlc3RWaW1TY3JpcHRzX2F1dG9pbnN0YWxsZGlyIikgJiYgaXNkaXJlY3RvcnkoZzpHZXRMYXRlc3RWaW1TY3JpcHRzX2F1dG9pbnN0YWxsZGlyKQorICBsZXQgczphdXRvaW5zdGFsbD0gZzpHZXRMYXRlc3RWaW1TY3JpcHRzX2F1dG9pbnN0YWxsZGlyIgorIGVsc2VpZiBleGlzdHMoJyRIT01FJykgJiYgaXNkaXJlY3RvcnkoZXhwYW5kKCIkSE9NRSIpLiIvIi5zOmRvdHZpbSkKICAgbGV0IHM6YXV0b2luc3RhbGw9ICRIT01FLiIvIi5zOmRvdHZpbQogIGVuZGlmCiAiIGNhbGwgRGVjaG8oInM6YXV0b2luc3RhbGw8Ii5zOmF1dG9pbnN0YWxsLiI+IikKQEAgLTE2NSw3ICsxNTMsNiBAQAogIiAgIGNhbGwgRHJldCgiR2V0TGF0ZXN0VmltU2NyaXB0cyA6IHVuYWJsZSB0byBmaW5kIGEgR2V0TGF0ZXN0IHN1YmRpcmVjdG9yeSIpCiAgICByZXR1cm4KICAgZW5kaWYKLQogICBpZiBmaWxld3JpdGFibGUoZGF0YWRpcikgIT0gMgogICAgZWNob2VyciAiKGdldExhdGVzdFZpbVNjcmlwdHMpIFlvdXIgIi5kYXRhZGlyLiIgaXNuJ3Qgd3JpdGFibGUiCiAiICAgY2FsbCBEcmV0KCJHZXRMYXRlc3RWaW1TY3JpcHRzIDogbm9uLXdyaXRhYmxlIGRpcmVjdG9yeTwiLmRhdGFkaXIuIj4iKQpAQCAtMTgyLDIxICsxNjksMjkgQEAKICIgICBjYWxsIERyZXQoIkdldExhdGVzdFZpbVNjcmlwdHMgOiBub24td3JpdGFibGUgZGF0YWZpbGU8Ii5kYXRhZmlsZS4iPiIpCiAgICByZXR1cm4KICAgZW5kaWYKKyAgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICAiIFBhc3NlZCBzYW5pdHkgY2hlY2tzCisgICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogIiAgY2FsbCBEZWNobygiZGF0YWRpciAgPCIuZGF0YWRpci4iPiIpCiAiICBjYWxsIERlY2hvKCJkYXRhZmlsZSA8Ii5kYXRhZmlsZS4iPiIpCiAKLSAgIiBkb24ndCBsZXQgYW55IGV2ZW50cyBpbnRlcmZlcmUgKGxpa2Ugd2lubWFuYWdlcidzLCB0YWdsaXN0J3MsIGV0YykKLSAgbGV0IGVpa2VlcD0gJmVpCi0gIGxldCBobHNrZWVwPSAmaGxzCi0gIHNldCBlaT1hbGwgaGxzJnZpbQorICAiIGRvbid0IGxldCBhbnkgZXZlbnQgaGFuZGxlcnMgaW50ZXJmZXJlIChsaWtlIHdpbm1hbmFnZXIncywgdGFnbGlzdCdzLCBldGMpCisgIGxldCBlaWtlZXAgID0gJmVpCisgIGxldCBobHNrZWVwID0gJmhscworICBsZXQgYWNka2VlcCA9ICZhY2QKKyAgc2V0IGVpPWFsbCBobHMmdmltIG5vYWNkCiAKLSAgIiByZWNvcmQgY3VycmVudCBkaXJlY3RvcnksIGNoYW5nZSB0byBkYXRhZGlyLCBvcGVuIHNwbGl0IHdpbmRvdyB3aXRoCi0gICIgZGF0YWZpbGUKKyAgIiBFZGl0IHRoZSBkYXRhZmlsZSAoaWUuIEdldExhdGVzdFZpbVNjcmlwdHMuZGF0KToKKyAgIiAxLiByZWNvcmQgY3VycmVudCBkaXJlY3RvcnkgKG9yaWdkaXIpLAorICAiIDIuIGNoYW5nZSBkaXJlY3RvcnkgdG8gZGF0YWRpciwKKyAgIiAzLiBzcGxpdCB3aW5kb3cKKyAgIiA0LiBlZGl0IGRhdGFmaWxlCiAgIGxldCBvcmlnZGlyPSBnZXRjd2QoKQogIiAgY2FsbCBEZWNobygiZXhlIGNkICIuZm5hbWVlc2NhcGUoc3Vic3RpdHV0ZShkYXRhZGlyLCdcJywnLycsJ2dlJykpKQogICBleGUgImNkICIuZm5hbWVlc2NhcGUoc3Vic3RpdHV0ZShkYXRhZGlyLCdcJywnLycsJ2dlJykpCiAgIHNwbGl0Ci0iICBjYWxsIERlY2hvKCJleGUgZSAiLmZuYW1lZXNjYXBlKHN1YnN0aXR1dGUoZGF0YWZpbGUsJ1wnLCcvJywnZ2UnKSkpCisiICBjYWxsIERlY2hvKCJleGUgIGUgIi5mbmFtZWVzY2FwZShzdWJzdGl0dXRlKGRhdGFmaWxlLCdcJywnLycsJ2dlJykpKQogICBleGUgImUgIi5mbmFtZWVzY2FwZShzdWJzdGl0dXRlKGRhdGFmaWxlLCdcJywnLycsJ2dlJykpCiAgIHJlcyAxMDAwCiAgIGxldCBzOmRvd25sb2FkcyA9IDAKQEAgLTIwNyw2OSArMjAyLDY4IEBACiAiICBjYWxsIERlY2hvKCJzZWFyY2hpbmcgcGx1Z2lucyBmb3IgR2V0TGF0ZXN0VmltU2NyaXB0cyBkZXBlbmRlbmNpZXMiKQogICBsZXQgbGFzdGxpbmUgICAgPSBsaW5lKCIkIikKICIgIGNhbGwgRGVjaG8oImxhc3RsaW5lIyIubGFzdGxpbmUpCi0gIGxldCBwbHVnaW5zICAgICA9IHNwbGl0KGdsb2JwYXRoKCZydHAsInBsdWdpbi8qLnZpbSIpLCdcbicpCisgIGxldCBmaXJzdGRpciAgICA9IHN1YnN0aXR1dGUoJnJ0cCwnLC4qJCcsJycsJycpCisgIGxldCBwbHVnaW5zICAgICA9IHNwbGl0KGdsb2JwYXRoKGZpcnN0ZGlyLCJwbHVnaW4vKi52aW0iKSwnXG4nKQorICBsZXQgcGx1Z2lucyAgICAgPSBwbHVnaW5zICsgc3BsaXQoZ2xvYnBhdGgoZmlyc3RkaXIsIkFzTmVlZGVkLyoudmltIiksJ1xuJykKICAgbGV0IGZvdW5kc2NyaXB0ID0gMAotICBsZXQgZmlyc3RkaXI9ICIiCiAKKyAgIiB0aGlzIGxvb3AgdXBkYXRlcyB0aGUgR2V0TGF0ZXN0VmltU2NyaXB0cy5kYXQgZmlsZQorICAiIHdpdGggZGVwZW5kZW5jaWVzIGV4cGxpY2l0bHkgbWVudGlvbmVkIGluIHRoZSBwbHVnaW5zCisgICIgdmlhICAgR2V0TGF0ZXN0VmltU2NyaXB0czogLi4uIGxpbmVzCisgICIgSXQgcmVhZHMgdGhlIHBsdWdpbiBzY3JpcHQgYXQgdGhlIGVuZCBvZiB0aGUgR2V0TGF0ZXN0VmltU2NyaXB0cy5kYXQKKyAgIiBmaWxlLCBleGFtaW5lcyBpdCwgYW5kIHRoZW4gcmVtb3ZlcyBpdC4KICAgZm9yIHBsdWdpbiBpbiBwbHVnaW5zCisiICAgY2FsbCBEZWNobygiICIpCiAiICAgY2FsbCBEZWNobygicGx1Z2luPCIucGx1Z2luLiI+IikKIAotICAgIiBkb24ndCBwcm9jZXNzIHBsdWdpbnMgaW4gc3lzdGVtIGRpcmVjdG9yaWVzCi0gICBpZiBmaXJzdGRpciA9PSAiIgotICAgIGxldCBmaXJzdGRpcj0gc3Vic3RpdHV0ZShwbHVnaW4sJ1svXFxdW14vXFxdXCskJywnJywnJykKLSIgICAgY2FsbCBEZWNobygic2V0dGluZyBmaXJzdGRpcjwiLmZpcnN0ZGlyLiI+IikKLSAgIGVsc2UKLSAgICBsZXQgY3VyZGlyPSBzdWJzdGl0dXRlKHBsdWdpbiwnWy9cXF1bXi9cXF1cKyQnLCcnLCcnKQotIiAgICBjYWxsIERlY2hvKCJjdXJkaXI8Ii5jdXJkaXIuIj4iKQotICAgIGlmIGN1cmRpciAhPSBmaXJzdGRpcgotIiAgICAgY2FsbCBEZWNobygic2tpcHBpbmcgc3Vic2VxdWVudCBwbHVnaW5zOiBjdXJkaXI8Ii5jdXJkaXIuIj4gIT0gZmlyc3RkaXI8Ii5maXJzdGRpci4iPiIpCi0gICAgIGJyZWFrCi0gICAgZW5kaWYKLSAgIGVuZGlmCi0KICAgICIgcmVhZCBwbHVnaW4gaW4KICAgICIgZXZpZGVudGx5IGEgOnIgY3JlYXRlcyBhIG5ldyBidWZmZXIgKHRoZSAiIyIgYnVmZmVyKSB0aGF0IGlzIHN1YnNlcXVlbnRseSB1bnVzZWQgLS0gYndpcGluZyBpdAogICAgJAotIiAgIGNhbGwgRGVjaG8oIiAiKQogIiAgIGNhbGwgRGVjaG8oIi5kZXBlbmRlbmN5IGNoZWNraW5nPCIucGx1Z2luLiI+IGxpbmUkPSIubGluZSgiJCIpKQotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciAiLmZuYW1lZXNjYXBlKHBsdWdpbikpCisiICAgY2FsbCBEZWNobygiLi5leGUgc2lsZW50IHIgIi5mbmFtZWVzY2FwZShwbHVnaW4pKQogICAgZXhlICJzaWxlbnQgciAiLmZuYW1lZXNjYXBlKHBsdWdpbikKICAgIGV4ZSAic2lsZW50IGJ3aXBlICIuYnVmbnIoIiMiKQogCiAgICB3aGlsZSBzZWFyY2goJ14iXHNcK0dldExhdGVzdFZpbVNjcmlwdHM6XHNcK1xkXCtcc1wrXGRcKycsJ1cnKSAhPSAwCi0gICAgbGV0IG5ld3NjcmlwdD0gc3Vic3RpdHV0ZShnZXRsaW5lKCIuIiksJ14iXHNcK0dldExhdGVzdFZpbVNjcmlwdHM6XHNcK1xkXCtcc1wrXGRcK1xzXCtcKC4qXCkkJywnXDEnLCdlJykKLSAgICBsZXQgbGxwMSAgICAgPSBsYXN0bGluZSsxCi0iICAgIGNhbGwgRGVjaG8oIi4ubmV3c2NyaXB0PCIubmV3c2NyaXB0LiI+IikKKyAgICBsZXQgZGVwc2NyaXB0ICAgPSBzdWJzdGl0dXRlKGdldGxpbmUoIi4iKSwnXiJcc1wrR2V0TGF0ZXN0VmltU2NyaXB0czpcc1wrXGRcK1xzXCtcZFwrXHNcK1woLipcKSQnLCdcMScsJ2UnKQorICAgIGxldCBkZXBzY3JpcHRpZCA9IHN1YnN0aXR1dGUoZ2V0bGluZSgiLiIpLCdeIlxzXCtHZXRMYXRlc3RWaW1TY3JpcHRzOlxzXCtcKFxkXCtcKVxzXCsuKiQnLCdcMScsJycpCisgICAgbGV0IGxscDEgICAgICAgID0gbGFzdGxpbmUrMQorIiAgICBjYWxsIERlY2hvKCIuLmRlcHNjcmlwdDwiLmRlcHNjcmlwdC4iPiIpCiAKLSAgICAiIGRvbid0IHByb2Nlc3MgIiJHZXRMYXRlc3RWaW1TY3JpcHRzIGxpbmVzIC0tIHRob3NlIHRoYXQgaGF2ZSBiZWVuIGRvdWJseS1jb21tZW50ZWQgb3V0Ci0gICAgaWYgbmV3c2NyaXB0ICF+ICdeIicKLSAgICAgIiBmb3VuZCBhICJHZXRMYXRlc3RWaW1TY3JpcHRzOiAjICMiIGxpbmUgaW4gdGhlIHNjcmlwdDsgY2hlY2sgaWYgaXRzIGFscmVhZHkgaW4gdGhlIGRhdGFmaWxlCi0gICAgIGxldCBjdXJsaW5lICAgICA9IGxpbmUoIi4iKQotICAgICBsZXQgbm9haV9zY3JpcHQgPSBzdWJzdGl0dXRlKG5ld3NjcmlwdCwnXHMqOkF1dG9JbnN0YWxsOlxzKicsJycsJ2UnKQotICAgICBleGUgbGxwMQotICAgICBsZXQgc3JjaGxpbmUgICAgPSBzZWFyY2goJ1w8Jy5ub2FpX3NjcmlwdC4nXD4nLCdiVycpCi0iICAgICBjYWxsIERlY2hvKCIuLm5vYWlfc2NyaXB0PCIubm9haV9zY3JpcHQuIj4gc3JjaD0iLnNyY2hsaW5lLiJjdXJsaW5lIyIubGluZSgiLiIpLiIgbGFzdGxpbmUjIi5sYXN0bGluZSkKLQotICAgICBpZiBzcmNobGluZSA9PSAwCi0gICAgICAiIGZvdW5kIGEgbmV3IHNjcmlwdCB0byBwZXJtYW5lbnRseSBpbmNsdWRlIGluIHRoZSBkYXRhZmlsZQotICAgICAgbGV0IGtlZXBfcmVnYSAgID0gQGEKLSAgICAgIGxldCBAYSAgICAgICAgICA9IHN1YnN0aXR1dGUoZ2V0bGluZShjdXJsaW5lKSwnXiJcc1wrR2V0TGF0ZXN0VmltU2NyaXB0czpcc1wrJywnJywnJykKLSAgICAgIGV4ZSBsYXN0bGluZS4icHV0IGEiCi0gICAgICBlY2hvbXNnICJBcHBlbmRpbmcgPCIuQGEuIj4gdG8gIi5kYXRhZmlsZS4iIGZvciAiLm5ld3NjcmlwdAotIiAgICAgIGNhbGwgRGVjaG8oIi4uQVBQRU5EICgiLm5vYWlfc2NyaXB0LiIpPCIuQGEuIj4gdG8gR2V0TGF0ZXN0VmltU2NyaXB0cy5kYXQiKQotICAgICAgbGV0IEBhICAgICAgICAgID0ga2VlcF9yZWdhCi0gICAgICBsZXQgbGFzdGxpbmUgICAgPSBsbHAxCi0gICAgICBsZXQgY3VybGluZSAgICAgPSBjdXJsaW5lICAgICArIDEKLSAgICAgIGxldCBmb3VuZHNjcmlwdCA9IGZvdW5kc2NyaXB0ICsgMQotIiAgICAgZWxzZQkiIERlY2hvCi0iICAgICAgY2FsbCBEZWNobygiLi5mb3VuZCA8Ii5ub2FpX3NjcmlwdC4iPiAoYWxyZWFkeSBpbiBkYXRhZmlsZSBhdCBsaW5lIyIuc3JjaGxpbmUuIikiKQotICAgICBlbmRpZgotCi0gICAgIGxldCBjdXJsaW5lID0gY3VybGluZSArIDEKLSAgICAgZXhlIGN1cmxpbmUKKyAgICAiIGZvdW5kIGEgIkdldExhdGVzdFZpbVNjcmlwdHM6ICMgIyIgbGluZSBpbiB0aGUgc2NyaXB0OworICAgICIgY2hlY2sgaWYgaXRzIGFscmVhZHkgaW4gdGhlIGRhdGFmaWxlIGJ5IHNlYXJjaGluZyBiYWNrd2FyZHMgZnJvbSBsbHAxLAorICAgICIgdGhlIChwcmlvciB0byByZWFkaW5nIGluIHRoZSBwbHVnaW4gc2NyaXB0KSBsYXN0IGxpbmUgcGx1cyBvbmUgb2YgdGhlIEdldExhdGVzdFZpbVNjcmlwdHMuZGF0IGZpbGUsCisgICAgIiBmb3IgdGhlIHNjcmlwdC1pZCB3aXRoIG5vIHdyYXBwaW5nIGFsbG93ZWQuCisgICAgbGV0IGN1cmxpbmUgICAgID0gbGluZSgiLiIpCisgICAgbGV0IG5vYWlfc2NyaXB0ID0gc3Vic3RpdHV0ZShkZXBzY3JpcHQsJ1xzKjpBdXRvSW5zdGFsbDpccyonLCcnLCdlJykKKyAgICBleGUgbGxwMQorICAgIGxldCBzcmNobGluZSAgICA9IHNlYXJjaCgnXlxzKicuZGVwc2NyaXB0aWQuJ1xzXCtcZFwrXHNcKy4qJCcsJ2JXJykKKyAgICBpZiBzcmNobGluZSA9PSAwCisgICAgICIgdGhpcyBzZWNvbmQgc2VhcmNoIGlzIHRha2VuIHdoZW4sIGZvciBleGFtcGxlLCBhICAgMCAwIHNjcmlwdG5hbWUgIGlzIHRvIGJlIHNraXBwZWQgb3ZlcgorICAgICBsZXQgc3JjaGxpbmU9IHNlYXJjaCgnXDwnLm5vYWlfc2NyaXB0LidcPicsJ2JXJykKICAgICBlbmRpZgorIiAgICBjYWxsIERlY2hvKCIuLm5vYWlfc2NyaXB0PCIubm9haV9zY3JpcHQuIj4gZGVwc2NyaXB0aWQjIi5kZXBzY3JpcHRpZC4iIHNyY2hsaW5lIyIuc3JjaGxpbmUuIiBjdXJsaW5lIyIubGluZSgiLiIpLiIgbGFzdGxpbmUjIi5sYXN0bGluZSkKKworICAgIGlmIHNyY2hsaW5lID09IDAKKyAgICAgIiBmb3VuZCBhIG5ldyBzY3JpcHQgdG8gcGVybWFuZW50bHkgaW5jbHVkZSBpbiB0aGUgZGF0YWZpbGUKKyAgICAgbGV0IGtlZXBfcmVnYSAgID0gQGEKKyAgICAgbGV0IEBhICAgICAgICAgID0gc3Vic3RpdHV0ZShnZXRsaW5lKGN1cmxpbmUpLCdeIlxzXCtHZXRMYXRlc3RWaW1TY3JpcHRzOlxzXCsnLCcnLCcnKQorICAgICBlY2hvbXNnICJBcHBlbmRpbmcgPCIuQGEuIj4gdG8gIi5kYXRhZmlsZS4iIGZvciAiLmRlcHNjcmlwdAorIiAgICAgY2FsbCBEZWNobygiLi5BcHBlbmRpbmcgPCIuQGEuIj4gdG8gIi5kYXRhZmlsZS4iIGZvciAiLmRlcHNjcmlwdCkKKyAgICAgZXhlIGxhc3RsaW5lLiJwdXQgYSIKKyAgICAgbGV0IEBhICAgICAgICAgID0ga2VlcF9yZWdhCisgICAgIGxldCBsYXN0bGluZSAgICA9IGxscDEKKyAgICAgbGV0IGN1cmxpbmUgICAgID0gY3VybGluZSAgICAgKyAxCisgICAgIGxldCBmb3VuZHNjcmlwdCA9IGZvdW5kc2NyaXB0ICsgMQorIiAgICBlbHNlCSIgRGVjaG8KKyIgICAgIGNhbGwgRGVjaG8oIi4uZm91bmQgPCIubm9haV9zY3JpcHQuIj4gKGFscmVhZHkgaW4gZGF0YWZpbGUgYXQgbGluZSMiLnNyY2hsaW5lLiIpIikKKyAgICBlbmRpZgorCisgICAgbGV0IGN1cmxpbmUgPSBjdXJsaW5lICsgMQorICAgIGV4ZSBjdXJsaW5lCiAgICBlbmR3aGlsZQogCisgICAiIGxscDE6IGxhc3QgbGluZSBwbHVzIG9uZQogICAgbGV0IGxscDE9IGxhc3RsaW5lICsgMQogIiAgIGNhbGwgRGVjaG8oIi5kZWxldGluZyBsaW5lczogIi5sbHAxLiIsJGQiKQogICAgZXhlICJzaWxlbnQhICIubGxwMS4iLCRkIgpAQCAtMjgyLDcgKzI3Niw5IEBACiAgICBzZXRsb2NhbCBub21vZAogICBlbmRpZgogCisgICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIiBDaGVjayBvbiBvdXQtb2YtZGF0ZSBzY3JpcHRzIHVzaW5nIEdldExhdGVzdC9HZXRMYXRlc3RWaW1TY3JpcHRzLmRhdAorICAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBjYWxsIERlY2hvKCJiZWdpbjogY2hlY2tpbmcgb3V0LW9mLWRhdGUgc2NyaXB0cyB1c2luZyBkYXRhZmlsZTwiLmRhdGFmaWxlLiI+IikKICAgc2V0bG9jYWwgbHoKICAgMQpAQCAtMzIyLDggKzMxOCw5IEBACiAKICAgIiByZXN0b3JlIGV2ZW50cyBhbmQgY3VycmVudCBkaXJlY3RvcnkKICAgZXhlICJjZCAiLmZuYW1lZXNjYXBlKHN1YnN0aXR1dGUob3JpZ2RpciwnXCcsJy8nLCdnZScpKQotICBsZXQgJmVpPSBlaWtlZXAKLSAgbGV0ICZobHM9IGhsc2tlZXAKKyAgbGV0ICZlaSAgPSBlaWtlZXAKKyAgbGV0ICZobHMgPSBobHNrZWVwCisgIGxldCAmYWNkID0gYWNka2VlcAogICBzZXRsb2NhbCBub2x6CiAiICBjYWxsIERyZWRpcigiQlVGRkVSIFRFU1QgKEdldExhdGVzdFZpbVNjcmlwdHMgMikiLCJscyEiKQogIiAgY2FsbCBEcmV0KCJHZXRMYXRlc3RWaW1TY3JpcHRzIDogZGlkICIuczpkb3dubG9hZHMuIiBkb3dubG9hZHMiKQpAQCAtMzMzLDcgKzMzMCw3IEBACiAiICBHZXRPbmVTY3JpcHQ6IChHZXQgTGF0ZXN0IFZpbSBTY3JpcHQpIHRoaXMgZnVuY3Rpb24gb3BlcmF0ZXMge3t7MQogIiAgICBvbiB0aGUgY3VycmVudCBsaW5lLCBpbnRlcnByZXRpbmcgdHdvIG51bWJlcnMgYW5kIHRleHQgYXMKICIgICAgU2NyaXB0SUQsIFNvdXJjZUlELCBhbmQgRmlsZW5hbWUuCi0iICAgIEl0IGRvd25sb2FkcyBhbnkgc2NyaXB0cyB0aGF0IGhhdmUgbmV3ZXIgdmVyc2lvbnMgZnJvbSB2aW0uc2YubmV0LgorIiAgICBJdCBkb3dubG9hZHMgYW55IHNjcmlwdHMgdGhhdCBoYXZlIG5ld2VyIHZlcnNpb25zIGZyb20gdmltLnNvdXJjZWZvcmdlLm5ldC4KIGZ1biEgczpHZXRPbmVTY3JpcHQoLi4uKQogIiAgIGNhbGwgRGZ1bmMoIkdldE9uZVNjcmlwdCgpIikKIApAQCAtMzkxLDYgKzM4OCw3IEBACiAiICAgY2FsbCBEZWNobygiZm5hbWUgICA8Ii5mbmFtZS4iPiIpCiAgIGVuZGlmCiAKKyAgIiBwbHVnaW4gYXV0aG9yIHByb3RlY3Rpb24gZnJvbSBkb3dubG9hZGluZyBoaXMvaGVyIG93biBzY3JpcHRzIGF0b3AgdGhlaXIgbGF0ZXN0IHdvcmsKICAgaWYgc2NyaXB0aWQgPT0gMCB8fCBzcmNpZCA9PSAwCiAgICAiIFdoZW4gbG9va2luZyBmb3IgOkF1dG9JbnN0YWxsOiBsaW5lcywgc2tpcCBzY3JpcHRzIHRoYXQgaGF2ZSAgIDAgMCBzY3JpcHRuYW1lCiAgICBsZXQgQGE9IHJlZ2EKQEAgLTQxNiwyMSArNDE0LDIxIEBACiAiICBjYWxsIERlY2hvKCdjb25zaWRlcmluZyA8Jy5haWNtbW50Lic+IHNjcmlwdGlkPScuc2NyaXB0aWQuJyBzcmNpZD0nLnNyY2lkKQogICBlY2hvICdjb25zaWRlcmluZyA8Jy5haWNtbW50Lic+IHNjcmlwdGlkPScuc2NyaXB0aWQuJyBzcmNpZD0nLnNyY2lkCiAKLSAgIiBncmFiIGEgY29weSBvZiB0aGUgcGx1Z2luJ3MgdmltLnNmLm5ldCB3ZWJwYWdlCi0gIGxldCBzY3JpcHRhZGRyID0gJ2h0dHA6Ly92aW0uc2YubmV0L3NjcmlwdC5waHA/c2NyaXB0X2lkPScuc2NyaXB0aWQKKyAgIiBncmFiIGEgY29weSBvZiB0aGUgcGx1Z2luJ3MgdmltLnNvdXJjZWZvcmdlLm5ldCB3ZWJwYWdlCisgIGxldCBzY3JpcHRhZGRyID0gJ2h0dHA6Ly92aW0uc291cmNlZm9yZ2UubmV0L3NjcmlwdC5waHA/c2NyaXB0X2lkPScuc2NyaXB0aWQKICAgbGV0IHRtcGZpbGUgICAgPSB0ZW1wbmFtZSgpCiAgIGxldCB2OmVycm1zZyAgID0gIiIKIAogICAiIG1ha2UgdXAgdG8gdGhyZWUgdHJpZXMgYXQgZG93bmxvYWRpbmcgdGhlIGRlc2NyaXB0aW9uCiAgIGxldCBpdHJ5PSAxCiAgIHdoaWxlIGl0cnkgPD0gMwotIiAgIGNhbGwgRGVjaG8oInRyeSMiLml0cnkuIiB0byBkb3dubG9hZCBkZXNjcmlwdGlvbiBvZiA8Ii5haWNtbW50LiI+IHdpdGggYWRkcj0iLnNjcmlwdGFkZHIpCisiICAgY2FsbCBEZWNobygiLnRyeSMiLml0cnkuIiB0byBkb3dubG9hZCBkZXNjcmlwdGlvbiBvZiA8Ii5haWNtbW50LiI+IHdpdGggYWRkcj0iLnNjcmlwdGFkZHIpCiAgICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW4xNiIpIHx8IGhhcygid2luOTUiKQotIiAgICBjYWxsIERlY2hvKCJuZXd8ZXhlIHNpbGVudCByISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zOkVzY2FwZSh0bXBmaWxlKS4nICcuczpFc2NhcGUoc2NyaXB0YWRkcikuInxidyEiKQotICAgIG5ld3xleGUgInNpbGVudCByISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zOkVzY2FwZSh0bXBmaWxlKS4nICcuczpFc2NhcGUoc2NyaXB0YWRkcil8YnchCisiICAgIGNhbGwgRGVjaG8oIi5uZXd8ZXhlIHNpbGVudCByISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlKS4nICcuc2hlbGxlc2NhcGUoc2NyaXB0YWRkcikuInxidyEiKQorICAgIG5ld3xleGUgInNpbGVudCByISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlKS4nICcuc2hlbGxlc2NhcGUoc2NyaXB0YWRkcil8YnchCiAgICBlbHNlCi0iICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zOkVzY2FwZSh0bXBmaWxlKS4iICIuczpFc2NhcGUoc2NyaXB0YWRkcikpCi0gICAgZXhlICJzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zOkVzY2FwZSh0bXBmaWxlKS4iICIuczpFc2NhcGUoc2NyaXB0YWRkcikKKyIgICAgY2FsbCBEZWNobygiLmV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlKS4iICIuc2hlbGxlc2NhcGUoc2NyaXB0YWRkcikpCisgICAgZXhlICJzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlKS4iICIuc2hlbGxlc2NhcGUoc2NyaXB0YWRkcikKICAgIGVuZGlmCiAgICBpZiBpdHJ5ID09IDEKICAgICBleGUgInNpbGVudCB2c3BsaXQgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKQpAQCAtNDk1LDggKzQ5Myw3IEBACiAgIGxldCBsYXRlc3RzcmNpZCA9IGxhdGVzdHNyY2lkICsgMAogIiAgY2FsbCBEZWNobygic3JjaWQ9Ii5zcmNpZC4iIGxhdGVzdHNyY2lkPSIubGF0ZXN0c3JjaWQuIiBzbmFtZTwiLnNuYW1lLiI+IikKIAotICAiIGhhcyB0aGUgcGx1Z2luJ3MgbW9zdC1yZWNlbnQgc3JjaWQgaW5jcmVhc2VkLCB3aGljaCBpbmRpY2F0ZXMKLSAgIiB0aGF0IGl0IGhhcyBiZWVuIHVwZGF0ZWQKKyAgIiBoYXMgdGhlIHBsdWdpbidzIG1vc3QtcmVjZW50IHNyY2lkIGluY3JlYXNlZCwgd2hpY2ggaW5kaWNhdGVzIHRoYXQgaXQgaGFzIGJlZW4gdXBkYXRlZAogICBpZiBsYXRlc3RzcmNpZCA+IHNyY2lkCiAiICAgY2FsbCBEZWNobygiW2xhdGVzdHNyY2lkPSIubGF0ZXN0c3JjaWQuIl0gPD0gW3NyY2lkPSIuc3JjaWQuIl06IG5lZWQgdG8gdXBkYXRlIDwiLnNuYW1lLiI+IikKIApAQCAtNTA2LDY1ICs1MDMsMTAzIEBACiAgICAgbGV0IHNuYW1lPSAiTkVXXyIuc25hbWUKICAgIGVuZGlmCiAKKyAgICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICIgdGhlIHBsdWdpbiBoYXMgYmVlbiB1cGRhdGVkIHNpbmNlIHdlIGxhc3Qgb2J0YWluZWQgaXQsIHNvIGRvd25sb2FkIGEgbmV3IGNvcHkKLSIgICBjYWxsIERlY2hvKCIuLi5kb3dubG9hZGluZyBuZXcgPCIuc25hbWUuIj4iKQotICAgZWNob21zZyAiLi4uZG93bmxvYWRpbmcgbmV3IDwiLnNuYW1lLiI+IgorICAgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiAgIGNhbGwgRGVjaG8oIi5kb3dubG9hZGluZyBuZXcgPCIuc25hbWUuIj4iKQorICAgZWNob21zZyAiLmRvd25sb2FkaW5nIG5ldyA8Ii5zbmFtZS4iPiIKICAgIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjE2IikgfHwgaGFzKCJ3aW45NSIpCi0iICAgIGNhbGwgRGVjaG8oIm5ld3xleGUgc2lsZW50IHIhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfd2dldC4iICIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX29wdGlvbnMuIiAiLnM6RXNjYXBlKHNuYW1lKS4iICIuczpFc2NhcGUoJ2h0dHA6Ly92aW0uc2YubmV0L3NjcmlwdHMvZG93bmxvYWRfc2NyaXB0LnBocD9zcmNfaWQ9Jy5sYXRlc3RzcmNpZCkuInxxIikKLSAgICBuZXd8ZXhlICJzaWxlbnQgciEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0LiIgIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfb3B0aW9ucy4iICIuczpFc2NhcGUoc25hbWUpLiIgIi5zOkVzY2FwZSgnaHR0cDovL3ZpbS5zZi5uZXQvc2NyaXB0cy9kb3dubG9hZF9zY3JpcHQucGhwP3NyY19pZD0nLmxhdGVzdHNyY2lkKXxxCisiICAgIGNhbGwgRGVjaG8oIi5uZXd8ZXhlIHNpbGVudCByISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zaGVsbGVzY2FwZShzbmFtZSkuIiAiLnNoZWxsZXNjYXBlKCdodHRwOi8vdmltLnNvdXJjZWZvcmdlLm5ldC9zY3JpcHRzL2Rvd25sb2FkX3NjcmlwdC5waHA/c3JjX2lkPScubGF0ZXN0c3JjaWQpLiJ8cSIpCisgICAgbmV3fGV4ZSAic2lsZW50IHIhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfd2dldC4iICIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX29wdGlvbnMuIiAiLnNoZWxsZXNjYXBlKHNuYW1lKS4iICIuc2hlbGxlc2NhcGUoJ2h0dHA6Ly92aW0uc291cmNlZm9yZ2UubmV0L3NjcmlwdHMvZG93bmxvYWRfc2NyaXB0LnBocD9zcmNfaWQ9Jy5sYXRlc3RzcmNpZCl8cQogICAgZWxzZQotIiAgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0LiIgIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfb3B0aW9ucy4iICIuczpFc2NhcGUoc25hbWUpLiIgIi5zOkVzY2FwZSgnaHR0cDovL3ZpbS5zZi5uZXQvc2NyaXB0cy9kb3dubG9hZF9zY3JpcHQucGhwP3NyY19pZD0nKSkKLSAgICBleGUgInNpbGVudCAhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfd2dldC4iICIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX29wdGlvbnMuIiAiLnM6RXNjYXBlKHNuYW1lKS4iICIuczpFc2NhcGUoJ2h0dHA6Ly92aW0uc2YubmV0L3NjcmlwdHMvZG93bmxvYWRfc2NyaXB0LnBocD9zcmNfaWQ9JykubGF0ZXN0c3JjaWQKKyIgICAgY2FsbCBEZWNobygiLmV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zaGVsbGVzY2FwZShzbmFtZSkuIiAiLnNoZWxsZXNjYXBlKCdodHRwOi8vdmltLnNvdXJjZWZvcmdlLm5ldC9zY3JpcHRzL2Rvd25sb2FkX3NjcmlwdC5waHA/c3JjX2lkPScpKQorICAgIGV4ZSAic2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0LiIgIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfb3B0aW9ucy4iICIuc2hlbGxlc2NhcGUoc25hbWUpLiIgIi5zaGVsbGVzY2FwZSgnaHR0cDovL3ZpbS5zb3VyY2Vmb3JnZS5uZXQvc2NyaXB0cy9kb3dubG9hZF9zY3JpcHQucGhwP3NyY19pZD0nKS5sYXRlc3RzcmNpZAogICAgZW5kaWYKIAorICAgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIiBBdXRvSW5zdGFsbDogb25seSBpZiBkb2F1dG9pbnN0YWxsIGhhcyBiZWVuIHJlcXVlc3RlZCBieSB0aGUgcGx1Z2luIGl0c2VsZgorICAgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgaWYgZG9hdXRvaW5zdGFsbAotIiAgICBjYWxsIERlY2hvKCJhdHRlbXB0aW5nIHRvIGRvIGF1dG9pbnN0YWxsOiBnZXRjd2Q8Ii5nZXRjd2QoKS4iPiBmaWxlcmVhZGFibGUoIi5zbmFtZS4iKT0iLmZpbGVyZWFkYWJsZShzbmFtZSkpCisiICAgIGNhbGwgRGVjaG8oIiAiKQorIiAgICBjYWxsIERlY2hvKCJBdXRvaW5zdGFsbDogZ2V0Y3dkPCIuZ2V0Y3dkKCkuIj4gZmlsZXJlYWRhYmxlKCIuc25hbWUuIik9Ii5maWxlcmVhZGFibGUoc25hbWUpKQogICAgIGlmIGZpbGVyZWFkYWJsZShzbmFtZSkKLSIgICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX212LiIgIi5zOkVzY2FwZShzbmFtZSkuIiAiLnM6RXNjYXBlKHM6YXV0b2luc3RhbGwpKQotICAgICBleGUgInNpbGVudCAhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfbXYuIiAiLnM6RXNjYXBlKHNuYW1lKS4iICIuczpFc2NhcGUoczphdXRvaW5zdGFsbCkKKyIgICAgIGNhbGwgRGVjaG8oIjwiLnNuYW1lLiI+IGlzIHJlYWRhYmxlIikKKyIgICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX212LiIgIi5zaGVsbGVzY2FwZShzbmFtZSkuIiAiLnNoZWxsZXNjYXBlKHM6YXV0b2luc3RhbGwpKQorICAgICBleGUgInNpbGVudCAhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfbXYuIiAiLnNoZWxsZXNjYXBlKHNuYW1lKS4iICIuc2hlbGxlc2NhcGUoczphdXRvaW5zdGFsbCkKICAgICAgbGV0IGN1cmRpciAgICA9IGVzY2FwZShzdWJzdGl0dXRlKGdldGN3ZCgpLCdcJywnLycsJ2dlJyksInxbXSonXCIgIyIpCiAgICAgIGxldCBpbnN0YWxsZGlyPSBjdXJkaXIuIi9JbnN0YWxsZWQiCiAgICAgIGlmICFpc2RpcmVjdG9yeShpbnN0YWxsZGlyKQogICAgICAgY2FsbCBta2RpcihpbnN0YWxsZGlyKQogICAgICBlbmRpZgotIiAgICBjYWxsIERlY2hvKCJleGUgY2QgIi5mbmFtZWVzY2FwZShzOmF1dG9pbnN0YWxsKSkKKyIgICAgIGNhbGwgRGVjaG8oImN1cmRpcjwiLmN1cmRpci4iPiBpbnN0YWxsZGlyPCIuaW5zdGFsbGRpci4iPiIpCisiICAgICBjYWxsIERlY2hvKCJleGUgY2QgIi5mbmFtZWVzY2FwZShzOmF1dG9pbnN0YWxsKSkKICAgICAgZXhlICJjZCAiLmZuYW1lZXNjYXBlKHM6YXV0b2luc3RhbGwpCisKKyAgICAgIiBkZXRlcm1pbmUgdGFyZ2V0IGRpcmVjdG9yeSBmb3IgbW92ZXMKKyAgICAgbGV0IGZpcnN0ZGlyPSBzdWJzdGl0dXRlKCZydHAsJywuKiQnLCcnLCcnKQorICAgICBsZXQgcG5hbWUgICA9IHN1YnN0aXR1dGUoc25hbWUsJ1wuLionLCcudmltJywnJykKKyIgICAgIGNhbGwgRGVjaG8oImRldGVybWluZSB0Z3RkaXI6IGlzIDwiLmZpcnN0ZGlyLicvQXNOZWVkZWQvJy5wbmFtZS4iIHJlYWRhYmxlPyIpCisgICAgIGlmIGZpbGVyZWFkYWJsZShmaXJzdGRpci4nL0FzTmVlZGVkLycucG5hbWUpCisgICAgICBsZXQgdGd0ZGlyPSAiQXNOZWVkZWQiCisgICAgIGVsc2UKKyAgICAgIGxldCB0Z3RkaXI9ICJwbHVnaW4iCisgICAgIGVuZGlmCisiICAgICBjYWxsIERlY2hvKCJ0Z3RkaXI8Ii50Z3RkaXIuIj4gIHBuYW1lPCIucG5hbWUuIj4iKQogICAgICAKICAgICAgIiBkZWNvbXByZXNzCiAgICAgIGlmIHNuYW1lID1+ICdcLmJ6MiQnCiAiICAgICAgY2FsbCBEZWNobygiZGVjb21wcmVzczogYXR0ZW1wdCB0byBidW56aXAyICIuc25hbWUpCi0gICAgICBleGUgInNpbGVudCAhYnVuemlwMiAiLnM6RXNjYXBlKHNuYW1lKQorICAgICAgZXhlICJzaWxlbnQgIWJ1bnppcDIgIi5zaGVsbGVzY2FwZShzbmFtZSkKICAgICAgIGxldCBzbmFtZT0gc3Vic3RpdHV0ZShzbmFtZSwnXC5iejIkJywnJywnJykKICIgICAgICBjYWxsIERlY2hvKCJkZWNvbXByZXNzOiBuZXcgc25hbWU8Ii5zbmFtZS4iPiBhZnRlciBidW56aXAyIikKICAgICAgZWxzZWlmIHNuYW1lID1+ICdcLmd6JCcKICIgICAgICBjYWxsIERlY2hvKCJkZWNvbXByZXNzOiBhdHRlbXB0IHRvIGd1bnppcCAiLnNuYW1lKQotICAgICAgZXhlICJzaWxlbnQgIWd1bnppcCAiLnM6RXNjYXBlKHNuYW1lKQorICAgICAgZXhlICJzaWxlbnQgIWd1bnppcCAiLnNoZWxsZXNjYXBlKHNuYW1lKQogICAgICAgbGV0IHNuYW1lPSBzdWJzdGl0dXRlKHNuYW1lLCdcLmd6JCcsJycsJycpCiAiICAgICAgY2FsbCBEZWNobygiZGVjb21wcmVzczogbmV3IHNuYW1lPCIuc25hbWUuIj4gYWZ0ZXIgZ3VuemlwIikKKyAgICAgZWxzZQorIiAgICAgIGNhbGwgRGVjaG8oIm5vIGRlY29tcHJlc3Npb24gbmVlZGVkIikKICAgICAgZW5kaWYKICAgICAgCiAgICAgICIgZGlzdHJpYnV0ZSBhcmNoaXZlKC56aXAsIC50YXIsIC52YmEpIGNvbnRlbnRzCiAgICAgIGlmIHNuYW1lID1+ICdcLnppcCQnCiAiICAgICAgY2FsbCBEZWNobygiZGVhcmNoaXZlOiBhdHRlbXB0IHRvIHVuemlwICIuc25hbWUpCi0gICAgICBleGUgInNpbGVudCAhdW56aXAgLW8gIi5zOkVzY2FwZShzbmFtZSkKKyAgICAgIGV4ZSAic2lsZW50ICF1bnppcCAtbyAiLnNoZWxsZXNjYXBlKHNuYW1lKQogICAgICBlbHNlaWYgc25hbWUgPX4gJ1wudGFyJCcKICIgICAgICBjYWxsIERlY2hvKCJkZWFyY2hpdmU6IGF0dGVtcHQgdG8gdW50YXIgIi5zbmFtZSkKLSAgICAgIGV4ZSAic2lsZW50ICF0YXIgLXh2ZiAiLnM6RXNjYXBlKHNuYW1lKQorICAgICAgZXhlICJzaWxlbnQgIXRhciAteHZmICIuc2hlbGxlc2NhcGUoc25hbWUpCiAgICAgIGVsc2VpZiBzbmFtZSA9fiAnXC52YmEkJwogIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byBoYW5kbGUgYSB2aW1iYWxsOiAiLnNuYW1lKQogICAgICAgc2lsZW50IDFzcGxpdAorICAgICAgaWYgZXhpc3RzKCJnOnZpbWJhbGxfaG9tZSIpCisgICAgICAgbGV0IG9sZHZpbWJhbGxob21lPSBnOnZpbWJhbGxfaG9tZQorICAgICAgZW5kaWYKKyAgICAgIGxldCBnOnZpbWJhbGxfaG9tZT0gczphdXRvaW5zdGFsbAogICAgICAgZXhlICJzaWxlbnQgZSAiLmZuYW1lZXNjYXBlKHNuYW1lKQogICAgICAgc2lsZW50IHNvICUKICAgICAgIHNpbGVudCBxCisgICAgICBpZiBleGlzdHMoIm9sZHZpbWJhbGxob21lIikKKyAgICAgICBsZXQgZzp2aW1iYWxsX2hvbWU9IG9sZHZpbWJhbGxob21lCisgICAgICBlbHNlCisgICAgICAgdW5sZXQgZzp2aW1iYWxsX2hvbWUKKyAgICAgIGVuZGlmCisgICAgIGVsc2UKKyIgICAgICBjYWxsIERlY2hvKCJubyBkZWFyY2hpdmluZyBuZWVkZWQiKQogICAgICBlbmRpZgogICAgICAKKyAgICAgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIiBtb3ZlIHBsdWdpbiB0byBwbHVnaW4vIG9yIEFzTmVlZGVkLyBkaXJlY3RvcnkKKyAgICAgIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgaWYgc25hbWUgPX4gJy52aW0kJwotIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byBzaW1wbHkgbW92ZSAiLnNuYW1lLiIgdG8gcGx1Z2luIikKLSAgICAgIGV4ZSAic2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19tdi4iICIuczpFc2NhcGUoc25hbWUpLiIgcGx1Z2luIgorIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byBzaW1wbHkgbW92ZSAiLnNuYW1lLiIgdG8gIi50Z3RkaXIpCisgICAgICBleGUgInNpbGVudCAhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfbXYuIiAiLnNoZWxsZXNjYXBlKHNuYW1lKS4iICIudGd0ZGlyCiAgICAgIGVsc2UKICIgICAgICBjYWxsIERlY2hvKCJkZWFyY2hpdmU6IG1vdmUgPCIuc25hbWUuIj4gdG8gaW5zdGFsbGRpcjwiLmluc3RhbGxkaXIuIj4iKQotICAgICAgZXhlICJzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX212LiIgIi5zOkVzY2FwZShzbmFtZSkuIiAiLmluc3RhbGxkaXIKKyAgICAgIGV4ZSAic2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19tdi4iICIuc2hlbGxlc2NhcGUoc25hbWUpLiIgIi5pbnN0YWxsZGlyCisgICAgIGVuZGlmCisgICAgIGlmIHRndGRpciAhPSAicGx1Z2luIgorIiAgICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX212LiIgcGx1Z2luLyIuc2hlbGxlc2NhcGUocG5hbWUpLiIgIi50Z3RkaXIpCisgICAgICBleGUgInNpbGVudCAhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfbXYuIiBwbHVnaW4vIi5zaGVsbGVzY2FwZShwbmFtZSkuIiAiLnRndGRpcgogICAgICBlbmRpZgogICAgICAKICAgICAgIiBoZWxwdGFncyBzdGVwCkBAIC02MDAsMjAgKzYzNSw2IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgczpFc2NhcGU6IG1ha2VzIGEgc3RyaW5nIHNhZmUmc3VpdGFibGUgZm9yIHRoZSBzaGVsbCB7e3syCi1mdW4hIHM6RXNjYXBlKG5hbWUpCi0iICBjYWxsIERmdW5jKCJzOkVzY2FwZShuYW1lPCIuYTpuYW1lLiI+KSIpCi0gIGlmIGV4aXN0cygiKnNoZWxsZXNjYXBlIikKLSAgICIgc2hlbGxlc2NhcGUoKSB3YXMgYWRkZWQgYnkgcGF0Y2ggNy4wLjExMQotICAgbGV0IG5hbWU9IHNoZWxsZXNjYXBlKGE6bmFtZSkKLSAgZWxzZQotICAgbGV0IG5hbWU9IGc6Z2V0c2NyaXB0X3NocSAuIGE6bmFtZSAuIGc6Z2V0c2NyaXB0X3NocQotICBlbmRpZgotIiAgY2FsbCBEcmV0KCJzOkVzY2FwZSAiLm5hbWUpCi0gIHJldHVybiBuYW1lCi1lbmRmdW4KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgUmVzdG9yZSBPcHRpb25zOiB7e3sxCiBsZXQgJmNwbz0gczprZWVwY3BvCiB1bmxldCBzOmtlZXBjcG8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvZ25hdC52aW0gYi9ydW50aW1lL2F1dG9sb2FkL2duYXQudmltCmluZGV4IGNlYmRlOGUuLjBkZWY2NzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvZ25hdC52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9nbmF0LnZpbQpAQCAtMSwxNCArMSwxNCBAQAogIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiAgRGVzY3JpcHRpb246IFZpbSBBZGEvR05BVCBjb21waWxlciBmaWxlCiAiICAgICBMYW5ndWFnZTogQWRhIChHTkFUKQotIiAgICAgICAgICAkSWQkCisiICAgICAgICAgICRJZDogZ25hdC52aW0gODg3IDIwMDgtMDctMDggMTQ6Mjk6MDFaIGtyaXNjaGlrICQKICIgICAgQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDIwMDYgTWFydGluIEtyaXNjaGlrCiAiICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGkgPGtyaXNjaGlrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD5rCiAiCQlOZWQgT2tpZSA8bm9raWVAcmFkZm9yZC5lZHU+Ci0iICAgICAgJEF1dGhvciQKLSIgICAgICAgICREYXRlJAorIiAgICAgICRBdXRob3I6IGtyaXNjaGlrICQKKyIgICAgICAgICREYXRlOiAyMDA4LTA3LTA4IDE2OjI5OjAxICswMjAwIChEaSwgMDggSnVsIDIwMDgpICQKICIgICAgICBWZXJzaW9uOiA0LjYKLSIgICAgJFJldmlzaW9uJAorIiAgICAkUmV2aXNpb246IDg4NyAkCiAiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvZ25hdC52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3LnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltCmluZGV4IDFlMTgxZDAuLmRmZjhhZmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltCkBAIC0xLDEwICsxLDEwIEBACiAiIG5ldHJ3LnZpbTogSGFuZGxlcyBmaWxlIHRyYW5zZmVyIGFuZCByZW1vdGUgZGlyZWN0b3J5IGxpc3RpbmcgYWNyb3NzCiAiICAgICAgICAgICAgQVVUT0xPQUQgU0VDVElPTgotIiBEYXRlOgkJQXVnIDA4LCAyMDA4Ci0iIFZlcnNpb246CTEzMgorIiBEYXRlOgkJRGVjIDI4LCAyMDA5CisiIFZlcnNpb246CTEzNgogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNLU5PU1BBTT4KICIgR2V0TGF0ZXN0VmltU2NyaXB0czogMTA3NSAxIDpBdXRvSW5zdGFsbDogbmV0cncudmltCi0iIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDggQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKKyIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwOSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQogIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKICIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAogIiAgICAgICAgICAgICAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLApAQCAtMjIsMTIgKzIyLDE4IEBACiBpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF9uZXRydyIpCiAgIGZpbmlzaAogZW5kaWYKK2xldCBnOmxvYWRlZF9uZXRydyA9ICJ2MTM2IgoraWYgdjp2ZXJzaW9uIDwgNzAyCisgZWNob2hsIFdhcm5pbmdNc2cKKyBlY2hvICIqKip3YXJuaW5nKioqIHRoaXMgdmVyc2lvbiBvZiBuZXRydyBuZWVkcyB2aW0gNy4yIgorIGVjaG9obCBOb3JtYWwKKyBmaW5pc2gKK2VuZGlmCiBpZiAhZXhpc3RzKCJzOk5PVEUiKQogIGxldCBzOk5PVEUgICAgPSAwCiAgbGV0IHM6V0FSTklORyA9IDEKICBsZXQgczpFUlJPUiAgID0gMgogZW5kaWYKLWxldCBnOmxvYWRlZF9uZXRydyA9ICJ2MTMyIgogCiAiIHNhbml0eSBjaGVja3MKIGlmIHY6dmVyc2lvbiA8IDcwMApAQCAtNDUsMjUgKzUxLDQxIEBACiAiID09PT09PT09PT09PT09PT09PT09PT0KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgTmV0cndJbml0OiBpbml0aWFsaXplcyB2YXJpYWJsZXMgaWYgdGhleSBoYXZlbid0IGJlZW4gZGVmaW5lZCB7e3syCisiICAgICAgICAgICAgTG9vc2VseSwgIHZhcm5hbWUgPSB2YWx1ZS4KK2Z1biBzOk5ldHJ3SW5pdCh2YXJuYW1lLHZhbHVlKQorICBpZiAhZXhpc3RzKGE6dmFybmFtZSkKKyAgIGlmIHR5cGUoYTp2YWx1ZSkgPT0gMAorICAgIGV4ZSAibGV0ICIuYTp2YXJuYW1lLiI9Ii5hOnZhbHVlCisgICBlbHNlaWYgdHlwZShhOnZhbHVlKSA9PSAxCisgICAgZXhlICJsZXQgIi5hOnZhcm5hbWUuIj0iLiInIi5hOnZhbHVlLiInIgorICAgZWxzZQorICAgIGV4ZSAibGV0ICIuYTp2YXJuYW1lLiI9Ii5hOnZhbHVlCisgICBlbmRpZgorICBlbmRpZgorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBOZXRydyBDb25zdGFudHM6IHt7ezIKLWlmICFleGlzdHMoImc6TkVUUldfQk9PS01BUktNQVgiKQotIGxldCBnOk5FVFJXX0JPT0tNQVJLTUFYPSAwCi1lbmRpZgotaWYgIWV4aXN0cygiZzpORVRSV19ESVJISVNUX0NOVCIpCi0gbGV0IGc6TkVUUldfRElSSElTVF9DTlQ9IDAKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2Rpcmhpc3RfY250IiwwKQogaWYgIWV4aXN0cygiczpMT05HTElTVCIpCi0gbGV0IHM6VEhJTkxJU1QgPSAwCi0gbGV0IHM6TE9OR0xJU1QgPSAxCi0gbGV0IHM6V0lERUxJU1QgPSAyCi0gbGV0IHM6VFJFRUxJU1QgPSAzCi0gbGV0IHM6TUFYTElTVCAgPSA0CisgY2FsbCBzOk5ldHJ3SW5pdCgiczpUSElOTElTVCIsMCkKKyBjYWxsIHM6TmV0cndJbml0KCJzOkxPTkdMSVNUIiwxKQorIGNhbGwgczpOZXRyd0luaXQoInM6V0lERUxJU1QiLDIpCisgY2FsbCBzOk5ldHJ3SW5pdCgiczpUUkVFTElTVCIsMykKKyBjYWxsIHM6TmV0cndJbml0KCJzOk1BWExJU1QiICw0KQogZW5kaWYKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgRGVmYXVsdCB2YWx1ZXMgZm9yIG5ldHJ3J3MgZ2xvYmFsIHByb3RvY29sIHZhcmlhYmxlcyB7e3syCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X2Rhdl9jbWQiKQorIGlmIGV4ZWN1dGFibGUoImNhZGF2ZXIiKQogICBsZXQgZzpuZXRyd19kYXZfY21kCT0gImNhZGF2ZXIiCisgZWxzZWlmIGV4ZWN1dGFibGUoImN1cmwiKQorICBsZXQgZzpuZXRyd19kYXZfY21kCT0gImN1cmwiCisgZWxzZQorICBsZXQgZzpuZXRyd19kYXZfY21kICAgPSAiIgorIGVuZGlmCiBlbmRpZgogaWYgIWV4aXN0cygiZzpuZXRyd19mZXRjaF9jbWQiKQogIGlmIGV4ZWN1dGFibGUoImZldGNoIikKQEAgLTc4LDM1ICsxMDAsMjggQEAKIGlmICFleGlzdHMoImc6bmV0cndfaHR0cF9jbWQiKQogIGlmIGV4ZWN1dGFibGUoImVsaW5rcyIpCiAgIGxldCBnOm5ldHJ3X2h0dHBfY21kID0gImVsaW5rcyIKLSAgbGV0IGc6bmV0cndfaHR0cF94Y21kPSAiLWR1bXAgPiIKKyAgY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19odHRwX3hjbWQiLCItc291cmNlID4iKQogIGVsc2VpZiBleGVjdXRhYmxlKCJsaW5rcyIpCiAgIGxldCBnOm5ldHJ3X2h0dHBfY21kID0gImxpbmtzIgotICBsZXQgZzpuZXRyd19odHRwX3hjbWQ9ICItZHVtcCA+IgorICBjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2h0dHBfeGNtZCIsIi1zb3VyY2UgPiIpCiAgZWxzZWlmIGV4ZWN1dGFibGUoImN1cmwiKQotICBsZXQgZzpuZXRyd19odHRwX2NtZAk9ICJjdXJsIC1vIgorICBsZXQgZzpuZXRyd19odHRwX2NtZAk9ICJjdXJsIgorICBjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2h0dHBfeGNtZCIsIi1vIikKICBlbHNlaWYgZXhlY3V0YWJsZSgid2dldCIpCi0gIGxldCBnOm5ldHJ3X2h0dHBfY21kCT0gIndnZXQgLXEgLU8iCisgIGxldCBnOm5ldHJ3X2h0dHBfY21kCT0gIndnZXQiCisgIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfaHR0cF94Y21kIiwiLXEgLU8iKQogIGVsc2VpZiBleGVjdXRhYmxlKCJmZXRjaCIpCi0gIGxldCBnOm5ldHJ3X2h0dHBfY21kCT0gImZldGNoIC1vIgorICBsZXQgZzpuZXRyd19odHRwX2NtZAk9ICJmZXRjaCIKKyAgY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19odHRwX3hjbWQiLCItbyIpCiAgZWxzZQogICBsZXQgZzpuZXRyd19odHRwX2NtZAk9ICIiCiAgZW5kaWYKIGVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3JjcF9jbWQiKQotICBsZXQgZzpuZXRyd19yY3BfY21kCT0gInJjcCIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3JzeW5jX2NtZCIpCi0gIGxldCBnOm5ldHJ3X3JzeW5jX2NtZAk9ICJyc3luYyIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3NjcF9jbWQiKQotICBsZXQgZzpuZXRyd19zY3BfY21kCT0gInNjcCAtcSIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3NmdHBfY21kIikKLSAgbGV0IGc6bmV0cndfc2Z0cF9jbWQJPSAic2Z0cCIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3NzaF9jbWQiKQotIGxldCBnOm5ldHJ3X3NzaF9jbWQ9ICJzc2giCi1lbmRpZgorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19yY3BfY21kIiAgLCAicmNwIikKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfcnN5bmNfY21kIiwgInJzeW5jIikKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc2NwX2NtZCIgICwgInNjcCAtcSIpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3NmdHBfY21kIiAsICJzZnRwIikKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc3NoX2NtZCIgICwgInNzaCIpCiAKIGlmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCiAgIFwgJiYgZXhpc3RzKCJnOm5ldHJ3X3VzZV9udF9yY3AiKQpAQCAtMTM0LDQwICsxNDksMjQgQEAKICBlbmRpZgogZW5kaWYKICIgRGVmYXVsdCB2YWx1ZXMgLSBhLWMgLS0tLS0tLS0tLSB7e3szCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2FsdG8iKQotIGxldCBnOm5ldHJ3X2FsdG89ICZzYgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfYWx0diIpCi0gbGV0IGc6bmV0cndfYWx0dj0gJnNwcgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfYnJvd3NlX3NwbGl0IikKLSBsZXQgZzpuZXRyd19icm93c2Vfc3BsaXQ9IDAKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2NoZ3dpbiIpCi0gbGV0IGc6bmV0cndfY2hnd2luICAgID0gLTEKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2NvbXByZXNzIikKLSBsZXQgZzpuZXRyd19jb21wcmVzcz0gImd6aXAiCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19jdGFncyIpCi0gbGV0IGc6bmV0cndfY3RhZ3M9ICJjdGFncyIKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfYWx0byIgICAgICAgICwgJnNiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19hbHR2IiAgICAgICAgLCAmc3ByKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19iYW5uZXIiICAgICAgLCAxKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19icm93c2Vfc3BsaXQiLCAwKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19jaGd3aW4iICAgICAgLCAtMSkKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfY29tcHJlc3MiICAgICwgImd6aXAiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19jdGFncyIgICAgICAgLCAiY3RhZ3MiKQoraWYgIWV4aXN0cygiZzpuZXRyd19jdXJzb3JsaW5lIikKKyBsZXQgZzpuZXRyd19jdXJzb3JsaW5lPSAxCisgbGV0IHM6bmV0cndfdXNlcmN1bCAgID0gJmN1cnNvcmxpbmUKKyBsZXQgczpuZXRyd191c2VyY3VjICAgPSAmY3Vyc29yY29sdW1uCiBlbmRpZgogIiBEZWZhdWx0IHZhbHVlcyAtIGQtZyAtLS0tLS0tLS0tIHt7ezMKLWlmICFleGlzdHMoImc6TkVUUldfRElSSElTVF9DTlQiKQotIGxldCBnOk5FVFJXX0RJUkhJU1RfQ05UPSAwCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19kZWNvbXByZXNzIikKLSBsZXQgZzpuZXRyd19kZWNvbXByZXNzPSB7ICIuZ3oiIDogImd1bnppcCIgLCAiLmJ6MiIgOiAiYnVuemlwMiIgLCAiLnppcCIgOiAidW56aXAiICwgIi50YXIiIDogInRhciAteGYifQotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfZGlyaGlzdG1heCIpCi0gbGV0IGc6bmV0cndfZGlyaGlzdG1heD0gMTAKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2Zhc3Ricm93c2UiKQotIGxldCBnOm5ldHJ3X2Zhc3Ricm93c2U9IDEKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0IikKLSBsZXQgZzpuZXRyd19mdHBfYnJvd3NlX3JlamVjdD0nXnRvdGFsXHNcK1xkXCskXHxeVHJ5aW5nXHNcK1xkXCsuKiRcfF5LRVJCRVJPU19WXGQgcmVqZWN0ZWRcfF5TZWN1cml0eSBleHRlbnNpb25zIG5vdFx8Tm8gc3VjaCBmaWxlXHw6IGNvbm5lY3QgdG8gYWRkcmVzcyBbMC05YS1mQS1GOl0qOiBObyByb3V0ZSB0byBob3N0JCcKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2Rpcmhpc3RfY250IiAgICAgICwgMCkKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfZGVjb21wcmVzcyIgICAgICAgLCAneyAiLmd6IiA6ICJndW56aXAiLCAiLmJ6MiIgOiAiYnVuemlwMiIsICIuemlwIiA6ICJ1bnppcCIsICIudGFyIiA6ICJ0YXIgLXhmIn0nKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19kaXJoaXN0bWF4IiAgICAgICAsIDEwKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19mYXN0YnJvd3NlIiAgICAgICAsIDEpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2Z0cF9icm93c2VfcmVqZWN0IiwgJ150b3RhbFxzXCtcZFwrJFx8XlRyeWluZ1xzXCtcZFwrLiokXHxeS0VSQkVST1NfVlxkIHJlamVjdGVkXHxeU2VjdXJpdHkgZXh0ZW5zaW9ucyBub3RcfE5vIHN1Y2ggZmlsZVx8OiBjb25uZWN0IHRvIGFkZHJlc3MgWzAtOWEtZkEtRjpdKjogTm8gcm91dGUgdG8gaG9zdCQnKQogaWYgIWV4aXN0cygiZzpuZXRyd19mdHBfbGlzdF9jbWQiKQogIGlmIGhhcygidW5peCIpIHx8IChleGlzdHMoImc6bmV0cndfY3lnd2luIikgJiYgZzpuZXRyd19jeWd3aW4pCiAgIGxldCBnOm5ldHJ3X2Z0cF9saXN0X2NtZCAgICAgPSAibHMgLWxGIgpAQCAtMTc5LDEzICsxNzgsOSBAQAogICBsZXQgZzpuZXRyd19mdHBfc2l6ZWxpc3RfY21kID0gImRpciIKICBlbmRpZgogZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfZnRwbW9kZSIpCi0gbGV0IGc6bmV0cndfZnRwbW9kZT0gImJpbmFyeSIKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2Z0cG1vZGUiLCdiaW5hcnknKQogIiBEZWZhdWx0IHZhbHVlcyAtIGgtbGggLS0tLS0tLS0tLSB7e3szCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2hpZGUiKQotIGxldCBnOm5ldHJ3X2hpZGU9IDEKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2hpZGUiLDEpCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X2lnbm9yZW5ldHJjIikKICBpZiAmc2hlbGwgPX4gJ1xjXDxcJShjbWRcfDRudFwpXC5leGUkJwogICBsZXQgZzpuZXRyd19pZ25vcmVuZXRyYz0gMQpAQCAtMTkzLDkgKzE4OCw3IEBACiAgIGxldCBnOm5ldHJ3X2lnbm9yZW5ldHJjPSAwCiAgZW5kaWYKIGVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X2tlZXBkaXIiKQotIGxldCBnOm5ldHJ3X2tlZXBkaXI9IDEKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2tlZXBkaXIiLDEpCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X2xpc3RfY21kIikKICBpZiBnOm5ldHJ3X3NjcF9jbWQgPX4gJ15wc2NwJyAmJiBleGVjdXRhYmxlKCJwc2NwIikKICAgIiBwcm92aWRlIGEgJ3BzY3AnIGxpc3RpbmcgY29tbWFuZApAQCAtMjExLDkgKzIwNCw3IEBACiAgIGxldCBnOm5ldHJ3X2xpc3RfY21kPSAiIgogIGVuZGlmCiBlbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19saXN0X2hpZGUiKQotIGxldCBnOm5ldHJ3X2xpc3RfaGlkZT0gIiIKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2xpc3RfaGlkZSIsIiIpCiAiIERlZmF1bHQgdmFsdWVzIC0gbGgtbHogLS0tLS0tLS0tLSB7e3szCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X2xvY2FsY29weWNtZCIpCiAgaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpCkBAIC0yMjgsOSArMjE5LDcgQEAKICAgbGV0IGc6bmV0cndfbG9jYWxjb3B5Y21kPSAiIgogIGVuZGlmCiBlbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19sb2NhbF9ta2RpciIpCi0gbGV0IGc6bmV0cndfbG9jYWxfbWtkaXI9ICJta2RpciIKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2xvY2FsX21rZGlyIiwibWtkaXIiKQogaWYgIWV4aXN0cygiZzpuZXRyd19sb2NhbG1vdmVjbWQiKQogIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQogICBpZiBnOm5ldHJ3X2N5Z3dpbgpAQCAtMjQ0LDEyOCArMjMzLDY2IEBACiAgIGxldCBnOm5ldHJ3X2xvY2FsbW92ZWNtZD0gIiIKICBlbmRpZgogZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfbG9jYWxfcm1kaXIiKQotIGxldCBnOm5ldHJ3X2xvY2FsX3JtZGlyPSAicm1kaXIiCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19saXN0c3R5bGUiKQotIGxldCBnOm5ldHJ3X2xpc3RzdHlsZT0gczpUSElOTElTVAotZW5kaWYKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfbG9jYWxfcm1kaXIiLCAicm1kaXIiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19saXN0c3R5bGUiICAsIHM6VEhJTkxJU1QpCisiIHNhbml0eSBjaGVja3MKIGlmIGc6bmV0cndfbGlzdHN0eWxlIDwgMCB8fCBnOm5ldHJ3X2xpc3RzdHlsZSA+PSBzOk1BWExJU1QKLSAiIHNhbml0eSBjaGVjawogIGxldCBnOm5ldHJ3X2xpc3RzdHlsZT0gczpUSElOTElTVAogZW5kaWYKIGlmIGc6bmV0cndfbGlzdHN0eWxlID09IHM6TE9OR0xJU1QgJiYgZzpuZXRyd19zY3BfY21kICF+ICdecHNjcCcKICBsZXQgZzpuZXRyd19saXN0X2NtZD0gZzpuZXRyd19saXN0X2NtZC4iIC1sIgogZW5kaWYKICIgRGVmYXVsdCB2YWx1ZXMgLSBtLXIgLS0tLS0tLS0tLSB7e3szCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X21hcmtmaWxlZXNjIikKLSBsZXQgZzpuZXRyd19tYXJrZmlsZWVzYz0gJyouL1tcficKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfbWFya2ZpbGVlc2MiICAgLCAnKi4vW1x+JykKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfbWF4ZmlsZW5hbWVsZW4iLCAzMikKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfbWVudSIgICAgICAgICAgLCAxKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19ta2Rpcl9jbWQiICAgICAsIGc6bmV0cndfc3NoX2NtZC4iIFVTRVBPUlQgSE9TVE5BTUUgbWtkaXIiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19tb3VzZW1hcHMiICAgICAsIChleGlzdHMoIiZtb3VzZSIpICYmICZtb3VzZSA9fiAnW2FuaF0nKSkKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfcmV0bWFwIiAgICAgICAgLCAwKQoraWYgaGFzKCJ1bml4IikgfHwgKGV4aXN0cygiZzpuZXRyd19jeWd3aW4iKSAmJiBnOm5ldHJ3X2N5Z3dpbikKKyBjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X2NoZ3Blcm0iICAgICAgICwgImNobW9kIFBFUk0gRklMRU5BTUUiKQorZWxzZWlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQorIGNhbGwgczpOZXRyd0luaXQoImc6bmV0cndfY2hncGVybSIgICAgICAgLCAiY2FjbHMgRklMRU5BTUUgL2UgL3AgUEVSTSIpCitlbHNlCisgY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19jaGdwZXJtIiAgICAgICAsICJjaG1vZCBQRVJNIEZJTEVOQU1FIikKIGVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X21heGZpbGVuYW1lbGVuIikKLSBsZXQgZzpuZXRyd19tYXhmaWxlbmFtZWxlbj0gMzIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X21lbnUiKQotIGxldCBnOm5ldHJ3X21lbnU9IDEKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X21rZGlyX2NtZCIpCi0gbGV0IGc6bmV0cndfbWtkaXJfY21kPSBnOm5ldHJ3X3NzaF9jbWQuIiBVU0VQT1JUIEhPU1ROQU1FIG1rZGlyIgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfbW91c2VtYXBzIikKLSBpZiBleGlzdHMoIiZtb3VzZSIpICYmICZtb3VzZSA9fiAnW2FuaF0nCi0gIGxldCBnOm5ldHJ3X21vdXNlbWFwcz0gMQotIGVsc2UKLSAgbGV0IGc6bmV0cndfbW91c2VtYXBzPSAwCi0gZW5kaWYKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3JldG1hcCIpCi0gbGV0IGc6bmV0cndfcmV0bWFwPSAwCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19wcmV2aWV3IikKLSBsZXQgZzpuZXRyd19wcmV2aWV3PSAwCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19zY3Bwb3J0IikKLSBsZXQgZzpuZXRyd19zY3Bwb3J0PSAiLVAiCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19zc2hwb3J0IikKLSBsZXQgZzpuZXRyd19zc2hwb3J0PSAiLXAiCi1lbmRpZgotaWYgIWV4aXN0cygiZzpuZXRyd19yZW5hbWVfY21kIikKLSBsZXQgZzpuZXRyd19yZW5hbWVfY21kPSBnOm5ldHJ3X3NzaF9jbWQuIiBVU0VQT1JUIEhPU1ROQU1FIG12IgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfcm1fY21kIikKLSBsZXQgZzpuZXRyd19ybV9jbWQgICAgPSBnOm5ldHJ3X3NzaF9jbWQuIiBVU0VQT1JUIEhPU1ROQU1FIHJtIgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfcm1kaXJfY21kIikKLSBsZXQgZzpuZXRyd19ybWRpcl9jbWQgPSBnOm5ldHJ3X3NzaF9jbWQuIiBVU0VQT1JUIEhPU1ROQU1FIHJtZGlyIgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfcm1mX2NtZCIpCi0gbGV0IGc6bmV0cndfcm1mX2NtZCAgICA9IGc6bmV0cndfc3NoX2NtZC4iIFVTRVBPUlQgSE9TVE5BTUUgcm0gLWYiCi1lbmRpZgorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19wcmV2aWV3IiAgICAgICAsIDApCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3NjcHBvcnQiICAgICAgICwgIi1QIikKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc3NocG9ydCIgICAgICAgLCAiLXAiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19yZW5hbWVfY21kIiAgICAsIGc6bmV0cndfc3NoX2NtZC4iIFVTRVBPUlQgSE9TVE5BTUUgbXYiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19ybV9jbWQiICAgICAgICAsIGc6bmV0cndfc3NoX2NtZC4iIFVTRVBPUlQgSE9TVE5BTUUgcm0iKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19ybWRpcl9jbWQiICAgICAsIGc6bmV0cndfc3NoX2NtZC4iIFVTRVBPUlQgSE9TVE5BTUUgcm1kaXIiKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19ybWZfY21kIiAgICAgICAsIGc6bmV0cndfc3NoX2NtZC4iIFVTRVBPUlQgSE9TVE5BTUUgcm0gLWYiKQogIiBEZWZhdWx0IHZhbHVlcyAtIHMgLS0tLS0tLS0tLSB7e3szCi0gIiBzZXQgdXAgc2hlbGwgcXVvdGluZyBjaGFyYWN0ZXIKLWlmIGV4aXN0cygiZzpuZXRyd19zaWxlbnQiKSAmJiBnOm5ldHJ3X3NpbGVudCAhPSAwCi0gbGV0IHM6bmV0cndfc2lsZW50eGZlcj0gInNpbGVudCAiCi1lbHNlCi0gbGV0IHM6bmV0cndfc2lsZW50eGZlcj0gIiIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3NvcnRfYnkiKQotICIgYWx0ZXJuYXRpdmVzOiBkYXRlIHNpemUKLSBsZXQgZzpuZXRyd19zb3J0X2J5PSAibmFtZSIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3NvcnRfb3B0aW9ucyIpCi0gbGV0IGc6bmV0cndfc29ydF9vcHRpb25zPSAiIgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfc29ydF9kaXJlY3Rpb24iKQotICIgYWx0ZXJuYXRpdmU6IHJldmVyc2UgICh6IHkgeCAuLi4pCi0gbGV0IGc6bmV0cndfc29ydF9kaXJlY3Rpb249ICJub3JtYWwiCi1lbmRpZgorIiBnOm5ldHJ3X3NlcGNocjogcGlja2luZyBhIGNoYXJhY3RlciB0aGF0IGRvZXNuJ3QgYXBwZWFyIGluIGZpbGVuYW1lcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlcGFyYXRlIHByaW9yaXR5IGZyb20gZmlsZW5hbWUKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfc2VwY2hyIiAgICAgICAgLCAoJmVuYyA9PSAiZXVjLWpwIik/ICJcPENoYXItMHgwMT4iIDogIlw8Q2hhci0weGZmPiIpCitjYWxsIHM6TmV0cndJbml0KCJzOm5ldHJ3X3NpbGVudHhmZXIiICAgICwgKGV4aXN0cygiZzpuZXRyd19zaWxlbnQiKSAmJiBnOm5ldHJ3X3NpbGVudCAhPSAwKT8gInNpbGVudCAiIDogIiIpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3NvcnRfYnkiICAgICAgICwgIm5hbWUiKSAiIGFsdGVybmF0aXZlczogZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBzaXplCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3NvcnRfb3B0aW9ucyIgICwgIiIpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uIiwgIm5vcm1hbCIpICIgYWx0ZXJuYXRpdmU6IHJldmVyc2UgICh6IHkgeCAuLi4pCiBpZiAhZXhpc3RzKCJnOm5ldHJ3X3NvcnRfc2VxdWVuY2UiKQotIGxldCBnOm5ldHJ3X3NvcnRfc2VxdWVuY2U9ICdbXC9dJCxcLmgkLFwuYyQsXC5jcHAkLCosXC5vJCxcLm9iaiQsXC5pbmZvJCxcLnN3cCQsXC5iYWskLFx+JCcKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3NwZWNpYWxfc3ludGF4IikKLSBsZXQgZzpuZXRyd19zcGVjaWFsX3N5bnRheD0gMAotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfc3NoX2Jyb3dzZV9yZWplY3QiKQotICBsZXQgZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdD0nXnRvdGFsXHNcK1xkXCskJwotZW5kaWYKLWlmICFoYXMoInBhdGNoMTkyIikKLSBpZiAhZXhpc3RzKCJnOm5ldHJ3X3VzZV9ub3N3ZiIpCi0gIGxldCBnOm5ldHJ3X3VzZV9ub3N3Zj0gMQorIGlmIGhhcygidW5peCIpCisgIGxldCBnOm5ldHJ3X3NvcnRfc2VxdWVuY2U9ICdbXC9dJCxcPGNvcmVcJShcLlxkXCtcKVw9XD4sXC5oJCxcLmMkLFwuY3BwJCwqLFwubyQsXC5vYmokLFwuaW5mbyQsXC5zd3AkLFwuYmFrJCxcfiQnCisgZWxzZQorICBsZXQgZzpuZXRyd19zb3J0X3NlcXVlbmNlPSAnW1wvXSQsXC5oJCxcLmMkLFwuY3BwJCwqLFwubyQsXC5vYmokLFwuaW5mbyQsXC5zd3AkLFwuYmFrJCxcfiQnCiAgZW5kaWYKLWVsc2UKLSAgbGV0IGc6bmV0cndfdXNlX25vc3dmPSAwCiBlbmRpZgorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19zcGVjaWFsX3N5bnRheCIgICAsIDApCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0IiwgJ150b3RhbFxzXCtcZFwrJCcpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3VzZV9ub3N3ZiIgICAgICAgICwgMCkKICIgRGVmYXVsdCB2YWx1ZXMgLSB0LXcgLS0tLS0tLS0tLSB7e3szCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3RpbWVmbXQiKQotIGxldCBnOm5ldHJ3X3RpbWVmbXQ9ICIlYyIKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3hzdHJsZW4iKQotIGxldCBnOm5ldHJ3X3hzdHJsZW49IDEKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOk5ldHJ3VG9wTHZsTWVudSIpCi0gbGV0IGc6TmV0cndUb3BMdmxNZW51PSAiTmV0cncuIgotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfdXNlX2Vycm9yd2luZG93IikKLSBsZXQgZzpuZXRyd191c2VfZXJyb3J3aW5kb3c9IDEKLWVuZGlmCi1pZiAhZXhpc3RzKCJnOm5ldHJ3X3dpbjk1ZnRwIikKLSBsZXQgZzpuZXRyd193aW45NWZ0cD0gMQotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfd2luc2l6ZSIpCi0gbGV0IGc6bmV0cndfd2luc2l6ZT0gIiIKLWVuZGlmCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3RpbWVmbXQiLCIlYyIpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3hzdHJsZW4iLDApCitjYWxsIHM6TmV0cndJbml0KCJnOk5ldHJ3VG9wTHZsTWVudSIsIk5ldHJ3LiIpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3VzZV9lcnJvcndpbmRvdyIsMSkKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfd2luOTVmdHAiLDEpCitjYWxsIHM6TmV0cndJbml0KCJnOm5ldHJ3X3dpbnNpemUiLCIiKQogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgRGVmYXVsdCB2YWx1ZXMgZm9yIG5ldHJ3J3Mgc2NyaXB0IHZhcmlhYmxlczoge3t7MgotaWYgIWV4aXN0cygiZzpuZXRyd19mbmFtZV9lc2NhcGUiKQotIGxldCBnOm5ldHJ3X2ZuYW1lX2VzY2FwZT0gJyA/JjslJwotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfZ2xvYl9lc2NhcGUiKQotICBsZXQgZzpuZXRyd19nbG9iX2VzY2FwZT0gJ1tdKj9ge34kJwotZW5kaWYKLWlmICFleGlzdHMoImc6bmV0cndfdG1wZmlsZV9lc2NhcGUiKQotIGxldCBnOm5ldHJ3X3RtcGZpbGVfZXNjYXBlPSAnICY7JwotZW5kaWYKLWxldCBzOm5ldHJ3X21hcF9lc2NhcGUgPSAiPHxcblxyXFxcPEMtVj5cIiIKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfZm5hbWVfZXNjYXBlIiwnID8mOyUnKQorY2FsbCBzOk5ldHJ3SW5pdCgiZzpuZXRyd19nbG9iX2VzY2FwZSIsJ1tdKj9ge34kJykKK2NhbGwgczpOZXRyd0luaXQoImc6bmV0cndfdG1wZmlsZV9lc2NhcGUiLCcgJjsnKQorY2FsbCBzOk5ldHJ3SW5pdCgiczpuZXRyd19tYXBfZXNjYXBlIiwiPHxcblxyXFxcPEMtVj5cIiIpCiAKICIgQnVmRW50ZXIgZXZlbnQgaWdub3JlZCBieSBkZWNobyB3aGVuIGZvbGxvd2luZyB2YXJpYWJsZSBpcyB0cnVlCiAiICBIYXMgYSBzaWRlIGVmZmVjdCB0aGF0IGRvYXUgQnVmUmVhZFBvc3QgZG9lc24ndCB3b3JrLCBzbwpAQCAtMzg0LDcgKzMxMSw3IEBACiAiICAgICAgICAgICAgIE5ldHJ3QnJvd3NlLgogIiAgICAgICAgICAgICB2dDogbm9ybWFsbHkgaXRzICJ3OiIgb3IgInM6IiAoYSB2YXJpYWJsZSB0eXBlKQogZnVuISBzOk5ldHJ3T3B0aW9uU2F2ZSh2dCkKLSIgIGNhbGwgRGZ1bmMoInM6TmV0cndPcHRpb25TYXZlKHZ0PCIuYTp2dC4iPikgd2luIyIud2lubnIoKS4iIGJ1ZiMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoYnVmbnIoIiUiKSkuIj4iKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd09wdGlvblNhdmUodnQ8Ii5hOnZ0LiI+KSB3aW4jIi53aW5ucigpLiIgYnVmIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZShidWZucigiJSIpKS4iPiIuIiB3aW5ucigkKT0iLndpbm5yKCIkIikpCiAKICIgIGNhbGwgRGVjaG8oYTp2dC4ibmV0cndfb3B0aW9uc2F2ZSIuKGV4aXN0cygie2E6dnR9bmV0cndfb3B0aW9uc2F2ZSIpPyAoIj0iLnthOnZ0fW5ldHJ3X29wdGlvbnNhdmUpIDogIiBkb2Vzbid0IGV4aXN0IikpCiAgIGlmICFleGlzdHMoInthOnZ0fW5ldHJ3X29wdGlvbnNhdmUiKQpAQCAtNDMwLDcgKzM1Nyw3IEBACiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBzOk5ldHJ3T3B0aW9uUmVzdG9yZTogcmVzdG9yZSBvcHRpb25zIHt7ezIKIGZ1biEgczpOZXRyd09wdGlvblJlc3RvcmUodnQpCi0iICBjYWxsIERmdW5jKCJzOk5ldHJ3T3B0aW9uUmVzdG9yZSh2dDwiLmE6dnQuIj4pIHdpbiMiLndpbm5yKCkuIiBidWYjIi5idWZucigiJSIpKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd09wdGlvblJlc3RvcmUodnQ8Ii5hOnZ0LiI+KSB3aW4jIi53aW5ucigpLiIgYnVmIyIuYnVmbnIoIiUiKS4iIHdpbm5yKCQpPSIud2lubnIoIiQiKSkKICAgaWYgIWV4aXN0cygie2E6dnR9bmV0cndfb3B0aW9uc2F2ZSIpCiAiICAgY2FsbCBEZWNobygicm89Ii4mbDpyby4iIG1hPSIuJmw6bWEuIiBtb2Q9Ii4mbDptb2QuIiB3cmFwPSIuJmw6d3JhcCkKICIgICBjYWxsIERyZXQoInM6TmV0cndPcHRpb25SZXN0b3JlIDogIi5hOnZ0LiJuZXRyd19vcHRpb25zYXZlIGRvZXNuJ3QgZXhpc3QiKQpAQCAtNTAzLDggKzQzMCw4IEBACiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBzOk5ldHJ3U2FmZU9wdGlvbnM6IHNldHMgb3B0aW9ucyB0byBoZWxwIG5ldHJ3IGRvIGl0cyBqb2Ige3t7MgogZnVuISBzOk5ldHJ3U2FmZU9wdGlvbnMoKQotIiAgY2FsbCBEZnVuYygiczpOZXRyd1NhZmVPcHRpb25zKCkgd2luIyIud2lubnIoKS4iIGJ1ZiMiLmJ1Zm5yKCIlIikuIjwiLmJ1Zm5hbWUoYnVmbnIoIiUiKSkuIj4iKQotIiAgY2FsbCBEZWNobygid2luZG93J3MgZnQ9Ii4mZnQpCisiICBjYWxsIERmdW5jKCJzOk5ldHJ3U2FmZU9wdGlvbnMoKSB3aW4jIi53aW5ucigpLiIgYnVmIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZShidWZucigiJSIpKS4iPiB3aW5ucigkKT0iLndpbm5yKCIkIikpCisiICBjYWxsIERlY2hvKCJ3aW4jIi53aW5ucigpLiIncyBmdD0iLiZmdCkKICAgc2V0bG9jYWwgY2lubz0KICAgc2V0bG9jYWwgY29tPQogICBzZXRsb2NhbCBjcG8tPWFBCkBAIC01MTMsOSArNDQwLDE2IEBACiAgIHNldGxvY2FsIGZvPW5yb3FsMgogICBzZXRsb2NhbCB0dz0wCiAgIHNldGxvY2FsIHJlcG9ydD0xMDAwMAorICBzZXRsb2NhbCBpc2srPUAgaXNrKz0qIGlzays9LwogICBpZiBnOm5ldHJ3X3VzZV9ub3N3ZiAmJiBoYXMoIndpbjMyIikgJiYgIWhhcygid2luOTUiKQogICAgc2V0bG9jYWwgbm9zd2YKICAgZW5kaWYKKworICAiIGFsbG93IHRoZSB1c2VyIHRvIG92ZXJyaWRlIHNhZmUgb3B0aW9ucworICBpZiAmZnQgPT0gIm5ldHJ3IgorICAgc2lsZW50IGtlZXBhbHQga2VlcGp1bXBzIGRvYXUgRmlsZVR5cGUgbmV0cncKKyAgZW5kaWYKKwogIiAgY2FsbCBEZWNobygiZm89Ii4mZm8uKGV4aXN0cygiJmFjZCIpPyAiIGFjZD0iLiZhY2QgOiAiIGFjZCBkb2Vzbid0IGV4aXN0IikpCiAiICBjYWxsIERyZXQoInM6TmV0cndTYWZlT3B0aW9ucyIpCiBlbmRmdW4KQEAgLTU2Niw2ICs1MDAsMTYgQEAKICIgIGNhbGwgRHJldCgibmV0cncjTmV0cndDbGVhbiIpCiBlbmRmdW4KIAorIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgbmV0cncjTnJlYWQ6IHt7ezIKK2Z1biEgbmV0cncjTnJlYWQobW9kZSxmbmFtZSkKKyIgIGNhbGwgRGZ1bmMoIm5ldHJ3I05yZWFkKG1vZGU9Ii5hOm1vZGUuIiBmbmFtZTwiLmE6Zm5hbWUuIj4pIikKKyAgY2FsbCBuZXRydyNOZXRyd1NhdmVQb3NuKCkKKyAgY2FsbCBuZXRydyNOZXRSZWFkKGE6bW9kZSxhOmZuYW1lKQorICBjYWxsIG5ldHJ3I05ldHJ3UmVzdG9yZVBvc24oKQorIiAgY2FsbCBEcmV0KCJuZXRydyNOcmVhZCIpCitlbmRmdW4KKwogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgIE5ldHJ3IFRyYW5zZmVyIEZ1bmN0aW9uczoge3t7MQogIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC01NzksMTEgKzUyMywxMSBAQAogZnVuISBuZXRydyNOZXRSZWFkKG1vZGUsLi4uKQogIiAgY2FsbCBEZnVuYygibmV0cncjTmV0UmVhZChtb2RlPSIuYTptb2RlLiIsLi4uKSBhOjA9Ii5hOjAuIiAiLmc6bG9hZGVkX25ldHJ3KQogCi0gICIgc2F2ZSBvcHRpb25zIHt7ezMKKyAgIiBOZXRSZWFkOiBzYXZlIG9wdGlvbnMge3t7MwogICBjYWxsIHM6TmV0cndPcHRpb25TYXZlKCJ3OiIpCiAgIGNhbGwgczpOZXRyd1NhZmVPcHRpb25zKCkKIAotICAiIGludGVycHJldCBtb2RlIGludG8gYSByZWFkY21kIHt7ezMKKyAgIiBOZXRSZWFkOiBpbnRlcnByZXQgbW9kZSBpbnRvIGEgcmVhZGNtZCB7e3szCiAgIGlmICAgICBhOm1vZGUgPT0gMCAiIHJlYWQgcmVtb3RlIGZpbGUgYmVmb3JlIGN1cnJlbnQgbGluZQogICAgbGV0IHJlYWRjbWQgPSAiMHIiCiAgIGVsc2VpZiBhOm1vZGUgPT0gMSAiIHJlYWQgZmlsZSBhZnRlciBjdXJyZW50IGxpbmUKQEAgLTU5OSw3ICs1NDMsNyBAQAogICBsZXQgaWNob2ljZSA9IChhOjAgPT0gMCk/IDAgOiAxCiAiICBjYWxsIERlY2hvKCJyZWFkY21kPCIucmVhZGNtZC4iPiBpY2hvaWNlPSIuaWNob2ljZSkKIAotICAiIEdldCBUZW1wb3JhcnkgRmlsZW5hbWUge3t7MworICAiIE5ldFJlYWQ6IGdldCB0ZW1wb3JhcnkgZmlsZW5hbWUge3t7MwogICBsZXQgdG1wZmlsZT0gczpHZXRUZW1wZmlsZSgiIikKICAgaWYgdG1wZmlsZSA9PSAiIgogIiAgIGNhbGwgRHJldCgibmV0cncjTmV0UmVhZCA6IHVuYWJsZSB0byBnZXQgYSB0ZW1wZmlsZSEiKQpAQCAtNjY2LDggKzYxMCwxMiBAQAogIiAgIGNhbGwgRGVjaG8oImNob2ljZTwiIC4gY2hvaWNlIC4gIj4iKQogICAgbGV0IGljaG9pY2U9IGljaG9pY2UgKyAxCiAKLSAgICIgRGV0ZXJtaW5lIG1ldGhvZCBvZiByZWFkIChmdHAsIHJjcCwgZXRjKSB7e3szCisgICAiIE5ldFJlYWQ6IERldGVybWluZSBtZXRob2Qgb2YgcmVhZCAoZnRwLCByY3AsIGV0Yykge3t7MwogICAgY2FsbCBzOk5ldHJ3TWV0aG9kKGNob2ljZSkKKyAgIGlmICFleGlzdHMoImI6bmV0cndfbWV0aG9kIikgfHwgYjpuZXRyd19tZXRob2QgPCAwCisiICAgIGNhbGwgRGZ1bmMoIm5ldHJ3I05ldFJlYWQgOiB1bnN1cHBvcnRlZCBtZXRob2QiKQorICAgIHJldHVybgorICAgZW5kaWYKICAgIGxldCB0bXBmaWxlPSBzOkdldFRlbXBmaWxlKGI6bmV0cndfZm5hbWUpICIgYXBwbHkgY29ycmVjdCBzdWZmaXgKIAogICAgIiBDaGVjayBpZiBOZXRyd0Jyb3dzZSgpIHNob3VsZCBiZSBoYW5kbGluZyB0aGlzIHJlcXVlc3QKQEAgLTY4MCwxNCArNjI4LDE0IEBACiAgICBlbmRpZgogCiAgICAiID09PT09PT09PT09PQotICAgIiBQZXJmb3JtIFByb3RvY29sLUJhc2VkIFJlYWQge3t7MworICAgIiBOZXRSZWFkOiBQZXJmb3JtIFByb3RvY29sLUJhc2VkIFJlYWQge3t7MwogICAgIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIGlmIGV4aXN0cygiZzpuZXRyd19zaWxlbnQiKSAmJiBnOm5ldHJ3X3NpbGVudCA9PSAwICYmICZjaCA+PSAxCiAgICAgZWNobyAiKG5ldHJ3KSBQcm9jZXNzaW5nIHlvdXIgcmVhZCByZXF1ZXN0Li4uIgogICAgZW5kaWYKIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICAiIHJjcDogIE5ldFJlYWQgTWV0aG9kICMxIHt7ezMKKyAgICIgTmV0UmVhZDogKHJjcCkgIE5ldFJlYWQgTWV0aG9kICMxIHt7ezMKICAgIGlmICBiOm5ldHJ3X21ldGhvZCA9PSAxICIgcmVhZCB3aXRoIHJjcAogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSByY3AgKG1ldGhvZCAjMSkiKQogICAgIiBFUjogbm90aGluZyBkb25lIHdpdGggZzpuZXRyd191aWQgeWV0PwpAQCAtNzA5LDEyICs2NTcsMTIgQEAKICAgICBlbmRpZgogICAgZW5kaWYKICIgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICEiLmc6bmV0cndfcmNwX2NtZC4iICIuczpuZXRyd19yY3Btb2RlLiIgIi5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKSkKLSAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfcmNwX2NtZC4iICIuczpuZXRyd19yY3Btb2RlLiIgIi5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKSkKKyAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfcmNwX2NtZC4iICIuczpuZXRyd19yY3Btb2RlLiIgIi5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKQogICAgbGV0IHJlc3VsdCAgICAgICAgICAgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgotICAgIiBmdHAgKyA8Lm5ldHJjPjogIE5ldFJlYWQgTWV0aG9kICMyIHt7ezMKKyAgICIgTmV0UmVhZDogKGZ0cCArIDwubmV0cmM+KSAgTmV0UmVhZCBNZXRob2QgIzIge3t7MwogICAgZWxzZWlmIGI6bmV0cndfbWV0aG9kICA9PSAyCQkiIHJlYWQgd2l0aCBmdHAgKyA8Lm5ldHJjPgogIiAgICAgY2FsbCBEZWNobygicmVhZCB2aWEgZnRwKy5uZXRyYyAobWV0aG9kICMyKSIpCiAgICAgIGxldCBuZXRyd19mbmFtZT0gYjpuZXRyd19mbmFtZQpAQCAtNzQ1LDcgKzY5Myw4IEBACiAgICAgIGVuZGlmCiAgICAgIGNhbGwgczpTYXZlQnVmVmFycygpCiAgICAgIGJkIQotICAgICBpZiBidWZuYW1lKCIlIikgPT0gIiIgJiYgbGluZSgiJCIpID09IDEgJiYgZ2V0bGluZSgiJCIpID09ICIiCisgICAgIGlmIGJ1Zm5hbWUoIiUiKSA9PSAiIiAmJiBnZXRsaW5lKCIkIikgPT0gIiIgJiYgbGluZSgnJCcpID09IDEKKyAgICAgICIgbmVlZGVkIHdoZW4gb25lIHNvdXJjZXMgYSBmaWxlIGluIGEgbm9sYmwgc2V0dGluZyB3aW5kb3cgdmlhIGZ0cAogICAgICAgcSEKICAgICAgZW5kaWYKICAgICAgY2FsbCBzOlJlc3RvcmVCdWZWYXJzKCkKQEAgLTc1Myw3ICs3MDIsNyBAQAogICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgZnRwICsgbWFjaGluZSxpZCxwYXNzd2QsZmlsZW5hbWU6ICBOZXRSZWFkIE1ldGhvZCAjMyB7e3szCisgICAiIE5ldFJlYWQ6IChmdHAgKyBtYWNoaW5lLGlkLHBhc3N3ZCxmaWxlbmFtZSkgIE5ldFJlYWQgTWV0aG9kICMzIHt7ezMKICAgIGVsc2VpZiBiOm5ldHJ3X21ldGhvZCA9PSAzCQkiIHJlYWQgd2l0aCBmdHAgKyBtYWNoaW5lLCBpZCwgcGFzc3dkLCBhbmQgZm5hbWUKICAgICAiIENvbnN0cnVjdCBleGVjdXRpb24gc3RyaW5nIChmb3VyIGxpbmVzKSB3aGljaCB3aWxsIGJlIHBhc3NlZCB0aHJvdWdoIGZpbHRlcgogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBmdHArbWlwZiAobWV0aG9kICMzKSIpCkBAIC04MDksNyArNzU4LDcgQEAKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgc2NwOiBOZXRSZWFkIE1ldGhvZCAjNCB7e3szCisgICAiIE5ldFJlYWQ6IChzY3ApIE5ldFJlYWQgTWV0aG9kICM0IHt7ezMKICAgIGVsc2VpZiAgICAgYjpuZXRyd19tZXRob2QgID09IDQJIiByZWFkIHdpdGggc2NwCiAiICAgIGNhbGwgRGVjaG8oInJlYWQgdmlhIHNjcCAobWV0aG9kICM0KSIpCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKQEAgLTgxNywxMyArNzY2LDEzIEBACiAgICAgZWxzZQogICAgICBsZXQgdXNlcG9ydD0gIiIKICAgICBlbmRpZgotIiAgICBjYWxsIERlY2hvKCJleGUgczpuZXRyd19zaWxlbnR4ZmVyLiEiLmc6bmV0cndfc2NwX2NtZC51c2Vwb3J0LiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLmI6bmV0cndfZm5hbWUsMSkuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkpCisiICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zY3BfY21kLnVzZXBvcnQuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKSkKICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NjcF9jbWQudXNlcG9ydC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpCiAgICAgbGV0IHJlc3VsdCAgICAgICAgICAgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgaHR0cDogTmV0UmVhZCBNZXRob2QgIzUgKHdnZXQpIHt7ezMKKyAgICIgTmV0UmVhZDogKGh0dHApIE5ldFJlYWQgTWV0aG9kICM1ICh3Z2V0KSB7e3szCiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kICA9PSA1CiAiICAgIGNhbGwgRGVjaG8oInJlYWQgdmlhIGh0dHAgKG1ldGhvZCAjNSkiKQogICAgIGlmIGc6bmV0cndfaHR0cF9jbWQgPT0gIiIKQEAgLTg2MywzMyArODEyLDQzIEBACiAgICAgc2V0bG9jYWwgcm8KIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICAiIGNhZGF2ZXI6IE5ldFJlYWQgTWV0aG9kICM2IHt7ezMKKyAgICIgTmV0UmVhZDogKGRhdikgTmV0UmVhZCBNZXRob2QgIzYge3t7MwogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCAgPT0gNgogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBjYWRhdmVyIChtZXRob2QgIzYpIikKIAotICAgICIgQ29uc3RydWN0IGV4ZWN1dGlvbiBzdHJpbmcgKGZvdXIgbGluZXMpIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggZmlsdGVyCi0gICAgbGV0IG5ldHJ3X2ZuYW1lPSBlc2NhcGUoYjpuZXRyd19mbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKLSAgICBuZXcKLSAgICBzZXRsb2NhbCBmZj11bml4Ci0gICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0Ci0gICAgZWxzZQotICAgICBwdXQgPSdvcGVuICcuZzpuZXRyd19tYWNoaW5lCisgICAgaWYgIWV4ZWN1dGFibGUoZzpuZXRyd19kYXZfY21kKQorICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsZzpuZXRyd19kYXZfY21kLiIgaXMgbm90IGV4ZWN1dGFibGUiLDczKQorIiAgICAgY2FsbCBEcmV0KCJuZXRydyNOZXRSZWFkIDogIi5nOm5ldHJ3X2Rhdl9jbWQuIiBub3QgZXhlY3V0YWJsZSIpCisgICAgIHJldHVybgogICAgIGVuZGlmCi0gICAgcHV0ID0ndXNlciAnLmc6bmV0cndfdWlkLicgJy5zOm5ldHJ3X3Bhc3N3ZAotICAgIHB1dCA9J2dldCAnLm5ldHJ3X2ZuYW1lLicgJy50bXBmaWxlCi0gICAgcHV0ID0ncXVpdCcKKyAgICBpZiBnOm5ldHJ3X2Rhdl9jbWQgPX4gImN1cmwiCisiICAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZGF2X2NtZC4iICIuc2hlbGxlc2NhcGUoImRhdjovLyIuZzpuZXRyd19tYWNoaW5lLmI6bmV0cndfZm5hbWUsMSkuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkpCisgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZGF2X2NtZC4iICIuc2hlbGxlc2NhcGUoImRhdjovLyIuZzpuZXRyd19tYWNoaW5lLmI6bmV0cndfZm5hbWUsMSkuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkKKyAgICBlbHNlCisgICAgICIgQ29uc3RydWN0IGV4ZWN1dGlvbiBzdHJpbmcgKGZvdXIgbGluZXMpIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggZmlsdGVyCisgICAgIGxldCBuZXRyd19mbmFtZT0gZXNjYXBlKGI6bmV0cndfZm5hbWUsZzpuZXRyd19mbmFtZV9lc2NhcGUpCisgICAgIG5ldworICAgICBzZXRsb2NhbCBmZj11bml4CisgICAgIGlmIGV4aXN0cygiZzpuZXRyd19wb3J0IikgJiYgZzpuZXRyd19wb3J0ICE9ICIiCisgICAgICBwdXQgPSdvcGVuICcuZzpuZXRyd19tYWNoaW5lLicgJy5nOm5ldHJ3X3BvcnQKKyAgICAgZWxzZQorICAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZQorICAgICBlbmRpZgorICAgICBwdXQgPSd1c2VyICcuZzpuZXRyd191aWQuJyAnLnM6bmV0cndfcGFzc3dkCisgICAgIHB1dCA9J2dldCAnLm5ldHJ3X2ZuYW1lLicgJy50bXBmaWxlCisgICAgIHB1dCA9J3F1aXQnCiAKLSAgICAiIHBlcmZvcm0gY2FkYXZlciBvcGVyYXRpb246Ci0gICAgbm9ybSEgMUdkZAorICAgICAiIHBlcmZvcm0gY2FkYXZlciBvcGVyYXRpb246CisgICAgIG5vcm0hIDFHZGQKICIgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19kYXZfY21kKQotICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Rhdl9jbWQKLSAgICBiZCEKKyAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZGF2X2NtZAorICAgICBiZCEKKyAgICBlbmRpZgogICAgIGxldCByZXN1bHQgICAgICAgICAgID0gczpOZXRyd0dldEZpbGUocmVhZGNtZCwgdG1wZmlsZSwgYjpuZXRyd19tZXRob2QpCiAgICAgbGV0IGI6bmV0cndfbGFzdGZpbGUgPSBjaG9pY2UKIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICAiIHJzeW5jOiBOZXRSZWFkIE1ldGhvZCAjNyB7e3szCisgICAiIE5ldFJlYWQ6IChyc3luYykgTmV0UmVhZCBNZXRob2QgIzcge3t7MwogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCAgPT0gNwogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSByc3luYyAobWV0aG9kICM3KSIpCiAiICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19yc3luY19jbWQuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKSkKQEAgLTg5OCw3ICs4NTcsNyBAQAogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgotICAgIiBmZXRjaDogTmV0UmVhZCBNZXRob2QgIzgge3t7MworICAgIiBOZXRSZWFkOiAoZmV0Y2gpIE5ldFJlYWQgTWV0aG9kICM4IHt7ezMKICAgICIgICAgZmV0Y2g6Ly9bdXNlckBdaG9zdFs6aHR0cF0vcGF0aAogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCAgPT0gOAogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBmZXRjaCAobWV0aG9kICM4KSIpCkBAIC05MjgsNyArODg3LDcgQEAKICAgICBzZXRsb2NhbCBybwogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgc2Z0cDogTmV0UmVhZCBNZXRob2QgIzkge3t7MworICAgIiBOZXRSZWFkOiAoc2Z0cCkgTmV0UmVhZCBNZXRob2QgIzkge3t7MwogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCAgPT0gOQogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBzZnRwIChtZXRob2QgIzkpIikKICIgICAgY2FsbCBEZWNobygiZXhlICIuczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NmdHBfY21kLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLmI6bmV0cndfZm5hbWUsMSkuIiAiLnRtcGZpbGUpCkBAIC05MzcsMTMgKzg5NiwxMyBAQAogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgotICAgIiBDb21wbGFpbiB7e3szCisgICAiIE5ldFJlYWQ6IENvbXBsYWluIHt7ezMKICAgIGVsc2UKICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywidW5hYmxlIHRvIGNvbXBseSB3aXRoIHlvdXIgcmVxdWVzdDwiIC4gY2hvaWNlIC4gIj4iLDgpCiAgICBlbmRpZgogICBlbmR3aGlsZQogCi0gICIgY2xlYW51cCB7e3szCisgICIgTmV0UmVhZDogY2xlYW51cCB7e3szCiAgIGlmIGV4aXN0cygiYjpuZXRyd19tZXRob2QiKQogIiAgIGNhbGwgRGVjaG8oImNsZWFudXAgYjpuZXRyd19tZXRob2QgYW5kIGI6bmV0cndfZm5hbWUiKQogICAgdW5sZXQgYjpuZXRyd19tZXRob2QKQEAgLTk1MSw3ICs5MTAsNyBAQAogICBlbmRpZgogICBpZiBzOkZpbGVSZWFkYWJsZSh0bXBmaWxlKSAmJiB0bXBmaWxlICF+ICcudGFyLmJ6MiQnICYmIHRtcGZpbGUgIX4gJy50YXIuZ3okJyAmJiB0bXBmaWxlICF+ICcuemlwJyAmJiB0bXBmaWxlICF+ICcudGFyJyAmJiByZWFkY21kICE9ICd0JwogIiAgIGNhbGwgRGVjaG8oImNsZWFudXAgYnkgZGVsZXRpbmcgdG1wZmlsZTwiLnRtcGZpbGUuIj4iKQotICAgY2FsbCBzOk5ldHJ3RGVsZXRlKGZuYW1lZXNjYXBlKHRtcGZpbGUpKQorICAgY2FsbCBzOk5ldHJ3RGVsZXRlKHRtcGZpbGUpCiAgIGVuZGlmCiAgIGNhbGwgczpOZXRyd09wdGlvblJlc3RvcmUoInc6IikKIApAQCAtOTYzLDEyICs5MjIsMTIgQEAKIGZ1biEgbmV0cncjTmV0V3JpdGUoLi4uKSByYW5nZQogIiAgY2FsbCBEZnVuYygibmV0cncjTmV0V3JpdGUoYTowPSIuYTowLiIpICIuZzpsb2FkZWRfbmV0cncpCiAKLSAgIiBvcHRpb24gaGFuZGxpbmcKKyAgIiBOZXRXcml0ZTogb3B0aW9uIGhhbmRsaW5nIHt7ezMKICAgbGV0IG1vZD0gMAogICBjYWxsIHM6TmV0cndPcHRpb25TYXZlKCJ3OiIpCiAgIGNhbGwgczpOZXRyd1NhZmVPcHRpb25zKCkKIAotICAiIEdldCBUZW1wb3JhcnkgRmlsZW5hbWUge3t7MworICAiIE5ldFdyaXRlOiBHZXQgVGVtcG9yYXJ5IEZpbGVuYW1lIHt7ezMKICAgbGV0IHRtcGZpbGU9IHM6R2V0VGVtcGZpbGUoIiIpCiAgIGlmIHRtcGZpbGUgPT0gIiIKICIgICBjYWxsIERyZXQoIm5ldHJ3I05ldFdyaXRlIDogdW5hYmxlIHRvIGdldCBhIHRlbXBmaWxlISIpCkBAIC0xMDA3LDcgKzk2Niw3IEBACiAgICAwZmlsZSEKICAgZW5kaWYKIAotICAiIFdoaWxlIGNob2ljZSBsb29wOiB7e3szCisgICIgTmV0V3JpdGU6IHdoaWxlIGNob2ljZSBsb29wOiB7e3szCiAgIHdoaWxlIGljaG9pY2UgPD0gYTowCiAKICAgICIgUHJvY2VzcyBhcmd1bWVudHM6IHt7ezQKQEAgLTEwNjUsOSArMTAyNCwxMyBAQAogCiAgICAiIERldGVybWluZSBtZXRob2Qgb2Ygd3JpdGUgKGZ0cCwgcmNwLCBldGMpIHt7ezQKICAgIGNhbGwgczpOZXRyd01ldGhvZChjaG9pY2UpCisgICBpZiAhZXhpc3RzKCJiOm5ldHJ3X21ldGhvZCIpIHx8IGI6bmV0cndfbWV0aG9kIDwgMAorIiAgICBjYWxsIERmdW5jKCJuZXRydyNOZXRXcml0ZSA6IHVuc3VwcG9ydGVkIG1ldGhvZCIpCisgICAgcmV0dXJuCisgICBlbmRpZgogCiAgICAiID09PT09PT09PT09PT0KLSAgICIgUGVyZm9ybSBQcm90b2NvbC1CYXNlZCBXcml0ZSB7e3s0CisgICAiIE5ldFdyaXRlOiBQZXJmb3JtIFByb3RvY29sLUJhc2VkIFdyaXRlIHt7ezMKICAgICIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3NpbGVudCIpICYmIGc6bmV0cndfc2lsZW50ID09IDAgJiYgJmNoID49IDEKICAgICBlY2hvICIobmV0cncpIFByb2Nlc3NpbmcgeW91ciB3cml0ZSByZXF1ZXN0Li4uIgpAQCAtMTA3NSw3ICsxMDM4LDcgQEAKICAgIGVuZGlmCiAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgotICAgIiByY3A6IE5ldFdyaXRlIE1ldGhvZCAjMSB7e3s0CisgICAiIE5ldFdyaXRlOiAocmNwKSBOZXRXcml0ZSBNZXRob2QgIzEge3t7MwogICAgaWYgIGI6bmV0cndfbWV0aG9kID09IDEKICIgICAgY2FsbCBEZWNobygid3JpdGUgdmlhIHJjcCAobWV0aG9kICMxKSIpCiAgICAgaWYgczpuZXRyd19oYXNfbnRfcmNwID09IDEKQEAgLTEwOTYsMTEgKzEwNTksMTcgQEAKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgZnRwICsgPC5uZXRyYz46IE5ldFdyaXRlIE1ldGhvZCAjMiB7e3s0CisgICAiIE5ldFdyaXRlOiAoZnRwICsgPC5uZXRyYz4pIE5ldFdyaXRlIE1ldGhvZCAjMiB7e3szCiAgICBlbHNlaWYgYjpuZXRyd19tZXRob2QgPT0gMgogIiAgICBjYWxsIERlY2hvKCJ3cml0ZSB2aWEgZnRwKy5uZXRyYyAobWV0aG9kICMyKSIpCi0gICAgbGV0IG5ldHJ3X2ZuYW1lPSBiOm5ldHJ3X2ZuYW1lCi0gICAgbmV3CisgICAgbGV0IG5ldHJ3X2ZuYW1lID0gYjpuZXRyd19mbmFtZQorCisgICAgIiBmb3JtZXJseSBqdXN0IGEgIm5ldy4uLmJkISIsIHRoYXQgY2hhbmdlZCB0aGUgd2luZG93IHNpemVzIHdoZW4gZXF1YWxhbHdheXMuICBVc2luZyBlbmV3IHdvcmthcm91bmQgaW5zdGVhZAorICAgIGxldCBiaGtlZXAgICAgICA9ICZsOmJoCisgICAgbGV0IGN1cmJ1ZiAgICAgID0gYnVmbnIoIiUiKQorICAgIHNldGxvY2FsIGJoPWhpZGUKKyAgICBlbmV3CisKICIgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0IHdpbmRvdyMiLndpbm5yKCkpCiAgICAgc2V0bG9jYWwgZmY9dW5peAogICAgIHB1dCA9ZzpuZXRyd19mdHBtb2RlCkBAIC0xMTI2LDE3ICsxMDk1LDI5IEBACiAgICAgIGVuZGlmCiAgICAgIGxldCBtb2Q9MQogICAgIGVuZGlmCi0gICAgYmQhCisKKyAgICAiIHJlbW92ZSBlbmV3IGJ1ZmZlciAocXVpZXRseSkKKyAgICBsZXQgZmlsdGJ1Zj0gYnVmbnIoIiUiKQorICAgIGV4ZSBjdXJidWYuImIhIgorICAgIGxldCAmbDpiaCAgICAgICAgICAgID0gYmhrZWVwCisgICAgZXhlIGZpbHRidWYuImJ3ISIKKwogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgotICAgIiBmdHAgKyBtYWNoaW5lLCBpZCwgcGFzc3dkLCBmaWxlbmFtZTogTmV0V3JpdGUgTWV0aG9kICMzIHt7ezQKKyAgICIgTmV0V3JpdGU6IChmdHAgKyBtYWNoaW5lLCBpZCwgcGFzc3dkLCBmaWxlbmFtZSkgTmV0V3JpdGUgTWV0aG9kICMzIHt7ezMKICAgIGVsc2VpZiBiOm5ldHJ3X21ldGhvZCA9PSAzCi0gICAgIiBDb25zdHJ1Y3QgZXhlY3V0aW9uIHN0cmluZyAoZm91ciBsaW5lcykgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdGhyb3VnaCBmaWx0ZXIKKyAgICAiIENvbnN0cnVjdCBleGVjdXRpb24gc3RyaW5nICh0aHJlZSBvciBtb3JlIGxpbmVzKSB3aGljaCB3aWxsIGJlIHBhc3NlZCB0aHJvdWdoIGZpbHRlcgogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBmdHArbWlwZiAobWV0aG9kICMzKSIpCi0gICAgbGV0IG5ldHJ3X2ZuYW1lPSBiOm5ldHJ3X2ZuYW1lCi0gICAgbmV3CisgICAgbGV0IG5ldHJ3X2ZuYW1lID0gYjpuZXRyd19mbmFtZQorICAgIGxldCBiaGtlZXAgICAgICA9ICZsOmJoCisKKyAgICAiIGZvcm1lcmx5IGp1c3QgYSAibmV3Li4uYmQhIiwgdGhhdCBjaGFuZ2VkIHRoZSB3aW5kb3cgc2l6ZXMgd2hlbiBlcXVhbGFsd2F5cy4gIFVzaW5nIGVuZXcgd29ya2Fyb3VuZCBpbnN0ZWFkCisgICAgbGV0IGN1cmJ1ZiAgICAgID0gYnVmbnIoIiUiKQorICAgIHNldGxvY2FsIGJoPWhpZGUKKyAgICBlbmV3CiAgICAgc2V0bG9jYWwgZmY9dW5peAorCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKICAgICAgcHV0ID0nb3BlbiAnLmc6bmV0cndfbWFjaGluZS4nICcuZzpuZXRyd19wb3J0CiAiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQpAQCAtMTE1Myw2ICsxMTM0LDEyIEBACiAgICAgIHB1dCA9J3VzZXIgXCInLmc6bmV0cndfdWlkLidcIiBcIicuczpuZXRyd19wYXNzd2QuJ1wiJwogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJy4nKSkKICAgICBlbmRpZgorICAgIHB1dCA9ZzpuZXRyd19mdHBtb2RlCisiICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCckJykpCisgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Z0cGV4dHJhY21kIikKKyAgICAgcHV0ID1nOm5ldHJ3X2Z0cGV4dHJhY21kCisiICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgiJCIpKQorICAgIGVuZGlmCiAgICAgcHV0ID0ncHV0IFwiJy50bXBmaWxlLidcIiBcIicubmV0cndfZm5hbWUuJ1wiJwogIiAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgICIgc2F2ZSBjaG9pY2UvaWQvcGFzc3dvcmQgZm9yIGZ1dHVyZSB1c2UKQEAgLTExNzIsMTAgKzExNTksMTUgQEAKICAgICAgZW5kaWYKICAgICAgbGV0IG1vZD0xCiAgICAgZW5kaWYKLSAgICBiZCEKKworICAgICIgcmVtb3ZlIGVuZXcgYnVmZmVyIChxdWlldGx5KQorICAgIGxldCBmaWx0YnVmPSBidWZucigiJSIpCisgICAgZXhlIGN1cmJ1Zi4iYiEiCisgICAgbGV0ICZsOmJoPSBiaGtlZXAKKyAgICBleGUgZmlsdGJ1Zi4iYnchIgogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgc2NwOiBOZXRXcml0ZSBNZXRob2QgIzQge3t7NAorICAgIiBOZXRXcml0ZTogKHNjcCkgTmV0V3JpdGUgTWV0aG9kICM0IHt7ezMKICAgIGVsc2VpZiAgICAgYjpuZXRyd19tZXRob2QgPT0gNAogIiAgICBjYWxsIERlY2hvKCJ3cml0ZSB2aWEgc2NwIChtZXRob2QgIzQpIikKICAgICBpZiBleGlzdHMoImc6bmV0cndfcG9ydCIpICYmIGc6bmV0cndfcG9ydCAhPSAiIgpAQCAtMTE4OCw3ICsxMTgwLDcgQEAKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgaHR0cDogTmV0V3JpdGUgTWV0aG9kICM1IHt7ezQKKyAgICIgTmV0V3JpdGU6IChodHRwKSBOZXRXcml0ZSBNZXRob2QgIzUge3t7MwogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCA9PSA1CiAiICAgIGNhbGwgRGVjaG8oIndyaXRlIHZpYSBodHRwIChtZXRob2QgIzUpIikKICAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKQEAgLTExOTYsMTMgKzExODgsMTkgQEAKICAgICBlbmRpZgogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSAgICIgZGF2OiBOZXRXcml0ZSBNZXRob2QgIzYgKGNhZGF2ZXIpIHt7ezQKKyAgICIgTmV0V3JpdGU6IChkYXYpIE5ldFdyaXRlIE1ldGhvZCAjNiAoY2FkYXZlcikge3t7MwogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCA9PSA2CiAiICAgIGNhbGwgRGVjaG8oIndyaXRlIHZpYSBjYWRhdmVyIChtZXRob2QgIzYpIikKIAogICAgICIgQ29uc3RydWN0IGV4ZWN1dGlvbiBzdHJpbmcgKGZvdXIgbGluZXMpIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggZmlsdGVyCi0gICAgbGV0IG5ldHJ3X2ZuYW1lPSBlc2NhcGUoYjpuZXRyd19mbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKLSAgICBuZXcKKyAgICBsZXQgbmV0cndfZm5hbWUgPSBlc2NhcGUoYjpuZXRyd19mbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKKyAgICBsZXQgYmhrZWVwICAgICAgPSAmbDpiaAorCisgICAgIiBmb3JtZXJseSBqdXN0IGEgIm5ldy4uLmJkISIsIHRoYXQgY2hhbmdlZCB0aGUgd2luZG93IHNpemVzIHdoZW4gZXF1YWxhbHdheXMuICBVc2luZyBlbmV3IHdvcmthcm91bmQgaW5zdGVhZAorICAgIGxldCBjdXJidWYgICAgICA9IGJ1Zm5yKCIlIikKKyAgICBzZXRsb2NhbCBiaD1oaWRlCisgICAgZW5ldworCiAgICAgc2V0bG9jYWwgZmY9dW5peAogICAgIGlmIGV4aXN0cygiZzpuZXRyd19wb3J0IikgJiYgZzpuZXRyd19wb3J0ICE9ICIiCiAgICAgIHB1dCA9J29wZW4gJy5nOm5ldHJ3X21hY2hpbmUuJyAnLmc6bmV0cndfcG9ydApAQCAtMTIxOCwxMSArMTIxNiwxNyBAQAogICAgIG5vcm0hIDFHZGQKICIgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19kYXZfY21kKQogICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Rhdl9jbWQKLSAgICBiZCEKKworICAgICIgcmVtb3ZlIGVuZXcgYnVmZmVyIChxdWlldGx5KQorICAgIGxldCBmaWx0YnVmPSBidWZucigiJSIpCisgICAgZXhlIGN1cmJ1Zi4iYiEiCisgICAgbGV0ICZsOmJoICAgICAgICAgICAgPSBiaGtlZXAKKyAgICBleGUgZmlsdGJ1Zi4iYnchIgorCiAgICAgbGV0IGI6bmV0cndfbGFzdGZpbGUgPSBjaG9pY2UKIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICAiIHJzeW5jOiBOZXRXcml0ZSBNZXRob2QgIzcge3t7NAorICAgIiBOZXRXcml0ZTogKHJzeW5jKSBOZXRXcml0ZSBNZXRob2QgIzcge3t7MwogICAgZWxzZWlmICAgICBiOm5ldHJ3X21ldGhvZCA9PSA3CiAiICAgIGNhbGwgRGVjaG8oIndyaXRlIHZpYSByc3luYyAobWV0aG9kICM3KSIpCiAiICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogISIuZzpuZXRyd19yc3luY19jbWQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKSkKQEAgLTEyMzAsNyArMTIzNCw3IEBACiAgICAgbGV0IGI6bmV0cndfbGFzdGZpbGUgPSBjaG9pY2UKIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICAiIHNmdHA6IE5ldFdyaXRlIE1ldGhvZCAjOSB7e3s0CisgICAiIE5ldFdyaXRlOiAoc2Z0cCkgTmV0V3JpdGUgTWV0aG9kICM5IHt7ezMKICAgIGVsc2VpZiAgICAgYjpuZXRyd19tZXRob2QgPT0gOQogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBzZnRwIChtZXRob2QgIzkpIikKICAgICBsZXQgbmV0cndfZm5hbWU9IGVzY2FwZShiOm5ldHJ3X2ZuYW1lLGc6bmV0cndfZm5hbWVfZXNjYXBlKQpAQCAtMTIzOSwyNCArMTI0MywzMiBAQAogICAgIGVsc2UKICAgICAgbGV0IHVpZF9tYWNoaW5lID0gZzpuZXRyd19tYWNoaW5lCiAgICAgZW5kaWYKLSAgICBuZXcKKworICAgICIgZm9ybWVybHkganVzdCBhICJuZXcuLi5iZCEiLCB0aGF0IGNoYW5nZWQgdGhlIHdpbmRvdyBzaXplcyB3aGVuIGVxdWFsYWx3YXlzLiAgVXNpbmcgZW5ldyB3b3JrYXJvdW5kIGluc3RlYWQKKyAgICBsZXQgYmhrZWVwID0gJmw6YmgKKyAgICBsZXQgY3VyYnVmID0gYnVmbnIoIiUiKQorICAgIHNldGxvY2FsIGJoPWhpZGUKKyAgICBlbmV3CisKICAgICBzZXRsb2NhbCBmZj11bml4Ci0gICAgcHV0ID0ncHV0IFwiJy5lc2NhcGUodG1wZmlsZSwnXCcpLidcIiAnLm5ldHJ3X2ZuYW1lCisgICAgY2FsbCBzZXRsaW5lKDEsJ3B1dCAiJy5lc2NhcGUodG1wZmlsZSwnXCcpLiciICcubmV0cndfZm5hbWUpCiAiICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCcuJykpCi0gICAgbm9ybSEgMUdkZAogIiAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICUhIi5nOm5ldHJ3X3NmdHBfY21kLicgJy5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZSwxKSkKICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19zZnRwX2NtZC4nICcuc2hlbGxlc2NhcGUodWlkX21hY2hpbmUsMSkKLSAgICBiZCEKLSAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZT0gY2hvaWNlCisgICAgbGV0IGZpbHRidWY9IGJ1Zm5yKCIlIikKKyAgICBleGUgY3VyYnVmLiJiISIKKyAgICBsZXQgJmw6YmggICAgICAgICAgICA9IGJoa2VlcAorICAgIGV4ZSBmaWx0YnVmLiJidyEiCisgICAgbGV0IGI6bmV0cndfbGFzdGZpbGUgPSBjaG9pY2UKIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICAiIENvbXBsYWluIHt7ezQKKyAgICIgTmV0V3JpdGU6IENvbXBsYWluIHt7ezMKICAgIGVsc2UKICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywidW5hYmxlIHRvIGNvbXBseSB3aXRoIHlvdXIgcmVxdWVzdDwiIC4gY2hvaWNlIC4gIj4iLDE3KQogICAgZW5kaWYKICAgZW5kd2hpbGUKIAotICAiIENsZWFudXA6IHt7ezMKKyAgIiBOZXRXcml0ZTogQ2xlYW51cDoge3t7MwogIiAgY2FsbCBEZWNobygiY2xlYW51cCIpCiAgIGlmIHM6RmlsZVJlYWRhYmxlKHRtcGZpbGUpCiAiICAgY2FsbCBEZWNobygidG1wZmlsZTwiLnRtcGZpbGUuIj4gcmVhZGFibGUsIHdpbGwgbm93IGRlbGV0ZSBpdCIpCkBAIC0xMjY5LDYgKzEyODEsNyBAQAogICAgbGV0ICZtb2Q9IG1vZAogICBlbmRpZgogCisgICIgcmVzdG9yZSBlcXVhbGFsd2F5cwogIiAgY2FsbCBEcmV0KCJuZXRydyNOZXRXcml0ZSIpCiBlbmRmdW4KIApAQCAtMTM3MCwxMSArMTM4Myw3IEBACiAgICAiIHJlbmFtZSBidWZmZXIgYmFjayB0byByZW1vdGUgZmlsZW5hbWUKICIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShyZmlsZSkpCiAgICBleGUgInNpbGVudCEga2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUocmZpbGUpCi0gICBpZiBhOm1ldGhvZCA9PSA1Ci0gICAgc2V0IGZ0PWh0bWwKLSAgIGVsc2UKLSAgICBmaWxldHlwZSBkZXRlY3QKLSAgIGVuZGlmCisgICBmaWxldHlwZSBkZXRlY3QKICIgICBjYWxsIERyZWRpcigicmVuYW1lZCBidWZmZXIgYmFjayB0byByZW1vdGUgZmlsZW5hbWU8Ii5yZmlsZS4iPiA6IGV4cGFuZCglKTwiLmV4cGFuZCgiJSIpLiI+IiwibHMhIikKICAgIGxldCBsaW5lMSA9IDEKICAgIGxldCBsaW5lMiA9IGxpbmUoIiQiKQpAQCAtMTQwNiw3ICsxNDE1LDcgQEAKICIgICBjYWxsIERlY2hvKCJOZXRSZWFkRml4dXAoKSBub3QgY2FsbGVkLCBkb2Vzbid0IGV4aXN0ICAobGluZTE9Ii5saW5lMS4iIGxpbmUyPSIubGluZTIuIikiKQogICBlbmRpZgogCi0gIGlmIGhhcygiZ3VpIikgJiYgaGFzKCJtZW51IikgJiYgaGFzKCJndWlfcnVubmluZyIpICYmICZnbyA9fiAnbScKKyAgaWYgaGFzKCJndWkiKSAmJiBoYXMoIm1lbnUiKSAmJiBoYXMoImd1aV9ydW5uaW5nIikgJiYgJmdvID1+ICdtJyAmJiBnOm5ldHJ3X21lbnUKICAgICIgdXBkYXRlIHRoZSBCdWZmZXJzIG1lbnUKICAgIGNhbGwgczpVcGRhdGVCdWZmZXJzTWVudSgpCiAgIGVuZGlmCkBAIC0xNDIyLDE4ICsxNDMxLDM0IEBACiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6TmV0cndNZXRob2Q6ICBkZXRlcm1pbmUgbWV0aG9kIG9mIHRyYW5zZmVyIHt7ezIKLSIgIG1ldGhvZCA9PSAxOiByY3AKLSIJICAgICAyOiBmdHAgKyA8Lm5ldHJjPgotIgkgICAgIDM6IGZ0cCArIG1hY2hpbmUsIGlkLCBwYXNzd29yZCwgYW5kIFtwYXRoXWZpbGVuYW1lCi0iCSAgICAgNDogc2NwCi0iCSAgICAgNTogaHR0cCAod2dldCkKLSIJICAgICA2OiBjYWRhdmVyCi0iCSAgICAgNzogcnN5bmMKLSIJICAgICA4OiBmZXRjaAotIgkgICAgIDk6IHNmdHAKLWZ1biEgczpOZXRyd01ldGhvZChjaG9pY2UpICAiIGdsb2JhbHM6IG1ldGhvZCBtYWNoaW5lIGlkIHBhc3N3ZCBmbmFtZQorIiBJbnB1dDoKKyIgICBjaG9pY2UgPSB1cmwgICBbcHJvdG9jb2w6XS8vW3VzZXJpZEBdaG9zdG5hbWVbOnBvcnRdL1twYXRoLXRvLWZpbGVdCisiIE91dHB1dDoKKyIgIGI6bmV0cndfbWV0aG9kPSAxOiByY3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIgICAgICAgICAgICAgICAgICAyOiBmdHAgKyA8Lm5ldHJjPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIJICAgICAgICAgICAzOiBmdHAgKyBtYWNoaW5lLCBpZCwgcGFzc3dvcmQsIGFuZCBbcGF0aF1maWxlbmFtZSAKKyIJICAgICAgICAgICA0OiBzY3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIJICAgICAgICAgICA1OiBodHRwICh3Z2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIJICAgICAgICAgICA2OiBkYXYKKyIJICAgICAgICAgICA3OiByc3luYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIJICAgICAgICAgICA4OiBmZXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIJICAgICAgICAgICA5OiBzZnRwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyIgIGc6bmV0cndfbWFjaGluZT0gaG9zdG5hbWUKKyIgIGI6bmV0cndfZm5hbWUgID0gZmlsZW5hbWUKKyIgIGc6bmV0cndfcG9ydCAgID0gb3B0aW9uYWwgcG9ydCBudW1iZXIgKGZvciBmdHApCisiICBnOm5ldHJ3X2Nob2ljZSA9IGNvcHkgb2YgaW5wdXQgdXJsIChjaG9pY2UpCitmdW4hIHM6TmV0cndNZXRob2QoY2hvaWNlKQogIiAgIGNhbGwgRGZ1bmMoIk5ldHJ3TWV0aG9kKGE6Y2hvaWNlPCIuYTpjaG9pY2UuIj4pIikKIAorICAgIiByZWNvcmQgY3VycmVudCBnOm5ldHJ3X21hY2hpbmUsIGlmIGFueQorICAgIiBjdXJtYWNoaW5lIHVzZWQgaWYgcHJvdG9jb2wgPT0gZnRwIGFuZCBubyAubmV0cmMKKyAgIGlmIGV4aXN0cygiZzpuZXRyd19tYWNoaW5lIikKKyAgICBsZXQgY3VybWFjaGluZT0gZzpuZXRyd19tYWNoaW5lCisiICAgIGNhbGwgRGVjaG8oImN1cm1hY2hpbmU8Ii5jdXJtYWNoaW5lLiI+IikKKyAgIGVsc2UKKyAgICBsZXQgY3VybWFjaGluZT0gIk4gTyBUIEEgSE9TVCIKKyAgIGVuZGlmCisKICAgIiBpbml0aWFsaXphdGlvbgogICBsZXQgYjpuZXRyd19tZXRob2QgID0gMAogICBsZXQgZzpuZXRyd19tYWNoaW5lID0gIiIKQEAgLTE0NDksNyArMTQ3NCw3IEBACiAgICIgcmNwaGYgICAgOiBbdXNlckBdaG9zdDpmaWxlbmFtZQkJICAgICBVc2UgcmNwCiAgICIgc2NwdXJtICAgOiBzY3A6Ly9bdXNlckBdaG9zdFtbIzpdcG9ydF0vZmlsZW5hbWUgIFVzZSBzY3AKICAgIiBodHRwdXJtICA6IGh0dHA6Ly9bdXNlckBdaG9zdC9maWxlbmFtZQkgICAgIFVzZSB3Z2V0Ci0gICIgZGF2dXJtICAgOiBkYXZbc106Ly9ob3N0Wzpwb3J0XS9wYXRoICAgICAgICAgICAgIFVzZSBjYWRhdmVyCisgICIgZGF2dXJtICAgOiBkYXZbc106Ly9ob3N0Wzpwb3J0XS9wYXRoICAgICAgICAgICAgIFVzZSBjYWRhdmVyL2N1cmwKICAgIiByc3luY3VybSA6IHJzeW5jOi8vaG9zdFs6cG9ydF0vcGF0aCAgICAgICAgICAgICAgVXNlIHJzeW5jCiAgICIgZmV0Y2h1cm0gOiBmZXRjaDovL1t1c2VyQF1ob3N0WzpodHRwXS9maWxlbmFtZSAgIFVzZSBmZXRjaCAoZGVmYXVsdHMgdG8gZnRwLCBvdmVycmlkZSBmb3IgaHR0cCkKICAgIiBzZnRwdXJtICA6IHNmdHA6Ly9bdXNlckBdaG9zdC9maWxlbmFtZSAgVXNlIHNjcApAQCAtMTUxOCw5ICsxNTQzLDE0IEBACiAgICBsZXQgZzpuZXRyd19tYWNoaW5lPSBzdWJzdGl0dXRlKGE6Y2hvaWNlLGZ0cHVybSwnXDMnLCIiKQogICAgbGV0IGc6bmV0cndfcG9ydCAgID0gc3Vic3RpdHV0ZShhOmNob2ljZSxmdHB1cm0sJ1w0JywiIikKICAgIGxldCBiOm5ldHJ3X2ZuYW1lICA9IHN1YnN0aXR1dGUoYTpjaG9pY2UsZnRwdXJtLCdcNScsIiIpCisiICAgY2FsbCBEZWNobygiZzpuZXRyd19tYWNoaW5lPCIuZzpuZXRyd19tYWNoaW5lLiI+IikKICAgIGlmIHVzZXJpZCAhPSAiIgogICAgIGxldCBnOm5ldHJ3X3VpZD0gdXNlcmlkCiAgICBlbmRpZgorICAgaWYgZXhpc3RzKCJzOm5ldHJ3X3Bhc3N3ZCIpICYmIGN1cm1hY2hpbmUgIT0gZzpuZXRyd19tYWNoaW5lCisgICAgIiBpZiB0aGVyZSdzIGEgY2hhbmdlIGluIGhvc3RuYW1lLCByZXF1aXJlIHBhc3N3b3JkIHJlLWVudHJ5CisgICAgdW5sZXQgczpuZXRyd19wYXNzd2QKKyAgIGVuZGlmCiAgICBpZiBleGlzdHMoImc6bmV0cndfdWlkIikgJiYgZXhpc3RzKCJzOm5ldHJ3X3Bhc3N3ZCIpCiAgICAgbGV0IGI6bmV0cndfbWV0aG9kID0gMwogICAgZWxzZQpAQCAtMTU5Miw3ICsxNjIyLDcgQEAKIAogICBlbHNlCiAgICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKLSAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywiY2Fubm90IGRldGVybWluZSBtZXRob2QiLDQ1KQorICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCJjYW5ub3QgZGV0ZXJtaW5lIG1ldGhvZCAoZm9ybWF0OiBwcm90b2NvbDovL1t1c2VyQF1ob3N0bmFtZVs6cG9ydF0vW3BhdGhdKSIsNDUpCiAgICBlbmRpZgogICAgbGV0IGI6bmV0cndfbWV0aG9kICA9IC0xCiAgIGVuZGlmCkBAIC0xNjI2LDEwICsxNjU2LDI0IEBACiBpZiBoYXMoIndpbjk1IikgJiYgZXhpc3RzKCJnOm5ldHJ3X3dpbjk1ZnRwIikgJiYgZzpuZXRyd193aW45NWZ0cAogIGZ1biEgTmV0UmVhZEZpeHVwKG1ldGhvZCwgbGluZTEsIGxpbmUyKQogIiAgIGNhbGwgRGZ1bmMoIk5ldFJlYWRGaXh1cChtZXRob2Q8Ii5hOm1ldGhvZC4iPiBsaW5lMT0iLmE6bGluZTEuIiBsaW5lMj0iLmE6bGluZTIuIikiKQorCisgICAiIHNhbml0eSBjaGVja3MgLS0gYXR0ZW1wdCB0byBjb252ZXJ0IGlucHV0cyB0byBpbnRlZ2VycworICAgbGV0IG1ldGhvZCA9IGE6bWV0aG9kICsgMAorICAgbGV0IGxpbmUxICA9IGE6bGluZTEgKyAwCisgICBsZXQgbGluZTIgID0gYTpsaW5lMiArIDAKKyAgIGlmIHR5cGUobWV0aG9kKSAhPSAwIHx8IHR5cGUobGluZTEpICE9IDAgfHwgdHlwZShsaW5lMikgIT0gMCB8fCBtZXRob2QgPCAwIHx8IGxpbmUxIDw9IDAgfHwgbGluZTIgPD0gMAorIiAgICBjYWxsIERyZXQoIk5ldFJlYWRGaXh1cCIpCisgICAgcmV0dXJuCisgICBlbmRpZgorCiAgICBpZiBtZXRob2QgPT0gMyAgICIgZnRwIChubyA8Lm5ldHJjPikKICAgICBsZXQgZm91cmJsYW5rbGluZXM9IGxpbmUyIC0gMwotICAgIHNpbGVudCBmb3VyYmxhbmtsaW5lcy4iLCIubGluZTIuImcvXlxzKi9kIgorICAgIGlmIGZvdXJibGFua2xpbmVzID49IGxpbmUxCisgICAgIGV4ZSAic2lsZW50ICIuZm91cmJsYW5rbGluZXMuIiwiLmxpbmUyLiJnL15ccyokL2QiCisgICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCisgICAgZW5kaWYKICAgIGVuZGlmCisKICIgICBjYWxsIERyZXQoIk5ldFJlYWRGaXh1cCIpCiAgZW5kZnVuCiBlbmRpZgpAQCAtMTY3OCw3ICsxNzIyLDcgQEAKICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxjcj4JOmNhbGwgbmV0cncjTG9jYWxCcm93c2VDaGVjayg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDEsPFNJRD5OZXRyd0dldFdvcmQoKSkpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gLQkJOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgbmV0cncjTG9jYWxCcm93c2VDaGVjayg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDEsJy4uLycpKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGEJCTpjYWxsIDxTSUQ+TmV0cndIaWRlKDEpPGNyPgotICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbWIJOjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va21hcmtEaXIoMCxiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtYgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoMCxiOm5ldHJ3X2N1cmRpcik8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtYwk6PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUNvcHkoMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtZAk6PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZURpZmYoMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtZQk6PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUVkaXQoMSk8Y3I+CkBAIC0xNjk0LDI1ICsxNzM4LDI4IEBACiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtdQk6PGMtdT5jYWxsIDxTSUQ+TmV0cndVbk1hcmtGaWxlKDEpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbXgJOjxjLXU+Y2FsbCA8U0lEPk5ldHJ3TWFya0ZpbGVFeGUoMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtegk6PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUNvbXByZXNzKDEpPGNyPgotICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gZ2IJOjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va21hcmtEaXIoMSxiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBnYgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoMSxiOm5ldHJ3X2N1cmRpcik8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBnaAk6PGMtdT5jYWxsIDxTSUQ+TmV0cndIaWRkZW4oMSk8Y3I+CisgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBncAk6PGMtdT5jYWxsIDxTSUQ+TmV0cndDaGdQZXJtKDEsYjpuZXRyd19jdXJkaXIpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYwkJOmV4ZSAia2VlcGp1bXBzIGxjZCAiLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEMJCTpsZXQgZzpuZXRyd19jaGd3aW49IHdpbm5yKCk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBkCQk6Y2FsbCA8U0lEPk5ldHJ3TWFrZURpcigiIik8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBpCQk6Y2FsbCA8U0lEPk5ldHJ3TGlzdFN0eWxlKDEpPGNyPgorICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gSQkJOmNhbGwgPFNJRD5OZXRyd0Jhbm5lckN0cmwoMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBvCQk6Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoMyk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBPCQk6Y2FsbCA8U0lEPk5ldHJ3T2J0YWluKDEpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcAkJOmNhbGwgPFNJRD5OZXRyd1ByZXZpZXcoPFNJRD5OZXRyd0Jyb3dzZUNoZ0RpcigxLDxTSUQ+TmV0cndHZXRXb3JkKCksMSkpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUAkJOmNhbGwgPFNJRD5OZXRyd1ByZXZXaW5PcGVuKDEpPGNyPgotICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcWIJOjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va21hcmtEaXIoMixiOm5ldHJ3X2N1cmRpcik8Y3I+Ci0gICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtQgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rbWFya0Rpcig2LGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHFiCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcigyLGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1CCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig2LGI6bmV0cndfY3VyZGlyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHFmCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0ZpbGVJbmZvKDEsPFNJRD5OZXRyd0dldFdvcmQoKSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiByCQk6bGV0IGc6bmV0cndfc29ydF9kaXJlY3Rpb249IChnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uID1+ICduJyk/ICdyJyA6ICduJzxiYXI+ZXhlICJub3JtISAwIjxiYXI+Y2FsbCA8U0lEPk5ldHJ3UmVmcmVzaCgxLDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMSwnLi8nKSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBzCQk6Y2FsbCA8U0lEPk5ldHJ3U29ydFN0eWxlKDEpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUwkJOmNhbGwgPFNJRD5OZXRTb3J0U2VxdWVuY2UoMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB0CQk6Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoNCk8Y3I+Ci0gICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB1CQk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rbWFya0Rpcig0LGV4cGFuZCgiJSIpKTxjcj4KLSAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2ttYXJrRGlyKDUsZXhwYW5kKCIlIikpPGNyPgorICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gVAkJOmNhbGwgPFNJRD5OZXRyd1NwbGl0KDQpPGJhcj5ub3JtISBnVDxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig0LGV4cGFuZCgiJSIpKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig1LGV4cGFuZCgiJSIpKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHYJCTpjYWxsIDxTSUQ+TmV0cndTcGxpdCg1KTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHgJCTpjYWxsIG5ldHJ3I05ldHJ3QnJvd3NlWCg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDEsPFNJRD5OZXRyd0dldFdvcmQoKSwwKSwwKSI8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiAlCQk6Y2FsbCA8U0lEPk5ldHJ3T3BlbkZpbGUoMSk8Y3I+CkBAIC0xNzU0LDcgKzE4MDEsNyBAQAogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPGMtbD4JOmNhbGwgPFNJRD5OZXRyd1JlZnJlc2goMCw8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDAsJy4vJykpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gLQkJOmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRyd0Jyb3dzZSgwLDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMCwnLi4vJykpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gYQkJOmNhbGwgPFNJRD5OZXRyd0hpZGUoMCk8Y3I+Ci0gICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtYgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rbWFya0RpcigwLGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1iCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcigwLGI6bmV0cndfY3VyZGlyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1jCTo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlQ29weSgwKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1kCTo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlRGlmZigwKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG1lCTo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlRWRpdCgwKTxjcj4KQEAgLTE3NzAsMjMgKzE4MTcsMjYgQEAKICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG11CTo8Yy11PmNhbGwgPFNJRD5OZXRyd1VuTWFya0ZpbGUoMCk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBteAk6PGMtdT5jYWxsIDxTSUQ+TmV0cndNYXJrRmlsZUV4ZSgwKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IG16CTo8Yy11PmNhbGwgPFNJRD5OZXRyd01hcmtGaWxlQ29tcHJlc3MoMCk8Y3I+Ci0gICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBnYgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rbWFya0RpcigxLGI6bmV0cndfY3VyKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGdiCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcigxLGI6bmV0cndfY3VyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGdoCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0hpZGRlbigwKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IGdwCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0NoZ1Blcm0oMCxiOm5ldHJ3X2N1cmRpcik8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBDCQk6bGV0IGc6bmV0cndfY2hnd2luPSB3aW5ucigpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gaQkJOmNhbGwgPFNJRD5OZXRyd0xpc3RTdHlsZSgwKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IEkJCTpjYWxsIDxTSUQ+TmV0cndCYW5uZXJDdHJsKDEpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbwkJOmNhbGwgPFNJRD5OZXRyd1NwbGl0KDApPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gTwkJOmNhbGwgPFNJRD5OZXRyd09idGFpbigwKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHAJCTpjYWxsIDxTSUQ+TmV0cndQcmV2aWV3KDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMSw8U0lEPk5ldHJ3R2V0V29yZCgpLDEpKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFAJCTpjYWxsIDxTSUQ+TmV0cndQcmV2V2luT3BlbigwKTxjcj4KLSAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHFiCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2ttYXJrRGlyKDIsYjpuZXRyd19jdXJkaXIpPGNyPgotICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gbUIJOjxjLXU+Y2FsbCA8U0lEPk5ldHJ3Qm9va21hcmtEaXIoNixiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBxYgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoMixiOm5ldHJ3X2N1cmRpcik8Y3I+CisgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBtQgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rSGlzdEhhbmRsZXIoNixiOm5ldHJ3X2N1cmRpcik8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBxZgk6PGMtdT5jYWxsIDxTSUQ+TmV0cndGaWxlSW5mbygwLDxTSUQ+TmV0cndHZXRXb3JkKCkpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gcgkJOmxldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSAoZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicpPyAncicgOiAnbic8YmFyPmV4ZSAibm9ybSEgMCI8YmFyPmNhbGwgPFNJRD5OZXRyd0Jyb3dzZSgwLDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMCwnLi8nKSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiBzCQk6Y2FsbCA8U0lEPk5ldHJ3U29ydFN0eWxlKDApPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUwkJOmNhbGwgPFNJRD5OZXRTb3J0U2VxdWVuY2UoMCk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB0CQk6Y2FsbCA8U0lEPk5ldHJ3U3BsaXQoMSk8Y3I+Ci0gICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiB1CQk6PGMtdT5jYWxsIDxTSUQ+TmV0cndCb29rbWFya0Rpcig0LGI6bmV0cndfY3VyZGlyKTxjcj4KLSAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2ttYXJrRGlyKDUsYjpuZXRyd19jdXJkaXIpPGNyPgorICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gVAkJOmNhbGwgPFNJRD5OZXRyd1NwbGl0KDEpPGJhcj5ub3JtISBnVDxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig0LGI6bmV0cndfY3VyZGlyKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2tIaXN0SGFuZGxlcig1LGI6bmV0cndfY3VyZGlyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHYJCTpjYWxsIDxTSUQ+TmV0cndTcGxpdCgyKTxjcj4KICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IHgJCTpjYWxsIG5ldHJ3I05ldHJ3QnJvd3NlWCg8U0lEPk5ldHJ3QnJvd3NlQ2hnRGlyKDAsPFNJRD5OZXRyd0dldFdvcmQoKSksMSk8Y3I+CiAgICBubm9yZW1hcCA8YnVmZmVyPiA8c2lsZW50PiAlCQk6Y2FsbCA8U0lEPk5ldHJ3T3BlbkZpbGUoMCk8Y3I+CkBAIC0xODM2LDcgKzE4ODYsNyBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iICBzOk5ldHJ3Qm9va21hcmtEaXI6IHt7ezIKKyIgIHM6TmV0cndCb29rSGlzdEhhbmRsZXI6IHt7ezIKICIgICAgMDogKHVzZXI6IDxtYj4pICAgYm9va21hcmsgY3VycmVudCBkaXJlY3RvcnkKICIgICAgMTogKHVzZXI6IDxnYj4pICAgY2hhbmdlIHRvIHRoZSBib29rbWFya2VkIGRpcmVjdG9yeQogIiAgICAyOiAodXNlcjogPHFiPikgICBsaXN0IGJvb2ttYXJrcwpAQCAtMTg0NCwzMiArMTg5NCwyNyBAQAogIiAgICA0OiAodXNlcjogPHU+KSAgICBnbyB1cCAgIChwcmV2aW91cykgYm9va21hcmsKICIgICAgNTogKHVzZXI6IDxVPikgICAgZ28gZG93biAobmV4dCkgICAgIGJvb2ttYXJrCiAiICAgIDY6ICh1c2VyOiA8bUI+KSAgIGRlbGV0ZSBib29rbWFyawotZnVuISBzOk5ldHJ3Qm9va21hcmtEaXIoY2hnLGN1cmRpcikKLSIgIGNhbGwgRGZ1bmMoIk5ldHJ3Qm9va21hcmtEaXIoY2hnPSIuYTpjaGcuIiBjdXJkaXI8Ii5hOmN1cmRpci4iPikgY250PSIudjpjb3VudC4iIGJvb2ttYXJrY250PSIuZzpORVRSV19CT09LTUFSS01BWC4iIGhpc3RjbnQ9Ii5nOk5FVFJXX0RJUkhJU1RfQ05ULiIgYm9va21heD0iLmc6TkVUUldfQk9PS01BUktNQVguIiBoaXN0bWF4PSIuZzpuZXRyd19kaXJoaXN0bWF4KQorZnVuISBzOk5ldHJ3Qm9va0hpc3RIYW5kbGVyKGNoZyxjdXJkaXIpCisiICBjYWxsIERmdW5jKCJOZXRyd0Jvb2tIaXN0SGFuZGxlcihjaGc9Ii5hOmNoZy4iIGN1cmRpcjwiLmE6Y3VyZGlyLiI+KSBjbnQ9Ii52OmNvdW50LiIgaGlzdGNudD0iLmc6bmV0cndfZGlyaGlzdF9jbnQuIiBoaXN0bWF4PSIuZzpuZXRyd19kaXJoaXN0bWF4KQogCiAgIGlmIGE6Y2hnID09IDAKICAgICIgYm9va21hcmsgdGhlIGN1cnJlbnQgZGlyZWN0b3J5CiAiICAgY2FsbCBEZWNobygiKHVzZXI6IDxiPikgYm9va21hcmsgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IikKLSAgIGlmIHY6Y291bnQgPiAwCi0gICAgIiBoYW5kbGUgYm9va21hcmsjIHNwZWNpZmllZCB2aWEgdGhlIGNvdW50Ci0gICAgbGV0IGc6TkVUUldfQk9PS01BUktESVJfe3Y6Y291bnR9PSBhOmN1cmRpcgotICAgIGlmICFleGlzdHMoImc6TkVUUldfQk9PS01BUktNQVgiKQotICAgICBsZXQgZzpORVRSV19CT09LTUFSS01BWD0gdjpjb3VudAotICAgIGVsc2VpZiB2OmNvdW50ID4gZzpORVRSV19CT09LTUFSS01BWAotICAgICBsZXQgZzpORVRSV19CT09LTUFSS01BWD0gdjpjb3VudAotICAgIGVuZGlmCi0gICBlbHNlCi0gICAgIiBoYW5kbGUgbm8gY291bnQgc3BlY2lmaWVkCi0gICAgbGV0IGc6TkVUUldfQk9PS01BUktNQVggICAgICAgICAgICAgICAgICAgICAgID0gZzpORVRSV19CT09LTUFSS01BWCArIDEKLSAgICBsZXQgZzpORVRSV19CT09LTUFSS0RJUl97ZzpORVRSV19CT09LTUFSS01BWH0gPSBhOmN1cmRpcgorICAgaWYgIWV4aXN0cygiZzpuZXRyd19ib29rbWFya2xpc3QiKQorICAgIGxldCBnOm5ldHJ3X2Jvb2ttYXJrbGlzdD0gW10KKyAgIGVuZGlmCisgICBpZiBpbmRleChnOm5ldHJ3X2Jvb2ttYXJrbGlzdCxhOmN1cmRpcikgPT0gLTEKKyAgICAiIGN1cmRpciBub3QgY3VycmVudGx5IGluIGc6bmV0cndfYm9va21hcmtsaXN0LCBzbyBpbmNsdWRlIGl0CisgICAgY2FsbCBhZGQoZzpuZXRyd19ib29rbWFya2xpc3QsYTpjdXJkaXIpCisgICAgY2FsbCBzb3J0KGc6bmV0cndfYm9va21hcmtsaXN0KQogICAgZW5kaWYKICAgIGVjaG8gImJvb2ttYXJrZWQgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IgogCiAgIGVsc2VpZiBhOmNoZyA9PSAxCiAgICAiIGNoYW5nZSB0byB0aGUgYm9va21hcmtlZCBkaXJlY3RvcnkKLSIgICBjYWxsIERlY2hvKCIodXNlcjogPEI+KSBjaGFuZ2UgdG8gdGhlIGJvb2ttYXJrZWQgZGlyZWN0b3J5IikKLSAgIGlmIGV4aXN0cygiZzpORVRSV19CT09LTUFSS0RJUl97djpjb3VudH0iKQotICAgIGV4ZSAiZSAiLmZuYW1lZXNjYXBlKGc6TkVUUldfQk9PS01BUktESVJfe3Y6Y291bnR9KQorIiAgIGNhbGwgRGVjaG8oIih1c2VyOiA8Ii52OmNvdW50LiJtYj4pIGNoYW5nZSB0byB0aGUgYm9va21hcmtlZCBkaXJlY3RvcnkiKQorICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Jvb2ttYXJrbGlzdFt2OmNvdW50LTFdIikKKyAgICBleGUgImUgIi5mbmFtZWVzY2FwZShnOm5ldHJ3X2Jvb2ttYXJrbGlzdFt2OmNvdW50LTFdKQogICAgZWxzZQogICAgIGVjaG9tc2cgIlNvcnJ5LCBib29rbWFyayMiLnY6Y291bnQuIiBkb2Vzbid0IGV4aXN0ISIKICAgIGVuZGlmCkBAIC0xODc5LDI5ICsxOTI0LDI3IEBACiAgICBsZXQgZGlkd29yaz0gMAogICAgIiBsaXN0IHVzZXIncyBib29rbWFya3MKICIgICBjYWxsIERlY2hvKCIodXNlcjogPHE+KSBsaXN0IHVzZXIncyBib29rbWFya3MiKQotICAgaWYgZXhpc3RzKCJnOk5FVFJXX0JPT0tNQVJLTUFYIikKLSIgICAgY2FsbCBEZWNobygibGlzdCBib29rbWFya3MgWzAsIi5nOk5FVFJXX0JPT0tNQVJLTUFYLiJdIikKLSAgICBsZXQgY250PSAwCi0gICAgd2hpbGUgY250IDw9IGc6TkVUUldfQk9PS01BUktNQVgKLSAgICAgaWYgZXhpc3RzKCJnOk5FVFJXX0JPT0tNQVJLRElSX3tjbnR9IikKLSIgICAgICBjYWxsIERlY2hvKCJOZXRydyBCb29rbWFyayMiLmNudC4iOiAiLmc6TkVUUldfQk9PS01BUktESVJfe2NudH0pCi0gICAgICBlY2hvICJOZXRydyBCb29rbWFyayMiLmNudC4iOiAiLmc6TkVUUldfQk9PS01BUktESVJfe2NudH0KLSAgICAgIGxldCBkaWR3b3JrPSAxCi0gICAgIGVuZGlmCi0gICAgIGxldCBjbnQ9IGNudCArIDEKLSAgICBlbmR3aGlsZQorICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Jvb2ttYXJrbGlzdCIpCisiICAgIGNhbGwgRGVjaG8oJ2xpc3QgJy5sZW4oZzpuZXRyd19ib29rbWFya2xpc3QpLicgYm9va21hcmtzJykKKyAgICBsZXQgY250PSAxCisgICAgZm9yIGJtZCBpbiBnOm5ldHJ3X2Jvb2ttYXJrbGlzdAorIiAgICAgY2FsbCBEZWNobygiTmV0cncgQm9va21hcmsjIi5jbnQuIjogIi5nOm5ldHJ3X2Jvb2ttYXJrbGlzdFtjbnQtMV0pCisgICAgIGVjaG8gIk5ldHJ3IEJvb2ttYXJrIyIuY250LiI6ICIuZzpuZXRyd19ib29rbWFya2xpc3RbY250LTFdCisgICAgIGxldCBkaWR3b3JrID0gMQorICAgICBsZXQgY250ICAgICA9IGNudCArIDEKKyAgICBlbmRmb3IKICAgIGVuZGlmCiAKICAgICIgbGlzdCBkaXJlY3RvcnkgaGlzdG9yeQotICAgbGV0IGNudCAgICAgPSBnOk5FVFJXX0RJUkhJU1RfQ05UCisgICBsZXQgY250ICAgICA9IGc6bmV0cndfZGlyaGlzdF9jbnQKICAgIGxldCBmaXJzdCAgID0gMQogICAgbGV0IGhpc3RjbnQgPSAwCi0gICB3aGlsZSAoIGZpcnN0IHx8IGNudCAhPSBnOk5FVFJXX0RJUkhJU1RfQ05UICkKLSIgICAgY2FsbCBEZWNobygiZmlyc3Q9Ii5maXJzdC4iIGNudD0iLmNudC4iIGRpcmhpc3RfY250PSIuZzpORVRSV19ESVJISVNUX0NOVCkKKyAgIHdoaWxlICggZmlyc3QgfHwgY250ICE9IGc6bmV0cndfZGlyaGlzdF9jbnQgKQorIiAgICBjYWxsIERlY2hvKCJmaXJzdD0iLmZpcnN0LiIgY250PSIuY250LiIgZGlyaGlzdF9jbnQ9Ii5nOm5ldHJ3X2Rpcmhpc3RfY250KQogICAgIGxldCBoaXN0Y250PSBoaXN0Y250ICsgMQotICAgIGlmIGV4aXN0cygiZzpORVRSV19ESVJISVNUX3tjbnR9IikKLSIgICAgIGNhbGwgRGVjaG8oIk5ldHJ3ICBIaXN0b3J5IyIuaGlzdGNudC4iOiAiLmc6TkVUUldfRElSSElTVF97Y250fSkKLSAgICAgZWNobyAiTmV0cncgIEhpc3RvcnkjIi5oaXN0Y250LiI6ICIuZzpORVRSV19ESVJISVNUX3tjbnR9CisgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Rpcmhpc3Rfe2NudH0iKQorIiAgICAgY2FsbCBEZWNobygiTmV0cncgIEhpc3RvcnkjIi5oaXN0Y250LiI6ICIuZzpuZXRyd19kaXJoaXN0X3tjbnR9KQorICAgICBlY2hvICJOZXRydyAgSGlzdG9yeSMiLmhpc3RjbnQuIjogIi5nOm5ldHJ3X2Rpcmhpc3Rfe2NudH0KICAgICAgbGV0IGRpZHdvcms9IDEKICAgICBlbmRpZgogICAgIGxldCBmaXJzdCA9IDAKQEAgLTE5MTcsMjIgKzE5NjAsMjEgQEAKICAgZWxzZWlmIGE6Y2hnID09IDMKICAgICIgc2F2ZXMgbW9zdCByZWNlbnRseSB2aXNpdGVkIGRpcmVjdG9yaWVzICh3aGVuIHRoZXkgZGlmZmVyKQogIiAgIGNhbGwgRGVjaG8oIihicm93c2luZykgcmVjb3JkIGN1cmRpciBoaXN0b3J5IikKLSAgIGlmICFleGlzdHMoImc6TkVUUldfRElSSElTVF8wIikgfHwgZzpORVRSV19ESVJISVNUX3tnOk5FVFJXX0RJUkhJU1RfQ05UfSAhPSBhOmN1cmRpcgotICAgIGxldCBnOk5FVFJXX0RJUkhJU1RfQ05UPSAoIGc6TkVUUldfRElSSElTVF9DTlQgKyAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKLSIgICAgbGV0IGc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH09IHN1YnN0aXR1dGUoYTpjdXJkaXIsJ1svXFxdJCcsJycsJ2UnKQotICAgIGxldCBnOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9PSBhOmN1cmRpcgotIiAgICBjYWxsIERlY2hvKCJzYXZlIGRpcmhpc3QjIi5nOk5FVFJXX0RJUkhJU1RfQ05ULiI8Ii5nOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9LiI+IikKKyAgIGlmICFleGlzdHMoImc6bmV0cndfZGlyaGlzdF9jbnQiKSB8fCAhZXhpc3RzKCJnOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9IikgfHwgZzpuZXRyd19kaXJoaXN0X3tnOm5ldHJ3X2Rpcmhpc3RfY250fSAhPSBhOmN1cmRpcgorICAgIGxldCBnOm5ldHJ3X2Rpcmhpc3RfY250ICAgICAgICAgICAgICAgICAgID0gKCBnOm5ldHJ3X2Rpcmhpc3RfY250ICsgMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CisgICAgbGV0IGc6bmV0cndfZGlyaGlzdF97ZzpuZXRyd19kaXJoaXN0X2NudH0gPSBhOmN1cmRpcgorIiAgICBjYWxsIERlY2hvKCJzYXZlIGRpcmhpc3QjIi5nOm5ldHJ3X2Rpcmhpc3RfY250LiI8Ii5nOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9LiI+IikKICAgIGVuZGlmCiAKICAgZWxzZWlmIGE6Y2hnID09IDQKICAgICIgdTogY2hhbmdlIHRvIHRoZSBwcmV2aW91cyBkaXJlY3Rvcnkgc3RvcmVkIG9uIHRoZSBoaXN0b3J5IGxpc3QKICIgICBjYWxsIERlY2hvKCIodXNlcjogPHU+KSBjaGcgdG8gcHJldiBkaXIgZnJvbSBoaXN0b3J5IikKLSAgIGxldCBnOk5FVFJXX0RJUkhJU1RfQ05UPSAoIGc6TkVUUldfRElSSElTVF9DTlQgLSAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKLSAgIGlmIGc6TkVUUldfRElSSElTVF9DTlQgPCAwCi0gICAgbGV0IGc6TkVUUldfRElSSElTVF9DTlQ9IGc6TkVUUldfRElSSElTVF9DTlQgKyBnOm5ldHJ3X2Rpcmhpc3RtYXgKKyAgIGxldCBnOm5ldHJ3X2Rpcmhpc3RfY250PSAoIGc6bmV0cndfZGlyaGlzdF9jbnQgLSAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKKyAgIGlmIGc6bmV0cndfZGlyaGlzdF9jbnQgPCAwCisgICAgbGV0IGc6bmV0cndfZGlyaGlzdF9jbnQ9IGc6bmV0cndfZGlyaGlzdF9jbnQgKyBnOm5ldHJ3X2Rpcmhpc3RtYXgKICAgIGVuZGlmCi0gICBpZiBleGlzdHMoImc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0iKQotIiAgICBjYWxsIERlY2hvKCJjaGFuZ2VkaXIgdSMiLmc6TkVUUldfRElSSElTVF9DTlQuIjwiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0uIj4iKQorICAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9IikKKyIgICAgY2FsbCBEZWNobygiY2hhbmdlZGlyIHUjIi5nOm5ldHJ3X2Rpcmhpc3RfY250LiI8Ii5nOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9LiI+IikKICAgICBpZiBleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIikgJiYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVCAmJiBleGlzdHMoImI6bmV0cndfY3VyZGlyIikKICAgICAgc2V0bG9jYWwgbWEgbm9ybwogIiAgICAgY2FsbCBEZWNobygic2V0bG9jYWwgbWEgbm9ybyIpCkBAIC0xOTQwLDE5ICsxOTgyLDE5IEBACiAgICAgIHNldGxvY2FsIG5vbW9kCiAiICAgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBub21vZCIpCiAgICAgZW5kaWYKLSIgICAgIiAgICBjYWxsIERlY2hvKCJleGUgZSEgIi5mbmFtZWVzY2FwZShnOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9KSkKLSAgICBleGUgImUhICIuZm5hbWVlc2NhcGUoZzpORVRSV19ESVJISVNUX3tnOk5FVFJXX0RJUkhJU1RfQ05UfSkKKyIgICAgIiAgICBjYWxsIERlY2hvKCJleGUgZSEgIi5mbmFtZWVzY2FwZShnOm5ldHJ3X2Rpcmhpc3Rfe2c6bmV0cndfZGlyaGlzdF9jbnR9KSkKKyAgICBleGUgImUhICIuZm5hbWVlc2NhcGUoZzpuZXRyd19kaXJoaXN0X3tnOm5ldHJ3X2Rpcmhpc3RfY250fSkKICAgIGVsc2UKLSAgICBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gKCBnOk5FVFJXX0RJUkhJU1RfQ05UICsgMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CisgICAgbGV0IGc6bmV0cndfZGlyaGlzdF9jbnQ9ICggZzpuZXRyd19kaXJoaXN0X2NudCArIDEgKSAlIGc6bmV0cndfZGlyaGlzdG1heAogICAgIGVjaG8gIlNvcnJ5LCBubyBwcmVkZWNlc3NvciBkaXJlY3RvcnkgZXhpc3RzIHlldCIKICAgIGVuZGlmCiAKICAgZWxzZWlmIGE6Y2hnID09IDUKICAgICIgVTogY2hhbmdlIHRvIHRoZSBzdWJzZXF1ZW50IGRpcmVjdG9yeSBzdG9yZWQgb24gdGhlIGhpc3RvcnkgbGlzdAogIiAgIGNhbGwgRGVjaG8oIih1c2VyOiA8VT4pIGNoZyB0byBuZXh0IGRpciBmcm9tIGhpc3RvcnkiKQotICAgbGV0IGc6TkVUUldfRElSSElTVF9DTlQ9ICggZzpORVRSV19ESVJISVNUX0NOVCArIDEgKSAlIGc6bmV0cndfZGlyaGlzdG1heAotICAgaWYgZXhpc3RzKCJnOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9IikKLSIgICAgY2FsbCBEZWNobygiY2hhbmdlZGlyIFUjIi5nOk5FVFJXX0RJUkhJU1RfQ05ULiI8Ii5nOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9LiI+IikKKyAgIGxldCBnOm5ldHJ3X2Rpcmhpc3RfY250PSAoIGc6bmV0cndfZGlyaGlzdF9jbnQgKyAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKKyAgIGlmIGV4aXN0cygiZzpuZXRyd19kaXJoaXN0X3tnOm5ldHJ3X2Rpcmhpc3RfY250fSIpCisiICAgIGNhbGwgRGVjaG8oImNoYW5nZWRpciBVIyIuZzpuZXRyd19kaXJoaXN0X2NudC4iPCIuZzpuZXRyd19kaXJoaXN0X3tnOm5ldHJ3X2Rpcmhpc3RfY250fS4iPiIpCiAgICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QgJiYgZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpCiAgICAgIHNldGxvY2FsIG1hIG5vcm8KICIgICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG1hIG5vcm8iKQpAQCAtMTk2MSw1NyArMjAwMywxMDggQEAKICAgICAgc2V0bG9jYWwgbm9tb2QKICIgICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG5vbW9kIikKICAgICBlbmRpZgotIiAgICBjYWxsIERlY2hvKCJleGUgZSEgIi5mbmFtZWVzY2FwZShnOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9KSkKLSAgICBleGUgImUhICIuZm5hbWVlc2NhcGUoZzpORVRSV19ESVJISVNUX3tnOk5FVFJXX0RJUkhJU1RfQ05UfSkKKyIgICAgY2FsbCBEZWNobygiZXhlIGUhICIuZm5hbWVlc2NhcGUoZzpuZXRyd19kaXJoaXN0X3tnOm5ldHJ3X2Rpcmhpc3RfY250fSkpCisgICAgZXhlICJlISAiLmZuYW1lZXNjYXBlKGc6bmV0cndfZGlyaGlzdF97ZzpuZXRyd19kaXJoaXN0X2NudH0pCiAgICBlbHNlCi0gICAgbGV0IGc6TkVUUldfRElSSElTVF9DTlQ9ICggZzpORVRSV19ESVJISVNUX0NOVCAtIDEgKSAlIGc6bmV0cndfZGlyaGlzdG1heAotICAgIGlmIGc6TkVUUldfRElSSElTVF9DTlQgPCAwCi0gICAgIGxldCBnOk5FVFJXX0RJUkhJU1RfQ05UPSBnOk5FVFJXX0RJUkhJU1RfQ05UICsgZzpuZXRyd19kaXJoaXN0bWF4CisgICAgbGV0IGc6bmV0cndfZGlyaGlzdF9jbnQ9ICggZzpuZXRyd19kaXJoaXN0X2NudCAtIDEgKSAlIGc6bmV0cndfZGlyaGlzdG1heAorICAgIGlmIGc6bmV0cndfZGlyaGlzdF9jbnQgPCAwCisgICAgIGxldCBnOm5ldHJ3X2Rpcmhpc3RfY250PSBnOm5ldHJ3X2Rpcmhpc3RfY250ICsgZzpuZXRyd19kaXJoaXN0bWF4CiAgICAgZW5kaWYKICAgICBlY2hvICJTb3JyeSwgbm8gc3VjY2Vzc29yIGRpcmVjdG9yeSBleGlzdHMgeWV0IgogICAgZW5kaWYKIAogICBlbHNlaWYgYTpjaGcgPT0gNgotICAgaWYgdjpjb3VudCA+IDAgJiYgdjpjb3VudCA9PSBnOk5FVFJXX0JPT0tNQVJLTUFYCi0gICAgIiBkZWxldGUgdGhlIHY6Y291bnQndGggYm9va21hcmsKLSIgICAgY2FsbCBEZWNobygiZGVsZXRlIGJvb2ttYXJrIyIudjpjb3VudC4iPCIuZzpORVRSV19CT09LTUFSS0RJUl97ZzpORVRSV19CT09LTUFSS01BWH0uIj4iKQotICAgIHVubGV0IGc6TkVUUldfQk9PS01BUktESVJfe2c6TkVUUldfQk9PS01BUktNQVh9Ci0gICAgbGV0IGc6TkVUUldfQk9PS01BUktNQVg9IGc6TkVUUldfQk9PS01BUktNQVggLSAxCi0KLSAgIGVsc2VpZiB2OmNvdW50ID4gMAotIiAgICBjYWxsIERlY2hvKCJkZWxldGUgYnkgc2hpZnRpbmcgYm9va21hcmsjIi52OmNvdW50LiI8Ii5nOk5FVFJXX0JPT0tNQVJLRElSX3t2OmNvdW50fS4iPiIpCi0gICAgbGV0IGNudD0gdjpjb3VudAotICAgIHdoaWxlIGNudCA8IGc6TkVUUldfQk9PS01BUktNQVgKLSAgICAgbGV0IGc6TkVUUldfQk9PS01BUktESVJfe2NudH0gPSBnOk5FVFJXX0JPT0tNQVJLRElSX3soY250KzEpfQotICAgICBsZXQgY250ICAgICAgICAgICAgICAgICAgICAgICA9IGNudCArIDEKLSAgICBlbmR3aGlsZQotICAgIHVubGV0IGc6TkVUUldfQk9PS01BUktESVJfe2c6TkVUUldfQk9PS01BUktNQVh9Ci0gICAgbGV0IGc6TkVUUldfQk9PS01BUktNQVg9IGc6TkVUUldfQk9PS01BUktNQVggLSAxCi0KLSAgIGVsc2VpZiBleGlzdHMoImI6bmV0cndfY3VyZGlyIikKLSAgICAiIGxvb2sgZm9yIGN1cnJlbnQgZGlyZWN0b3J5IGFtb25nc3QgdGhlIGJvb2ttYXJrcyBhbmQgcmVtb3ZlIHRoYXQgYm9va21hcmsKLSIgICAgY2FsbCBEZWNobygic2VhcmNoIGZvciBib29rbWFyazwiLmI6bmV0cndfY3VyZGlyLiI+IikKLSAgICBsZXQgY250PSAxCi0gICAgd2hpbGUgY250IDw9IGc6TkVUUldfQk9PS01BUktNQVgKLSIgICAgIGNhbGwgRGVjaG8oImNoZWNraW5nOiBnOk5FVFJXX0JPT0tNQVJLRElSXyIuY250LiI8Ii5nOk5FVFJXX0JPT0tNQVJLRElSX3tjbnR9LiI+IikKLSAgICAgaWYgZzpORVRSV19CT09LTUFSS0RJUl97Y250fSA9PSBiOm5ldHJ3X2N1cmRpcgotICAgICAgaWYgY250IDwgZzpORVRSV19CT09LTUFSS01BWAotIiAgICAgICBjYWxsIERlY2hvKCJkZWxldGUgYm9va21hcmsjIi5jbnQuIjwiLmI6bmV0cndfY3VyZGlyLiI+IikKLSAgICAgICB3aGlsZSBjbnQgPCBnOk5FVFJXX0JPT0tNQVJNQVgKLSAgICAgICAgbGV0IGc6TkVUUldfQk9PS01BUktESVJfe2NudH0gPSBnOk5FVFJXX0JPT0tNQVJLRElSX3soY250KzEpfQotICAgICAgICBsZXQgY250ICAgICAgICAgICAgICAgICAgICAgICA9IGNudCArIDEKLSAgICAgICBlbmR3aGlsZQotICAgICAgZW5kaWYKLSAgICAgIHVubGV0IGc6TkVUUldfQk9PS01BUktESVJfe2c6TkVUUldfQk9PS01BUktNQVh9Ci0gICAgICBsZXQgZzpORVRSV19CT09LTUFSS01BWD0gZzpORVRSV19CT09LTUFSS01BWCAtIDEKLSAgICAgZW5kaWYKLSAgICAgbGV0IGNudD0gY250ICsgMQotICAgIGVuZHdoaWxlCisgICAiIGRlbGV0ZSB0aGUgdjpjb3VudCd0aCBib29rbWFyaworIiAgIGNhbGwgRGVjaG8oImRlbGV0ZSBib29rbWFyayMiLnY6Y291bnQuIjwiLmc6bmV0cndfYm9va21hcmtsaXN0W3Y6Y291bnQtMV0uIj4iKQorICAgbGV0IHNhdmVmaWxlPSBzOk5ldHJ3SG9tZSgpLiIvLm5ldHJ3Ym9vayIKKyAgIGlmIGZpbGVyZWFkYWJsZShzYXZlZmlsZSkKKyAgICBjYWxsIHM6TmV0cndCb29rSGlzdFNhdmUoKSAiIGRvbmUgaGVyZSB0byBtZXJnZSBib29rbWFya3MgZmlyc3QKKyAgICBjYWxsIGRlbGV0ZShzYXZlZmlsZSkKICAgIGVuZGlmCi0KKyAgIGNhbGwgcmVtb3ZlKGc6bmV0cndfYm9va21hcmtsaXN0LHY6Y291bnQtMSkKICAgZW5kaWYKICAgY2FsbCBzOk5ldHJ3Qm9va21hcmtNZW51KCkKLSIgIGNhbGwgRHJldCgiTmV0cndCb29rbWFya0RpciIpCisiICBjYWxsIERyZXQoIk5ldHJ3Qm9va0hpc3RIYW5kbGVyIikKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBzOk5ldHJ3Qm9va0hpc3RSZWFkOiB0aGlzIGZ1bmN0aW9uIHJlYWRzIGJvb2ttYXJrcyBhbmQgaGlzdG9yeSB7e3syCisiICAgICAgICAgICAgICAgICAgICAgIFNpc3RlciBmdW5jdGlvbjogczpOZXRyd0Jvb2tIaXN0U2F2ZSgpCitmdW4hIHM6TmV0cndCb29rSGlzdFJlYWQoKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0Jvb2tIaXN0UmVhZCgpIikKKyAgaWYgIWV4aXN0cygiczpuZXRyd19pbml0Ym9va2hpc3QiKQorICAgbGV0IGhvbWUgICAgPSBzOk5ldHJ3SG9tZSgpCisgICBsZXQgc2F2ZWZpbGU9IGhvbWUuIi8ubmV0cndib29rIgorICAgaWYgZmlsZXJlYWRhYmxlKHNhdmVmaWxlKQorIiAgICBjYWxsIERlY2hvKCJzb3VyY2luZyAubmV0cndib29rIikKKyAgICBleGUgInNvICIuc2F2ZWZpbGUKKyAgIGVuZGlmCisgICBsZXQgc2F2ZWZpbGU9IGhvbWUuIi8ubmV0cndoaXN0IgorICAgaWYgZmlsZXJlYWRhYmxlKHNhdmVmaWxlKQorIiAgICBjYWxsIERlY2hvKCJzb3VyY2luZyAubmV0cndoaXN0IikKKyAgICBleGUgInNvICIuc2F2ZWZpbGUKKyAgIGVuZGlmCisgICBsZXQgczpuZXRyd19pbml0Ym9va2hpc3Q9IDEKKyAgIGF1IFZpbUxlYXZlICogY2FsbCBzOk5ldHJ3Qm9va0hpc3RTYXZlKCkKKyAgZW5kaWYKKyIgIGNhbGwgRHJldCgiczpOZXRyd0Jvb2tIaXN0UmVhZCIpCitlbmRmdW4KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgczpOZXRyd0Jvb2tIaXN0U2F2ZTogdGhpcyBmdW5jdGlvbiBzYXZlcyBib29rbWFya3MgYW5kIGhpc3Rvcnkge3t7MgorIiAgICAgICAgICAgICAgICAgICAgICBTaXN0ZXIgZnVuY3Rpb246IHM6TmV0cndCb29rSGlzdFJlYWQoKQorIiAgICAgICAgICAgICAgICAgICAgICBJIHVzZWQgdG8gZG8gdGhpcyB2aWEgdmltaW5mbyBidXQgdGhhdCBhcHBlYXJzIHRvCisiICAgICAgICAgICAgICAgICAgICAgIGJlIHVucmVsaWFibGUgZm9yIGxvbmctdGVybSBzdG9yYWdlCisiICAgICAgICAgICAgICAgICAgICAgIENPTUJBSzogZG9lcyAkSE9NRSB3b3JrIHVuZGVyIHdpbmRvd3M/Pz8KK2Z1biEgczpOZXRyd0Jvb2tIaXN0U2F2ZSgpCisiICBjYWxsIERmdW5jKCJzOk5ldHJ3Qm9va0hpc3RTYXZlKCkgZGlyaGlzdG1heD0iLmc6bmV0cndfZGlyaGlzdG1heCkKKyAgbGV0IHNhdmVmaWxlPSBzOk5ldHJ3SG9tZSgpLiIvLm5ldHJ3aGlzdCIKKyAgMXNwbGl0CisgIGNhbGwgczpOZXRyd0VuZXcoKQorICBzZXRsb2NhbCBjaW5vPSBjb209IGNwby09YUEgZm89bnJvcWwyIHR3PTAgcmVwb3J0PTEwMDAwIG5vc3dmCisgIHNldGxvY2FsIG5vY2luIG5vYWkgbm9jaSBtYWdpYyBub3NwZWxsIG5vaGlkIHdpZz0gbm9hdworICBzZXRsb2NhbCBtYSBub3JvIHdyaXRlCisgIGlmIGV4aXN0cygiJmFjZCIpIHwgc2V0bG9jYWwgbm9hY2QgfCBlbmRpZgorICBzaWxlbnQgJWQKKworICAiIHNhdmUgLm5ldHJ3aGlzdCAtLSBubyBhdHRlbXB0IHRvIG1lcmdlCisgIHNpbGVudCEgZmlsZSAubmV0cndoaXN0CisgIGNhbGwgc2V0bGluZSgxLCJsZXQgZzpuZXRyd19kaXJoaXN0bWF4ICA9Ii5nOm5ldHJ3X2Rpcmhpc3RtYXgpCisgIGNhbGwgc2V0bGluZSgyLCJsZXQgZzpuZXRyd19kaXJoaXN0X2NudCA9Ii5nOm5ldHJ3X2Rpcmhpc3RfY250KQorICBsZXQgbGFzdGxpbmUgPSBsaW5lKCIkIikKKyAgbGV0IGNudCAgICAgID0gMQorICB3aGlsZSBjbnQgPD0gZzpuZXRyd19kaXJoaXN0X2NudAorICAgY2FsbCBzZXRsaW5lKChjbnQrbGFzdGxpbmUpLCdsZXQgZzpuZXRyd19kaXJoaXN0XycuY250LiI9JyIuZzpuZXRyd19kaXJoaXN0X3tjbnR9LiInIikKKyAgIGxldCBjbnQ9IGNudCArIDEKKyAgZW5kd2hpbGUKKyAgZXhlICJzaWxlbnQhIHchICIuc2F2ZWZpbGUKKworICBzaWxlbnQgJWQKKyAgaWYgZXhpc3RzKCJnOm5ldHJ3X2Jvb2ttYXJrbGlzdCIpICYmIGc6bmV0cndfYm9va21hcmtsaXN0ICE9IFtdCisgICAiIG1lcmdlIGFuZCB3cml0ZSAubmV0cndib29rCisgICBsZXQgc2F2ZWZpbGU9IHM6TmV0cndIb21lKCkuIi8ubmV0cndib29rIgorCisgICBpZiBmaWxlcmVhZGFibGUoc2F2ZWZpbGUpCisgICAgbGV0IGJvb2tsaXN0PSBkZWVwY29weShnOm5ldHJ3X2Jvb2ttYXJrbGlzdCkKKyAgICBleGUgInNpbGVudCBzbyAiLnNhdmVmaWxlCisgICAgZm9yIGJkbSBpbiBib29rbGlzdAorICAgICBpZiBpbmRleChnOm5ldHJ3X2Jvb2ttYXJrbGlzdCxiZG0pID09IC0xCisgICAgICBjYWxsIGFkZChnOm5ldHJ3X2Jvb2ttYXJrbGlzdCxiZG0pCisgICAgIGVuZGlmCisgICAgZW5kZm9yCisgICAgY2FsbCBzb3J0KGc6bmV0cndfYm9va21hcmtsaXN0KQorICAgIGV4ZSAic2lsZW50ISB3ISAiLnNhdmVmaWxlCisgICBlbmRpZgorCisgICAiIGNvbnN0cnVjdCBhbmQgc2F2ZSAubmV0cndib29rCisgICBjYWxsIHNldGxpbmUoMSwibGV0IGc6bmV0cndfYm9va21hcmtsaXN0PSAiLnN0cmluZyhnOm5ldHJ3X2Jvb2ttYXJrbGlzdCkpCisgICBleGUgInNpbGVudCEgdyEgIi5zYXZlZmlsZQorICBlbmRpZgorICBsZXQgYmdvbmU9IGJ1Zm5yKCIlIikKKyAgcSEKKyAgZXhlIGJnb25lLiJid2lwZSEiCisKKyIgIGNhbGwgRHJldCgiczpOZXRyd0Jvb2tIaXN0U2F2ZSIpCiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwMjQsNiArMjExNywxOCBAQAogIiAgY2FsbCBEZnVuYygiczpOZXRyd0Jyb3dzZShpc2xvY2FsPSIuYTppc2xvY2FsLiIgZGlybmFtZTwiLmE6ZGlybmFtZS4iPikgbGlzdHN0eWxlPSIudzpuZXRyd19saXN0c3R5bGUuIiAiLmc6bG9hZGVkX25ldHJ3LiIgYnVmIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IikKICIgIGNhbGwgRGVjaG8oInRhYiMiLnRhYnBhZ2VucigpLiIgd2luIyIud2lubnIoKSkKICIgIGNhbGwgRHJlZGlyKCJscyEiKQorICBpZiAhZXhpc3RzKCJzOm5ldHJ3X2luaXRib29raGlzdCIpCisgICBjYWxsIHM6TmV0cndCb29rSGlzdFJlYWQoKQorICBlbmRpZgorIiAgY2FsbCBGT1RFU1QoNykKKworICAiIHNpbXBsaWZ5IHRoZSBkaXJuYW1lIChlc3BlY2lhbGx5IGZvciAiLi4icyBpbiBkaXJuYW1lcykKKyAgaWYgYTpkaXJuYW1lICF+ICdeXGFcKzovLycKKyAgIGxldCBkaXJuYW1lPSBzaW1wbGlmeShhOmRpcm5hbWUpCisgIGVsc2UKKyAgIGxldCBkaXJuYW1lPSBhOmRpcm5hbWUKKyAgZW5kaWYKKyIgIGNhbGwgRk9URVNUKDgpCiAKICAgaWYgZXhpc3RzKCJzOm5ldHJ3X3NraXBicm93c2UiKQogICAgdW5sZXQgczpuZXRyd19za2lwYnJvd3NlCkBAIC0yMDQzLDM3ICsyMTQ4LDQwIEBACiAgIGVuZGlmCiAKICAgY2FsbCBzOk5ldHJ3T3B0aW9uU2F2ZSgidzoiKQotICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCisiICBjYWxsIEZPVEVTVCg5KQogCiAgICIgcmUtaW5zdGF0ZSBhbnkgbWFya2VkIGZpbGVzCiAgIGlmIGV4aXN0cygiczpuZXRyd21hcmtmaWxlbGlzdF97YnVmbnIoJyUnKX0iKQogIiAgIGNhbGwgRGVjaG8oImNsZWFyaW5nIG1hcmtlZCBmaWxlcyIpCiAgICBleGUgIjJtYXRjaCBuZXRyd01hcmtGaWxlIC8iLnM6bmV0cndtYXJrZmlsZW10Y2hfe2J1Zm5yKCIlIil9LiIvIgogICBlbmRpZgorIiAgY2FsbCBGT1RFU1QoMTApCiAKICAgaWYgYTppc2xvY2FsICYmIGV4aXN0cygidzpuZXRyd19hY2RrZWVwIikgJiYgdzpuZXRyd19hY2RrZWVwCiAiICAgY2FsbCBEZWNobygiaGFuZGxlIHc6bmV0cndfYWNka2VlcDoiKQotIiAgIGNhbGwgRGVjaG8oImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShhOmRpcm5hbWUpLiIgKGR1ZSB0byB3Om5ldHJ3X2FjZGtlZXA9Ii53Om5ldHJ3X2FjZGtlZXAuIiAtIGFjZD0iLiZhY2QuIikiKQotICAgZXhlICdrZWVwanVtcHMgbGNkICcuZm5hbWVlc2NhcGUoYTpkaXJuYW1lKQorIiAgIGNhbGwgRGVjaG8oImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShkaXJuYW1lKS4iIChkdWUgdG8gdzpuZXRyd19hY2RrZWVwPSIudzpuZXRyd19hY2RrZWVwLiIgLSBhY2Q9Ii4mYWNkLiIpIikKKyAgIGV4ZSAna2VlcGp1bXBzIGxjZCAnLmZuYW1lZXNjYXBlKGRpcm5hbWUpCisgICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCiAiICAgY2FsbCBEZWNobygiZ2V0Y3dkPCIuZ2V0Y3dkKCkuIj4iKQogCi0gIGVsc2VpZiAhYTppc2xvY2FsICYmIGE6ZGlybmFtZSAhfiAnW1wvXSQnICYmIGE6ZGlybmFtZSAhfiAnXiInCisgIGVsc2VpZiAhYTppc2xvY2FsICYmIGRpcm5hbWUgIX4gJ1tcL10kJyAmJiBkaXJuYW1lICF+ICdeIicKICAgICIgbG9va3MgbGlrZSBhIHJlZ3VsYXIgZmlsZSwgYXR0ZW1wdCB0cmFuc2ZlcgotIiAgIGNhbGwgRGVjaG8oImF0dGVtcHQgdHJhbnNmZXIgYXMgcmVndWxhciBmaWxlPCIuYTpkaXJuYW1lLiI+IikKKyIgICBjYWxsIERlY2hvKCJhdHRlbXB0IHRyYW5zZmVyIGFzIHJlZ3VsYXIgZmlsZTwiLmRpcm5hbWUuIj4iKQogCiAgICAiIHJlbW92ZSBhbnkgZmlsZXR5cGUgaW5kaWNhdG9yIGZyb20gZW5kIG9mIGRpcm5hbWUsIGV4Y2VwdCBmb3IgdGhlIHt7ezMKICAgICIgInRoaXMgaXMgYSBkaXJlY3RvcnkiIGluZGljYXRvciAoLykuCiAgICAiIFRoZXJlIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhvc2UgaGVyZSwgYW55d2F5LgotICAgbGV0IHBhdGg9IHN1YnN0aXR1dGUoYTpkaXJuYW1lLCdbKj1AfF1cclw9JCcsJycsJ2UnKQorICAgbGV0IHBhdGg9IHN1YnN0aXR1dGUoZGlybmFtZSwnWyo9QHxdXHJcPSQnLCcnLCdlJykKICIgICBjYWxsIERlY2hvKCJuZXcgcGF0aDwiLnBhdGguIj4iKQotICAgY2FsbCBzOlJlbW90ZVBhdGhBbmFseXNpcyhhOmRpcm5hbWUpCisgICBjYWxsIHM6UmVtb3RlUGF0aEFuYWx5c2lzKGRpcm5hbWUpCiAKICAgICIgcmVtb3RlLXJlYWQgdGhlIHJlcXVlc3RlZCBmaWxlIGludG8gY3VycmVudCBidWZmZXIge3t7MwogICAgbWFyayAnCi0gICBjYWxsIHM6TmV0cndFbmV3KGE6ZGlybmFtZSkKKyAgIGNhbGwgczpOZXRyd0VuZXcoZGlybmFtZSkKKyAgIGNhbGwgczpOZXRyd1NhZmVPcHRpb25zKCkKICAgIHNldGxvY2FsIG1hIG5vcm8KICIgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBtYSBub3JvIikKLSAgIGxldCBiOm5ldHJ3X2N1cmRpcj0gYTpkaXJuYW1lCisgICBsZXQgYjpuZXRyd19jdXJkaXI9IGRpcm5hbWUKICIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShzOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5zOnBhdGgpLiIgKGJ0PSIuJmJ0LiIpIikKICAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShzOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5zOnBhdGgpCiAgICBleGUgInNpbGVudCBrZWVwYWx0IGRvYXUgQnVmUmVhZFByZSAiLmZuYW1lZXNjYXBlKHM6Zm5hbWUpCkBAIC0yMDkyLDE3ICsyMjAwLDE5IEBACiAiICAgY2FsbCBEcmV0KCJzOk5ldHJ3QnJvd3NlIDogZmlsZTwiLnM6Zm5hbWUuIj4iKQogICAgcmV0dXJuCiAgIGVuZGlmCisiICBjYWxsIEZPVEVTVCgxMSkKIAogICAiIHVzZSBidWZmZXItb3JpZW50ZWQgV2luVmFycyBpZiBidWZmZXIgb25lcyBleGlzdCBidXQgd2luZG93IG9uZXMgZG9uJ3Qge3t7MwogICBjYWxsIHM6VXNlQnVmV2luVmFycygpCiAKICAgIiBzZXQgdXAgc29tZSB2YXJpYWJsZXMge3t7MwogICBsZXQgYjpuZXRyd19icm93c2VyX2FjdGl2ZSA9IDEKLSAgbGV0IGRpcm5hbWUgICAgICAgICAgICAgICAgPSBhOmRpcm5hbWUKKyAgbGV0IGRpcm5hbWUgICAgICAgICAgICAgICAgPSBkaXJuYW1lCiAgIGxldCBzOmxhc3Rfc29ydF9ieSAgICAgICAgID0gZzpuZXRyd19zb3J0X2J5CiAKICAgIiBzZXQgdXAgbWVudSB7e3szCiAgIGNhbGwgczpOZXRyd01lbnUoMSkKKyIgIGNhbGwgRk9URVNUKDEyKQogCiAgICIgc2V0IHVwIGJ1ZmZlciB7e3szCiAgIGxldCByZXVzaW5nPSBzOk5ldHJ3R2V0QnVmZmVyKGE6aXNsb2NhbCxkaXJuYW1lKQpAQCAtMjEyMiw2ICsyMjMyLDcgQEAKICIgICBjYWxsIERyZXQoInM6TmV0cndCcm93c2UgOiByZS11c2luZyBidWZmZXIiKQogICAgcmV0dXJuCiAgIGVuZGlmCisiIiAgY2FsbCBGT1RFU1QoMTMpICIgUFJPQkxFTSBXSVRIIExJU1RJTkcKIAogICAiIHNldCBiOm5ldHJ3X2N1cmRpciB0byB0aGUgbmV3IGRpcmVjdG9yeSBuYW1lIHt7ezMKICIgIGNhbGwgRGVjaG8oInNldCBiOm5ldHJ3X2N1cmRpciB0byB0aGUgbmV3IGRpcmVjdG9yeSBuYW1lOiIpCkBAIC0yMTQzLDYgKzIyNTQsNyBAQAogICAgbGV0IGI6bmV0cndfY3VyZGlyPSBiOm5ldHJ3X2N1cmRpci4nLycKICAgZW5kaWYKICIgIGNhbGwgRGVjaG8oImI6bmV0cndfY3VyZGlyPCIuYjpuZXRyd19jdXJkaXIuIj4iKQorIiIgIGNhbGwgRk9URVNUKDE0KSAiIFBST0JMRU0gV0lUSCBMSVNUSU5HCiAKICAgIiAtLS0tLS0tLS0tLS0KICAgIiAobG9jYWwgb25seSkge3t7MwpAQCAtMjE4MywxMSArMjI5NSwxMSBAQAogICBlbHNlCiAiICAgY2FsbCBEZWNobygicmVtb3RlIG9ubHk6IikKIAotICAgIiBhbmFseXplIGE6ZGlybmFtZSBhbmQgZzpuZXRyd19saXN0X2NtZCB7e3s0Ci0iICAgY2FsbCBEZWNobygiYjpuZXRyd19jdXJkaXI8Ii4oZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpPyBiOm5ldHJ3X2N1cmRpciA6ICJkb2Vzbid0IGV4aXN0IikuIj4gYTpkaXJuYW1lPCIuYTpkaXJuYW1lLiI+IikKLSAgIGlmIGE6ZGlybmFtZSA9fiAiXk5ldHJ3VHJlZUxpc3RpbmdcPiIKKyAgICIgYW5hbHl6ZSBkaXJuYW1lIGFuZCBnOm5ldHJ3X2xpc3RfY21kIHt7ezQKKyIgICBjYWxsIERlY2hvKCJiOm5ldHJ3X2N1cmRpcjwiLihleGlzdHMoImI6bmV0cndfY3VyZGlyIik/IGI6bmV0cndfY3VyZGlyIDogImRvZXNuJ3QgZXhpc3QiKS4iPiBkaXJuYW1lPCIuZGlybmFtZS4iPiIpCisgICBpZiBkaXJuYW1lID1+ICJeTmV0cndUcmVlTGlzdGluZ1w+IgogICAgIGxldCBkaXJuYW1lPSBiOm5ldHJ3X2N1cmRpcgotIiAgICBjYWxsIERlY2hvKCIoZGlybmFtZSB3YXMgIi5hOmRpcm5hbWUuIikgZGlybmFtZTwiLmRpcm5hbWUuIj4iKQorIiAgICBjYWxsIERlY2hvKCIoZGlybmFtZSB3YXMgIi5kaXJuYW1lLiIpIGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKICAgIGVsc2VpZiBleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIikgJiYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVCAmJiBleGlzdHMoImI6bmV0cndfY3VyZGlyIikKICAgICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShiOm5ldHJ3X2N1cmRpciwnXFwnLCcvJywnZycpCiAgICAgaWYgZGlybmFtZSAhfiAnLyQnCkBAIC0yMTk2LDcgKzIzMDgsNyBAQAogICAgIGxldCBiOm5ldHJ3X2N1cmRpciA9IGRpcm5hbWUKICIgICAgY2FsbCBEZWNobygiKGxpc3RzdHlsZSBpcyBUUkVFTElTVCkgZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgZWxzZQotICAgIGxldCBkaXJuYW1lID0gc3Vic3RpdHV0ZShhOmRpcm5hbWUsJ1xcJywnLycsJ2cnKQorICAgIGxldCBkaXJuYW1lID0gc3Vic3RpdHV0ZShkaXJuYW1lLCdcXCcsJy8nLCdnJykKICIgICAgY2FsbCBEZWNobygiKG5vcm1hbCkgZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgZW5kaWYKIApAQCAtMjIxNCwxMiArMjMyNiwyMyBAQAogICAgbGV0IGI6bmV0cndfY3VyZGlyPSBkaXJuYW1lCiAiICAgY2FsbCBEZWNobygiYjpuZXRyd19jdXJkaXI8Ii5iOm5ldHJ3X2N1cmRpci4iPiAocmVtb3RlKSIpCiAgIGVuZGlmICAiIChhZGRpdGlvbmFsIHJlbW90ZSBoYW5kbGluZykKKyIiICBjYWxsIEZPVEVTVCgxNSkgIiBQUk9CTEVNIFdJVEggTElTVElORwogCiAgICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIiBEaXJlY3RvcnkgTGlzdGluZzoge3t7MwogICAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIGNhbGwgczpCcm93c2VyTWFwcyhhOmlzbG9jYWwpCisiIiAgY2FsbCBGT1RFU1QoMTYpICIgUFJPQkxFTSBXSVRIIExJU1RJTkcKICAgY2FsbCBzOlBlcmZvcm1MaXN0aW5nKGE6aXNsb2NhbCkKKyIgIGNhbGwgRk9URVNUKDE3KQorCisgICIgVGhlIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKSBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgYW4gYXV0b2NtZAorICAiIGluc3RhbGxlZCBieSBzOkxvY2FsRmFzdEJyb3dzZXIoKSB3aGVuIGc6bmV0cndfZmFzdGJyb3dzZSA8PSAxIChpZS4gc2xvdywgbWVkaXVtIHNwZWVkKS4KKyAgIiBIb3dldmVyLCBzOk5ldHJ3QnJvd3NlKCkgY2F1c2VzIHRoZSBTaGVsbENtZFBvc3QgZXZlbnQgaXRzZWxmIHRvIGZpcmUgb25jZTsgc2V0dGluZworICAiIHRoZSB2YXJpYWJsZSBiZWxvdyBhdm9pZHMgdGhhdCBzZWNvbmQgcmVmcmVzaCBvZiB0aGUgc2NyZWVuLiAgVGhlIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKQorICAiIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGR1ZSB0byB0aGF0IGF1dG9jbWQ7IGl0IG5vdGljZXMgdGhhdCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNldAorICAiIGFuZCBza2lwcyB0aGUgcmVmcmVzaCBhbmQgc2V0cyBzOmxvY2Jyb3dzZXNoZWxsY21kIHRvIHplcm8uIE9jdCAxMywgMjAwOAorICBsZXQgczpsb2Nicm93c2VzaGVsbGNtZD0gMQogCiAiICBjYWxsIERlY2hvKCJybz0iLiZsOnJvLiIgbWE9Ii4mbDptYS4iIG1vZD0iLiZsOm1vZC4iIHdyYXA9Ii4mbDp3cmFwKQogIiAgY2FsbCBEcmV0KCJzOk5ldHJ3QnJvd3NlIDogZGlkIFBlcmZvcm1MaXN0aW5nIikKQEAgLTIyNzQsMTMgKzIzOTcsMTQgQEAKICIgIGNhbGwgRGVjaG8oIi0tcmUtdXNlIGEgYnVmZmVyIGlmIHBvc3NpYmxlLS0iKQogICBpZiBleGlzdHMoInc6bmV0cndfbGlzdHN0eWxlIikgJiYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVAogICAgIiBmaW5kIE5ldHJ3VHJlZUxpc3QgYnVmZmVyIGlmIHRoZXJlIGlzIG9uZQorIiAgIGNhbGwgRGVjaG8oImZpbmQgTmV0cndUcmVlTGlzdCBidWZmZXIgaWYgdGhlcmUgaXMgb25lIikKICAgIGlmIGV4aXN0cygidzpuZXRyd190cmVlYnVmbnIiKSAmJiB3Om5ldHJ3X3RyZWVidWZuciA+IDAKICIgICAgY2FsbCBEZWNobygiICByZS11c2UgdzpuZXRyd190cmVlYnVmbnI9Ii53Om5ldHJ3X3RyZWVidWZucikKICAgICBsZXQgZWlrZWVwPSAmZWkKICAgICBzZXQgZWk9YWxsCiAgICAgZXhlICJiICIudzpuZXRyd190cmVlYnVmbnIKICAgICBsZXQgJmVpPSBlaWtlZXAKLSIgICAgY2FsbCBEcmV0KCJzOk5ldHJ3R2V0QnVmZmVyIDogYnVmbnVtIyIuYnVmbnVtLiI8TmV0cndUcmVlTGlzdGluZz4iKQorIiAgICBjYWxsIERyZXQoInM6TmV0cndHZXRCdWZmZXIgOiBidWZudW0jIi53Om5ldHJ3X3RyZWVidWZuci4iPE5ldHJ3VHJlZUxpc3Rpbmc+IikKICAgICByZXR1cm4KICAgIGVuZGlmCiAgICBsZXQgYnVmbnVtPSAtMQpAQCAtMjI5Nyw3ICsyNDIxLDcgQEAKICIgICBjYWxsIERlY2hvKCIgIGJ1Zm5yKGRpcm5hbWU8Ii5lc2NhcGUoZGlybmFtZSwnXCcpLiI+KT0iLmJ1Zm51bSkKIAogICAgaWYgYnVmbnVtIDwgMCAmJiBkaXJuYW1lICF+ICcvJCcKLSAgICAiIHRyeWluZyBhcHBlbmRpbmcgYSB0cmFpbGluZyAvCisgICAgIiB0cnkgYXBwZW5kaW5nIGEgdHJhaWxpbmcgLwogIiAgICBjYWxsIERlY2hvKCIgIHRyeSBhcHBlbmRpbmcgYSB0cmFpbGluZyAvIHRvIGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKICAgICBsZXQgYnVmbnVtPSBidWZucihlc2NhcGUoZGlybmFtZS4nLycsJ1wnKSkKICAgICBpZiBidWZudW0gPiAwCkBAIC0yMzA2LDcgKzI0MzAsNyBAQAogICAgZW5kaWYKIAogICAgaWYgYnVmbnVtIDwgMCAmJiBkaXJuYW1lID1+ICcvJCcKLSAgICAiIHRyeWluZyByZW1vdmluZyBhIHRyYWlsaW5nIC8KKyAgICAiIHRyeSByZW1vdmluZyBhIHRyYWlsaW5nIC8KICIgICAgY2FsbCBEZWNobygiICB0cnkgcmVtb3ZpbmcgYSB0cmFpbGluZyAvIGZyb20gZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgIGxldCBidWZudW09IGJ1Zm5yKGVzY2FwZShzdWJzdGl0dXRlKGRpcm5hbWUsJy8kJywnJywnJyksJ1wnKSkKICAgICBpZiBidWZudW0gPiAwCkBAIC0yMzE4LDE3ICsyNDQyLDI2IEBACiAgICAiIG5vdGU6ICF+IHdhcyB1c2VkIGp1c3QgYmVsb3csIGJ1dCB0aGF0IG1lYW5zIHVzaW5nIC4uLyB0byBnbyBiYWNrIHdvdWxkIG1hdGNoIChpZS4gYWJjL2RlZi8gIGFuZCBhYmMvIG1hdGNoZXMpCiAgICBpZiBidWZudW0gPiAwICYmIGJ1Zm5hbWUoYnVmbnVtKSAhPSBkaXJuYW1lICYmIGJ1Zm5hbWUoYnVmbnVtKSAhPSAnLicKICAgICAiIGhhbmRsZSBhcHByb3hpbWF0ZSBtYXRjaGVzCi0iICAgIGNhbGwgRGVjaG8oIiAgaGFuZGxpbmcgYXBwcm94IG1hdGNoOiBidWZudW0jJWQ8Ii5idWZuYW1lKGJ1Zm51bSkuIj4gYXBwcm94PWRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKKyIgICAgY2FsbCBEZWNobygiICBoYW5kbGluZyBhcHByb3ggbWF0Y2g6IGJ1Zm51bSMiLmJ1Zm51bS4iPCIuYnVmbmFtZShidWZudW0pLiI+IGFwcHJveC1kaXJuYW1lPCIuZGlybmFtZS4iPiIpCiAgICAgbGV0IGlidWYgICAgPSAxCiAgICAgbGV0IGJ1Zmxhc3QgPSBidWZucigiJCIpCiAiICAgIGNhbGwgRGVjaG8oIiAgZmluZGJ1ZjI6IGJ1Zmxhc3Q9Ii5idWZsYXN0KQogICAgIHdoaWxlIGlidWYgPD0gYnVmbGFzdAogICAgICBsZXQgYm5hbWU9IHN1YnN0aXR1dGUoYnVmbmFtZShpYnVmKSwnXFwnLCcvJywnZycpCiAgICAgIGxldCBibmFtZT0gc3Vic3RpdHV0ZShibmFtZSwnLlx6cy8kJywnJywnJykKLSIgICAgIGNhbGwgRGVjaG8oIiAgZmluZGJ1ZjM6IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IGJ1Zm5hbWUoIi5pYnVmLiIpPCIuYm5hbWUuIj4iKQotICAgICBpZiBibmFtZSAhPSAnJyAmJiBkaXJuYW1lID1+ICcvJy5ibmFtZS4nL1w9JCcgfCBicmVhayB8IGVuZGlmCi0gICAgIGlmIGJuYW1lICAgPX4gJ14nLmRpcm5hbWUuJy9cPSQnIHwgYnJlYWsgfCBlbmRpZgotICAgICBpZiBkaXJuYW1lID1+ICdeJy5ibmFtZS4nLyQnICAgICB8IGJyZWFrIHwgZW5kaWYKKyIgICAgIGNhbGwgRGVjaG8oIiAgZmluZGJ1ZjM6IHdoaWxlIFtpYnVmPSIsaWJ1Zi4iXTw9W2J1Zmxhc3Q9Ii5idWZsYXN0LiJdOiBkaXJuYW1lPCIuZGlybmFtZS4iPiBidWZuYW1lKCIuaWJ1Zi4iKTwiLmJuYW1lLiI+IikKKyAgICAgaWYgYm5hbWUgICAhPSAnJyAmJiBkaXJuYW1lID1+ICcvJy5ibmFtZS4nL1w9JCcgJiYgZGlybmFtZSAhfiAnXi8nCisiICAgICAgY2FsbCBEZWNobygiICBmaW5kYnVmMzogcGFzc2VzIHRlc3QgMSA6IGRpcm5hbWU8Ii5kaXJuYW1lLic+ID1+IC8nLmJuYW1lLicvXD0kICYmIGRpcm5hbWUgIX4gXi8nKQorICAgICAgYnJlYWsKKyAgICAgZW5kaWYKKyAgICAgaWYgYm5hbWUgICA9fiAnXicuZGlybmFtZS4nL1w9JCcKKyIgICAgICBjYWxsIERlY2hvKCcgIGZpbmRidWYzOiBwYXNzZXMgdGVzdCAyIDogYm5hbWU8Jy5ibmFtZS4nPj1+XicuZGlybmFtZS4nL1w9JCcpCisgICAgICBicmVhaworICAgICBlbmRpZgorICAgICBpZiBkaXJuYW1lID1+ICdeJy5ibmFtZS4nLyQnCisiICAgICAgY2FsbCBEZWNobygnICBmaW5kYnVmMzogcGFzc2VzIHRlc3QgMyA6IGRpcm5hbWU8Jy5kaXJuYW1lLic+PX5eJy5ibmFtZS4nLyQnKQorICAgICAgYnJlYWsKKyAgICAgZW5kaWYKICAgICAgbGV0IGlidWY9IGlidWYgKyAxCiAgICAgZW5kd2hpbGUKICAgICBpZiBpYnVmID4gYnVmbGFzdApAQCAtMjUxMCw2ICsyNjQzLDcgQEAKICAgIGlmICFleGlzdHMoImI6bmV0cndfY3BmIikKICAgICBsZXQgYjpuZXRyd19jcGY9IDAKICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnL14uL2lmIHZpcnRjb2woIiQiKSA+IGI6bmV0cndfY3BmfGxldCBiOm5ldHJ3X2NwZj0gdmlydGNvbCgiJCIpfGVuZGlmJworICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAiICAgY2FsbCBEZWNobygiY29tcHV0ZWQgY3BmPSIuYjpuZXRyd19jcGYpCiAgICBlbmRpZgogCkBAIC0yNjIxLDYgKzI3NTUsMjIgQEAKICAgbGV0IHN2cG9zPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKICAgY2FsbCBzOk5ldHJ3UmVmcmVzaChhOmlzbG9jYWwsczpOZXRyd0Jyb3dzZUNoZ0RpcihhOmlzbG9jYWwsJy4vJykpCiAgIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbihzdnBvcykKKyAgaWYgdzpuZXRyd19saXN0c3R5bGUgIT0gczpXSURFTElTVAorICAgaWYgZzpuZXRyd19jdXJzb3JsaW5lID09IDIKKyAgICBzZXRsb2NhbCBjdXJzb3JsaW5lCisgICAgbGV0ICZjdXJzb3Jjb2x1bW49IHM6bmV0cndfdXNlcmN1YworICAgZWxzZWlmIGc6bmV0cndfY3Vyc29ybGluZQorICAgIHNldGxvY2FsIGN1cnNvcmxpbmUKKyIgICAgY2FsbCBEZWNobygic2V0bG9jYWwgY3Vyc29ybGluZSIpCisgICBlbmRpZgorICBlbHNlCisgICBpZiBnOm5ldHJ3X2N1cnNvcmxpbmUgPT0gMgorICAgIHNldGxvY2FsIGN1cnNvcmxpbmUgY3Vyc29yY29sdW1uCisiICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIGN1cnNvcmxpbmUgY3Vyc29yY29sdW1uIikKKyAgIGVsc2VpZiBnOm5ldHJ3X2N1cnNvcmxpbmUKKyAgICBsZXQgJmN1cnNvcmxpbmU9IHM6bmV0cndfdXNlcmN1bAorICAgZW5kaWYKKyAgZW5kaWYKIAogICAiIGtlZXAgY3Vyc29yIG9uIHRoZSBmaWxlbmFtZQogICBzaWxlbnQga2VlcGp1bXBzICQKQEAgLTI2MzQsNiArMjc4NCwyOSBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHM6TmV0cndCYW5uZXJDdHJsOiB0b2dnbGVzIHRoZSBkaXNwbGF5IG9mIHRoZSBiYW5uZXIge3t7MgorZnVuISBzOk5ldHJ3QmFubmVyQ3RybChpc2xvY2FsKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0Jhbm5lckN0cmwoaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSBnOm5ldHJ3X2Jhbm5lcj0iLmc6bmV0cndfYmFubmVyKQorCisgICIgdG9nZ2xlIHRoZSBiYW5uZXIgKGVuYWJsZS9zdXBwcmVzcykKKyAgbGV0IGc6bmV0cndfYmFubmVyPSAhZzpuZXRyd19iYW5uZXIKKworICAiIHJlZnJlc2ggdGhlIGxpc3RpbmcKKyAgbGV0IHN2cG9zPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKKyAgY2FsbCBzOk5ldHJ3UmVmcmVzaChhOmlzbG9jYWwsczpOZXRyd0Jyb3dzZUNoZ0RpcihhOmlzbG9jYWwsJy4vJykpCisKKyAgIiBrZWVwIGN1cnNvciBvbiB0aGUgZmlsZW5hbWUKKyAgbGV0IGZuYW1lPSBzOk5ldHJ3R2V0V29yZCgpCisgIHNpbGVudCBrZWVwanVtcHMgJAorICBsZXQgcmVzdWx0PSBzZWFyY2goJ1wlKF5cJSh8XCtcc1wpXD1cfFxzXHsyLH1cKVx6cycuZXNjYXBlKGZuYW1lLCcuXFtdKiReJykuJ1wlKFxzXHsyLH1cfCRcKScsJ2JjJykKKyIgIGNhbGwgRGVjaG8oInNlYXJjaCByZXN1bHQ9Ii5yZXN1bHQuIiB3Om5ldHJ3X2Jhbm5lcmNudD0iLihleGlzdHMoInc6bmV0cndfYmFubmVyY250Iik/IHc6bmV0cndfYmFubmVyY250IDogJ04vQScpKQorICBpZiByZXN1bHQgPD0gMCAmJiBleGlzdHMoInc6bmV0cndfYmFubmVyY250IikKKyAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKKyAgZW5kaWYKKyIgIGNhbGwgRHJldCgiczpOZXRyd0Jhbm5lckN0cmwgOiBnOm5ldHJ3X2Jhbm5lcj0iLmc6bmV0cndfYmFubmVyKQorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6TmV0cndCb29rbWFya01lbnU6IFVzZXMgbWVudSBwcmlvcml0aWVzIHt7ezIKICIgICAgICAgICAgICAgICAgICAgICAgLjIuW2NudF0gZm9yIGJvb2ttYXJrcywgYW5kCiAiICAgICAgICAgICAgICAgICAgICAgIC4zLltjbnRdIGZvciBoaXN0b3J5CkBAIC0yNjQyLDM3ICsyODE1LDQ3IEBACiAgIGlmICFleGlzdHMoInM6bmV0cndfbWVudWNudCIpCiAgICByZXR1cm4KICAgZW5kaWYKLSIgIGNhbGwgRGZ1bmMoIk5ldHJ3Qm9va21hcmtNZW51KCkgYm9va21hcmtjbnQ9Ii5nOk5FVFJXX0JPT0tNQVJLTUFYLiIgaGlzdGNudD0iLmc6TkVUUldfRElSSElTVF9DTlQuIiBtZW51Y250PSIuczpuZXRyd19tZW51Y250KQorIiAgY2FsbCBEZnVuYygiTmV0cndCb29rbWFya01lbnUoKSAgaGlzdGNudD0iLmc6bmV0cndfZGlyaGlzdF9jbnQuIiBtZW51Y250PSIuczpuZXRyd19tZW51Y250KQogCiAgICIgdGhlIGZvbGxvd2luZyB0ZXN0IGFzc3VyZXMgdGhhdCBndmltIGlzIHJ1bm5pbmcsIGhhcyBtZW51cyBhdmFpbGFibGUsIGFuZCBoYXMgbWVudXMgZW5hYmxlZC4KICAgaWYgaGFzKCJndWkiKSAmJiBoYXMoIm1lbnUiKSAmJiBoYXMoImd1aV9ydW5uaW5nIikgJiYgJmdvID1+ICdtJyAmJiBnOm5ldHJ3X21lbnUKICAgIGlmIGV4aXN0cygiZzpOZXRyd1RvcEx2bE1lbnUiKQogIiAgICBjYWxsIERlY2hvKCJyZW1vdmluZyAiLmc6TmV0cndUb3BMdmxNZW51LiJCb29rbWFya3MgbWVudSBpdGVtKHMpIikKICAgICBleGUgJ3NpbGVudCEgdW5tZW51ICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrcycKKyAgICBleGUgJ3NpbGVudCEgdW5tZW51ICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5LkJvb2ttYXJrXCBEZWxldGUnCisgICBlbmRpZgorICAgaWYgIWV4aXN0cygiczpuZXRyd19pbml0Ym9va2hpc3QiKQorICAgIGNhbGwgczpOZXRyd0Jvb2tIaXN0UmVhZCgpCiAgICBlbmRpZgogCiAgICAiIHNob3cgYm9va21hcmtlZCBwbGFjZXMKLSAgIGxldCBjbnQgICAgICAgPSAxCi0gICB3aGlsZSBjbnQgPD0gZzpORVRSV19CT09LTUFSS01BWAotICAgIGlmIGV4aXN0cygiZzpORVRSV19CT09LTUFSS0RJUl97Y250fSIpCi0gICAgIGxldCBibWRpcj0gZXNjYXBlKGc6TkVUUldfQk9PS01BUktESVJfe2NudH0sJy4gJykKLSIgICAgIGNhbGwgRGVjaG8oJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4yLiIuY250LiIgIi5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmsuJy5ibWRpci4nCTplICcuYm1kaXIpCi0gICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4iLjIuIi5jbnQuIiAiLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3MuJy5ibWRpci4nCTplICcuYm1kaXIuIlw8Y3I+IgotICAgIGVuZGlmCi0gICAgbGV0IGNudD0gY250ICsgMQotICAgZW5kd2hpbGUKKyAgIGlmIGV4aXN0cygiZzpuZXRyd19ib29rbWFya2xpc3QiKSAmJiBnOm5ldHJ3X2Jvb2ttYXJrbGlzdCAhPSBbXQorICAgIGxldCBjbnQ9IDEKKyAgICBmb3IgYm1kIGluIGc6bmV0cndfYm9va21hcmtsaXN0CisiICAgICBjYWxsIERlY2hvKCdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LiIuMi4iLmNudC4iICIuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrLicuYm1kLicJOmUgJy5ibWQpCisgICAgIGxldCBibWQ9IGVzY2FwZShibWQsJy4gJykKKworICAgICAiIHNob3cgYm9va21hcmtzIGZvciBnb3RvIG1lbnUKKyAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LiIuMi4iLmNudC4iICIuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrcy4nLmJtZC4nCTplICcuYm1kLiJcPGNyPiIKKworICAgICAiIHNob3cgYm9va21hcmtzIGZvciBkZWxldGlvbiBtZW51CisgICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4iLjguMi4iLmNudC4iICIuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5LkJvb2ttYXJrXCBEZWxldGUuJy5ibWQuJwknLmNudC4ibUIiCisgICAgIGxldCBjbnQ9IGNudCArIDEKKyAgICBlbmRmb3IKKworICAgZW5kaWYKIAogICAgIiBzaG93IGRpcmVjdG9yeSBicm93c2luZyBoaXN0b3J5Ci0gICBsZXQgY250ICAgICA9IGc6TkVUUldfRElSSElTVF9DTlQKKyAgIGxldCBjbnQgICAgID0gZzpuZXRyd19kaXJoaXN0X2NudAogICAgbGV0IGZpcnN0ICAgPSAxCiAgICBsZXQgaGlzdGNudCA9IDAKLSAgIHdoaWxlICggZmlyc3QgfHwgY250ICE9IGc6TkVUUldfRElSSElTVF9DTlQgKQorICAgd2hpbGUgKCBmaXJzdCB8fCBjbnQgIT0gZzpuZXRyd19kaXJoaXN0X2NudCApCiAgICAgbGV0IGhpc3RjbnQgID0gaGlzdGNudCArIDEKLSAgICBsZXQgcHJpb3JpdHkgPSBnOk5FVFJXX0RJUkhJU1RfQ05UICsgaGlzdGNudAotICAgIGlmIGV4aXN0cygiZzpORVRSV19ESVJISVNUX3tjbnR9IikKLSAgICAgbGV0IGJtZGlyPSBlc2NhcGUoZzpORVRSV19ESVJISVNUX3tjbnR9LCcvJj8gJykKLSIgICAgIGNhbGwgRGVjaG8oJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuYm1kaXIuJwk6ZSAnLmJtZGlyKQotICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuYm1kaXIuJwk6ZSAnLmJtZGlyLiJcPGNyPiIKKyAgICBsZXQgcHJpb3JpdHkgPSBnOm5ldHJ3X2Rpcmhpc3RfY250ICsgaGlzdGNudAorICAgIGlmIGV4aXN0cygiZzpuZXRyd19kaXJoaXN0X3tjbnR9IikKKyAgICAgbGV0IGhpc3RkaXI9IGVzY2FwZShnOm5ldHJ3X2Rpcmhpc3Rfe2NudH0sJy4vJj8gJykKKyIgICAgIGNhbGwgRGVjaG8oJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuaGlzdGRpci4nCTplICcuaGlzdGRpcikKKyAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LiIuMy4iLnByaW9yaXR5LiIgIi5nOk5ldHJ3VG9wTHZsTWVudS4nSGlzdG9yeS4nLmhpc3RkaXIuJwk6ZSAnLmhpc3RkaXIuIlw8Y3I+IgogICAgIGVuZGlmCiAgICAgbGV0IGZpcnN0ID0gMAogICAgIGxldCBjbnQgICA9ICggY250IC0gMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CkBAIC0yNjgwLDYgKzI4NjMsNyBAQAogICAgICBsZXQgY250PSBjbnQgKyBnOm5ldHJ3X2Rpcmhpc3RtYXgKICAgICBlbmRpZgogICAgZW5kd2hpbGUKKwogICBlbmRpZgogIiAgY2FsbCBEcmV0KCJOZXRyd0Jvb2ttYXJrTWVudSIpCiBlbmRmdW4KQEAgLTI3MDIsNiArMjg4NiwxOSBAQAogICAgcmV0dXJuCiAgIGVuZGlmCiAKKyAgIiBjaGVjayBpZiB0aGUgc3RhdHVzIGJhciB3YXMgY2xpY2tlZCBvbiBpbnN0ZWFkIG9mIGEgZmlsZS9kaXJlY3RvcnkgbmFtZQorICBjYWxsIGZlZWRrZXlzKCJcPExlZnRNb3VzZT4iKQorICBsZXQgYz0gZ2V0Y2hhcigpCisgIGxldCBtb3VzZV9sbnVtID0gdjptb3VzZV9sbnVtCisgIGxldCB3bGFzdGxpbmUgID0gbGluZSgndyQnKQorICBsZXQgbGFzdGxpbmUgICA9IGxpbmUoJyQnKQorIiAgY2FsbCBEZWNobygidjptb3VzZV9sbnVtPSIubW91c2VfbG51bS4iIGxpbmUodyQpPSIud2xhc3RsaW5lLiIgbGluZSgkKT0iLmxhc3RsaW5lKQorICBpZiBtb3VzZV9sbnVtID09IHdsYXN0bGluZSArIDEKKyIgICBjYWxsIERlY2hvKCJhcHBlYXJzIHRvIGJlIGEgc3RhdHVzIGJhciBsZWZ0bW91c2UgY2xpY2siKQorICAgIiBhcHBlYXJzIHRvIGJlIGEgc3RhdHVzIGJhciBsZWZ0bW91c2UgY2xpY2sKKyAgIHJldHVybgorICBlbmRpZgorCiAgIGNhbGwgczpOZXRyd09wdGlvblNhdmUoInM6IikKICAgY2FsbCBzOk5ldHJ3U2FmZU9wdGlvbnMoKQogICBsZXQgbmJjZF9jdXJwb3MgICAgICAgICAgICAgICAgPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKQEAgLTI3MzcsNiArMjkzNCw3IEBACiAgICAgZWxzZQogICAgICBsZXQgZGlybmFtZT0gczpOZXRyd1RyZWVEaXIoKS4iLyIubmV3ZGlyCiAgICAgZW5kaWYKKyIgICAgY2FsbCBEZWNobygiZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogIiAgICBjYWxsIERlY2hvKCJ0cmVlIGxpc3RpbmciKQogICAgZWxzZWlmIG5ld2RpciA9fiAnXlwoL1x8XGE6XCknCiAgICAgbGV0IGRpcm5hbWU9IG5ld2RpcgpAQCAtMjc1MSwxMCArMjk0OSwxNCBAQAogICAgIGlmICFleGlzdHMoInM6ZGlkc3BsaXQiKQogICAgICBpZiAgICAgZzpuZXRyd19icm93c2Vfc3BsaXQgPT0gMQogICAgICAgbmV3Ci0gICAgICB3aW5jbWQgXworICAgICAgaWYgISZlYQorICAgICAgIHdpbmNtZCBfCisgICAgICBlbmRpZgogICAgICBlbHNlaWYgZzpuZXRyd19icm93c2Vfc3BsaXQgPT0gMgogICAgICAgcmlnaHRiIHZlcnQgbmV3Ci0gICAgICB3aW5jbWQgfAorICAgICAgaWYgISZlYQorICAgICAgIHdpbmNtZCB8CisgICAgICBlbmRpZgogICAgICBlbHNlaWYgZzpuZXRyd19icm93c2Vfc3BsaXQgPT0gMwogICAgICAgdGFibmV3CiAgICAgIGVsc2VpZiBnOm5ldHJ3X2Jyb3dzZV9zcGxpdCA9PSA0CkBAIC0yNzgxLDYgKzI5ODMsMjIgQEAKICIgICAgIGNhbGwgRGVjaG8oInJlbW90ZSBmaWxlOiBOZXRyd0Jyb3dzZSB3aWxsIGVkaXQgaXQiKQogICAgIGVuZGlmCiAgICAgbGV0IGRvbG9ja291dD0gMQorCisgICAgIiBoYW5kbGUgZzpOZXRyd19mdW5jcmVmIC0tIGNhbGwgZXh0ZXJuYWwtdG8tbmV0cncgZnVuY3Rpb25zCisgICAgIiAgIFRoaXMgY29kZSB3aWxsIGhhbmRsZSBnOk5ldHJ3X2Z1bmNyZWYgYXMgYW4gaW5kaXZpZHVhbCBmdW5jdGlvbiByZWZlcmVuY2UKKyAgICAiICAgb3IgYXMgYSBsaXN0IG9mIGZ1bmN0aW9uIHJlZmVyZW5jZXMuICBJdCB3aWxsIGlnbm9yZSBhbnl0aGluZyB0aGF0J3Mgbm90CisgICAgIiAgIGEgZnVuY3Rpb24gcmVmZXJlbmNlLiAgU2VlICA6aGVscCBGdW5jcmVmICBmb3IgaW5mb3JtYXRpb24gYWJvdXQgZnVuY3Rpb24gcmVmZXJlbmNlcy4KKyAgICBpZiBleGlzdHMoImc6TmV0cndfZnVuY3JlZiIpCisgICAgIGlmIHR5cGUoZzpOZXRyd19mdW5jcmVmKSA9PSAyCisgICAgICBjYWxsIGc6TmV0cndfZnVuY3JlZigpCisgICAgIGVsc2VpZiB0eXBlKGc6TmV0cndfZnVuY3JlZikgPT0gMworICAgICAgZm9yIEZuY3JlZiBpbiBnOk5ldHJ3X2Z1bmNyZWYKKyAgICAgICBpZiB0eXBlKEZuY1JlZikgPT0gMgorICAgICAgICBjYWxsIEZuY1JlZigpCisgICAgICAgZW5kaWYKKyAgICAgIGVuZGZvcgorICAgICBlbmRpZgorICAgIGVuZGlmCiAgICBlbmRpZgogCiAgIGVsc2VpZiBuZXdkaXIgPX4gJ14vJwpAQCAtMjg4NywxNSArMzEwNSwxNiBAQAogICAgICIgY2xvc2UgdHJlZSBsaXN0aW5nIGZvciBzZWxlY3RlZCBzdWJkaXJlY3RvcnkKICIgICAgY2FsbCBEZWNobygiY2xvc2luZyBzZWxlY3RlZCBzdWJkaXJlY3Rvcnk8Ii5kaXJuYW1lLiI+IikKICAgICBjYWxsIHJlbW92ZSh3Om5ldHJ3X3RyZWVkaWN0LHRyZWVkaXIpCi0iICAgIGNhbGwgRGVjaG8oInJlbW92ZWQgICAgIGVudHJ5PCIuZGlybmFtZS4iPiBmcm9tIHRyZWVkaWN0IikKKyIgICAgY2FsbCBEZWNobygicmVtb3ZlZCAgICAgZW50cnk8Ii50cmVlZGlyLiI+IGZyb20gdHJlZWRpY3QiKQogIiAgICBjYWxsIERlY2hvKCJ5aWVsZGluZyB0cmVlZGljdDwiLnN0cmluZyh3Om5ldHJ3X3RyZWVkaWN0KS4iPiIpCi0gICAgbGV0IGRpcm5hbWU9IHc6bmV0cndfdHJlZXRvcAorICAgIGxldCBkaXJuYW1lICAgICAgICAgICA9IHc6bmV0cndfdHJlZXRvcAogICAgZWxzZQogICAgICIgZ28gZG93biBvbmUgZGlyZWN0b3J5CiAgICAgbGV0IGRpcm5hbWU9IHN1YnN0aXR1dGUodHJlZWRpciwnLyokJywnLycsJycpCiAiICAgIGNhbGwgRGVjaG8oImdvIGRvd24gb25lIGRpcjogdHJlZWRpcjwiLnRyZWVkaXIuIj4iKQogICAgZW5kaWYKICAgIGNhbGwgczpTZXRSZXhEaXIoYTppc2xvY2FsLGRpcm5hbWUpCisgICBsZXQgczp0cmVlZm9yY2VyZWRyYXcgPSAxCiAKICAgZWxzZQogICAgIiBnbyBkb3duIG9uZSBkaXJlY3RvcnkKQEAgLTI5MTYsMTcgKzMxMzUsNDAgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOk5ldHJ3QnJvd3NlWDogIGFsbG93cyB1c2VycyB0byB3cml0ZSBjdXN0b20gZnVuY3Rpb25zIHRvIG9wZXJhdGUgb24ge3t7MgotIiAgICAgICAgICAgICAgZmlsZXMgZ2l2ZW4gdGhlaXIgZXh0ZW5zaW9uLiAgUGFzc2VzIDA9bG9jYWwsIDE9cmVtb3RlCisiIHM6TmV0cndCcm93c2VYOiAgKGltcGxlbWVudHMgIngiKSBleGVjdXRlcyBhIHNwZWNpYWwgInZpZXdlciIgc2NyaXB0IG9yIHByb2dyYW0gZm9yIHRoZSB7e3syCisiICAgICAgICAgICAgICBnaXZlbiBmaWxlbmFtZTsgdHlwaWNhbGx5IHRoaXMgbWVhbnMgZ2l2ZW4gdGhlaXIgZXh0ZW5zaW9uLgorIiAgICAgICAgICAgICAgMD1sb2NhbCwgMT1yZW1vdGUKIGZ1biEgbmV0cncjTmV0cndCcm93c2VYKGZuYW1lLHJlbW90ZSkKICIgIGNhbGwgRGZ1bmMoIk5ldHJ3QnJvd3NlWChmbmFtZTwiLmE6Zm5hbWUuIj4gcmVtb3RlPSIuYTpyZW1vdGUuIikiKQogCisgICIgc3BlY2lhbCBjb3JlIGR1bXAgaGFuZGxlcgorICBpZiBhOmZuYW1lID1+ICcvY29yZVwoXC5cZFwrXClcPSQnCisgICBpZiBleGlzdHMoImc6TmV0cndfY29yZWhhbmRsZXIiKQorICAgIGlmIHR5cGUoZzpOZXRyd19jb3JlaGFuZGxlcikgPT0gMgorICAgICAiIGc6TmV0cndfY29yZWhhbmRsZXIgaXMgYSBmdW5jdGlvbiByZWZlcmVuY2UgKHNlZSA6aGVscCBGdW5jcmVmKQorIiAgICAgY2FsbCBEZWNobygiZzpOZXRyd19jb3JlaGFuZGxlciBpcyBhIGZ1bmNyZWYiKQorICAgICBjYWxsIGc6TmV0cndfY29yZWhhbmRsZXIoYTpmbmFtZSkKKyAgICBlbHNlaWYgdHlwZShnOm5ldHJ3X2NvcmVoYW5kbGVyKSA9PSAzKQorICAgICAiIGc6TmV0cndfY29yZWhhbmRsZXIgaXMgYSBMaXN0IG9mIGZ1bmN0aW9uIHJlZmVyZW5jZXMgKHNlZSA6aGVscCBGdW5jcmVmKQorIiAgICAgY2FsbCBEZWNobygiZzpOZXRyd19jb3JlaGFuZGxlciBpcyBhIExpc3QiKQorICAgICBmb3IgRm5jcmVmIGluIGc6TmV0cndfY29yZWhhbmRsZXIKKyAgICAgIGlmIHR5cGUoRm5jUmVmKSA9PSAyCisgICAgICAgY2FsbCBGbmNSZWYoYTpmbmFtZSkKKyAgICAgIGVuZGlmCisgICAgIGVuZGZvcgorICAgIGVuZGlmCisiICAgIGNhbGwgRHJldCgiTmV0cndCcm93c2VYIDogY29yZWR1bXAgaGFuZGxlciBpbnZva2VkIikKKyAgICByZXR1cm4KKyAgIGVuZGlmCisgIGVuZGlmCisKICAgIiBzZXQgdXAgdGhlIGZpbGVuYW1lCiAgICIgKGxvd2VyIGNhc2UgdGhlIGV4dGVuc2lvbiwgbWFrZSBhIGxvY2FsIGNvcHkgb2YgYSByZW1vdGUgZmlsZSkKICAgbGV0IGV4dGVuPSBzdWJzdGl0dXRlKGE6Zm5hbWUsJy4qXC5cKC5cey19XCknLCdcMScsJ2UnKQogICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKICAgIGxldCBleHRlbj0gc3Vic3RpdHV0ZShleHRlbiwnXi4qJCcsJ1xMJlxFJywnJykKICAgZW5kaWYKKyIgIGNhbGwgRGVjaG8oImV4dGVuPCIuZXh0ZW4uIj4iKQogCiAgICIgc2VlbXMga2RlIHN5c3RlbXMgb2Z0ZW4gaGF2ZSBnbm9tZS1vcGVuIGR1ZSB0byBkZXBlbmRlbmNpZXMsIGV2ZW4gdGhvdWdoCiAgICIgZ25vbWUtb3BlbidzIHN1YnNpZGlhcnkgZGlzcGxheSB0b29scyBhcmUgbGFyZ2VseSBhYnNlbnQuICBLZGUgc3lzdGVtcwpAQCAtMjk0NSwxNiArMzE4NywyNSBAQAogCiAgIGlmIGE6cmVtb3RlID09IDEKICAgICIgY3JlYXRlIGEgbG9jYWwgY29weQotICAgbGV0IGZuYW1lPSBmbmFtZW1vZGlmeSh0ZW1wbmFtZSgpLCI6ciIpLiIuIi5leHRlbgotIiAgIGNhbGwgRGVjaG8oImE6cmVtb3RlPSIuYTpyZW1vdGUuIjogY3JlYXRlIGEgbG9jYWwgY29weSBvZiA8Ii5mbmFtZS4iPiBhcyA8Ii5mbmFtZS4iPiIpCi0gICBleGUgInNpbGVudCBrZWVwanVtcHMgYm90IDFuZXcgIi5mbmFtZWVzY2FwZShmbmFtZSkKKyIgICBjYWxsIERlY2hvKCJhOnJlbW90ZT0iLmE6cmVtb3RlLiI6IGNyZWF0ZSBhIGxvY2FsIGNvcHkgb2YgPCIuYTpmbmFtZS4iPiIpCiAgICBzZXRsb2NhbCBiaD1kZWxldGUKLSIgICBjYWxsIERlY2hvKCJyZWFkIDwiLmZuYW1lZXNjYXBlKGZuYW1lKS4iPiwgbm93IHdyaXRpbmc6IGV4ZSB3ISAiLmZuYW1lZXNjYXBlKGZuYW1lKSkKLSAgIGV4ZSAic2lsZW50ISB3ISAiLmZuYW1lZXNjYXBlKGZuYW1lKQotICAgcQorICAgY2FsbCBuZXRydyNOZXRSZWFkKDMsYTpmbmFtZSkKKyAgICIgYXR0ZW1wdCB0byByZW5hbWUgdGVtcGZpbGUKKyAgIGxldCBiYXNlbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdeXCguKlwpL1woLipcKVwuXChbXi5dKlwpJCcsJ1wyJywnJykKKyAgIGxldCBuZXduYW1lPSBzdWJzdGl0dXRlKHM6bmV0cndfdG1wZmlsZSwnXlwoLipcKS9cKC4qXClcLlwoW14uXSpcKSQnLCdcMS8nLmJhc2VuYW1lLicuXDMnLCcnKQorIiAgIGNhbGwgRGVjaG8oImJhc2VuYW1lPCIuYmFzZW5hbWUuIj4iKQorIiAgIGNhbGwgRGVjaG8oIm5ld25hbWUgPCIubmV3bmFtZS4iPiIpCisgICBpZiByZW5hbWUoczpuZXRyd190bXBmaWxlLG5ld25hbWUpID09IDAKKyAgICAiIHJlbmFtaW5nIHN1Y2NlZWRlZAorICAgIGxldCBmbmFtZT0gbmV3bmFtZQorICAgZWxzZQorICAgICIgcmVuYW1pbmcgZmFpbGVkCisgICAgbGV0IGZuYW1lPSBzOm5ldHJ3X3RtcGZpbGUKKyAgIGVuZGlmCiAgIGVsc2UKICAgIGxldCBmbmFtZT0gYTpmbmFtZQogICBlbmRpZgorIiAgY2FsbCBEZWNobygiZm5hbWU8Ii5mbmFtZS4iPiIpCiAiICBjYWxsIERlY2hvKCJleHRlbjwiLmV4dGVuLiI+ICIuIm5ldHJ3RmlsZUhhbmRsZXJzI05GSF8iLmV4dGVuLiIoKTpleGlzdHM9Ii5leGlzdHMoIipuZXRyd0ZpbGVIYW5kbGVycyNORkhfIi5leHRlbikpCiAKICAgIiBzZXQgdXAgcmVkaXJlY3Rpb24KQEAgLTI5NzMsNiArMzIyNCw3IEBACiAKICAgIiBleHRyYWN0IGFueSB2aWV3aW5nIG9wdGlvbnMuICBBc3N1bWVzIHRoYXQgdGhleSdyZSBzZXQgYXBhcnQgYnkgcXVvdGVzLgogICBpZiBleGlzdHMoImc6bmV0cndfYnJvd3NleF92aWV3ZXIiKQorIiAgIGNhbGwgRGVjaG8oImc6bmV0cndfYnJvd3NleF92aWV3ZXI8Ii5nOm5ldHJ3X2Jyb3dzZXhfdmlld2VyLiI+IikKICAgIGlmIGc6bmV0cndfYnJvd3NleF92aWV3ZXIgPX4gJ1xzJwogICAgIGxldCB2aWV3ZXIgID0gc3Vic3RpdHV0ZShnOm5ldHJ3X2Jyb3dzZXhfdmlld2VyLCdccy4qJCcsJycsJycpCiAgICAgbGV0IHZpZXdvcHQgPSBzdWJzdGl0dXRlKGc6bmV0cndfYnJvd3NleF92aWV3ZXIsJ15cU1wrXHMqJywnJywnJykuIiAiCkBAIC0zMDA0LDggKzMyNTYsMTUgQEAKICAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKIAogICBlbHNlaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luNjQiKQotIiAgIGNhbGwgRGVjaG8oJ2V4ZSBzaWxlbnQgIXN0YXJ0IHJ1bmRsbDMyIHVybC5kbGwsRmlsZVByb3RvY29sSGFuZGxlciAnLnNoZWxsZXNjYXBlKGZuYW1lLDEpKQotICAgZXhlICdzaWxlbnQgIXN0YXJ0IHJ1bmRsbDMyIHVybC5kbGwsRmlsZVByb3RvY29sSGFuZGxlciAnLnNoZWxsZXNjYXBlKGZuYW1lLDEpCisgICBpZiBleGVjdXRhYmxlKCJzdGFydCIpCisiICAgIGNhbGwgRGVjaG8oJ2V4ZSBzaWxlbnQgIXN0YXJ0IHJ1bmRsbDMyIHVybC5kbGwsRmlsZVByb3RvY29sSGFuZGxlciAnLnNoZWxsZXNjYXBlKGZuYW1lLDEpKQorICAgIGV4ZSAnc2lsZW50ICFzdGFydCBydW5kbGwzMiB1cmwuZGxsLEZpbGVQcm90b2NvbEhhbmRsZXIgJy5zaGVsbGVzY2FwZShmbmFtZSwxKQorICAgZWxzZWlmIGV4ZWN1dGFibGUoInJ1bmRsbDMyIikKKyIgICAgY2FsbCBEZWNobygnZXhlIHNpbGVudCAhcnVuZGxsMzIgdXJsLmRsbCxGaWxlUHJvdG9jb2xIYW5kbGVyICcuc2hlbGxlc2NhcGUoZm5hbWUsMSkpCisgICAgZXhlICdzaWxlbnQgIXJ1bmRsbDMyIHVybC5kbGwsRmlsZVByb3RvY29sSGFuZGxlciAnLnNoZWxsZXNjYXBlKGZuYW1lLDEpCisgICBlbHNlCisgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOldBUk5JTkcsInJ1bmRsbDMyIG5vdCBvbiBwYXRoIiw3NCkKKyAgIGVuZGlmCiAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBsZXQgcmV0PSB2OnNoZWxsX2Vycm9yCiAKQEAgLTMwNjAsMTkgKzMzMTksNzIgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBzOk5ldHJ3Q2hnUGVybTogKGltcGxlbWVudHMgImdwIikgY2hhbmdlIGZpbGUgcGVybWlzc2lvbiB7e3syCitmdW4hIHM6TmV0cndDaGdQZXJtKGlzbG9jYWwsY3VyZGlyKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0NoZ1Blcm0oaXNsb2NhbD0iLmE6aXNsb2NhbC4iIGN1cmRpcjwiLmE6Y3VyZGlyLiI+KSIpCisgIGNhbGwgaW5wdXRzYXZlKCkKKyAgbGV0IG5ld3Blcm09IGlucHV0KCJFbnRlciBuZXcgcGVybWlzc2lvbjogIikKKyAgY2FsbCBpbnB1dHJlc3RvcmUoKQorICBsZXQgY2hncGVybT0gc3Vic3RpdHV0ZShnOm5ldHJ3X2NoZ3Blcm0sJ1w8RklMRU5BTUVcPicsc2hlbGxlc2NhcGUoZXhwYW5kKCI8Y2ZpbGU+IikpLCcnKQorICBsZXQgY2hncGVybT0gc3Vic3RpdHV0ZShjaGdwZXJtLCdcPFBFUk1cPicsc2hlbGxlc2NhcGUobmV3cGVybSksJycpCisiICBjYWxsIERlY2hvKCJjaGdwZXJtPCIuY2hncGVybS4iPiIpCisgIGNhbGwgc3lzdGVtKGNoZ3Blcm0pCisgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAorICAgY2FsbCBuZXRydyNFcnJvck1zZygxLCJjaGFuZ2luZyBwZXJtaXNzaW9uIG9uIGZpbGU8Ii5leHBhbmQoIjxjZmlsZT4iKS4iPiBzZWVtcyB0byBoYXZlIGZhaWxlZCIsNzUpCisgIGVuZGlmCisgIGlmIGE6aXNsb2NhbAorICAgY2FsbCBzOk5ldHJ3UmVmcmVzaChhOmlzbG9jYWwsczpOZXRyd0Jyb3dzZUNoZ0RpcihhOmlzbG9jYWwsJy4vJykpCisgIGVuZGlmCisiICBjYWxsIERyZXQoInM6TmV0cndDaGdQZXJtIikKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBzOk5ldHJ3Q2xlYXJFeHBsb3JlOiBjbGVhciBleHBsb3JlIHZhcmlhYmxlcyAoaWYgYW55KSB7e3syCitmdW4hIHM6TmV0cndDbGVhckV4cGxvcmUoKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0NsZWFyRXhwbG9yZSgpIikKKyAgMm1hdGNoIG5vbmUKKyAgaWYgZXhpc3RzKCJzOmV4cGxvcmVfbWF0Y2giKSAgICAgICAgfHVubGV0IHM6ZXhwbG9yZV9tYXRjaCAgICAgICAgfGVuZGlmCisgIGlmIGV4aXN0cygiczpleHBsb3JlX2luZHgiKSAgICAgICAgIHx1bmxldCBzOmV4cGxvcmVfaW5keCAgICAgICAgIHxlbmRpZgorICBpZiBleGlzdHMoInM6bmV0cndfZXhwbG9yZV9wcnZkaXIiKSB8dW5sZXQgczpuZXRyd19leHBsb3JlX3BydmRpciB8ZW5kaWYKKyAgaWYgZXhpc3RzKCJzOmRpcnN0YXJzdGFyIikgICAgICAgICAgfHVubGV0IHM6ZGlyc3RhcnN0YXIgICAgICAgICAgfGVuZGlmCisgIGlmIGV4aXN0cygiczpleHBsb3JlX3BydmRpciIpICAgICAgIHx1bmxldCBzOmV4cGxvcmVfcHJ2ZGlyICAgICAgIHxlbmRpZgorICBpZiBleGlzdHMoInc6bmV0cndfZXhwbG9yZV9pbmR4IikgICB8dW5sZXQgdzpuZXRyd19leHBsb3JlX2luZHggICB8ZW5kaWYKKyAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2V4cGxvcmVfbGlzdGxlbiIpfHVubGV0IHc6bmV0cndfZXhwbG9yZV9saXN0bGVufGVuZGlmCisgIGlmIGV4aXN0cygidzpuZXRyd19leHBsb3JlX2xpc3QiKSAgIHx1bmxldCB3Om5ldHJ3X2V4cGxvcmVfbGlzdCAgIHxlbmRpZgorICBpZiBleGlzdHMoInc6bmV0cndfZXhwbG9yZV9idWZuciIpICB8dW5sZXQgdzpuZXRyd19leHBsb3JlX2J1Zm5yICB8ZW5kaWYKKyIgICByZWRyYXchCisgIGVjaG8gIiAiCisgIGVjaG8gIiAiCisiICBjYWxsIERyZXQoInM6TmV0cndDbGVhckV4cGxvcmUiKQorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIG5ldHJ3I0V4cGxvcmU6IGxhdW5jaCB0aGUgbG9jYWwgYnJvd3NlciBpbiB0aGUgZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IGZpbGUge3t7MgotIiAgICAgICAgICBkb3NwbGl0PT0wOiB0aGUgd2luZG93IHdpbGwgYmUgc3BsaXQgaWZmIHRoZSBjdXJyZW50IGZpbGUgaGFzCi0iICAgICAgICAgICAgICAgICAgICAgIGJlZW4gbW9kaWZpZWQKLSIgICAgICAgICAgZG9zcGxpdD09MTogdGhlIHdpbmRvdyB3aWxsIGJlIHNwbGl0IGJlZm9yZSBydW5uaW5nIHRoZSBsb2NhbAotIiAgICAgICAgICAgICAgICAgICAgICBicm93c2VyCisiICAgICAgICAgIGluZHg6ICA9PSAtMTogTmV4cGxvcmUKKyIgICAgICAgICAgICAgICAgID09IC0yOiBQZXhwbG9yZQorIiAgICAgICAgICAgICAgICAgPT0gICs6IHRoaXMgaXMgb3ZlcmxvYWRlZDoKKyIgICAgICAgICAgICAgICAgICAgICAgKiBJZiBOZXhwbG9yZS9QZXhwbG9yZSBpcyBpbiB1c2UsIHRoZW4gdGhpcyByZWZlcnMgdG8gdGhlCisiICAgICAgICAgICAgICAgICAgICAgICAgaW5keCd0aCBpdGVtIGluIHRoZSB3Om5ldHJ3X2V4cGxvcmVfbGlzdFtdIG9mIGl0ZW1zIHdoaWNoCisiICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCB0aGUgKi9wYXR0ZXJuICoqL3BhdHRlcm4gKi8vcGF0dGVybiAqKi8vcGF0dGVybgorIiAgICAgICAgICAgICAgICAgICAgICAqIElmIEhleHBsb3JlIG9yIFZleHBsb3JlLCB0aGVuIHRoaXMgd2lsbCBvdmVycmlkZQorIiAgICAgICAgICAgICAgICAgICAgICAgIGc6bmV0cndfd2luc2l6ZSB0byBzcGVjaWZ5IHRoZSBxdHkgb2Ygcm93cyBvciBjb2x1bW5zIHRoZQorIiAgICAgICAgICAgICAgICAgICAgICAgIG5ld2x5IHNwbGl0IHdpbmRvdyBzaG91bGQgaGF2ZS4KKyIgICAgICAgICAgZG9zcGxpdD09MDogdGhlIHdpbmRvdyB3aWxsIGJlIHNwbGl0IGlmZiB0aGUgY3VycmVudCBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkCisiICAgICAgICAgIGRvc3BsaXQ9PTE6IHRoZSB3aW5kb3cgd2lsbCBiZSBzcGxpdCBiZWZvcmUgcnVubmluZyB0aGUgbG9jYWwgYnJvd3NlcgorIiAgICAgICAgICBzdHlsZSA9PSAwOiBFeHBsb3JlICAgICBzdHlsZSA9PSAxOiBFeHBsb3JlIQorIiAgICAgICAgICAgICAgICA9PSAyOiBIZXhwbG9yZSAgICBzdHlsZSA9PSAzOiBIZXhwbG9yZSEKKyIgICAgICAgICAgICAgICAgPT0gNDogVmV4cGxvcmUgICAgc3R5bGUgPT0gNTogVmV4cGxvcmUhCisiICAgICAgICAgICAgICAgID09IDY6IFRleHBsb3JlCiBmdW4hIG5ldHJ3I0V4cGxvcmUoaW5keCxkb3NwbGl0LHN0eWxlLC4uLikKICIgIGNhbGwgRGZ1bmMoIm5ldHJ3I0V4cGxvcmUoaW5keD0iLmE6aW5keC4iIGRvc3BsaXQ9Ii5hOmRvc3BsaXQuIiBzdHlsZT0iLmE6c3R5bGUuIixhOjE8Ii5hOjEuIj4pICZtb2RpZmllZD0iLiZtb2RpZmllZC4iIGE6MD0iLmE6MCkKICAgaWYgIWV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQogICAgbGV0IGI6bmV0cndfY3VyZGlyPSBnZXRjd2QoKQogIiAgIGNhbGwgRGVjaG8oInNldCBiOm5ldHJ3X2N1cmRpcjwiLmI6bmV0cndfY3VyZGlyLiI+ICh1c2VkIGdldGN3ZCkiKQogICBlbmRpZgotICBsZXQgY3VyZmlsZT0gYjpuZXRyd19jdXJkaXIKLSIgIGNhbGwgRGVjaG8oImN1cmZpbGU8Ii5jdXJmaWxlLiI+IikKKyAgbGV0IGN1cmRpciAgICAgPSBiOm5ldHJ3X2N1cmRpcgorICBsZXQgY3VyZmlsZWRpciA9IHN1YnN0aXR1dGUoZXhwYW5kKCIlOnAiKSwnXlwoLipbL1xcXVwpW14vXFxdKiQnLCdcMScsJ2UnKQorIiAgY2FsbCBEZWNobygiY3VyZGlyPCIuY3VyZGlyLiI+ICBjdXJmaWxlZGlyPCIuY3VyZmlsZWRpci4iPiIpCisiICBjYWxsIEZPVEVTVCgxKQogCiAgICIgc2F2ZSByZWdpc3RlcnMKICAgc2lsZW50ISBsZXQga2VlcHJlZ3N0YXIgPSBAKgpAQCAtMzA4MywzMCArMzM5NSwzNCBAQAogICBpZiBhOmRvc3BsaXQgfHwgJm1vZGlmaWVkIHx8IGE6c3R5bGUgPT0gNgogIiAgIGNhbGwgRGVjaG8oImNhc2U6IGRvc3BsaXQ9Ii5hOmRvc3BsaXQuIiBtb2RpZmllZD0iLiZtb2RpZmllZC4iIGE6c3R5bGU9Ii5hOnN0eWxlKQogICAgY2FsbCBzOlNhdmVXaW5WYXJzKCkKKyAgIGxldCB3aW5zaXplPSBnOm5ldHJ3X3dpbnNpemUKKyAgIGlmIGE6aW5keCA+IDAKKyAgICBsZXQgd2luc2l6ZT0gYTppbmR4CisgICBlbmRpZgogCiAgICBpZiBhOnN0eWxlID09IDAgICAgICAiIEV4cGxvcmUsIFNleHBsb3JlCiAiICAgIGNhbGwgRGVjaG8oInN0eWxlPTA6IEV4cGxvcmUgb3IgU2V4cGxvcmUiKQotICAgIGV4ZSBnOm5ldHJ3X3dpbnNpemUuIndpbmNtZCBzIgorICAgIGV4ZSB3aW5zaXplLiJ3aW5jbWQgcyIKIAogICAgZWxzZWlmIGE6c3R5bGUgPT0gMSAgIkV4cGxvcmUhLCBTZXhwbG9yZSEKICIgICAgY2FsbCBEZWNobygic3R5bGU9MTogRXhwbG9yZSEgb3IgU2V4cGxvcmUhIikKLSAgICBleGUgZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgdiIKKyAgICBleGUgd2luc2l6ZS4id2luY21kIHYiCiAKICAgIGVsc2VpZiBhOnN0eWxlID09IDIgICIgSGV4cGxvcmUKICIgICAgY2FsbCBEZWNobygic3R5bGU9MjogSGV4cGxvcmUiKQotICAgIGV4ZSAiYmVsICIuZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgcyIKKyAgICBleGUgImJlbCAiLndpbnNpemUuIndpbmNtZCBzIgogCiAgICBlbHNlaWYgYTpzdHlsZSA9PSAzICAiIEhleHBsb3JlIQogIiAgICBjYWxsIERlY2hvKCJzdHlsZT0zOiBIZXhwbG9yZSEiKQotICAgIGV4ZSAiYWJvICIuZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgcyIKKyAgICBleGUgImFibyAiLndpbnNpemUuIndpbmNtZCBzIgogCiAgICBlbHNlaWYgYTpzdHlsZSA9PSA0ICAiIFZleHBsb3JlCiAiICAgIGNhbGwgRGVjaG8oInN0eWxlPTQ6IFZleHBsb3JlIikKLSAgICBleGUgImxlZnRhICIuZzpuZXRyd193aW5zaXplLiJ3aW5jbWQgdiIKKyAgICBleGUgImxlZnRhICIud2luc2l6ZS4id2luY21kIHYiCiAKICAgIGVsc2VpZiBhOnN0eWxlID09IDUgICIgVmV4cGxvcmUhCiAiICAgIGNhbGwgRGVjaG8oInN0eWxlPTU6IFZleHBsb3JlISIpCi0gICAgZXhlICJyaWdodGIgIi5nOm5ldHJ3X3dpbnNpemUuIndpbmNtZCB2IgorICAgIGV4ZSAicmlnaHRiICIud2luc2l6ZS4id2luY21kIHYiCiAKICAgIGVsc2VpZiBhOnN0eWxlID09IDYgICIgVGV4cGxvcmUKICAgICBjYWxsIHM6U2F2ZUJ1ZlZhcnMoKQpAQCAtMzExNyw2ICszNDMzLDcgQEAKICAgIGNhbGwgczpSZXN0b3JlV2luVmFycygpCiAgIGVuZGlmCiAgIG5vcm0hIDAKKyIgIGNhbGwgRk9URVNUKDIpCiAKICAgaWYgYTowID4gMAogIiAgIGNhbGwgRGVjaG8oImNhc2UgW2E6MD0iLmE6MC4iXT4wOiBhOjE8Ii5hOjEuIj4iKQpAQCAtMzEzMSwyOCArMzQ0OCwxOCBAQAogIiAgICBjYWxsIERlY2hvKCJ1c2luZyBkaXJuYW1lPCIuZGlybmFtZS4iPiAgKGNhc2U6ICIuKGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKT8gImI6bmV0cndfY3VyZGlyIiA6ICJnZXRjd2QoKSIpLiIpIikKICAgIGVsc2VpZiBhOjEgPX4gJ1wkJwogICAgIGxldCBkaXJuYW1lPSBleHBhbmQoYToxKQorIiAgICBjYWxsIERlY2hvKCJ1c2luZyB1c2VyLXNwZWNpZmllZCBkaXJuYW1lPCIuZGlybmFtZS4iPiB3aXRoICRlbnYtdmFyIikKICAgIGVsc2UKICAgICBsZXQgZGlybmFtZT0gYToxCi0iICAgIGNhbGwgRGVjaG8oInVzaW5nIGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKKyIgICAgY2FsbCBEZWNobygidXNpbmcgdXNlci1zcGVjaWZpZWQgZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgZW5kaWYKICAgZWxzZQogICAgIiBjbGVhciBleHBsb3JlCi0iICAgY2FsbCBEZWNobygiY2xlYXJpbmcgZXhwbG9yZSB2YXJpYWJsZXMiKQotICAgMm1hdGNoIG5vbmUKLSAgIGlmIGV4aXN0cygiczpleHBsb3JlX21hdGNoIikgICAgICAgIHx1bmxldCBzOmV4cGxvcmVfbWF0Y2ggICAgICAgIHxlbmRpZgotICAgaWYgZXhpc3RzKCJzOmV4cGxvcmVfaW5keCIpICAgICAgICAgfHVubGV0IHM6ZXhwbG9yZV9pbmR4ICAgICAgICAgfGVuZGlmCi0gICBpZiBleGlzdHMoInM6ZGlyc3RhcnN0YXIiKSAgICAgICAgICB8dW5sZXQgczpkaXJzdGFyc3RhciAgICAgICAgICB8ZW5kaWYKLSAgIGlmIGV4aXN0cygiczpkaXJzdGFyc3RhciIpICAgICAgICAgIHx1bmxldCBzOmRpcnN0YXJzdGFyICAgICAgICAgIHxlbmRpZgotICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2V4cGxvcmVfaW5keCIpICAgfHVubGV0IHc6bmV0cndfZXhwbG9yZV9pbmR4ICAgfGVuZGlmCi0gICBpZiBleGlzdHMoInc6bmV0cndfZXhwbG9yZV9saXN0bGVuIil8dW5sZXQgdzpuZXRyd19leHBsb3JlX2xpc3RsZW58ZW5kaWYKLSAgIGlmIGV4aXN0cygidzpuZXRyd19leHBsb3JlX2xpc3QiKSAgIHx1bmxldCB3Om5ldHJ3X2V4cGxvcmVfbGlzdCAgIHxlbmRpZgotICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2V4cGxvcmVfYnVmbnIiKSAgfHVubGV0IHc6bmV0cndfZXhwbG9yZV9idWZuciAgfGVuZGlmCi0iICAgcmVkcmF3IQotICAgZWNobyAiICIKLSAgIGVjaG8gIiAiCisgICBjYWxsIHM6TmV0cndDbGVhckV4cGxvcmUoKQogIiAgIGNhbGwgRHJldCgibmV0cncjRXhwbG9yZSA6IGNsZWFyZWQgbGlzdCIpCiAgICByZXR1cm4KICAgZW5kaWYKKyIgIGNhbGwgRk9URVNUKDMpCiAKICAgaWYgZGlybmFtZSA9fiAnL1wqXCovJwogICAgIiBoYW5kbGUgLi4uLyoqLy4uLi9maWxlcGF0CkBAIC0zMTkyLDE1ICszNDk5LDE5IEBACiAgICAiIHN0YXJwYXQ9NDogRXhwbG9yZSAqKi9maWxlcGF0ICAocmVjdXJzaXZlIGRlc2NlbnQgc2VhcmNoIGZvciBmaWxlbmFtZXMgbWF0Y2hpbmcgZmlsZXBhdCkKICAgIGxldCBzdGFycGF0PSA0CiAiICAgY2FsbCBEZWNobygiY2FzZSBFeHBsb3JlICoqL2ZpbGVwYXQgKHN0YXJwYXQ9Ii5zdGFycGF0LiIpIikKKwogICBlbHNlCiAgICBsZXQgc3RhcnBhdD0gMAorIiAgIGNhbGwgRGVjaG8oImRlZmF1bHQgY2FzZTogc3RhcnBhdD0iLnN0YXJwYXQpCiAgIGVuZGlmCisiICBjYWxsIEZPVEVTVCg0KQogCiAgIGlmIHN0YXJwYXQgPT0gMCAmJiBhOmluZHggPj0gMAogICAgIiBbRXhwbG9yZSBIZXhwbG9yZSBWZXhwbG9yZSBTZXhwbG9yZV0gW2Rpcm5hbWVdCi0iICAgY2FsbCBEZWNobygiY2FzZSBkaXJuYW1lPCIuZGlybmFtZS4iPiBhOmluZHg9Ii5hOmluZHguIjogRXhwbG9yZSBIZXhwbG9yZSBWZXhwbG9yZSBTZXhwbG9yZSIpCisiICAgY2FsbCBEZWNobygiY2FzZSBzdGFycGF0PT0wICYmIGE6aW5keD0iLmE6aW5keC4iOiBkaXJuYW1lPCIuZGlybmFtZS4iPiBFeHBsb3JlIEhleHBsb3JlIFZleHBsb3JlIFNleHBsb3JlIikKICAgIGlmIGRpcm5hbWUgPT0gIiIKLSAgICBsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShleHBhbmQoIiU6cCIpLCdeXCguKlsvXFxdXClbXi9cXF0qJCcsJ1wxJywnZScpCisgICAgbGV0IGRpcm5hbWU9IGN1cmZpbGVkaXIKKyIgICAgY2FsbCBEZWNobygiZW1wdHkgZGlybmFtZSwgdXNpbmcgY3VycmVudCBmaWxlJ3MgZGlyZWN0b3J5PCIuZGlybmFtZS4iPiIpCiAgICBlbmRpZgogICAgaWYgZGlybmFtZSA9fiAnXnNjcDonIHx8IGRpcm5hbWUgPX4gJ15mdHA6JwogIiAgICBjYWxsIERlY2hvKCJjYWxsaW5nIE5ldHJ3QnJvd3NlKDAsZGlybmFtZTwiLmRpcm5hbWUuIj4pIikKQEAgLTMyMTEsMTEgKzM1MjIsMTEgQEAKICAgICBjYWxsIG5ldHJ3I0xvY2FsQnJvd3NlQ2hlY2soZGlybmFtZSkKICAgIGVuZGlmCiAKLSIgICBjYWxsIERlY2hvKCJjdXJmaWxlPCIuY3VyZmlsZS4iPiIpCisiICAgY2FsbCBEZWNobygiY3VyZGlyPCIuY3VyZGlyLiI+IikKICAgIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQotICAgIGNhbGwgc2VhcmNoKCdcPCcuc3Vic3RpdHV0ZShjdXJmaWxlLCdeLipbL1xcXScsJycsJ2UnKS4nXD4nLCdjVycpCisgICAgY2FsbCBzZWFyY2goJ1w8Jy5zdWJzdGl0dXRlKGN1cmRpciwnXi4qWy9cXF0nLCcnLCdlJykuJ1w+JywnY1cnKQogICAgZWxzZQotICAgIGNhbGwgc2VhcmNoKCdcPCcuc3Vic3RpdHV0ZShjdXJmaWxlLCdeLiovJywnJywnZScpLidcPicsJ2NXJykKKyAgICBjYWxsIHNlYXJjaCgnXDwnLnN1YnN0aXR1dGUoY3VyZGlyLCdeLiovJywnJywnZScpLidcPicsJ2NXJykKICAgIGVuZGlmCiAKICAgIiBzdGFycGF0PTE6IEV4cGxvcmUgKi8vcGF0dGVybiAgKGN1cnJlbnQgZGlyZWN0b3J5IG9ubHkgc2VhcmNoIGZvciBmaWxlcyBjb250YWluaW5nIHBhdHRlcm4pCkBAIC0zMjI0LDcgKzM1MzUsNyBAQAogICAiIHN0YXJwYXQ9NDogRXhwbG9yZSAqKi9maWxlcGF0ICAocmVjdXJzaXZlIGRlc2NlbnQgc2VhcmNoIGZvciBmaWxlbmFtZXMgbWF0Y2hpbmcgZmlsZXBhdCkKICAgZWxzZWlmIGE6aW5keCA8PSAwCiAgICAiIE5leHBsb3JlLCBQZXhwbG9yZSwgRXhwbG9yZTogaGFuZGxlIHN0YXJwYXQKLSIgICBjYWxsIERlY2hvKCJjYXNlIE5leHBsb3JlLCBQZXhwbG9yZSwgPHMtZG93bj4sIDxzLXVwPjogc3RhcnBhdD0iLnN0YXJwYXQuIiBhOmluZHg9Ii5hOmluZHgpCisiICAgY2FsbCBEZWNobygiY2FzZSBhOmluZHg8PTA6IE5leHBsb3JlLCBQZXhwbG9yZSwgPHMtZG93bj4sIDxzLXVwPiBzdGFycGF0PSIuc3RhcnBhdC4iIGE6aW5keD0iLmE6aW5keCkKICAgIGlmICFtYXBjaGVjaygiPHMtdXA+IiwibiIpICYmICFtYXBjaGVjaygiPHMtZG93bj4iLCJuIikgJiYgZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpCiAiICAgIGNhbGwgRGVjaG8oInNldCB1cCA8cy11cD4gYW5kIDxzLWRvd24+IG1hcHMiKQogICAgIGxldCBzOmRpZHN0YXJzdGFyPSAxCkBAIC0zMjM3LDkgKzM1NDgsMTAgQEAKICAgICBpZiAhZXhpc3RzKCJ3Om5ldHJ3X2V4cGxvcmVfaW5keCIpCiAgICAgIGxldCB3Om5ldHJ3X2V4cGxvcmVfaW5keD0gMAogICAgIGVuZGlmCisKICAgICBsZXQgaW5keCA9IGE6aW5keAogIiAgICBjYWxsIERlY2hvKCJzdGFycGF0PSIuc3RhcnBhdC4iOiBzZXQgaW5keD0gW2E6aW5keD0iLmluZHguIl0iKQotIgorCiAgICAgaWYgaW5keCA9PSAtMQogICAgICAiIE5leHBsb3JlCiAiICAgICBjYWxsIERlY2hvKCJjYXNlIE5leHBsb3JlIHdpdGggc3RhcnBhdD0iLnN0YXJwYXQuIjogKGluZHg9Ii5pbmR4LiIpIikKQEAgLTMyOTAsNiArMzYwMiw3IEBACiAgICAgICIgRXhwbG9yZSAtLSBpbml0aWFsaXplCiAgICAgICIgYnVpbGQgbGlzdCBvZiBmaWxlcyB0byBFeHBsb3JlIHdpdGggTmV4cGxvcmUvUGV4cGxvcmUKICIgICAgIGNhbGwgRGVjaG8oInN0YXJwYXQ9Ii5zdGFycGF0LiI6IGNhc2UgRXhwbG9yZTogaW5pdGlhbGl6ZSAoaW5keD0iLmluZHguIikiKQorICAgICBjYWxsIHM6TmV0cndDbGVhckV4cGxvcmUoKQogICAgICBsZXQgdzpuZXRyd19leHBsb3JlX2luZHg9IDAKICAgICAgaWYgIWV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQogICAgICAgbGV0IGI6bmV0cndfY3VyZGlyPSBnZXRjd2QoKQpAQCAtMzMwMCwxNyArMzYxMywyNCBAQAogICAgICBpZiBzdGFycGF0ID09IDEKICAgICAgICIgc3RhcnBhdD0xOiBFeHBsb3JlICovL3BhdHRlcm4gIChjdXJyZW50IGRpcmVjdG9yeSBvbmx5IHNlYXJjaCBmb3IgZmlsZXMgY29udGFpbmluZyBwYXR0ZXJuKQogIiAgICAgIGNhbGwgRGVjaG8oInN0YXJwYXQ9Ii5zdGFycGF0LiI6IGJ1aWxkICovL3BhdHRlcm4gbGlzdCIpCi0gICAgICBleGUgInZpbWdyZXAgLyIucGF0dGVybi4iL2dqICIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpLiIvKiIKLSAgICAgIGxldCB3Om5ldHJ3X2V4cGxvcmVfbGlzdCA9IG1hcChnZXRxZmxpc3QoKSwnYnVmbmFtZSh2OnZhbC5idWZuciknKQorIiAgICAgIGNhbGwgRGVjaG8oInBhdHRlcm48Ii5wYXR0ZXJuLiI+IikKKyAgICAgIHRyeQorICAgICAgIGV4ZSAibm9hdXRvY21kIHZpbWdyZXAgLyIucGF0dGVybi4iL2dqICIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpLiIvKiIKKyAgICAgIGNhdGNoIC9eVmltXCUoKFxhXCspXClcPTpFNDgwLworICAgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCJubyBtYXRjaCB3aXRoIHBhdHRlcm48Ii5wYXR0ZXJuLiI+Iiw3NikKKyIgICAgICAgY2FsbCBEcmV0KCJuZXRydyNFeHBsb3JlIDogdW5hYmxlIHRvIGZpbmQgcGF0dGVybjwiLnBhdHRlcm4uIj4iKQorICAgICAgIHJldHVybgorICAgICAgZW5kdHJ5CisgICAgICBsZXQgdzpuZXRyd19leHBsb3JlX2xpc3QgPSBzOk5ldHJ3RXhwbG9yZUxpc3RVbmlxKG1hcChnZXRxZmxpc3QoKSwnYnVmbmFtZSh2OnZhbC5idWZuciknKSkKICAgICAgIGlmICZobHMgfCBsZXQga2VlcHJlZ3NsYXNoPSBzOkV4cGxvcmVQYXRIbHMocGF0dGVybikgfCBlbmRpZgogCiAgICAgIGVsc2VpZiBzdGFycGF0ID09IDIKICAgICAgICIgc3RhcnBhdD0yOiBFeHBsb3JlICoqLy9wYXR0ZXJuIChyZWN1cnNpdmUgZGVzY2VudCBzZWFyY2ggZm9yIGZpbGVzIGNvbnRhaW5pbmcgcGF0dGVybikKICIgICAgICBjYWxsIERlY2hvKCJzdGFycGF0PSIuc3RhcnBhdC4iOiBidWlsZCAqKi8vcGF0dGVybiBsaXN0IikKICAgICAgIHRyeQotICAgICAgIGV4ZSAic2lsZW50IHZpbWdyZXAgLyIucGF0dGVybi4iL2dqICIuIioqLyoiCisgICAgICAgZXhlICJzaWxlbnQgbm9hdXRvY21kIHZpbWdyZXAgLyIucGF0dGVybi4iL2dqICIuIioqLyoiCiAgICAgICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTQ4MC8KLSAgICAgIAljYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywnbm8gZmlsZXMgbWF0Y2hlZCBwYXR0ZXJuPCcucGF0dGVybi4nPicsNDUpCisgICAgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOldBUk5JTkcsJ25vIGZpbGVzIG1hdGNoZWQgcGF0dGVybjwnLnBhdHRlcm4uJz4nLDQ1KQogICAgICAgIGlmICZobHMgfCBsZXQga2VlcHJlZ3NsYXNoPSBzOkV4cGxvcmVQYXRIbHMocGF0dGVybikgfCBlbmRpZgogICAgICAgIHNpbGVudCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKICAgICAgICBzaWxlbnQhIGxldCBAKyA9IGtlZXByZWdzdGFyCkBAIC0zMzIwLDE5ICszNjQwLDIyIEBACiAgICAgICBlbmR0cnkKICAgICAgIGxldCBzOm5ldHJ3X2N1cmRpciAgICAgICA9IGI6bmV0cndfY3VyZGlyCiAgICAgICBsZXQgdzpuZXRyd19leHBsb3JlX2xpc3QgPSBnZXRxZmxpc3QoKQotICAgICAgbGV0IHc6bmV0cndfZXhwbG9yZV9saXN0ID0gbWFwKHc6bmV0cndfZXhwbG9yZV9saXN0LCdzOm5ldHJ3X2N1cmRpci4iLyIuYnVmbmFtZSh2OnZhbC5idWZuciknKQorICAgICAgbGV0IHc6bmV0cndfZXhwbG9yZV9saXN0ID0gczpOZXRyd0V4cGxvcmVMaXN0VW5pcShtYXAodzpuZXRyd19leHBsb3JlX2xpc3QsJ3M6bmV0cndfY3VyZGlyLiIvIi5idWZuYW1lKHY6dmFsLmJ1Zm5yKScpKQogCiAgICAgIGVsc2VpZiBzdGFycGF0ID09IDMKICAgICAgICIgc3RhcnBhdD0zOiBFeHBsb3JlICovZmlsZXBhdCAgIChzZWFyY2ggaW4gY3VycmVudCBkaXJlY3RvcnkgZm9yIGZpbGVuYW1lcyBtYXRjaGluZyBmaWxlcGF0KQogIiAgICAgIGNhbGwgRGVjaG8oInN0YXJwYXQ9Ii5zdGFycGF0LiI6IGJ1aWxkICovZmlsZXBhdCBsaXN0IikKLSAgICAgIGxldCBkaXJuYW1lICAgICAgICAgICAgID0gc3Vic3RpdHV0ZShkaXJuYW1lLCdeXCovJywnJywnJykKLSAgICAgIGxldCB3Om5ldHJ3X2V4cGxvcmVfbGlzdD0gc3BsaXQoZXhwYW5kKGI6bmV0cndfY3VyZGlyLiIvIi5kaXJuYW1lKSwnXG4nKQotICAgICAgaWYgJmhscyB8IGxldCBrZWVwcmVnc2xhc2g9IHM6RXhwbG9yZVBhdEhscyhkaXJuYW1lKSB8IGVuZGlmCisgICAgICBsZXQgZmlsZXBhdD0gc3Vic3RpdHV0ZShkaXJuYW1lLCdeXCovJywnJywnJykKKyAgICAgIGxldCBmaWxlcGF0PSBzdWJzdGl0dXRlKGZpbGVwYXQsJ15bJSM8XScsJ1xcJicsJycpCisiICAgICAgY2FsbCBEZWNobygiYjpuZXRyd19jdXJkaXI8Ii5iOm5ldHJ3X2N1cmRpci4iPiIpCisiICAgICAgY2FsbCBEZWNobygiZmlsZXBhdDwiLmZpbGVwYXQuIj4iKQorICAgICAgbGV0IHc6bmV0cndfZXhwbG9yZV9saXN0PSBzOk5ldHJ3RXhwbG9yZUxpc3RVbmlxKHNwbGl0KGV4cGFuZChiOm5ldHJ3X2N1cmRpci4iLyIuZmlsZXBhdCksJ1xuJykpCisgICAgICBpZiAmaGxzIHwgbGV0IGtlZXByZWdzbGFzaD0gczpFeHBsb3JlUGF0SGxzKGZpbGVwYXQpIHwgZW5kaWYKIAogICAgICBlbHNlaWYgc3RhcnBhdCA9PSA0CiAgICAgICAiIHN0YXJwYXQ9NDogRXhwbG9yZSAqKi9maWxlcGF0ICAocmVjdXJzaXZlIGRlc2NlbnQgc2VhcmNoIGZvciBmaWxlbmFtZXMgbWF0Y2hpbmcgZmlsZXBhdCkKICIgICAgICBjYWxsIERlY2hvKCJzdGFycGF0PSIuc3RhcnBhdC4iOiBidWlsZCAqKi9maWxlcGF0IGxpc3QiKQotICAgICAgbGV0IHc6bmV0cndfZXhwbG9yZV9saXN0PSBzcGxpdChleHBhbmQoYjpuZXRyd19jdXJkaXIuIi8iLmRpcm5hbWUpLCdcbicpCisgICAgICBsZXQgdzpuZXRyd19leHBsb3JlX2xpc3Q9IHM6TmV0cndFeHBsb3JlTGlzdFVuaXEoc3BsaXQoZXhwYW5kKGI6bmV0cndfY3VyZGlyLiIvIi5kaXJuYW1lKSwnXG4nKSkKICAgICAgIGlmICZobHMgfCBsZXQga2VlcHJlZ3NsYXNoPSBzOkV4cGxvcmVQYXRIbHMoZGlybmFtZSkgfCBlbmRpZgogICAgICBlbmRpZiAiIHN3aXRjaCBvbiBzdGFycGF0IHRvIGJ1aWxkIHc6bmV0cndfZXhwbG9yZV9saXN0CiAKQEAgLTMzNTIsNyArMzY3NSw3IEBACiAKICAgICAiIE5ldHJ3U3RhdHVzTGluZSBzdXBwb3J0IC0gZm9yIGV4cGxvcmluZyBzdXBwb3J0CiAgICAgbGV0IHc6bmV0cndfZXhwbG9yZV9pbmR4PSBpbmR4Ci0iICAgIGNhbGwgRGVjaG8oImV4cGxvcmVsaXN0PCIuam9pbih3Om5ldHJ3X2V4cGxvcmVfbGlzdCwnLCcpLiI+IGxlbj0iLnc6bmV0cndfZXhwbG9yZV9saXN0bGVuKQorIiAgICBjYWxsIERlY2hvKCJ3Om5ldHJ3X2V4cGxvcmVfbGlzdDwiLmpvaW4odzpuZXRyd19leHBsb3JlX2xpc3QsJywnKS4iPiBsZW49Ii53Om5ldHJ3X2V4cGxvcmVfbGlzdGxlbikKIAogICAgICIgd3JhcCB0aGUgaW5keCBhcm91bmQsIGJ1dCBpc3N1ZSBhIG5vdGUKICAgICBpZiBpbmR4ID49IHc6bmV0cndfZXhwbG9yZV9saXN0bGVuIHx8IGluZHggPCAwCkBAIC0zMzYwLDcgKzM2ODMsNiBAQAogICAgICBsZXQgaW5keCAgICAgICAgICAgICAgICA9IChpbmR4IDwgMCk/ICggdzpuZXRyd19leHBsb3JlX2xpc3RsZW4gLSAxICkgOiAwCiAgICAgIGxldCB3Om5ldHJ3X2V4cGxvcmVfaW5keD0gaW5keAogICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6Tk9URSwibm8gbW9yZSBmaWxlcyBtYXRjaCBFeHBsb3JlIHBhdHRlcm4iLDQzKQotICAgICBzbGVlcCAxCiAgICAgZW5kaWYKIAogICAgIGV4ZSAibGV0IGRpcmZpbGU9IHc6bmV0cndfZXhwbG9yZV9saXN0WyIuaW5keC4iXSIKQEAgLTMzOTcsNyArMzcxOSw3IEBACiAgICBlbmRpZgogCiAgIGVsc2UKLSIgICBjYWxsIERlY2hvKCJjYXNlIEV4cGxvcmUgbmV3ZGlyPCIuZGlybmFtZS4iPiIpCisiICAgY2FsbCBEZWNobygiZGVmYXVsdCBjYXNlOiBFeHBsb3JlIG5ld2RpcjwiLmRpcm5hbWUuIj4iKQogICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QgJiYgZGlybmFtZSA9fiAnLycKICAgICBzaWxlbnQhIHVubGV0IHc6bmV0cndfdHJlZWRpY3QKICAgICBzaWxlbnQhIHVubGV0IHc6bmV0cndfdHJlZXRvcApAQCAtMzQwOSwxNCArMzczMSwxOSBAQAogICAgIGNhbGwgbmV0cncjTG9jYWxCcm93c2VDaGVjayhzOk5ldHJ3QnJvd3NlQ2hnRGlyKDEsbmV3ZGlyKSkKICAgIGVuZGlmCiAgIGVuZGlmCisiICBjYWxsIEZPVEVTVCg1KQogCiAgICIgdmlzdWFsIGRpc3BsYXkgb2YgKiovICoqLy8gKi8gRXhwbG9yYXRpb24gZmlsZXMKKyIgIGNhbGwgRGVjaG8oInc6bmV0cndfZXhwbG9yZV9pbmR4PSIuKGV4aXN0cygidzpuZXRyd19leHBsb3JlX2luZHgiKT8gdzpuZXRyd19leHBsb3JlX2luZHggOiAiZG9lc24ndCBleGlzdCIpKQorIiAgY2FsbCBEZWNobygiYjpuZXRyd19jdXJkaXI8Ii4oZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpPyBiOm5ldHJ3X2N1cmRpciA6ICJuL2EiKS4iPiIpCiAgIGlmIGV4aXN0cygidzpuZXRyd19leHBsb3JlX2luZHgiKSAmJiBleGlzdHMoImI6bmV0cndfY3VyZGlyIikKKyIgICBjYWxsIERlY2hvKCJzOmV4cGxvcmVfcHJ2ZGlyPCIuKGV4aXN0cygiczpleHBsb3JlX3BydmRpciIpPyBzOmV4cGxvcmVfcHJ2ZGlyIDogIi1kb2Vzbid0IGV4aXN0LSIpKQogICAgaWYgIWV4aXN0cygiczpleHBsb3JlX3BydmRpciIpIHx8IHM6ZXhwbG9yZV9wcnZkaXIgIT0gYjpuZXRyd19jdXJkaXIKICAgICAiIG9ubHkgdXBkYXRlIG1hdGNoIGxpc3QgaWYgY3VycmVudCBkaXJlY3RvcnkgaXNuJ3QgdGhlIHNhbWUgYXMgYmVmb3JlCisiICAgIGNhbGwgRGVjaG8oIm9ubHkgdXBkYXRlIG1hdGNoIGxpc3QgaWYgY3VycmVudCBkaXJlY3Rvcnkgbm90IHRoZSBzYW1lIGFzIGJlZm9yZSIpCiAgICAgbGV0IHM6ZXhwbG9yZV9wcnZkaXIgPSBiOm5ldHJ3X2N1cmRpcgogICAgIGxldCBzOmV4cGxvcmVfbWF0Y2ggID0gIiIKLSAgICBsZXQgZGlybGVuICAgICAgICAgICA9IHN0cmxlbihiOm5ldHJ3X2N1cmRpcikKKyAgICBsZXQgZGlybGVuICAgICAgICAgICA9IHM6U3RybGVuKGI6bmV0cndfY3VyZGlyKQogICAgIGlmIGI6bmV0cndfY3VyZGlyICF+ICcvJCcKICAgICAgbGV0IGRpcmxlbj0gZGlybGVuICsgMQogICAgIGVuZGlmCkBAIC0zNDI1LDE1ICszNzUyLDE1IEBACiAiICAgICBjYWxsIERlY2hvKCJmbmFtZTwiLmZuYW1lLiI+IikKICAgICAgaWYgZm5hbWUgPX4gJ14nLmI6bmV0cndfY3VyZGlyCiAgICAgICBpZiBzOmV4cGxvcmVfbWF0Y2ggPT0gIiIKLSAgICAgICBsZXQgczpleHBsb3JlX21hdGNoPSAnXDwnLmVzY2FwZShzdHJwYXJ0KGZuYW1lLGRpcmxlbiksZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIuZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIpLidcPicKKyAgICAgICBsZXQgczpleHBsb3JlX21hdGNoPSAnXDwnLmVzY2FwZShzdHJwYXJ0KGZuYW1lLGRpcmxlbiksZzpuZXRyd19tYXJrZmlsZWVzYykuJ1w+JwogICAgICAgZWxzZQotICAgICAgIGxldCBzOmV4cGxvcmVfbWF0Y2g9IHM6ZXhwbG9yZV9tYXRjaC4nXHxcPCcuZXNjYXBlKHN0cnBhcnQoZm5hbWUsZGlybGVuKSxnOm5ldHJ3X21hcmtmaWxlZXNjLiInIi5nOm5ldHJ3X21hcmtmaWxlZXNjLiInIikuJ1w+JworICAgICAgIGxldCBzOmV4cGxvcmVfbWF0Y2g9IHM6ZXhwbG9yZV9tYXRjaC4nXHxcPCcuZXNjYXBlKHN0cnBhcnQoZm5hbWUsZGlybGVuKSxnOm5ldHJ3X21hcmtmaWxlZXNjKS4nXD4nCiAgICAgICBlbmRpZgogICAgICBlbHNlaWYgZm5hbWUgIX4gJ14vJyAmJiBmbmFtZSAhPSBwcnZmbmFtZQogICAgICAgaWYgczpleHBsb3JlX21hdGNoID09ICIiCi0gICAgICAgbGV0IHM6ZXhwbG9yZV9tYXRjaD0gJ1w8Jy5lc2NhcGUoZm5hbWUsZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIuZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIpLidcPicKKyAgICAgICBsZXQgczpleHBsb3JlX21hdGNoPSAnXDwnLmVzY2FwZShmbmFtZSxnOm5ldHJ3X21hcmtmaWxlZXNjKS4nXD4nCiAgICAgICBlbHNlCi0gICAgICAgbGV0IHM6ZXhwbG9yZV9tYXRjaD0gczpleHBsb3JlX21hdGNoLidcfFw8Jy5lc2NhcGUoZm5hbWUsZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIuZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIpLidcPicKKyAgICAgICBsZXQgczpleHBsb3JlX21hdGNoPSBzOmV4cGxvcmVfbWF0Y2guJ1x8XDwnLmVzY2FwZShmbmFtZSxnOm5ldHJ3X21hcmtmaWxlZXNjKS4nXD4nCiAgICAgICBlbmRpZgogICAgICBlbmRpZgogICAgICBsZXQgcHJ2Zm5hbWU9IGZuYW1lCkBAIC0zNDQ5LDYgKzM3NzYsNyBAQAogICAgZWNobyAiICIKICIgICBjYWxsIERlY2hvKCJjbGVhcmVkIGV4cGxvcmUgbWF0Y2ggbGlzdCIpCiAgIGVuZGlmCisiICBjYWxsIEZPVEVTVCg2KQogCiAgIHNpbGVudCEgbGV0IEAqID0ga2VlcHJlZ3N0YXIKICAgc2lsZW50ISBsZXQgQCsgPSBrZWVwcmVnc3RhcgpAQCAtMzQ1Nyw2ICszNzg1LDI0IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgczpOZXRyd0V4cGxvcmVMaXN0VW5pcToge3t7MgorZnVuISBzOk5ldHJ3RXhwbG9yZUxpc3RVbmlxKGV4cGxpc3QpCisiICBjYWxsIERmdW5jKCJzOk5ldHJ3RXhwbG9yZUxpc3RVbmlxKGV4cGxpc3QpIikKKworICAiIHRoaXMgYXNzdW1lcyB0aGF0IHRoZSBsaXN0IGlzIGFscmVhZHkgc29ydGVkCisgIGxldCBuZXdleHBsaXN0PSBbXQorICBmb3IgbWVtYmVyIGluIGE6ZXhwbGlzdAorICAgaWYgIWV4aXN0cygidW5pcW1lbWJlciIpIHx8IG1lbWJlciAhPSB1bmlxbWVtYmVyCisgICAgbGV0IHVuaXFtZW1iZXIgPSBtZW1iZXIKKyAgICBsZXQgbmV3ZXhwbGlzdCA9IG5ld2V4cGxpc3QgKyBbIG1lbWJlciBdCisgICBlbmRpZgorICBlbmRmb3IKKworIiAgY2FsbCBEcmV0KCJzOk5ldHJ3RXhwbG9yZUxpc3RVbmlxIikKKyAgcmV0dXJuIG5ld2V4cGxpc3QKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBzOk5ldHJ3SGlkZTogdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIGJ5IHRoZSAiYSIgbWFwIGZvciBicm93c2luZyB7e3syCiAiICAgICAgICAgIGFuZCBzd2l0Y2hlcyB0aGUgaGlkaW5nIG1vZGUuICBUaGUgYWN0dWFsIGhpZGluZyBpcyBkb25lIGJ5CiAiICAgICAgICAgIHM6TmV0cndMaXN0SGlkZSgpLgpAQCAtMzQ5MCw5ICszODM2LDcgQEAKICIgICAgIGNhbGwgRGVjaG8oImhpZGU6IGc6bmV0cndfbGlzdF9oaWRlPCIuZzpuZXRyd19saXN0X2hpZGUuIj4iKQogICAgIGVuZGlmCiAgICBlbmRmb3IKLSAgIHVubGV0IHM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCIlIil9Ci0gICB1bmxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tidWZucigiJSIpfQotICAgMm1hdGNoIG5vbmUKKyAgIGNhbGwgczpOZXRyd1VubWFya0xpc3QoYnVmbnIoIiUiKSxiOm5ldHJ3X2N1cmRpcikKICAgIGxldCBnOm5ldHJ3X2hpZGU9IDEKIAogICBlbHNlCkBAIC0zNTIyLDcgKzM4NjYsNyBAQAogICBpZiBnOm5ldHJ3X2xpc3RfaGlkZSA9fiAnXCheXHwsXClcXCheXFx8XFxzXFxzXFwpXFx6c1xcLlxcU1xcKycKICAgICIgcmVtb3ZlIHBhdHRlcm4gZnJvbSBoaWRpbmcgbGlzdAogICAgbGV0IGc6bmV0cndfbGlzdF9oaWRlPSBzdWJzdGl0dXRlKGc6bmV0cndfbGlzdF9oaWRlLCdcKF5cfCxcKVxcKF5cXHxcXHNcXHNcXClcXHpzXFwuXFxTXFwrJywnJywnJykKLSAgZWxzZWlmIHN0cmxlbihnOm5ldHJ3X2xpc3RfaGlkZSkgPj0gMQorICBlbHNlaWYgczpTdHJsZW4oZzpuZXRyd19saXN0X2hpZGUpID49IDEKICAgIGxldCBnOm5ldHJ3X2xpc3RfaGlkZT0gZzpuZXRyd19saXN0X2hpZGUgLiAnLFwoXlx8XHNcc1wpXHpzXC5cU1wrJwogICBlbHNlCiAgICBsZXQgZzpuZXRyd19saXN0X2hpZGU9ICdcKF5cfFxzXHNcKVx6c1wuXFNcKycKQEAgLTM1MzUsNiArMzg3OSw0MSBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICBzOk5ldHJ3SG9tZTogdGhpcyBmdW5jdGlvbiBkZXRlcm1pbmVzIGEgImhvbWUiIGZvciBzYXZpbmcgYm9va21hcmtzIGFuZCBoaXN0b3J5IHt7ezIKK2Z1biEgczpOZXRyd0hvbWUoKQorICBpZiBleGlzdHMoImc6bmV0cndfaG9tZSIpCisgICBsZXQgaG9tZT0gZzpuZXRyd19ob21lCisgIGVsc2UKKyAgICIgZ28gdG8gdmltIHBsdWdpbiBob21lCisgICBmb3IgaG9tZSBpbiBzcGxpdCgmcnRwLCcsJykgKyBbJyddCisgICAgaWYgaXNkaXJlY3RvcnkoaG9tZSkgJiYgZmlsZXdyaXRhYmxlKGhvbWUpIHwgYnJlYWsgfCBlbmRpZgorICAgICBsZXQgYmFzZWhvbWU9IHN1YnN0aXR1dGUoaG9tZSwnWy9cXF1cLnZpbSQnLCcnLCcnKQorICAgIGlmIGlzZGlyZWN0b3J5KGJhc2Vob21lKSAmJiBmaWxld3JpdGFibGUoYmFzZWhvbWUpCisgICAgIGxldCBob21lPSBiYXNlaG9tZS4iLy52aW0iCisgICAgIGJyZWFrCisgICAgZW5kaWYKKyAgIGVuZGZvcgorICAgaWYgaG9tZSA9PSAiIgorICAgICIganVzdCBwaWNrIHRoZSBmaXJzdCBkaXJlY3RvcnkKKyAgICBsZXQgaG9tZT0gc3Vic3RpdHV0ZSgmcnRwLCcsLiokJywnJywnJykKKyAgIGVuZGlmCisgICBpZiAoaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpKQorICAgIGxldCBob21lPSBzdWJzdGl0dXRlKGhvbWUsJy8nLCdcXCcsJ2cnKQorICAgZW5kaWYKKyAgZW5kaWYKKyAgIiBpbnN1cmUgdGhhdCB0aGUgaG9tZSBkaXJlY3RvcnkgZXhpc3RzCisgIGlmICFpc2RpcmVjdG9yeShob21lKQorICAgaWYgZXhpc3RzKCJnOm5ldHJ3X21rZGlyIikKKyAgICBjYWxsIHN5c3RlbShnOm5ldHJ3X21rZGlyLiIgIi5zaGVsbGVzY2FwZShob21lKSkKKyAgIGVsc2UKKyAgICBjYWxsIG1rZGlyKGhvbWUpCisgICBlbmRpZgorICBlbmRpZgorICBsZXQgZzpuZXRyd19ob21lPSBob21lCisgIHJldHVybiBob21lCitlbmRmdW4KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpOZXRyd0xlZnRtb3VzZTogaGFuZGxlcyB0aGUgPGxlZnRtb3VzZT4gd2hlbiBpbiBhIG5ldHJ3IGJyb3dzaW5nIHdpbmRvdyB7e3syCiBmdW4hIHM6TmV0cndMZWZ0bW91c2UoaXNsb2NhbCkKICIgIGNhbGwgRGZ1bmMoInM6TmV0cndMZWZ0bW91c2UoaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSIpCkBAIC0zNzQ5LDYgKzQxMjgsNyBAQAogIiAgY2FsbCBEZnVuYygiczpOZXRyd01hcmtGaWxlKGlzbG9jYWw9Ii5hOmlzbG9jYWwuIiBmbmFtZTwiLmE6Zm5hbWUuIj4pIikKICAgbGV0IGN1cmJ1Zm5yPSBidWZucigiJSIpCiAgIGxldCBjdXJkaXIgID0gYjpuZXRyd19jdXJkaXIKKyAgbGV0IHRyYWlsZXIgPSAnW0A9fFwvXCpdXD1cPicKICAgaWYgZXhpc3RzKCJzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0iKQogICAgIiBtYXJrZmlsZSBsaXN0IGV4aXN0cwogIiAgIGNhbGwgRGVjaG8oInN0YXJ0aW5nIHM6bmV0cndtYXJrZmlsZWxpc3Rfe2N1cmJ1Zm5yfTwiLnN0cmluZyhzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0pLiI+IikKQEAgLTM3NTksNyArNDEzOSw3IEBACiAgICAgIiBhcHBlbmQgZmlsZW5hbWUgdG8gYnVmZmVyJ3MgbWFya2ZpbGVsaXN0CiAiICAgIGNhbGwgRGVjaG8oImFwcGVuZCBmaWxlbmFtZTwiLmE6Zm5hbWUuIj4gdG8gbG9jYWwgbWFya2ZpbGVsaXN0XyIuY3VyYnVmbnIuIjwiLnN0cmluZyhzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0pLiI+IikKICAgICBjYWxsIGFkZChzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0sYTpmbmFtZSkKLSAgICBsZXQgczpuZXRyd21hcmtmaWxlbXRjaF97Y3VyYnVmbnJ9PSBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn0uJ1x8XDwnLmVzY2FwZShhOmZuYW1lLGc6bmV0cndfbWFya2ZpbGVlc2MuIiciLmc6bmV0cndfbWFya2ZpbGVlc2MuIiciKS4nXD4nCisgICAgbGV0IHM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfT0gczpuZXRyd21hcmtmaWxlbXRjaF97Y3VyYnVmbnJ9LidcfFw8Jy5lc2NhcGUoYTpmbmFtZSxnOm5ldHJ3X21hcmtmaWxlZXNjLiInIi5nOm5ldHJ3X21hcmtmaWxlZXNjLiInIikudHJhaWxlcgogCiAgICBlbHNlCiAgICAgIiByZW1vdmUgZmlsZW5hbWUgZnJvbSBidWZmZXIncyBtYXJrZmlsZWxpc3QKQEAgLTM3NjcsNyArNDE0Nyw3IEBACiAgICAgY2FsbCBmaWx0ZXIoczpuZXRyd21hcmtmaWxlbGlzdF97Y3VyYnVmbnJ9LCd2OnZhbCAhPSBhOmZuYW1lJykKICAgICBpZiBzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0gPT0gW10KICAgICAgIiBsb2NhbCBtYXJrZmlsZWxpc3QgaXMgZW1wdHk7IHJlbW92ZSBpdCBlbnRpcmVseQotIiAgICAgY2FsbCBEZWNobygibWFya2ZpbGUgbGlzdCBub3cgZW1wdHksIHVubGV0IHM6bmV0cndtYXJrZmlsZWxpc3RfIi5jdXJidWZuci4iIGFuZCAuLi5tdGNoXyIuY3VyYnVmbnIpCisiICAgICBjYWxsIERlY2hvKCJtYXJrZmlsZSBsaXN0IG5vdyBlbXB0eSIpCiAgICAgIGNhbGwgczpOZXRyd1VubWFya0xpc3QoY3VyYnVmbnIsY3VyZGlyKQogICAgIGVsc2UKICAgICAgIiByZWJ1aWxkIG1hdGNoIGxpc3QgdG8gZGlzcGxheSBtYXJraW5ncyBjb3JyZWN0bHkKQEAgLTM3NzYsOSArNDE1Niw5IEBACiAgICAgIGxldCBmaXJzdCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMQogICAgICBmb3IgZm5hbWUgaW4gczpuZXRyd21hcmtmaWxlbGlzdF97Y3VyYnVmbnJ9CiAgICAgICBpZiBmaXJzdAotICAgICAgIGxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn09IHM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfS4nXDwnLmVzY2FwZShmbmFtZSxnOm5ldHJ3X21hcmtmaWxlZXNjLiInIi5nOm5ldHJ3X21hcmtmaWxlZXNjLiInIikuJ1w+JworICAgICAgIGxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn09IHM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfS4nXDwnLmVzY2FwZShmbmFtZSxnOm5ldHJ3X21hcmtmaWxlZXNjLiInIi5nOm5ldHJ3X21hcmtmaWxlZXNjLiInIikudHJhaWxlcgogICAgICAgZWxzZQotICAgICAgIGxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn09IHM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfS4nXHxcPCcuZXNjYXBlKGZuYW1lLGc6bmV0cndfbWFya2ZpbGVlc2MuIiciLmc6bmV0cndfbWFya2ZpbGVlc2MuIiciKS4nXD4nCisgICAgICAgbGV0IHM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfT0gczpuZXRyd21hcmtmaWxlbXRjaF97Y3VyYnVmbnJ9LidcfFw8Jy5lc2NhcGUoZm5hbWUsZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIuZzpuZXRyd19tYXJrZmlsZWVzYy4iJyIpLnRyYWlsZXIKICAgICAgIGVuZGlmCiAgICAgICBsZXQgZmlyc3Q9IDAKICAgICAgZW5kZm9yCkBAIC0zNzk5LDcgKzQxNzksNyBAQAogICAgaWYgYTpmbmFtZSA9fiAnLyQnCiAgICAgbGV0IHM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfT0gJ1w8Jy5lc2NhcGUoYTpmbmFtZSxnOm5ldHJ3X21hcmtmaWxlZXNjKQogICAgZWxzZQotICAgIGxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn09ICdcPCcuZXNjYXBlKGE6Zm5hbWUsZzpuZXRyd19tYXJrZmlsZWVzYykuJ1w+JworICAgIGxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn09ICdcPCcuZXNjYXBlKGE6Zm5hbWUsZzpuZXRyd19tYXJrZmlsZWVzYykudHJhaWxlcgogICAgZW5kaWYKICIgICBjYWxsIERlY2hvKCJlbmRpbmcgczpuZXRyd21hcmtmaWxlbXRjaF8iLmN1cmJ1Zm5yLiI8Ii5zOm5ldHJ3bWFya2ZpbGVtdGNoX3tjdXJidWZucn0uIj4iKQogICBlbmRpZgpAQCAtMzgzMCw3ICs0MjEwLDkgQEAKICAgIiBzZXQgdXAgMm1hdGNoJ2luZyB0byBuZXRyd21hcmtmaWxlbXRjaCBsaXN0CiAgIGlmIGV4aXN0cygiczpuZXRyd21hcmtmaWxlbXRjaF97Y3VyYnVmbnJ9IikgJiYgczpuZXRyd21hcmtmaWxlbXRjaF97Y3VyYnVmbnJ9ICE9ICIiCiAiICAgY2FsbCBEZWNobygiZXhlIDJtYXRjaCBuZXRyd01hcmtGaWxlIC8iLnM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfS4iLyIpCi0gICBleGUgIjJtYXRjaCBuZXRyd01hcmtGaWxlIC8iLnM6bmV0cndtYXJrZmlsZW10Y2hfe2N1cmJ1Zm5yfS4iLyIKKyAgIGlmIGV4aXN0cygiZzpkaWRfZHJjaGlwX25ldHJ3bGlzdF9zeW50YXgiKQorICAgIGV4ZSAiMm1hdGNoIG5ldHJ3TWFya0ZpbGUgLyIuczpuZXRyd21hcmtmaWxlbXRjaF97Y3VyYnVmbnJ9LiIvIgorICAgZW5kaWYKICAgZWxzZQogIiAgIGNhbGwgRGVjaG8oIjJtYXRjaCBub25lIikKICAgIDJtYXRjaCBub25lCkBAIC0zODU4LDcgKzQyNDAsNyBAQAogICAgIGZvciBzZnggaW4gc29ydChrZXlzKGc6bmV0cndfZGVjb21wcmVzcykpCiAgICAgIGlmIGZuYW1lID1+ICdcJy5zZnguJyQnCiAgICAgICAiIGZuYW1lIGhhcyBhIHN1ZmZpeCBpbmRpY2F0aW5nIHRoYXQgaXRzIGNvbXByZXNzZWQ7IGFwcGx5IGFzc29jaWF0ZWQgZGVjb21wcmVzc2lvbiByb3V0aW5lCi0gICAgICBsZXQgZXhlPSBzOldpblBhdGgoZzpuZXRyd19kZWNvbXByZXNzW3NmeF0pCisgICAgICBsZXQgZXhlPSBuZXRydyNXaW5QYXRoKGc6bmV0cndfZGVjb21wcmVzc1tzZnhdKQogIiAgICAgIGNhbGwgRGVjaG8oImZuYW1lPCIuZm5hbWUuIj4gaXMgY29tcHJlc3NlZCBzbyBkZWNvbXByZXNzIHdpdGggPCIuZXhlLiI+IikKICAgICAgIGlmIGE6aXNsb2NhbAogICAgICAgIGlmIGc6bmV0cndfa2VlcGRpcgpAQCAtMzg4MywxMCArNDI2NSwxMCBAQAogICAgICB1bmxldCBleGUKICAgICBlbHNlaWYgYTppc2xvY2FsCiAgICAgICIgZm5hbWUgbm90IGEgY29tcHJlc3NlZCBmaWxlLCBzbyBjb21wcmVzcyBpdAotICAgICBjYWxsIHN5c3RlbShzOldpblBhdGgoZzpuZXRyd19jb21wcmVzcykuIiAiLnNoZWxsZXNjYXBlKHM6Q29tcG9zZVBhdGgoYjpuZXRyd19jdXJkaXIsZm5hbWUpKSkKKyAgICAgY2FsbCBzeXN0ZW0obmV0cncjV2luUGF0aChnOm5ldHJ3X2NvbXByZXNzKS4iICIuc2hlbGxlc2NhcGUoczpDb21wb3NlUGF0aChiOm5ldHJ3X2N1cmRpcixmbmFtZSkpKQogICAgIGVsc2UKICAgICAgIiBmbmFtZSBub3QgYSBjb21wcmVzc2VkIGZpbGUsIHNvIGNvbXByZXNzIGl0Ci0gICAgIGNhbGwgczpSZW1vdGVTeXN0ZW0oczpXaW5QYXRoKGc6bmV0cndfY29tcHJlc3MpLiIgIi5zaGVsbGVzY2FwZShmbmFtZSkpCisgICAgIGNhbGwgczpSZW1vdGVTeXN0ZW0obmV0cncjV2luUGF0aChnOm5ldHJ3X2NvbXByZXNzKS4iICIuc2hlbGxlc2NhcGUoZm5hbWUpKQogICAgIGVuZGlmCiAgICBlbmRmb3IKICAgIGNhbGwgczpOZXRyd1VubWFya0xpc3QoY3VyYnVmbnIsY3VyZGlyKQpAQCAtMzkyNyw3ICs0MzA5LDcgQEAKICIgICBjYWxsIERlY2hvKCJjb3B5IGZyb20gbG9jYWwgdG8gbG9jYWwiKQogICAgbGV0IGFyZ3M9IGpvaW4obWFwKGRlZXBjb3B5KHM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCclJyl9KSwic2hlbGxlc2NhcGUoYjpuZXRyd19jdXJkaXIuXCIvXCIudjp2YWwpIikpCiAiICAgY2FsbCBEZWNobygic3lzdGVtKCIuZzpuZXRyd19sb2NhbGNvcHljbWQuIiAiLmFyZ3MuIiAiLnNoZWxsZXNjYXBlKHM6bmV0cndtZnRndCkuIikiKQotICAgY2FsbCBzeXN0ZW0oczpXaW5QYXRoKGc6bmV0cndfbG9jYWxjb3B5Y21kKS4iICIuYXJncy4iICIuc2hlbGxlc2NhcGUoczpuZXRyd21mdGd0KSkKKyAgIGNhbGwgc3lzdGVtKG5ldHJ3I1dpblBhdGgoZzpuZXRyd19sb2NhbGNvcHljbWQpLiIgIi5hcmdzLiIgIi5zaGVsbGVzY2FwZShzOm5ldHJ3bWZ0Z3QpKQogCiAgIGVsc2VpZiAgYTppc2xvY2FsICYmICFzOm5ldHJ3bWZ0Z3RfaXNsb2NhbAogICAgIiBDb3B5IG1hcmtlZCBmaWxlcywgbG9jYWwgZGlyZWN0b3J5IHRvIHJlbW90ZSBkaXJlY3RvcnkKQEAgLTM5ODIsNyArNDM2NCw5IEBACiAgIGlmIGE6aXNsb2NhbAogICAgY2FsbCBzOk5ldHJ3UmVmcmVzaERpcihhOmlzbG9jYWwsYjpuZXRyd19jdXJkaXIpCiAgIGVuZGlmCi0gIGNhbGwgczpMb2NhbEJyb3dzZVNoZWxsQ21kUmVmcmVzaCgpCisgIGlmIGc6bmV0cndfZmFzdGJyb3dzZSA8PSAxCisgICBjYWxsIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKQorICBlbmRpZgogICAKICIgIGNhbGwgRHJldCgiczpOZXRyd01hcmtGaWxlQ29weSAxIikKICAgcmV0dXJuIDEKQEAgLTQwNjQsMTAgKzQ0NDgsMTAgQEAKICAgIGZvciBmbmFtZSBpbiBzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0KICAgICBpZiBhOmlzbG9jYWwKICAgICAgaWYgZzpuZXRyd19rZWVwZGlyCi0gICAgICBsZXQgZm5hbWU9IHNoZWxsZXNjYXBlKHM6V2luUGF0aChzOkNvbXBvc2VQYXRoKGN1cmRpcixmbmFtZSkpKQorICAgICAgbGV0IGZuYW1lPSBzaGVsbGVzY2FwZShuZXRydyNXaW5QYXRoKHM6Q29tcG9zZVBhdGgoY3VyZGlyLGZuYW1lKSkpCiAgICAgIGVuZGlmCiAgICAgZWxzZQotICAgICBsZXQgZm5hbWU9IHNoZWxsZXNjYXBlKHM6V2luUGF0aChiOm5ldHJ3X2N1cmRpci5mbmFtZSkpCisgICAgIGxldCBmbmFtZT0gc2hlbGxlc2NhcGUobmV0cncjV2luUGF0aChiOm5ldHJ3X2N1cmRpci5mbmFtZSkpCiAgICAgZW5kaWYKICAgICBpZiBjbWQgPX4gJyUnCiAgICAgIGxldCB4Y21kPSBzdWJzdGl0dXRlKGNtZCwnJScsZm5hbWUsJ2cnKQpAQCAtNDE4NSw3ICs0NTY5LDEzIEBACiAKICAgICIgdXNlIHZpbWdyZXAgZm9yIGJvdGggbG9jYWwgYW5kIHJlbW90ZQogIiAgIGNhbGwgRGVjaG8oImV4ZSB2aW1ncmVwIi5wYXQuIiAiLm5ldHJ3bWFya2ZpbGVsaXN0KQotICAgZXhlICJ2aW1ncmVwIi5wYXQuIiAiLm5ldHJ3bWFya2ZpbGVsaXN0CisgICB0cnkKKyAgICBleGUgIm5vYXV0b2NtZCB2aW1ncmVwIi5wYXQuIiAiLm5ldHJ3bWFya2ZpbGVsaXN0CisgICAgY2F0Y2ggL15WaW1cJSgoXGFcKylcKVw9OkU0ODAvCisgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCJubyBtYXRjaCB3aXRoIHBhdHRlcm48Ii5wYXR0ZXJuLiI+Iiw3NikKKyIgICAgIGNhbGwgRHJldCgiczpOZXRyd01hcmtGaWxlR3JlcCA6IHVuYWJsZSB0byBmaW5kIHBhdHRlcm48Ii5wYXR0ZXJuLiI+IikKKyAgICAgcmV0dXJuCisgICBlbmR0cnkKIAogICAgMm1hdGNoIG5vbmUKICAgIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbihzdnBvcykKQEAgLTQyOTAsNyArNDY4MCw5IEBACiAgIGlmIGE6aXNsb2NhbAogICAgY2FsbCBzOk5ldHJ3UmVmcmVzaERpcihhOmlzbG9jYWwsYjpuZXRyd19jdXJkaXIpCiAgIGVuZGlmCi0gIGNhbGwgczpMb2NhbEJyb3dzZVNoZWxsQ21kUmVmcmVzaCgpCisgIGlmIGc6bmV0cndfZmFzdGJyb3dzZSA8PSAxCisgICBjYWxsIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKQorICBlbmRpZgogICAKICIgIGNhbGwgRHJldCgiczpOZXRyd01hcmtGaWxlTW92ZSIpCiBlbmRmdW4KQEAgLTQzNDIsMjQgKzQ3MzQsMTUgQEAKICAgICIgZ2V0IHRoZSBtYXRjaGluZyBsaXN0IG9mIGZpbGVzIHVzaW5nIGxvY2FsIGdsb2IoKQogIiAgIGNhbGwgRGVjaG8oImhhbmRsZSBsb2NhbCByZWdleHAiKQogICAgbGV0IGRpcm5hbWUgID0gZXNjYXBlKGI6bmV0cndfY3VyZGlyLGc6bmV0cndfZ2xvYl9lc2NhcGUpCi0gICBsZXQgZmlsZWxpc3QgPSBnbG9iKHM6Q29tcG9zZVBhdGgoZGlybmFtZSxyZWdleHApKQotICAgaWYgZmlsZWxpc3QgIT0gIiIKLSAgICBsZXQgZmlsZWxpc3Q9IGZpbGVsaXN0LiJcbiIKLSAgIGVuZGlmCisgICBsZXQgZmlsZXMgPSBnbG9iKHM6Q29tcG9zZVBhdGgoZGlybmFtZSxyZWdleHApKQorIiAgIGNhbGwgRGVjaG8oImZpbGVzPCIuZmlsZXMuIj4iKQorICAgbGV0IGZpbGVsaXN0PSBzcGxpdChmaWxlcywiXG4iKQogCiAgICIgbWFyayB0aGUgbGlzdCBvZiBmaWxlcwotICB3aGlsZSBmaWxlbGlzdCAhPSAiIgotICAgaWYgZmlsZWxpc3QgPX4gJ1xuJwotICAgIGxldCBmaWxlbmFtZSA9IHN1YnN0aXR1dGUoZmlsZWxpc3QsJ1xuLiokJywnJywnZScpCi0gICAgbGV0IGZpbGVsaXN0ID0gc3Vic3RpdHV0ZShmaWxlbGlzdCwnXi5cey19XG5cKC4qXCkkJywnXDEnLCdlJykKLSAgIGVsc2UKLSAgICBsZXQgZmlsZW5hbWUgPSBmaWxlbGlzdAotICAgIGxldCBmaWxlbGlzdCA9ICIiCi0gICBlbmRpZgotIiAgIGNhbGwgRGVjaG8oImZpbGVsaXN0PCIuZmlsZWxpc3QuIj4iKQotIiAgIGNhbGwgRGVjaG8oImZpbGVuYW1lPCIuZmlsZW5hbWUuIj4iKQotICAgY2FsbCBzOk5ldHJ3TWFya0ZpbGUoYTppc2xvY2FsLHN1YnN0aXR1dGUoZmlsZW5hbWUsJ14uKi8nLCcnLCcnKSkKLSAgZW5kd2hpbGUKKyAgZm9yIGZuYW1lIGluIGZpbGVsaXN0CisiICAgY2FsbCBEZWNobygiZm5hbWU8Ii5mbmFtZS4iPiIpCisgICBjYWxsIHM6TmV0cndNYXJrRmlsZShhOmlzbG9jYWwsc3Vic3RpdHV0ZShmbmFtZSwnXi4qLycsJycsJycpKQorICBlbmRmb3IKIAogICBlbHNlCiAiICAgY2FsbCBEZWNobygiaGFuZGxlIHJlbW90ZSByZWdleHAiKQpAQCAtNDM3MSw3ICs0NzU0LDggQEAKICAgIHNldCBlaT1hbGwgbWEKICIgICBjYWxsIERlY2hvKCJzZXQgZWk9YWxsIG1hIikKICAgIDFzcGxpdAotICAgZW5ldworICAgY2FsbCBzOk5ldHJ3RW5ldygpCisgICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCiAgICBzaWxlbnQgbm9ybSEgImFwCiAgICAyCiAgICBsZXQgYmFubmVyY250PSBzZWFyY2goJ14iID09PT09JywnVycpCkBAIC00Mzc5LDE2ICs0NzYzLDIxIEBACiAgICBzZXQgYnQ9bm9maWxlCiAgICBpZiAgICAgZzpuZXRyd19saXN0c3R5bGUgPT0gczpMT05HTElTVAogICAgIHNpbGVudCAlcy9cc1x7Mix9XFMuKiQvL2UKKyAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgZWxzZWlmIGc6bmV0cndfbGlzdHN0eWxlID09IHM6V0lERUxJU1QKICAgICBzaWxlbnQgJXMvXHNcezIsfS9cci9nZQorICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBlbHNlaWYgZzpuZXRyd19saXN0c3R5bGUgPT0gczpUUkVFTElTVAogICAgIHNpbGVudCAlcy9efCAvL2UKICAgICBzaWxlbnQhIGcvXiAuKiQvZAorICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCisgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGVuZGlmCiAgICAiIGNvbnZlcnQgcmVnZXhwIGludG8gdGhlIG1vcmUgdXN1YWwgZ2xvYi1zdHlsZSBmb3JtYXQKICAgIGxldCByZWdleHA9IHN1YnN0aXR1dGUocmVnZXhwLCdcKicsJy4qJywnZycpCiAiICAgY2FsbCBEZWNobygicmVnZXhwPCIucmVnZXhwLiI+IikKICAgIGV4ZSAic2lsZW50ISB2LyIuZXNjYXBlKHJlZ2V4cCwnLycpLiIvZCIKKyAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBsZXQgZmlsZWxpc3Q9IGdldGxpbmUoMSxsaW5lKCIkIikpCiAgICBxIQogICAgZm9yIGZpbGVuYW1lIGluIGZpbGVsaXN0CkBAIC00NDU5LDYgKzQ4NDgsNyBAQAogICAgIGxldCBwYXRoPSBzdWJzdGl0dXRlKGN1cmRpciwnXlwoLipcKS9bXi9dKiQnLCdcMS8nLCcnKQogIiAgICBjYWxsIERlY2hvKCJjdXJkaXI8Ii5jdXJkaXIuIj4gcGF0aDwiLnBhdGguIj4iKQogICAgIGV4ZSAnJXMvXHRcKFxTXCtcKVx0L1x0Jy5lc2NhcGUocGF0aCwiL1xuXHJcXCIpLidcMVx0L2UnCisgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICB3cSEKICAgIGVuZGlmCiAgICAybWF0Y2ggbm9uZQpAQCAtNDUxOCw3ICs0OTA4LDcgQEAKICAgZW5kaWYKICAgbGV0IHM6bmV0cndtZnRndF9pc2xvY2FsPSBhOmlzbG9jYWwKIAotICBpZiBnOm5ldHJ3X2Zhc3Ricm93c2UgPiAwCisgIGlmIGc6bmV0cndfZmFzdGJyb3dzZSA8PSAxCiAgICBjYWxsIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKQogICBlbmRpZgogICBjYWxsIHM6TmV0cndSZWZyZXNoKGE6aXNsb2NhbCxzOk5ldHJ3QnJvd3NlQ2hnRGlyKGE6aXNsb2NhbCwnLi8nKSkKQEAgLTQ2NTMsMjAgKzUwNDMsMTcgQEAKICIgICAgY2FsbCBEZWNobygiaW5pdGlhbGl6ZSBtZW51IikKICAgICBsZXQgczpuZXRyd19tZW51X2VuYWJsZWQ9IDEKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xICAgICAnLmc6TmV0cndUb3BMdmxNZW51LidIZWxwPHRhYj48RjE+CTxGMT4nCi0gICAgY2FsbCBzOk5ldHJ3Qm9va21hcmtNZW51KCkgIiBwcm92aWRlIHNvbWUgaGlzdG9yeSEgIHVzZXMgcHJpb3JpdGllcyAyLDMsIHJlc2VydmVzIDQKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy41ICAgICAnLmc6TmV0cndUb3BMdmxNZW51LictU2VwMS0JOicKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy42ICAgICAnLmc6TmV0cndUb3BMdmxNZW51LidHb1wgVXBcIERpcmVjdG9yeTx0YWI+LQktJwogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjcgICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0FwcGx5XCBTcGVjaWFsXCBWaWV3ZXI8dGFiPngJeCcKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy44LjEgICAnLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Cb29rbWFya1wgQ3VycmVudFwgRGlyZWN0b3J5PHRhYj5tYgltYicKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy44LjIgICAnLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Cb29rbWFya1wgRGVsZXRlPHRhYj5tQgltQicKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy44LjMgICAnLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Hb3RvXCBCb29rbWFyazx0YWI+Z2IJZ2InCiAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOC40ICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQm9va21hcmtzXCBhbmRcIEhpc3RvcnkuR290b1wgUHJldlwgRGlyXCAoSGlzdG9yeSk8dGFiPnUJdScKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy44LjUgICAnLmc6TmV0cndUb3BMdmxNZW51LidCb29rbWFya3NcIGFuZFwgSGlzdG9yeS5Hb3RvXCBOZXh0XCBEaXJcIChIaXN0b3J5KTx0YWI+VQlVJwogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjguNiAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jvb2ttYXJrc1wgYW5kXCBIaXN0b3J5Lkxpc3Q8dGFiPnFiCXFiJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuMSAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLkVkaXRcIEZpbGVcIEhpZGluZ1wgTGlzdDx0YWI+Jy4iPGN0cmwtaD4JXDxQbHVnPk5ldHJ3SGlkZUVkaXQiCisgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOS4xICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQnJvd3NpbmdcIENvbnRyb2wuRWRpdFwgRmlsZVwgSGlkaW5nXCBMaXN0PHRhYj48Y3RybC1oPicuIglcPGMtaD4nIgogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuMiAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLkVkaXRcIFNvcnRpbmdcIFNlcXVlbmNlPHRhYj5TCVMnCiAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuOS4zICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nQnJvd3NpbmdcIENvbnRyb2wuUXVpY2tcIEhpZGUvVW5oaWRlXCBEb3RcIEZpbGVzPHRhYj4nLiJnaAlnaCIKLSAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy45LjQgICAnLmc6TmV0cndUb3BMdmxNZW51LidCcm93c2luZ1wgQ29udHJvbC5SZWZyZXNoXCBMaXN0aW5nPHRhYj4nLiI8Y3RybC1sPglcPFBsdWc+TmV0cndSZWZyZXNoIgorICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjkuNCAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0Jyb3dzaW5nXCBDb250cm9sLlJlZnJlc2hcIExpc3Rpbmc8dGFiPicuIjxjdHJsLWw+CVw8Yy1sPiIKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy45LjUgICAnLmc6TmV0cndUb3BMdmxNZW51LidCcm93c2luZ1wgQ29udHJvbC5TZXR0aW5ncy9PcHRpb25zPHRhYj46TmV0cndTZXR0aW5ncwknLiI6TmV0cndTZXR0aW5nc1w8Y3I+IgogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEwICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0RlbGV0ZVwgRmlsZS9EaXJlY3Rvcnk8dGFiPkQJRCcKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMS4xICAnLmc6TmV0cndUb3BMdmxNZW51LidFZGl0XCBGaWxlL0Rpci5JblwgQ3VycmVudFwgV2luZG93PHRhYj48Y3I+CScuIlw8Y3I+IgpAQCAtNDY3Nyw4ICs1MDY0LDggQEAKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xMi4xICAnLmc6TmV0cndUb3BMdmxNZW51LidFeHBsb3JlLkRpcmVjdG9yeVwgTmFtZQk6RXhwbG9yZSAnCiAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuMiAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlbmFtZXNcIE1hdGNoaW5nXCBQYXR0ZXJuXCAoY3VyZGlyXCBvbmx5KTx0YWI+OkV4cGxvcmVcICovCTpFeHBsb3JlICovJwogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjIgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuRmlsZW5hbWVzXCBNYXRjaGluZ1wgUGF0dGVyblwgKCtzdWJkaXJzKTx0YWI+OkV4cGxvcmVcICoqLwk6RXhwbG9yZSAqKi8nCi0gICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuMyAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlc1wgQ29udGFpbmluZ1wgUGF0dGVyblwgKGN1cmRpclwgb25seSk8dGFiPjpFeHBsb3JlXCAqLy8JOkV4cGxvcmUgKi8vJwotICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuRmlsZXNcIENvbnRhaW5pbmdcIFBhdHRlcm5cICgrc3ViZGlycyk8dGFiPjpFeHBsb3JlXCAqKi8vCTpFeHBsb3JlICoqLy8nCisgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuMyAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlc1wgQ29udGFpbmluZ1wgU3RyaW5nXCBQYXR0ZXJuXCAoY3VyZGlyXCBvbmx5KTx0YWI+OkV4cGxvcmVcICovLwk6RXhwbG9yZSAqLy8nCisgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTIuNCAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nRXhwbG9yZS5GaWxlc1wgQ29udGFpbmluZ1wgU3RyaW5nXCBQYXR0ZXJuXCAoK3N1YmRpcnMpPHRhYj46RXhwbG9yZVwgKiovLwk6RXhwbG9yZSAqKi8vJwogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuTmV4dFwgTWF0Y2g8dGFiPjpOZXhwbG9yZQk6TmV4cGxvcmU8Y3I+JwogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEyLjQgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ0V4cGxvcmUuUHJldlwgTWF0Y2g8dGFiPjpQZXhwbG9yZQk6UGV4cGxvcmU8Y3I+JwogICAgIGV4ZSAnc2lsZW50ISBtZW51ICcuZzpOZXRyd01lbnVQcmlvcml0eS4nLjEzICAgICcuZzpOZXRyd1RvcEx2bE1lbnUuJ01ha2VcIFN1YmRpcmVjdG9yeTx0YWI+ZAlkJwpAQCAtNDcwNCw2ICs1MDkxLDcgQEAKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNi40ICAnLmc6TmV0cndUb3BMdmxNZW51LidTdHlsZS5Tb3J0aW5nXCBNZXRob2RcIChuYW1lLXRpbWUtc2l6ZSk8dGFiPnMJcycKICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuJy4xNyAgICAnLmc6TmV0cndUb3BMdmxNZW51LidSZW5hbWVcIEZpbGUvRGlyZWN0b3J5PHRhYj5SCVInCiAgICAgZXhlICdzaWxlbnQhIG1lbnUgJy5nOk5ldHJ3TWVudVByaW9yaXR5LicuMTggICAgJy5nOk5ldHJ3VG9wTHZsTWVudS4nU2V0XCBDdXJyZW50XCBEaXJlY3Rvcnk8dGFiPmMJYycKKyAgICBjYWxsIHM6TmV0cndCb29rbWFya01lbnUoKSAiIHByb3ZpZGUgc29tZSBoaXN0b3J5ISAgdXNlcyBwcmlvcml0aWVzIDIsMywgcmVzZXJ2ZXMgNCwgOC4yLngKICAgICBsZXQgczpuZXRyd19tZW51Y250PSAyOAogCiAgICBlbHNlaWYgIWE6ZG9tZW51CkBAIC00NzMxLDggKzUxMTksOCBAQAogIiAgY2FsbCBEZnVuYygiTmV0cndPYnRhaW4oaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSIpCiAKICAgaWYgZXhpc3RzKCJzOm5ldHJ3bWFya2ZpbGVsaXN0X3tidWZucignJScpfSIpCi0gICBsZXQgaXNsb2NhbD0gczpuZXRyd21hcmtmaWxlbGlzdF97YnVmbnIoIiUiKX1bMV0gIX4gJ15cYVwrOi8vJwotICAgY2FsbCBuZXRydyNOZXRyd09idGFpbihpc2xvY2FsLHM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCIlIil9KQorICAgbGV0IGlzbG9jYWw9IHM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCclJyl9WzFdICF+ICdeXGFcKzovLycKKyAgIGNhbGwgbmV0cncjTmV0cndPYnRhaW4oaXNsb2NhbCxzOm5ldHJ3bWFya2ZpbGVsaXN0X3tidWZucignJScpfSkKICAgIGNhbGwgczpOZXRyd1VubWFya0xpc3QoYnVmbnIoJyUnKSxiOm5ldHJ3X2N1cmRpcikKICAgZWxzZQogICAgY2FsbCBuZXRydyNOZXRyd09idGFpbihhOmlzbG9jYWwsZXhwYW5kKCI8Y1dPUkQ+IikpCkBAIC00NzY5LDcgKzUxNTcsNyBAQAogICBlbmRpZgogIiAgY2FsbCBEZWNobygidGd0ZGlyPCIudGd0ZGlyLiI+IikKIAotICBpZiBiOm5ldHJ3X2lzbG9jYWwKKyAgaWYgZXhpc3RzKCJiOm5ldHJ3X2lzbG9jYWwiKSAmJiBiOm5ldHJ3X2lzbG9jYWwKICAgICIgb2J0YWluIGEgZmlsZSBmcm9tIGxvY2FsIGI6bmV0cndfY3VyZGlyIHRvIChsb2NhbCkgdGd0ZGlyCiAiICAgY2FsbCBEZWNobygib2J0YWluIGEgZmlsZSBmcm9tIGxvY2FsICIuYjpuZXRyd19jdXJkaXIuIiB0byAiLnRndGRpcikKICAgIGlmIGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKSAmJiBnZXRjd2QoKSAhPSBiOm5ldHJ3X2N1cmRpcgpAQCAtNDkyMSw2ICs1MzA5LDE0IEBACiAgICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsZ2V0bGluZSgxKSw1KQogICAgICBlbmRpZgogICAgIGVuZGlmCisgICBlbHNlaWYgIWV4aXN0cygiYjpuZXRyd19tZXRob2QiKSB8fCBiOm5ldHJ3X21ldGhvZCA8IDAKKyIgICAgY2FsbCBEZnVuYygibmV0cncjTmV0cndPYnRhaW4gOiB1bnN1cHBvcnRlZCBtZXRob2QiKQorICAgIHJldHVybgorICAgZW5kaWYKKworICAgIiByZXN0b3JlIHN0YXR1cyBsaW5lCisgICBpZiB0eXBlKGE6Zm5hbWUpID09IDEgJiYgZXhpc3RzKCJzOm5ldHJ3X3VzZXJzX3N0bCIpCisgICAgY2FsbCBzOlNldHVwTmV0cndTdGF0dXNMaW5lKHM6bmV0cndfdXNlcnNfc3RsKQogICAgZW5kaWYKIAogICBlbmRpZgpAQCAtNDk4OSw4ICs1Mzg1LDggQEAKICAgICBsZXQgJmVpPSBlaWtlZXAKICIgICAgY2FsbCBEZWNobygiYm5yPSIuYm5yLiIgYm5yY250PSIuYm5yY250LiIgYnVmdHlwZT0iLiZidC4iIHdpbm5yIyIud2lubnIoKSkKICAgICBpZiBibnJjbnQgPT0gMQotICAgICBsZXQgYnVmbmFtZT0gYnVmbmFtZSh3aW5idWZucih3aW5ucigpKSkKLSAgICAgbGV0IGNob2ljZT0gY29uZmlybSgiU2F2ZSBtb2RpZmllZCBmaWxlPCIuYnVmbmFtZS4iPj8iLCImWWVzXG4mTm9cbiZDYW5jZWwiKQorICAgICBsZXQgYnVmbmFtZSA9IGJ1Zm5hbWUod2luYnVmbnIod2lubnIoKSkpCisgICAgIGxldCBjaG9pY2UgID0gY29uZmlybSgiU2F2ZSBtb2RpZmllZCBmaWxlPCIuYnVmbmFtZS4iPj8iLCImWWVzXG4mTm9cbiZDYW5jZWwiKQogIiAgICAgY2FsbCBEZWNobygiYnVmbmFtZTwiLmJ1Zm5hbWUuIj4gY2hvaWNlPSIuY2hvaWNlLiIgd2lubnIjIi53aW5ucigpKQogCiAgICAgIGlmIGNob2ljZSA9PSAxCkBAIC01MTM4LDYgKzU1MzQsNyBAQAogICAgICBlbmRpZgogICAgICAiIElmIHRoZSByZXN1bHQgb2YgdGhlIGZ0cCBvcGVyYXRpb24gaXNuJ3QgYmxhbmssIHNob3cgYW4gZXJyb3IgbWVzc2FnZSAodG54IHRvIERvdWcgQ2xhYXIpCiAgICAgIHNpbGVudCBnL0xvY2FsIGRpcmVjdG9yeSBub3cvZAorICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgICBpZiBnZXRsaW5lKDEpICF+ICJeJCIgJiYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpICYmIGdldGxpbmUoMSkgIX4gJ15UcnlpbmcgJwogICAgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOkVSUk9SLGdldGxpbmUoMSksMTQpCiAgICAgIGVsc2UKQEAgLTUxOTYsNiArNTU5Myw3IEBACiAgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAtbiIKICAgICAgIiBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdHAgb3BlcmF0aW9uIGlzbid0IGJsYW5rLCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgKHRueCB0byBEb3VnIENsYWFyKQogICAgICBzaWxlbnQgZy9Mb2NhbCBkaXJlY3Rvcnkgbm93L2QKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICAgaWYgZ2V0bGluZSgxKSAhfiAiXiQiICYmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKSAmJiBnZXRsaW5lKDEpICF+ICdeVHJ5aW5nICcKICAgICAgIGxldCBkZWJ1Z2tlZXA9ICZkZWJ1ZwogICAgICAgc2V0bG9jYWwgZGVidWc9bXNnCkBAIC01MjA1LDYgKzU2MDMsOSBAQAogICAgICBlbHNlCiAgICAgICBidyF8cQogICAgICBlbmRpZgorICAgIGVsc2VpZiAhZXhpc3RzKCJiOm5ldHJ3X21ldGhvZCIpIHx8IGI6bmV0cndfbWV0aG9kIDwgMAorIiAgICAgY2FsbCBEZnVuYygibmV0cncjTmV0cndVcGxvYWQgOiB1bnN1cHBvcnRlZCBtZXRob2QiKQorICAgICByZXR1cm4KICAgICBlbmRpZgogICAgZWxzZQogICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpFUlJPUiwiY2FuJ3Qgb2J0YWluIGZpbGVzIHdpdGggcHJvdG9jb2wgZnJvbTwiLmE6dGd0LiI+Iiw2MykKQEAgLTUzMjUsMTMgKzU3MjYsMTIgQEAKICAgICBsZXQgc2VxICAgICA9IHNlcWxpc3QKICAgICBsZXQgc2VxbGlzdCA9ICIiCiAgICBlbmRpZgotICAgbGV0IHNlcGNocj0gIlw8Q2hhci0weGZmPiIKICAgIGlmIHByaW9yaXR5IDwgMTAKLSAgICBsZXQgc3ByaW9yaXR5PSAiMDAiLnByaW9yaXR5LnNlcGNocgorICAgIGxldCBzcHJpb3JpdHk9ICIwMCIucHJpb3JpdHkuZzpuZXRyd19zZXBjaHIKICAgIGVsc2VpZiBwcmlvcml0eSA8IDEwMAotICAgIGxldCBzcHJpb3JpdHk9ICIwIi5wcmlvcml0eS5zZXBjaHIKKyAgICBsZXQgc3ByaW9yaXR5PSAiMCIucHJpb3JpdHkuZzpuZXRyd19zZXBjaHIKICAgIGVsc2UKLSAgICBsZXQgc3ByaW9yaXR5PSBwcmlvcml0eS5zZXBjaHIKKyAgICBsZXQgc3ByaW9yaXR5PSBwcmlvcml0eS5nOm5ldHJ3X3NlcGNocgogICAgZW5kaWYKICIgICBjYWxsIERlY2hvKCJwcmlvcml0eT0iLnByaW9yaXR5LiIgc3ByaW9yaXR5PCIuc3ByaW9yaXR5LiI+IHNlcTwiLnNlcS4iPiBzZXFsaXN0PCIuc2VxbGlzdC4iPiIpCiAKQEAgLTUzNDUsMTQgKzU3NDUsMTcgQEAKICAgICBsZXQgc3RhcnByaW9yaXR5PSBzcHJpb3JpdHkKICAgIGVsc2UKICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRnLycuc2VxLicvcy9eLycuc3ByaW9yaXR5LicvJworICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICAgIiBzb21ldGltZXMgbXVsdGlwbGUgc29ydGluZyBwYXR0ZXJucyB3aWxsIG1hdGNoIHRoZSBzYW1lIGZpbGUgb3IgZGlyZWN0b3J5LgogICAgICIgVGhlIGZvbGxvd2luZyBzdWJzdGl0dXRlIGlzIGludGVuZGVkIHRvIHJlbW92ZSB0aGUgZXhjZXNzIG1hdGNoZXMuCi0gICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkZy9eXGRcezN9Jy5zZXBjaHIuJ1xkXHszfVwvL3MvXlxkXHszfScuc2VwY2hyLidcKFxkXHszfVwvXCkuXEA9L1wxL2UnCisgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkZy9eXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nXGRcezN9XC8vcy9eXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nXChcZFx7M31cL1wpLlxAPS9cMS9lJworICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBlbmRpZgogICAgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHkgKyAxCiAgIGVuZHdoaWxlCiAgIGlmIGV4aXN0cygic3RhcnByaW9yaXR5IikKLSAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHYvXlxkXHszfScuc2VwY2hyLicvcy9eLycuc3RhcnByaW9yaXR5LicvJworICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkdi9eXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nL3MvXi8nLnN0YXJwcmlvcml0eS4nLycKKyAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgIGVuZGlmCiAKICAgIiBGb2xsb3dpbmcgbGluZSBhc3NvY2lhdGVkIHdpdGggcHJpb3JpdHkgLS0gaXRlbXMgdGhhdCBzYXRpc2Z5IGEgcHJpb3JpdHkKQEAgLTUzNjEsNyArNTc2NCw4IEBACiAgICIgcHJpb3JpdHkgcGF0dGVybiBuZWVkcyB0byBiZSByZXRhaW5lZC4gIFNvLCBhdCB0aGlzIHBvaW50LCB0aGVzZSBleGNlc3MKICAgIiBwcmlvcml0eSBwcmVmaXhlcyBuZWVkIHRvIGJlIHJlbW92ZWQsIGJ1dCBub3QgZGlyZWN0b3JpZXMgdGhhdCBoYXBwZW4gdG8KICAgIiBiZSBqdXN0IGRpZ2l0cyB0aGVtc2VsdmVzLgotICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cKFxkXHszfScuc2VwY2hyLidcKVwlKFxkXHszfScuc2VwY2hyLidcKVwrXHplLi9cMS9lJworICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cKFxkXHszfScuZzpuZXRyd19zZXBjaHIuJ1wpXCUoXGRcezN9Jy5nOm5ldHJ3X3NlcGNoci4nXClcK1x6ZS4vXDEvZScKKyAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKIAogIiAgY2FsbCBEcmV0KCJTZXRTb3J0IikKIGVuZGZ1bgpAQCAtNTQwNSwxMiArNTgwOSwxMiBAQAogCiAgIGVsc2VpZiBhOm1vZGUgPT0gMQogICAgIiByZW1vdGUgYW5kIHQKLSAgIGxldCBjdXJzb3J3b3JkICA9IHM6TmV0cndHZXRXb3JkKCkKKyAgIGxldCBuZXdkaXIgID0gczpOZXRyd0Jyb3dzZUNoZ0RpcigwLHM6TmV0cndHZXRXb3JkKCkpCiAiICAgY2FsbCBEZWNobygidGFibmV3IikKICAgIHRhYm5ldwogICAgbGV0IHM6ZGlkc3BsaXQ9IDEKICAgIGNhbGwgczpSZXN0b3JlV2luVmFycygpCi0gICBjYWxsIHM6TmV0cndCcm93c2UoMCxzOk5ldHJ3QnJvd3NlQ2hnRGlyKDAsY3Vyc29yd29yZCkpCisgICBjYWxsIHM6TmV0cndCcm93c2UoMCxuZXdkaXIpCiAgICB1bmxldCBzOmRpZHNwbGl0CiAKICAgZWxzZWlmIGE6bW9kZSA9PSAyCkBAIC01NDMzLDggKzU4MzcsOCBAQAogCiAgIGVsc2VpZiBhOm1vZGUgPT0gNAogICAgIiBsb2NhbCBhbmQgdAotICAgbGV0IG5ldHJ3X2N1cmRpcj0gYjpuZXRyd19jdXJkaXIKICAgIGxldCBjdXJzb3J3b3JkICA9IHM6TmV0cndHZXRXb3JkKCkKKyAgIGxldCBuZXRyd19jdXJkaXI9IHM6TmV0cndUcmVlRGlyKCkKICIgICBjYWxsIERlY2hvKCJ0YWJuZXciKQogICAgdGFibmV3CiAgICBsZXQgYjpuZXRyd19jdXJkaXI9IG5ldHJ3X2N1cmRpcgpAQCAtNTUwNSwxMiArNTkwOSwxMyBAQAogICBpZiB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOlRSRUVMSVNUCiAiICAgY2FsbCBEZWNobygidzpuZXRycndfbGlzdHN0eWxlIGlzIFRSRUVMSVNUOiIpCiAiICAgY2FsbCBEZWNobygibGluZSMiLmxpbmUoIi4iKS4iIGdldGxpbmUoLik8Ii5nZXRsaW5lKCcuJykuIj4gdHJlZWN1cnBvczwiLnN0cmluZyhzOnRyZWVjdXJwb3MpLiI+IikKKworICAgIiBleHRyYWN0IHRyZWUgZGlyZWN0b3J5IGlmIG9uIGEgbGluZSBzcGVjaWZ5aW5nIGEgc3ViZGlyZWN0b3J5IChpZS4gZW5kcyB3aXRoICIvIikKICAgIGlmIGdldGxpbmUoJy4nKSA9fiAnLyQnCiAgICAgbGV0IHRyZWVkaXI9IHN1YnN0aXR1dGUoZ2V0bGluZSgnLicpLCdeXCUofCBcKSpcKFtefF0uXHstfVwpJCcsJ1wxJywnZScpCiAgICBlbHNlCiAgICAgbGV0IHRyZWVkaXI9ICIiCiAgICBlbmRpZgotCiAiICAgY2FsbCBEZWNobygidHJlZWRpcjwiLnRyZWVkaXIuIj4iKQogCiAgICAiIGRldGVjdCB1c2VyIGF0dGVtcHRpbmcgdG8gY2xvc2UgdHJlZXJvb3QKQEAgLTU1MjUsMTEgKzU5MzAsMTEgQEAKIAogICAgIiBlbGlkZSBhbGwgbm9uLWRlcHRoIGluZm9ybWF0aW9uCiAgICBsZXQgZGVwdGggPSBzdWJzdGl0dXRlKGdldGxpbmUoJy4nKSwnXlwoXCUofCBcKSpcKVtefF0uXHstfSQnLCdcMScsJ2UnKQotIiAgIGNhbGwgRGVjaG8oImRlcHRoPCIuZGVwdGguIj4gMXN0IHN1YnN0IikKKyIgICBjYWxsIERlY2hvKCJkZXB0aDwiLmRlcHRoLiI+IDFzdCBzdWJzdCAobm9uLWRlcHRoIGluZm8gcmVtb3ZlZCkiKQogCiAgICAiIGVsaWRlIGZpcnN0IGRlcHRoCiAgICBsZXQgZGVwdGggPSBzdWJzdGl0dXRlKGRlcHRoLCdefCAnLCcnLCcnKQotIiAgIGNhbGwgRGVjaG8oImRlcHRoPCIuZGVwdGguIj4gMm5kIHN1YnN0IikKKyIgICBjYWxsIERlY2hvKCJkZXB0aDwiLmRlcHRoLiI+IDJuZCBzdWJzdCAoZmlyc3QgZGVwdGggcmVtb3ZlZCkiKQogCiAgICAiIGNvbnN0cnVjdCB0cmVlZGlyIGJ5IHNlYXJjaGluZyBiYWNrd2FyZHMgYXQgY29ycmVjdCBkZXB0aAogIiAgIGNhbGwgRGVjaG8oImNvbnN0cnVjdGluZyB0cmVlZGlyPCIudHJlZWRpci4iPiBkZXB0aDwiLmRlcHRoLiI+IikKQEAgLTU1NDgsMTEgKzU5NTMsNiBAQAogICBlbmRpZgogICBsZXQgdHJlZWRpcj0gc3Vic3RpdHV0ZSh0cmVlZGlyLCcvLyQnLCcvJywnJykKIAotIiAgIiBub3cgZm9yY2UgYSByZWZyZXNoCi0iIiBjYWxsIERFQ0hPKCJjbGVhciBidWZmZXI8Ii5leHBhbmQoIiUiKS4iPiB3aXRoIDolZCIpCi0iICBzZXRsb2NhbCBtYSBub3JvCi0iICBrZWVwanVtcHMgJWQKLQogIiAgY2FsbCBEcmV0KCJOZXRyd1RyZWVEaXIgPCIudHJlZWRpci4iPiA6IChzaWRlIGVmZmVjdCkgczp0cmVlY3VycG9zPCIuc3RyaW5nKHM6dHJlZWN1cnBvcykuIj4iKQogICByZXR1cm4gdHJlZWRpcgogZW5kZnVuCkBAIC01NjYzLDMwICs2MDYzLDMyIEBACiAgIGlmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6V0lERUxJU1QKICIgICBjYWxsIERmdW5jKCJOZXRyd1dpZGVMaXN0aW5nKCkgdzpuZXRyd19saXN0c3R5bGU9Ii53Om5ldHJ3X2xpc3RzdHlsZS4nIGZvPScuJmZvLicgbDpmbz0nLiZsOmZvKQogICAgIiBsb29rIGZvciBsb25nZXN0IGZpbGVuYW1lIChjcGY9Y2hhcmFjdGVycyBwZXIgZmlsZW5hbWUpCi0gICAiIGNwZjogY2hhcmFjdGVycyBwZXIgZmlsZQotICAgIiBmcGw6IGZpbGVzIHBlciBsaW5lCi0gICAiIGZwYzogZmlsZXMgcGVyIGNvbHVtbgorICAgIiBjcGY6IGNoYXJhY3RlcnMgcGVyIGZpbGVuYW1lCisgICAiIGZwbDogZmlsZW5hbWVzIHBlciBsaW5lCisgICAiIGZwYzogZmlsZW5hbWVzIHBlciBjb2x1bW4KICAgIHNldGxvY2FsIG1hIG5vcm8KICIgICBjYWxsIERlY2hvKCJzZXRsb2NhbCBtYSBub3JvIikKICAgIGxldCBiOm5ldHJ3X2NwZj0gMAogICAgaWYgbGluZSgiJCIpID49IHc6bmV0cndfYmFubmVyY250CiAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkZy9eLi9pZiB2aXJ0Y29sKCIkIikgPiBiOm5ldHJ3X2NwZnxsZXQgYjpuZXRyd19jcGY9IHZpcnRjb2woIiQiKXxlbmRpZicKKyAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgZWxzZQogIiAgICBjYWxsIERyZXQoIk5ldHJ3V2lkZUxpc3RpbmciKQogICAgIHJldHVybgogICAgZW5kaWYKLSIgICBjYWxsIERlY2hvKCJtYXggZmlsZSBzdHJsZW4rMT0iLmI6bmV0cndfY3BmKQotICAgbGV0IGI6bmV0cndfY3BmPSBiOm5ldHJ3X2NwZiArIDEKKyAgIGxldCBiOm5ldHJ3X2NwZj0gYjpuZXRyd19jcGYgKyAyCisiICAgY2FsbCBEZWNobygiYjpuZXRyd19jcGY9bWF4X2ZpbGVuYW1lX2xlbmd0aCsyPSIuYjpuZXRyd19jcGYpCiAKICAgICIgZGV0ZXJtaW5lIHF0eSBmaWxlcyBwZXIgbGluZSAoZnBsKQogICAgbGV0IHc6bmV0cndfZnBsPSB3aW53aWR0aCgwKS9iOm5ldHJ3X2NwZgogICAgaWYgdzpuZXRyd19mcGwgPD0gMAogICAgIGxldCB3Om5ldHJ3X2ZwbD0gMQogICAgZW5kaWYKLSIgICBjYWxsIERlY2hvKCJmcGw9ICIud2lud2lkdGgoMCkuIi9bYjpuZXRyd19jcGY9Ii5iOm5ldHJ3X2NwZi4nXT0nLnc6bmV0cndfZnBsKQorIiAgIGNhbGwgRGVjaG8oImZwbD0gW3dpbndpZHRoPSIud2lud2lkdGgoMCkuIl0vW2I6bmV0cndfY3BmPSIuYjpuZXRyd19jcGYuJ109Jy53Om5ldHJ3X2ZwbCkKIAogICAgIiBtYWtlIHdpZGUgZGlzcGxheQogICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eLiokL1w9ZXNjYXBlKHByaW50ZigiJS0nLmI6bmV0cndfY3BmLidzIixzdWJtYXRjaCgwKSksIlxcIikvJworICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGxldCBmcGMgICAgICAgICA9IChsaW5lKCIkIikgLSB3Om5ldHJ3X2Jhbm5lcmNudCArIHc6bmV0cndfZnBsKS93Om5ldHJ3X2ZwbAogICAgbGV0IG5ld2NvbHN0YXJ0ID0gdzpuZXRyd19iYW5uZXJjbnQgKyBmcGMKICAgIGxldCBuZXdjb2xlbmQgICA9IG5ld2NvbHN0YXJ0ICsgZnBjIC0gMQpAQCAtNTcwNiw2ICs2MTA4LDcgQEAKICAgIGVuZHdoaWxlCiAgICBzaWxlbnQhIGxldCBAKj0ga2VlcHJlZ3N0YXIKICAgIGV4ZSAic2lsZW50IGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LicsJHMvXHNcKyQvL2UnCisgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgc2V0bG9jYWwgbm9tYSBub21vZCBybwogIiAgIGNhbGwgRHJldCgiTmV0cndXaWRlTGlzdGluZyIpCiAgIGVuZGlmCkBAIC01NzMzLDE2ICs2MTM2LDIxIEBACiAgIGVuZGlmCiAKICAgIiBzYXZlIGN1cnJlbnQgZGlyZWN0b3J5IG9uIGRpcmVjdG9yeSBoaXN0b3J5IGxpc3QKLSAgY2FsbCBzOk5ldHJ3Qm9va21hcmtEaXIoMyxiOm5ldHJ3X2N1cmRpcikKKyAgY2FsbCBzOk5ldHJ3Qm9va0hpc3RIYW5kbGVyKDMsYjpuZXRyd19jdXJkaXIpCiAKICAgIiBTZXQgdXAgdGhlIGJhbm5lciB7e3szCi0iICBjYWxsIERlY2hvKCJzZXQgdXAgYmFubmVyIikKLSAga2VlcGp1bXBzIHB1dCA9J1wiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nCi0gIGtlZXBqdW1wcyBwdXQgPSdcIiBOZXRydyBEaXJlY3RvcnkgTGlzdGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV0cncgJy5nOmxvYWRlZF9uZXRydy4nKScKLSAga2VlcGp1bXBzIHB1dCA9J1wiICAgJy5iOm5ldHJ3X2N1cmRpcgotICBrZWVwanVtcHMgMWQKLSAgbGV0IHc6bmV0cndfYmFubmVyY250PSAzCi0gIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKKyAgaWYgZzpuZXRyd19iYW5uZXIKKyIgICBjYWxsIERlY2hvKCJzZXQgdXAgYmFubmVyIikKKyAgIGtlZXBqdW1wcyBwdXQgPSdcIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09JworICAga2VlcGp1bXBzIHB1dCA9J1wiIE5ldHJ3IERpcmVjdG9yeSBMaXN0aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXRydyAnLmc6bG9hZGVkX25ldHJ3LicpJworICAga2VlcGp1bXBzIHB1dCA9J1wiICAgJy5iOm5ldHJ3X2N1cmRpcgorICAga2VlcGp1bXBzIDFkCisgICBsZXQgdzpuZXRyd19iYW5uZXJjbnQ9IDMKKyAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKKyAgZWxzZQorICAga2VlcGp1bXBzIDEKKyAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gMQorICBlbmRpZgogCiAgIGxldCBzb3J0Ynk9IGc6bmV0cndfc29ydF9ieQogICBpZiBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uID1+ICJeciIKQEAgLTU3NTAsNTUgKzYxNTgsNjMgQEAKICAgZW5kaWYKIAogICAiIFNvcnRlZCBieS4uLiB7e3szCi0iICBjYWxsIERlY2hvKCJoYW5kbGUgc3BlY2lmaWVkIHNvcnRpbmc6IGc6bmV0cndfc29ydF9ieTwiLmc6bmV0cndfc29ydF9ieS4iPiIpCi0gIGlmIGc6bmV0cndfc29ydF9ieSA9fiAiXm4iCisgIGlmIGc6bmV0cndfYmFubmVyCisiICAgY2FsbCBEZWNobygiaGFuZGxlIHNwZWNpZmllZCBzb3J0aW5nOiBnOm5ldHJ3X3NvcnRfYnk8Ii5nOm5ldHJ3X3NvcnRfYnkuIj4iKQorICAgaWYgZzpuZXRyd19zb3J0X2J5ID1+ICJebiIKICIgICBjYWxsIERlY2hvKCJkaXJlY3RvcmllcyB3aWxsIGJlIHNvcnRlZCBieSBuYW1lIikKLSAgICIgc29ydGVkIGJ5IG5hbWUKLSAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNvcnRlZCBieSAgICAgICcuc29ydGJ5Ci0gICBrZWVwanVtcHMgcHV0ID0nXCIgICBTb3J0IHNlcXVlbmNlOiAnLmc6bmV0cndfc29ydF9zZXF1ZW5jZQotICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDIKLSAgZWxzZQorICAgICIgc29ydGVkIGJ5IG5hbWUKKyAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBTb3J0ZWQgYnkgICAgICAnLnNvcnRieQorICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNvcnQgc2VxdWVuY2U6ICcuZzpuZXRyd19zb3J0X3NlcXVlbmNlCisgICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDIKKyAgIGVsc2UKICIgICBjYWxsIERlY2hvKCJkaXJlY3RvcmllcyB3aWxsIGJlIHNvcnRlZCBieSBzaXplIG9yIHRpbWUiKQotICAgIiBzb3J0ZWQgYnkgc2l6ZSBvciBkYXRlCi0gICBrZWVwanVtcHMgcHV0ID0nXCIgICBTb3J0ZWQgYnkgJy5zb3J0YnkKLSAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gdzpuZXRyd19iYW5uZXJjbnQgKyAxCisgICAgIiBzb3J0ZWQgYnkgc2l6ZSBvciBkYXRlCisgICAga2VlcGp1bXBzIHB1dCA9J1wiICAgU29ydGVkIGJ5ICcuc29ydGJ5CisgICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDEKKyAgIGVuZGlmCisgICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CiAgIGVuZGlmCi0gIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKIAogICAiIHNob3cgY29weS9tb3ZlIHRhcmdldCwgaWYgYW55Ci0gIGlmIGV4aXN0cygiczpuZXRyd21mdGd0IikgJiYgZXhpc3RzKCJzOm5ldHJ3bWZ0Z3RfaXNsb2NhbCIpCi0iICAgY2FsbCBEZWNobygic2hvdyBjb3B5L21vdmUgdGFyZ2V0PCIuczpuZXRyd21mdGd0LiI+IikKLSAgIGtlZXBqdW1wcyBwdXQgPScnCi0gICBpZiBzOm5ldHJ3bWZ0Z3RfaXNsb2NhbAotICAgIGNhbGwgc2V0bGluZShsaW5lKCIuIiksJyIgICBDb3B5L01vdmUgVGd0OiAnLnM6bmV0cndtZnRndC4nIChsb2NhbCknKQorICBpZiBnOm5ldHJ3X2Jhbm5lcgorICAgaWYgZXhpc3RzKCJzOm5ldHJ3bWZ0Z3QiKSAmJiBleGlzdHMoInM6bmV0cndtZnRndF9pc2xvY2FsIikKKyIgICAgY2FsbCBEZWNobygic2hvdyBjb3B5L21vdmUgdGFyZ2V0PCIuczpuZXRyd21mdGd0LiI+IikKKyAgICBrZWVwanVtcHMgcHV0ID0nJworICAgIGlmIHM6bmV0cndtZnRndF9pc2xvY2FsCisgICAgIGNhbGwgc2V0bGluZShsaW5lKCIuIiksJyIgICBDb3B5L01vdmUgVGd0OiAnLnM6bmV0cndtZnRndC4nIChsb2NhbCknKQorICAgIGVsc2UKKyAgICAgY2FsbCBzZXRsaW5lKGxpbmUoIi4iKSwnIiAgIENvcHkvTW92ZSBUZ3Q6ICcuczpuZXRyd21mdGd0LicgKHJlbW90ZSknKQorICAgIGVuZGlmCisgICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDEKICAgIGVsc2UKLSAgICBjYWxsIHNldGxpbmUobGluZSgiLiIpLCciICAgQ29weS9Nb3ZlIFRndDogJy5zOm5ldHJ3bWZ0Z3QuJyAocmVtb3RlKScpCisiICAgIGNhbGwgRGVjaG8oInM6bmV0cndtZnRndCBkb2VzIG5vdCBleGlzdCwgZG9uJ3QgbWFrZSBDb3B5L01vdmUgVGd0IikKICAgIGVuZGlmCi0gICBsZXQgdzpuZXRyd19iYW5uZXJjbnQ9IHc6bmV0cndfYmFubmVyY250ICsgMQotICBlbHNlCi0iICAgY2FsbCBEZWNobygiczpuZXRyd21mdGd0IGRvZXMgbm90IGV4aXN0LCBkb24ndCBtYWtlIENvcHkvTW92ZSBUZ3QiKQorICAgZXhlICJrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudAogICBlbmRpZgotICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CiAKICAgIiBIaWRpbmcuLi4gIC1vci0gIFNob3dpbmcuLi4ge3t7MwotIiAgY2FsbCBEZWNobygiaGFuZGxlIGhpZGluZy9zaG93aW5nIChnOm5ldHJ3X2hpZGU9Ii5nOm5ldHJ3X2xpc3RfaGlkZS4iIGc6bmV0cndfbGlzdF9oaWRlPCIuZzpuZXRyd19saXN0X2hpZGUuIj4pIikKLSAgaWYgZzpuZXRyd19saXN0X2hpZGUgIT0gIiIgJiYgZzpuZXRyd19oaWRlCi0gICBpZiBnOm5ldHJ3X2hpZGUgPT0gMQotICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIEhpZGluZzogICAgICAgICcuZzpuZXRyd19saXN0X2hpZGUKLSAgIGVsc2UKLSAgICBrZWVwanVtcHMgcHV0ID0nXCIgICBTaG93aW5nOiAgICAgICAnLmc6bmV0cndfbGlzdF9oaWRlCisgIGlmIGc6bmV0cndfYmFubmVyCisiICAgY2FsbCBEZWNobygiaGFuZGxlIGhpZGluZy9zaG93aW5nIChnOm5ldHJ3X2hpZGU9Ii5nOm5ldHJ3X2xpc3RfaGlkZS4iIGc6bmV0cndfbGlzdF9oaWRlPCIuZzpuZXRyd19saXN0X2hpZGUuIj4pIikKKyAgIGlmIGc6bmV0cndfbGlzdF9oaWRlICE9ICIiICYmIGc6bmV0cndfaGlkZQorICAgIGlmIGc6bmV0cndfaGlkZSA9PSAxCisgICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIEhpZGluZzogICAgICAgICcuZzpuZXRyd19saXN0X2hpZGUKKyAgICBlbHNlCisgICAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFNob3dpbmc6ICAgICAgICcuZzpuZXRyd19saXN0X2hpZGUKKyAgICBlbmRpZgorICAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gdzpuZXRyd19iYW5uZXJjbnQgKyAxCiAgICBlbmRpZgotICAgbGV0IHc6bmV0cndfYmFubmVyY250PSB3Om5ldHJ3X2Jhbm5lcmNudCArIDEKKyAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKKyAgIGtlZXBqdW1wcyBwdXQgPSdcIiAgIFF1aWNrIEhlbHA6IDxGMT46aGVscCAgLTpnbyB1cCBkaXIgIEQ6ZGVsZXRlICBSOnJlbmFtZSAgczpzb3J0LWJ5ICB4OmV4ZWMnCisgICBrZWVwanVtcHMgcHV0ID0nXCIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScKKyAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gdzpuZXRyd19iYW5uZXJjbnQgKyAyCiAgIGVuZGlmCi0gIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQKLSAga2VlcGp1bXBzIHB1dCA9J1wiICAgUXVpY2sgSGVscDogPEYxPjpoZWxwICAtOmdvIHVwIGRpciAgRDpkZWxldGUgIFI6cmVuYW1lICBzOnNvcnQtYnkgIHg6ZXhlYycKLSAga2VlcGp1bXBzIHB1dCA9J1wiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nCi0gIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gdzpuZXRyd19iYW5uZXJjbnQgKyAyCiAKICAgIiBiYW5uZXJjbnQgc2hvdWxkIGluZGV4IHRoZSBsaW5lIGp1c3QgYWZ0ZXIgdGhlIGJhbm5lcgotICBsZXQgdzpuZXRyd19iYW5uZXJjbnQ9IHc6bmV0cndfYmFubmVyY250ICsgMQotICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250Ci0iICBjYWxsIERlY2hvKCJiYW5uZXJjbnQ9Ii53Om5ldHJ3X2Jhbm5lcmNudC4iIChzaG91bGQgaW5kZXggbGluZSBqdXN0IGFmdGVyIGJhbm5lcikgbGluZSgkKT0iLmxpbmUoIiQiKSkKKyAgaWYgZzpuZXRyd19iYW5uZXIKKyAgIGxldCB3Om5ldHJ3X2Jhbm5lcmNudD0gdzpuZXRyd19iYW5uZXJjbnQgKyAxCisgICBleGUgImtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250CisiICAgY2FsbCBEZWNobygiYmFubmVyY250PSIudzpuZXRyd19iYW5uZXJjbnQuIiAoc2hvdWxkIGluZGV4IGxpbmUganVzdCBhZnRlciBiYW5uZXIpIGxpbmUoJCk9Ii5saW5lKCIkIikpCisgIGVuZGlmCiAKICAgIiBzZXQgdXAgc3ludGF4IGhpZ2hsaWdodGluZyB7e3szCiAiICBjYWxsIERlY2hvKCJzZXQgdXAgc3ludGF4IGhpZ2hsaWdodGluZyIpCkBAIC01ODE2LDIzICs2MjMyLDIzIEBACiAgIGVsc2UgIiByZW1vdGUKICAgIGNhbGwgczpOZXRyd1JlbW90ZUxpc3RpbmcoKQogICBlbmRpZgotIiAgY2FsbCBEZWNobygidzpuZXRyd19iYW5uZXJjbnQ9Ii53Om5ldHJ3X2Jhbm5lcmNudC4iIChiYW5uZXIgY29tcGxldGUpIikKKyIgIGNhbGwgRGVjaG8oImc6bmV0cndfYmFubmVyPSIuZzpuZXRyd19iYW5uZXIuIiB3Om5ldHJ3X2Jhbm5lcmNudD0iLnc6bmV0cndfYmFubmVyY250LiIgKGJhbm5lciBjb21wbGV0ZSkiKQogCiAgICIgbWFuaXB1bGF0ZSB0aGUgZGlyZWN0b3J5IGxpc3RpbmcgKGhpZGUsIHNvcnQpIHt7ezMKLSAgaWYgbGluZSgiJCIpID49IHc6bmV0cndfYmFubmVyY250CisgIGlmICFnOm5ldHJ3X2Jhbm5lciB8fCBsaW5lKCIkIikgPj0gdzpuZXRyd19iYW5uZXJjbnQKICIgICBjYWxsIERlY2hvKCJtYW5pcHVsYXRlIGRpcmVjdG9yeSBsaXN0aW5nIChoaWRlKSIpCiAiICAgY2FsbCBEZWNobygiZzpuZXRyd19oaWRlPSIuZzpuZXRyd19oaWRlLiIgZzpuZXRyd19saXN0X2hpZGU8Ii5nOm5ldHJ3X2xpc3RfaGlkZS4iPiIpCiAgICBpZiBnOm5ldHJ3X2hpZGUgJiYgZzpuZXRyd19saXN0X2hpZGUgIT0gIiIKICAgICBjYWxsIHM6TmV0cndMaXN0SGlkZSgpCiAgICBlbmRpZgotICAgaWYgbGluZSgiJCIpID49IHc6bmV0cndfYmFubmVyY250CisgICBpZiAhZzpuZXRyd19iYW5uZXIgfHwgbGluZSgiJCIpID49IHc6bmV0cndfYmFubmVyY250CiAiICAgIGNhbGwgRGVjaG8oIm1hbmlwdWxhdGUgZGlyZWN0b3J5IGxpc3RpbmcgKHNvcnQpIDogZzpuZXRyd19zb3J0X2J5PCIuZzpuZXRyd19zb3J0X2J5LiI+IikKIAogICAgIGlmIGc6bmV0cndfc29ydF9ieSA9fiAiXm4iCiAgICAgICIgc29ydCBieSBuYW1lCiAgICAgIGNhbGwgczpOZXRyd1NldFNvcnQoKQogCi0gICAgIGlmIHc6bmV0cndfYmFubmVyY250IDwgbGluZSgiJCIpCisgICAgIGlmICFnOm5ldHJ3X2Jhbm5lciB8fCB3Om5ldHJ3X2Jhbm5lcmNudCA8IGxpbmUoIiQiKQogIiAgICAgIGNhbGwgRGVjaG8oImc6bmV0cndfc29ydF9kaXJlY3Rpb249Ii5nOm5ldHJ3X3NvcnRfZGlyZWN0aW9uLiIgKGJhbm5lcmNudD0iLnc6bmV0cndfYmFubmVyY250LiIpIikKICAgICAgIGlmIGc6bmV0cndfc29ydF9kaXJlY3Rpb24gPX4gJ24nCiAgICAgICAgIiBub3JtYWwgZGlyZWN0aW9uIHNvcnRpbmcKQEAgLTU4NDQsMTEgKzYyNjAsMTEgQEAKICAgICAgZW5kaWYKICAgICAgIiByZW1vdmUgcHJpb3JpdHkgcGF0dGVybiBwcmVmaXgKICIgICAgIGNhbGwgRGVjaG8oInJlbW92ZSBwcmlvcml0eSBwYXR0ZXJuIHByZWZpeCIpCi0gICAgIGxldCBzZXBjaHI9ICJcPENoYXItMHhmZj4iCi0gICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlxkXHszfScuc2VwY2hyLicvL2UnCisgICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlxkXHszfScuZzpuZXRyd19zZXBjaHIuJy8vZScKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKIAogICAgIGVsc2VpZiBhOmlzbG9jYWwKLSAgICAgaWYgdzpuZXRyd19iYW5uZXJjbnQgPCBsaW5lKCIkIikKKyAgICAgaWYgIWc6bmV0cndfYmFubmVyIHx8IHc6bmV0cndfYmFubmVyY250IDwgbGluZSgiJCIpCiAiICAgICAgY2FsbCBEZWNobygiZzpuZXRyd19zb3J0X2RpcmVjdGlvbj0iLmc6bmV0cndfc29ydF9kaXJlY3Rpb24pCiAgICAgICBpZiBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uID1+ICduJwogIiAgICAgICBjYWxsIERlY2hvKCdleGUgc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQnKQpAQCAtNTg1NywxMyArNjI3MywxNyBAQAogIiAgICAgICBjYWxsIERlY2hvKCdleGUgc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQhJykKICAgICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0IScuJyAnLmc6bmV0cndfc29ydF9vcHRpb25zCiAgICAgICBlbmRpZgotICAgICBlbmRpZgogICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cZFx7LX1cLy8vZScKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKKyAgICAgZW5kaWYKICAgICBlbmRpZgogCiAgICBlbHNlaWYgZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAncicKICIgICAgY2FsbCBEZWNobygncmV2ZXJzZSB0aGUgc29ydGVkIGxpc3RpbmcnKQotICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LidnL14vbSAnLnc6bmV0cndfYmFubmVyY250CisgICAgaWYgIWc6bmV0cndfYmFubmVyIHx8IHc6bmV0cndfYmFubmVyY250IDwgbGluZSgnJCcpCisgICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJGcvXi9tICcudzpuZXRyd19iYW5uZXJjbnQKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKKyAgICBlbmRpZgogICAgZW5kaWYKICAgZW5kaWYKIApAQCAtNTg3Miw3ICs2MjkyLDcgQEAKICAgY2FsbCBzOk5ldHJ3V2lkZUxpc3RpbmcoKQogICBjYWxsIHM6TmV0cndUcmVlTGlzdGluZyhiOm5ldHJ3X2N1cmRpcikKIAotICBpZiBleGlzdHMoInc6bmV0cndfYmFubmVyY250IikgJiYgbGluZSgiJCIpID4gdzpuZXRyd19iYW5uZXJjbnQKKyAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2Jhbm5lcmNudCIpICYmIChsaW5lKCIkIikgPiB3Om5ldHJ3X2Jhbm5lcmNudCB8fCAhZzpuZXRyd19iYW5uZXIpCiAgICAiIHBsYWNlIGN1cnNvciBvbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBmaWxlIGxpc3RpbmcKICIgICBjYWxsIERlY2hvKCJwbGFjZSBjdXJzb3Igb24gdG9wLWxlZnQgY29ybmVyIG9mIGZpbGUgbGlzdGluZyIpCiAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudApAQCAtNjAwNiw4ICs2NDI2LDEwIEBACiAgICAgIiBjbGVhbnVwCiAgICAgaWYgZzpuZXRyd19mdHBfYnJvd3NlX3JlamVjdCAhPSAiIgogICAgICBleGUgInNpbGVudCEgZy8iLmc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QuIi9rZWVwanVtcHMgZCIKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBlbmRpZgogICAgIHNpbGVudCEga2VlcGp1bXBzICVzL1xyJC8vZQorICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAKICAgICAiIGlmIHRoZXJlJ3Mgbm8gLi4vIGxpc3RlZCwgdGhlbiBwdXQgLi8gYW5kIC4uLyBpbgogICAgIGxldCBsaW5lMT0gbGluZSgiLiIpCkBAIC02MDI1LDExICs2NDQ3LDE1IEBACiAgICAgaWYgc2VhcmNoKCdeXGRcezJ9LVxkXHsyfS1cZFx7Mn1ccycsJ24nKSAiIE0kIGZ0cCBzaXRlIGNsZWFudXAKICIgICAgIGNhbGwgRGVjaG8oIk0kIGZ0cCBjbGVhbnVwIikKICAgICAgZXhlICdzaWxlbnQhIGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHMvXlxkXHsyfS1cZFx7Mn0tXGRcezJ9XHNcK1xkXCs6XGRcK1tBYVBwXVtNbV1cc1wrXCUoPERJUj5cfFxkXCtcKVxzXCsvLycKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBlbHNlICIgbm9ybWFsIGZ0cCBjbGVhbnVwCiAiICAgICBjYWxsIERlY2hvKCJub3JtYWwgZnRwIGNsZWFudXAiKQogICAgICBleGUgJ3NpbGVudCEga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXChcJShcU1wrXHNcK1wpXHs3fVxTXCtcKVxzXCtcKFxTLipcKSQvXDIvZScKICAgICAgZXhlICJzaWxlbnQhIGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LicsJGcvIC0+IC9zIyAtPiAuKi8kIy8jZScKICAgICAgZXhlICJzaWxlbnQhIGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LicsJGcvIC0+IC9zIyAtPiAuKiQjLyNlJworICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQorICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQorICAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgIGVuZGlmCiAgICBlbmRpZgogCkBAIC02MDQ1LDggKzY0NzEsMTIgQEAKICAgICBnL15MaXN0aW5nIGRpcmVjdG9yeS9kCiAgICAgZy9eZFstcnd4XVstcnd4XVstcnd4XS9zKyQrLytlCiAgICAgc2lsZW50IGcvXmxbLXJ3eF1bLXJ3eF1bLXJ3eF0vcyskK0ArZQorICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCisgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKKyAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgIGlmIGc6bmV0cndfbGlzdHN0eWxlICE9IHM6TE9OR0xJU1QKICAgICAgZy9eW2Rsc3AtXVstcnd4XVstcnd4XVstcnd4XS9zL14uKlxzXChcU1wrXCkkL1wxL2UKKyAgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgICBlbmRpZgogICAgZWxzZQogICAgIGlmIHM6cGF0aCA9PSAiIgpAQCAtNjA2Myw2ICs2NDkzLDcgQEAKICAgIGlmIGc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QgIT0gIiIKICIgICAgY2FsbCBEZWNobygiKGNsZWFudXApIGV4ZSBzaWxlbnQhIGcvIi5nOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0LiIva2VlcGp1bXBzIGQiKQogICAgIGV4ZSAic2lsZW50ISBnLyIuZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdC4iL2tlZXBqdW1wcyBkIgorICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBlbmRpZgogICBlbmRpZgogCkBAIC02MDk5LDYgKzY1MzAsOSBAQAogICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHMvIC0+IC4qJC8vZScKICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzL15cKFwlKFxTXCtcc1wrXClcezd9XFNcK1wpXHNcK1woXFMuKlwpJC9cMlx0XDEvZScKICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudAorICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCisgICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKKyAgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQogICAgZW5kaWYKICAgZW5kaWYKIApAQCAtNjExOCw2ICs2NTUyLDcgQEAKICAgbGV0IGFsbD0gMAogICBpZiBleGlzdHMoInM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCclJyl9IikKICAgICIgcmVtb3ZlIGFsbCBtYXJrZWQgZmlsZXMKKyIgICBjYWxsIERlY2hvKCJyZW1vdmUgYWxsIG1hcmtlZCBmaWxlcyB3aXRoIGJ1Zm5yIyIuYnVmbnIoIiUiKSkKICAgIGZvciBmbmFtZSBpbiBzOm5ldHJ3bWFya2ZpbGVsaXN0X3tidWZucigiJSIpfQogICAgIGxldCBvaz0gczpOZXRyd1JlbW90ZVJtRmlsZShhOnBhdGgsZm5hbWUsYWxsKQogICAgIGlmIG9rID1+ICdxXCVbdWl0XScKQEAgLTYxMjYsMTIgKzY1NjEsMTEgQEAKICAgICAgbGV0IGFsbD0gMQogICAgIGVuZGlmCiAgICBlbmRmb3IKLSAgIHVubGV0IHM6bmV0cndtYXJrZmlsZWxpc3Rfe2J1Zm5yKCIlIil9Ci0gICB1bmxldCBzOm5ldHJ3bWFya2ZpbGVtdGNoX3tidWZucigiJSIpfQotICAgMm1hdGNoIG5vbmUKKyAgIGNhbGwgczpOZXRyd1VubWFya0xpc3QoYnVmbnIoIiUiKSxiOm5ldHJ3X2N1cmRpcikKIAogICBlbHNlCiAgICAiIHJlbW92ZSBmaWxlcyBzcGVjaWZpZWQgYnkgcmFuZ2UKKyIgICBjYWxsIERlY2hvKCJyZW1vdmUgZmlsZXMgc3BlY2lmaWVkIGJ5IHJhbmdlIikKIAogICAgIiBwcmVwYXJhdGlvbiBmb3IgcmVtb3ZpbmcgbXVsdGlwbGUgZmlsZXMvZGlyZWN0b3JpZXMKICAgIGxldCBjdHI9IGE6Zmlyc3RsaW5lCkBAIC02MjQ1LDE0ICs2Njc5LDE0IEBACiAgICAgIGNhbGwgczpOZXRyd1JlbW90ZUZ0cENtZChhOnBhdGgsInJtZGlyICIuYTpybWZpbGUpCiAgICAgZWxzZQogICAgICBsZXQgcm1maWxlICAgICAgICAgID0gc3Vic3RpdHV0ZShhOnBhdGguYTpybWZpbGUsJy8kJywnJywnJykKLSAgICAgbGV0IG5ldHJ3X3JtZGlyX2NtZCA9IHM6TWFrZVNzaENtZChzOldpblBhdGgoZzpuZXRyd19ybWRpcl9jbWQpKS4nICcuc2hlbGxlc2NhcGUoczpXaW5QYXRoKHJtZmlsZSkpCisgICAgIGxldCBuZXRyd19ybWRpcl9jbWQgPSBzOk1ha2VTc2hDbWQobmV0cncjV2luUGF0aChnOm5ldHJ3X3JtZGlyX2NtZCkpLicgJy5zaGVsbGVzY2FwZShuZXRydyNXaW5QYXRoKHJtZmlsZSkpCiAiICAgICAgY2FsbCBEZWNobygiYXR0ZW1wdCB0byByZW1vdmUgZGlyOiBzeXN0ZW0oIi5uZXRyd19ybWRpcl9jbWQuIikiKQogICAgICBsZXQgcmV0PSBzeXN0ZW0obmV0cndfcm1kaXJfY21kKQogIiAgICAgIGNhbGwgRGVjaG8oInJldHVybmVkPSIucmV0LiIgZXJyY29kZT0iLnY6c2hlbGxfZXJyb3IpCiAKICAgICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwCiAiICAgICAgY2FsbCBEZWNobygidjpzaGVsbF9lcnJvciBub3QgMCIpCi0gICAgICBsZXQgbmV0cndfcm1mX2NtZD0gczpNYWtlU3NoQ21kKHM6V2luUGF0aChnOm5ldHJ3X3JtZl9jbWQpKS4nICcuc2hlbGxlc2NhcGUoczpXaW5QYXRoKHN1YnN0aXR1dGUocm1maWxlLCdbXC9dJCcsJycsJ2UnKSkpCisgICAgICBsZXQgbmV0cndfcm1mX2NtZD0gczpNYWtlU3NoQ21kKG5ldHJ3I1dpblBhdGgoZzpuZXRyd19ybWZfY21kKSkuJyAnLnNoZWxsZXNjYXBlKG5ldHJ3I1dpblBhdGgoc3Vic3RpdHV0ZShybWZpbGUsJ1tcL10kJywnJywnZScpKSkKICIgICAgICBjYWxsIERlY2hvKCIybmQgYXR0ZW1wdCB0byByZW1vdmUgZGlyOiBzeXN0ZW0oIi5uZXRyd19ybWZfY21kLiIpIikKICAgICAgIGxldCByZXQ9IHN5c3RlbShuZXRyd19ybWZfY21kKQogIiAgICAgIGNhbGwgRGVjaG8oInJldHVybmVkPSIucmV0LiIgZXJyY29kZT0iLnY6c2hlbGxfZXJyb3IpCkBAIC02MzUzLDEzICs2Nzg3LDE3IEBACiAgICIgY2xlYW51cCBmb3IgV2luZG93cwogICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKICAgIHNpbGVudCEga2VlcGp1bXBzICVzL1xyJC8vZQorICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgZW5kaWYKICAgaWYgYTpsaXN0Y21kID09ICJkaXIiCiAgICAiIGluZmVyIGRpcmVjdG9yeS9saW5rIGJhc2VkIG9uIHRoZSBmaWxlIHBlcm1pc3Npb24gc3RyaW5nCiAgICBzaWxlbnQhIGtlZXBqdW1wcyBnL2RcJShbLXJdWy13XVsteF1cKVx7M30vc0AkQC9ACiAgICBzaWxlbnQhIGtlZXBqdW1wcyBnL2xcJShbLXJdWy13XVsteF1cKVx7M30vcy8kL0AvCisgICBjYWxsIGhpc3RkZWwoIi8iLC0xKQorICAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgIGlmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VEhJTkxJU1QgfHwgdzpuZXRyd19saXN0c3R5bGUgPT0gczpXSURFTElTVCB8fCB3Om5ldHJ3X2xpc3RzdHlsZSA9PSBzOlRSRUVMSVNUCiAgICAgZXhlICJzaWxlbnQhIGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LicsJHMvXlwlKFxTXCtcc1wrXClcezh9Ly9lJworICAgIGNhbGwgaGlzdGRlbCgiLyIsLTEpCiAgICBlbmRpZgogICBlbmRpZgogCkBAIC02NDEyLDggKzY4NTAsOCBAQAogICAgIGVsc2UKICAgICAgbGV0IG9sZG5hbWU9IHNoZWxsZXNjYXBlKGE6cGF0aC5vbGRuYW1lKQogICAgICBsZXQgbmV3bmFtZT0gc2hlbGxlc2NhcGUoYTpwYXRoLm5ld25hbWUpCi0iICAgICBjYWxsIERlY2hvKCJzeXN0ZW0oczpXaW5QYXRoKCIucmVuYW1lX2NtZC4iKSAiLm9sZG5hbWUuJyAnLm5ld25hbWUuIikiKQotICAgICBsZXQgcmV0ICAgID0gc3lzdGVtKHM6V2luUGF0aChyZW5hbWVfY21kKS4nICcub2xkbmFtZS4nICcubmV3bmFtZSkKKyIgICAgIGNhbGwgRGVjaG8oInN5c3RlbShuZXRydyNXaW5QYXRoKCIucmVuYW1lX2NtZC4iKSAiLm9sZG5hbWUuJyAnLm5ld25hbWUuIikiKQorICAgICBsZXQgcmV0ICAgID0gc3lzdGVtKG5ldHJ3I1dpblBhdGgocmVuYW1lX2NtZCkuJyAnLm9sZG5hbWUuJyAnLm5ld25hbWUpCiAgICAgZW5kaWYKIAogICAgZW5kZm9yCkBAIC02NDM3LDggKzY4NzUsOCBAQAogICAgIGVsc2UKICAgICAgbGV0IG9sZG5hbWU9IHNoZWxsZXNjYXBlKGE6cGF0aC5vbGRuYW1lKQogICAgICBsZXQgbmV3bmFtZT0gc2hlbGxlc2NhcGUoYTpwYXRoLm5ld25hbWUpCi0iICAgICBjYWxsIERlY2hvKCJzeXN0ZW0oczpXaW5QYXRoKCIucmVuYW1lX2NtZC4iKSAiLm9sZG5hbWUuJyAnLm5ld25hbWUuIikiKQotICAgICBsZXQgcmV0ICAgID0gc3lzdGVtKHM6V2luUGF0aChyZW5hbWVfY21kKS4nICcub2xkbmFtZS4nICcubmV3bmFtZSkKKyIgICAgIGNhbGwgRGVjaG8oInN5c3RlbShuZXRydyNXaW5QYXRoKCIucmVuYW1lX2NtZC4iKSAiLm9sZG5hbWUuJyAnLm5ld25hbWUuIikiKQorICAgICBsZXQgcmV0ICAgID0gc3lzdGVtKG5ldHJ3I1dpblBhdGgocmVuYW1lX2NtZCkuJyAnLm9sZG5hbWUuJyAnLm5ld25hbWUpCiAgICAgZW5kaWYKIAogICAgIGxldCBjdHI9IGN0ciArIDEKQEAgLTY0NjYsMTMgKzY5MDQsMTYgQEAKICAgIiBUaGUgJmZ0ID09ICJuZXRydyIgdGVzdCB3YXMgaW5zdGFsbGVkIGJlY2F1c2UgdGhlIEJ1ZkVudGVyIGV2ZW50CiAgICIgd291bGQgaGl0IHdoZW4gcmUtZW50ZXJpbmcgbmV0cncgd2luZG93cywgY3JlYXRpbmcgdW5leHBlY3RlZAogICAiIHJlZnJlc2hlcyAoYW5kIHdvdWxkIGRvIHNvIGluIHRoZSBtaWRkbGUgb2YgTmV0cndTYXZlT3B0aW9ucygpLCB0b28pCi0iICBjYWxsIERlY2hvKCJuZXRydyNMb2NhbEJyb3dzZUNoZWNrOiBpc2RpcjwiLmE6ZGlybmFtZS4iPj0iLmlzZGlyZWN0b3J5KGE6ZGlybmFtZSkpCisiICBjYWxsIERlY2hvKCJuZXRydyNMb2NhbEJyb3dzZUNoZWNrOiBpc2RpcjwiLmE6ZGlybmFtZS4iPj0iLmlzZGlyZWN0b3J5KGE6ZGlybmFtZSkuKChleGlzdHMoInM6dHJlZWZvcmNlcmVkcmF3Iik/ICIgdHJlZWZvcmNlcmVkcmF3IiA6ICIiKSkpCiAgIGlmIGlzZGlyZWN0b3J5KGE6ZGlybmFtZSkKICIgICBjYWxsIERlY2hvKCIgZnQ8Ii4mZnQuIj4gYjpuZXRyd19jdXJkaXI8Ii4oZXhpc3RzKCJiOm5ldHJ3X2N1cmRpciIpPyBiOm5ldHJ3X2N1cmRpciA6ICIgZG9lc24ndCBleGlzdCIpLiI+IGRpcm5hbWU8Ii5hOmRpcm5hbWUuIj4iLiIgbGluZSgkKT0iLmxpbmUoIiQiKSkKICAgIGlmICZmdCAhPSAibmV0cnciIHx8IChleGlzdHMoImI6bmV0cndfY3VyZGlyIikgJiYgYjpuZXRyd19jdXJkaXIgIT0gYTpkaXJuYW1lKQogICAgIHNpbGVudCEgY2FsbCBzOk5ldHJ3QnJvd3NlKDEsYTpkaXJuYW1lKQogICAgZWxzZWlmICZmdCA9PSAibmV0cnciICYmIGxpbmUoIiQiKSA9PSAxCiAgICAgc2lsZW50ISBjYWxsIHM6TmV0cndCcm93c2UoMSxhOmRpcm5hbWUpCisgICBlbHNlaWYgZXhpc3RzKCJzOnRyZWVmb3JjZXJlZHJhdyIpCisgICAgdW5sZXQgczp0cmVlZm9yY2VyZWRyYXcKKyAgICBzaWxlbnQhIGNhbGwgczpOZXRyd0Jyb3dzZSgxLGE6ZGlybmFtZSkKICAgIGVuZGlmCiAgIGVuZGlmCiAgICIgbm90IGEgZGlyZWN0b3J5LCBpZ25vcmUgaXQKQEAgLTY0OTIsNyArNjkzMyw3IEBACiAKICAgIiBnZXQgdGhlIGxpc3Qgb2YgZmlsZXMgY29udGFpbmVkIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeQogICBsZXQgZGlybmFtZSAgICA9IGVzY2FwZShiOm5ldHJ3X2N1cmRpcixnOm5ldHJ3X2dsb2JfZXNjYXBlKQotICBsZXQgZGlybmFtZWxlbiA9IHN0cmxlbihiOm5ldHJ3X2N1cmRpcikKKyAgbGV0IGRpcm5hbWVsZW4gPSBzOlN0cmxlbihiOm5ldHJ3X2N1cmRpcikKICAgbGV0IGZpbGVsaXN0ICAgPSBnbG9iKHM6Q29tcG9zZVBhdGgoZGlybmFtZSwiKiIpKQogIiAgY2FsbCBEZWNobygiZ2xvYihkaXJuYW1lPCIuZGlybmFtZS4iLyo+KT0iLmZpbGVsaXN0KQogICBpZiBmaWxlbGlzdCAhPSAiIgpAQCAtNjYwOCw3ICs3MDQ5LDcgQEAKIAogICAgaWYgdzpuZXRyd19saXN0c3R5bGUgPT0gczpMT05HTElTVAogICAgIGxldCBzeiAgID0gZ2V0ZnNpemUoZmlsZW5hbWUpCi0gICAgbGV0IGZzeiAgPSBzdHJwYXJ0KCIgICAgICAgICAgICAgICAiLDEsMTUtczpTdHJsZW4oc3opKS5zegorICAgIGxldCBmc3ogID0gc3RycGFydCgiICAgICAgICAgICAgICAgIiwxLDE1LXN0cmxlbihzeikpLnN6CiAgICAgbGV0IHBmaWxlPSBwZmlsZS4iXHQiLmZzei4iICIuc3RyZnRpbWUoZzpuZXRyd190aW1lZm10LGdldGZ0aW1lKGZpbGVuYW1lKSkKICIgICAgY2FsbCBEZWNobygic3o9Ii5zei4iIGZzej0iLmZzeikKICAgIGVuZGlmCkBAIC02NjE3LDcgKzcwNTgsNyBAQAogICAgICIgc29ydCBieSB0aW1lIChoYW5kbGVzIHRpbWUgdXAgdG8gMSBxdWludGlsbGlvbiBzZWNvbmRzLCBVUykKICIgICAgY2FsbCBEZWNobygiZ2V0ZnRpbWUoIi5maWxlbmFtZS4iKT0iLmdldGZ0aW1lKGZpbGVuYW1lKSkKICAgICBsZXQgdCAgPSBnZXRmdGltZShmaWxlbmFtZSkKLSAgICBsZXQgZnQgPSBzdHJwYXJ0KCIwMDAwMDAwMDAwMDAwMDAwMDAiLDEsMTgtczpTdHJsZW4odCkpLnQKKyAgICBsZXQgZnQgPSBzdHJwYXJ0KCIwMDAwMDAwMDAwMDAwMDAwMDAiLDEsMTgtc3RybGVuKHQpKS50CiAiICAgIGNhbGwgRGVjaG8oImV4ZSBrZWVwanVtcHMgcHV0ID0nIi5mdC4nLycuZmlsZW5hbWUuIiciKQogICAgIGxldCBmdHBmaWxlPSBmdC4nLycucGZpbGUKICAgICBrZWVwanVtcHMgc2lsZW50ISBwdXQ9ZnRwZmlsZQpAQCAtNjYyNiw3ICs3MDY3LDcgQEAKICAgICAiIHNvcnQgYnkgc2l6ZSAoaGFuZGxlcyBmaWxlIHNpemVzIHVwIHRvIDEgcXVpbnRpbGxpb24gYnl0ZXMsIFVTKQogIiAgICBjYWxsIERlY2hvKCJnZXRmc2l6ZSgiLmZpbGVuYW1lLiIpPSIuZ2V0ZnNpemUoZmlsZW5hbWUpKQogICAgIGxldCBzeiAgID0gZ2V0ZnNpemUoZmlsZW5hbWUpCi0gICAgbGV0IGZzeiAgPSBzdHJwYXJ0KCIwMDAwMDAwMDAwMDAwMDAwMDAiLDEsMTgtczpTdHJsZW4oc3opKS5zegorICAgIGxldCBmc3ogID0gc3RycGFydCgiMDAwMDAwMDAwMDAwMDAwMDAwIiwxLDE4LXN0cmxlbihzeikpLnN6CiAiICAgIGNhbGwgRGVjaG8oImV4ZSBrZWVwanVtcHMgcHV0ID0nIi5mc3ouJy8nLmZpbGVuYW1lLiInIikKICAgICBsZXQgZnN6cGZpbGU9IGZzei4nLycucGZpbGUKICAgICBrZWVwanVtcHMgc2lsZW50ISBwdXQgPWZzenBmaWxlCkBAIC02NjM5LDcgKzcwODAsOSBAQAogICBlbmR3aGlsZQogCiAgICIgY2xlYW51cCBhbnkgd2luZG93cyBtZXNzIGF0IGVuZC1vZi1saW5lCisgIHNpbGVudCEga2VlcGp1bXBzIGcvXiQvZAogICBzaWxlbnQhIGtlZXBqdW1wcyAlcy9cciQvL2UKKyAgY2FsbCBoaXN0ZGVsKCIvIiwtMSkKICAgZXhlICJzZXRsb2NhbCB0cz0iLmc6bmV0cndfbWF4ZmlsZW5hbWVsZW4KICIgIGNhbGwgRGVjaG8oInNldGxvY2FsIHRzPSIuZzpuZXRyd19tYXhmaWxlbmFtZWxlbikKIApAQCAtNjY1OSw5ICs3MTAyLDE3IEBACiAgICByZXR1cm4KICAgZW5kaWYKICAgaWYgIWV4aXN0cygidzpuZXRyd19iYW5uZXJjbnQiKQotIiAgIGNhbGwgRHJldCgiTG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2ggOiBkb24ndCByZWZyZXNoIHdoZW4gZm9jdXMgbm90IG9uIG5ldHJ3IHdpbmR3byIpCisiICAgY2FsbCBEcmV0KCJMb2NhbEJyb3dzZVNoZWxsQ21kUmVmcmVzaCA6IGRvbid0IHJlZnJlc2ggd2hlbiBmb2N1cyBub3Qgb24gbmV0cncgd2luZG93IikKICAgIHJldHVybgogICBlbmRpZgorICBpZiBleGlzdHMoInM6bG9jYnJvd3Nlc2hlbGxjbWQiKQorICAgaWYgczpsb2Nicm93c2VzaGVsbGNtZAorICAgIGxldCBzOmxvY2Jyb3dzZXNoZWxsY21kPSAwCisiICAgIGNhbGwgRHJldCgiTG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2ggOiBOZXRyd0Jyb3dzZSBpdHNlbGYgY2F1c2VkIHRoZSByZWZyZXNoIikKKyAgICByZXR1cm4KKyAgIGVuZGlmCisgICBsZXQgczpsb2Nicm93c2VzaGVsbGNtZD0gMAorICBlbmRpZgogICBsZXQgaXRhYiAgICAgICA9IDEKICAgbGV0IGJ1ZnRhYmxpc3QgPSBbXQogICB3aGlsZSBpdGFiIDw9IHRhYnBhZ2VucigiJCIpCkBAIC02ODE1LDggKzcyNjYsOCBAQAogICAgbGV0IHJtZmlsZT0gc3Vic3RpdHV0ZShybWZpbGUsJ1tcL10kJywnJywnZScpCiAKICAgIGlmIGFsbCB8fCBvayA9fiAneVwlW2VzXScgfHwgb2sgPT0gIiIKLSIgICAgY2FsbCBEZWNobygiMXN0IGF0dGVtcHQ6IHN5c3RlbShzOldpblBhdGgoIi5nOm5ldHJ3X2xvY2FsX3JtZGlyLicpICcuc2hlbGxlc2NhcGUocm1maWxlKS4nKScpCi0gICAgY2FsbCBzeXN0ZW0oczpXaW5QYXRoKGc6bmV0cndfbG9jYWxfcm1kaXIpLicgJy5zaGVsbGVzY2FwZShybWZpbGUpKQorIiAgICBjYWxsIERlY2hvKCIxc3QgYXR0ZW1wdDogc3lzdGVtKG5ldHJ3I1dpblBhdGgoIi5nOm5ldHJ3X2xvY2FsX3JtZGlyLicpICcuc2hlbGxlc2NhcGUocm1maWxlKS4nKScpCisgICAgY2FsbCBzeXN0ZW0obmV0cncjV2luUGF0aChnOm5ldHJ3X2xvY2FsX3JtZGlyKS4nICcuc2hlbGxlc2NhcGUocm1maWxlKSkKICIgICAgY2FsbCBEZWNobygidjpzaGVsbF9lcnJvcj0iLnY6c2hlbGxfZXJyb3IpCiAKICAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKQEAgLTY4NzQsOSArNzMyNSw3IEBACiAgICAgZW5kaWYKICAgICBjYWxsIHJlbmFtZShvbGRuYW1lLG5ld25hbWUpCiAgICBlbmRmb3IKLSAgIDJtYXRjaCBub25lCi0gICB1bmxldCBzOm5ldHJ3bWFya2ZpbGVsaXN0X3tidWZucigiJSIpfQotICAgdW5sZXQgczpuZXRyd21hcmtmaWxlbXRjaF97YnVmbnIoIiUiKX0KKyAgIGNhbGwgczpOZXRyd1VubWFya0xpc3QoYnVmbnIoIiUiKSxiOm5ldHJ3X2N1cmRpcikKICAgCiAgIGVsc2UKIApAQCAtNjk1NSw5ICs3NDA0LDExIEBACiAgICBhdWdyb3VwIEF1TmV0cndTaGVsbENtZAogICAgIGF1IQogICAgIGlmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCisiICAgICBjYWxsIERlY2hvKCJhdXRvY21kOiBTaGVsbENtZFBvc3QgKiBjYWxsIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKSIpCiAgICAgIGF1IFNoZWxsQ21kUG9zdAkJCSoJY2FsbCBzOkxvY2FsQnJvd3NlU2hlbGxDbWRSZWZyZXNoKCkKICAgICBlbHNlCiAgICAgIGF1IFNoZWxsQ21kUG9zdCxGb2N1c0dhaW5lZAkqCWNhbGwgczpMb2NhbEJyb3dzZVNoZWxsQ21kUmVmcmVzaCgpCisiICAgICBjYWxsIERlY2hvKCJhdXRvY21kOiBTaGVsbENtZFBvc3QsRm9jdXNHYWluZWQgKiBjYWxsIHM6TG9jYWxCcm93c2VTaGVsbENtZFJlZnJlc2goKSIpCiAgICAgZW5kaWYKICAgIGF1Z3JvdXAgRU5ECiAgIGVuZGlmCkBAIC02OTg0LDcgKzc0MzUsNyBAQAogIiAgIDA9bm90ZSAgICAgPSBzOk5PVEUKICIgICAxPXdhcm5pbmcgID0gczpXQVJOSU5HCiAiICAgMj1lcnJvciAgICA9IHM6RVJST1IKLSIgIEp1bCAwOCwgMjAwOCA6IG1heCBlcnJudW0gY3VycmVudGx5IGlzIDcxCisiICBEZWMgMDMsIDIwMDkgOiBtYXggZXJybnVtIGN1cnJlbnRseSBpcyA3NgogZnVuISBuZXRydyNFcnJvck1zZyhsZXZlbCxtc2csZXJybnVtKQogIiAgY2FsbCBEZnVuYygibmV0cncjRXJyb3JNc2cobGV2ZWw9Ii5hOmxldmVsLiIgbXNnPCIuYTptc2cuIj4gZXJybnVtPSIuYTplcnJudW0uIikgZzpuZXRyd191c2VfZXJyb3J3aW5kb3c9Ii5nOm5ldHJ3X3VzZV9lcnJvcndpbmRvdykKIApAQCAtNzAxNyw3ICs3NDY4LDggQEAKICAgIGVsc2UKICIgICAgY2FsbCBEZWNobygiY3JlYXRlIGEgTmV0cndNZXNzYWdlIGJ1ZmZlciB3aW5kb3ciKQogICAgIGJvIDFzcGxpdAotICAgIGVuZXcKKyAgICBjYWxsIHM6TmV0cndFbmV3KCkKKyAgICBjYWxsIHM6TmV0cndTYWZlT3B0aW9ucygpCiAgICAgc2V0bG9jYWwgYnQ9bm9maWxlCiAgICAgZmlsZSBOZXRyd01lc3NhZ2UKICIgICAgY2FsbCBEZWNobygic2V0bG9jYWwgbWEgbm9ybyIpCkBAIC03MTAxLDYgKzc1NTMsNyBAQAogICBsZXQgdzpuZXRyd193aW5ucj0gd2lubnIoKQogICBsZXQgdzpuZXRyd19saW5lID0gbGluZSgiLiIpCiAgIGxldCB3Om5ldHJ3X2NvbCAgPSB2aXJ0Y29sKCIuIikKKyIgIGNhbGwgRGVjaG8oImN1cnJlbnRseSwgd2luIyIudzpuZXRyd193aW5uci4iIGxpbmUjIi53Om5ldHJ3X2xpbmUuIiBjb2wjIi53Om5ldHJ3X2NvbCkKIAogICAiIFNhdmUgdG9wLW9mLXNjcmVlbiBsaW5lCiAgIG5vcm0hIEgwCkBAIC03MTMwLDcgKzc1ODMsNyBAQAogCiAgIGlmKGhhcygiYW1pZ2EiKSkKICIgICBjYWxsIERlY2hvKCJhbWlnYSIpCi0gICBsZXQgZWMgPSBhOmJhc2Vbc3RybGVuKGE6YmFzZSktMV0KKyAgIGxldCBlYyA9IGE6YmFzZVtzOlN0cmxlbihhOmJhc2UpLTFdCiAgICBpZiBlYyAhPSAnLycgJiYgZWMgIT0gJzonCiAgICAgbGV0IHJldCA9IGE6YmFzZSAuICIvIiAuIGE6c3ViZGlyCiAgICBlbHNlCkBAIC03MTQxLDYgKzc1OTQsMTQgQEAKICIgICBjYWxsIERlY2hvKCJ3aW5kb3dzIikKICAgIGxldCByZXQ9IGE6c3ViZGlyCiAKKyAgZWxzZWlmIGE6YmFzZSA9fiAnXlxhOlsvXFxdW14vXFxdJyAmJiAoaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpKQorIiAgIGNhbGwgRGVjaG8oIndpbmRvd3MiKQorICAgaWYgYTpiYXNlID1+ICdbL1xcXSQnCisgICAgbGV0IHJldD0gYTpiYXNlLmE6c3ViZGlyCisgICBlbHNlCisgICAgbGV0IHJldD0gYTpiYXNlLiIvIi5hOnN1YmRpcgorICAgZW5kaWYKKwogICBlbHNlaWYgYTpiYXNlID1+ICdeXGFcKzovLycKICIgICBjYWxsIERlY2hvKCJyZW1vdGUgbGludXgvbWFjb3MiKQogICAgbGV0IHVybGJhc2UgPSBzdWJzdGl0dXRlKGE6YmFzZSwnXlwoXGFcKzovLy5cey19L1wpXCguKlwpJCcsJ1wxJywnJykKQEAgLTcyMTIsNyArNzY3Myw3IEBACiAgICBlbmRpZgogCiAgICAiIGxldCBuZXRydyNOZXRTb3VyY2UoKSBrbm93IGFib3V0IHRoZSB0bXBmaWxlCi0gICBsZXQgczpuZXRyd190bXBmaWxlPSB0bXBmaWxlICIgdXNlZCBieSBuZXRydyNOZXRTb3VyY2UoKQorICAgbGV0IHM6bmV0cndfdG1wZmlsZT0gdG1wZmlsZSAiIHVzZWQgYnkgbmV0cncjTmV0U291cmNlKCkgYW5kIG5ldHJ3I05ldHJ3QnJvd3NlWCgpCiAiICAgY2FsbCBEZWNobygidG1wZmlsZTwiLnRtcGZpbGUuIj4gczpuZXRyd190bXBmaWxlPCIuczpuZXRyd190bXBmaWxlLiI+IikKIAogICAgIiBvL3MgZGVwZW5kZW5jaWVzCkBAIC03MzAxLDcgKzc3NjIsNyBAQAogZnVuISBzOk5ldHJ3RGVsZXRlKHBhdGgpCiAiICBjYWxsIERmdW5jKCJzOk5ldHJ3RGVsZXRlKHBhdGg8Ii5hOnBhdGguIj4pIikKIAotICBsZXQgcGF0aCA9IHM6V2luUGF0aChhOnBhdGgpCisgIGxldCBwYXRoID0gbmV0cncjV2luUGF0aChhOnBhdGgpCiAgIGlmICFnOm5ldHJ3X2N5Z3dpbiAmJiAoaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpKQogICAgaWYgZXhpc3RzKCIrc2hlbGxzbGFzaCIpCiAgICAgbGV0IHNza2VlcD0gJnNoZWxsc2xhc2gKQEAgLTczMTcsNyArNzc3OCw3IEBACiAgICBsZXQgcmVzdWx0PSBkZWxldGUocGF0aCkKICAgZW5kaWYKICAgaWYgcmVzdWx0IDwgMAotICAgY2FsbCBOZXRydyNFcnJvck1zZyhzOldBUk5JTkcsImRlbGV0ZSgiLnBhdGguIikgZmFpbGVkISIsNzEpCisgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywiZGVsZXRlKCIucGF0aC4iKSBmYWlsZWQhIiw3MSkKICAgZW5kaWYKIAogIiAgY2FsbCBEcmV0KCJzOk5ldHJ3RGVsZXRlICIucmVzdWx0KQpAQCAtNzMyNiw4ICs3Nzg3LDkgQEAKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpOZXRyd0VuZXc6IG9wZW5zIGEgbmV3IGJ1ZmZlciwgcGFzc2VzIG5ldHJ3IGJ1ZmZlciB2YXJpYWJsZXMgdGhyb3VnaCB7e3syCi1mdW4hIHM6TmV0cndFbmV3KGN1cmRpcikKLSIgIGNhbGwgRGZ1bmMoInM6TmV0cndFbmV3KGN1cmRpcjwiLmE6Y3VyZGlyLiI+KSBidWYjIi5idWZucigiJSIpLiI8Ii5idWZuYW1lKCIlIikuIj4iKQorZnVuISBzOk5ldHJ3RW5ldyguLi4pCisiICBjYWxsIERmdW5jKCJzOk5ldHJ3RW5ldygpIGE6MD0iLmE6MCkKKyIgIGNhbGwgRGVjaG8oImN1cmRpcjwiLigoYTowPjApPyBhOjEgOiAiIikuIj4gYnVmIyIuYnVmbnIoIiUiKS4iPCIuYnVmbmFtZSgiJSIpLiI+IikKIAogICAiIGdyYWIgYSBmdW5jdGlvbi1sb2NhbC12YXJpYWJsZSBjb3B5IG9mIGJ1ZmZlciB2YXJpYWJsZXMKICAgaWYgZXhpc3RzKCJiOm5ldHJ3X2Jhbm5lcmNudCIpICAgICAgfGxldCBuZXRyd19iYW5uZXJjbnQgICAgICAgPSBiOm5ldHJ3X2Jhbm5lcmNudCAgICAgIHxlbmRpZgpAQCAtNzM3MCwxNCArNzgzMiwxNiBAQAogICBpZiBleGlzdHMoIm5ldHJ3X29wdGlvbiIpICAgICAgICAgfGxldCBiOm5ldHJ3X29wdGlvbiAgICAgICAgICA9IG5ldHJ3X29wdGlvbiAgICAgICAgIHxlbmRpZgogICBpZiBleGlzdHMoIm5ldHJ3X3BydmRpciIpICAgICAgICAgfGxldCBiOm5ldHJ3X3BydmRpciAgICAgICAgICA9IG5ldHJ3X3BydmRpciAgICAgICAgIHxlbmRpZgogCi0gIGxldCBiOm5ldHJ3X2N1cmRpcj0gYTpjdXJkaXIKLSAgaWYgYjpuZXRyd19jdXJkaXIgPX4gJy8kJwotICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QKLSAgICBmaWxlIE5ldHJ3VHJlZUxpc3RpbmcKLSAgICBubm8gPHNpbGVudD4gPGJ1ZmZlcj4gWwk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ1snKTxjcj4KLSAgICBubm8gPHNpbGVudD4gPGJ1ZmZlcj4gXQk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ10nKTxjcj4KLSAgIGVsc2UKLSAgICBleGUgInNpbGVudCEga2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpCisgIGlmIGE6MCA+IDAKKyAgIGxldCBiOm5ldHJ3X2N1cmRpcj0gYToxCisgICBpZiBiOm5ldHJ3X2N1cmRpciA9fiAnLyQnCisgICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICYmIHc6bmV0cndfbGlzdHN0eWxlID09IHM6VFJFRUxJU1QKKyAgICAgZmlsZSBOZXRyd1RyZWVMaXN0aW5nCisgICAgIG5ubyA8c2lsZW50PiA8YnVmZmVyPiBbCTpzaWxlbnQgY2FsbCA8U0lEPlRyZWVMaXN0TW92ZSgnWycpPGNyPgorICAgICBubm8gPHNpbGVudD4gPGJ1ZmZlcj4gXQk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ10nKTxjcj4KKyAgICBlbHNlCisgICAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShiOm5ldHJ3X2N1cmRpcikKKyAgICBlbmRpZgogICAgZW5kaWYKICAgZW5kaWYKIApAQCAtNzUxMSwxMyArNzk3NSwxNiBAQAogICAgY2FsbCBuZXRydyNOZXRyd1Jlc3RvcmVQb3NuKHM6bmJjZF9jdXJwb3Nfe2J1Zm5yKCclJyl9KQogICAgdW5sZXQgczpuYmNkX2N1cnBvc197YnVmbnIoJyUnKX0KICAgZW5kaWYKKyAgaWYgZXhpc3RzKCJzOmV4cGxvcmVfbWF0Y2giKQorICAgZXhlICIybWF0Y2ggbmV0cndNYXJrRmlsZSAvIi5zOmV4cGxvcmVfbWF0Y2guIi8iCisgIGVuZGlmCiAiICBjYWxsIERyZXQoInM6TmV0cndSZXhwbG9yZSIpCiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpTYXZlQnVmVmFyczoge3t7MgogZnVuISBzOlNhdmVCdWZWYXJzKCkKLSIgIGNhbGwgRGZ1bmMoInM6U2F2ZUJ1ZlZhcnMoKSIpCisiICBjYWxsIERmdW5jKCJzOlNhdmVCdWZWYXJzKCkgYnVmIyIuYnVmbnIoIiUiKSkKIAogICBpZiBleGlzdHMoImI6bmV0cndfY3VyZGlyIikgICAgICAgIHxsZXQgczpuZXRyd19jdXJkaXIgICAgICAgICA9IGI6bmV0cndfY3VyZGlyICAgICAgICB8ZW5kaWYKICAgaWYgZXhpc3RzKCJiOm5ldHJ3X2xhc3RmaWxlIikgICAgICB8bGV0IHM6bmV0cndfbGFzdGZpbGUgICAgICAgPSBiOm5ldHJ3X2xhc3RmaWxlICAgICAgfGVuZGlmCkBAIC03NTMyLDcgKzc5OTksNyBAQAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpTYXZlV2luVmFyczogKHVzZWQgYnkgRXhwbG9yZSgpIGFuZCBOZXRyd1NwbGl0KCkpIHt7ezIKIGZ1biEgczpTYXZlV2luVmFycygpCi0iICBjYWxsIERmdW5jKCJzOlNhdmVXaW5WYXJzKCkiKQorIiAgY2FsbCBEZnVuYygiczpTYXZlV2luVmFycygpIHdpbiMiLndpbm5yKCkpCiAgIGlmIGV4aXN0cygidzpuZXRyd19iYW5uZXJjbnQiKSAgICAgIHxsZXQgczpiYW5uZXJjbnQgICAgICAgPSB3Om5ldHJ3X2Jhbm5lcmNudCAgICAgIHxlbmRpZgogICBpZiBleGlzdHMoInc6bmV0cndfY29sIikgICAgICAgICAgICB8bGV0IHM6Y29sICAgICAgICAgICAgID0gdzpuZXRyd19jb2wgICAgICAgICAgICB8ZW5kaWYKICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2N1cmRpciIpICAgICAgICAgfGxldCBzOmN1cmRpciAgICAgICAgICA9IHc6bmV0cndfY3VyZGlyICAgICAgICAgfGVuZGlmCkBAIC03NTYyLDcgKzgwMjksNyBAQAogIiAgIHZhcmlhYmxlcyBhcmUgbm90IGluaGVyaXRlZCBieSB0aGUgbmV3IHdpbmRvdy4gIFNldEJ1ZldpblZhcnMoKSBhbmQKICIgICBVc2VCdWZXaW5WYXJzKCkgZ2V0IGFyb3VuZCB0aGF0LgogZnVuISBzOlNldEJ1ZldpblZhcnMoKQotIiAgY2FsbCBEZnVuYygiczpTZXRCdWZXaW5WYXJzKCkiKQorIiAgY2FsbCBEZnVuYygiczpTZXRCdWZXaW5WYXJzKCkgd2luIyIud2lubnIoKSkKICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpc3RzdHlsZSIpICAgICAgfGxldCBiOm5ldHJ3X2xpc3RzdHlsZSAgICAgID0gdzpuZXRyd19saXN0c3R5bGUgICAgICB8ZW5kaWYKICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2Jhbm5lcmNudCIpICAgICAgfGxldCBiOm5ldHJ3X2Jhbm5lcmNudCAgICAgID0gdzpuZXRyd19iYW5uZXJjbnQgICAgICB8ZW5kaWYKICAgaWYgZXhpc3RzKCJ3Om5ldHJ3X21ldGhvZCIpICAgICAgICAgfGxldCBiOm5ldHJ3X21ldGhvZCAgICAgICAgID0gdzpuZXRyd19tZXRob2QgICAgICAgICB8ZW5kaWYKQEAgLTc1ODQsOCArODA1MSw3IEBACiAgIGlmIGE6aXNsb2NhbAogICAgZXhlICdjb20hIFJleHBsb3JlIGNhbGwgczpOZXRyd1JleHBsb3JlKDEsIicuZXNjYXBlKGE6ZGlybmFtZSwnIlwnKS4nIiknCiAgICBpZiBnOm5ldHJ3X3JldG1hcAotICAgIHNpbGVudCEgdW5tYXAgPDItbGVmdG1vdXNlPgotICAgIGlmICFoYXNtYXB0bygiPFBsdWc+TmV0cndSZXR1cm4iKQorICAgIGlmICFoYXNtYXB0bygiPFBsdWc+TmV0cndSZXR1cm4iKSAmJiBtYXBhcmcoIjwyLWxlZnRtb3VzZT4iLCJuIikgPT0gIiIKICAgICAgbm1hcCA8dW5pcXVlPiA8c2lsZW50PiA8Mi1sZWZ0bW91c2U+CTxQbHVnPk5ldHJ3UmV0dXJuCiAgICAgZW5kaWYKICAgICBsZXQgZGlyID0gZXNjYXBlKGE6ZGlybmFtZSwgczpuZXRyd19tYXBfZXNjYXBlKQpAQCAtNzU5NCw4ICs4MDYwLDcgQEAKICAgZWxzZQogICAgZXhlICdjb20hIFJleHBsb3JlIGNhbGwgczpOZXRyd1JleHBsb3JlKDAsIicuZXNjYXBlKGE6ZGlybmFtZSwnIlwnKS4nIiknCiAgICBpZiBnOm5ldHJ3X3JldG1hcAotICAgIHNpbGVudCEgdW5tYXAgPDItbGVmdG1vdXNlPgotICAgIGlmICFoYXNtYXB0bygiPFBsdWc+TmV0cndSZXR1cm4iKQorICAgIGlmICFoYXNtYXB0bygiPFBsdWc+TmV0cndSZXR1cm4iKSAmJiBtYXBhcmcoIjwyLWxlZnRtb3VzZT4iLCJuIikgPT0gIiIKICAgICAgbm1hcCA8dW5pcXVlPiA8c2lsZW50PiA8Mi1sZWZ0bW91c2U+CTxQbHVnPk5ldHJ3UmV0dXJuCiAgICAgZW5kaWYKICAgICBsZXQgZGlyID0gZXNjYXBlKGE6ZGlybmFtZSwgczpuZXRyd19tYXBfZXNjYXBlKQpAQCAtNzYwOCw5ICs4MDczLDkgQEAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6U3RybGVuOiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxlbmd0aCBvZiBhIHN0cmluZywgZXZlbiBpZiBpdHMge3t7MgogIiAgICAgICAgICAgdXNpbmcgdHdvLWJ5dGUgZXRjIGNoYXJhY3RlcnMuCi0iICAgICAgICAgICBDdXJyZW50bHksIGl0cyBvbmx5IHVzZWQgaWYgZzpBbGlnbl94c3RybGVuIGlzIHNldCB0byBhCi0iICAgICAgICAgICBub256ZXJvIHZhbHVlLiAgU29sdXRpb24gZnJvbSBOaWNvbGFpIFdlaWJ1bGwsIHZpbSBkb2NzCi0iICAgICAgICAgICAoOmhlbHAgc3RybGVuKCkpLCBUb255IE1lY2hlbHluY2ssIGFuZCBteSBvd24gaW52ZW50aW9uLgorIiAgICAgICAgICAgU29sdXRpb24gZnJvbSBOaWNvbGFpIFdlaWJ1bGwsIHZpbSBkb2NzICg6aGVscCBzdHJsZW4oKSksIFRvbnkgTWVjaGVseW5jaywKKyIgICAgICAgICAgIGFuZCBhIGJpdCBmcm9tIG1lLgorIiAgICAgICAgICAgaWYgZzpuZXRyd194c3RybGVuIGlzIHplcm8gKGRlZmF1bHQpLCB0aGVuIHRoZSBidWlsdGluIHN0cmxlbigpIGZ1bmN0aW9uIGlzIHVzZWQuCiBmdW4hIHM6U3RybGVuKHgpCiAiICBjYWxsIERmdW5jKCJzOlN0cmxlbih4PCIuYTp4LiI+IikKICAgaWYgZzpuZXRyd194c3RybGVuID09IDEKQEAgLTc2MzgsNyArODEwMyw3IEBACiAKICAgZWxzZQogICAgIiBhdCBsZWFzdCBnaXZlIGEgZGVjZW50IGRlZmF1bHQKLSAgIHJldD0gc3RybGVuKGE6eCkKKyAgIGxldCByZXQ9IHN0cmxlbihhOngpCiAgIGVuZGlmCiAiICBjYWxsIERyZXQoInM6U3RybGVuICIucmV0KQogICByZXR1cm4gcmV0CkBAIC03NzA3LDcgKzgxNzIsNyBAQAogIiAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJzLlJlZnJlc2g7IGhlbmNlLCBzOk5ldHJ3Qk1TaG93KCkgdXRpbGl6ZXMgYSAiY2hlYXQiIHRvIGNhbGwgdGhhdCBmdW5jdGlvbiBhbnl3YXkuCiBmdW4hIHM6VXBkYXRlQnVmZmVyc01lbnUoKQogIiAgY2FsbCBEZnVuYygiczpVcGRhdGVCdWZmZXJzTWVudSgpIikKLSAgaWYgaGFzKCJndWkiKSAmJiBoYXMoIm1lbnUiKSAmJiBoYXMoImd1aV9ydW5uaW5nIikgJiYgJmdvID1+ICdtJworICBpZiBoYXMoImd1aSIpICYmIGhhcygibWVudSIpICYmIGhhcygiZ3VpX3J1bm5pbmciKSAmJiAmZ28gPX4gJ20nICYmIGc6bmV0cndfbWVudQogICAgdHJ5CiAgICAgc2lsZW50IGVtZW51IEJ1ZmZlcnMuUmVmcmVzaFwgbWVudQogICAgY2F0Y2ggL15WaW1cJSgoXGFcKylcKVw9OkUvCkBAIC03NzM3LDEyICs4MjAyLDE0IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgczpXaW5QYXRoOiB7e3syCi1mdW4hIHM6V2luUGF0aChwYXRoKQotIiAgY2FsbCBEZnVuYygiczpXaW5QYXRoKHBhdGg8Ii5hOnBhdGguIj4pIikKLSAgaWYgIWc6bmV0cndfY3lnd2luICYmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCisiIG5ldHJ3I1dpblBhdGg6IHRyaWVzIHRvIGluc3VyZSB0aGF0IHRoZSBwYXRoIGlzIHdpbmRvd3MtYWNjZXB0YWJsZSwgd2hldGhlciBjeWd3aW4gaXMgdXNlZCBvciBub3Qge3t7MgorZnVuISBuZXRydyNXaW5QYXRoKHBhdGgpCisiICBjYWxsIERmdW5jKCJuZXRydyNXaW5QYXRoKHBhdGg8Ii5hOnBhdGguIj4pIikKKyAgaWYgKCFnOm5ldHJ3X2N5Z3dpbiB8fCAmc2hlbGwgIX4gJ1wlKFw8YmFzaFw+XHxcPHpzaFw+XClcJShcLmV4ZVwpXD0kJykgJiYgKGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKSkKKyAgICIgcmVtb3ZlIGN5Z2RyaXZlIHByZWZpeCwgaWYgcHJlc2VudAorICAgbGV0IHBhdGggPSBzdWJzdGl0dXRlKGE6cGF0aCwnL2N5Z2RyaXZlL1woLlwpJywnXDE6JywnJykKICAgICIgcmVtb3ZlIHRyYWlsaW5nIHNsYXNoIChXaW45NSkKLSAgIGxldCBwYXRoID0gc3Vic3RpdHV0ZShhOnBhdGgsICdcKFxcXHwvXCkkJywgJycsICdnJykKKyAgIGxldCBwYXRoID0gc3Vic3RpdHV0ZShwYXRoLCAnXChcXFx8L1wpJCcsICcnLCAnZycpCiAgICAiIHJlbW92ZSBlc2NhcGVkIHNwYWNlcwogICAgbGV0IHBhdGggPSBzdWJzdGl0dXRlKHBhdGgsICdcICcsICcgJywgJ2cnKQogICAgIiBjb252ZXJ0IHNsYXNoZXMgdG8gYmFja3NsYXNoZXMKQEAgLTc3NTAsNyArODIxNyw3IEBACiAgIGVsc2UKICAgIGxldCBwYXRoPSBhOnBhdGgKICAgZW5kaWYKLSIgIGNhbGwgRHJldCgiczpXaW5QYXRoIDwiLnBhdGguIj4iKQorIiAgY2FsbCBEcmV0KCJuZXRydyNXaW5QYXRoIDwiLnBhdGguIj4iKQogICByZXR1cm4gcGF0aAogZW5kZnVuCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndGaWxlSGFuZGxlcnMudmltIGIvcnVudGltZS9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0KaW5kZXggNWZiMDViYS4uMTUxNWIwMCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0KQEAgLTEsOSArMSw5IEBACiAiIG5ldHJ3RmlsZUhhbmRsZXJzOiBjb250YWlucyB2YXJpb3VzIGV4dGVuc2lvbi1iYXNlZCBmaWxlIGhhbmRsZXJzIGZvcgogIiAgICAgICAgICAgICAgICAgICAgbmV0cncncyBicm93c2VycycgeCBjb21tYW5kICgiZVhlY3V0ZSBsYXVuY2hlciIpCiAiIEF1dGhvcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIERhdGU6CQlNYXkgMzAsIDIwMDYKLSIgVmVyc2lvbjoJOQotIiBDb3B5cmlnaHQ6ICAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA1IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiB7e3sxCisiIERhdGU6CQlTZXAgMzAsIDIwMDgKKyIgVmVyc2lvbjoJMTAKKyIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwOCBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQogIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKICIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAogIiAgICAgICAgICAgICAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLApAQCAtMjAsOSArMjAsMTUgQEAKIGlmIGV4aXN0cygiZzpsb2FkZWRfbmV0cndGaWxlSGFuZGxlcnMiKSB8fCAmY3AKICBmaW5pc2gKIGVuZGlmCitsZXQgZzpsb2FkZWRfbmV0cndGaWxlSGFuZGxlcnM9ICJ2MTAiCitpZiB2OnZlcnNpb24gPCA3MDIKKyBlY2hvaGwgV2FybmluZ01zZworIGVjaG8gIioqKndhcm5pbmcqKiogdGhpcyB2ZXJzaW9uIG9mIG5ldHJ3RmlsZUhhbmRsZXJzIG5lZWRzIHZpbSA3LjIiCisgZWNob2hsIE5vcm1hbAorIGZpbmlzaAorZW5kaWYKIGxldCBzOmtlZXBjcG89ICZjcG8KIHNldCBjcG8mdmltCi1sZXQgZzpsb2FkZWRfbmV0cndGaWxlSGFuZGxlcnM9ICJ2OSIKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgbmV0cndGaWxlSGFuZGxlcnMjSW52b2tlOiB7e3sxCkBAIC03MywxMCArNzksMTAgQEAKIAogICBpZiBleGVjdXRhYmxlKCJtb3ppbGxhIikKICIgICBjYWxsIERlY2hvKCJleGVjdXRpbmcgIW1vemlsbGEgIi5wYWdlKQotICAgZXhlICIhbW96aWxsYSAiLmc6bmV0cndfc2hxLnBhZ2UuZzpuZXRyd19zaHEKKyAgIGV4ZSAiIW1vemlsbGEgIi5zaGVsbGVzY2FwZShwYWdlLDEpCiAgIGVsc2VpZiBleGVjdXRhYmxlKCJuZXRzY2FwZSIpCiAiICAgY2FsbCBEZWNobygiZXhlY3V0aW5nICFuZXRzY2FwZSAiLnBhZ2UpCi0gICBleGUgIiFuZXRzY2FwZSAiLmc6bmV0cndfc2hxLi5wYWdlLmc6bmV0cndfc2hxCisgICBleGUgIiFuZXRzY2FwZSAiLnNoZWxsZXNjYXBlKHBhZ2UsMSkKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfaHRtbCAwIikKICAgIHJldHVybiAwCkBAIC05NiwxMCArMTAyLDEwIEBACiAKICAgaWYgZXhlY3V0YWJsZSgibW96aWxsYSIpCiAiICAgY2FsbCBEZWNobygiZXhlY3V0aW5nICFtb3ppbGxhICIucGFnZSkKLSAgIGV4ZSAiIW1vemlsbGEgIi5nOm5ldHJ3X3NocS5wYWdlLmc6bmV0cndfc2hxCisgICBleGUgIiFtb3ppbGxhICIuc2hlbGxlc2NhcGUocGFnZSwxKQogICBlbHNlaWYgZXhlY3V0YWJsZSgibmV0c2NhcGUiKQogIiAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZyAhbmV0c2NhcGUgIi5wYWdlKQotICAgZXhlICIhbmV0c2NhcGUgIi5nOm5ldHJ3X3NocS5wYWdlLmc6bmV0cndfc2hxCisgICBleGUgIiFuZXRzY2FwZSAiLnNoZWxsZXNjYXBlKHBhZ2UsMSkKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfaHRtIDAiKQogICAgcmV0dXJuIDAKQEAgLTExNSwxMCArMTIxLDEwIEBACiAiICBjYWxsIERmdW5jKCJzOk5GSF9qcGcoanBnZmlsZTwiLmE6anBnZmlsZS4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoImdpbXAiKQotICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuZzpuZXRyd19zaHEuYTpqcGdmaWxlLmc6bmV0cndfc2hxCisgICBleGUgInNpbGVudCEgIWdpbXAgLXMgIi5zaGVsbGVzY2FwZShhOmpwZ2ZpbGUsMSkKICAgZWxzZWlmIGV4ZWN1dGFibGUoZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVC5FWEUiKQogIiAgIGNhbGwgRGVjaG8oInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLmVzY2FwZShhOmpwZ2ZpbGUsIiBbXXwnIikpCi0gICBleGUgIiEiLmV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQgIi5nOm5ldHJ3X3NocS5hOmpwZ2ZpbGUuZzpuZXRyd19zaHEKKyAgIGV4ZSAiISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLnNoZWxsZXNjYXBlKGE6anBnZmlsZSwxKQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9qcGcgMCIpCiAgICByZXR1cm4gMApAQCAtMTM0LDkgKzE0MCw5IEBACiAiICBjYWxsIERmdW5jKCJzOk5GSF9naWYoZ2lmZmlsZTwiLmE6Z2lmZmlsZS4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoImdpbXAiKQotICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuZzpuZXRyd19zaHEuYTpnaWZmaWxlLmc6bmV0cndfc2hxCisgICBleGUgInNpbGVudCEgIWdpbXAgLXMgIi5zaGVsbGVzY2FwZShhOmdpZmZpbGUsMSkKICAgZWxzZWlmIGV4ZWN1dGFibGUoZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVC5FWEUiKQotICAgZXhlICJzaWxlbnQhICEiLmV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQgIi5nOm5ldHJ3X3NocS5hOmdpZmZpbGUuZzpuZXRyd19zaHEKKyAgIGV4ZSAic2lsZW50ISAhIi5leHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5UICIuc2hlbGxlc2NhcGUoYTpnaWZmaWxlLDEpCiAgIGVsc2UKICIgICBjYWxsIERyZXQoInM6TkZIX2dpZiAwIikKICAgIHJldHVybiAwCkBAIC0xNTIsOSArMTU4LDkgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX3BuZyhwbmdmaWxlPCIuYTpwbmdmaWxlLiI+KSIpCiAKICAgaWYgZXhlY3V0YWJsZSgiZ2ltcCIpCi0gICBleGUgInNpbGVudCEgIWdpbXAgLXMgIi5nOm5ldHJ3X3NocS5hOnBuZ2ZpbGUuZzpuZXRyd19zaHEKKyAgIGV4ZSAic2lsZW50ISAhZ2ltcCAtcyAiLnNoZWxsZXNjYXBlKGE6cG5nZmlsZSwxKQogICBlbHNlaWYgZXhlY3V0YWJsZShleHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5ULkVYRSIpCi0gICBleGUgInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLmc6bmV0cndfc2hxLmE6cG5nZmlsZS5nOm5ldHJ3X3NocQorICAgZXhlICJzaWxlbnQhICEiLmV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQgIi5zaGVsbGVzY2FwZShhOnBuZ2ZpbGUsMSkKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfcG5nIDAiKQogICAgcmV0dXJuIDAKQEAgLTE3MCw5ICsxNzYsOSBAQAogIiAgY2FsbCBEZnVuYygiczpORkhfcG5tKHBubWZpbGU8Ii5hOnBubWZpbGUuIj4pIikKIAogICBpZiBleGVjdXRhYmxlKCJnaW1wIikKLSAgIGV4ZSAic2lsZW50ISAhZ2ltcCAtcyAiLmc6bmV0cndfc2hxLmE6cG5tZmlsZS5nOm5ldHJ3X3NocQorICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuc2hlbGxlc2NhcGUoYTpwbm1maWxlLDEpCiAgIGVsc2VpZiBleGVjdXRhYmxlKGV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQuRVhFIikKLSAgIGV4ZSAic2lsZW50ISAhIi5leHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5UICIuZzpuZXRyd19zaHEuYTpwbm1maWxlLmc6bmV0cndfc2hxCisgICBleGUgInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLnNoZWxsZXNjYXBlKGE6cG5tZmlsZSwxKQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9wbm0gMCIpCiAgICByZXR1cm4gMApAQCAtMTkwLDcgKzE5Niw3IEBACiAgIGlmIGV4ZWN1dGFibGUoImdpbXAiKQogICAgZXhlICJzaWxlbnQhICFnaW1wIC1zICIuYTpibXBmaWxlCiAgIGVsc2VpZiBleGVjdXRhYmxlKGV4cGFuZCgiJFN5c3RlbVJvb3QiKS4iL1NZU1RFTTMyL01TUEFJTlQuRVhFIikKLSAgIGV4ZSAic2lsZW50ISAhIi5leHBhbmQoIiRTeXN0ZW1Sb290IikuIi9TWVNURU0zMi9NU1BBSU5UICIuZzpuZXRyd19zaHEuYTpibXBmaWxlLmc6bmV0cndfc2hxCisgICBleGUgInNpbGVudCEgISIuZXhwYW5kKCIkU3lzdGVtUm9vdCIpLiIvU1lTVEVNMzIvTVNQQUlOVCAiLnNoZWxsZXNjYXBlKGE6Ym1wZmlsZSwxKQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9ibXAgMCIpCiAgICByZXR1cm4gMApAQCAtMjA1LDkgKzIxMSw5IEBACiBmdW4hIHM6TkZIX3BkZihwZGYpCiAiICBjYWxsIERmdW5jKCJzOk5GSF9wZGYocGRmPCIuYTpwZGYuIj4pIikKICAgaWYgZXhlY3V0YWJsZSgiZ3MiKQotICAgZXhlICdzaWxlbnQhICFncyAnLmc6bmV0cndfc2hxLmE6cGRmLmc6bmV0cndfc2hxCisgICBleGUgJ3NpbGVudCEgIWdzICcuc2hlbGxlc2NhcGUoYTpwZGYsMSkKICAgZWxzZWlmIGV4ZWN1dGFibGUoInBkZnRvdGV4dCIpCi0gICBleGUgJ3NpbGVudCEgcGRmdG90ZXh0IC1ub3BnYnJrICcuZzpuZXRyd19zaHEuYTpwZGYuZzpuZXRyd19zaHEKKyAgIGV4ZSAnc2lsZW50ISBwZGZ0b3RleHQgLW5vcGdicmsgJy5zaGVsbGVzY2FwZShhOnBkZiwxKQogICBlbHNlCiAiICBjYWxsIERyZXQoInM6TkZIX3BkZiAwIikKICAgIHJldHVybiAwCkBAIC0yMjMsNyArMjI5LDcgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX2RvYyhkb2M8Ii5hOmRvYy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vd3JpdGVyIikKLSAgIGV4ZSAnc2lsZW50ISAhb293cml0ZXIgJy5nOm5ldHJ3X3NocS5hOmRvYy5nOm5ldHJ3X3NocQorICAgZXhlICdzaWxlbnQhICFvb3dyaXRlciAnLnNoZWxsZXNjYXBlKGE6ZG9jLDEpCiAgICByZWRyYXchCiAgIGVsc2UKICIgIGNhbGwgRHJldCgiczpORkhfZG9jIDAiKQpAQCAtMjQwLDcgKzI0Niw3IEBACiAiICBjYWxsIERmdW5jKCJzOk5GSF9zeHcoc3h3PCIuYTpzeHcuIj4pIikKIAogICBpZiBleGVjdXRhYmxlKCJvb3dyaXRlciIpCi0gICBleGUgJ3NpbGVudCEgIW9vd3JpdGVyICcuZzpuZXRyd19zaHEuYTpzeHcuZzpuZXRyd19zaHEKKyAgIGV4ZSAnc2lsZW50ISAhb293cml0ZXIgJy5zaGVsbGVzY2FwZShhOnN4dywxKQogICAgcmVkcmF3IQogICBlbHNlCiAiICAgY2FsbCBEcmV0KCJzOk5GSF9zeHcgMCIpCkBAIC0yNTcsNyArMjYzLDcgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX3hscyh4bHM8Ii5hOnhscy4iPikiKQogCiAgIGlmIGV4ZWN1dGFibGUoIm9vY2FsYyIpCi0gICBleGUgJ3NpbGVudCEgIW9vY2FsYyAnLmc6bmV0cndfc2hxLmE6eGxzLmc6bmV0cndfc2hxCisgICBleGUgJ3NpbGVudCEgIW9vY2FsYyAnLnNoZWxsZXNjYXBlKGE6eGxzLDEpCiAgICByZWRyYXchCiAgIGVsc2UKICIgIGNhbGwgRHJldCgiczpORkhfeGxzIDAiKQpAQCAtMjc0LDE1ICsyODAsMTUgQEAKICIgIGNhbGwgRGZ1bmMoInM6TkZIX3BzKHBzPCIuYTpwcy4iPikiKQogICBpZiBleGVjdXRhYmxlKCJncyIpCiAiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCEgIWdzICIuYTpwcykKLSAgIGV4ZSAic2lsZW50ISAhZ3MgIi5nOm5ldHJ3X3NocS5hOnBzLmc6bmV0cndfc2hxCisgICBleGUgInNpbGVudCEgIWdzICIuc2hlbGxlc2NhcGUoYTpwcywxKQogICAgcmVkcmF3IQogICBlbHNlaWYgZXhlY3V0YWJsZSgiZ2hvc3RzY3JpcHQiKQogIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICFnaG9zdHNjcmlwdCAiLmE6cHMpCi0gICBleGUgInNpbGVudCEgIWdob3N0c2NyaXB0ICIuZzpuZXRyd19zaHEuYTpwcy5nOm5ldHJ3X3NocQorICAgZXhlICJzaWxlbnQhICFnaG9zdHNjcmlwdCAiLnNoZWxsZXNjYXBlKGE6cHMsMSkKICAgIHJlZHJhdyEKICAgZWxzZWlmIGV4ZWN1dGFibGUoImdzd2luMzIiKQotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICFnc3dpbjMyICIuZzpuZXRyd19zaHEuYTpwcy5nOm5ldHJ3X3NocSkKLSAgIGV4ZSAic2lsZW50ISAhZ3N3aW4zMiAiLmc6bmV0cndfc2hxLmE6cHMuZzpuZXRyd19zaHEKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISAhZ3N3aW4zMiAiLnNoZWxsZXNjYXBlKGE6cHMsMSkpCisgICBleGUgInNpbGVudCEgIWdzd2luMzIgIi5zaGVsbGVzY2FwZShhOnBzLDEpCiAgICByZWRyYXchCiAgIGVsc2UKICIgICBjYWxsIERyZXQoInM6TkZIX3BzIDAiKQpAQCAtMjk4LDE2ICszMDQsMTYgQEAKIGZ1biEgczpORkhfZXBzKGVwcykKICIgIGNhbGwgRGZ1bmMoInM6TkZIX2VwcygpIikKICAgaWYgZXhlY3V0YWJsZSgiZ3MiKQotICAgZXhlICJzaWxlbnQhICFncyAiLmc6bmV0cndfc2hxLmE6ZXBzLmc6bmV0cndfc2hxCisgICBleGUgInNpbGVudCEgIWdzICIuc2hlbGxlc2NhcGUoYTplcHMsMSkKICAgIHJlZHJhdyEKICAgZWxzZWlmIGV4ZWN1dGFibGUoImdob3N0c2NyaXB0IikKLSAgIGV4ZSAic2lsZW50ISAhZ2hvc3RzY3JpcHQgIi5nOm5ldHJ3X3NocS5hOmVwcy5nOm5ldHJ3X3NocQorICAgZXhlICJzaWxlbnQhICFnaG9zdHNjcmlwdCAiLnNoZWxsZXNjYXBlKGE6ZXBzLDEpCiAgICByZWRyYXchCiAgIGVsc2VpZiBleGVjdXRhYmxlKCJnaG9zdHNjcmlwdCIpCi0gICBleGUgInNpbGVudCEgIWdob3N0c2NyaXB0ICIuZzpuZXRyd19zaHEuYTplcHMuZzpuZXRyd19zaHEKKyAgIGV4ZSAic2lsZW50ISAhZ2hvc3RzY3JpcHQgIi5zaGVsbGVzY2FwZShhOmVwcywxKQogICAgcmVkcmF3IQogICBlbHNlaWYgZXhlY3V0YWJsZSgiZ3N3aW4zMiIpCi0gICBleGUgInNpbGVudCEgIWdzd2luMzIgIi5nOm5ldHJ3X3NocS5hOmVwcy5nOm5ldHJ3X3NocQorICAgZXhlICJzaWxlbnQhICFnc3dpbjMyICIuc2hlbGxlc2NhcGUoYTplcHMsMSkKICAgIHJlZHJhdyEKICAgZWxzZQogIiAgIGNhbGwgRHJldCgiczpORkhfZXBzIDAiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC9uZXRyd1NldHRpbmdzLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndTZXR0aW5ncy52aW0KaW5kZXggYzA3MDRkNC4uMzhmNzI5OSAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9uZXRyd1NldHRpbmdzLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltCkBAIC0xLDcgKzEsNyBAQAogIiBuZXRyd1NldHRpbmdzLnZpbTogbWFrZXMgbmV0cncgc2V0dGluZ3Mgc2ltcGxlcgotIiBEYXRlOgkJSnVsIDAyLCAyMDA4CisiIERhdGU6CQlTZXAgMDMsIDIwMDgKICIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFIENhbXBiZWxsLCBKciA8ZHJjaGlwTk9TUEFNIGF0IGNhbXBiZWxsZmFtaWx5IGRvdCBiaXo+Ci0iIFZlcnNpb246CTEyCisiIFZlcnNpb246CTEzCiAiIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDcgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKICIgICAgICAgICAgICAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIHRvIHVzZSBhbmQgZGlzdHJpYnV0ZSB0aGlzIGNvZGUsCiAiICAgICAgICAgICAgICAgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIHByb3ZpZGVkIHRoYXQgdGhpcyBjb3B5cmlnaHQKQEAgLTE5LDcgKzE5LDEzIEBACiBpZiBleGlzdHMoImc6bG9hZGVkX25ldHJ3U2V0dGluZ3MiKSB8fCAmY3AKICAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX25ldHJ3U2V0dGluZ3MgID0gInYxMiIKK2xldCBnOmxvYWRlZF9uZXRyd1NldHRpbmdzID0gInYxMyIKK2lmIHY6dmVyc2lvbiA8IDcwMAorIGVjaG9obCBXYXJuaW5nTXNnCisgZWNobyAiKioqd2FybmluZyoqKiB0aGlzIHZlcnNpb24gb2YgbmV0cndTZXR0aW5ncyBuZWVkcyB2aW0gNy4wIgorIGVjaG9obCBOb3JtYWwKKyBmaW5pc2gKK2VuZGlmCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIE5ldHJ3U2V0dGluZ3M6IHt7ezEKQEAgLTEwMCw2ICsxMDYsNyBAQAogICAgcHV0ID0gJ2xldCBnOm5ldHJ3X2Jyb3dzZXhfdmlld2VyICAgID0gKG5vdCBkZWZpbmVkKScKICAgZW5kaWYKICAgcHV0ID0gJ2xldCBnOm5ldHJ3X2NvbXByZXNzICAgICAgICAgID0gJy5nOm5ldHJ3X2NvbXByZXNzCisgIHB1dCA9ICdsZXQgZzpuZXRyd19jdXJzb3JsaW5lICAgICAgICA9ICcuZzpuZXRyd19jdXJzb3JsaW5lCiAgIGxldCBkZWNvbXByZXNzbGluZT0gbGluZSgiJCIpCiAgIHB1dCA9J2xldCBnOm5ldHJ3X2RlY29tcHJlc3MuLi4nCiAgIHB1dCA9ICdsZXQgZzpuZXRyd19kaXJoaXN0bWF4ICAgICAgICA9ICcuZzpuZXRyd19kaXJoaXN0bWF4CkBAIC0xMzgsNiArMTQ1LDcgQEAKICAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NwZWNpYWxfc3ludGF4ICAgID0gJy5nOm5ldHJ3X3NwZWNpYWxfc3ludGF4CiAgIHB1dCA9ICdsZXQgZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdCA9ICcuZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdAogICBwdXQgPSAnbGV0IGc6bmV0cndfc2NwcG9ydCAgICAgICAgICAgPSAnLmc6bmV0cndfc2NwcG9ydAorICBwdXQgPSAnbGV0IGc6bmV0cndfc2VwY2hyICAgICAgICAgICAgPSAnLmc6bmV0cndfc2VwY2hyCiAgIHB1dCA9ICdsZXQgZzpuZXRyd19zc2hwb3J0ICAgICAgICAgICA9ICcuZzpuZXRyd19zc2hwb3J0CiAgIHB1dCA9ICdsZXQgZzpuZXRyd190aW1lZm10ICAgICAgICAgICA9ICcuZzpuZXRyd190aW1lZm10CiAgIGxldCB0bXBmaWxlZXNjbGluZT0gbGluZSgiJCIpCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3J1Ynljb21wbGV0ZS52aW0gYi9ydW50aW1lL2F1dG9sb2FkL3J1Ynljb21wbGV0ZS52aW0KaW5kZXggODdlNmM5YS4uODZiYWEwZCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9ydWJ5Y29tcGxldGUudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvcnVieWNvbXBsZXRlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGNvbXBsZXRpb24gc2NyaXB0CiAiIExhbmd1YWdlOiAgICAgICAgICAgICBSdWJ5CiAiIE1haW50YWluZXI6ICAgICAgICAgICBNYXJrIEd1em1hbiA8c2VnZmF1bHRAaGFzbm8uaW5mbz4KLSIgSW5mbzogICAgICAgICAgICAgICAgICRJZCQKKyIgSW5mbzogICAgICAgICAgICAgICAgICRJZDogcnVieWNvbXBsZXRlLnZpbSx2IDEuNDEgMjAwOC8wNi8zMCAwNjo1MDo0NSBzZWd5IEV4cCAkCiAiIFVSTDogICAgICAgICAgICAgICAgICBodHRwOi8vdmltLXJ1YnkucnVieWZvcmdlLm9yZwogIiBBbm9uIENWUzogICAgICAgICAgICAgU2VlIGFib3ZlIHNpdGUKICIgUmVsZWFzZSBDb29yZGluYXRvcjogIERvdWcgS2Vhcm5zIDxkb3Vna2Vhcm5zQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvc3BlbGxmaWxlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvc3BlbGxmaWxlLnZpbQppbmRleCA5OTc5ZjFiLi41MzRhY2M2IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL3NwZWxsZmlsZS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9zcGVsbGZpbGUudmltCkBAIC0xLDYgKzEsNiBAQAogIiBWaW0gc2NyaXB0IHRvIGRvd25sb2FkIGEgbWlzc2luZyBzcGVsbCBmaWxlCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA4IEp1biAyNworIiBMYXN0IENoYW5nZToJMjAwOCBOb3YgMjkKIAogaWYgIWV4aXN0cygnZzpzcGVsbGZpbGVfVVJMJykKICAgIiBQcmVmZXIgdXNpbmcgaHR0cDovLyB3aGVuIG5ldHJ3IHNob3VsZCBiZSBhYmxlIHRvIHVzZSBpdCwgc2luY2UKQEAgLTM5LDE5ICszOSwyMiBAQAogICBsZXQgczpkb25lZGljdFthOmxhbmcgLiAmZW5jXSA9IDEKIAogICAiIEZpbmQgc3BlbGwgZGlyZWN0b3JpZXMgd2UgY2FuIHdyaXRlIGluLgotICBsZXQgZGlybGlzdCA9IFtdCi0gIGxldCBkaXJjaG9pY2VzID0gJyZDYW5jZWwnCi0gIGZvciBkaXIgaW4gc3BsaXQoZ2xvYnBhdGgoJnJ0cCwgJ3NwZWxsJyksICJcbiIpCi0gICAgaWYgZmlsZXdyaXRhYmxlKGRpcikgPT0gMgotICAgICAgY2FsbCBhZGQoZGlybGlzdCwgZGlyKQotICAgICAgbGV0IGRpcmNob2ljZXMgLj0gIlxuJiIgLiBsZW4oZGlybGlzdCkKLSAgICBlbmRpZgotICBlbmRmb3IKKyAgbGV0IFtkaXJsaXN0LCBkaXJjaG9pY2VzXSA9IHNwZWxsZmlsZSNHZXREaXJDaG9pY2VzKCkKICAgaWYgbGVuKGRpcmxpc3QpID09IDAKLSAgICBpZiAmdmVyYm9zZQorICAgIGxldCBkaXJfdG9fY3JlYXRlID0gc3BlbGxmaWxlI1dyaXRhYmxlU3BlbGxEaXIoKQorICAgIGlmICZ2ZXJib3NlIHx8IGRpcl90b19jcmVhdGUgIT0gJycKICAgICAgIGVjaG9tc2cgJ3NwZWxsZmlsZSNMb2FkRmlsZSgpOiBUaGVyZSBpcyBubyB3cml0YWJsZSBzcGVsbCBkaXJlY3RvcnkuJwogICAgIGVuZGlmCi0gICAgcmV0dXJuCisgICAgaWYgZGlyX3RvX2NyZWF0ZSAhPSAnJworICAgICAgaWYgY29uZmlybSgiU2hhbGwgSSBjcmVhdGUgIiAuIGRpcl90b19jcmVhdGUsICImWWVzXG4mTm8iLCAyKSA9PSAxCisJIiBBZnRlciBjcmVhdGluZyB0aGUgZGlyZWN0b3J5IGl0IHNob3VsZCBzaG93IHVwIGluIHRoZSBsaXN0LgorCWNhbGwgbWtkaXIoZGlyX3RvX2NyZWF0ZSwgInAiKQorCWxldCBbZGlybGlzdCwgZGlyY2hvaWNlc10gPSBzcGVsbGZpbGUjR2V0RGlyQ2hvaWNlcygpCisgICAgICBlbmRpZgorICAgIGVuZGlmCisgICAgaWYgbGVuKGRpcmxpc3QpID09IDAKKyAgICAgIHJldHVybgorICAgIGVuZGlmCiAgIGVuZGlmCiAKICAgbGV0IG1zZyA9ICdDYW5ub3QgZmluZCBzcGVsbCBmaWxlIGZvciAiJyAuIGE6bGFuZyAuICciIGluICcgLiAmZW5jCkBAIC0xNzcsMyArMTgwLDI5IEBACiAgICAgdW5sZXQgZzpuZXRyd191c2VfZXJyb3J3aW5kb3cKICAgZW5kaWYKIGVuZGZ1bmMKKworIiBHZXQgYSBsaXN0IG9mIHdyaXRhYmxlIHNwZWxsIGRpcmVjdG9yaWVzIGFuZCBjaG9pY2VzIGZvciBjb25maXJtKCkuCitmdW5jdGlvbiEgc3BlbGxmaWxlI0dldERpckNob2ljZXMoKQorICBsZXQgZGlybGlzdCA9IFtdCisgIGxldCBkaXJjaG9pY2VzID0gJyZDYW5jZWwnCisgIGZvciBkaXIgaW4gc3BsaXQoZ2xvYnBhdGgoJnJ0cCwgJ3NwZWxsJyksICJcbiIpCisgICAgaWYgZmlsZXdyaXRhYmxlKGRpcikgPT0gMgorICAgICAgY2FsbCBhZGQoZGlybGlzdCwgZGlyKQorICAgICAgbGV0IGRpcmNob2ljZXMgLj0gIlxuJiIgLiBsZW4oZGlybGlzdCkKKyAgICBlbmRpZgorICBlbmRmb3IKKyAgcmV0dXJuIFtkaXJsaXN0LCBkaXJjaG9pY2VzXQorZW5kZnVuYworCitmdW5jdGlvbiEgc3BlbGxmaWxlI1dyaXRhYmxlU3BlbGxEaXIoKQorICBpZiBoYXMoInVuaXgiKQorICAgICIgRm9yIFVuaXggYWx3YXlzIHVzZSB0aGUgJEhPTUUvLnZpbSBkaXJlY3RvcnkKKyAgICByZXR1cm4gJEhPTUUgLiAiLy52aW0vc3BlbGwiCisgIGVuZGlmCisgIGZvciBkaXIgaW4gc3BsaXQoJnJ0cCwgJywnKQorICAgIGlmIGZpbGV3cml0YWJsZShkaXIpID09IDIKKyAgICAgIHJldHVybiBkaXIgLiAiL3NwZWxsIgorICAgIGVuZGlmCisgIGVuZGZvcgorICByZXR1cm4gJycKK2VuZGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3NxbGNvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvc3FsY29tcGxldGUudmltCmluZGV4IGVlY2IzMjYuLmFhZTkyZTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvc3FsY29tcGxldGUudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvc3FsY29tcGxldGUudmltCkBAIC0xLDEzICsxLDE5IEBACiAiIFZpbSBPTU5JIGNvbXBsZXRpb24gc2NyaXB0IGZvciBTUUwKICIgTGFuZ3VhZ2U6ICAgIFNRTAotIiBNYWludGFpbmVyOiAgRGF2aWQgRmlzaGJ1cm4gPGZpc2hidXJuQGlhbnl3aGVyZS5jb20+Ci0iIFZlcnNpb246ICAgICA2LjAKLSIgTGFzdCBDaGFuZ2U6IFRodSAwMyBBcHIgMjAwOCAxMDozNzo1NCBQTSBFYXN0ZXJuIERheWxpZ2h0IFRpbWUKKyIgTWFpbnRhaW5lcjogIERhdmlkIEZpc2hidXJuIDxkZmlzaGJ1cm4gZG90IHZpbSBhdCBnbWFpbCBkb3QgY29tPgorIiBWZXJzaW9uOiAgICAgNy4wCisiIExhc3QgQ2hhbmdlOiAyMDA5IEphbiAwNAogIiBVc2FnZTogICAgICAgRm9yIGRldGFpbGVkIGhlbHAKICIgICAgICAgICAgICAgICI6aGVscCBzcWwudHh0IiAKICIgICAgICAgICAgICAgIG9yICI6aGVscCBmdC1zcWwtb21uaSIgCiAiICAgICAgICAgICAgICBvciByZWFkICRWSU1SVU5USU1FL2RvYy9zcWwudHh0CiAKKyIgSGlzdG9yeQorIiBWZXJzaW9uIDcuMAorIiAgICAgQmV0dGVyIGhhbmRsaW5nIG9mIG9iamVjdCBuYW1lcworIiBWZXJzaW9uIDYuMAorIiAgICAgU3VwcG9ydHMgb2JqZWN0IG5hbWVzIHdpdGggc3BhY2VzICJteSB0YWJsZSBuYW1lIgorIgogIiBTZXQgY29tcGxldGlvbiB3aXRoIENUUkwtWCBDVFJMLU8gdG8gYXV0b2xvYWRlZCBmdW5jdGlvbi4KICIgVGhpcyBjaGVjayBpcyBpbiBwbGFjZSBpbiBjYXNlIHRoaXMgc2NyaXB0IGlzCiAiIHNvdXJjZWQgZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZyB0aGUgYXV0b2xvYWQgZmVhdHVyZS4gCkBAIC0yMiw3ICsyOCw3IEBACiBpZiBleGlzdHMoJ2c6bG9hZGVkX3NxbF9jb21wbGV0aW9uJykKICAgICBmaW5pc2ggCiBlbmRpZgotbGV0IGc6bG9hZGVkX3NxbF9jb21wbGV0aW9uID0gNTAKK2xldCBnOmxvYWRlZF9zcWxfY29tcGxldGlvbiA9IDcwCiAKICIgTWFpbnRhaW5zIGZpbGVuYW1lIG9mIGRpY3Rpb25hcnkKIGxldCBzOnNxbF9maWxlX3RhYmxlICAgICAgICA9ICIiCkBAIC0xMDYsMTAgKzExMiwyMyBAQAogICAgICAgICAgICAgbGV0IGJlZ2luZG90ID0gMQogICAgICAgICBlbmRpZgogICAgICAgICB3aGlsZSBzdGFydCA+IDAKLSAgICAgICAgICAgIGlmIGxpbmVbc3RhcnQgLSAxXSA9fiAnXChcd1x8XHNcK1wpJworICAgICAgICAgICAgIiBBZGRpdGlvbmFsIGNvZGUgd2FzIHJlcXVpcmVkIHRvIGhhbmRsZSBvYmplY3RzIHdoaWNoIAorICAgICAgICAgICAgIiBjYW4gY29udGFpbiBzcGFjZXMgbGlrZSAibXkgdGFibGUgbmFtZSIuCisgICAgICAgICAgICBpZiBsaW5lW3N0YXJ0IC0gMV0gIX4gJ1woXHdcfFwuXCknCisgICAgICAgICAgICAgICAgIiBJZiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGlzIG5vdCBhIHBlcmlvZCBvciB3b3JkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAiIGVsc2VpZiBsaW5lW3N0YXJ0IC0gMV0gPX4gJ1woXHdcfFxzXCtcKScKKyAgICAgICAgICAgICIgICAgIGxldCBzdGFydCAtPSAxCisgICAgICAgICAgICBlbHNlaWYgbGluZVtzdGFydCAtIDFdID1+ICdcdycKKyAgICAgICAgICAgICAgICAiIElmIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgaXMgd29yZCBjaGFyYWN0ZXIgY29udGludWUgYmFjawogICAgICAgICAgICAgICAgIGxldCBzdGFydCAtPSAxCiAgICAgICAgICAgICBlbHNlaWYgbGluZVtzdGFydCAtIDFdID1+ICdcLicgJiYgCiAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbXBsX3R5cGUgPX4gJ2NvbHVtblx8dGFibGVcfHZpZXdcfHByb2NlZHVyZScKKyAgICAgICAgICAgICAgICAiIElmIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgaXMgYSBwZXJpb2QgYW5kIHdlIGFyZSBjb21wbGV0aW5nCisgICAgICAgICAgICAgICAgIiBhbiBvYmplY3Qgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCB3aXRoIGEgcGVyaW9kIGxpa2UgdGhpczoKKyAgICAgICAgICAgICAgICAiICAgICB0YWJsZV9uYW1lLmNvbHVtbl9uYW1lCisgICAgICAgICAgICAgICAgIiAgICAgb3duZXJfbmFtZS50YWJsZV9uYW1lCisKICAgICAgICAgICAgICAgICAiIElmIGxhc3R3b3JkIGhhcyBhbHJlYWR5IGJlZW4gc2V0IGZvciBjb2x1bW4gY29tcGxldGlvbgogICAgICAgICAgICAgICAgICIgYnJlYWsgZnJvbSB0aGUgbG9vcCwgc2luY2Ugd2UgZG8gbm90IGFsc28gd2FudCB0byBwaWNrdXAKICAgICAgICAgICAgICAgICAiIGEgdGFibGUgbmFtZSBpZiBpdCB3YXMgYWxzbyBzdXBwbGllZC4KQEAgLTE4NCw5ICsyMDMsMTAgQEAKICAgICAgICAgZW5kaWYKIAogICAgICAgICBsZXQgY29tcGxfdHlwZV91YyA9IHN1YnN0aXR1dGUoY29tcGxfdHlwZSwgJ1x3XCsnLCAnXHUmJywgJycpCi0gICAgICAgIGlmIHM6c3FsX2ZpbGVfe2NvbXBsX3R5cGV9ID09ICIiCi0gICAgICAgICAgICBsZXQgczpzcWxfZmlsZV97Y29tcGxfdHlwZX0gPSBEQl9nZXREaWN0aW9uYXJ5TmFtZShjb21wbF90eXBlX3VjKQotICAgICAgICBlbmRpZgorICAgICAgICAiIFNhbWUgY2FsbCBiZWxvdywgbm8gbmVlZCB0byBkbyBpdCB0d2ljZQorICAgICAgICAiIGlmIHM6c3FsX2ZpbGVfe2NvbXBsX3R5cGV9ID09ICIiCisgICAgICAgICIgICAgIGxldCBzOnNxbF9maWxlX3tjb21wbF90eXBlfSA9IERCX2dldERpY3Rpb25hcnlOYW1lKGNvbXBsX3R5cGVfdWMpCisgICAgICAgICIgZW5kaWYKICAgICAgICAgbGV0IHM6c3FsX2ZpbGVfe2NvbXBsX3R5cGV9ID0gREJfZ2V0RGljdGlvbmFyeU5hbWUoY29tcGxfdHlwZV91YykKICAgICAgICAgaWYgczpzcWxfZmlsZV97Y29tcGxfdHlwZX0gIT0gIiIKICAgICAgICAgICAgIGlmIGZpbGVyZWFkYWJsZShzOnNxbF9maWxlX3tjb21wbF90eXBlfSkKQEAgLTMxMiw5ICszMzIsMTYgQEAKICAgICBlbmRpZgogCiAgICAgaWYgYmFzZSAhPSAnJwotICAgICAgICAiIEZpbHRlciB0aGUgbGlzdCBiYXNlZCBvbiB0aGUgZmlyc3QgZmV3IGNoYXJhY3RlcnMgdGhlIHVzZXIKLSAgICAgICAgIiBlbnRlcmVkCi0gICAgICAgIGxldCBleHByID0gJ3Y6dmFsICcuKGc6b21uaV9zcWxfaWdub3JlY2FzZT09MT8nPX4/JzonPX4jJykuJyAiXFwoXicuYmFzZS4nXFx8XFwoW14uXSpcXClcXD8nLmJhc2UuJ1xcKSInCisgICAgICAgICIgRmlsdGVyIHRoZSBsaXN0IGJhc2VkIG9uIHRoZSBmaXJzdCBmZXcgY2hhcmFjdGVycyB0aGUgdXNlciBlbnRlcmVkLgorICAgICAgICAiIENoZWNrIGlmIHRoZSB0ZXh0IG1hdGNoZXMgYXQgdGhlIGJlZ2lubmluZyAKKyAgICAgICAgIiBvciAKKyAgICAgICAgIiBNYXRjaCB0byBhIG93bmVyLnRhYmxlIG9yIGFsaWFzLmNvbHVtbiB0eXBlIG1hdGNoCisgICAgICAgICIgb3IKKyAgICAgICAgIiBIYW5kbGUgbmFtZXMgd2l0aCBzcGFjZXMgIm15IHRhYmxlIG5hbWUiCisgICAgICAgIGxldCBleHByID0gJ3Y6dmFsICcuKGc6b21uaV9zcWxfaWdub3JlY2FzZT09MT8nPX4/JzonPX4jJykuJyAiXFwoXicuYmFzZS4nXFx8XlxcKFxcd1xcK1xcLlxcKVxcPycuYmFzZS4nXFwpIicKKyAgICAgICAgIiBsZXQgZXhwciA9ICd2OnZhbCAnLihnOm9tbmlfc3FsX2lnbm9yZWNhc2U9PTE/Jz1+Pyc6Jz1+IycpLicgIlxcKF4nLmJhc2UuJ1xcKSInCisgICAgICAgICIgbGV0IGV4cHIgPSAndjp2YWwgJy4oZzpvbW5pX3NxbF9pZ25vcmVjYXNlPT0xPyc9fj8nOic9fiMnKS4nICJcXCheJy5iYXNlLidcXHxcXChcXC5cXClcXD8nLmJhc2UuJ1xcKSInCisgICAgICAgICIgbGV0IGV4cHIgPSAndjp2YWwgJy4oZzpvbW5pX3NxbF9pZ25vcmVjYXNlPT0xPyc9fj8nOic9fiMnKS4nICJcXCheJy5iYXNlLidcXHxcXChbXi5dKlxcKVxcPycuYmFzZS4nXFwpIicKICAgICAgICAgbGV0IGNvbXBsX2xpc3QgPSBmaWx0ZXIoZGVlcGNvcHkoY29tcGxfbGlzdCksIGV4cHIpCiAgICAgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC90YXIudmltIGIvcnVudGltZS9hdXRvbG9hZC90YXIudmltCmluZGV4IGFmNmZiY2EuLjNlNDQ1NzkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvdGFyLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3Rhci52aW0KQEAgLTEsMTMgKzEsMTMgQEAKICIgdGFyLnZpbTogSGFuZGxlcyBicm93c2luZyB0YXJmaWxlcwogIiAgICAgICAgICAgIEFVVE9MT0FEIFBPUlRJT04KLSIgRGF0ZToJCQlBdWcgMDgsIDIwMDgKLSIgVmVyc2lvbjoJCTIzICsgbW9kaWZpY2F0aW9ucyBieSBCcmFtCisiIERhdGU6CQkJRGVjIDI4LCAyMDA5CisiIFZlcnNpb246CQkyNAogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNLU5PU1BBTT4KICIgTGljZW5zZToJCVZpbSBMaWNlbnNlICAoc2VlIHZpbSdzIDpoZWxwIGxpY2Vuc2UpCiAiCiAiCUNvbnRhaW5zIG1hbnkgaWRlYXMgZnJvbSBNaWNoYWVsIFRvcmVuJ3MgPHRhci52aW0+CiAiCi0iIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDggQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKKyIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQogIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKICIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAogIiAgICAgICAgICAgICAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLApAQCAtMTYsMTkgKzE2LDIyIEBACiAiICAgICAgICAgICAgICAgQnkgdXNpbmcgdGhpcyBwbHVnaW4sIHlvdSBhZ3JlZSB0aGF0IGluIG5vIGV2ZW50IHdpbGwgdGhlCiAiICAgICAgICAgICAgICAgY29weXJpZ2h0IGhvbGRlciBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHJlc3VsdGluZyBmcm9tCiAiICAgICAgICAgICAgICAgdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgotCisiICAgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBMb2FkIE9uY2U6IHt7ezEKLWxldCBzOmtlZXBjcG89ICZjcG8KLXNldCBjcG8mdmltCi1pZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF90YXIiKSB8fCB2OnZlcnNpb24gPCA3MDAKK2lmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3RhciIpCiAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX3Rhcj0gInYyM2IiCi0iY2FsbCBEZWNobygibG9hZGluZyBhdXRvbG9hZC90YXIudmltIikKLWlmIHY6dmVyc2lvbiA8IDcwMSB8fCAodjp2ZXJzaW9uID09IDcwMSAmJiAhaGFzKCJwYXRjaDI5OSIpKQotIGVjaG9lcnIgIihhdXRvbG9hZC90YXIudmltKSBuZWVkIHZpbSB2Ny4xIHdpdGggcGF0Y2hsZXZlbCAyOTkiCitsZXQgZzpsb2FkZWRfdGFyPSAidjI0IgoraWYgdjp2ZXJzaW9uIDwgNzAyCisgZWNob2hsIFdhcm5pbmdNc2cKKyBlY2hvICIqKip3YXJuaW5nKioqIHRoaXMgdmVyc2lvbiBvZiB0YXIgbmVlZHMgdmltIDcuMiIKKyBlY2hvaGwgTm9ybWFsCisgZmluaXNoCiBlbmRpZgorbGV0IHM6a2VlcGNwbz0gJmNwbworc2V0IGNwbyZ2aW0KKyJjYWxsIERlY2hvKCJsb2FkaW5nIGF1dG9sb2FkL3Rhci52aW0iKQogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiAgRGVmYXVsdCBTZXR0aW5nczoge3t7MQpAQCAtNDQsNyArNDcsMjIgQEAKIGlmICFleGlzdHMoImc6dGFyX3dyaXRlb3B0aW9ucyIpCiAgbGV0IGc6dGFyX3dyaXRlb3B0aW9ucz0gInVmIgogZW5kaWYKLQoraWYgIWV4aXN0cygiZzp0YXJfY29weWNtZCIpCisgaWYgIWV4aXN0cygiZzpuZXRyd19sb2NhbGNvcHljbWQiKQorICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKKyAgIGlmIGc6bmV0cndfY3lnd2luCisgICAgbGV0IGc6bmV0cndfbG9jYWxjb3B5Y21kPSAiY3AiCisgICBlbHNlCisgICAgbGV0IGc6bmV0cndfbG9jYWxjb3B5Y21kPSAiY29weSIKKyAgIGVuZGlmCisgIGVsc2VpZiBoYXMoInVuaXgiKSB8fCBoYXMoIm1hY3VuaXgiKQorICAgbGV0IGc6bmV0cndfbG9jYWxjb3B5Y21kPSAiY3AiCisgIGVsc2UKKyAgIGxldCBnOm5ldHJ3X2xvY2FsY29weWNtZD0gIiIKKyAgZW5kaWYKKyBlbmRpZgorIGxldCBnOnRhcl9jb3B5Y21kPSBnOm5ldHJ3X2xvY2FsY29weWNtZAorZW5kaWYKIGlmICFleGlzdHMoImc6bmV0cndfY3lnd2luIikKICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKICAgaWYgJnNoZWxsID1+ICdcJShcPGJhc2hcPlx8XDx6c2hcPlwpXCUoXC5leGVcKVw9JCcKQEAgLTU2LDYgKzc0LDkgQEAKICAgbGV0IGc6bmV0cndfY3lnd2luPSAwCiAgZW5kaWYKIGVuZGlmCitpZiAhZXhpc3RzKCJnOnRhcl9leHRyYWN0Y21kIikKKyBsZXQgZzp0YXJfZXh0cmFjdGNtZD0gInRhciAteGYiCitlbmRpZgogCiAiIHNldCB1cCBzaGVsbCBxdW90aW5nIGNoYXJhY3RlcgogaWYgIWV4aXN0cygiZzp0YXJfc2hxIikKQEAgLTg4LDcgKzEwOSw2IEBACiAgIGlmICFleGVjdXRhYmxlKGc6dGFyX2NtZCkKICAgIHJlZHJhdyEKICAgIGVjaG9obCBFcnJvciB8IGVjaG8gJyoqKmVycm9yKioqICh0YXIjQnJvd3NlKSAiJy5nOnRhcl9jbWQuJyIgbm90IGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbScKLSIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBsZXQgJnJlcG9ydD0gcmVwa2VlcAogIiAgIGNhbGwgRHJldCgidGFyI0Jyb3dzZSIpCiAgICByZXR1cm4KQEAgLTk5LDcgKzExOSw2IEBACiAgICAgIiBpZiBpdHMgYW4gdXJsLCBkb24ndCBjb21wbGFpbiwgbGV0IHVybC1oYW5kbGVycyBzdWNoIGFzIHZpbSBkbyBpdHMgdGhpbmcKICAgICByZWRyYXchCiAgICAgZWNob2hsIEVycm9yIHwgZWNobyAiKioqZXJyb3IqKiogKHRhciNCcm93c2UpIEZpbGUgbm90IHJlYWRhYmxlPCIuYTp0YXJmaWxlLiI+IiB8IGVjaG9obCBOb25lCi0iICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgIGVuZGlmCiAgICBsZXQgJnJlcG9ydD0gcmVwa2VlcAogIiAgIGNhbGwgRHJldCgidGFyI0Jyb3dzZSA6IGZpbGU8Ii5hOnRhcmZpbGUuIj4gbm90IHJlYWRhYmxlIikKQEAgLTEzMCwzNyArMTQ5LDM4IEBACiAgIGxldCB0YXJmaWxlPSBhOnRhcmZpbGUKICAgaWYgaGFzKCJ3aW4zMiIpICYmIGV4ZWN1dGFibGUoImN5Z3BhdGgiKQogICAgIiBhc3N1bWluZyBjeWd3aW4KLSAgIGxldCB0YXJmaWxlPXN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoIC11ICIuczpFc2NhcGUodGFyZmlsZSwwKSksJ1xuJCcsJycsJ2UnKQorICAgbGV0IHRhcmZpbGU9c3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggLXUgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApKSwnXG4kJywnJywnZScpCiAgIGVuZGlmCiAgIGxldCBjdXJsYXN0PSBsaW5lKCIkIikKICAgaWYgdGFyZmlsZSA9fiMgJ1wuXChnelx8dGd6XCkkJwotIiAgIGNhbGwgRGVjaG8oIjE6IGV4ZSBzaWxlbnQgciEgZ3ppcCAtZCAtYyAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKLSAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIKKyIgICBjYWxsIERlY2hvKCIxOiBleGUgc2lsZW50IHIhIGd6aXAgLWQgLWMgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCisgICBleGUgInNpbGVudCByISBnemlwIC1kIC1jIC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4iIHwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgLSAiCiAgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5scnAnCi0iICAgY2FsbCBEZWNobygiMjogZXhlIHNpbGVudCByISBjYXQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiJ8Z3ppcCAtZCAtYyAtfCIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKLSAgIGV4ZSAic2lsZW50IHIhIGNhdCAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuInxnemlwIC1kIC1jIC18Ii5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgLSAiCisiICAgY2FsbCBEZWNobygiMjogZXhlIHNpbGVudCByISBjYXQgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiJ8Z3ppcCAtZCAtYyAtfCIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKKyAgIGV4ZSAic2lsZW50IHIhIGNhdCAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuInxnemlwIC1kIC1jIC18Ii5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgLSAiCiAgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5iejIkJwotIiAgIGNhbGwgRGVjaG8oIjM6IGV4ZSBzaWxlbnQgciEgYnppcDIgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCi0gICBleGUgInNpbGVudCByISBiemlwMiAtZCAtYyAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgorIiAgIGNhbGwgRGVjaG8oIjM6IGV4ZSBzaWxlbnQgciEgYnppcDIgLWQgLWMgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCisgICBleGUgInNpbGVudCByISBiemlwMiAtZCAtYyAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgorICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wubHptYSQnCisiICAgY2FsbCBEZWNobygiMzogZXhlIHNpbGVudCByISBsem1hIC1kIC1jIC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4iIHwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgLSAiKQorICAgZXhlICJzaWxlbnQgciEgbHptYSAtZCAtYyAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgogICBlbHNlCiAgICBpZiB0YXJmaWxlID1+ICdeXHMqLScKLSAgICAiIEEgZmlsZSBuYW1lIHN0YXJ0aW5nIHdpdGggYSBkYXNoIG1heSBiZSB0YWtlbiBhcyBhbiBvcHRpb24uICBQcmVwZW5kIC4vIHRvIGF2b2lkIHRoYXQuCisgICAgIiBBIGZpbGUgbmFtZSBzdGFydGluZyB3aXRoIGEgZGFzaCBpcyB0YWtlbiBhcyBhbiBvcHRpb24uICBQcmVwZW5kIC4vIHRvIGF2b2lkIHRoYXQuCiAgICAgbGV0IHRhcmZpbGUgPSBzdWJzdGl0dXRlKHRhcmZpbGUsICctJywgJy4vLScsICcnKQogICAgZW5kaWYKLSIgICBjYWxsIERlY2hvKCI0OiBleGUgc2lsZW50IHIhICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iICIuczpFc2NhcGUodGFyZmlsZSwxKSkKLSAgIGV4ZSAic2lsZW50IHIhICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iICIuczpFc2NhcGUodGFyZmlsZSwxKQorIiAgIGNhbGwgRGVjaG8oIjQ6IGV4ZSBzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApKQorICAgZXhlICJzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpCiAgIGVuZGlmCiAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogICAgcmVkcmF3IQogICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKip3YXJuaW5nKioqICh0YXIjQnJvd3NlKSBwbGVhc2UgY2hlY2sgeW91ciBnOnRhcl9icm93c2VvcHRpb25zPCIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iPiIKLSIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAiICAgY2FsbCBEcmV0KCJ0YXIjQnJvd3NlIDogYTp0YXJmaWxlPCIuYTp0YXJmaWxlLiI+IikKICAgIHJldHVybgogICBlbmRpZgogICBpZiBsaW5lKCIkIikgPT0gY3VybGFzdCB8fCAoIGxpbmUoIiQiKSA9PSAoY3VybGFzdCArIDEpICYmIGdldGxpbmUoIiQiKSA9fiAnXGNcJSh3YXJuaW5nXHxlcnJvclx8aW5hcHByb3ByaWF0ZVx8dW5yZWNvZ25pemVkXCknKQogICAgcmVkcmF3IQogICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKip3YXJuaW5nKioqICh0YXIjQnJvd3NlKSAiLmE6dGFyZmlsZS4iIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgdGFyIGZpbGUiIHwgZWNob2hsIE5vbmUKLSIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBzaWxlbnQgJWQKICAgIGxldCBlaWtlZXA9ICZlaQogICAgc2V0IGVpPUJ1ZlJlYWRDbWQsRmlsZVJlYWRDbWQKQEAgLTE4OSw3ICsyMDksNyBAQAogCiAgIGlmICFleGlzdHMoImc6dGFyX3NlY3VyZSIpICYmIGZuYW1lID1+ICdeXHMqLVx8XHNcKy0nCiAgICByZWRyYXchCi0gICBlY2hvaGwgV2FybmluZ01zZyB8IGVjaG8gJyoqKmVycm9yKioqICh0YXIjQnJvd3NlU2VsZWN0KSByZWplY3RpbmcgdGFyZmlsZSBtZW1iZXI8Jy5mbmFtZS4nPiBiZWNhdXNlIG9mIGVtYmVkZGVkICItIjsgU2VlIDpoZWxwIHRhci1vcHRpb25zJworICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICcqKip3YXJuaW5nKioqICh0YXIjQnJvd3NlU2VsZWN0KSByZWplY3RpbmcgdGFyZmlsZSBtZW1iZXI8Jy5mbmFtZS4nPiBiZWNhdXNlIG9mIGVtYmVkZGVkICItIicKICIgICBjYWxsIERyZXQoJ3RhciNCcm93c2VTZWxlY3QgOiByZWplY3RpbmcgdGFyZmlsZSBtZW1iZXI8Jy5mbmFtZS4nPiBiZWNhdXNlIG9mIGVtYmVkZGVkICItIicpCiAgICByZXR1cm4KICAgZW5kaWYKQEAgLTIwNiw3ICsyMjYsNyBAQAogICBsZXQgY3VyZmlsZT0gZXhwYW5kKCIlIikKICAgaWYgaGFzKCJ3aW4zMiIpICYmIGV4ZWN1dGFibGUoImN5Z3BhdGgiKQogICAgIiBhc3N1bWluZyBjeWd3aW4KLSAgIGxldCB0YXJmaWxlPXN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoIC11ICIuczpFc2NhcGUodGFyZmlsZSwwKSksJ1xuJCcsJycsJ2UnKQorICAgbGV0IHRhcmZpbGU9c3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggLXUgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApKSwnXG4kJywnJywnZScpCiAgIGVuZGlmCiAKICAgbmV3CkBAIC0yMzEsMjEgKzI1MSwyNCBAQAogICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoYTpmbmFtZSwndGFyZmlsZTouXHstfTo6XCguKlwpJCcsJ1wxJywnJykKICAgaWYgaGFzKCJ3aW4zMiIpICYmIGV4ZWN1dGFibGUoImN5Z3BhdGgiKQogICAgIiBhc3N1bWluZyBjeWd3aW4KLSAgIGxldCB0YXJmaWxlPXN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoIC11ICIuczpFc2NhcGUodGFyZmlsZSwwKSksJ1xuJCcsJycsJ2UnKQorICAgbGV0IHRhcmZpbGU9c3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggLXUgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApKSwnXG4kJywnJywnZScpCiAgIGVuZGlmCiAiICBjYWxsIERlY2hvKCJ0YXJmaWxlPCIudGFyZmlsZS4iPiIpCiAiICBjYWxsIERlY2hvKCJmbmFtZTwiLmZuYW1lLiI+IikKIAotICBpZiAgICAgIGZuYW1lID1+ICdcLmd6JCcgICYmIGV4ZWN1dGFibGUoInpjYXQiKQorICBpZiAgZm5hbWUgPX4gJ1wuYnoyJCcgJiYgZXhlY3V0YWJsZSgiYnpjYXQiKQorICAgbGV0IGRlY21wPSAifGJ6Y2F0IgorICAgbGV0IGRvcm8gPSAxCisgIGVsc2VpZiAgICAgIGZuYW1lID1+ICdcLmd6JCcgICYmIGV4ZWN1dGFibGUoInpjYXQiKQogICAgbGV0IGRlY21wPSAifHpjYXQiCiAgICBsZXQgZG9ybyA9IDEKLSAgZWxzZWlmICBmbmFtZSA9fiAnXC5iejIkJyAmJiBleGVjdXRhYmxlKCJiemNhdCIpCi0gICBsZXQgZGVjbXA9ICJ8YnpjYXQiCisgIGVsc2VpZiAgZm5hbWUgPX4gJ1wubHptYSQnICYmIGV4ZWN1dGFibGUoImx6Y2F0IikKKyAgIGxldCBkZWNtcD0gInxsemNhdCIKICAgIGxldCBkb3JvID0gMQogICBlbHNlCiAgICBsZXQgZGVjbXA9IiIKICAgIGxldCBkb3JvID0gMAotICAgaWYgZm5hbWUgPX4gJ1wuZ3okXHxcLmJ6MiRcfFwuWiRcfFwuemlwJCcKKyAgIGlmIGZuYW1lID1+ICdcLmJ6MiRcfFwuZ3okXHxcLmx6bWEkXHxcLnppcCRcfFwuWiQnCiAgICAgc2V0bG9jYWwgYmluCiAgICBlbmRpZgogICBlbmRpZgpAQCAtMjU1LDIyICsyNzgsMjUgQEAKICAgZWxzZQogICAgbGV0IHRhcl9zZWN1cmU9ICIgIgogICBlbmRpZgotICBpZiB0YXJmaWxlID1+IyAnXC5cKGd6XHx0Z3pcKSQnCi0iICAgY2FsbCBEZWNobygiNTogZXhlIHNpbGVudCByISBnemlwIC1kIC1jIC0tICIuczpFc2NhcGUodGFyZmlsZSwxKS4ifCAiLmc6dGFyX2NtZC4nIC0nLmc6dGFyX3JlYWRvcHRpb25zLicgLSAnLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMSkpCi0gICBleGUgInNpbGVudCByISBnemlwIC1kIC1jIC0tICIuczpFc2NhcGUodGFyZmlsZSwxKS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXAKKyAgaWYgdGFyZmlsZSA9fiMgJ1wuYnoyJCcKKyIgICBjYWxsIERlY2hvKCI3OiBleGUgc2lsZW50IHIhIGJ6aXAyIC1kIC1jICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnRhcl9zZWN1cmUuc2hlbGxlc2NhcGUoZm5hbWUsMSkuZGVjbXApCisgICBleGUgInNpbGVudCByISBiemlwMiAtZCAtYyAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi50YXJfc2VjdXJlLnNoZWxsZXNjYXBlKGZuYW1lLDEpLmRlY21wCisgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5cKGd6XHx0Z3pcKSQnCisiICAgY2FsbCBEZWNobygiNTogZXhlIHNpbGVudCByISBnemlwIC1kIC1jIC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4ifCAiLmc6dGFyX2NtZC4nIC0nLmc6dGFyX3JlYWRvcHRpb25zLicgLSAnLnRhcl9zZWN1cmUuc2hlbGxlc2NhcGUoZm5hbWUsMSkpCisgICBleGUgInNpbGVudCByISBnemlwIC1kIC1jIC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnRhcl9zZWN1cmUuc2hlbGxlc2NhcGUoZm5hbWUsMSkuZGVjbXAKICAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmxycCQnCi0iICAgY2FsbCBEZWNobygiNjogZXhlIHNpbGVudCByISBjYXQgIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCBnemlwIC1kIC1jIC0gfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXApCi0gICBleGUgInNpbGVudCByISBjYXQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCBnemlwIC1kIC1jIC0gfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXAKLSAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmJ6MiQnCi0iICAgY2FsbCBEZWNobygiNzogZXhlIHNpbGVudCByISBiemlwMiAtZCAtYyAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi50YXJfc2VjdXJlLnM6RXNjYXBlKGZuYW1lLDEpLmRlY21wKQotICAgZXhlICJzaWxlbnQgciEgYnppcDIgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiJ8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICIudGFyX3NlY3VyZS5zOkVzY2FwZShmbmFtZSwxKS5kZWNtcAorIiAgIGNhbGwgRGVjaG8oIjY6IGV4ZSBzaWxlbnQgciEgY2F0ICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4iIHwgZ3ppcCAtZCAtYyAtIHwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi50YXJfc2VjdXJlLnNoZWxsZXNjYXBlKGZuYW1lLDEpLmRlY21wKQorICAgZXhlICJzaWxlbnQgciEgY2F0IC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4iIHwgZ3ppcCAtZCAtYyAtIHwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi50YXJfc2VjdXJlLnNoZWxsZXNjYXBlKGZuYW1lLDEpLmRlY21wCisgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5sem1hJCcKKyIgICBjYWxsIERlY2hvKCI3OiBleGUgc2lsZW50IHIhIGx6bWEgLWQgLWMgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiJ8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICIudGFyX3NlY3VyZS5zaGVsbGVzY2FwZShmbmFtZSwxKS5kZWNtcCkKKyAgIGV4ZSAic2lsZW50IHIhIGx6bWEgLWQgLWMgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiJ8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICIudGFyX3NlY3VyZS5zaGVsbGVzY2FwZShmbmFtZSwxKS5kZWNtcAogICBlbHNlCiAgICBpZiB0YXJmaWxlID1+ICdeXHMqLScKLSAgICAiIEEgZmlsZSBuYW1lIHN0YXJ0aW5nIHdpdGggYSBkYXNoIG1heSBiZSB0YWtlbiBhcyBhbiBvcHRpb24uICBQcmVwZW5kIC4vIHRvIGF2b2lkIHRoYXQuCisgICAgIiBBIGZpbGUgbmFtZSBzdGFydGluZyB3aXRoIGEgZGFzaCBpcyB0YWtlbiBhcyBhbiBvcHRpb24uICBQcmVwZW5kIC4vIHRvIGF2b2lkIHRoYXQuCiAgICAgbGV0IHRhcmZpbGUgPSBzdWJzdGl0dXRlKHRhcmZpbGUsICctJywgJy4vLScsICcnKQogICAgZW5kaWYKLSIgICBjYWxsIERlY2hvKCI4OiBleGUgc2lsZW50IHIhICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAiczpFc2NhcGUodGFyZmlsZSwxKS50YXJfc2VjdXJlLi5zOkVzY2FwZShmbmFtZSwxKS5kZWNtcCkKLSAgIGV4ZSAic2lsZW50IHIhICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAiLnM6RXNjYXBlKHRhcmZpbGUsMSkudGFyX3NlY3VyZS5zOkVzY2FwZShmbmFtZSwxKS5kZWNtcAorIiAgIGNhbGwgRGVjaG8oIjg6IGV4ZSBzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy50YXJfc2VjdXJlLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuIiAiLnNoZWxsZXNjYXBlKGZuYW1lLDEpLmRlY21wKQorICAgZXhlICJzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiIgIi50YXJfc2VjdXJlLnNoZWxsZXNjYXBlKGZuYW1lLDEpLmRlY21wCiAgIGVuZGlmCiAKICAgaWYgZG9ybwpAQCAtMjk4LDcgKzMyNCw3IEBACiAKICAgaWYgIWV4aXN0cygiZzp0YXJfc2VjdXJlIikgJiYgYTpmbmFtZSA9fiAnXlxzKi1cfFxzXCstJwogICAgcmVkcmF3IQotICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICcqKiplcnJvcioqKiAodGFyI1dyaXRlKSByZWplY3RpbmcgdGFyZmlsZSBtZW1iZXI8Jy5hOmZuYW1lLic+IGJlY2F1c2Ugb2YgZW1iZWRkZWQgIi0iOyBTZWUgOmhlbHAgdGFyLW9wdGlvbnMnCisgICBlY2hvaGwgV2FybmluZ01zZyB8IGVjaG8gJyoqKndhcm5pbmcqKiogKHRhciNXcml0ZSkgcmVqZWN0aW5nIHRhcmZpbGUgbWVtYmVyPCcuYTpmbmFtZS4nPiBiZWNhdXNlIG9mIGVtYmVkZGVkICItIicKICIgICBjYWxsIERyZXQoJ3RhciNXcml0ZSA6IHJlamVjdGluZyB0YXJmaWxlIG1lbWJlcjwnLmZuYW1lLic+IGJlY2F1c2Ugb2YgZW1iZWRkZWQgIi0iJykKICAgIHJldHVybgogICBlbmRpZgpAQCAtMzA3LDcgKzMzMyw2IEBACiAgIGlmICFleGVjdXRhYmxlKGc6dGFyX2NtZCkKICAgIHJlZHJhdyEKICAgIGVjaG9obCBFcnJvciB8IGVjaG8gJyoqKmVycm9yKioqICh0YXIjQnJvd3NlKSAiJy5nOnRhcl9jbWQuJyIgbm90IGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbScKLSIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBsZXQgJnJlcG9ydD0gcmVwa2VlcAogIiAgIGNhbGwgRHJldCgidGFyI1dyaXRlIikKICAgIHJldHVybgpAQCAtMzE1LDcgKzM0MCw2IEBACiAgIGlmICFleGlzdHMoIipta2RpciIpCiAgICByZWRyYXchCiAgICBlY2hvaGwgRXJyb3IgfCBlY2hvICIqKiplcnJvcioqKiAodGFyI1dyaXRlKSBzb3JyeSwgbWtkaXIoKSBkb2Vzbid0IHdvcmsgb24geW91ciBzeXN0ZW0iIHwgZWNob2hsIE5vbmUKLSIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBsZXQgJnJlcG9ydD0gcmVwa2VlcAogIiAgIGNhbGwgRHJldCgidGFyI1dyaXRlIikKICAgIHJldHVybgpAQCAtMzM2LDcgKzM2MCw2IEBACiAgIGNhdGNoIC9eVmltXCUoKFxhXCspXClcPTpFMzQ0LwogICAgcmVkcmF3IQogICAgZWNob2hsIEVycm9yIHwgZWNobyAiKioqZXJyb3IqKiogKHRhciNXcml0ZSkgY2Fubm90IGNkIHRvIHRlbXBvcmFyeSBkaXJlY3RvcnkiIHwgRWNob2hsIE5vbmUKLSIgICBjYWxsIGlucHV0c2F2ZSgpfGNhbGwgaW5wdXQoIlByZXNzIDxjcj4gdG8gY29udGludWUiKXxjYWxsIGlucHV0cmVzdG9yZSgpCiAgICBsZXQgJnJlcG9ydD0gcmVwa2VlcAogIiAgIGNhbGwgRHJldCgidGFyI1dyaXRlIikKICAgIHJldHVybgpAQCAtMzU1LDI5ICszNzgsMzMgQEAKICAgbGV0IGZuYW1lICAgPSBzdWJzdGl0dXRlKHc6dGFyZmlsZSwndGFyZmlsZTouXHstfTo6XCguKlwpJCcsJ1wxJywnJykKIAogICAiIGhhbmRsZSBjb21wcmVzc2VkIGFyY2hpdmVzCi0gIGlmIHRhcmZpbGUgPX4jICdcLmd6JwotICAgY2FsbCBzeXN0ZW0oImd6aXAgLWQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDApKQorICBpZiB0YXJmaWxlID1+IyAnXC5iejInCisgICBjYWxsIHN5c3RlbSgiYnppcDIgLWQgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApKQorICAgbGV0IHRhcmZpbGUgPSBzdWJzdGl0dXRlKHRhcmZpbGUsJ1wuYnoyJywnJywnZScpCisgICBsZXQgY29tcHJlc3M9ICJiemlwMiAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMCkKKyIgICBjYWxsIERlY2hvKCJjb21wcmVzczwiLmNvbXByZXNzLiI+IikKKyAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmd6JworICAgY2FsbCBzeXN0ZW0oImd6aXAgLWQgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApKQogICAgbGV0IHRhcmZpbGUgPSBzdWJzdGl0dXRlKHRhcmZpbGUsJ1wuZ3onLCcnLCdlJykKLSAgIGxldCBjb21wcmVzcz0gImd6aXAgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDApCisgICBsZXQgY29tcHJlc3M9ICJnemlwIC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwwKQorIiAgIGNhbGwgRGVjaG8oImNvbXByZXNzPCIuY29tcHJlc3MuIj4iKQorICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wubHptYScKKyAgIGNhbGwgc3lzdGVtKCJsem1hIC1kIC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwwKSkKKyAgIGxldCB0YXJmaWxlID0gc3Vic3RpdHV0ZSh0YXJmaWxlLCdcLmx6bWEnLCcnLCdlJykKKyAgIGxldCBjb21wcmVzcz0gImx6bWEgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApCiAiICAgY2FsbCBEZWNobygiY29tcHJlc3M8Ii5jb21wcmVzcy4iPiIpCiAgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC50Z3onCi0gICBjYWxsIHN5c3RlbSgiZ3ppcCAtZCAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMCkpCisgICBjYWxsIHN5c3RlbSgiZ3ppcCAtZCAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMCkpCiAgICBsZXQgdGFyZmlsZSA9IHN1YnN0aXR1dGUodGFyZmlsZSwnXC50Z3onLCcudGFyJywnZScpCi0gICBsZXQgY29tcHJlc3M9ICJnemlwIC0tICIuczpFc2NhcGUodGFyZmlsZSwwKQorICAgbGV0IGNvbXByZXNzPSAiZ3ppcCAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMCkKICAgIGxldCB0Z3ogICAgID0gMQogIiAgIGNhbGwgRGVjaG8oImNvbXByZXNzPCIuY29tcHJlc3MuIj4iKQotICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wuYnoyJwotICAgY2FsbCBzeXN0ZW0oImJ6aXAyIC1kIC0tICIuczpFc2NhcGUodGFyZmlsZSwwKSkKLSAgIGxldCB0YXJmaWxlID0gc3Vic3RpdHV0ZSh0YXJmaWxlLCdcLmJ6MicsJycsJ2UnKQotICAgbGV0IGNvbXByZXNzPSAiYnppcDIgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDApCi0iICAgY2FsbCBEZWNobygiY29tcHJlc3M8Ii5jb21wcmVzcy4iPiIpCiAgIGVuZGlmCiAiICBjYWxsIERlY2hvKCJ0YXJmaWxlPCIudGFyZmlsZS4iPiIpCiAKICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwCiAgICByZWRyYXchCiAgICBlY2hvaGwgRXJyb3IgfCBlY2hvICIqKiplcnJvcioqKiAodGFyI1dyaXRlKSBzb3JyeSwgdW5hYmxlIHRvIHVwZGF0ZSAiLnRhcmZpbGUuIiB3aXRoICIuZm5hbWUgfCBlY2hvaGwgTm9uZQotIiAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgZWxzZQogCiAiICAgY2FsbCBEZWNobygidGFyZmlsZTwiLnRhcmZpbGUuIj4gZm5hbWU8Ii5mbmFtZS4iPiIpCkBAIC0zODUsNyArNDEyLDcgQEAKICAgIGlmIGZuYW1lID1+ICcvJwogICAgIGxldCBkaXJwYXRoID0gc3Vic3RpdHV0ZShmbmFtZSwnL1teL11cKyQnLCcnLCdlJykKICAgICBpZiBleGVjdXRhYmxlKCJjeWdwYXRoIikKLSAgICAgbGV0IGRpcnBhdGggPSBzdWJzdGl0dXRlKHN5c3RlbSgiY3lncGF0aCAiLnM6RXNjYXBlKGRpcnBhdGgsIDApKSwnXG4nLCcnLCdlJykKKyAgICAgbGV0IGRpcnBhdGggPSBzdWJzdGl0dXRlKHN5c3RlbSgiY3lncGF0aCAiLnNoZWxsZXNjYXBlKGRpcnBhdGgsIDApKSwnXG4nLCcnLCdlJykKICAgICBlbmRpZgogICAgIGNhbGwgbWtkaXIoZGlycGF0aCwicCIpCiAgICBlbmRpZgpAQCAtNDA1LDI1ICs0MzIsMjMgQEAKICAgIGVuZGlmCiAgICBleGUgInchICIuZm5hbWVlc2NhcGUoZm5hbWUpCiAgICBpZiBleGVjdXRhYmxlKCJjeWdwYXRoIikKLSAgICBsZXQgdGFyZmlsZSA9IHN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoICIuczpFc2NhcGUodGFyZmlsZSwwKSksJ1xuJywnJywnZScpCisgICAgbGV0IHRhcmZpbGUgPSBzdWJzdGl0dXRlKHN5c3RlbSgiY3lncGF0aCAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMCkpLCdcbicsJycsJ2UnKQogICAgZW5kaWYKICAKICAgICIgZGVsZXRlIG9sZCBmaWxlIGZyb20gdGFyZmlsZQotIiAgIGNhbGwgRGVjaG8oInN5c3RlbSgiLmc6dGFyX2NtZC4iIC0tZGVsZXRlIC1mICIuczpFc2NhcGUodGFyZmlsZSwwKS4iIC0tICIuczpFc2NhcGUoZm5hbWUsMCkuIikiKQotICAgY2FsbCBzeXN0ZW0oZzp0YXJfY21kLiIgLS1kZWxldGUgLWYgIi5zOkVzY2FwZSh0YXJmaWxlLDApLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMCkpCisiICAgY2FsbCBEZWNobygic3lzdGVtKCIuZzp0YXJfY21kLiIgLS1kZWxldGUgLWYgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApLiIgLS0gIi5zaGVsbGVzY2FwZShmbmFtZSwwKS4iKSIpCisgICBjYWxsIHN5c3RlbShnOnRhcl9jbWQuIiAtLWRlbGV0ZSAtZiAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMCkudGFyX3NlY3VyZS5zaGVsbGVzY2FwZShmbmFtZSwwKSkKICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogICAgIHJlZHJhdyEKICAgICBlY2hvaGwgRXJyb3IgfCBlY2hvICIqKiplcnJvcioqKiAodGFyI1dyaXRlKSBzb3JyeSwgdW5hYmxlIHRvIHVwZGF0ZSAiLmZuYW1lZXNjYXBlKHRhcmZpbGUpLiIgd2l0aCAiLmZuYW1lZXNjYXBlKGZuYW1lKSB8IGVjaG9obCBOb25lCi0iICAgIGNhbGwgaW5wdXRzYXZlKCl8Y2FsbCBpbnB1dCgiUHJlc3MgPGNyPiB0byBjb250aW51ZSIpfGNhbGwgaW5wdXRyZXN0b3JlKCkKICAgIGVsc2UKICAKICAgICAiIHVwZGF0ZSB0YXJmaWxlIHdpdGggbmV3IGZpbGUgCi0iICAgIGNhbGwgRGVjaG8oZzp0YXJfY21kLiIgLSIuZzp0YXJfd3JpdGVvcHRpb25zLiIgIi5zOkVzY2FwZSh0YXJmaWxlLDApLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMCkpCi0gICAgY2FsbCBzeXN0ZW0oZzp0YXJfY21kLiIgLSIuZzp0YXJfd3JpdGVvcHRpb25zLiIgIi5zOkVzY2FwZSh0YXJmaWxlLDApLnRhcl9zZWN1cmUuczpFc2NhcGUoZm5hbWUsMCkpCisiICAgIGNhbGwgRGVjaG8oZzp0YXJfY21kLiIgLSIuZzp0YXJfd3JpdGVvcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApLnRhcl9zZWN1cmUuc2hlbGxlc2NhcGUoZm5hbWUsMCkpCisgICAgY2FsbCBzeXN0ZW0oZzp0YXJfY21kLiIgLSIuZzp0YXJfd3JpdGVvcHRpb25zLiIgIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDApLnRhcl9zZWN1cmUuc2hlbGxlc2NhcGUoZm5hbWUsMCkpCiAgICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwCiAgICAgIHJlZHJhdyEKICAgICAgZWNob2hsIEVycm9yIHwgZWNobyAiKioqZXJyb3IqKiogKHRhciNXcml0ZSkgc29ycnksIHVuYWJsZSB0byB1cGRhdGUgIi5mbmFtZWVzY2FwZSh0YXJmaWxlKS4iIHdpdGggIi5mbmFtZWVzY2FwZShmbmFtZSkgfCBlY2hvaGwgTm9uZQotIiAgICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgIGVsc2VpZiBleGlzdHMoImNvbXByZXNzIikKICIgICAgIGNhbGwgRGVjaG8oImNhbGwgc3lzdGVtKCIuY29tcHJlc3MuIikiKQogICAgICBjYWxsIHN5c3RlbShjb21wcmVzcykKQEAgLTQzOSwxMyArNDY0LDEzIEBACiAiICAgIGNhbGwgRGVjaG8oImhhbmRsZSB3cml0aW5nIDwiLnRhcmZpbGUuIj4gYWNyb3NzIG5ldHdvcmsgdG8gPCIuczp0YmxmaWxlX3t3aW5ucigpfS4iPiIpCiAgICAgbGV0IHRibGZpbGU9IHM6dGJsZmlsZV97d2lubnIoKX0KICAgICAxc3BsaXR8ZW5ldwotICAgIGxldCBiaW5rZWVwPSAmYmluYXJ5CisgICAgbGV0IGJpbmtlZXA9ICZsOmJpbmFyeQogICAgIGxldCBlaWtlZXAgPSAmZWkKICAgICBzZXQgYmluYXJ5IGVpPWFsbAogICAgIGV4ZSAiZSEgIi5mbmFtZWVzY2FwZSh0YXJmaWxlKQogICAgIGNhbGwgbmV0cncjTmV0V3JpdGUodGJsZmlsZSkKLSAgICBsZXQgJmVpICAgICA9IGVpa2VlcAotICAgIGxldCAmYmluYXJ5ID0gYmlua2VlcAorICAgIGxldCAmZWkgICAgICAgPSBlaWtlZXAKKyAgICBsZXQgJmw6YmluYXJ5ID0gYmlua2VlcAogICAgIHEhCiAgICAgdW5sZXQgczp0YmxmaWxlX3t3aW5ucigpfQogICAgZW5kaWYKQEAgLTQ2MiwzOCArNDg3LDk4IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgUm1kaXI6IHt7ezIKKyIgczpSbWRpcjoge3t7MgogZnVuISBzOlJtZGlyKGZuYW1lKQogIiAgY2FsbCBEZnVuYygiUm1kaXIoZm5hbWU8Ii5hOmZuYW1lLiI+KSIpCiAgIGlmIGhhcygidW5peCIpCi0gICBjYWxsIHN5c3RlbSgiL2Jpbi9ybSAtcmYgLS0gIi5zOkVzY2FwZShhOmZuYW1lLDApKQorICAgY2FsbCBzeXN0ZW0oIi9iaW4vcm0gLXJmIC0tICIuc2hlbGxlc2NhcGUoYTpmbmFtZSwwKSkKICAgZWxzZWlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQogICAgaWYgJnNoZWxsID1+PyAic2gkIgotICAgIGNhbGwgc3lzdGVtKCIvYmluL3JtIC1yZiAtLSAiLnM6RXNjYXBlKGE6Zm5hbWUsMCkpCisgICAgY2FsbCBzeXN0ZW0oIi9iaW4vcm0gLXJmIC0tICIuc2hlbGxlc2NhcGUoYTpmbmFtZSwwKSkKICAgIGVsc2UKLSAgICBjYWxsIHN5c3RlbSgiZGVsIC9TICIuczpFc2NhcGUoYTpmbmFtZSwwKSkKKyAgICBjYWxsIHN5c3RlbSgiZGVsIC9TICIuc2hlbGxlc2NhcGUoYTpmbmFtZSwwKSkKICAgIGVuZGlmCiAgIGVuZGlmCiAiICBjYWxsIERyZXQoIlJtZGlyIikKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOkVzY2FwZToge3t7MgotZnVuIHM6RXNjYXBlKG5hbWUsaXNmaWx0KQotICAiIHNoZWxsZXNjYXBlKCkgd2FzIGFkZGVkIGJ5IHBhdGNoIDcuMC4xMTEKLSAgaWYgZXhpc3RzKCIqc2hlbGxlc2NhcGUiKQotICAgaWYgYTppc2ZpbHQKLSAgICBsZXQgcW5hbWVxPSBzaGVsbGVzY2FwZShhOm5hbWUsMSkKKyIgdGFyI1ZpbXVudGFyOiBpbnN0YWxscyBhIHRhcmJhbGwgaW4gdGhlIHVzZXIncyAudmltIC8gdmltZmlsZXMgZGlyZWN0b3J5IHt7ezIKK2Z1biEgdGFyI1ZpbXVudGFyKC4uLikKKyIgIGNhbGwgRGZ1bmMoInRhciNWaW11bnRhcigpIGE6MD0iLmE6MC4iIGE6MTwiLihleGlzdHMoImE6MSIpPyBhOjEgOiAiLW4vYS0iKS4iPiIpCisgIGxldCB0YXJiYWxsID0gZXhwYW5kKCIlIikKKyIgIGNhbGwgRGVjaG8oInRhcmJhbGw8Ii50YXJiYWxsLiI+IikKKyAgbGV0IHRhcmJhc2UgPSBzdWJzdGl0dXRlKHRhcmJhbGwsJ1wuLiokJywnJywnJykKKyIgIGNhbGwgRGVjaG8oInRhcmJhc2U8Ii50YXJiYXNlLiI+IikKKyAgbGV0IHRhcmhvbWUgPSBleHBhbmQoIiU6cCIpCisgIGlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQorICAgbGV0IHRhcmhvbWU9IHN1YnN0aXR1dGUodGFyaG9tZSwnXFwnLCcvJywnZycpCisgIGVuZGlmCisgIGxldCB0YXJob21lPSBzdWJzdGl0dXRlKHRhcmhvbWUsJy9bXi9dKiQnLCcnLCcnKQorIiAgY2FsbCBEZWNobygidGFyaG9tZTwiLnRhcmhvbWUuIj4iKQorICBsZXQgdGFydGFpbCA9IGV4cGFuZCgiJTp0IikKKyIgIGNhbGwgRGVjaG8oInRhcnRhaWw8Ii50YXJ0YWlsLiI+IikKKyAgbGV0IGN1cmRpciAgPSBnZXRjd2QoKQorIiAgY2FsbCBEZWNobygiY3VyZGlyIDwiLmN1cmRpci4iPiIpCisgICIgc2V0IHVwIHZpbWhvbWUKKyAgaWYgYTowID4gMCAmJiBhOjEgIT0gIiIKKyAgIGxldCB2aW1ob21lPSBhOjEKKyAgZWxzZQorICAgbGV0IHZpbWhvbWU9IHZpbWJhbGwjVmltYmFsbEhvbWUoKQorICBlbmRpZgorIiAgY2FsbCBEZWNobygidmltaG9tZTwiLnZpbWhvbWUuIj4iKQorCisiICBjYWxsIERlY2hvKCJjdXJkaXI8Ii5jdXJkaXIuIj4gdmltaG9tZTwiLnZpbWhvbWUuIj4iKQorICBpZiBzaW1wbGlmeShjdXJkaXIpICE9IHNpbXBsaWZ5KHZpbWhvbWUpCisgICAiIGNvcHkgKHBvc3NpYmx5IGNvbXByZXNzZWQpIHRhcmJhbGwgdG8gLnZpbS92aW1maWxlcworIiAgIGNhbGwgRGVjaG8obmV0cncjV2luUGF0aChnOnRhcl9jb3B5Y21kKS4iICIuc2hlbGxlc2NhcGUodGFydGFpbCkuIiAiLnNoZWxsZXNjYXBlKHZpbWhvbWUpKQorICAgY2FsbCBzeXN0ZW0obmV0cncjV2luUGF0aChnOnRhcl9jb3B5Y21kKS4iICIuc2hlbGxlc2NhcGUodGFydGFpbCkuIiAiLnNoZWxsZXNjYXBlKHZpbWhvbWUpKQorIiAgIGNhbGwgRGVjaG8oImV4ZSBjZCAiLmZuYW1lZXNjYXBlKHZpbWhvbWUpKQorICAgZXhlICJjZCAiLmZuYW1lZXNjYXBlKHZpbWhvbWUpCisgIGVuZGlmCisiICBjYWxsIERlY2hvKCJnZXRjd2Q8Ii5nZXRjd2QoKS4iPiIpCisKKyAgIiBpZiBuZWNlc3NhcnksIGRlY29tcHJlc3MgdGhlIHRhcmJhbGw7IHRoZW4sIGV4dHJhY3QgaXQKKyAgaWYgdGFydGFpbCA9fiAnXC50Z3onCisgICBpZiBleGVjdXRhYmxlKCJndW56aXAiKQorICAgIHNpbGVudCBleGUgIiFndW56aXAgIi5zaGVsbGVzY2FwZSh0YXJ0YWlsKQorICAgZWxzZWlmIGV4ZWN1dGFibGUoImd6aXAiKQorICAgIHNpbGVudCBleGUgIiFnemlwIC1kICIuc2hlbGxlc2NhcGUodGFydGFpbCkKICAgIGVsc2UKLSAgICBsZXQgcW5hbWVxPSBzaGVsbGVzY2FwZShhOm5hbWUpCisgICAgZWNob2VyciAidW5hYmxlIHRvIGRlY29tcHJlc3M8Ii50YXJ0YWlsLiI+IG9uIHRoaXMgc3l0ZW0iCisgICAgaWYgc2ltcGxpZnkoY3VyZGlyKSAhPSBzaW1wbGlmeSh0YXJob21lKQorICAgICAiIHJlbW92ZSBkZWNvbXByZXNzZWQgdGFyYmFsbCwgcmVzdG9yZSBkaXJlY3RvcnkKKyIgICAgIGNhbGwgRGVjaG8oImRlbGV0ZSgiLnRhcnRhaWwuIi50YXIpIikKKyAgICAgY2FsbCBkZWxldGUodGFydGFpbC4iLnRhciIpCisiICAgICBjYWxsIERlY2hvKCJleGUgY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpKQorICAgICBleGUgImNkICIuZm5hbWVlc2NhcGUoY3VyZGlyKQorICAgIGVuZGlmCisiICAgIGNhbGwgRHJldCgidGFyI1ZpbXVudGFyIikKKyAgICByZXR1cm4KICAgIGVuZGlmCiAgIGVsc2UKLSAgIGxldCBxbmFtZXE9IGc6dGFyX3NocSAuIGE6bmFtZSAuIGc6dGFyX3NocQorICAgY2FsbCB2aW1iYWxsI0RlY29tcHJlc3ModGFydGFpbCwwKQogICBlbmRpZgotICByZXR1cm4gcW5hbWVxCisgIGxldCBleHRyYWN0Y21kPSBuZXRydyNXaW5QYXRoKGc6dGFyX2V4dHJhY3RjbWQpCisiICBjYWxsIERlY2hvKCJzeXN0ZW0oIi5leHRyYWN0Y21kLiIgIi5zaGVsbGVzY2FwZSh0YXJiYXNlLiIudGFyIikuIikiKQorICBjYWxsIHN5c3RlbShleHRyYWN0Y21kLiIgIi5zaGVsbGVzY2FwZSh0YXJiYXNlLiIudGFyIikpCisKKyAgIiBzZXQgdXAgaGVscAorICBpZiBmaWxlcmVhZGFibGUoImRvYy8iLnRhcmJhc2UuIi50eHQiKQorIiAgIGNhbGwgRGVjaG8oImV4ZSBoZWxwdGFncyAiLmdldGN3ZCgpLiIvZG9jIikKKyAgIGV4ZSAiaGVscHRhZ3MgIi5nZXRjd2QoKS4iL2RvYyIKKyAgZW5kaWYKKworICBpZiBzaW1wbGlmeSh0YXJob21lKSAhPSBzaW1wbGlmeSh2aW1ob21lKQorICAgIiByZW1vdmUgZGVjb21wcmVzc2VkIHRhcmJhbGwsIHJlc3RvcmUgZGlyZWN0b3J5CisgICBjYWxsIGRlbGV0ZSh2aW1ob21lLiIvIi50YXJiYXNlLiIudGFyIikKKyAgIGV4ZSAiY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpCisgIGVuZGlmCisKKyIgIGNhbGwgRHJldCgidGFyI1ZpbXVudGFyIikKIGVuZGZ1bgogCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICIgTW9kZWxpbmVzIEFuZCBSZXN0b3JhdGlvbjoge3t7MQogbGV0ICZjcG89IHM6a2VlcGNwbwogdW5sZXQgczprZWVwY3BvCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3ZpbWJhbGwudmltIGIvcnVudGltZS9hdXRvbG9hZC92aW1iYWxsLnZpbQppbmRleCA0ZjYyOTJiLi5iOTdjM2E1IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL3ZpbWJhbGwudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvdmltYmFsbC52aW0KQEAgLTEsOSArMSw5IEBACiAiIHZpbWJhbGwudmltIDogY29uc3RydWN0IGEgZmlsZSBjb250YWluaW5nIGJvdGggcGF0aHMgYW5kIGZpbGVzCiAiIEF1dGhvcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIERhdGU6CQlKdWwgMzAsIDIwMDgKLSIgVmVyc2lvbjoJMjkKKyIgRGF0ZToJCURlYyAyOCwgMjAwOQorIiBWZXJzaW9uOgkzMAogIiBHZXRMYXRlc3RWaW1TY3JpcHRzOiAxNTAyIDEgOkF1dG9JbnN0YWxsOiB2aW1iYWxsLnZpbQotIiBDb3B5cmlnaHQ6IChjKSAyMDA0LTIwMDggYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCisiIENvcHlyaWdodDogKGMpIDIwMDQtMjAwOSBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KICIgICAgICAgICAgICBUaGUgVklNIExJQ0VOU0UgYXBwbGllcyB0byBWaW1iYWxsLnZpbSwgYW5kIFZpbWJhbGwudHh0CiAiICAgICAgICAgICAgKHNlZSB8Y29weXJpZ2h0fCkgZXhjZXB0IHVzZSAiVmltYmFsbCIgaW5zdGVhZCBvZiAiVmltIi4KICIgICAgICAgICAgICBObyB3YXJyYW50eSwgZXhwcmVzcyBvciBpbXBsaWVkLgpAQCAtMTEsMTEgKzExLDE3IEBACiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBMb2FkIE9uY2U6IHt7ezEKLWlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ZpbWJhbGwiKSB8fCB2OnZlcnNpb24gPCA3MDAKK2lmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ZpbWJhbGwiKQogIGZpbmlzaAogZW5kaWYKLWxldCBzOmtlZXBjcG8gICAgICAgID0gJmNwbwotbGV0IGc6bG9hZGVkX3ZpbWJhbGwgPSAidjI5IgorbGV0IGc6bG9hZGVkX3ZpbWJhbGwgPSAidjMwIgoraWYgdjp2ZXJzaW9uIDwgNzAyCisgZWNob2hsIFdhcm5pbmdNc2cKKyBlY2hvICIqKip3YXJuaW5nKioqIHRoaXMgdmVyc2lvbiBvZiB2aW1iYWxsIG5lZWRzIHZpbSA3LjIiCisgZWNob2hsIE5vcm1hbAorIGZpbmlzaAorZW5kaWYKK2xldCBzOmtlZXBjcG89ICZjcG8KIHNldCBjcG8mdmltCiAiRGVjaG9UYWJPbgogCkBAIC01MiwzMCArNTgsNiBAQAogICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6V0FSTklORywiKHZpbWJhbGwpIGc6dmltYmFsbF9ta2RpciB1bmRlZmluZWQiKQogICBlbmRpZgogIGVuZGlmCi0KLSAiIHNldCB1cCBzaGVsbCBxdW90aW5nIGNoYXJhY3RlcgotIGlmIGV4aXN0cygiZzp2aW1iYWxsX3NocSIpICYmICFleGlzdHMoImc6bmV0cndfc2hxIikKLSAgbGV0IGc6bmV0cndfc2hxPSBnOnZpbWJhbGxfc2hxCi0gZW5kaWYKLSBpZiAhZXhpc3RzKCJnOm5ldHJ3X3NocSIpCi0gIGlmIGV4aXN0cygiJnNocSIpICYmICZzaHEgIT0gIiIKLSAgIGxldCBnOm5ldHJ3X3NocT0gJnNocQotICBlbHNlaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpCi0gICBpZiBnOm5ldHJ3X2N5Z3dpbgotICAgIGxldCBnOm5ldHJ3X3NocT0gIiciCi0gICBlbHNlCi0gICAgbGV0IGc6bmV0cndfc2hxPSAnIicKLSAgIGVuZGlmCi0gIGVsc2UKLSAgIGxldCBnOm5ldHJ3X3NocT0gIiciCi0gIGVuZGlmCi0iIGNhbGwgRGVjaG8oImc6bmV0cndfc2hxPCIuZzpuZXRyd19zaHEuIj4iKQotIGVuZGlmCi0KLSAiIHNldCB1cCBlc2NhcGUgc3RyaW5nICh1c2VkIHRvIHByb3RlY3QgcGF0aHMpCi0gaWYgIWV4aXN0cygiZzp2aW1iYWxsX3BhdGhfZXNjYXBlIikKLSAgbGV0IGc6dmltYmFsbF9wYXRoX2VzY2FwZT0gJyA7IyUnCi0gZW5kaWYKIGVuZGlmCiAKICIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xMDYsOCArODgsOCBAQAogICAgbGV0IHZibmFtZT0gdmJuYW1lLicudmJhJwogICBlbmRpZgogIiAgY2FsbCBEZWNobygidmJuYW1lPCIudmJuYW1lLiI+IikKLSAgaWYgYToxID1+ICdbXC9dJwotICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6RVJST1IsIihNa1ZpbWJhbGwpIHZpbWJhbGwgbmFtZTwiLmE6MS4iPiBzaG91bGQgbm90IGluY2x1ZGUgc2xhc2hlcyIpCisgIGlmICFhOndyaXRlbGV2ZWwgJiYgYToxID1+ICdbXC9dJworICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6RVJST1IsIihNa1ZpbWJhbGwpIHZpbWJhbGwgbmFtZTwiLmE6MS4iPiBzaG91bGQgbm90IGluY2x1ZGUgc2xhc2hlczsgdXNlICEgdG8gaW5zaXN0IikKICIgICBjYWxsIERyZXQoIk1rVmltYmFsbCA6IHZpbWJhbGwgbmFtZTwiLmE6MS4iPiBzaG91bGQgbm90IGluY2x1ZGUgc2xhc2hlcyIpCiAgICByZXR1cm4KICAgZW5kaWYKQEAgLTEyNSw3ICsxMDcsNyBAQAogICAgbGV0IGhvbWU9IGV4cGFuZChhOjIpCiAgIGVsc2UKICAgICIgdXNlIGZpcnN0IGV4aXN0aW5nIGRpcmVjdG9yeSBmcm9tIHJ0cAotICAgbGV0IGhvbWU9IHM6VmltYmFsbEhvbWUoKQorICAgbGV0IGhvbWU9IHZpbWJhbGwjVmltYmFsbEhvbWUoKQogICBlbmRpZgogCiAgICIgc2F2ZSBjdXJyZW50IGRpcmVjdG9yeQpAQCAtMjE4LDcgKzIwMCw3IEBACiAgICByZXR1cm4KICAgZW5kaWYKIAotICBpZiBnZXRsaW5lKDEpICF+ICdeIiBWaW1iYWxsIEFyY2hpdmVyIGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiwgUGguRC4kJworICBpZiBnZXRsaW5lKDEpICF+ICdeIiBWaW1iYWxsIEFyY2hpdmVyJwogICAgZWNob2VyciAiKFZpbWJhbGwpIFRoZSBjdXJyZW50IGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgVmltYmFsbCEiCiAiICAgY2FsbCBEcmV0KCJ2aW1iYWxsI1ZpbWJhbGwiKQogICAgcmV0dXJuCkBAIC0yNDAsNyArMjIyLDcgQEAKICAgaWYgYTowID4gMAogICAgbGV0IGhvbWU9IGV4cGFuZChhOjEpCiAgIGVsc2UKLSAgIGxldCBob21lPSBzOlZpbWJhbGxIb21lKCkKKyAgIGxldCBob21lPSB2aW1iYWxsI1ZpbWJhbGxIb21lKCkKICAgZW5kaWYKICIgIGNhbGwgRGVjaG8oImhvbWU8Ii5ob21lLiI+IikKIApAQCAtMjcyLDcgKzI1NCw5IEBACiAgIHdoaWxlIDEgPCBsaW5lbnIgJiYgbGluZW5yIDwgbGluZSgiJCIpCiAgICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoZ2V0bGluZShsaW5lbnIpLCdcdFxbXFtcWzEkJywnJywnJykKICAgIGxldCBmbmFtZSAgID0gc3Vic3RpdHV0ZShmbmFtZSwnXFwnLCcvJywnZycpCi0gICBsZXQgZnNpemUgICA9IGdldGxpbmUobGluZW5yKzEpKzAKKyIgICBsZXQgZnNpemUgICA9IGdldGxpbmUobGluZW5yKzEpKzAKKyAgIGxldCBmc2l6ZSAgID0gc3Vic3RpdHV0ZShnZXRsaW5lKGxpbmVucisxKSwnXlwoXGRcK1wpLlx7LX0kJywnXDEnLCcnKSswCisgICBsZXQgZmVuYyAgICA9IHN1YnN0aXR1dGUoZ2V0bGluZShsaW5lbnIrMSksJ15cZFwrXHMqXChcU1wrXCkkJywnXDEnLCcnKQogICAgbGV0IGZpbGVjbnQgPSBmaWxlY250ICsgMQogIiAgIGNhbGwgRGVjaG8oImZuYW1lPCIuZm5hbWUuIj4gZnNpemU9Ii5mc2l6ZS4iIGZpbGVjbnQ9Ii5maWxlY250KQogCkBAIC0zMDcsNyArMjkxLDcgQEAKICAgICAgaWYgIWlzZGlyZWN0b3J5KGRpcm5hbWUpCiAiICAgICAgY2FsbCBEZWNobygibWFraW5nIDwiLmRpcm5hbWUuIj4iKQogICAgICAgaWYgZXhpc3RzKCJnOnZpbWJhbGxfbWtkaXIiKQotCSAgIGNhbGwgc3lzdGVtKGc6dmltYmFsbF9ta2Rpci4iICIuczpFc2NhcGUoZGlybmFtZSkpCisJICAgY2FsbCBzeXN0ZW0oZzp2aW1iYWxsX21rZGlyLiIgIi5zaGVsbGVzY2FwZShkaXJuYW1lKSkKICAgICAgIGVsc2UKICAgICAgICBjYWxsIG1rZGlyKGRpcm5hbWUpCiAgICAgICBlbmRpZgpAQCAtMzM3LDkgKzMyMSwxMyBAQAogICAgaWYgYTpyZWFsbHkKICAgICBsZXQgZm5hbWVwYXRoPSBob21lLiIvIi5mbmFtZQogIiAgICBjYWxsIERlY2hvKCJleGUgdyEgIi5mbmFtZWVzY2FwZShmbmFtZXBhdGgpKQotCWV4ZSAic2lsZW50IHchICIuZm5hbWVlc2NhcGUoZm5hbWVwYXRoKQotICAgIGVjaG8gIndyb3RlICIuZm5hbWVwYXRoCi0JY2FsbCBzOlJlY29yZEluVmFyKGhvbWUsImNhbGwgZGVsZXRlKCciLmZuYW1lZXNjYXBlKGZuYW1lcGF0aCkuIicpIikKKwlpZiBmZW5jICE9ICIiCisJIGV4ZSAic2lsZW50IHchICsrZW5jPSIuZm5hbWVlc2NhcGUoZmVuYykuIiAiLmZuYW1lZXNjYXBlKGZuYW1lcGF0aCkKKwllbHNlCisJIGV4ZSAic2lsZW50IHchICIuZm5hbWVlc2NhcGUoZm5hbWVwYXRoKQorCWVuZGlmCisJZWNobyAid3JvdGUgIi5mbmFtZWVzY2FwZShmbmFtZXBhdGgpCisJY2FsbCBzOlJlY29yZEluVmFyKGhvbWUsImNhbGwgZGVsZXRlKCciLmZuYW1lcGF0aC4iJykiKQogICAgZW5kaWYKIAogICAgIiByZXR1cm4gdG8gdGFiIHdpdGggdmltYmFsbApAQCAtNDE4LDcgKzQwNiw3IEBACiAgIGlmIGE6MCA+PSAyCiAgICBsZXQgaG9tZT0gZXhwYW5kKGE6MikKICAgZWxzZQotICAgbGV0IGhvbWU9IHM6VmltYmFsbEhvbWUoKQorICAgbGV0IGhvbWU9IHZpbWJhbGwjVmltYmFsbEhvbWUoKQogICBlbmRpZgogICBsZXQgY3VyZGlyID0gZ2V0Y3dkKCkKICIgIGNhbGwgRGVjaG8oImhvbWUgICA8Ii5ob21lLiI+IikKQEAgLTQzMiwxOSArNDIwLDIwIEBACiAgICBrZWVwYWx0IGtlZXBqdW1wcyAxc3BsaXQgCiAgICBzaWxlbnQhIGtlZXBhbHQga2VlcGp1bXBzIGUgLlZpbWJhbGxSZWNvcmQKICAgIGxldCBrZWVwc3JjaD0gQC8KLSIgICBjYWxsIERlY2hvKCJzZWFyY2ggZm9yIF4iLmN1cmZpbGUuIi52YmE6IikKLSIgICBjYWxsIERlY2hvKCJzZWFyY2ggZm9yIF4iLmN1cmZpbGUuIlstMC05Ll0qLnZiYToiKQotICAgaWYgc2VhcmNoKCdeJy5jdXJmaWxlLiI6ICIuJ2N3JykKKyIgICBjYWxsIERlY2hvKCdzZWFyY2ggZm9yIF5cTScuY3VyZmlsZS4nLlxtOiAnKQorIiAgIGNhbGwgRGVjaG8oJ3NlYXJjaCBmb3IgXlxNJy5jdXJmaWxlLicuXG12YmE6ICcpCisiICAgY2FsbCBEZWNobygnc2VhcmNoIGZvciBeXE0nLmN1cmZpbGUuJ1xtWy0wLTkuXSpcLnZiYTogJykKKyAgIGlmIHNlYXJjaCgnXlxNJy5jdXJmaWxlLiJcbTogIi4nY3cnKQogCWxldCBmb3VuZGl0PSAxCi0gICBlbHNlaWYgc2VhcmNoKCdeJy5jdXJmaWxlLiIudmJhOiAiLCdjdycpCisgICBlbHNlaWYgc2VhcmNoKCdeXE0nLmN1cmZpbGUuIi5cbXZiYTogIiwnY3cnKQogCWxldCBmb3VuZGl0PSAxCi0gICBlbHNlaWYgc2VhcmNoKCdeJy5jdXJmaWxlLidbLTAtOS5dKi52YmE6ICcsJ2N3JykKKyAgIGVsc2VpZiBzZWFyY2goJ15cTScuY3VyZmlsZS4nXG1bLTAtOS5dKlwudmJhOiAnLCdjdycpCiAJbGV0IGZvdW5kaXQ9IDEKICAgIGVsc2UKICAgICBsZXQgZm91bmRpdCA9IDAKICAgIGVuZGlmCiAgICBpZiBmb3VuZGl0Ci0JbGV0IGV4ZXN0cmluZyAgPSBzdWJzdGl0dXRlKGdldGxpbmUoIi4iKSwnXicuY3VyZmlsZS4nXFNcey19XC52YmE6ICcsJycsJycpCisJbGV0IGV4ZXN0cmluZyAgPSBzdWJzdGl0dXRlKGdldGxpbmUoIi4iKSwnXlxNJy5jdXJmaWxlLidcbVxTXHstfVwudmJhOiAnLCcnLCcnKQogICAgIGxldCBzOlZCUnN0cmluZz0gc3Vic3RpdHV0ZShleGVzdHJpbmcsJ2NhbGwgZGVsZXRlKCcsJycsJ2cnKQogICAgIGxldCBzOlZCUnN0cmluZz0gc3Vic3RpdHV0ZShzOlZCUnN0cmluZywiWycpXSIsJycsJ2cnKQogIgljYWxsIERlY2hvKCJleGUgIi5leGVzdHJpbmcpCkBAIC00NzIsNjIgKzQ2MSw2MiBAQAogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiB2aW1iYWxsI0RlY29tcHJlc3M6IGF0dGVtcHRzIHRvIGF1dG9tYXRpY2FsbHkgZGVjb21wcmVzcyB2aW1iYWxscyB7e3syCi1mdW4hIHZpbWJhbGwjRGVjb21wcmVzcyhmbmFtZSkKLSIgIGNhbGwgRGZ1bmMoIkRlY29tcHJlc3MoZm5hbWU8Ii5hOmZuYW1lLiI+KSIpCitmdW4hIHZpbWJhbGwjRGVjb21wcmVzcyhmbmFtZSwuLi4pCisiICBjYWxsIERmdW5jKCJEZWNvbXByZXNzKGZuYW1lPCIuYTpmbmFtZS4iPikgYTowPSIuYTowKQogCiAgICIgZGVjb21wcmVzc2lvbjoKICAgaWYgICAgIGV4cGFuZCgiJSIpID1+ICcuKlwuZ3onICAmJiBleGVjdXRhYmxlKCJndW56aXAiKQogICAgIiBoYW5kbGUgKi5neiB3aXRoIGd1bnppcAotICAgc2lsZW50IGV4ZSAiIWd1bnppcCAiLnM6RXNjYXBlKGE6Zm5hbWUpCisgICBzaWxlbnQgZXhlICIhZ3VuemlwICIuc2hlbGxlc2NhcGUoYTpmbmFtZSkKICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogCWNhbGwgdmltYmFsbCNTaG93TWVzZyhzOldBUk5JTkcsIih2aW1iYWxsI0RlY29tcHJlc3MpIGd1bnppcCBtYXkgaGF2ZSBmYWlsZWQgd2l0aCA8Ii5hOmZuYW1lLiI+IikKICAgIGVuZGlmCiAgICBsZXQgZm5hbWU9IHN1YnN0aXR1dGUoYTpmbmFtZSwnXC5neiQnLCcnLCcnKQogICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCi0gICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKKyAgIGlmIGE6MCA9PSAwfCBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikgfCBlbmRpZgogCiAgIGVsc2VpZiBleHBhbmQoIiUiKSA9fiAnLipcLmd6JyAmJiBleGVjdXRhYmxlKCJnemlwIikKICAgICIgaGFuZGxlICouZ3ogd2l0aCBnemlwIC1kCi0gICBzaWxlbnQgZXhlICIhZ3ppcCAtZCAiLnM6RXNjYXBlKGE6Zm5hbWUpCisgICBzaWxlbnQgZXhlICIhZ3ppcCAtZCAiLnNoZWxsZXNjYXBlKGE6Zm5hbWUpCiAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKIAljYWxsIHZpbWJhbGwjU2hvd01lc2coczpXQVJOSU5HLCcodmltYmFsbCNEZWNvbXByZXNzKSAiZ3ppcCAtZCIgbWF5IGhhdmUgZmFpbGVkIHdpdGggPCcuYTpmbmFtZS4iPiIpCiAgICBlbmRpZgogICAgbGV0IGZuYW1lPSBzdWJzdGl0dXRlKGE6Zm5hbWUsJ1wuZ3okJywnJywnJykKICAgIGV4ZSAiZSAiLmVzY2FwZShmbmFtZSwnIFwnKQotICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6VVNBR0UsIlNvdXJjZSB0aGlzIGZpbGUgdG8gZXh0cmFjdCBpdCEgKDpzbyAlKSIpCisgICBpZiBhOjAgPT0gMHwgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6VVNBR0UsIlNvdXJjZSB0aGlzIGZpbGUgdG8gZXh0cmFjdCBpdCEgKDpzbyAlKSIpIHwgZW5kaWYKIAogICBlbHNlaWYgZXhwYW5kKCIlIikgPX4gJy4qXC5iejInICYmIGV4ZWN1dGFibGUoImJ1bnppcDIiKQogICAgIiBoYW5kbGUgKi5iejIgd2l0aCBidW56aXAyCi0gICBzaWxlbnQgZXhlICIhYnVuemlwMiAiLnM6RXNjYXBlKGE6Zm5hbWUpCisgICBzaWxlbnQgZXhlICIhYnVuemlwMiAiLnNoZWxsZXNjYXBlKGE6Zm5hbWUpCiAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKIAljYWxsIHZpbWJhbGwjU2hvd01lc2coczpXQVJOSU5HLCIodmltYmFsbCNEZWNvbXByZXNzKSBidW56aXAyIG1heSBoYXZlIGZhaWxlZCB3aXRoIDwiLmE6Zm5hbWUuIj4iKQogICAgZW5kaWYKICAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdcLmJ6MiQnLCcnLCcnKQogICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCi0gICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKKyAgIGlmIGE6MCA9PSAwfCBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikgfCBlbmRpZgogCiAgIGVsc2VpZiBleHBhbmQoIiUiKSA9fiAnLipcLmJ6MicgJiYgZXhlY3V0YWJsZSgiYnppcDIiKQogICAgIiBoYW5kbGUgKi5iejIgd2l0aCBiemlwMiAtZAotICAgc2lsZW50IGV4ZSAiIWJ6aXAyIC1kICIuczpFc2NhcGUoYTpmbmFtZSkKKyAgIHNpbGVudCBleGUgIiFiemlwMiAtZCAiLnNoZWxsZXNjYXBlKGE6Zm5hbWUpCiAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKIAljYWxsIHZpbWJhbGwjU2hvd01lc2coczpXQVJOSU5HLCcodmltYmFsbCNEZWNvbXByZXNzKSAiYnppcDIgLWQiIG1heSBoYXZlIGZhaWxlZCB3aXRoIDwnLmE6Zm5hbWUuIj4iKQogICAgZW5kaWYKICAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdcLmJ6MiQnLCcnLCcnKQogICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCi0gICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKKyAgIGlmIGE6MCA9PSAwfCBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikgfCBlbmRpZgogCiAgIGVsc2VpZiBleHBhbmQoIiUiKSA9fiAnLipcLnppcCcgJiYgZXhlY3V0YWJsZSgidW56aXAiKQogICAgIiBoYW5kbGUgKi56aXAgd2l0aCB1bnppcAotICAgc2lsZW50IGV4ZSAiIXVuemlwICIuczpFc2NhcGUoYTpmbmFtZSkKKyAgIHNpbGVudCBleGUgIiF1bnppcCAiLnNoZWxsZXNjYXBlKGE6Zm5hbWUpCiAgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKIAljYWxsIHZpbWJhbGwjU2hvd01lc2coczpXQVJOSU5HLCIodmltYmFsbCNEZWNvbXByZXNzKSB1bnppcCBtYXkgaGF2ZSBmYWlsZWQgd2l0aCA8Ii5hOmZuYW1lLiI+IikKICAgIGVuZGlmCiAgICBsZXQgZm5hbWU9IHN1YnN0aXR1dGUoYTpmbmFtZSwnXC56aXAkJywnJywnJykKICAgIGV4ZSAiZSAiLmVzY2FwZShmbmFtZSwnIFwnKQotICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6VVNBR0UsIlNvdXJjZSB0aGlzIGZpbGUgdG8gZXh0cmFjdCBpdCEgKDpzbyAlKSIpCisgICBpZiBhOjAgPT0gMHwgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6VVNBR0UsIlNvdXJjZSB0aGlzIGZpbGUgdG8gZXh0cmFjdCBpdCEgKDpzbyAlKSIpIHwgZW5kaWYKICAgZW5kaWYKIAotICBzZXQgbm9tYSBidD1ub2ZpbGUgZm1yPVtbWyxdXV0gZmRtPW1hcmtlcgorICBpZiBhOjAgPT0gMHwgc2V0bG9jYWwgbm9tYSBidD1ub2ZpbGUgZm1yPVtbWyxdXV0gZmRtPW1hcmtlciB8IGVuZGlmCiAKICIgIGNhbGwgRHJldCgiRGVjb21wcmVzcyIpCiBlbmRmdW4KQEAgLTUzNiwyMCArNTI1LDIxIEBACiAiIHZpbWJhbGwjU2hvd01lc2c6IHt7ezIKIGZ1biEgdmltYmFsbCNTaG93TWVzZyhsZXZlbCxtc2cpCiAiICBjYWxsIERmdW5jKCJ2aW1iYWxsI1Nob3dNZXNnKGxldmVsPSIuYTpsZXZlbC4iIG1zZzwiLmE6bXNnLiI+KSIpCisKICAgbGV0IHJ1bGVya2VlcCAgID0gJnJ1bGVyCiAgIGxldCBzaG93Y21ka2VlcCA9ICZzaG93Y21kCiAgIHNldCBub3J1bGVyIG5vc2hvd2NtZAogICByZWRyYXchCiAKICAgaWYgJmZvID1+ICdbdGFdJwotICAgZWNob21zZyAiKioqdmltYmFsbCoqKiAiIGE6bXNnCisgICBlY2hvbXNnICIqKip2aW1iYWxsKioqICIuYTptc2cKICAgZWxzZQogICAgaWYgYTpsZXZlbCA9PSBzOldBUk5JTkcgfHwgYTpsZXZlbCA9PSBzOlVTQUdFCiAgICAgZWNob2hsIFdhcm5pbmdNc2cKICAgIGVsc2VpZiBhOmxldmVsID09IHM6RVJST1IKICAgICBlY2hvaGwgRXJyb3IKICAgIGVuZGlmCi0gICBlY2hvbXNnICIqKip2aW1iYWxsKioqICIgYTptc2cKKyAgIGVjaG9tc2cgIioqKnZpbWJhbGwqKiogIi5hOm1zZwogICAgZWNob2hsIE5vbmUKICAgZW5kaWYKIApAQCAtNjQ2LDkgKzYzNiw5IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgczpWaW1iYWxsSG9tZTogZGV0ZXJtaW5lL2dldCBob21lIGRpcmVjdG9yeSBwYXRoICh1c3VhbGx5IGZyb20gcnRwKSB7e3syCi1mdW4hIHM6VmltYmFsbEhvbWUoKQotIiAgY2FsbCBEZnVuYygiVmltYmFsbEhvbWUoKSIpCisiIHZpbWJhbGwjVmltYmFsbEhvbWU6IGRldGVybWluZS9nZXQgaG9tZSBkaXJlY3RvcnkgcGF0aCAodXN1YWxseSBmcm9tIHJ0cCkge3t7MgorZnVuISB2aW1iYWxsI1ZpbWJhbGxIb21lKCkKKyIgIGNhbGwgRGZ1bmMoInZpbWJhbGwjVmltYmFsbEhvbWUoKSIpCiAgIGlmIGV4aXN0cygiZzp2aW1iYWxsX2hvbWUiKQogICAgbGV0IGhvbWU9IGc6dmltYmFsbF9ob21lCiAgIGVsc2UKQEAgLTY3NCwxNCArNjY0LDE0IEBACiAgIGlmICFpc2RpcmVjdG9yeShob21lKQogICAgaWYgZXhpc3RzKCJnOnZpbWJhbGxfbWtkaXIiKQogIgljYWxsIERlY2hvKCJob21lPCIuaG9tZS4iPiBpc24ndCBhIGRpcmVjdG9yeSAtLSBtYWtpbmcgaXQgbm93IHdpdGggZzp2aW1iYWxsX21rZGlyPCIuZzp2aW1iYWxsX21rZGlyLiI+IikKLSIgICAgY2FsbCBEZWNobygic3lzdGVtKCIuZzp2aW1iYWxsX21rZGlyLiIgIi5zOkVzY2FwZShob21lKS4iKSIpCi0gICAgY2FsbCBzeXN0ZW0oZzp2aW1iYWxsX21rZGlyLiIgIi5zOkVzY2FwZShob21lKSkKKyIgICAgY2FsbCBEZWNobygic3lzdGVtKCIuZzp2aW1iYWxsX21rZGlyLiIgIi5zaGVsbGVzY2FwZShob21lKS4iKSIpCisgICAgY2FsbCBzeXN0ZW0oZzp2aW1iYWxsX21rZGlyLiIgIi5zaGVsbGVzY2FwZShob21lKSkKICAgIGVsc2UKICIJY2FsbCBEZWNobygiaG9tZTwiLmhvbWUuIj4gaXNuJ3QgYSBkaXJlY3RvcnkgLS0gbWFraW5nIGl0IG5vdyB3aXRoIG1rZGlyKCkiKQogICAgIGNhbGwgbWtkaXIoaG9tZSkKICAgIGVuZGlmCiAgIGVuZGlmCi0iICBjYWxsIERyZXQoIlZpbWJhbGxIb21lIDwiLmhvbWUuIj4iKQorIiAgY2FsbCBEcmV0KCJ2aW1iYWxsI1ZpbWJhbGxIb21lIDwiLmhvbWUuIj4iKQogICByZXR1cm4gaG9tZQogZW5kZnVuCiAKQEAgLTc0MywyMCArNzMzLDUgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOkVzY2FwZToge3t7MgotZnVuIHM6RXNjYXBlKG5hbWUpCi0gICIgc2hlbGxlc2NhcGUoKSB3YXMgYWRkZWQgYnkgcGF0Y2ggNy4wLjExMQotICBpZiBleGlzdHMoIipzaGVsbGVzY2FwZSIpCi0gICAgcmV0dXJuIHNoZWxsZXNjYXBlKGE6bmFtZSkKLSAgZW5kaWYKLSAgcmV0dXJuIGc6bmV0cndfc2hxIC4gYTpuYW1lIC4gZzpuZXRyd19zaHEKLWVuZGZ1bgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiAgUmVzdG9yZToKLWxldCAmY3BvPSBzOmtlZXBjcG8KLXVubGV0IHM6a2VlcGNwbwotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBNb2RlbGluZXM6IHt7ezEKICIgdmltOiBmZG09bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbG9ycy9kZXNlcnQudmltIGIvcnVudGltZS9jb2xvcnMvZGVzZXJ0LnZpbQppbmRleCBjZGRlNjJiLi43MTY2MjIwIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbG9ycy9kZXNlcnQudmltCisrKyBiL3J1bnRpbWUvY29sb3JzL2Rlc2VydC52aW0KQEAgLTEsOSArMSw5IEBACiAiIFZpbSBjb2xvciBmaWxlCiAiIE1haW50YWluZXI6CUhhbnMgRnVnYWwgPGhhbnNAZnVnYWwubmV0PgotIiBMYXN0IENoYW5nZToJJERhdGUkCi0iIExhc3QgQ2hhbmdlOgkkRGF0ZSQKKyIgTGFzdCBDaGFuZ2U6CSREYXRlOiAyMDA0LzA2LzEzIDE5OjMwOjMwICQKKyIgTGFzdCBDaGFuZ2U6CSREYXRlOiAyMDA0LzA2LzEzIDE5OjMwOjMwICQKICIgVVJMOgkJaHR0cDovL2hhbnMuZnVnYWwubmV0L3ZpbS9jb2xvcnMvZGVzZXJ0LnZpbQotIiBWZXJzaW9uOgkkSWQkCisiIFZlcnNpb246CSRJZDogZGVzZXJ0LnZpbSx2IDEuMSAyMDA0LzA2LzEzIDE5OjMwOjMwIHZpbWJvc3MgRXhwICQKIAogIiBjb29sIGhlbHAgc2NyZWVucwogIiA6aGUgZ3JvdXAtbmFtZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9kZWNhZGEudmltIGIvcnVudGltZS9jb21waWxlci9kZWNhZGEudmltCmluZGV4IDRjNzc3ZmUuLjhlMjY3ZWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvZGVjYWRhLnZpbQorKysgYi9ydW50aW1lL2NvbXBpbGVyL2RlY2FkYS52aW0KQEAgLTEsMTMgKzEsMTMgQEAKICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgIERlc2NyaXB0aW9uOiBWaW0gQWRhL0RlYyBBZGEgY29tcGlsZXIgZmlsZQogIiAgICAgTGFuZ3VhZ2U6IEFkYSAoRGVjIEFkYSkKLSIgICAgICAgICAgJElkJAorIiAgICAgICAgICAkSWQ6IGRlY2FkYS52aW0gODg3IDIwMDgtMDctMDggMTQ6Mjk6MDFaIGtyaXNjaGlrICQKICIgICAgQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDIwMDYgTWFydGluIEtyaXNjaGlrCiAiICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGlrIDxrcmlzY2hpa0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci0iICAgICAgJEF1dGhvciQKLSIgICAgICAgICREYXRlJAorIiAgICAgICRBdXRob3I6IGtyaXNjaGlrICQKKyIgICAgICAgICREYXRlOiAyMDA4LTA3LTA4IDE2OjI5OjAxICswMjAwIChEaSwgMDggSnVsIDIwMDgpICQKICIgICAgICBWZXJzaW9uOiA0LjYKLSIgICAgJFJldmlzaW9uJAorIiAgICAkUmV2aXNpb246IDg4NyAkCiAiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vY29tcGlsZXIvZGVjYWRhLnZpbSAkCiAiICAgICAgSGlzdG9yeTogMjEuMDcuMjAwNiBNSyBOZXcgRGVjIEFkYQogIiAgICAgICAgICAgICAgIDE1LjEwLjIwMDYgTUsgQnJhbSdzIHN1Z2dlc3Rpb24gZm9yIHJ1bnRpbWUgaW50ZWdyYXRpb24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvZXJ1YnkudmltIGIvcnVudGltZS9jb21waWxlci9lcnVieS52aW0KaW5kZXggNDQxOTRmNS4uMWE2ODEzNiAxMDA2NDQKLS0tIGEvcnVudGltZS9jb21waWxlci9lcnVieS52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9lcnVieS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBjb21waWxlciBmaWxlCiAiIExhbmd1YWdlOgkJZVJ1YnkKICIgTWFpbnRhaW5lcjoJCURvdWcgS2Vhcm5zIDxkb3Vna2Vhcm5zQGdtYWlsLmNvbT4KLSIgSW5mbzoJCQkkSWQkCisiIEluZm86CQkJJElkOiBlcnVieS52aW0sdiAxLjcgMjAwOC8wNi8yOSAwNDoxODo0MiB0cG9wZSBFeHAgJAogIiBVUkw6CQkJaHR0cDovL3ZpbS1ydWJ5LnJ1Ynlmb3JnZS5vcmcKICIgQW5vbiBDVlM6CQlTZWUgYWJvdmUgc2l0ZQogIiBSZWxlYXNlIENvb3JkaW5hdG9yOglEb3VnIEtlYXJucyA8ZG91Z2tlYXJuc0BnbWFpbC5jb20+CmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbXBpbGVyL2ZvcnRyYW5fZzc3LnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvZm9ydHJhbl9nNzcudmltCmluZGV4IDk0MDE4ZTcuLjc0NGNlNmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvZm9ydHJhbl9nNzcudmltCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvZm9ydHJhbl9nNzcudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gY29tcGlsZXIgZmlsZQogIiBDb21waWxlcjogICAgIGc3NyAoR05VIEZvcnRyYW4pCiAiIE1haW50YWluZXI6ICAgUmFsZiBXaWxkZW5odWVzIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgotIiBMYXN0IENoYW5nZTogICREYXRlJAotIiAkUmV2aXNpb24kCisiIExhc3QgQ2hhbmdlOiAgJERhdGU6IDIwMDQvMDYvMTMgMTg6MTc6MzYgJAorIiAkUmV2aXNpb246IDEuMSAkCiAKIGlmIGV4aXN0cygiY3VycmVudF9jb21waWxlciIpCiAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9nY2MudmltIGIvcnVudGltZS9jb21waWxlci9nY2MudmltCmluZGV4IGE2MjQxNWYuLjc1YzU5NmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvZ2NjLnZpbQorKysgYi9ydW50aW1lL2NvbXBpbGVyL2djYy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBjb21waWxlciBmaWxlCiAiIENvbXBpbGVyOiAgICAgICAgIEdOVSBDIENvbXBpbGVyCiAiIE1haW50YWluZXI6ICAgICAgIE5pa29sYWkgV2VpYnVsbCA8bm93QGJpdHdpLnNlPgotIiBMYXRlc3QgUmV2aXNpb246ICAyMDA2LTEyLTIwCisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDktMDUtMDEKIAogaWYgZXhpc3RzKCJjdXJyZW50X2NvbXBpbGVyIikKICAgZmluaXNoCkBAIC0xMiwxMCArMTIsMTMgQEAKIHNldCBjcG8tPUMKIAogQ29tcGlsZXJTZXQgZXJyb3Jmb3JtYXQ9CisgICAgICBcJSpbXlwiXVwiJWZcIiUqXFxEJWw6JWM6XCAlbSwKICAgICAgIFwlKlteXCJdXCIlZlwiJSpcXEQlbDpcICVtLAorICAgICAgXFwiJWZcIiUqXFxEJWw6JWM6XCAlbSwKICAgICAgIFxcIiVmXCIlKlxcRCVsOlwgJW0sCiAgICAgICBcJS1HJWY6JWw6XCAldHJyb3I6XCAoRWFjaFwgdW5kZWNsYXJlZFwgaWRlbnRpZmllclwgaXNcIHJlcG9ydGVkXCBvbmx5XCBvbmNlLAogICAgICAgXCUtRyVmOiVsOlwgJXRycm9yOlwgZm9yXCBlYWNoXCBmdW5jdGlvblwgaXRcIGFwcGVhcnNcIGluLiksCisgICAgICBcJWY6JWw6JWM6XCAlbSwKICAgICAgIFwlZjolbDpcICVtLAogICAgICAgXFwiJWZcIlxcLFwgbGluZVwgJWwlKlxcRCVjJSpbXlwgXVwgJW0sCiAgICAgICBcJUQlKlxcYVslKlxcZF06XCBFbnRlcmluZ1wgZGlyZWN0b3J5XCBgJWYnLApkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9nbmF0LnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvZ25hdC52aW0KaW5kZXggYWQxNjk3YS4uZDdlYzU1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9jb21waWxlci9nbmF0LnZpbQorKysgYi9ydW50aW1lL2NvbXBpbGVyL2duYXQudmltCkBAIC0xLDE0ICsxLDE0IEBACiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBEZXNjcmlwdGlvbjogVmltIEFkYS9HTkFUIGNvbXBpbGVyIGZpbGUKICIgICAgIExhbmd1YWdlOiBBZGEgKEdOQVQpCi0iICAgICAgICAgICRJZCQKKyIgICAgICAgICAgJElkOiBnbmF0LnZpbSA4ODcgMjAwOC0wNy0wOCAxNDoyOTowMVoga3Jpc2NoaWsgJAogIiAgICBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNiBNYXJ0aW4gS3Jpc2NoaWsKICIgICBNYWludGFpbmVyOglNYXJ0aW4gS3Jpc2NoaSA8a3Jpc2NoaWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PmsKICIJCU5lZCBPa2llIDxub2tpZUByYWRmb3JkLmVkdT4KLSIgICAgICAkQXV0aG9yJAotIiAgICAgICAgJERhdGUkCisiICAgICAgJEF1dGhvcjoga3Jpc2NoaWsgJAorIiAgICAgICAgJERhdGU6IDIwMDgtMDctMDggMTY6Mjk6MDEgKzAyMDAgKERpLCAwOCBKdWwgMjAwOCkgJAogIiAgICAgIFZlcnNpb246IDQuNgotIiAgICAkUmV2aXNpb24kCisiICAgICRSZXZpc2lvbjogODg3ICQKICIgICAgICRIZWFkVVJMOiBodHRwczovL2dudWFkYS5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9jb21waWxlci9nbmF0LnZpbSAkCiAiICAgICAgSGlzdG9yeTogMjQuMDUuMjAwNiBNSyBVbmlmaWVkIEhlYWRlcnMKICIJCTE2LjA3LjIwMDYgTUsgQWRhLU1vZGUgYXMgdmltLWJhbGwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvamlrZXMudmltIGIvcnVudGltZS9jb21waWxlci9qaWtlcy52aW0KaW5kZXggODU2Njk2OS4uNTEyNTEyOCAxMDA2NDQKLS0tIGEvcnVudGltZS9jb21waWxlci9qaWtlcy52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9qaWtlcy52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBDb21waWxlciBGaWxlCiAiIENvbXBpbGVyOglKaWtlcwogIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgaG90bWFpbCBkb3QgY29tPgotIiBMYXN0IENoYW5nZToJMjAwNCBNYXIgMjcKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2NvbXBpbGVyCisiIExhc3QgQ2hhbmdlOgkyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2NvbXBpbGVyCiAKIGlmIGV4aXN0cygiY3VycmVudF9jb21waWxlciIpCiAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9yc3BlYy52aW0gYi9ydW50aW1lL2NvbXBpbGVyL3JzcGVjLnZpbQppbmRleCAxOWM0MTBmLi5jMTg1YmM3IDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL3JzcGVjLnZpbQorKysgYi9ydW50aW1lL2NvbXBpbGVyL3JzcGVjLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGNvbXBpbGVyIGZpbGUKICIgTGFuZ3VhZ2U6CQlSU3BlYwogIiBNYWludGFpbmVyOgkJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgotIiBJbmZvOgkJCSRJZCQKKyIgSW5mbzoJCQkkSWQ6IHJzcGVjLnZpbSx2IDEuMiAyMDA4LzA2LzI5IDA0OjE4OjQyIHRwb3BlIEV4cCAkCiAiIFVSTDoJCQlodHRwOi8vdmltLXJ1YnkucnVieWZvcmdlLm9yZwogIiBBbm9uIENWUzoJCVNlZSBhYm92ZSBzaXRlCiAiIFJlbGVhc2UgQ29vcmRpbmF0b3I6CURvdWcgS2Vhcm5zIDxkb3Vna2Vhcm5zQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvcnVieS52aW0gYi9ydW50aW1lL2NvbXBpbGVyL3J1YnkudmltCmluZGV4IDk2MDdmNzUuLmZmM2IzYzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvcnVieS52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9ydWJ5LnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6CQlSdWJ5CiAiIEZ1bmN0aW9uOgkJU3ludGF4IGNoZWNrIGFuZC9vciBlcnJvciByZXBvcnRpbmcKICIgTWFpbnRhaW5lcjoJCVRpbSBIYW1tZXJxdWlzdCA8dGltaCBhdCBydWJ5Zm9yZ2Uub3JnPgotIiBJbmZvOgkJCSRJZCQKKyIgSW5mbzoJCQkkSWQ6IHJ1YnkudmltLHYgMS4xMyAyMDA4LzA2LzI5IDA0OjE4OjQzIHRwb3BlIEV4cCAkCiAiIFVSTDoJCQlodHRwOi8vdmltLXJ1YnkucnVieWZvcmdlLm9yZwogIiBBbm9uIENWUzoJCVNlZSBhYm92ZSBzaXRlCiAiIFJlbGVhc2UgQ29vcmRpbmF0b3I6CURvdWcgS2Vhcm5zIDxkb3Vna2Vhcm5zQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvcnVieXVuaXQudmltIGIvcnVudGltZS9jb21waWxlci9ydWJ5dW5pdC52aW0KaW5kZXggNzRhNmYwMS4uZGQ1ZDRjYiAxMDA2NDQKLS0tIGEvcnVudGltZS9jb21waWxlci9ydWJ5dW5pdC52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9ydWJ5dW5pdC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBjb21waWxlciBmaWxlCiAiIExhbmd1YWdlOgkJVGVzdDo6VW5pdCAtIFJ1YnkgVW5pdCBUZXN0aW5nIEZyYW1ld29yawogIiBNYWludGFpbmVyOgkJRG91ZyBLZWFybnMgPGRvdWdrZWFybnNAZ21haWwuY29tPgotIiBJbmZvOgkJCSRJZCQKKyIgSW5mbzoJCQkkSWQ6IHJ1Ynl1bml0LnZpbSx2IDEuMTIgMjAwOC8wNi8yOSAwNDoxODo0MyB0cG9wZSBFeHAgJAogIiBVUkw6CQkJaHR0cDovL3ZpbS1ydWJ5LnJ1Ynlmb3JnZS5vcmcKICIgQW5vbiBDVlM6CQlTZWUgYWJvdmUgc2l0ZQogIiBSZWxlYXNlIENvb3JkaW5hdG9yOglEb3VnIEtlYXJucyA8ZG91Z2tlYXJuc0BnbWFpbC5jb20+CmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbXBpbGVyL3NwbGludC52aW0gYi9ydW50aW1lL2NvbXBpbGVyL3NwbGludC52aW0KaW5kZXggNWJhNWUwMy4uNjIzOWNhNyAxMDA2NDQKLS0tIGEvcnVudGltZS9jb21waWxlci9zcGxpbnQudmltCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvc3BsaW50LnZpbQpAQCAtMyw3ICszLDcgQEAKICIgTWFpbnRhaW5lcjogICBSYWxmIFdpbGRlbmh1ZXMgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CiAiIFNwbGludCBIb21lOglodHRwOi8vd3d3LnNwbGludC5vcmcvCiAiIExhc3QgQ2hhbmdlOiAgMjAwNSBBcHIgMjEKLSIgJFJldmlzaW9uJAorIiAkUmV2aXNpb246IDEuMyAkCiAKIGlmIGV4aXN0cygiY3VycmVudF9jb21waWxlciIpCiAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9maWxldHlwZS52aW0gYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQppbmRleCBjMzQ1MTBlLi41NjY1Y2MyIDEwMDY0NAotLS0gYS9ydW50aW1lL2ZpbGV0eXBlLnZpbQorKysgYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN1cHBvcnQgZmlsZSB0byBkZXRlY3QgZmlsZSB0eXBlcwogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwOCBBdWcgMDMKKyIgTGFzdCBDaGFuZ2U6CTIwMDkgRGVjIDI0CiAKICIgTGlzdGVuIHZlcnkgY2FyZWZ1bGx5LCBJIHdpbGwgc2F5IHRoaXMgb25seSBvbmNlCiBpZiBleGlzdHMoImRpZF9sb2FkX2ZpbGV0eXBlcyIpCkBAIC0xMTAsMTIgKzExMCwxNSBAQAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIHByb2Z0cGQuY29uZioJCWNhbGwgczpTdGFyU2V0ZignYXBhY2hlc3R5bGUnKQogCiAiIEFwYWNoZSBjb25maWcgZmlsZQotYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC5odGFjY2VzcwkJCSBzZXRmIGFwYWNoZQotYXUgQnVmTmV3RmlsZSxCdWZSZWFkIGh0dHBkLmNvbmYqLHNybS5jb25mKixhY2Nlc3MuY29uZiosYXBhY2hlLmNvbmYqLGFwYWNoZTIuY29uZiosL2V0Yy9hcGFjaGUyLyouY29uZiogY2FsbCBzOlN0YXJTZXRmKCdhcGFjaGUnKQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC5odGFjY2VzcywvZXRjL2h0dHBkLyouY29uZgkJIHNldGYgYXBhY2hlCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgaHR0cGQuY29uZiosc3JtLmNvbmYqLGFjY2Vzcy5jb25mKixhcGFjaGUuY29uZiosYXBhY2hlMi5jb25mKiwvZXRjL2FwYWNoZTIvKi5jb25mKiwvZXRjL2h0dHBkL2NvbmYuZC8qLmNvbmYqIGNhbGwgczpTdGFyU2V0ZignYXBhY2hlJykKIAogIiBYQTY1IE1PUzY1MTAgY3Jvc3MgYXNzZW1ibGVyCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5hNjUJCQlzZXRmIGE2NQogCisiIEFwcGxlc2NyaXB0CithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zY3B0CQkJc2V0ZiBhcHBsZXNjcmlwdAorCiAiIEFwcGxpeCBFTEYKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmFtCiAJXCBpZiBleHBhbmQoIjxhZmlsZT4iKSAhfj8gJ01ha2VmaWxlLmFtXD4nIHwgc2V0ZiBlbGYgfCBlbmRpZgpAQCAtMzUwLDEwICszNTMsOSBAQAogCVwgaWYgZXhpc3RzKCJjeW5saWJfc3ludGF4X2Zvcl9jcHAiKXxzZXRmIGN5bmxpYnxlbHNlfHNldGYgY3BwfGVuZGlmCiAKICIgQysrCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5jeHgsKi5jKyssKi5oaCwqLmh4eCwqLmhwcCwqLmlwcCwqLm1vYywqLnRjYywqLmlubCBzZXRmIGNwcAogaWYgaGFzKCJmbmFtZV9jYXNlIikKLSAgYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouY3h4LCouYysrLCouQywqLkgsKi5oaCwqLmh4eCwqLmhwcCwqLm1vYywqLnRjYywqLmlubCBzZXRmIGNwcAotZWxzZQotICBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5jeHgsKi5jKyssKi5oaCwqLmh4eCwqLmhwcCwqLm1vYywqLnRjYywqLmlubCBzZXRmIGNwcAorICBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5DLCouSCBzZXRmIGNwcAogZW5kaWYKIAogIiAuaCBmaWxlcyBjYW4gYmUgQywgQ2ggQysrLCBPYmpDIG9yIE9iakMrKy4KQEAgLTM2NCw5ICszNjYsOSBAQAogZnVuYyEgczpGVGhlYWRlcigpCiAgIGlmIG1hdGNoKGdldGxpbmUoMSwgbWluKFtsaW5lKCIkIiksIDIwMF0pKSwgJ15AXChpbnRlcmZhY2VcfGVuZFx8Y2xhc3NcKScpID4gLTEKICAgICBzZXRmIG9iamMKLSAgZWxzZWlmIGV4aXN0cygiY19zeW50YXhfZm9yX2giKQorICBlbHNlaWYgZXhpc3RzKCJnOmNfc3ludGF4X2Zvcl9oIikKICAgICBzZXRmIGMKLSAgZWxzZWlmIGV4aXN0cygiY2hfc3ludGF4X2Zvcl9oIikKKyAgZWxzZWlmIGV4aXN0cygiZzpjaF9zeW50YXhfZm9yX2giKQogICAgIHNldGYgY2gKICAgZWxzZQogICAgIHNldGYgY3BwCkBAIC02NjksOCArNjcxLDkgQEAKICIgRmV0Y2htYWlsIFJDIGZpbGUKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAuZmV0Y2htYWlscmMJCXNldGYgZmV0Y2htYWlsCiAKLSIgRmxleFdpa2kKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLndpa2kJCQlzZXRmIGZsZXh3aWtpCisiIEZsZXhXaWtpIC0gZGlzYWJsZWQsIGJlY2F1c2UgaXQgaGFzIHNpZGUgZWZmZWN0cyB3aGVuIGEgLndpa2kgZmlsZQorIiBpcyBub3QgYWN0dWFsbHkgRmxleFdpa2kKKyJhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi53aWtpCQkJc2V0ZiBmbGV4d2lraQogCiAiIEZvY3VzIEV4ZWN1dGFibGUKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmZleCwqLmZvY2V4ZWMJCXNldGYgZm9jZXhlYwpAQCAtNzA0LDEyICs3MDcsMTIgQEAKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLm1vLCouZ2RtbwkJc2V0ZiBnZG1vCiAKICIgR2VkY29tCi1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5nZWQJCQlzZXRmIGdlZGNvbQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZ2VkLGxsdHh4eHh4LnR4dAlzZXRmIGdlZGNvbQogCiAiIEdpdAotYXV0b2NtZCBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5naXQvQ09NTUlUX0VESVRNU0cgICAgc2V0ZiBnaXRjb21taXQKLWF1dG9jbWQgQnVmTmV3RmlsZSxCdWZSZWFkICouZ2l0L2NvbmZpZywuZ2l0Y29uZmlnIHNldGYgZ2l0Y29uZmlnCi1hdXRvY21kIEJ1Zk5ld0ZpbGUsQnVmUmVhZCBnaXQtcmViYXNlLXRvZG8gICAgICAgICBzZXRmIGdpdHJlYmFzZQorYXV0b2NtZCBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5naXQvQ09NTUlUX0VESVRNU0cgc2V0ZiBnaXRjb21taXQKK2F1dG9jbWQgQnVmTmV3RmlsZSxCdWZSZWFkICouZ2l0L2NvbmZpZywuZ2l0Y29uZmlnLC5naXRtb2R1bGVzIHNldGYgZ2l0Y29uZmlnCithdXRvY21kIEJ1Zk5ld0ZpbGUsQnVmUmVhZCBnaXQtcmViYXNlLXRvZG8gICAgICBzZXRmIGdpdHJlYmFzZQogYXV0b2NtZCBCdWZOZXdGaWxlLEJ1ZlJlYWQgLm1zZy5bMC05XSoKICAgICAgIFwgaWYgZ2V0bGluZSgxKSA9fiAnXkZyb20uKiMgVGhpcyBsaW5lIGlzIGlnbm9yZWQuJCcgfAogICAgICAgXCAgIHNldGYgZ2l0c2VuZGVtYWlsIHwKQEAgLTg5Niw3ICs4OTksNyBAQAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouamosKi5qanQJCXNldGYgamF2YWNjCiAKICIgSmF2YVNjcmlwdCwgRUNNQVNjcmlwdAotYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouanMsKi5qYXZhc2NyaXB0LCouZXMJc2V0ZiBqYXZhc2NyaXB0CithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5qcywqLmphdmFzY3JpcHQsKi5lcywqLmpzeAlzZXRmIGphdmFzY3JpcHQKIAogIiBKYXZhIFNlcnZlciBQYWdlcwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouanNwCQkJc2V0ZiBqc3AKQEAgLTEwNDMsNyArMTA0Niw3IEBACiAgIGxldCBuID0gMQogICB3aGlsZSBuIDwgMTAKICAgICBsZXQgbGluZSA9IGdldGxpbmUobikKLSAgICBpZiBsaW5lID1+ICdeXHMqXCgjXHMqXChpbmNsdWRlXHxpbXBvcnRcKVw+XHwvXCpcKScKKyAgICBpZiBsaW5lID1+ICdeXHMqXCgjXHMqXChpbmNsdWRlXHxpbXBvcnRcKVw+XHwvXCpcfC8vXCknCiAgICAgICBzZXRmIG9iamMKICAgICAgIHJldHVybgogICAgIGVuZGlmCkBAIC0xMDcwLDYgKzEwNzMsOSBAQAogIiBNYXlhIEV4dGVuc2lvbiBMYW5ndWFnZQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoubWVsCQkJc2V0ZiBtZWwKIAorIiBNZXJjdXJpYWwgY29uZmlnIChsb29rcyBsaWtlIGdlbmVyaWMgY29uZmlnIGZpbGUpCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5oZ3JjLCpoZ3JjCQlzZXRmIGNmZworCiAiIE1lc3NhZ2VzCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgL3Zhci9sb2cvbWVzc2FnZXMsL3Zhci9sb2cvbWVzc2FnZXMuKlswLTldICBzZXRmIG1lc3NhZ2VzCiAKQEAgLTEyNjAsNyArMTI2Niw3IEBACiBlbHNlCiAgIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnBsCQkJY2FsbCBzOkZUcGwoKQogZW5kaWYKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnBseAkJCXNldGYgcGVybAorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoucGx4LCouYWwJCXNldGYgcGVybAogCiBmdW5jISBzOkZUcGwoKQogICBpZiBleGlzdHMoImc6ZmlsZXR5cGVfcGwiKQpAQCAtMTU1Miw2ICsxNTU4LDcgQEAKIAogIiBSZW1pbmQKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAucmVtaW5kZXJzKgkJY2FsbCBzOlN0YXJTZXRmKCdyZW1pbmQnKQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoucmVtaW5kLCoucmVtCQlzZXRmIHJlbWluZAogCiAiIFJlc29sdi5jb25mCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgcmVzb2x2LmNvbmYJCXNldGYgcmVzb2x2CkBAIC0xNTg2LDcgKzE1OTMsNyBAQAogIiBSYW50ZmlsZSBhbmQgUmFrZWZpbGUgaXMgbGlrZSBSdWJ5CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgW3JSXWFudGZpbGUsKi5yYW50LFtyUl1ha2VmaWxlLCoucmFrZQlzZXRmIHJ1YnkKIAotIiBTLWxhbmcgKG9yIHNoYWRlciBsYW5ndWFnZSEpCisiIFMtbGFuZyAob3Igc2hhZGVyIGxhbmd1YWdlLCBvciBTbWFsbExpc3ApCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zbAkJCXNldGYgc2xhbmcKIAogIiBTYW1iYSBjb25maWcKQEAgLTE2ODUsNyArMTY5MiwxNSBAQAogICBpZiBleHBhbmQoIjxhbWF0Y2g+IikgPX4gZzpmdF9pZ25vcmVfcGF0CiAgICAgcmV0dXJuCiAgIGVuZGlmCi0gIGlmIGE6bmFtZSA9fiAnXDxrc2hcPicKKyAgaWYgYTpuYW1lID1+ICdcPGNzaFw+JworICAgICIgU29tZSAuc2ggc2NyaXB0cyBjb250YWluICMhL2Jpbi9jc2guCisgICAgY2FsbCBTZXRGaWxlVHlwZVNoZWxsKCJjc2giKQorICAgIHJldHVybgorICBlbHNlaWYgYTpuYW1lID1+ICdcPHRjc2hcPicKKyAgICAiIFNvbWUgLnNoIHNjcmlwdHMgY29udGFpbiAjIS9iaW4vdGNzaC4KKyAgICBjYWxsIFNldEZpbGVUeXBlU2hlbGwoInRjc2giKQorICAgIHJldHVybgorICBlbHNlaWYgYTpuYW1lID1+ICdcPGtzaFw+JwogICAgIGxldCBiOmlzX2tvcm5zaGVsbCA9IDEKICAgICBpZiBleGlzdHMoImI6aXNfYmFzaCIpCiAgICAgICB1bmxldCBiOmlzX2Jhc2gKQEAgLTE4MjMsMTAgKzE4MzgsMTUgQEAKIAogbGV0IHM6ZnRfcnVsZXNfdWRldl9ydWxlc19wYXR0ZXJuID0gJ15ccypcY3VkZXZfcnVsZXNccyo9XHMqIlwoW14iXVx7LTEsfVwpLyoiLionCiBmdW5jISBzOkZUUnVsZXMoKQotICBpZiBleHBhbmQoJzxhbWF0Y2g+OnAnKSA9fiAnXi9ldGMvdWRldi9cJShydWxlc1wuZC9cKVw9LipcLnJ1bGVzJCcKKyAgbGV0IHBhdGggPSBleHBhbmQoJzxhbWF0Y2g+OnAnKQorICBpZiBwYXRoID1+ICdeL2V0Yy91ZGV2L1wlKHJ1bGVzXC5kL1wpXD0uKlwucnVsZXMkJwogICAgIHNldGYgdWRldnJ1bGVzCiAgICAgcmV0dXJuCiAgIGVuZGlmCisgIGlmIHBhdGggPX4gJ14vZXRjL3Vmdy8nCisgICAgc2V0ZiBjb25mICAiIEJldHRlciB0aGFuIGhvZworICAgIHJldHVybgorICBlbmRpZgogICB0cnkKICAgICBsZXQgY29uZmlnX2xpbmVzID0gcmVhZGZpbGUoJy9ldGMvdWRldi91ZGV2LmNvbmYnKQogICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTQ4NC8KQEAgLTE5MDksNiArMTkyOSw5IEBACiAiIFN5c2N0bAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC9ldGMvc3lzY3RsLmNvbmYJCXNldGYgc3lzY3RsCiAKKyIgU3lub3BzeXMgRGVzaWduIENvbnN0cmFpbnRzCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zZGMJCQlzZXRmIHNkYworCiAiIFN1ZG9lcnMKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAvZXRjL3N1ZG9lcnMsc3Vkb2Vycy50bXAJc2V0ZiBzdWRvZXJzCiAKQEAgLTE5NDQsNiArMTk2NywxMCBAQAogIiBUQUsKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnRhawkJCXNldGYgdGFrCiAKKyIgVGFzaworYXUgQnVmUmVhZCxCdWZOZXdGaWxlIHtwZW5kaW5nLGNvbXBsZXRlZCx1bmRvfS5kYXRhICBzZXRmIHRhc2tkYXRhCithdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgKi50YXNrICAgICAgICAgICAgICAgICAgICBzZXRmIHRhc2tlZGl0CisKICIgVGNsIChKQUNMIHRvbykKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnRjbCwqLnRrLCouaXRjbCwqLml0aywqLmphY2wJc2V0ZiB0Y2wKIApAQCAtMjA3OSw4ICsyMTA2LDEzIEBACiAiIFZpbWluZm8gZmlsZQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC52aW1pbmZvLF92aW1pbmZvCQlzZXRmIHZpbWluZm8KIAotIiBWaXJhdGEgQ29uZmlnIFNjcmlwdCBGaWxlCi1hdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgKi5odywqLm1vZHVsZSwqLnBrZwlzZXRmIHZpcmF0YQorIiBWaXJhdGEgQ29uZmlnIFNjcmlwdCBGaWxlIG9yIERydXBhbCBtb2R1bGUKK2F1IEJ1ZlJlYWQsQnVmTmV3RmlsZSAqLmh3LCoubW9kdWxlLCoucGtnCisJXCBpZiBnZXRsaW5lKDEpID1+ICc8P3BocCcgfAorCVwgICBzZXRmIHBocCB8CisJXCBlbHNlIHwKKwlcICAgc2V0ZiB2aXJhdGEgfAorCVwgZW5kaWYKIAogIiBWaXN1YWwgQmFzaWMgKGFsc28gdXNlcyAqLmJhcykgb3IgRk9STQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZnJtCQkJY2FsbCBzOkZUVkIoImZvcm0iKQpAQCAtMjMyNSw2ICsyMzU3LDkgQEAKIAlcfCAgbGV0IGI6ZnZ3bV92ZXJzaW9uID0gMiB8IGNhbGwgczpTdGFyU2V0ZignZnZ3bScpCiAJXHxlbmRpZgogCisiIEdlZGNvbQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC90bXAvbGx0bXAqCQljYWxsIHM6U3RhclNldGYoJ2dlZGNvbScpCisKICIgR1RLIFJDCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgLmd0a3JjKixndGtyYyoJCWNhbGwgczpTdGFyU2V0ZignZ3RrcmMnKQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2FiYXF1cy52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2FiYXF1cy52aW0KaW5kZXggMTc5ODViMy4uODczYjliZiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9hYmFxdXMudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vYWJhcXVzLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOiAgICAgQWJhcXVzIGZpbml0ZSBlbGVtZW50IGlucHV0IGZpbGUgKHd3dy5hYmFxdXMuY29tKQogIiBNYWludGFpbmVyOiAgIENhcmwgT3N0ZXJ3aXNjaCA8b3N0ZXJ3aXNjaGNAYXNtZS5vcmc+Ci0iIExhc3QgQ2hhbmdlOiAgMjAwNCBKdWwgMDYKKyIgTGFzdCBDaGFuZ2U6ICAyMDA4IE9jdCA1CiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKQEAgLTEzLDEzICsxMyw2IEBACiBsZXQgczpjcG9fc2F2ZSA9ICZjcG9wdGlvbnMKIHNldCBjcG9wdGlvbnMmdmltCiAKLSIgRm9sZGluZwotaWYgdmVyc2lvbiA+PSA2MDAKLSAgICAiIEZvbGQgYWxsIGxpbmVzIHRoYXQgZG8gbm90IGJlZ2luIHdpdGggKgotICAgIHNldGxvY2FsIGZvbGRleHByPWdldGxpbmUodjpsbnVtKVswXSE9XCJcKlwiCi0gICAgc2V0bG9jYWwgZm9sZG1ldGhvZD1leHByCi1lbmRpZgotCiAiIFNldCB0aGUgZm9ybWF0IG9mIHRoZSBpbmNsdWRlIGZpbGUgc3BlY2lmaWNhdGlvbiBmb3IgQWJhcXVzCiAiIFVzZWQgaW4gOmNoZWNrIGdmIF53ZiBbaSBhbmQgb3RoZXIgY29tbWFuZHMKIHNldGxvY2FsIGluY2x1ZGU9XFw8XFxjSU5QVVRcXHMqPQpAQCAtNDIsMjkgKzM1LDQzIEBACiAiIEFiYXF1cyBrZXl3b3JkcyBhbmQgaWRlbnRpZmllcnMgbWF5IGluY2x1ZGUgYSAtIGNoYXJhY3Rlcgogc2V0bG9jYWwgaXNrZXl3b3JkKz0tCiAKK2xldCBiOnVuZG9fZnRwbHVnaW4gPSAic2V0bG9jYWwgaW5jbHVkZTwgaW5jbHVkZWV4cHI8IGlzZm5hbWU8IgorICAgIFwgLiAiIGNvbW1lbnRzPCBjb21tZW50c3RyaW5nPCBkZWZpbmU8IGlza2V5d29yZDwiCisKK2lmIGhhcygiZm9sZGluZyIpCisgICAgIiBGb2xkIGFsbCBsaW5lcyB0aGF0IGRvIG5vdCBiZWdpbiB3aXRoICoKKyAgICBzZXRsb2NhbCBmb2xkZXhwcj1nZXRsaW5lKHY6bG51bSlbMF0hPVwiXCpcIgorICAgIHNldGxvY2FsIGZvbGRtZXRob2Q9ZXhwcgorICAgIGxldCBiOnVuZG9fZnRwbHVnaW4gLj0gIiBmb2xkZXhwcjwgZm9sZG1ldGhvZDwiCitlbmRpZgorCiAiIFNldCB0aGUgZmlsZSBicm93c2UgZmlsdGVyIChjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdW5kZXIgV2luMzIgZ3VpKQogaWYgaGFzKCJndWlfd2luMzIiKSAmJiAhZXhpc3RzKCJiOmJyb3dzZWZpbHRlciIpCiAgICAgbGV0IGI6YnJvd3NlZmlsdGVyID0gIkFiYXF1cyBJbnB1dCBGaWxlcyAoKi5pbnAgKi5pbmMpXHQqLmlucDsqLmluY1xuIiAuCiAgICAgXCAiQWJhcXVzIFJlc3VsdHMgKCouZGF0KVx0Ki5kYXRcbiIgLgogICAgIFwgIkFiYXF1cyBNZXNzYWdlcyAoKi5wcmUgKi5tc2cgKi5zdGEpXHQqLnByZTsqLm1zZzsqLnN0YVxuIiAuCiAgICAgXCAiQWxsIEZpbGVzICgqLiopXHQqLipcbiIKKyAgICBsZXQgYjp1bmRvX2Z0cGx1Z2luIC49ICJ8dW5sZXQgYjpicm93c2VmaWx0ZXIiCiBlbmRpZgogCi0iIERlZmluZSBrZXlzIHVzZWQgdG8gbW92ZSBbY291bnRdIHNlY3Rpb25zIGJhY2t3YXJkIG9yIGZvcndhcmQuCi0iIFRPRE86IE1ha2UgdGhpcyBkbyBzb21ldGhpbmcgaW50ZWxsaWdlbnQgaW4gdmlzdWFsIG1vZGUuCi1ubm9yZW1hcCA8c2lsZW50PiA8YnVmZmVyPiBbWyA6Y2FsbCA8U0lEPkFiYXF1c19KdW1wKCc/XlwqXGE/Jyk8Q1I+Ci1ubm9yZW1hcCA8c2lsZW50PiA8YnVmZmVyPiBdXSA6Y2FsbCA8U0lEPkFiYXF1c19KdW1wKCcvXlwqXGEvJyk8Q1I+Ci1mdW5jdGlvbiEgPFNJRD5BYmFxdXNfSnVtcChtb3Rpb24pIHJhbmdlCi0gICAgbGV0IHM6Y291bnQgPSB2OmNvdW50MQotICAgIG1hcmsgJwotICAgIHdoaWxlIHM6Y291bnQgPiAwCi0gICAgICAgIHNpbGVudCEgZXhlY3V0ZSBhOm1vdGlvbgotICAgICAgICBsZXQgczpjb3VudCA9IHM6Y291bnQgLSAxCi0gICAgZW5kd2hpbGUKLWVuZGZ1bmN0aW9uCisiIERlZmluZSBwYXR0ZXJucyBmb3IgdGhlIG1hdGNoaXQgcGx1Z2luCitpZiBleGlzdHMoImxvYWRlZF9tYXRjaGl0IikgJiYgIWV4aXN0cygiYjptYXRjaF93b3JkcyIpCisgICAgbGV0IGI6bWF0Y2hfaWdub3JlY2FzZSA9IDEKKyAgICBsZXQgYjptYXRjaF93b3JkcyA9IAorICAgIFwgJ1wqcGFydDpcKmVuZFxzKnBhcnQsJyAuCisgICAgXCAnXCphc3NlbWJseTpcKmVuZFxzKmFzc2VtYmx5LCcgLgorICAgIFwgJ1wqaW5zdGFuY2U6XCplbmRccyppbnN0YW5jZSwnIC4KKyAgICBcICdcKnN0ZXA6XCplbmRccypzdGVwJworICAgIGxldCBiOnVuZG9fZnRwbHVnaW4gLj0gInx1bmxldCBiOm1hdGNoX2lnbm9yZWNhc2UgYjptYXRjaF93b3JkcyIKK2VuZGlmCisKKyIgRGVmaW5lIGtleXMgdXNlZCB0byBtb3ZlIFtjb3VudF0ga2V5d29yZHMgYmFja3dhcmQgb3IgZm9yd2FyZC4KK25vcmVtYXAgPHNpbGVudD48YnVmZmVyPiBbWyA/XlwqXGE8Q1I+Om5vaGxzZWFyY2g8Q1I+Citub3JlbWFwIDxzaWxlbnQ+PGJ1ZmZlcj4gXV0gL15cKlxhPENSPjpub2hsc2VhcmNoPENSPgogCiAiIERlZmluZSBrZXkgdG8gdG9nZ2xlIGNvbW1lbnRpbmcgb2YgdGhlIGN1cnJlbnQgbGluZSBvciByYW5nZQotbm9yZW1hcCA8c2lsZW50PiA8YnVmZmVyPiA8bS1jPiA6Y2FsbCA8U0lEPkFiYXF1c19Ub2dnbGVDb21tZW50KCk8Q1I+agorbm9yZW1hcCA8c2lsZW50PjxidWZmZXI+IDxMb2NhbExlYWRlcj48TG9jYWxMZWFkZXI+IAorICAgIFwgOmNhbGwgPFNJRD5BYmFxdXNfVG9nZ2xlQ29tbWVudCgpPENSPmoKIGZ1bmN0aW9uISA8U0lEPkFiYXF1c19Ub2dnbGVDb21tZW50KCkgcmFuZ2UKICAgICBpZiBzdHJwYXJ0KGdldGxpbmUoYTpmaXJzdGxpbmUpLCAwLCAyKSA9PSAiKioiCiAgICAgICAgICIgVW4tY29tbWVudCBhbGwgbGluZXMgaW4gcmFuZ2UKQEAgLTc1LDUgKzgyLDggQEAKICAgICBlbmRpZgogZW5kZnVuY3Rpb24KIAorbGV0IGI6dW5kb19mdHBsdWdpbiAuPSAifHVubWFwIDxidWZmZXI+IFtbfHVubWFwIDxidWZmZXI+IF1dIgorICAgIFwgLiAifHVubWFwIDxidWZmZXI+IDxMb2NhbExlYWRlcj48TG9jYWxMZWFkZXI+IgorCiAiIFJlc3RvcmUgc2F2ZWQgY29tcGF0aWJpbGl0eSBvcHRpb25zCiBsZXQgJmNwb3B0aW9ucyA9IHM6Y3BvX3NhdmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vYWRhLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vYWRhLnZpbQppbmRleCAwNDU2NDVkLi4wOTExODFmIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2FkYS52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9hZGEudmltCkBAIC0xLDE0ICsxLDE0IEBACiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBEZXNjcmlwdGlvbjogUGVyZm9ybSBBZGEgc3BlY2lmaWMgY29tcGxldGlvbiAmIHRhZ2dpbmcuCiAiICAgICBMYW5ndWFnZTogQWRhICgyMDA1KQotIgkgICAkSWQkCisiCSAgICRJZDogYWRhLnZpbSA4ODcgMjAwOC0wNy0wOCAxNDoyOTowMVoga3Jpc2NoaWsgJAogIiAgIE1haW50YWluZXI6IE1hcnRpbiBLcmlzY2hpayA8a3Jpc2NoaWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogIgkJVGF5bG9yIFZlbmFibGUgPHRheWxvckBtZXRhc3ludGF4Lm5ldD4KICIJCU5laWwgQmlyZCA8bmVpbEBmbnh3ZWIuY29tPgotIiAgICAgICRBdXRob3IkCi0iCSAkRGF0ZSQKKyIgICAgICAkQXV0aG9yOiBrcmlzY2hpayAkCisiCSAkRGF0ZTogMjAwOC0wNy0wOCAxNjoyOTowMSArMDIwMCAoRGksIDA4IEp1bCAyMDA4KSAkCiAiICAgICAgVmVyc2lvbjogNC42Ci0iICAgICRSZXZpc2lvbiQKKyIgICAgJFJldmlzaW9uOiA4ODcgJAogIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vZ251YWRhLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2Z0cGx1Z2luL2FkYS52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkyNi4wNS4yMDA2IE1LICcgc2hvdWxkIG5vdCBiZSBpbiBpc2tleXdvcmQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2FudC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2FudC52aW0KaW5kZXggZDQ1ZWYzYi4uNjQ4ZmNhMSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9hbnQudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vYW50LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglhbnQKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDAzIFNlcCAyOQotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9hc3B2YnMudmltIGIvcnVudGltZS9mdHBsdWdpbi9hc3B2YnMudmltCmluZGV4IGUzYmM3MDkuLjJiODQxZWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vYXNwdmJzLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2FzcHZicy52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJYXNwdmJzCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlZDogMjAwNCBKdW4gMjgKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2VkOiAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vYnN0LnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vYnN0LnZpbQppbmRleCA5NzNlMzQyLi41ZTY1YWFjIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2JzdC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9ic3QudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CWJzdAogIiBBdXRob3I6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KLSIgJElkJAorIiAkSWQ6IGJzdC52aW0sdiAxLjEgMjAwNy8wNS8wNSAxNzozNzo1NyB2aW1ib3NzIEV4cCAkCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQogICAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9jaGFuZ2Vsb2cudmltIGIvcnVudGltZS9mdHBsdWdpbi9jaGFuZ2Vsb2cudmltCmluZGV4IDkyNGQzNWQuLjMwY2Q3YjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vY2hhbmdlbG9nLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2NoYW5nZWxvZy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZTogICAgICAgICBnZW5lcmljIENoYW5nZWxvZyBmaWxlCiAiIE1haW50YWluZXI6ICAgICAgIE5pa29sYWkgV2VpYnVsbCA8bm93QGJpdHdpLnNlPgotIiBMYXRlc3QgUmV2aXNpb246ICAyMDA3LTA1LTIxCisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDktMDUtMjUKICIgVmFyaWFibGVzOgogIiAgIGc6Y2hhbmdlbG9nX3RpbWVmb3JtYXQgKGRlcHJlY2F0ZWQ6IHVzZSBnOmNoYW5nZWxvZ19kYXRlZm9ybWF0IGluc3RlYWQpIC0KICIgICAgICAgZGVzY3JpcHRpb246IHRoZSB0aW1lZm9ybWF0IHVzZWQgaW4gQ2hhbmdlTG9nIGVudHJpZXMuCkBAIC00Niw3MyArNDYsNzggQEAKICAgICBlbmRpZgogICBlbmRpZgogCi0gICIgVHJ5IHRvIGZpZ3VyZSBvdXQgYSByZWFzb25hYmxlIHVzZXJuYW1lIG9mIHRoZSBmb3JtOgotICAiICAgRnVsbCBOYW1lIDx1c2VyQGhvc3Q+LgotICBpZiAhZXhpc3RzKCdnOmNoYW5nZWxvZ191c2VybmFtZScpCi0gICAgaWYgZXhpc3RzKCckRU1BSUwnKSAmJiAkRU1BSUwgIT0gJycKLSAgICAgIGxldCBnOmNoYW5nZWxvZ191c2VybmFtZSA9ICRFTUFJTAotICAgIGVsc2VpZiBleGlzdHMoJyRFTUFJTF9BRERSRVNTJykgJiYgJEVNQUlMX0FERFJFU1MgIT0gJycKLSAgICAgICIgVGhpcyBpcyBzb21lIERlYmlhbiBqdW5rIGlmIEkgcmVtZW1iZXIgY29ycmVjdGx5LgotICAgICAgbGV0IGc6Y2hhbmdlbG9nX3VzZXJuYW1lID0gJEVNQUlMX0FERFJFU1MKLSAgICBlbHNlCi0gICAgICAiIEdldCB0aGUgdXNlcnMgbG9naW4gbmFtZS4KLSAgICAgIGxldCBsb2dpbiA9IHN5c3RlbSgnd2hvYW1pJykKLSAgICAgIGlmIHY6c2hlbGxfZXJyb3IKLSAgICAgICAgbGV0IGxvZ2luID0gJ3Vua25vd24nCi0gICAgICBlbHNlCi0gICAgICAgIGxldCBuZXdsaW5lID0gc3RyaWR4KGxvZ2luLCAiXG4iKQotICAgICAgICBpZiBuZXdsaW5lICE9IC0xCi0gICAgICAgICAgbGV0IGxvZ2luID0gc3RycGFydChsb2dpbiwgMCwgbmV3bGluZSkKLSAgICAgICAgZW5kaWYKLSAgICAgIGVuZGlmCi0KLSAgICAgICIgVHJ5IHRvIGdldCB0aGUgZnVsbCBuYW1lIGZyb20gZ2Vjb3MgZmllbGQgaW4gL2V0Yy9wYXNzd2QuCi0gICAgICBpZiBmaWxlcmVhZGFibGUoJy9ldGMvcGFzc3dkJykKLSAgICAgICAgZm9yIGxpbmUgaW4gcmVhZGZpbGUoJy9ldGMvcGFzc3dkJykKLSAgICAgICAgICBpZiBsaW5lID1+ICdeJyAuIGxvZ2luCi0gICAgICAgICAgICBsZXQgbmFtZSA9IHN1YnN0aXR1dGUobGluZSwnXlwlKFteOl0qOlwpXHs0fVwoW146XSpcKTouKiQnLCdcMScsJycpCi0gICAgICAgICAgICAiIE9ubHkga2VlcCBzdHVmZiBiZWZvcmUgdGhlIGZpcnN0IGNvbW1hLgotICAgICAgICAgICAgbGV0IGNvbW1hID0gc3RyaWR4KG5hbWUsICcsJykKLSAgICAgICAgICAgIGlmIGNvbW1hICE9IC0xCi0gICAgICAgICAgICAgIGxldCBuYW1lID0gc3RycGFydChuYW1lLCAwLCBjb21tYSkKLSAgICAgICAgICAgIGVuZGlmCi0gICAgICAgICAgICAiIEFuZCBzdWJzdGl0dXRlICYgaW4gdGhlIHJlYWwgbmFtZSB3aXRoIHRoZSBsb2dpbiBvZiBvdXIgdXNlci4KLSAgICAgICAgICAgIGxldCBhbXAgPSBzdHJpZHgobmFtZSwgJyYnKQotICAgICAgICAgICAgaWYgYW1wICE9IC0xCi0gICAgICAgICAgICAgIGxldCBuYW1lID0gc3RycGFydChuYW1lLCAwLCBhbXApIC4gdG91cHBlcihsb2dpblswXSkgLgotICAgICAgICAgICAgICAgICAgICAgICBcIHN0cnBhcnQobG9naW4sIDEpIC4gc3RycGFydChuYW1lLCBhbXAgKyAxKQotICAgICAgICAgICAgZW5kaWYKLSAgICAgICAgICBlbmRpZgotICAgICAgICBlbmRmb3IKLSAgICAgIGVuZGlmCi0KLSAgICAgICIgSWYgd2UgaGF2ZW4ndCBmb3VuZCBhIG5hbWUsIHRyeSB0byBnYXRoZXIgaXQgZnJvbSBvdGhlciBwbGFjZXMuCi0gICAgICBpZiAhZXhpc3RzKCduYW1lJykKLSAgICAgICAgIiBNYXliZSB0aGUgZW52aXJvbm1lbnQgaGFzIHNvbWV0aGluZyBvZiBpbnRlcmVzdC4KLSAgICAgICAgaWYgZXhpc3RzKCIkTkFNRSIpCi0gICAgICAgICAgbGV0IG5hbWUgPSAkTkFNRQotICAgICAgICBlbHNlCi0gICAgICAgICAgIiBObz8gd2VsbCwgdXNlIHRoZSBsb2dpbiBuYW1lIGFuZCBjYXBpdGFsaXplIGZpcnN0Ci0gICAgICAgICAgIiBjaGFyYWN0ZXIuCi0gICAgICAgICAgbGV0IG5hbWUgPSB0b3VwcGVyKGxvZ2luWzBdKSAuIHN0cnBhcnQobG9naW4sIDEpCi0gICAgICAgIGVuZGlmCi0gICAgICBlbmRpZgotCi0gICAgICAiIEdldCBvdXIgaG9zdG5hbWUuCi0gICAgICBsZXQgaG9zdG5hbWUgPSBzeXN0ZW0oJ2hvc3RuYW1lJykKLSAgICAgIGlmIHY6c2hlbGxfZXJyb3IKLSAgICAgICAgbGV0IGhvc3RuYW1lID0gJ2xvY2FsaG9zdCcKLSAgICAgIGVsc2UKLSAgICAgICAgbGV0IG5ld2xpbmUgPSBzdHJpZHgoaG9zdG5hbWUsICJcbiIpCi0gICAgICAgIGlmIG5ld2xpbmUgIT0gLTEKLSAgICAgICAgICBsZXQgaG9zdG5hbWUgPSBzdHJwYXJ0KGhvc3RuYW1lLCAwLCBuZXdsaW5lKQotICAgICAgICBlbmRpZgotICAgICAgZW5kaWYKLQotICAgICAgIiBBbmQgZmluYWxseSBzZXQgdGhlIHVzZXJuYW1lLgotICAgICAgbGV0IGc6Y2hhbmdlbG9nX3VzZXJuYW1lID0gbmFtZSAuICcgIDwnIC4gbG9naW4gLiAnQCcgLiBob3N0bmFtZSAuICc+JworICBmdW5jdGlvbiEgczp1c2VybmFtZSgpCisgICAgaWYgZXhpc3RzKCdnOmNoYW5nZWxvZ191c2VybmFtZScpCisgICAgICByZXR1cm4gZzpjaGFuZ2Vsb2dfdXNlcm5hbWUKKyAgICBlbHNlaWYgJEVNQUlMICE9ICIiCisgICAgICByZXR1cm4gJEVNQUlMCisgICAgZWxzZWlmICRFTUFJTF9BRERSRVNTICE9ICIiCisgICAgICByZXR1cm4gJEVNQUlMX0FERFJFU1MKICAgICBlbmRpZgotICBlbmRpZgorICAgIAorICAgIGxldCBsb2dpbiA9IHM6bG9naW4oKQorICAgIHJldHVybiBwcmludGYoJyVzIDwlc0Alcz4nLCBzOm5hbWUobG9naW4pLCBsb2dpbiwgczpob3N0bmFtZSgpKQorICBlbmRmdW5jdGlvbgorCisgIGZ1bmN0aW9uISBzOmxvZ2luKCkKKyAgICByZXR1cm4gczp0cmltbWVkX3N5c3RlbV93aXRoX2RlZmF1bHQoJ3dob2FtaScsICd1bmtub3duJykKKyAgZW5kZnVuY3Rpb24KKworICBmdW5jdGlvbiEgczp0cmltbWVkX3N5c3RlbV93aXRoX2RlZmF1bHQoY29tbWFuZCwgZGVmYXVsdCkKKyAgICByZXR1cm4gczpmaXJzdF9saW5lKHM6c3lzdGVtX3dpdGhfZGVmYXVsdChhOmNvbW1hbmQsIGE6ZGVmYXVsdCkpCisgIGVuZGZ1bmN0aW9uCisKKyAgZnVuY3Rpb24hIHM6c3lzdGVtX3dpdGhfZGVmYXVsdChjb21tYW5kLCBkZWZhdWx0KQorICAgIGxldCBvdXRwdXQgPSBzeXN0ZW0oYTpjb21tYW5kKQorICAgIGlmIHY6c2hlbGxfZXJyb3IKKyAgICAgIHJldHVybiBkZWZhdWx0CisgICAgZW5kaWYKKyAgICByZXR1cm4gb3V0cHV0CisgIGVuZGZ1bmN0aW9uCisKKyAgZnVuY3Rpb24hIHM6Zmlyc3RfbGluZShzdHJpbmcpCisgICAgcmV0dXJuIHN1YnN0aXR1dGUoYTpzdHJpbmcsICdcbi4qJCcsICIiLCAiIikKKyAgZW5kZnVuY3Rpb24KKworICBmdW5jdGlvbiEgczpuYW1lKGxvZ2luKQorICAgIGZvciBuYW1lIGluIFtzOmdlY29zX25hbWUoYTpsb2dpbiksICROQU1FLCBzOmNhcGl0YWxpemUoYTpsb2dpbildCisgICAgICBpZiBuYW1lICE9ICIiCisgICAgICAgIHJldHVybiBuYW1lCisgICAgICBlbmRpZgorICAgIGVuZGZvcgorICBlbmRmdW5jdGlvbgorCisgIGZ1bmN0aW9uISBzOmdlY29zX25hbWUobG9naW4pCisgICAgZm9yIGxpbmUgaW4gczp0cnlfcmVhZGluZ19maWxlKCcvZXRjL3Bhc3N3ZCcpCisgICAgICBpZiBsaW5lID1+ICdeJyAuIGE6bG9naW4gLiAnOicKKyAgICAgICAgcmV0dXJuIHN1YnN0aXR1dGUoczpwYXNzd2RfZmllbGQobGluZSwgNSksICcmJywgczpjYXBpdGFsaXplKGE6bG9naW4pLCAiIikKKyAgICAgIGVuZGlmCisgICAgZW5kZm9yCisgICAgcmV0dXJuICIiCisgIGVuZGZ1bmN0aW9uCisKKyAgZnVuY3Rpb24hIHM6dHJ5X3JlYWRpbmdfZmlsZShwYXRoKQorICAgIHRyeQorICAgICAgcmV0dXJuIHJlYWRmaWxlKGE6cGF0aCkKKyAgICBlbmR0cnkKKyAgICByZXR1cm4gW10KKyAgZW5kZnVuY3Rpb24KKworICBmdW5jdGlvbiEgczpwYXNzd2RfZmllbGQobGluZSwgZmllbGQpCisgICAgbGV0IGZpZWxkcyA9IHNwbGl0KGE6bGluZSwgJzonLCAxKQorICAgIGlmIGxlbihmaWVsZHMpIDwgZmllbGQKKyAgICAgIHJldHVybiAiIgorICAgIGVuZGlmCisgICAgcmV0dXJuIGZpZWxkc1tmaWVsZCAtIDFdCisgIGVuZGZ1bmN0aW9uCisKKyAgZnVuY3Rpb24hIHM6Y2FwaXRhbGl6ZSh3b3JkKQorICAgIHJldHVybiB0b3VwcGVyKGE6d29yZFswXSkgLiBzdHJwYXJ0KGE6d29yZCwgMSkKKyAgZW5kZnVuY3Rpb24KKworICBmdW5jdGlvbiEgczpob3N0bmFtZSgpCisgICAgcmV0dXJuIHM6dHJpbW1lZF9zeXN0ZW1fd2l0aF9kZWZhdWx0KCdob3N0bmFtZScsICdsb2NhbGhvc3QnKQorICBlbmRmdW5jdGlvbgogCiAgICIgRm9ybWF0IHVzZWQgZm9yIG5ldyBkYXRlIGVudHJpZXMuCiAgIGlmICFleGlzdHMoJ2c6Y2hhbmdlbG9nX25ld19kYXRlX2Zvcm1hdCcpCkBAIC0xNzgsNyArMTgzLDcgQEAKICAgICAgICIgT2ssIG5vdyB3ZSBsb29rIGZvciB0aGUgZW5kIG9mIHRoZSBkYXRlIGVudHJ5LCBhbmQgYWRkIGFuIGVudHJ5LgogICAgICAgY2FsbCBjdXJzb3IobmV4dG5vbmJsYW5rKGxpbmUoJy4nKSArIDEpLCAxKQogICAgICAgaWYgc2VhcmNoKGc6Y2hhbmdlbG9nX2RhdGVfZW5kX2VudHJ5X3NlYXJjaCwgJ1cnKSA+IDAKLSAgICAgICAgbGV0IHAgPSBsaW5lKCcuJykgLSAxCisJbGV0IHAgPSAobGluZSgnLicpID09IGxpbmUoJyQnKSkgPyBsaW5lKCcuJykgOiBsaW5lKCcuJykgLSAxCiAgICAgICBlbHNlCiAgICAgICAgIGxldCBwID0gbGluZSgnLicpCiAgICAgICBlbmRpZgpAQCAtMjE3LDcgKzIyMiw3IEBACiAgIGVuZGZ1bmN0aW9uCiAKICAgaWYgZXhpc3RzKCI6TmV3Q2hhbmdlbG9nRW50cnkiKSAhPSAyCi0gICAgbWFwIDxidWZmZXI+IDxzaWxlbnQ+IDxMZWFkZXI+byA8RXNjPjpjYWxsIDxTSUQ+bmV3X2NoYW5nZWxvZ19lbnRyeSgpPENSPgorICAgIG5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPExlYWRlcj5vIDxFc2M+OmNhbGwgPFNJRD5uZXdfY2hhbmdlbG9nX2VudHJ5KCk8Q1I+CiAgICAgY29tbWFuZCEgLW5hcmdzPTAgTmV3Q2hhbmdlbG9nRW50cnkgY2FsbCBzOm5ld19jaGFuZ2Vsb2dfZW50cnkoKQogICBlbmRpZgogCkBAIC0yMzYsMTQgKzI0MSw0OCBAQAogICBsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKICAgdW5sZXQgczpjcG9fc2F2ZQogZWxzZQorICBsZXQgczpjcG9fc2F2ZSA9ICZjcG8KKyAgc2V0IGNwbyZ2aW0KKwogICAiIEFkZCB0aGUgQ2hhbmdlbG9nIG9wZW5pbmcgbWFwcGluZwotICBubWFwIDxzaWxlbnQ+IDxMZWFkZXI+byA6Y2FsbCA8U0lEPm9wZW5fY2hhbmdlbG9nKCk8Q1I+CisgIG5ub3JlbWFwIDxzaWxlbnQ+IDxMZWFkZXI+byA6Y2FsbCA8U0lEPm9wZW5fY2hhbmdlbG9nKCk8Q1I+CiAKICAgZnVuY3Rpb24hIHM6b3Blbl9jaGFuZ2Vsb2coKQotICAgIGlmICFmaWxlcmVhZGFibGUoJ0NoYW5nZUxvZycpCisgICAgbGV0IHBhdGggPSBleHBhbmQoJyU6cDpoJykKKyAgICBpZiBleGlzdHMoJ2I6Y2hhbmdlbG9nX3BhdGgnKQorICAgICAgbGV0IGNoYW5nZWxvZyA9IGI6Y2hhbmdlbG9nX3BhdGgKKyAgICBlbHNlCisgICAgICBpZiBleGlzdHMoJ2I6Y2hhbmdlbG9nX25hbWUnKQorICAgICAgICBsZXQgbmFtZSA9IGI6Y2hhbmdlbG9nX25hbWUKKyAgICAgIGVsc2UKKyAgICAgICAgbGV0IG5hbWUgPSAnQ2hhbmdlTG9nJworICAgICAgZW5kaWYKKyAgICAgIHdoaWxlIGlzZGlyZWN0b3J5KHBhdGgpCisgICAgICAgIGxldCBjaGFuZ2Vsb2cgPSBwYXRoIC4gJy8nIC4gbmFtZQorICAgICAgICBpZiBmaWxlcmVhZGFibGUoY2hhbmdlbG9nKQorICAgICAgICAgIGJyZWFrCisgICAgICAgIGVuZGlmCisgICAgICAgIGxldCBwYXJlbnQgPSBzdWJzdGl0dXRlKHBhdGgsICcvXCtbXi9dKiQnLCAiIiwgIiIpCisgICAgICAgIGlmIHBhdGggPT0gcGFyZW50CisgICAgICAgICAgYnJlYWsKKyAgICAgICAgZW5kaWYKKyAgICAgICAgbGV0IHBhdGggPSBwYXJlbnQKKyAgICAgIGVuZHdoaWxlCisgICAgZW5kaWYKKyAgICBpZiAhZmlsZXJlYWRhYmxlKGNoYW5nZWxvZykKICAgICAgIHJldHVybgogICAgIGVuZGlmCi0gICAgbGV0IGJ1ZiA9IGJ1Zm5yKCdDaGFuZ2VMb2cnKQorCisgICAgaWYgZXhpc3RzKCdiOmNoYW5nZWxvZ19lbnRyeV9wcmVmaXgnKQorICAgICAgbGV0IHByZWZpeCA9IGNhbGwoYjpjaGFuZ2Vsb2dfZW50cnlfcHJlZml4LCBbXSkKKyAgICBlbHNlCisgICAgICBsZXQgcHJlZml4ID0gc3Vic3RpdHV0ZShzdHJwYXJ0KGV4cGFuZCgnJTpwJyksIHN0cmxlbihwYXRoKSksICdeL1wrJywgIiIsICIiKSAuICc6JworICAgIGVuZGlmCisgICAgaWYgIWVtcHR5KHByZWZpeCkKKyAgICAgIGxldCBwcmVmaXggPSAnICcgLiBwcmVmaXgKKyAgICBlbmRpZgorCisgICAgbGV0IGJ1ZiA9IGJ1Zm5yKGNoYW5nZWxvZykKICAgICBpZiBidWYgIT0gLTEKICAgICAgIGlmIGJ1Zndpbm5yKGJ1ZikgIT0gLTEKICAgICAgICAgZXhlY3V0ZSBidWZ3aW5ucihidWYpIC4gJ3dpbmNtZCB3JwpAQCAtMjUxLDkgKzI5MCwxMiBAQAogICAgICAgICBleGVjdXRlICdzYnVmZmVyJyBidWYKICAgICAgIGVuZGlmCiAgICAgZWxzZQotICAgICAgc3BsaXQgQ2hhbmdlTG9nCisgICAgICBleGVjdXRlICdzcGxpdCcgZm5hbWVlc2NhcGUoY2hhbmdlbG9nKQogICAgIGVuZGlmCiAKLSAgICBjYWxsIHM6bmV3X2NoYW5nZWxvZ19lbnRyeSgpCisgICAgY2FsbCBzOm5ld19jaGFuZ2Vsb2dfZW50cnkocHJlZml4KQogICBlbmRmdW5jdGlvbgorCisgIGxldCAmY3BvID0gczpjcG9fc2F2ZQorICB1bmxldCBzOmNwb19zYXZlCiBlbmRpZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9jb2JvbC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2NvYm9sLnZpbQppbmRleCA0NDNlYTY4Li4yMDNkNzM0IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2NvYm9sLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2NvYm9sLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOgljb2JvbAogIiBBdXRob3I6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KLSIgJElkJAorIiAkSWQ6IGNvYm9sLnZpbSx2IDEuMSAyMDA3LzA1LzA1IDE3OjI0OjM4IHZpbWJvc3MgRXhwICQKIAogIiBJbnNlcnQgbW9kZSBtYXBwaW5nczogPEMtVD4gPEMtRD4gPFRhYj4KICIgTm9ybWFsIG1vZGUgbWFwcGluZ3M6IDwgPiA8PCA+PiBbWyBdXSBbXSBdWwpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9jb25maWcudmltIGIvcnVudGltZS9mdHBsdWdpbi9jb25maWcudmltCmluZGV4IDQyN2QwZWQuLmRmNjA3YjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vY29uZmlnLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2NvbmZpZy52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJY29uZmlnCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlZDogMjAwNCBKdWwgMDgKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2VkOiAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vY3NjLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vY3NjLnZpbQppbmRleCBkOWY5MDEwLi5hYzAyMDg4IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2NzYy52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9jc2MudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CWNzYwotIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgaG90bWFpbCBkb3QgY29tPgotIiBMYXN0IENoYW5nZWQ6IDIwMDMgU2VwIDI5Ci0iIFVSTDoJCWh0dHA6Ly9teXdlYnBhZ2UubmV0c2NhcGUuY29tL3NoYXJwcGVvcGxlL3ZpbS9mdHBsdWdpbgorIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CisiIExhc3QgQ2hhbmdlZDogMjAgSmFuIDIwMDkKKyIgVVJMOgkJaHR0cDovL2R3c2hhcnAudXNlcnMuc291cmNlZm9yZ2UubmV0L3ZpbS9mdHBsdWdpbgogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZgogbGV0IGI6ZGlkX2Z0cGx1Z2luID0gMQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9jc2gudmltIGIvcnVudGltZS9mdHBsdWdpbi9jc2gudmltCmluZGV4IGQwNTNjYmIuLjNmODljNzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vY3NoLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2NzaC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJY3NoCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlZDogMjAwMyBTZXAgMjkKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2VkOiAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiBsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2Rvc2JhdGNoLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vZG9zYmF0Y2gudmltCmluZGV4IDkxZDU3ZDkuLjZlNTgxZTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vZG9zYmF0Y2gudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZG9zYmF0Y2gudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6ICAgIE1TLURPUyAuYmF0IGZpbGVzCiAiIE1haW50YWluZXI6ICBNaWtlIFdpbGxpYW1zIDxtcndAZWFuZGVtLmNvLnVrPgotIiBMYXN0IENoYW5nZTogNXRoIEZlYnJ1YXJ5IDIwMDMKKyIgTGFzdCBDaGFuZ2U6IDI3dGggTWF5IDIwMDkKIAogIiBPbmx5IGRvIHRoaXMgd2hlbiBub3QgZG9uZSB5ZXQgZm9yIHRoaXMgYnVmZmVyCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKQEAgLTEyLDEwICsxMiwxMCBAQAogbGV0IGI6ZGlkX2Z0cGx1Z2luID0gMQogCiAiIEJBVCBjb21tZW50IGZvcm1hdHRpbmcKLXNldGxvY2FsIGNvbW1lbnRzPWI6cmVtLGI6QHJlbSxiOlJFTSxiOkBSRU0sYjo6Ogorc2V0bG9jYWwgY29tbWVudHM9YjpyZW0sYjpAcmVtLGI6UkVNLGI6QFJFTSw6OjoKIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQgZm9ybWF0b3B0aW9ucys9cm9sCiAKICIgRGVmaW5lIHBhdHRlcm5zIGZvciB0aGUgYnJvd3NlIGZpbGUgZmlsdGVyCiBpZiBoYXMoImd1aV93aW4zMiIpICYmICFleGlzdHMoImI6YnJvd3NlZmlsdGVyIikKLSAgbGV0IGI6YnJvd3NlZmlsdGVyID0gIkRPUyBCYXRjaCBGaWxlcyAoKi5iYXQsICouYnRtLCAqLmNtZClcdCouYmF0OyouYnRtOyouY21kXG5BbGwgRmlsZXMgKCouKilcdCouKlxuIgorICBsZXQgYjpicm93c2VmaWx0ZXIgPSAiRE9TIEJhdGNoIEZpbGVzICgqLmJhdCwgKi5jbWQpXHQqLmJhdDsqLmNtZFxuQWxsIEZpbGVzICgqLiopXHQqLipcbiIKIGVuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2R0ZC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2R0ZC52aW0KaW5kZXggM2IxNWJkYS4uZWVkNWNhNiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9kdGQudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZHRkLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglkdGQKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAzMCBKdW4gMjAwOAotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIGxldCBiOmRpZF9mdHBsdWdpbiA9IDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZXJ1YnkudmltIGIvcnVudGltZS9mdHBsdWdpbi9lcnVieS52aW0KaW5kZXggODAyZjU5Ni4uOWUxMjFjMiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9lcnVieS52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9lcnVieS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4KICIgTGFuZ3VhZ2U6CQllUnVieQogIiBNYWludGFpbmVyOgkJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgotIiBJbmZvOgkJCSRJZCQKKyIgSW5mbzoJCQkkSWQ6IGVydWJ5LnZpbSx2IDEuMTIgMjAwOC8wNi8yOSAwNDoxODo0MyB0cG9wZSBFeHAgJAogIiBVUkw6CQkJaHR0cDovL3ZpbS1ydWJ5LnJ1Ynlmb3JnZS5vcmcKICIgQW5vbiBDVlM6CQlTZWUgYWJvdmUgc2l0ZQogIiBSZWxlYXNlIENvb3JkaW5hdG9yOglEb3VnIEtlYXJucyA8ZG91Z2tlYXJuc0BnbWFpbC5jb20+CmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2dpdC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2dpdC52aW0KaW5kZXggOWFjMWFhMS4uNjNkNGYzMyAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9naXQudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZ2l0LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbgogIiBMYW5ndWFnZToJZ2VuZXJpYyBnaXQgb3V0cHV0Ci0iIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDggSnVsIDMwCisiIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUub3JnPgorIiBMYXN0IENoYW5nZToJMjAwOSBEZWMgMjQKIAogIiBPbmx5IGRvIHRoaXMgd2hlbiBub3QgZG9uZSB5ZXQgZm9yIHRoaXMgYnVmZmVyCiBpZiAoZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpKQpAQCAtMjksNiArMjksOSBAQAogZWxzZQogICAgIHNldGxvY2FsIGtleXdvcmRwcmc9Z2l0XCBzaG93CiBlbmRpZgoraWYgaGFzKCdndWlfcnVubmluZycpCisgIGxldCAmbDprZXl3b3JkcHJnID0gc3Vic3RpdHV0ZSgmbDprZXl3b3JkcHJnLCdeZ2l0XD4nLCdnaXQgLS1uby1wYWdlcicsJycpCitlbmRpZgogCiBzZXRsb2NhbCBpbmNsdWRlZXhwcj1zdWJzdGl0dXRlKHY6Zm5hbWUsJ15bXi9dXFwrLycsJycsJycpCiBsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwga2V5d29yZHByZzwgcGF0aDwgaW5jbHVkZWV4cHI8IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9naXRjb21taXQudmltIGIvcnVudGltZS9mdHBsdWdpbi9naXRjb21taXQudmltCmluZGV4IGJmYzViMzMuLmY4Nzg4YzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vZ2l0Y29tbWl0LnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2dpdGNvbW1pdC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4KLSIgTGFuZ3VhZ2U6CWdpdCBjb25maWcgZmlsZQotIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+Ci0iIExhc3QgQ2hhbmdlOgkyMDA4IEp1biAwNAorIiBMYW5ndWFnZToJZ2l0IGNvbW1pdCBmaWxlCisiIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUub3JnPgorIiBMYXN0IENoYW5nZToJMjAwOSBEZWMgMjQKIAogIiBPbmx5IGRvIHRoaXMgd2hlbiBub3QgZG9uZSB5ZXQgZm9yIHRoaXMgYnVmZmVyCiBpZiAoZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9naXRjb25maWcudmltIGIvcnVudGltZS9mdHBsdWdpbi9naXRjb25maWcudmltCmluZGV4IGVlMzNiYWYuLjgzM2I4YjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vZ2l0Y29uZmlnLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2dpdGNvbmZpZy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4KICIgTGFuZ3VhZ2U6CWdpdCBjb25maWcgZmlsZQotIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+Ci0iIExhc3QgQ2hhbmdlOgkyMDA3IERlYyAxNgorIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLm9yZz4KKyIgTGFzdCBDaGFuZ2U6CTIwMDkgRGVjIDI0CiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgKGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZ2l0cmViYXNlLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vZ2l0cmViYXNlLnZpbQppbmRleCA2ZTBlNmMxLi40NjgwZDI4IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2dpdHJlYmFzZS52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9naXRyZWJhc2UudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luCiAiIExhbmd1YWdlOglnaXQgcmViYXNlIC0taW50ZXJhY3RpdmUKLSIgTWFpbnRhaW5lcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgotIiBMYXN0IENoYW5nZToJMjAwOCBBcHIgMTYKKyIgTWFpbnRhaW5lcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5vcmc+CisiIExhc3QgQ2hhbmdlOgkyMDA5IERlYyAyNAogCiAiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIKIGlmIChleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikpCkBAIC0yMiwxMiArMjIsMTMgQEAKIGVuZGZ1bmN0aW9uCiAKIGZ1bmN0aW9uISBzOmN5Y2xlKCkKLSAgICBjYWxsIHM6Y2hvb3NlKGdldCh7J3MnOidlZGl0JywncCc6J3NxdWFzaCd9LGdldGxpbmUoJy4nKVswXSwncGljaycpKQorICAgIGNhbGwgczpjaG9vc2UoZ2V0KHsncyc6J2VkaXQnLCdwJzonc3F1YXNoJywnZSc6J3Jld29yZCd9LGdldGxpbmUoJy4nKVswXSwncGljaycpKQogZW5kZnVuY3Rpb24KIAogY29tbWFuZCEgLWJ1ZmZlciAtYmFyIFBpY2sgICA6Y2FsbCBzOmNob29zZSgncGljaycpCiBjb21tYW5kISAtYnVmZmVyIC1iYXIgU3F1YXNoIDpjYWxsIHM6Y2hvb3NlKCdzcXVhc2gnKQogY29tbWFuZCEgLWJ1ZmZlciAtYmFyIEVkaXQgICA6Y2FsbCBzOmNob29zZSgnZWRpdCcpCitjb21tYW5kISAtYnVmZmVyIC1iYXIgUmV3b3JkIDpjYWxsIHM6Y2hvb3NlKCdyZXdvcmQnKQogY29tbWFuZCEgLWJ1ZmZlciAtYmFyIEN5Y2xlICA6Y2FsbCBzOmN5Y2xlKCkKICIgVGhlIGFib3ZlIGFyZSBtb3JlIHVzZWZ1bCB3aGVuIHRoZXkgYXJlIG1hcHBlZDsgZm9yIGV4YW1wbGU6CiAibm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUyA6Q3ljbGU8Q1I+CmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2dpdHNlbmRlbWFpbC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2dpdHNlbmRlbWFpbC52aW0KaW5kZXggYTgzZTQ4YS4uOGZiNDM2ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9naXRzZW5kZW1haWwudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZ2l0c2VuZGVtYWlsLnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbgogIiBMYW5ndWFnZToJZ2l0IHNlbmQtZW1haWwgbWVzc2FnZQotIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+Ci0iIExhc3QgQ2hhbmdlOgkyMDA3IERlYyAxNgorIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLm9yZz4KKyIgTGFzdCBDaGFuZ2U6CTIwMDkgRGVjIDI0CiAKIHJ1bnRpbWUhIGZ0cGx1Z2luL21haWwudmltCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2h0bWwudmltIGIvcnVudGltZS9mdHBsdWdpbi9odG1sLnZpbQppbmRleCA2Yzg2MDdkLi41ZjEzODRiIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2h0bWwudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vaHRtbC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJaHRtbAotIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgaG90bWFpbCBkb3QgY29tPgotIiBMYXN0IENoYW5nZWQ6IDIwMDcgTm92IDIwCi0iIFVSTDoJCWh0dHA6Ly9teXdlYnBhZ2UubmV0c2NhcGUuY29tL3NoYXJwcGVvcGxlL3ZpbS9mdHBsdWdpbgorIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CisiIExhc3QgQ2hhbmdlZDogMjAgSmFuIDIwMDkKKyIgVVJMOgkJaHR0cDovL2R3c2hhcnAudXNlcnMuc291cmNlZm9yZ2UubmV0L3ZpbS9mdHBsdWdpbgogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZgogbGV0IGI6ZGlkX2Z0cGx1Z2luID0gMQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9qYXZhLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vamF2YS52aW0KaW5kZXggOTZlNjJjNi4uNmM3YjM2NyAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9qYXZhLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2phdmEudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CUphdmEKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2U6ICAyMDA1IE1hciAyOAotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZTogIDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIGxldCBiOmRpZF9mdHBsdWdpbiA9IDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vanNwLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vanNwLnZpbQppbmRleCA0OTg3Y2M1Li45YzBlYjk2IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2pzcC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9qc3AudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CWpzcAotIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgaG90bWFpbCBkb3QgY29tPgotIiBMYXN0IENoYW5nZWQ6IDIwMDUgT2N0IDEwCi0iIFVSTDoJCWh0dHA6Ly9teXdlYnBhZ2UubmV0c2NhcGUuY29tL3NoYXJwcGVvcGxlL3ZpbS9mdHBsdWdpbgorIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CisiIExhc3QgQ2hhbmdlZDogMjAgSmFuIDIwMDkKKyIgVVJMOgkJaHR0cDovL2R3c2hhcnAudXNlcnMuc291cmNlZm9yZ2UubmV0L3ZpbS9mdHBsdWdpbgogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL21haWwudmltIGIvcnVudGltZS9mdHBsdWdpbi9tYWlsLnZpbQppbmRleCAzNGUxZDNjLi40YTRjODUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL21haWwudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vbWFpbC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJTWFpbAogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNyBBcHIgMzAKKyIgTGFzdCBDaGFuZ2U6CTIwMDkgSnVuIDAzCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCkBAIC0yMyw3ICsyMyw3IEBACiAiIFNldCAnZm9ybWF0b3B0aW9ucycgdG8gYnJlYWsgdGV4dCBsaW5lcyBhbmQga2VlcCB0aGUgY29tbWVudCBsZWFkZXIgIj4iLgogc2V0bG9jYWwgZm8rPXRjcWwKIAotIiBBZGQgbWFwcGluZ3MsIHVubGVzcyB0aGUgdXNlciBkaWRuJ3Qgd2FudCB0aGlzLgorIiBBZGQgbWFwcGluZ3MsIHVubGVzcyB0aGUgdXNlciBkb2Vzbid0IHdhbnQgdGhpcy4KIGlmICFleGlzdHMoIm5vX3BsdWdpbl9tYXBzIikgJiYgIWV4aXN0cygibm9fbWFpbF9tYXBzIikKICAgIiBRdW90ZSB0ZXh0IGJ5IGluc2VydGluZyAiPiAiCiAgIGlmICFoYXNtYXB0bygnPFBsdWc+TWFpbFF1b3RlJykKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vbWFuLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vbWFuLnZpbQppbmRleCBhNThkMjk3Li5lZWYwNjI4IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL21hbi52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9tYW4udmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CW1hbgotIiBNYWludGFpbmVyOglOYW0gU3VuZ0h5dW4gPG5hbXNoQGtsZHAub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNyBOb3YgMzAKKyIgTWFpbnRhaW5lcjoJU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgorIiBMYXN0IENoYW5nZToJMjAwOCBTZXAgMTcKIAogIiBUbyBtYWtlIHRoZSAiOk1hbiIgY29tbWFuZCBhdmFpbGFibGUgYmVmb3JlIGVkaXRpbmcgYSBtYW51YWwgcGFnZSwgc291cmNlCiAiIHRoaXMgc2NyaXB0IGZyb20geW91ciBzdGFydHVwIHZpbXJjIGZpbGUuCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3Bhc2NhbC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3Bhc2NhbC52aW0KaW5kZXggYzEzOGRkYS4uM2IxZGI0YSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9wYXNjYWwudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vcGFzY2FsLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglwYXNjYWwKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDA1IFNlcCAwNQotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIGxldCBiOmRpZF9mdHBsdWdpbiA9IDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vcGVybC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3BlcmwudmltCmluZGV4IDM3NzEwMDUuLjMxOGU3MGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vcGVybC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9wZXJsLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglQZXJsCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlOiAgMTcgSnVsIDIwMDgKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2U6ICAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiBsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3BocC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3BocC52aW0KaW5kZXggYzlhMGJjNy4uZjU5Y2YxMiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9waHAudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vcGhwLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglwaHAKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDA3IE5vdiAxMAotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9ydWJ5LnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vcnVieS52aW0KaW5kZXggMWQ0MzQ3YS4uN2RmZGZiNSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9ydWJ5LnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3J1YnkudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luCiAiIExhbmd1YWdlOgkJUnVieQogIiBNYWludGFpbmVyOgkJR2F2aW4gU2luY2xhaXIgPGdzaW5jbGFpciBhdCBnbWFpbC5jb20+Ci0iIEluZm86CQkJJElkJAorIiBJbmZvOgkJCSRJZDogcnVieS52aW0sdiAxLjQwIDIwMDgvMDYvMjkgMDQ6MTg6NDMgdHBvcGUgRXhwICQKICIgVVJMOgkJCWh0dHA6Ly92aW0tcnVieS5ydWJ5Zm9yZ2Uub3JnCiAiIEFub24gQ1ZTOgkJU2VlIGFib3ZlIHNpdGUKICIgUmVsZWFzZSBDb29yZGluYXRvcjogIERvdWcgS2Vhcm5zIDxkb3Vna2Vhcm5zQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vc2dtbC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3NnbWwudmltCmluZGV4IDRhMTlkZGEuLmEwN2QzMWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vc2dtbC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9zZ21sLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglzZ21sCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlZDogMjAwMyBTZXAgMzAKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2VkOiAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vc2gudmltIGIvcnVudGltZS9mdHBsdWdpbi9zaC52aW0KaW5kZXggMTgzMjE1YS4uMDc2YjVlZiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9zaC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9zaC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJc2gKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDAzIFNlcCAyOQotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIGxldCBiOmRpZF9mdHBsdWdpbiA9IDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vc3FsLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vc3FsLnZpbQppbmRleCA5ZjQwYjAxLi5mNDFmYjViIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3NxbC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9zcWwudmltCkBAIC0xLDggKzEsOCBAQAogIiBTUUwgZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6ICAgIFNRTCAoQ29tbW9uIGZvciBPcmFjbGUsIE1pY3Jvc29mdCBTUUwgU2VydmVyLCBTeWJhc2UpCi0iIFZlcnNpb246ICAgICA0LjAKKyIgVmVyc2lvbjogICAgIDYuMAogIiBNYWludGFpbmVyOiAgRGF2aWQgRmlzaGJ1cm4gPGZpc2hidXJuIGF0IGlhbnl3aGVyZSBkb3QgY29tPgotIiBMYXN0IENoYW5nZTogV2VkIDI3IEZlYiAyMDA4IDA0OjM1OjIxIFBNIEVhc3Rlcm4gU3RhbmRhcmQgVGltZQorIiBMYXN0IENoYW5nZTogMjAwOSBBdWcgMDQKICIgRG93bmxvYWQ6ICAgIGh0dHA6Ly92aW0uc291cmNlZm9yZ2UubmV0L3NjcmlwdC5waHA/c2NyaXB0X2lkPTQ1NAogCiAiIEZvciBtb3JlIGRldGFpbHMgcGxlYXNlIHVzZToKQEAgLTI5LDYgKzI5LDI3IEBACiAiCiAiIFRvIGNoYW5nZSB0aGUgZGVmYXVsdCBkaWFsZWN0LCBhZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyIHZpbXJjOgogIiAgICBsZXQgZzpzcWxfdHlwZV9kZWZhdWx0ID0gJ3NxbGFueXdoZXJlJworIgorIiBUaGlzIGZpbGUgYWxzbyBjcmVhdGVzIGEgY29tbWFuZCwgU1FMR2V0VHlwZSwgd2hpY2ggYWxsb3dzIHlvdSB0byAKKyIgZGV0ZXJtaW5lIHdoYXQgdGhlIGN1cnJlbnQgZGlhbGVjdCBpcyBpbiB1c2UuCisiICAgICA6U1FMR2V0VHlwZQorIgorIiBIaXN0b3J5CisiCisiIFZlcnNpb24gNi4wCisiIAorIiBORjogQWRkcyB0aGUgY29tbWFuZCBTUUxHZXRUeXBlCisiCisiIFZlcnNpb24gNS4wCisiIAorIiBORjogQWRkcyB0aGUgYWJpbGl0eSB0byBjaG9vc2UgdGhlIGtleXMgdG8gY29udHJvbCBTUUwgY29tcGxldGlvbiwganVzdCBhZGQgCisiICAgICB0aGUgZm9sbG93aW5nIHRvIHlvdXIgLnZpbXJjOgorIiAgICBsZXQgZzpmdHBsdWdpbl9zcWxfb21uaV9rZXkgICAgICAgPSAnPEMtQz4nCisiICAgIGxldCBnOmZ0cGx1Z2luX3NxbF9vbW5pX2tleV9yaWdodCA9ICc8UmlnaHQ+JworIiAgICBsZXQgZzpmdHBsdWdpbl9zcWxfb21uaV9rZXlfbGVmdCAgPSAnPExlZnQ+JworIgorIiBCRjogZm9ybWF0LW9wdGlvbnMgLSBBdXRvLXdyYXAgY29tbWVudHMgdXNpbmcgdGV4dHdpZHRoIHdhcyB0dXJuZWQgb2ZmIAorIiAgICAgICAgICAgICAgICAgICAgICBieSBtaXN0YWtlLgogCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgpAQCAtNDQsNyArNjUsNyBAQAogIiBjICAgICBBdXRvLXdyYXAgY29tbWVudHMgdXNpbmcgdGV4dHdpZHRoLCBpbnNlcnRpbmcgdGhlIGN1cnJlbnQgY29tbWVudAogIiAgICAgICBsZWFkZXIgYXV0b21hdGljYWxseS4KIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQKLXNldGxvY2FsIGZvcm1hdG9wdGlvbnMtPWMKK3NldGxvY2FsIGZvcm1hdG9wdGlvbnMrPWMKIAogIiBGdW5jdGlvbnMvQ29tbWFuZHMgdG8gYWxsb3cgdGhlIHVzZXIgdG8gY2hhbmdlIFNRTCBzeW50YXggZGlhbGVjdHMKICIgdGhyb3VnaCB0aGUgdXNlIG9mIDpTUUxTZXRUeXBlIDx0YWI+IGZvciBjb21wbGV0aW9uLgpAQCAtMTU0LDYgKzE3NSwyMCBAQAogCiBlbmRpZgogCisiIEZ1bmN0aW9ucy9Db21tYW5kcyB0byBhbGxvdyB0aGUgdXNlciBkZXRlcm1pbmUgY3VycmVudCBTUUwgc3ludGF4IGRpYWxlY3QKKyIgVGhpcyB3b3JrcyB3aXRoIGJvdGggVmltIDYgYW5kIDcuCisKK2lmICFleGlzdHMoIipTUUxfR2V0VHlwZSIpCisgICAgZnVuY3Rpb24gU1FMX0dldFR5cGUoKQorICAgICAgICBpZiBleGlzdHMoJ2I6c3FsX3R5cGVfb3ZlcnJpZGUnKSAKKyAgICAgICAgICAgIGVjaG9tc2cgIkN1cnJlbnQgU1FMIGRpYWxlY3QgaW4gdXNlOiIuYjpzcWxfdHlwZV9vdmVycmlkZQorICAgICAgICBlbHNlCisgICAgICAgICAgICBlY2hvbXNnICJDdXJyZW50IFNRTCBkaWFsZWN0IGluIHVzZToiLmc6c3FsX3R5cGVfZGVmYXVsdCAgICAgICAgCisgICAgICAgIGVuZGlmCisgICAgZW5kZnVuY3Rpb24KKyAgICBjb21tYW5kISAtbmFyZ3M9MCBTUUxHZXRUeXBlIDpjYWxsIFNRTF9HZXRUeXBlKCkKK2VuZGlmCisKIGlmIGV4aXN0cygiYjpzcWxfdHlwZV9vdmVycmlkZSIpCiAgICAgIiBlY2hvICdzb3VyY2luZyBidWZmZXIgZnRwbHVnaW4vJy5iOnNxbF90eXBlX292ZXJyaWRlLicudmltJwogICAgIGlmIGdsb2JwYXRoKCZydW50aW1lcGF0aCwgJ2Z0cGx1Z2luLycuYjpzcWxfdHlwZV9vdmVycmlkZS4nLnZpbScpICE9ICcnCkBAIC0zMTEsNiArMzQ2LDE5IEBACiAgICAgICAgICAgICAgICAgXCAnLGluZGV4LHN1YnNjcmlwdGlvbixzeW5jaHJvbml6YXRpb24sdmlldyx2YXJpYWJsZScKIGVuZGlmCiAKKyIgS2V5IHRvIHRyaWdnZXIgU1FMIGNvbXBsZXRpb24KK2lmICFleGlzdHMoJ2c6ZnRwbHVnaW5fc3FsX29tbmlfa2V5JykKKyAgICBsZXQgZzpmdHBsdWdpbl9zcWxfb21uaV9rZXkgPSAnPEMtQz4nCitlbmRpZgorIiBLZXkgdG8gdHJpZ2dlciBkcmlsbCBpbnRvIGNvbHVtbiBsaXN0CitpZiAhZXhpc3RzKCdnOmZ0cGx1Z2luX3NxbF9vbW5pX2tleV9yaWdodCcpCisgICAgbGV0IGc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5X3JpZ2h0ID0gJzxSaWdodD4nCitlbmRpZgorIiBLZXkgdG8gdHJpZ2dlciBkcmlsbCBvdXQgb2YgY29sdW1uIGxpc3QKK2lmICFleGlzdHMoJ2c6ZnRwbHVnaW5fc3FsX29tbmlfa2V5X2xlZnQnKQorICAgIGxldCBnOmZ0cGx1Z2luX3NxbF9vbW5pX2tleV9sZWZ0ID0gJzxMZWZ0PicKK2VuZGlmCisKICIgUmVwbGFjZSBhbGwgLCdzIHdpdGggYmFycywgZXhjZXB0IG9uZXMgd2l0aCBudW1iZXJzIGFmdGVyIHRoZW0uCiAiIFRoaXMgd2lsbCBtb3N0IGxpa2VseSBiZSBhIFx7LDF9IHN0cmluZy4KIGxldCBzOmZ0cGx1Z2luX3NxbF9vYmplY3RzID0gCkBAIC0zODIsMzIgKzQzMCwzMiBAQAogICAgIGlmICFleGlzdHMoJ2c6b21uaV9zcWxfbm9fZGVmYXVsdF9tYXBzJykKICAgICAgICAgIiBTdGF0aWMgbWFwcyB3aGljaCB1c2UgcG9wdWxhdGUgdGhlIGNvbXBsZXRpb24gbGlzdAogICAgICAgICAiIHVzaW5nIFZpbSdzIHN5bnRheCBoaWdobGlnaHRpbmcgcnVsZXMKLSAgICAgICAgaW1hcCA8YnVmZmVyPiA8Yy1jPmEgPEMtXD48Qy1PPjpjYWxsIHNxbGNvbXBsZXRlI01hcCgnc3ludGF4Jyk8Q1I+PEMtWD48Qy1PPgotICAgICAgICBpbWFwIDxidWZmZXI+IDxjLWM+ayA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdzcWxLZXl3b3JkJyk8Q1I+PEMtWD48Qy1PPgotICAgICAgICBpbWFwIDxidWZmZXI+IDxjLWM+ZiA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdzcWxGdW5jdGlvbicpPENSPjxDLVg+PEMtTz4KLSAgICAgICAgaW1hcCA8YnVmZmVyPiA8Yy1jPm8gPEMtXD48Qy1PPjpjYWxsIHNxbGNvbXBsZXRlI01hcCgnc3FsT3B0aW9uJyk8Q1I+PEMtWD48Qy1PPgotICAgICAgICBpbWFwIDxidWZmZXI+IDxjLWM+VCA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdzcWxUeXBlJyk8Q1I+PEMtWD48Qy1PPgotICAgICAgICBpbWFwIDxidWZmZXI+IDxjLWM+cyA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdzcWxTdGF0ZW1lbnQnKTxDUj48Qy1YPjxDLU8+CisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4nYSA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCJzeW50YXgiKTxDUj48Qy1YPjxDLU8+JworICAgICAgICBleGVjICdpbWFwIDxidWZmZXI+ICcuZzpmdHBsdWdpbl9zcWxfb21uaV9rZXkuJ2sgPEMtXD48Qy1PPjpjYWxsIHNxbGNvbXBsZXRlI01hcCgic3FsS2V5d29yZCIpPENSPjxDLVg+PEMtTz4nCisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4nZiA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCJzcWxGdW5jdGlvbiIpPENSPjxDLVg+PEMtTz4nCisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4nbyA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCJzcWxPcHRpb24iKTxDUj48Qy1YPjxDLU8+JworICAgICAgICBleGVjICdpbWFwIDxidWZmZXI+ICcuZzpmdHBsdWdpbl9zcWxfb21uaV9rZXkuJ1QgPEMtXD48Qy1PPjpjYWxsIHNxbGNvbXBsZXRlI01hcCgic3FsVHlwZSIpPENSPjxDLVg+PEMtTz4nCisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4ncyA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCJzcWxTdGF0ZW1lbnQiKTxDUj48Qy1YPjxDLU8+JwogICAgICAgICAiIER5bmFtaWMgbWFwcyB3aGljaCB1c2UgcG9wdWxhdGUgdGhlIGNvbXBsZXRpb24gbGlzdAogICAgICAgICAiIHVzaW5nIHRoZSBkYmV4dC52aW0gcGx1Z2luCi0gICAgICAgIGltYXAgPGJ1ZmZlcj4gPGMtYz50IDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ3RhYmxlJyk8Q1I+PEMtWD48Qy1PPgotICAgICAgICBpbWFwIDxidWZmZXI+IDxjLWM+cCA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdwcm9jZWR1cmUnKTxDUj48Qy1YPjxDLU8+Ci0gICAgICAgIGltYXAgPGJ1ZmZlcj4gPGMtYz52IDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ3ZpZXcnKTxDUj48Qy1YPjxDLU8+Ci0gICAgICAgIGltYXAgPGJ1ZmZlcj4gPGMtYz5jIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ2NvbHVtbicpPENSPjxDLVg+PEMtTz4KLSAgICAgICAgaW1hcCA8YnVmZmVyPiA8Yy1jPmwgPEMtXD48Qy1PPjpjYWxsIHNxbGNvbXBsZXRlI01hcCgnY29sdW1uX2NzdicpPENSPjxDLVg+PEMtTz4KKyAgICAgICAgZXhlYyAnaW1hcCA8YnVmZmVyPiAnLmc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5Lid0IDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoInRhYmxlIik8Q1I+PEMtWD48Qy1PPicKKyAgICAgICAgZXhlYyAnaW1hcCA8YnVmZmVyPiAnLmc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5LidwIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoInByb2NlZHVyZSIpPENSPjxDLVg+PEMtTz4nCisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4ndiA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCJ2aWV3Iik8Q1I+PEMtWD48Qy1PPicKKyAgICAgICAgZXhlYyAnaW1hcCA8YnVmZmVyPiAnLmc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5LidjIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoImNvbHVtbiIpPENSPjxDLVg+PEMtTz4nCisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4nbCA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCJjb2x1bW5fY3N2Iik8Q1I+PEMtWD48Qy1PPicKICAgICAgICAgIiBUaGUgbmV4dCAzIG1hcHMgYXJlIG9ubHkgdG8gYmUgdXNlZCB3aGlsZSB0aGUgY29tcGxldGlvbiB3aW5kb3cgaXMKICAgICAgICAgIiBhY3RpdmUgZHVlIHRvIHRoZSA8Q1I+IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1hcAotICAgICAgICBpbWFwIDxidWZmZXI+IDxjLWM+TCA8Qy1ZPjxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ2NvbHVtbl9jc3YnKTxDUj48Qy1YPjxDLU8+CisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleS4nTCA8Qy1ZPjxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoImNvbHVtbl9jc3YiKTxDUj48Qy1YPjxDLU8+JwogICAgICAgICAiIDxDLVJpZ2h0PiBpcyBub3QgcmVjb2duaXplZCBvbiBtb3N0IFVuaXggc3lzdGVtcywgc28gb25seSBjcmVhdGUKICAgICAgICAgIiB0aGVzZSBhZGRpdGlvbmFsIG1hcHMgb24gdGhlIFdpbmRvd3MgcGxhdGZvcm0uCiAgICAgICAgICIgSWYgeW91IHdvdWxkIGxpa2UgdG8gdXNlIHRoZXNlIG1hcHMsIGNob29zZSBhIGRpZmZlcmVudCBrZXkgYW5kIG1ha2UKICAgICAgICAgIiB0aGUgc2FtZSBtYXAgaW4geW91ciB2aW1yYy4KLSAgICAgICAgaWYgaGFzKCd3aW4zMicpCi0gICAgICAgICAgICBpbWFwIDxidWZmZXI+IDxjLXJpZ2h0PiAgPEMtUj49c3FsY29tcGxldGUjRHJpbGxJbnRvVGFibGUoKTxDUj4KLSAgICAgICAgICAgIGltYXAgPGJ1ZmZlcj4gPGMtbGVmdD4gIDxDLVI+PXNxbGNvbXBsZXRlI0RyaWxsT3V0T2ZDb2x1bW5zKCk8Q1I+Ci0gICAgICAgIGVuZGlmCisgICAgICAgICIgaWYgaGFzKCd3aW4zMicpCisgICAgICAgIGV4ZWMgJ2ltYXAgPGJ1ZmZlcj4gJy5nOmZ0cGx1Z2luX3NxbF9vbW5pX2tleV9yaWdodC4nIDxDLVI+PXNxbGNvbXBsZXRlI0RyaWxsSW50b1RhYmxlKCk8Q1I+JworICAgICAgICBleGVjICdpbWFwIDxidWZmZXI+ICcuZzpmdHBsdWdpbl9zcWxfb21uaV9rZXlfbGVmdC4nICA8Qy1SPj1zcWxjb21wbGV0ZSNEcmlsbE91dE9mQ29sdW1ucygpPENSPicKKyAgICAgICAgIiBlbmRpZgogICAgICAgICAiIFJlbW92ZSBhbnkgY2FjaGVkIGl0ZW1zIHVzZWZ1bCBmb3Igc2NoZW1hIGNoYW5nZXMKLSAgICAgICAgaW1hcCA8YnVmZmVyPiA8Yy1jPlIgPEMtXD48Qy1PPjpjYWxsIHNxbGNvbXBsZXRlI01hcCgncmVzZXRDYWNoZScpPENSPjxDLVg+PEMtTz4KKyAgICAgICAgZXhlYyAnaW1hcCA8YnVmZmVyPiAnLmc6ZnRwbHVnaW5fc3FsX29tbmlfa2V5LidSIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoInJlc2V0Q2FjaGUiKTxDUj48Qy1YPjxDLU8+JwogICAgIGVuZGlmCiAKICAgICBpZiBiOnNxbF9jb21wbF9zYXZlZnVuYyAhPSAiIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9zdmcudmltIGIvcnVudGltZS9mdHBsdWdpbi9zdmcudmltCmluZGV4IDQ1NDQxNzIuLmY4YTBkNjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vc3ZnLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3N2Zy52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJc3ZnCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlZDogMjAwMyBTZXAgMjkKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2VkOiAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vdGNsLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vdGNsLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWJjMzAzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9mdHBsdWdpbi90Y2wudmltCkBAIC0wLDAgKzEsMzYgQEAKKyIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCisiIExhbmd1YWdlOiAgICAgICAgIFRjbAorIiBNYWludGFpbmVyOiAgICAgICBSb2JlcnQgTCBIaWNrcyA8c2lnemVyb0BnbWFpbC5jb20+CisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDktMDUtMDEKKworaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBiOmRpZF9mdHBsdWdpbiA9IDEKKworIiBNYWtlIHN1cmUgdGhlIGNvbnRpbnVhdGlvbiBsaW5lcyBiZWxvdyBkbyBub3QgY2F1c2UgcHJvYmxlbXMgaW4KKyIgY29tcGF0aWJpbGl0eSBtb2RlLgorbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCitzZXQgY3BvLT1DCisKK3NldGxvY2FsIGNvbW1lbnRzPTojCitzZXRsb2NhbCBjb21tZW50c3RyaW5nPSMlcworc2V0bG9jYWwgZm9ybWF0b3B0aW9ucys9Y3JvcWwKKworIiBDaGFuZ2UgdGhlIGJyb3dzZSBkaWFsb2cgb24gV2luZG93cyB0byBzaG93IG1haW5seSBUY2wtcmVsYXRlZCBmaWxlcworaWYgaGFzKCJndWlfd2luMzIiKQorICAgIGxldCBiOmJyb3dzZWZpbHRlciA9ICJUY2wgU291cmNlIEZpbGVzICgudGNsKVx0Ki50Y2xcbiIgLgorICAgICAgICAgICAgICAgIFwgIlRjbCBUZXN0IEZpbGVzICgudGVzdClcdCoudGVzdFxuIiAuCisgICAgICAgICAgICAgICAgXCAiQWxsIEZpbGVzICgqLiopXHQqLipcbiIKK2VuZGlmCisKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisiIFVuZG8gdGhlIHN0dWZmIHdlIGNoYW5nZWQuCitsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGxvY2FsIGZvPCBjb208IGNtczwgaW5jPCBpbmV4PCBkZWY8IGlzZjwga3A8IiAuCisJICAgIFwJICAgICAgIiB8IHVubGV0ISBiOmJyb3dzZWZpbHRlciIKKworIiBSZXN0b3JlIHRoZSBzYXZlZCBjb21wYXRpYmlsaXR5IG9wdGlvbnMuCitsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKKworIiB2aW06IHNldCBldCB0cz00IHN3PTQgdHc9Nzg6CmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3Rjc2gudmltIGIvcnVudGltZS9mdHBsdWdpbi90Y3NoLnZpbQppbmRleCA0YzcyNGU2Li5kYWNiNDRlIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3Rjc2gudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vdGNzaC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJdGNzaAotIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgaG90bWFpbCBkb3QgY29tPgotIiBMYXN0IENoYW5nZWQ6IDIwMDMgU2VwIDI5Ci0iIFVSTDoJCWh0dHA6Ly9teXdlYnBhZ2UubmV0c2NhcGUuY29tL3NoYXJwcGVvcGxlL3ZpbS9mdHBsdWdpbgorIiBNYWludGFpbmVyOglEYW4gU2hhcnAgPGR3c2hhcnAgYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CisiIExhc3QgQ2hhbmdlZDogMjAgSmFuIDIwMDkKKyIgVVJMOgkJaHR0cDovL2R3c2hhcnAudXNlcnMuc291cmNlZm9yZ2UubmV0L3ZpbS9mdHBsdWdpbgogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikgfCBmaW5pc2ggfCBlbmRpZgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3Zlcmlsb2cudmltIGIvcnVudGltZS9mdHBsdWdpbi92ZXJpbG9nLnZpbQppbmRleCAxZDM3ZDYwLi42NTk0ZjJlIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3Zlcmlsb2cudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vdmVyaWxvZy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJVmVyaWxvZyBIREwKICIgTWFpbnRhaW5lcjoJQ2hpaC1Uc3VuIEh1YW5nIDxjdGh1YW5nQGxhcmMuZWUubnRodS5lZHUudHc+Ci0iIExhc3QgQ2hhbmdlOglNb24gU2VwICA1IDExOjA1OjU0IENTVCAyMDA1IGFuZCAyMDA2IEFwcmlsIDMwCisiIExhc3QgQ2hhbmdlOglXZWQgU2VwICAzIDE1OjI0OjQ5IENTVCAyMDA4CiAiIFVSTDoJCWh0dHA6Ly9sYXJjLmVlLm50aHUuZWR1LnR3L35jdGh1YW5nL3ZpbS9mdHBsdWdpbi92ZXJpbG9nLnZpbQogCiAiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIKQEAgLTEyLDYgKzEyLDEwIEBACiAiIERvbid0IGxvYWQgYW5vdGhlciBwbHVnaW4gZm9yIHRoaXMgYnVmZmVyCiBsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCiAKKyIgU2V0ICdjcG9wdGlvbnMnIHRvIGFsbG93IGxpbmUgY29udGludWF0aW9ucworbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCitzZXQgY3BvJnZpbQorCiAiIFVuZG8gdGhlIHBsdWdpbiBlZmZlY3QKIGxldCBiOnVuZG9fZnRwbHVnaW4gPSAic2V0bG9jYWwgZm88IGNvbTwgdHc8IgogICAgIFwgLiAifCB1bmxldCEgYjpicm93c2VmaWx0ZXIgYjptYXRjaF9pZ25vcmVjYXNlIGI6bWF0Y2hfd29yZHMiCkBAIC0yOCw4ICszMiw2IEBACiAgIHNldGxvY2FsIHR3PTc4CiBlbmRpZgogCi1zZXQgY3BvLT1DCi0KICIgV2luMzIgY2FuIGZpbHRlciBmaWxlcyBpbiB0aGUgYnJvd3NlIGRpYWxvZwogaWYgaGFzKCJndWlfd2luMzIiKSAmJiAhZXhpc3RzKCJiOmJyb3dzZWZpbHRlciIpCiAgIGxldCBiOmJyb3dzZWZpbHRlciA9ICJWZXJpbG9nIFNvdXJjZSBGaWxlcyAoKi52KVx0Ki52XG4iIC4KQEAgLTQ5LDMgKzUxLDcgQEAKICAgICBcICdcPHRhc2tcPjpcPGVuZHRhc2tcPiwnIC4KICAgICBcICdcPHNwZWNpZnlcPjpcPGVuZHNwZWNpZnlcPicKIGVuZGlmCisKKyIgUmVzZXQgJ2Nwb3B0aW9ucycgYmFjayB0byB0aGUgdXNlcidzIHNldHRpbmcKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi92aW0udmltIGIvcnVudGltZS9mdHBsdWdpbi92aW0udmltCmluZGV4IGNhNjY1OTcuLmRlOGEwNDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vdmltLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3ZpbS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4KICIgTGFuZ3VhZ2U6CVZpbQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwOCBGZWIgMjcKKyIgTGFzdCBDaGFuZ2U6CTIwMDkgSmFuIDIyCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCkBAIC0xMSwxNiArMTEsMjAgQEAKICIgRG9uJ3QgbG9hZCBhbm90aGVyIHBsdWdpbiBmb3IgdGhpcyBidWZmZXIKIGxldCBiOmRpZF9mdHBsdWdpbiA9IDEKIAotbGV0IGNwb19zYXZlID0gJmNwbworbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCiBzZXQgY3BvLT1DCiAKLWxldCBiOnVuZG9fZnRwbHVnaW4gPSAic2V0bCBmbzwgY29tPCB0dzwgY29tbWVudHN0cmluZzwiCitsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgZm88IGlzazwgY29tPCB0dzwgY29tbWVudHN0cmluZzwiCiAJXCAuICJ8IHVubGV0ISBiOm1hdGNoX2lnbm9yZWNhc2UgYjptYXRjaF93b3JkcyBiOm1hdGNoX3NraXAiCiAKICIgU2V0ICdmb3JtYXRvcHRpb25zJyB0byBicmVhayBjb21tZW50IGxpbmVzIGJ1dCBub3Qgb3RoZXIgbGluZXMsCiAiIGFuZCBpbnNlcnQgdGhlIGNvbW1lbnQgbGVhZGVyIHdoZW4gaGl0dGluZyA8Q1I+IG9yIHVzaW5nICJvIi4KIHNldGxvY2FsIGZvLT10IGZvKz1jcm9xbAogCisiIFRvIGFsbG93IHRhZyBsb29rdXAgdmlhIENUUkwtXSBmb3IgYXV0b2xvYWQgZnVuY3Rpb25zLCAnIycgbXVzdCBiZSBhCisiIGtleXdvcmQgY2hhcmFjdGVyLiAgRS5nLiwgZm9yIG5ldHJ3I05yZWFkKCkuCitzZXRsb2NhbCBpc2srPSMKKwogIiBTZXQgJ2NvbW1lbnRzJyB0byBmb3JtYXQgZGFzaGVkIGxpc3RzIGluIGNvbW1lbnRzCiBzZXRsb2NhbCBjb209c086XCJcIC0sbU86XCJcIFwgLGVPOlwiXCIsOlwiCiAKQEAgLTUzLDggKzU3LDcgQEAKICAgbGV0IGI6bWF0Y2hfaWdub3JlY2FzZSA9IDAKICAgbGV0IGI6bWF0Y2hfd29yZHMgPQogCVwgJ1w8ZnVcJVtuY3Rpb25dXD46XDxyZXR1XCVbcm5dXD46XDxlbmRmXCVbdW5jdGlvbl1cPiwnIC4KLQlcICdcPHdoXCVbaWxlXVw+Olw8YnJlYVwlW2tdXD46XDxjb25cJVt0aW51ZV1cPjpcPGVuZHdcJVtoaWxlXVw+LCcgLgotCVwgJ1w8Zm9yXD46XDxicmVhXCVba11cPjpcPGNvblwlW3RpbnVlXVw+Olw8ZW5kZm9cJVtyXVw+LCcgLgorIAlcICdcPFwod2hcJVtpbGVdXHxmb3JcKVw+Olw8YnJlYVwlW2tdXD46XDxjb25cJVt0aW51ZV1cPjpcPGVuZFwod1wlW2hpbGVdXHxmb1wlW3JdXClcPiwnIC4KIAlcICdcPGlmXD46XDxlbFwlW3NlaWZdXD46XDxlblwlW2RpZl1cPiwnIC4KIAlcICdcPHRyeVw+Olw8Y2F0XCVbY2hdXD46XDxmaW5hXCVbbGx5XVw+Olw8ZW5kdFwlW3J5XVw+LCcgLgogCVwgJ1w8YXVnXCVbcm91cF1cc1wrXCUoRU5EXD5cKVxAIVxTOlw8YXVnXCVbcm91cF1cc1wrRU5EXD4sJyAuCkBAIC02NCw3ICs2Nyw4IEBACiAJXCBzeW5JRGF0dHIoc3luSUQobGluZSgiLiIpLGNvbCgiLiIpLDEpLCJuYW1lIikgPX4/ICJjb21tZW50XFx8c3RyaW5nIicKIGVuZGlmCiAKLWxldCAmY3BvID0gY3BvX3NhdmUKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQogCiAiIHJlbW92ZWQgdGhpcywgYmVjYXVzZSAnY3BvcHRpb25zJyBpcyBhIGdsb2JhbCBvcHRpb24uCiAiIHNldGxvY2FsIGNwbys9TQkJIiBtYWtlcyBcJSggbWF0Y2ggXCkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4veGh0bWwudmltIGIvcnVudGltZS9mdHBsdWdpbi94aHRtbC52aW0KaW5kZXggZTAzNDA3Yi4uYTUwZWQ5MiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi94aHRtbC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi94aHRtbC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJeGh0bWwKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDA0IEp1bCAwOAotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi94bWwudmltIGIvcnVudGltZS9mdHBsdWdpbi94bWwudmltCmluZGV4IDU1ZDllZTYuLjc0Y2QwNjQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4veG1sLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3htbC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJeG1sCi0iIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCBob3RtYWlsIGRvdCBjb20+Ci0iIExhc3QgQ2hhbmdlZDogMzAgSnVuIDIwMDgKLSIgVVJMOgkJaHR0cDovL215d2VicGFnZS5uZXRzY2FwZS5jb20vc2hhcnBwZW9wbGUvdmltL2Z0cGx1Z2luCisiIE1haW50YWluZXI6CURhbiBTaGFycCA8ZHdzaGFycCBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UgZG90IG5ldD4KKyIgTGFzdCBDaGFuZ2VkOiAyMCBKYW4gMjAwOQorIiBVUkw6CQlodHRwOi8vZHdzaGFycC51c2Vycy5zb3VyY2Vmb3JnZS5uZXQvdmltL2Z0cGx1Z2luCiAKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSB8IGZpbmlzaCB8IGVuZGlmCiBsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3hzZC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3hzZC52aW0KaW5kZXggMWNkN2FkYy4uYjAzMzc2MCAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi94c2QudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4veHNkLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOgl4c2QKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDAzIFNlcCAyOQotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi94c2x0LnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4veHNsdC52aW0KaW5kZXggOTU4MDQzMi4uMWE1ZWU2MiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi94c2x0LnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3hzbHQudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CXhzbHQKLSIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IGhvdG1haWwgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2VkOiAyMDA0IEp1bCAwOAotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycHBlb3BsZS92aW0vZnRwbHVnaW4KKyIgTWFpbnRhaW5lcjoJRGFuIFNoYXJwIDxkd3NoYXJwIGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgorIiBMYXN0IENoYW5nZWQ6IDIwIEphbiAyMDA5CisiIFVSTDoJCWh0dHA6Ly9kd3NoYXJwLnVzZXJzLnNvdXJjZWZvcmdlLm5ldC92aW0vZnRwbHVnaW4KIAogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpIHwgZmluaXNoIHwgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvYWRhLnZpbSBiL3J1bnRpbWUvaW5kZW50L2FkYS52aW0KaW5kZXggZTU2YWFmZi4uYTliNDYxYyAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvYWRhLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9hZGEudmltCkBAIC0xLDE1ICsxLDE1IEBACiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiICBEZXNjcmlwdGlvbjogVmltIEFkYSBpbmRlbnQgZmlsZQogIiAgICAgTGFuZ3VhZ2U6IEFkYSAoMjAwNSkKLSIJICAgJElkJAorIgkgICAkSWQ6IGFkYS52aW0gODg3IDIwMDgtMDctMDggMTQ6Mjk6MDFaIGtyaXNjaGlrICQKICIgICAgQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDIwMDYgTWFydGluIEtyaXNjaGlrCiAiICAgTWFpbnRhaW5lcjogTWFydGluIEtyaXNjaGlrIDxrcmlzY2hpa0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiAiCQlOZWlsIEJpcmQgPG5laWxAZm54d2ViLmNvbT4KICIJCU5lZCBPa2llIDxub2tpZUByYWRmb3JkLmVkdT4KLSIgICAgICAkQXV0aG9yJAotIgkgJERhdGUkCisiICAgICAgJEF1dGhvcjoga3Jpc2NoaWsgJAorIgkgJERhdGU6IDIwMDgtMDctMDggMTY6Mjk6MDEgKzAyMDAgKERpLCAwOCBKdWwgMjAwOCkgJAogIiAgICAgIFZlcnNpb246IDQuNgotIiAgICAkUmV2aXNpb24kCisiICAgICRSZXZpc2lvbjogODg3ICQKICIgICAgICRIZWFkVVJMOiBodHRwczovL2dudWFkYS5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9pbmRlbnQvYWRhLnZpbSAkCiAiICAgICAgSGlzdG9yeTogMjQuMDUuMjAwNiBNSyBVbmlmaWVkIEhlYWRlcnMKICIJCTE2LjA3LjIwMDYgTUsgQWRhLU1vZGUgYXMgdmltLWJhbGwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L2JzdC52aW0gYi9ydW50aW1lL2luZGVudC9ic3QudmltCmluZGV4IDU5MzNkODAuLmJlMWY2M2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2JzdC52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvYnN0LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOglic3QKICIgQXV0aG9yOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+Ci0iICRJZCQKKyIgJElkOiBic3QudmltLHYgMS4xIDIwMDcvMDUvMDUgMTg6MTE6MTIgdmltYm9zcyBFeHAgJAogCiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCiAgICAgZmluaXNoCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9jbWFrZS52aW0gYi9ydW50aW1lL2luZGVudC9jbWFrZS52aW0KaW5kZXggYjU0YThkOC4uNDMxNWFkMiAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvY21ha2UudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2NtYWtlLnZpbQpAQCAtMSwxMCArMSwxMCBAQAogIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIiAKICIgICBQcm9ncmFtOiAgIENNYWtlIC0gQ3Jvc3MtUGxhdGZvcm0gTWFrZWZpbGUgR2VuZXJhdG9yCi0iICAgTW9kdWxlOiAgICAkUkNTZmlsZSQKKyIgICBNb2R1bGU6ICAgICRSQ1NmaWxlOiBjbWFrZS1pbmRlbnQudmltLHYgJAogIiAgIExhbmd1YWdlOiAgVklNCi0iICAgRGF0ZTogICAgICAkRGF0ZSQKLSIgICBWZXJzaW9uOiAgICRSZXZpc2lvbiQKKyIgICBEYXRlOiAgICAgICREYXRlOiAyMDA2LzA5LzIzIDIxOjA5OjA4ICQKKyIgICBWZXJzaW9uOiAgICRSZXZpc2lvbjogMS43ICQKICIgCiAiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKQEAgLTEyLDggKzEyLDggQEAKICIgTGFuZ3VhZ2U6ICAgICBDTWFrZSAoZnQ9Y21ha2UpCiAiIEF1dGhvcjogICAgICAgQW5keSBDZWRpbG5payA8YW5keS5jZWRpbG5pa0BraXR3YXJlLmNvbT4KICIgTWFpbnRhaW5lcjogICBBbmR5IENlZGlsbmlrIDxhbmR5LmNlZGlsbmlrQGtpdHdhcmUuY29tPgotIiBMYXN0IENoYW5nZTogICREYXRlJAotIiBWZXJzaW9uOiAgICAgICRSZXZpc2lvbiQKKyIgTGFzdCBDaGFuZ2U6ICAkRGF0ZTogMjAwNi8wOS8yMyAyMTowOTowOCAkCisiIFZlcnNpb246ICAgICAgJFJldmlzaW9uOiAxLjcgJAogIgogIiBMaWNlbmNlOiAgICAgIFRoZSBDTWFrZSBsaWNlbnNlIGFwcGxpZXMgdG8gdGhpcyBmaWxlLiBTZWUKICIgICAgICAgICAgICAgICBodHRwOi8vd3d3LmNtYWtlLm9yZy9IVE1ML0NvcHlyaWdodC5odG1sCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9jb2JvbC52aW0gYi9ydW50aW1lL2luZGVudC9jb2JvbC52aW0KaW5kZXggOWVkOGE0Ny4uOGRjZTNjZCAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvY29ib2wudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2NvYm9sLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOgljb2JvbAogIiBBdXRob3I6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KLSIgJElkJAorIiAkSWQ6IGNvYm9sLnZpbSx2IDEuMSAyMDA3LzA1LzA1IDE4OjA4OjE5IHZpbWJvc3MgRXhwICQKIAogaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQogICAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvY3BwLnZpbSBiL3J1bnRpbWUvaW5kZW50L2NwcC52aW0KaW5kZXggOWFlMTI2YS4uZmZhMzdkNyAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvY3BwLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9jcHAudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gaW5kZW50IGZpbGUKICIgTGFuZ3VhZ2U6CUMrKwogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwMSBKdW4gMTIKKyIgTGFzdCBDaGFuZ2U6CTIwMDggTm92IDI5CiAKICIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgogaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQpAQCAtMTEsMyArMTEsNSBAQAogCiAiIEMrKyBpbmRlbnRpbmcgaXMgYnVpbHQtaW4sIHRodXMgdGhpcyBpcyB2ZXJ5IHNpbXBsZQogc2V0bG9jYWwgY2luZGVudAorCitsZXQgYjp1bmRvX2luZGVudCA9ICJzZXRsIGNpbjwiCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9jdWRhLnZpbSBiL3J1bnRpbWUvaW5kZW50L2N1ZGEudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZWU5Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2luZGVudC9jdWRhLnZpbQpAQCAtMCwwICsxLDE1IEBACisiIFZpbSBpbmRlbnQgZmlsZQorIiBMYW5ndWFnZToJQ1VEQQorIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgorIiBMYXN0IENoYW5nZToJMjAwOCBOb3YgMjkKKworIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCitpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCisgICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfaW5kZW50ID0gMQorCisiIEl0J3MganVzdCBsaWtlIEMgaW5kZW50aW5nCitzZXRsb2NhbCBjaW5kZW50CisKK2xldCBiOnVuZG9faW5kZW50ID0gInNldGwgY2luPCIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L2VpZmZlbC52aW0gYi9ydW50aW1lL2luZGVudC9laWZmZWwudmltCmluZGV4IDg5NTk0NTkuLmRiNjZiZjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2VpZmZlbC52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvZWlmZmVsLnZpbQpAQCAtMiw4ICsyLDggQEAKICIgTGFuZ3VhZ2U6CUVpZmZlbAogIiBNYWludGFpbmVyOglKb2NlbHluIEZpYXQgPGVpZmZlbEBkam9jZS5uZXQ+CiAiIFByZXZpb3VzLU1haW50YWluZXI6CURhdmlkIENsYXJrZSA8Z2FkaWNhdGhAZGlzaGV2ZWxsZWQubmV0PgotIiAkRGF0ZSQKLSIgJFJldmlzaW9uJAorIiAkRGF0ZTogMjAwNC8xMi8wOSAyMTozMzo1MiAkCisiICRSZXZpc2lvbjogMS4zICQKICIgVVJMOiBodHRwOi8vd3d3LmRqb2NlLm5ldC9wYWdlL3ZpbS8KICIgTGFzdCBDaGFuZ2U6CTIwMDQgU2VwdCAxNCA6IHJlbW92ZWQgc3BlY2lmaWMgdmFsdWUgZm9yIHRhYiAoc3cpCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L2VydWJ5LnZpbSBiL3J1bnRpbWUvaW5kZW50L2VydWJ5LnZpbQppbmRleCAzMWNiYjhiLi45MzFlYWFjIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9lcnVieS52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvZXJ1YnkudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gaW5kZW50IGZpbGUKICIgTGFuZ3VhZ2U6CQllUnVieQogIiBNYWludGFpbmVyOgkJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgotIiBJbmZvOgkJCSRJZCQKKyIgSW5mbzoJCQkkSWQ6IGVydWJ5LnZpbSx2IDEuMTYgMjAwOC8wNi8yOSAwNDoxODo0MyB0cG9wZSBFeHAgJAogIiBVUkw6CQkJaHR0cDovL3ZpbS1ydWJ5LnJ1Ynlmb3JnZS5vcmcKICIgQW5vbiBDVlM6CQlTZWUgYWJvdmUgc2l0ZQogIiBSZWxlYXNlIENvb3JkaW5hdG9yOglEb3VnIEtlYXJucyA8ZG91Z2tlYXJuc0BnbWFpbC5jb20+CmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9naXRjb25maWcudmltIGIvcnVudGltZS9pbmRlbnQvZ2l0Y29uZmlnLnZpbQppbmRleCA3Y2UwYzcxLi4yOGQ5NWI3IDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9naXRjb25maWcudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2dpdGNvbmZpZy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBpbmRlbnQgZmlsZQogIiBMYW5ndWFnZToJZ2l0IGNvbmZpZyBmaWxlCi0iIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDggSnVuIDA0CisiIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUub3JnPgorIiBMYXN0IENoYW5nZToJMjAwOSBEZWMgMjQKIAogaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQogICBmaW5pc2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L21haWwudmltIGIvcnVudGltZS9pbmRlbnQvbWFpbC52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI0NmI0MAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L21haWwudmltCkBAIC0wLDAgKzEsMTMgQEAKKyIgVmltIGluZGVudCBmaWxlCisiIExhbmd1YWdlOglNYWlsCisiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyCisiIExhc3QgQ2hhbmdlOgkyMDA5IEp1biAwMworCitpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBiOmRpZF9pbmRlbnQgPSAxCisKKyIgV2hhdCB3b3JrcyBiZXN0IGlzIGF1dG8taW5kZW50aW5nLCBkaXNhYmxlIG90aGVyIGluZGVudGluZy4KKyIgRm9yIGZvcm1hdHRpbmcgc2VlIHRoZSBmdHBsdWdpbi4KK3NldGxvY2FsIGF1dG9pbmRlbnQgbm9zbWFydGluZGVudCBub2NpbmRlbnQgaW5kZW50ZXhwcj0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3BocC52aW0gYi9ydW50aW1lL2luZGVudC9waHAudmltCmluZGV4IDYxMjRlYjIuLjlmMWExZWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3BocC52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvcGhwLnZpbQpAQCAtMiwxNyArMiwxMCBAQAogIiBMYW5ndWFnZToJUEhQCiAiIEF1dGhvcjoJSm9obiBXZWxsZXN6IDxKb2huLndlbGxlc3ogKEFUKSB0ZWFzZXIgKERPVCkgZnI+CiAiIFVSTDoJCWh0dHA6Ly93d3cuMjA3MnByb2R1Y3Rpb25zLmNvbS92aW0vaW5kZW50L3BocC52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDA4IEp1bmUgN3RoCisiIExhc3QgQ2hhbmdlOiAgMjAwOCBOb3ZlbWJlciAyMm5kCiAiIE5ld3NsZXR0ZXI6ICAgaHR0cDovL3d3dy4yMDcycHJvZHVjdGlvbnMuY29tLz90bz1waHAtaW5kZW50LWZvci12aW0tbmV3c2xldHRlci5waHAKLSIgVmVyc2lvbjoJMS4yOAorIiBWZXJzaW9uOgkxLjMwCiAiCi0iICBJZiB5b3UgZmluZCBhIGJ1ZywgcGxlYXNlIGUtbWFpbCBtZSBhdCBKb2huLndlbGxlc3ogKEFUKSB0ZWFzZXIgKERPVCkgZnIKLSIgIHdpdGggYW4gZXhhbXBsZSBvZiBjb2RlIHRoYXQgYnJlYWtzIHRoZSBhbGdvcml0aG0uCi0iCi0iICAtLS0+IFRoZSBjaGFuZ2UgbG9nIGFuZCBhbGwgdGhlIGNvbW1lbnRzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcyBmaWxlLgotIgotIiAgRm9yIGEgY29tcGxldGUgY2hhbmdlIGxvZyBhbmQgZnVsbHkgY29tbWVudGVkIGNvZGUsIGRvd25sb2FkIHRoZSBzY3JpcHQgb24KLSIgIDIwNzJwcm9kdWN0aW9ucy5jb20gYXQgdGhlIFVSSSBwcm92aWRlZCBhYm92ZS4KICIKICIgIElmIHlvdSBmaW5kIGEgYnVnLCBwbGVhc2UgZS1tYWlsIG1lIGF0IEpvaG4ud2VsbGVzeiAoQVQpIHRlYXNlciAoRE9UKSBmcgogIiAgd2l0aCBhbiBleGFtcGxlIG9mIGNvZGUgdGhhdCBicmVha3MgdGhlIGFsZ29yaXRobS4KQEAgLTI0LDcgKzE3LDcgQEAKICIgTk9URTogVGhpcyBzY3JpcHQgbXVzdCBiZSB1c2VkIHdpdGggUEhQIHN5bnRheCBPTiBhbmQgd2l0aCB0aGUgcGhwIHN5bnRheAogIglzY3JpcHQgYnkgTHV0eiBFeW1lcnMgKGh0dHA6Ly93d3cuaXNwLmRlL2RhdGEvcGhwLnZpbSApIG9yIHdpdGggdGhlCiAiCXNjcmlwdCBieSBQZXRlciBIb2RnZSAoaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MTU3MSApCi0iCXRoZSBsYXRlciBpcyBidW5iZGxlZCBieSBkZWZhdWx0IHdpdGggdmltIDcuCisiCXRoZSBsYXRlciBpcyBidW5iZGxlZCBieSBkZWZhdWx0IHdpdGggVmltIDcuCiAiCiAiCiAiCUluIHRoZSBjYXNlIHlvdSBoYXZlIHN5bnRheCBlcnJvcnMgaW4geW91ciBzY3JpcHQgc3VjaCBhcyBIZXJlRG9jIGVuZApAQCAtMzMsNTAgKzI2LDE5IEBACiAiCXRoZXkgYXJlIGZvbGxvd2VkIGJ5IGEgJzsnKS4KICIKICIKLSIgTk9URTogSWYgeW91IGFyZSBlZGl0aW5nIGZpbGUgaW4gVW5peCBmaWxlIGZvcm1hdCBhbmQgdGhhdCAoYnkgYWNjaWRlbnQpCi0iIHRoZXJlIGFyZSAnXHInIGJlZm9yZSBuZXcgbGluZXMsIHRoaXMgc2NyaXB0IHdvbid0IGJlIGFibGUgdG8gcHJvY2VlZAotIiBjb3JyZWN0bHkgYW5kIHdpbGwgbWFrZSBtYW55IG1pc3Rha2VzIGJlY2F1c2UgaXQgd29uJ3QgYmUgYWJsZSB0byBtYXRjaAotIiAnXHMqJCcgY29ycmVjdGx5LgotIiBTbyB5b3UgaGF2ZSB0byByZW1vdmUgdGhvc2UgdXNlbGVzcyBjaGFyYWN0ZXJzIGZpcnN0IHdpdGggYSBjb21tYW5kIGxpa2U6CisiIE5PVEU6IElmIHlvdSBhcmUgZWRpdGluZyBmaWxlcyBpbiBVbml4IGZpbGUgZm9ybWF0IGFuZCB0aGF0IChieSBhY2NpZGVudCkKKyIJdGhlcmUgYXJlICdccicgYmVmb3JlIG5ldyBsaW5lcywgdGhpcyBzY3JpcHQgd29uJ3QgYmUgYWJsZSB0byBwcm9jZWVkCisiCWNvcnJlY3RseSBhbmQgd2lsbCBtYWtlIG1hbnkgbWlzdGFrZXMgYmVjYXVzZSBpdCB3b24ndCBiZSBhYmxlIHRvIG1hdGNoCisiCSdccyokJyBjb3JyZWN0bHkuCisiCVNvIHlvdSBoYXZlIHRvIHJlbW92ZSB0aG9zZSB1c2VsZXNzIGNoYXJhY3RlcnMgZmlyc3Qgd2l0aCBhIGNvbW1hbmQgbGlrZToKICIKLSIgOiVzIC9cciQvL2cKKyIJOiVzIC9cciQvL2cKICIKLSIgb3Igc2ltcGx5ICdsZXQnIHRoZSBvcHRpb24gUEhQX3JlbW92ZUNSd2hlblVuaXggdG8gMSBhbmQgdGhlIHNjcmlwdCB3aWxsCi0iIHNpbGVudGx5IHJlbW92ZSB0aGVtIHdoZW4gVklNIGxvYWQgdGhpcyBzY3JpcHQgKGF0IGVhY2ggYnVmcmVhZCkuCisiCW9yIHNpbXBseSAnbGV0JyB0aGUgb3B0aW9uIFBIUF9yZW1vdmVDUndoZW5Vbml4IHRvIDEgYW5kIHRoZSBzY3JpcHQgd2lsbAorIglzaWxlbnRseSByZW1vdmUgdGhlbSB3aGVuIFZJTSBsb2FkIHRoaXMgc2NyaXB0IChhdCBlYWNoIGJ1ZnJlYWQpLgogIgotIgotIiBPcHRpb25zOiBQSFBfYXV0b2Zvcm1hdGNvbW1lbnQgPSAwIHRvIG5vdCBlbmFibGUgYXV0b2Zvcm1hdGluZyBvZiBjb21tZW50IGJ5Ci0iCQkgICAgZGVmYXVsdCwgaWYgc2V0IHRvIDAsIHRoaXMgc2NyaXB0IHdpbGwgbGV0IHRoZSAnZm9ybWF0b3B0aW9ucycgc2V0dGluZyBpbnRhY3QuCi0iCi0iIE9wdGlvbnM6IFBIUF9kZWZhdWx0X2luZGVudGluZyA9ICMgb2Ygc3cgKGRlZmF1bHQgaXMgMCksICMgb2Ygc3cgd2lsbCBiZQotIgkJICAgYWRkZWQgdG8gdGhlIGluZGVudCBvZiBlYWNoIGxpbmUgb2YgUEhQIGNvZGUuCi0iCi0iIE9wdGlvbnM6IFBIUF9yZW1vdmVDUndoZW5Vbml4ID0gMSB0byBtYWtlIHRoZSBzY3JpcHQgYXV0b21hdGljYWxseSByZW1vdmUgQ1IKLSIJCSAgIGF0IGVuZCBvZiBsaW5lcyAoYnkgZGVmYXVsdCB0aGlzIG9wdGlvbiBpcyB1bnNldCksIE5PVEUgdGhhdCB5b3UKLSIJCSAgIE1VU1QgcmVtb3ZlIENSIHdoZW4gdGhlIGZpbGVmb3JtYXQgaXMgVU5JWCBlbHNlIHRoZSBpbmRlbnRhdGlvbgotIgkJICAgd29uJ3QgYmUgY29ycmVjdCEKLSIKLSIgT3B0aW9uczogUEhQX0JyYWNlc0F0Q29kZUxldmVsID0gMSB0byBpbmRlbnQgdGhlICd7JyBhbmQgJ30nIGF0IHRoZSBzYW1lCi0iCQkgICBsZXZlbCB0aGFuIHRoZSBjb2RlIHRoZXkgY29udGFpbi4KLSIJCSAgIEV4ZW1wbGU6Ci0iCQkJSW5zdGVhZCBvZjoKLSIJCQkJaWYgKCRmb28pCi0iCQkJCXsKLSIJCQkJCWZvbygpOwotIgkJCQl9Ci0iCi0iCQkJWW91IHdpbGwgd3JpdGU6Ci0iCQkJCWlmICgkZm9vKQotIgkJCQkJewotIgkJCQkJZm9vKCk7Ci0iCQkJCQl9Ci0iCi0iCQkJTk9URTogVGhlIHNjcmlwdCB3aWxsIGJlIGEgYml0IHNsb3dlciBpZiB5b3UgdXNlIHRoaXMgb3B0aW9uIGJlY2F1c2UKLSIJCQlzb21lIG9wdGltaXphdGlvbnMgd29uJ3QgYmUgYXZhaWxhYmxlLgotIgotIiBPcHRpb25zOiBQSFBfdmludGFnZV9jYXNlX2RlZmF1bHRfaW5kZW50ID0gMSAoZGVmYXVsdHMgdG8gMCkgdG8gYWRkIGEgbWVhbmluZ2xlc3MgaW5kZW50Ci0iCQkgICAgYmVmYW9yZSAnY2FzZTonIGFuZCAnZGVmYXVsdCI6JyBzdGF0ZW1lbnQgaW4gc3dpdGNoIGJsb2NrCi0iCisiIE9wdGlvbnM6IFNlZSA6aGVscCBwaHAtaW5kZW50IGZvciBhdmFpbGFibGUgb3B0aW9ucy4KKwogCiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCiAgICAgZmluaXNoCkBAIC0xNDUsNiArMTA3LDcgQEAKIGVuZGlmCiAKIGlmIGV4aXN0cygiKkdldFBocEluZGVudCIpCisgICAgY2FsbCBSZXNldFBocE9wdGlvbnMoKQogICAgIGZpbmlzaCAiIFhYWAogZW5kaWYKIApAQCAtMzE3LDE0ICsyODAsMTMgQEAKIGxldCBzOm5vdFBocEhlcmVEb2MgPSAnXCUoYnJlYWtcfHJldHVyblx8Y29udGludWVcfGV4aXRcfGVsc2VcKScKIGxldCBzOmJsb2Nrc3RhcnQgPSAnXCUoXCUoXCUofVxzKlwpXD1lbHNlXCUoXHNcK1wpXD1cKVw9aWZcPlx8ZWxzZVw+XHx3aGlsZVw+XHxzd2l0Y2hcPlx8Zm9yXCUoZWFjaFwpXD1cPlx8ZGVjbGFyZVw+XHxjbGFzc1w+XHxpbnRlcmZhY2VcPlx8YWJzdHJhY3RcPlx8dHJ5XD5cfGNhdGNoXD5cKScKIAotbGV0IHM6YXV0b3Jlc3RvcHRpb25zID0gMAotaWYgISBzOmF1dG9yZXN0b3B0aW9ucwotICAgIGF1IEJ1ZldpbkVudGVyLFN5bnRheAkqLnBocCwqLnBocDMsKi5waHA0LCoucGhwNQljYWxsIFJlc2V0T3B0aW9ucygpCi0gICAgbGV0IHM6YXV0b3Jlc3RvcHRpb25zID0gMQorbGV0IHM6YXV0b3Jlc2V0b3B0aW9ucyA9IDAKK2lmICEgczphdXRvcmVzZXRvcHRpb25zCisgICAgbGV0IHM6YXV0b3Jlc2V0b3B0aW9ucyA9IDEKIGVuZGlmCiAKLWZ1bmN0aW9uISBSZXNldE9wdGlvbnMoKQotICAgIGlmICEgYjpvcHRpb25zc2V0CitmdW5jdGlvbiEgUmVzZXRQaHBPcHRpb25zKCkKKyAgICBpZiAhIGI6b3B0aW9uc3NldCAmJiAmZmlsZXR5cGUgPT0gInBocCIgCiAJaWYgYjpQSFBfYXV0b2Zvcm1hdGNvbW1lbnQKIAogCSAgICBzZXRsb2NhbCBjb21tZW50cz1zMTovKixtYjoqLGV4OiovLDovLyw6IwpAQCAtMzQxLDYgKzMwMyw4IEBACiAgICAgZW5kaWYKIGVuZGZ1bmMKIAorY2FsbCBSZXNldFBocE9wdGlvbnMoKQorCiBmdW5jdGlvbiEgR2V0UGhwSW5kZW50KCkKIAogICAgIGxldCBiOkdldExhc3RSZWFsQ29kZUxOdW1fQUREID0gMApAQCAtMzYwLDcgKzMyNCw3IEBACiAgICAgaWYgIWI6UEhQX2luZGVudGluZ2h1Z2UgJiYgYjpQSFBfbGFzdGluZGVudGVkID4gYjpQSFBfaW5kZW50YmVmb3JlbGFzdAogCWlmIGI6UEhQX2luZGVudGJlZm9yZWxhc3QKIAkgICAgbGV0IGI6UEhQX2luZGVudGluZ2h1Z2UgPSAxCi0JICAgIGVjaG9tICdMYXJnZSBpbmRlbnRpbmcgZGV0ZWN0ZWQsIHNwZWVkIG9wdGltaXphdGlvbnMgZW5nYWdlZCAodjEuMjgpJworCSAgICBlY2hvbSAnTGFyZ2UgaW5kZW50aW5nIGRldGVjdGVkLCBzcGVlZCBvcHRpbWl6YXRpb25zIGVuZ2FnZWQgKHYxLjMwKScKIAllbmRpZgogCWxldCBiOlBIUF9pbmRlbnRiZWZvcmVsYXN0ID0gYjpQSFBfbGFzdGluZGVudGVkCiAgICAgZW5kaWYKQEAgLTY5Myw2ICs2NTcsNyBAQAogCiAgICAgaWYgIUxhc3RMaW5lQ2xvc2VkCiAKKwogCWlmIGxhc3RfbGluZSA9fiMgJ1t7KF0nLmVuZGxpbmUgfHwgbGFzdF9saW5lID1+PyAnXGhcdypccyooLiosJCcgJiYgcGxpbmUgIX4gJ1ssKF0nLmVuZGxpbmUKIAogCSAgICBpZiAhYjpQSFBfQnJhY2VzQXRDb2RlTGV2ZWwgfHwgbGFzdF9saW5lICF+IyAnXlxzKnsnCkBAIC03MTUsMTEgKzY4MCwxMSBAQAogCWVsc2VpZiBsYXN0X2xpbmUgPX4gJ15ccyonLnM6YmxvY2tzdGFydAogCSAgICBsZXQgaW5kID0gaW5kICsgJnN3CiAKLQllbHNlaWYgbGFzdF9saW5lID1+IyBkZWZhdWx0T1JjYXNlCisJZWxzZWlmIGxhc3RfbGluZSA9fiMgZGVmYXVsdE9SY2FzZSAmJiBjbGluZSAhfiMgZGVmYXVsdE9SY2FzZQogCSAgICBsZXQgaW5kID0gaW5kICsgJnN3CiAKIAotCWVsc2VpZiBwbGluZSA9fiAnXCUoO1wlKFxzKj8+XClcPVx8PDw8JydcPVxhXHcqJydcPSRcfF5ccyp9XHx7XCknLmVuZGxpbmUgLiAnXHwnIC4gZGVmYXVsdE9SY2FzZQorCWVsc2VpZiBwbGluZSA9fiAnXCUoO1wlKFxzKj8+XClcPVx8PDw8JydcPVxhXHcqJydcPSRcfF5ccyp9XHx7XCknLmVuZGxpbmUgLiAnXHwnIC4gZGVmYXVsdE9SY2FzZSAmJiBjbGluZSAhfiMgZGVmYXVsdE9SY2FzZQogCiAJICAgIGxldCBpbmQgPSBpbmQgKyAmc3cKIAllbmRpZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvcnVieS52aW0gYi9ydW50aW1lL2luZGVudC9ydWJ5LnZpbQppbmRleCA4YTU2ZTU0Li40YTMwMTJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9ydWJ5LnZpbQorKysgYi9ydW50aW1lL2luZGVudC9ydWJ5LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOgkJUnVieQogIiBNYWludGFpbmVyOgkJTmlrb2xhaSBXZWlidWxsIDxub3cgYXQgYml0d2kuc2U+Ci0iIEluZm86CQkJJElkJAorIiBJbmZvOgkJCSRJZDogcnVieS52aW0sdiAxLjQ3IDIwMDgvMDYvMjkgMDQ6MTg6NDMgdHBvcGUgRXhwICQKICIgVVJMOgkJCWh0dHA6Ly92aW0tcnVieS5ydWJ5Zm9yZ2Uub3JnCiAiIEFub24gQ1ZTOgkJU2VlIGFib3ZlIHNpdGUKICIgUmVsZWFzZSBDb29yZGluYXRvcjoJRG91ZyBLZWFybnMgPGRvdWdrZWFybnNAZ21haWwuY29tPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvc2gudmltIGIvcnVudGltZS9pbmRlbnQvc2gudmltCmluZGV4IDQ4M2U1NDMuLjQ5MTQ2YzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3NoLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9zaC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBpbmRlbnQgZmlsZQotIiBMYW5ndWFnZToJICAgIFNoZWxsIFNjcmlwdAorIiBMYW5ndWFnZTogICAgICAgICBTaGVsbCBTY3JpcHQKICIgTWFpbnRhaW5lcjogICAgICAgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+Ci0iIExhdGVzdCBSZXZpc2lvbjogIDIwMDYtMDQtMTkKKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAxMC0wMS0wNgogCiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCiAgIGZpbmlzaApAQCAtOSw4ICs5LDEwIEBACiBsZXQgYjpkaWRfaW5kZW50ID0gMQogCiBzZXRsb2NhbCBpbmRlbnRleHByPUdldFNoSW5kZW50KCkKLXNldGxvY2FsIGluZGVudGtleXMrPT10aGVuLD1kbyw9ZWxzZSw9ZWxpZiw9ZXNhYyw9ZmksPWZpbiw9ZmlsLD1kb25lCitzZXRsb2NhbCBpbmRlbnRrZXlzKz0wPXRoZW4sMD1kbywwPWVsc2UsMD1lbGlmLDA9ZmksMD1lc2FjLDA9ZG9uZSwpLDA9OzssMD07Jgorc2V0bG9jYWwgaW5kZW50a2V5cys9MD1maW4sMD1maWwsMD1maXAsMD1maXIsMD1maXgKIHNldGxvY2FsIGluZGVudGtleXMtPTosMCMKK3NldGxvY2FsIG5vc21hcnRpbmRlbnQKIAogaWYgZXhpc3RzKCIqR2V0U2hJbmRlbnQiKQogICBmaW5pc2gKQEAgLTE5LDM0ICsyMSwxMzggQEAKIGxldCBzOmNwb19zYXZlID0gJmNwbwogc2V0IGNwbyZ2aW0KIAotZnVuY3Rpb24gR2V0U2hJbmRlbnQoKQorZnVuY3Rpb24gczpidWZmZXJfc2hpZnR3aWR0aCgpCisgIHJldHVybiAmc2hpZnR3aWR0aAorZW5kZnVuY3Rpb24KKworbGV0IHM6c2hfaW5kZW50X2RlZmF1bHRzID0geworICAgICAgXCAnZGVmYXVsdCc6IGZ1bmN0aW9uKCdzOmJ1ZmZlcl9zaGlmdHdpZHRoJyksCisgICAgICBcICdjb250aW51YXRpb24tbGluZSc6IGZ1bmN0aW9uKCdzOmJ1ZmZlcl9zaGlmdHdpZHRoJyksCisgICAgICBcICdjYXNlLWxhYmVscyc6IGZ1bmN0aW9uKCdzOmJ1ZmZlcl9zaGlmdHdpZHRoJyksCisgICAgICBcICdjYXNlLXN0YXRlbWVudHMnOiBmdW5jdGlvbignczpidWZmZXJfc2hpZnR3aWR0aCcpLAorICAgICAgXCAnY2FzZS1icmVha3MnOiAwIH0KKworZnVuY3Rpb24hIHM6aW5kZW50X3ZhbHVlKG9wdGlvbikKKyAgbGV0IFZhbHVlID0gZXhpc3RzKCdiOnNoX2luZGVudF9vcHRpb25zJykKKyAgICAgICAgICAgIFwgJiYgaGFzX2tleShiOnNoX2luZGVudF9vcHRpb25zLCBhOm9wdGlvbikgPworICAgICAgICAgICAgXCBiOnNoX2luZGVudF9vcHRpb25zW2E6b3B0aW9uXSA6CisgICAgICAgICAgICBcIHM6c2hfaW5kZW50X2RlZmF1bHRzW2E6b3B0aW9uXQorICBpZiB0eXBlKFZhbHVlKSA9PSB0eXBlKGZ1bmN0aW9uKCd0eXBlJykpCisgICAgcmV0dXJuIFZhbHVlKCkKKyAgZW5kaWYKKyAgcmV0dXJuIFZhbHVlCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgR2V0U2hJbmRlbnQoKQogICBsZXQgbG51bSA9IHByZXZub25ibGFuayh2OmxudW0gLSAxKQogICBpZiBsbnVtID09IDAKICAgICByZXR1cm4gMAogICBlbmRpZgogCi0gICIgQWRkIGEgJ3NoaWZ0d2lkdGgnIGFmdGVyIGlmLCB3aGlsZSwgZWxzZSwgY2FzZSwgdW50aWwsIGZvciwgZnVuY3Rpb24oKQotICAiIFNraXAgaWYgdGhlIGxpbmUgYWxzbyBjb250YWlucyB0aGUgY2xvc3VyZSBmb3IgdGhlIGFib3ZlCisgIGxldCBwbnVtID0gcHJldm5vbmJsYW5rKGxudW0gLSAxKQorCiAgIGxldCBpbmQgPSBpbmRlbnQobG51bSkKICAgbGV0IGxpbmUgPSBnZXRsaW5lKGxudW0pCi0gIGlmIGxpbmUgPX4gJ15ccypcKGlmXHx0aGVuXHxkb1x8ZWxzZVx8ZWxpZlx8Y2FzZVx8d2hpbGVcfHVudGlsXHxmb3JcKVw+JwotCVwgfHwgbGluZSA9fiAnXlxzKlw8XGtcK1w+XHMqKClccyp7JwotCVwgfHwgbGluZSA9fiAnXlxzKnsnCi0gICAgaWYgbGluZSAhfiAnXChlc2FjXHxmaVx8ZG9uZVwpXD5ccyokJyAmJiBsaW5lICF+ICd9XHMqJCcKLSAgICAgIGxldCBpbmQgPSBpbmQgKyAmc3cKKyAgaWYgbGluZSA9fiAnXlxzKlwlKGlmXHx0aGVuXHxkb1x8ZWxzZVx8ZWxpZlx8Y2FzZVx8d2hpbGVcfHVudGlsXHxmb3JcfHNlbGVjdFwpXD4nCisgICAgaWYgbGluZSAhfiAnXDxcJShmaVx8ZXNhY1x8ZG9uZVwpXD5ccypcJSgjLipcKVw9JCcKKyAgICAgIGxldCBpbmQgKz0gczppbmRlbnRfdmFsdWUoJ2RlZmF1bHQnKQogICAgIGVuZGlmCisgIGVsc2VpZiBzOmlzX2Nhc2VfbGFiZWwobGluZSwgcG51bSkKKyAgICBpZiAhczppc19jYXNlX2VuZGVkKGxpbmUpCisgICAgICBsZXQgaW5kICs9IHM6aW5kZW50X3ZhbHVlKCdjYXNlLXN0YXRlbWVudHMnKQorICAgIGVuZGlmCisgIGVsc2VpZiBsaW5lID1+ICdeXHMqXDxca1wrXD5ccyooKVxzKnsnIHx8IGxpbmUgPX4gJ15ccyp7JworICAgIGlmIGxpbmUgIX4gJ31ccypcJSgjLipcKVw9JCcKKyAgICAgIGxldCBpbmQgKz0gczppbmRlbnRfdmFsdWUoJ2RlZmF1bHQnKQorICAgIGVuZGlmCisgIGVsc2VpZiBzOmlzX2NvbnRpbnVhdGlvbl9saW5lKGxpbmUpCisgICAgaWYgcG51bSA9PSAwIHx8ICFzOmlzX2NvbnRpbnVhdGlvbl9saW5lKGdldGxpbmUocG51bSkpCisgICAgICBsZXQgaW5kICs9IHM6aW5kZW50X3ZhbHVlKCdjb250aW51YXRpb24tbGluZScpCisgICAgZW5kaWYKKyAgZWxzZWlmIHBudW0gIT0gMCAmJiBzOmlzX2NvbnRpbnVhdGlvbl9saW5lKGdldGxpbmUocG51bSkpCisgICAgbGV0IGluZCA9IGluZGVudChzOmZpbmRfY29udGludWVkX2xudW0ocG51bSkpCiAgIGVuZGlmCiAKLSAgIiBTdWJ0cmFjdCBhICdzaGlmdHdpZHRoJyBvbiBhIHRoZW4sIGRvLCBlbHNlLCBlc2FjLCBmaSwgZG9uZQotICAiIFJldGFpbiB0aGUgaW5kZW50YXRpb24gbGV2ZWwgaWYgbGluZSBtYXRjaGVzIGZpbiAoZm9yIGZpbmQpCisgIGxldCBwaW5lID0gbGluZQogICBsZXQgbGluZSA9IGdldGxpbmUodjpsbnVtKQotICBpZiAobGluZSA9fiAnXlxzKlwodGhlblx8ZG9cfGVsc2VcfGVsaWZcfGVzYWNcfGZpXHxkb25lXClcPicgfHwgbGluZSA9fiAnXlxzKn0nKQotCVwgJiYgbGluZSAhfiAnXlxzKmZpW2xuXVw+JwotICAgIGxldCBpbmQgPSBpbmQgLSAmc3cKKyAgaWYgbGluZSA9fiAnXlxzKlwlKHRoZW5cfGRvXHxlbHNlXHxlbGlmXHxmaVx8ZG9uZVwpXD4nIHx8IGxpbmUgPX4gJ15ccyp9JworICAgIGxldCBpbmQgLT0gczppbmRlbnRfdmFsdWUoJ2RlZmF1bHQnKQorICBlbHNlaWYgbGluZSA9fiAnXlxzKmVzYWNcPicKKyAgICBsZXQgaW5kIC09IChzOmlzX2Nhc2VfbGFiZWwocGluZSwgbG51bSkgJiYgczppc19jYXNlX2VuZGVkKHBpbmUpID8KKyAgICAgICAgICAgICBcIDAgOiBzOmluZGVudF92YWx1ZSgnY2FzZS1zdGF0ZW1lbnRzJykpICsKKyAgICAgICAgICAgICBcIHM6aW5kZW50X3ZhbHVlKCdjYXNlLWxhYmVscycpCisgICAgaWYgczppc19jYXNlX2JyZWFrKHBpbmUpCisgICAgICBsZXQgaW5kICs9IHM6aW5kZW50X3ZhbHVlKCdjYXNlLWJyZWFrcycpCisgICAgZW5kaWYKKyAgZWxzZWlmIHM6aXNfY2FzZV9sYWJlbChsaW5lLCBsbnVtKQorICAgIGlmIHM6aXNfY2FzZShwaW5lKQorICAgICAgbGV0IGluZCA9IGluZGVudChsbnVtKSArIHM6aW5kZW50X3ZhbHVlKCdjYXNlLWxhYmVscycpCisgICAgZWxzZQorICAgICAgbGV0IGluZCAtPSBzOmluZGVudF92YWx1ZSgnY2FzZS1zdGF0ZW1lbnRzJykgLSBzOmluZGVudF92YWx1ZSgnY2FzZS1icmVha3MnKQorICAgIGVuZGlmCisgIGVsc2VpZiBzOmlzX2Nhc2VfYnJlYWsobGluZSkKKyAgICBsZXQgaW5kIC09IHM6aW5kZW50X3ZhbHVlKCdjYXNlLWJyZWFrcycpCiAgIGVuZGlmCiAKICAgcmV0dXJuIGluZAogZW5kZnVuY3Rpb24KIAorZnVuY3Rpb24hIHM6aXNfY29udGludWF0aW9uX2xpbmUobGluZSkKKyAgcmV0dXJuIGE6bGluZSA9fiAnXCUoXCUoXlx8W15cXF1cKVxcXHwmJlx8fHxcKSQnCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgczpmaW5kX2NvbnRpbnVlZF9sbnVtKGxudW0pCisgIGxldCBpID0gYTpsbnVtCisgIHdoaWxlIGkgPiAxICYmIHM6aXNfY29udGludWF0aW9uX2xpbmUoZ2V0bGluZShpIC0gMSkpCisgICAgbGV0IGkgLT0gMQorICBlbmR3aGlsZQorICByZXR1cm4gaQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6aXNfY2FzZV9sYWJlbChsaW5lLCBwbnVtKQorICBpZiBhOmxpbmUgIX4gJ15ccyooXD0uKiknCisgICAgcmV0dXJuIDAKKyAgZW5kaWYKKworICBpZiBhOnBudW0gPiAwCisgICAgbGV0IHBpbmUgPSBnZXRsaW5lKGE6cG51bSkKKyAgICBpZiAhKHM6aXNfY2FzZShwaW5lKSB8fCBzOmlzX2Nhc2VfZW5kZWQocGluZSkpCisgICAgICByZXR1cm4gMAorICAgIGVuZGlmCisgIGVuZGlmCisKKyAgbGV0IHN1ZmZpeCA9IHN1YnN0aXR1dGUoYTpsaW5lLCAnXlxzKihcPScsICIiLCAiIikKKyAgbGV0IG5lc3RpbmcgPSAwCisgIGxldCBpID0gMAorICBsZXQgbiA9IHN0cmxlbihzdWZmaXgpCisgIHdoaWxlIGkgPCBuCisgICAgbGV0IGMgPSBzdWZmaXhbaV0KKyAgICBsZXQgaSArPSAxCisgICAgaWYgYyA9PSAnXFwnCisgICAgICBsZXQgaSArPSAxCisgICAgZWxzZWlmIGMgPT0gJygnCisgICAgICBsZXQgbmVzdGluZyArPSAxCisgICAgZWxzZWlmIGMgPT0gJyknCisgICAgICBpZiBuZXN0aW5nID09IDAKKyAgICAgICAgcmV0dXJuIDEKKyAgICAgIGVuZGlmCisgICAgICBsZXQgbmVzdGluZyAtPSAxCisgICAgZW5kaWYKKyAgZW5kd2hpbGUKKyAgcmV0dXJuIDAKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzOmlzX2Nhc2UobGluZSkKKyAgcmV0dXJuIGE6bGluZSA9fiAnXlxzKmNhc2VcPicKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzOmlzX2Nhc2VfYnJlYWsobGluZSkKKyAgcmV0dXJuIGE6bGluZSA9fiAnXlxzKjtbOyZdJworZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6aXNfY2FzZV9lbmRlZChsaW5lKQorICByZXR1cm4gczppc19jYXNlX2JyZWFrKGE6bGluZSkgfHwgYTpsaW5lID1+ICc7WzsmXVxzKlwlKCMuKlwpXD0kJworZW5kZnVuY3Rpb24KKwogbGV0ICZjcG8gPSBzOmNwb19zYXZlCiB1bmxldCBzOmNwb19zYXZlCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC94bWwudmltIGIvcnVudGltZS9pbmRlbnQveG1sLnZpbQppbmRleCAzNDA5ODFiLi40YWMzNWI2IDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC94bWwudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L3htbC52aW0KQEAgLTEsMTAgKzEsMTEgQEAKICIgTGFuZ3VhZ2U6CXhtbAogIiBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CVR1ZSwgMjcgQXByIDIwMDQgMTQ6NTQ6NTkgQ0VTVAorIiBMYXN0IENoYW5nZToJMjAwOS0wNS0yNiAwMDoxNzoyNQogIiBOb3RlczoJMSkgZG9lcyBub3QgaW5kZW50IHB1cmUgbm9uLXhtbCBjb2RlIChlLmcuIGVtYmVkZGVkIHNjcmlwdHMpCiAiCQkyKSB3aWxsIGJlIGNvbmZ1c2VkIGJ5IHVuYmFsYW5jZWQgdGFncyBpbiBjb21tZW50cwogIgkJb3IgQ0RBVEEgc2VjdGlvbnMuCi0iIFRPRE86CQlpbXBsZW1lbnQgcHJlLWxpa2UgdGFncywgc2VlIHhtbF9pbmRlbnRfb3BlbiAvIHhtbF9pbmRlbnRfY2xvc2UKKyIJCTIwMDktMDUtMjYgcGF0Y2ggYnkgTmlrb2xhaSBXZWlidWxsCisiIFRPRE86IAlpbXBsZW1lbnQgcHJlLWxpa2UgdGFncywgc2VlIHhtbF9pbmRlbnRfb3BlbiAvIHhtbF9pbmRlbnRfY2xvc2UKIAogIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCkBAIC00Niw2ICs0Nyw5IEBACiAJaWYgJycgIT0gc3luMSAmJiBzeW4xICF+ICd4bWwnICYmICcnICE9IHN5bjIgJiYgc3luMiAhfiAneG1sJwogCSAgICAiIGRvbid0IGluZGVudCBwdXJlIG5vbi14bWwgY29kZQogCSAgICByZXR1cm4gMAorCWVsc2VpZiBzeW4xID1+ICdeeG1sQ29tbWVudCcgJiYgc3luMiA9fiAnXnhtbENvbW1lbnQnCisJICAgICIgaW5kZW50IGNvbW1lbnRzIHNwZWNpYWxseQorCSAgICByZXR1cm4gLTEKIAllbmRpZgogICAgIGVuZGlmCiAgICAgcmV0dXJuIDEKQEAgLTc0LDggKzc4LDEyIEBACiAgICAgZW5kaWYKIAogICAgIGlmIGE6dXNlX3N5bnRheF9jaGVjawotCWlmIDAgPT0gPFNJRD5YbWxJbmRlbnRTeW5DaGVjayhsbnVtKSB8fCAwID09IDxTSUQ+WG1sSW5kZW50U3luQ2hlY2soYTpsbnVtKQorCWxldCBjaGVja19sbnVtID0gPFNJRD5YbWxJbmRlbnRTeW5DaGVjayhsbnVtKQorCWxldCBjaGVja19hbG51bSA9IDxTSUQ+WG1sSW5kZW50U3luQ2hlY2soYTpsbnVtKQorCWlmIDAgPT0gY2hlY2tfbG51bSB8fCAwID09IGNoZWNrX2FsbnVtCiAJICAgIHJldHVybiBpbmRlbnQoYTpsbnVtKQorCWVsc2VpZiAtMSA9PSBjaGVja19sbnVtIHx8IC0xID09IGNoZWNrX2FsbnVtCisJICAgIHJldHVybiAtMQogCWVuZGlmCiAgICAgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvZHZvcmFrLnZpbSBiL3J1bnRpbWUva2V5bWFwL2R2b3Jhay52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdkYzUzMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUva2V5bWFwL2R2b3Jhay52aW0KQEAgLTAsMCArMSw4MiBAQAorIiBNYWludGFpbmVyOiAgIEFzaGlzaCBTSFVLTEEgPHdhaGphdmFAbWVtYmVycy5mc2Yub3JnPgorIiBMYXN0IENoYW5nZWQ6IDIwMDkgSnVsIDA0CisiCisiIEFsbCBjaGFyYWN0ZXJzIGFyZSBBU0NJSSwgY29udmVyc2lvbiB0byBhbm90aGVyIGVuY29kaW5nIChlLmcuLCBVVEYtOCkKKyIgc2hvdWxkIHdvcmsuCisKK2xldCBiOmtleW1hcF9uYW1lID0gImVuLWR2IgorCitsb2Fka2V5bWFwCitxCScKK3cJLAorZQkuCityCXAKK3QJeQoreQlmCit1CWcKK2kJYworbwlyCitwCWwKK1sJLworXQk9CitcXAlcXAorYQlhCitzCW8KK2QJZQorZgl1CitnCWkKK2gJZAoragloCitrCXQKK2wJbgorOwlzCisnCS0KK3oJOworeAlxCitjCWoKK3YJaworYgl4CituCWIKK20JbQorLAl3CisuCXYKKy8JegorWgk6CitYCVEKK0MJSgorVglLCitCCVgKK04JQgorTQlNCis8CVcKKz4JVgorPwlaCitBCUEKK1MJTworRAlFCitGCVUKK0cJSQorSAlECitKCUgKK0sJVAorTAlOCis6CVMKK1wiCV8KK1EJIgorVwk8CitFCT4KK1IJUAorVAlZCitZCUYKK1UJRworSQlDCitPCVIKK1AJTAorewk/Cit9CSsKK3wJfAorLQlbCitfCXsKKz0JXQorKwl9CisKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X2NzX2N6Lmlzb184ODU5LTIudmltIGIvcnVudGltZS9sYW5nL21lbnVfY3NfY3ouaXNvXzg4NTktMi52aW0KaW5kZXggM2FlZmFjNi4uYTViYzgyZSAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfY3NfY3ouaXNvXzg4NTktMi52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfY3NfY3ouaXNvXzg4NTktMi52aW0KQEAgLTEsOCArMSw4IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglDemVjaCBmb3IgSVNPLTg4NTktMgogIiBNYWludGFpbmVyOgkJSmlyaSBCcmV6aW5hIDxicnpqQHNlem5hbS5jej4KICIgdmltOnNldCBmb2xkbWV0aG9kPW1hcmtlcjoKLSIgJFJldmlzaW9uJAotIiAkRGF0ZSQKKyIgJFJldmlzaW9uOiAxLjMgJAorIiAkRGF0ZTogMjAwNS8xMi8xOSAyMjowODoyNCAkCiAKICIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X2N6ZWNoX2N6ZWNoX3JlcHVibGljLjEyNTAudmltIGIvcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuMTI1MC52aW0KaW5kZXggYzYzYzFhYi4uNGYyMWU4OSAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuMTI1MC52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuMTI1MC52aW0KQEAgLTEsOCArMSw4IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglDemVjaCBmb3IgTVMtV2luZG93cwogIiBNYWludGFpbmVyOgkJSmlyaSBCcmV6aW5hIDxicnpqQHNlem5hbS5jej4KICIgdmltOnNldCBmb2xkbWV0aG9kPW1hcmtlcjoKLSIgJFJldmlzaW9uJAotIiAkRGF0ZSQKKyIgJFJldmlzaW9uOiAxLjMgJAorIiAkRGF0ZTogMjAwNS8xMi8xOSAyMjoxMzozMCAkCiAKICIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X2N6ZWNoX2N6ZWNoX3JlcHVibGljLmFzY2lpLnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X2N6ZWNoX2N6ZWNoX3JlcHVibGljLmFzY2lpLnZpbQppbmRleCA5ZjM5OTIyLi5mMmZhZWM5IDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9jemVjaF9jemVjaF9yZXB1YmxpYy5hc2NpaS52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuYXNjaWkudmltCkBAIC0xLDggKzEsOCBAQAogIiBNZW51IFRyYW5zbGF0aW9uczoJQ3plY2ggZm9yIHN5c3RlbXMgd2l0aG91dCBsb2NhbGl6YXRpb24KICIgTWFpbnRhaW5lcjoJCUppcmkgQnJlemluYSA8YnJ6akBzZXpuYW0uY3o+CiAiIHZpbTpzZXQgZm9sZG1ldGhvZD1tYXJrZXI6Ci0iICRSZXZpc2lvbiQKLSIgJERhdGUkCisiICRSZXZpc2lvbjogMS4zICQKKyIgJERhdGU6IDIwMDUvMTIvMTkgMjI6MDY6NTYgJAogCiAiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgogaWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9lc19lcy5sYXRpbjEudmltIGIvcnVudGltZS9sYW5nL21lbnVfZXNfZXMubGF0aW4xLnZpbQppbmRleCA4MDAxMTAwLi5iOTQzZTIzIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9lc19lcy5sYXRpbjEudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X2VzX2VzLmxhdGluMS52aW0KQEAgLTEsNyArMSw4IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglFc3Bh8W9sCi0iIE1haW50YWluZXI6CQlBbGVqYW5kcm8gTPNwZXotVmFsZW5jaWEgPGRyYWR1bEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci0iIFZlcnNpb246CQk2LjQucDAtMQotIiBMYXN0IENoYW5nZToJCTIwMDUgRGVjIDAxCisiIFByZXZpb3VzIHRyYW5zbGF0b3I6CUFsZWphbmRybyBM83Blei1WYWxlbmNpYSA8ZHJhZHVsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyIgTGFzdCB0cmFuc2xhdG9yOglPbWFyIENhbXBhZ25lIFBvbGFpbm8gPG9jYW1wYWduZUBnbWFpbC5jb20+CisiIFZlcnNpb246CQk3LjIuMjQ1CisiIExhc3QgQ2hhbmdlOgkJMjAwOSBTZXAgMDMKICIKIAogIiBRdWl0IHdoZW4gbWVudSB0cmFuc2xhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZG9uZS4KQEAgLTI4LDEzICsyOSwxNCBAQAogbWVudXRyYW5zIENvJnB5aW5nCQkmVOlybWlub3NcIGRlXCBMaWNlbmNpYQogbWVudXRyYW5zIFNwb25zb3IvUmVnaXN0ZXIJQmVuZWZhY3Rvci9SZWftc3RyZXNlCiBtZW51dHJhbnMgJlZlcnNpb24JCSZWZXJzafNuXCBlXCBcaW5mb3JtYWNp825cIGRlXCBjb25maWd1cmFjafNuCi1tZW51dHJhbnMgJkFib3V0CQkmQWNlcmNhXCBkZVwgVmltLgorbWVudXRyYW5zICZBYm91dAkJJkFjZXJjYVwgZGVcIFZpbQogCiAiIEZpbGUgbWVudQogbWVudXRyYW5zICZGaWxlCQkJCSZBcmNoaXZvCiBtZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCQkmQWJyaXJcLlwuXC48VGFiPjplCiBtZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcAlBJmJyaXJcIGVuXCBvdHJhXCB2ZW50YW5hXC5cLlwuPFRhYj46c3AKIG1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk51ZXZvPFRhYj46ZW5ldworbWVudXRyYW5zIE9wZW5cIFRhYlwuXC5cLjxUYWI+OnRhYm5ldwlBYnJpclwgcGVzJnRh8WFcLlwuXC48VGFiPjp0YWJuZXcKIG1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkJJkNlcnJhcjxUYWI+OmNsb3NlCiBtZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJJkd1YXJkYXI8VGFiPjp3CiBtZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2CUd1YXJkYXJcICZjb21vXC5cLlwuPFRhYj46c2F2CkBAIC02NSwxMSArNjcsMTIgQEAKIG1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlCQlCdXNjYXJcIHlcIFImZWVtcGxhemFyCiBtZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZTxUYWI+OnMJQnVzY2FyXCB5XCBSJmVlbXBsYXphcjxUYWI+OnMKIG1lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkJJlZlbnRhbmFcIGRlXCBvcGNpb25lcworbWVudXRyYW5zIFN0YXJ0dXBcICZTZXR0aW5ncwkJT3BjaW9uZXNcIGRlXCBhcnJhbnF1ZQkgCiAKICIgRWRpdC9HbG9iYWwgU2V0dGluZ3MKIG1lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkJT3BjaW9uZXNcICZnbG9iYWxlcwogCi1tZW51dHJhbnMgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhCUFjdGl2YXIvRGVzYWN0aXZhclwgJnJlYWx6YWRvXCBkZVwgc2ludGF4aXM8VGFiPjpzZXRcIGhscyEKK21lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJQWN0aXZhci9EZXNhY3RpdmFyXCAmcmVzYWx0YWRvXCBkZVwgc2ludGF4aXM8VGFiPjpzZXRcIGhscyEKIG1lbnV0cmFucyBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhCQlBY3RpdmFyL0Rlc2FjdGl2YXJcICZpZ25vcmFyXCBtYXn6c2N1bGFzXCB5XCBtaW76c2N1bGFzPFRhYj46c2V0XCBpYyEKIG1lbnV0cmFucyBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtIQkJQWN0aXZhci9EZXNhY3RpdmFyXCAmbW9zdHJhclwgY29pbmNpZGVuY2lhczxUYWI+OnNldFwgc20hCiAKQEAgLTk1LDExICs5OCwxMSBAQAogbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhcglPY3VsdGFyL01vc3RyYXJcIGJhcnJhXCBkZVwgZGVzcGxhemFtaWVudG9cIGkmenF1aWVyZGEKIG1lbnV0cmFucyBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyCU9jdWx0YXIvTW9zdHJhclwgYmFycmFcIGRlXCBkZXNwbGF6YW1pZW50b1wgJmRlcmVjaGEKIAotbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkludHJvZHV6Y2EgbGEgcnV0YSBkZSBi+nNxdWVkYSBwYXJhIGxvcyBmaWNoZXJvcy5cblNlcGFyZSBsb3Mgbm9tYnJlcyBkZSBsb3MgZGlyZWN0b3Jpb3MgY29uIHVuYSBjb21hLiIKLWxldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICJJbnRyb2R1emNhIGxvcyBub21icmVzIGRlIGxvcyBmaWNoZXJvIGRlIHRhZ3MuXG5TZXBhcmUgbG9zIG5vbWJyZXMgY29uIHVuYSBjb21hLiIKK2xldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJJbnRyb2R1emNhIGxhIHJ1dGEgZGUgYvpzcXVlZGEgcGFyYSBsb3MgYXJjaGl2b3MuXG5TZXBhcmUgbG9zIG5vbWJyZXMgZGUgbG9zIGRpcmVjdG9yaW9zIGNvbiB1bmEgY29tYS4iCitsZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAiSW50cm9kdXpjYSBsb3Mgbm9tYnJlcyBkZSBsb3MgYXJjaGl2b3MgZGUgdGFncy5cblNlcGFyZSBsb3Mgbm9tYnJlcyBjb24gdW5hIGNvbWEuIgogCiAiIEVkaXQvRmlsZSBTZXR0aW5ncwotbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJT3BjaW9uZXNcIGRlbFwgJmZpY2hlcm8KK21lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJCU9wY2lvbmVzXCBkZWxcICZhcmNoaXZvCiAKICIgQm9vbGVhbiBvcHRpb25zCiBtZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJQWN0aXZhci9EZXNhY3RpdmFyXCAmbnVtZXJhY2nzblwgZGVcIGztbmVhczxUYWI+OnNldFwgbnUhCkBAIC0xMTgsOCArMTIxLDggQEAKIG1lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JCUFuY2h1cmFcIGRlbFwgdGUmeHRvXC5cLlwuCiBsZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICJJbnRyb2R1emNhIGVsIG51ZXZvIGFuY2hvIGRlbCB0ZXh0byAoMCBwYXJhIGRlc2FjdGl2YXIgZWwgcXVpZWJyZSBkZSBs7W5lYSk6ICIKIAotbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JCSZGb3JtYXRvXCBkZWxcIGZpY2hlcm9cLlwuXC4KLWxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJTZWxlY2Npb25lIGVsIGZvcm1hdG8gcGFyYSBlc2NyaWJpciBlbCBmaWNoZXJvIgorbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JCSZGb3JtYXRvXCBkZWxcIGFyY2hpdm9cLlwuXC4KK2xldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJTZWxlY2Npb25lIGVsIGZvcm1hdG8gcGFyYSBlc2NyaWJpciBlbCBhcmNoaXZvIgogCiBtZW51dHJhbnMgQyZvbG9yXCBTY2hlbWUJCUVzcXVlbWFcIGRlXCBjJm9sb3JlcwogbWVudXRyYW5zIGJsdWUJCWF6dWwKQEAgLTE1NCw3ICsxNTcsNyBAQAogbWVudXRyYW5zICZUb29scwkJCSZIZXJyYW1pZW50YXMKIG1lbnV0cmFucyAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dCSZTYWx0YXJcIGFcIGVzdGVcIGV0aXF1ZXRhPFRhYj5nXl0KIG1lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJCVNhbHRhclwgJmF0cuFzPFRhYj5eVAotbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJQ3JlYXJcIGZpY2hlcm9cIGRlXCAmZXRpcXVldGFzXAorbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJQ3JlYXJcIGFyY2hpdm9cIGRlXCAmZXRpcXVldGFzXAogbWVudXRyYW5zICZEaWZmCQkJCU1vZG9cIGRlXCAmZGlmZXJlbmNpYXMKIG1lbnV0cmFucyAmRm9sZGluZwkJCSZQbGVnYWRvCiBtZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlCQlFamVjdXRhclwgqyZNYWtluzxUYWI+Om1ha2UKQEAgLTE2OSw2ICsxNzIsMjQgQEAKIG1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCUNvbnZlcnRpclwgYVwgZm9ybWF0b1wgJmhleGFkZWNpbWFsPFRhYj46JSF4eGQKIG1lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtcgkmQ29udmVydGlyXCBhbFwgZm9ybWF0b1wgb3JpZ2luYWw8VGFiPjolIXh4ZFwgLXIKIAorIiBUb29scy5TcGVsbGluZyBNZW51CittZW51dHJhbnMgJlNwZWxsaW5nCQkJCUNvcnJlY2Np825cIG9ydG9ncuFmaWNhCittZW51dHJhbnMgJlNwZWxsXCBDaGVja1wgT24JCQkmQWN0aXZhclwgY29ycmVjY2nzblwgb3J0b2dy4WZpY2EKK21lbnV0cmFucyBTcGVsbFwgQ2hlY2tcICZPZmYJCQkmRGVzYWN0aXZhclwgY29ycmVjY2nzblwgb3J0b2dy4WZpY2EKK21lbnV0cmFucyBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJJlNpZ3VpZW50ZVwgZXJyb3I8VGFiPl1zCittZW51dHJhbnMgVG9cICZQcmV2aW91c1wgZXJyb3I8VGFiPltzICAJCUVycm9yXCAmcHJlY2VkZW50ZTxUYWI+W3MgCittZW51dHJhbnMgU3VnZ2VzdFwgJkNvcnJlY3Rpb25zPFRhYj56PQkJU3VnZXJpclwgJmNvcnJlY2Np8248VGFiPno9CittZW51dHJhbnMgJlJlcGVhdFwgY29ycmVjdGlvbjxUYWI+OnNwZWxscmVwYWxsCSZSZXBldGlyXCBjb3JyZWNjafNuPFRhYj46c3BlbGxyZXBhbGwKK2FuIDQwLjMzNS4yMDUgJlRvb2xzLiZTcGVsbGluZy5DYXN0ZWxsYW5vXCAoZXMpCTpzZXQgc3BsPWVzIHNwZWxsPENSPgorbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW4iCQlJbmds6XMKK21lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2F1IgkJSW5nbOlzXCAoZW5fYXUpCittZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIJCUluZ2zpc1wgKGVuX2NhKQorbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fZ2IiCQlJbmds6XNcIChlbl9nYikKK21lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX256IgkJSW5nbOlzXCAoZW5fbnopCittZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIJCUluZ2zpc1wgKGVuX3VzKQorCittZW51dHJhbnMgJkZpbmRcIE1vcmVcIExhbmd1YWdlcwkJJkJ1c2Nhclwgb3RyYXNcIGxlbmd1YXMKKwogIiBUb29scy5Gb2xkIE1lbnUKIG1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aQkJJkFjdGl2YXIvRGVzYWN0aXZhclwgcGxpZWd1ZXM8VGFiPnppCiBtZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJCSZWZXJcIGztbmVhXCBkZWxcIGN1cnNvcjxUYWI+enYKQEAgLTE4Miw3ICsyMDMsNyBAQAogIiBjcmVhdGUgYW5kIGRlbGV0ZSBmb2xkcwogbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkJQ3JlYXJcICZwbGllZ3VlPFRhYj56ZgogbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkJJlN1cHJpbWlyXCBwbGllZ3VlPFRhYj56ZAotbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQlTdXByaW1pclwgJnRvZG9zXCBsb3NcIHBsaWd1ZXM8VGFiPnpECittZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJCVN1cHJpbWlyXCAmdG9kb3NcIGxvc1wgcGxpZWd1ZXM8VGFiPnpECiAiIG1vdmluZyBhcm91bmQgaW4gZm9sZHMKIG1lbnV0cmFucyBGb2xkXCBjb2wmdW1uXCB3aWR0aAkJCUEmbmNodXJhXCBkZVwgY29sdW1uYVwgZGVsXCBwbGllZ3VlCiAKQEAgLTIwMyw3ICsyMjQsNyBAQAogbWVudXRyYW5zICZBbHRlcm5hdGUJCSZBbHRlcm5hcgogbWVudXRyYW5zICZOZXh0CQkJU2kmZ3VpZW50ZQogbWVudXRyYW5zICZQcmV2aW91cwkJJlByZXZpbwotbGV0IGc6bWVudXRyYW5zX25vX2ZpbGUgPSAiW1NpbiBmaWNoZXJvXSIKK2xldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltTaW4gYXJjaGl2b10iCiAKICIgV2luZG93IG1lbnUKIG1lbnV0cmFucyAmV2luZG93CQkJJlZlbnRhbmEKQEAgLTIxMSw3ICsyMzIsNyBAQAogbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQkmRGl2aWRpclwgbGFcIHZlbnRhbmE8VGFiPl5XcwogbWVudXRyYW5zIFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JRCZpdmlkaXJcIGVuXCBlbFwgbWFyY2Fkb3JcICgjKTxUYWI+XldeXgogbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2ICAgIERpdmlkaXJcICZ2ZXJ0aWNhbG1lbnRlPFRhYj5eV3YKLW1lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyCSZBYnJpclwgZWxcIKtFeHBsb3JhZG9yXCBkZVwgZmljaGVyb3O7CittZW51dHJhbnMgU3BsaXRcIEZpbGVcIEUmeHBsb3JlcgkmQWJyaXJcIGVsXCCrRXhwbG9yYWRvclwgZGVcIGFyY2hpdm9zuwogbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCQkmQ2VycmFyXCBlc3RhXCB2ZW50YW5hPFRhYj5eV2MKIG1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JQ2VycmFyXCAmb3RyYShzKVwgdmVudGFuYShzKTxUYWI+XldvCiBtZW51dHJhbnMgTW92ZVwgJlRvCQkJTW92JmVyXCBhCkBAIC0yNDUsOSArMjY2LDkgQEAKICAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQogICBlbmRpZgogICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCi0gICAgdG1lbnUgVG9vbEJhci5PcGVuCQlBYnJpciBmaWNoZXJvCi0gICAgdG1lbnUgVG9vbEJhci5TYXZlCQlHdWFyZGFyIGZpY2hlcm8KLSAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwJR3VhcmRhciB0b2RvcyBsb3MgZmljaGVyb3MKKyAgICB0bWVudSBUb29sQmFyLk9wZW4JCUFicmlyIGFyY2hpdm8KKyAgICB0bWVudSBUb29sQmFyLlNhdmUJCUd1YXJkYXIgYXJjaGl2bworICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbAlHdWFyZGFyIHRvZG9zIGxvcyBhcmNoaXZvcwogICAgIHRtZW51IFRvb2xCYXIuUHJpbnQJCUltcHJpbWlyCiAgICAgdG1lbnUgVG9vbEJhci5VbmRvCQlEZXNoYWNlcgogICAgIHRtZW51IFRvb2xCYXIuUmVkbwkJUmVoYWNlcgpAQCAtMjczLDcgKzI5NCw3IEBACiAgICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJRWplY3V0YXIgdW4gYXJjaGl2byBkZSDzcmRlbmVzCiAgICAgdG1lbnUgVG9vbEJhci5NYWtlCQlFamVjdXRhciCrTWFrZbsKICAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlBYnJpciB1biBpbnTpcnByZXRlIGRlIGNvbWFuZG9zCi0gICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlHZW5lcmFyIHVuIGZpY2hlcm8gZGUgZXRpcXVldGFzCisgICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlHZW5lcmFyIHVuIGFyY2hpdm8gZGUgZXRpcXVldGFzCiAgICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wCVNhbHRhciBhIHVuYSBldGlxdWV0YQogICAgIHRtZW51IFRvb2xCYXIuSGVscAkJQXl1ZGEKICAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwCUJ1c2NhciBlbiBsYSBheXVkYS4uLgpAQCAtMjgyLDE1ICszMDMsMTUgQEAKIAogIiBTeW50YXggbWVudQogbWVudXRyYW5zICZTeW50YXgJCQkmU2ludGF4aXMKLW1lbnV0cmFucyAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudQkmTW9zdHJhclwgbGlzdGFzXCBkZVwgq3RpcG9cIGRlXCBmaWNoZXJvuworbWVudXRyYW5zICZTaG93XCBmaWxldHlwZXNcIGluXCBtZW51CSZNb3N0cmFyXCBsaXN0YXNcIGRlXCCrdGlwb1wgZGVcIGFyY2hpdm+7CiBtZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJCUFjdGl2YXJcIHPzbG9cIHNpbnRheGlzCi1tZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQlBY3RpdmFyXCB0YW1iaeluXCCrdGlwb1wgZGVcIGZpY2hlcm+7CittZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQlBY3RpdmFyXCB0YW1iaeluXCCrdGlwb1wgZGVcIGFyY2hpdm+7CiBtZW51dHJhbnMgJk9mZgkJCQkmRGVzYWN0aXZhclwgc2ludGF4aXMKLW1lbnV0cmFucyAmTWFudWFsCQkJc2ludGF4aXNcICZtYW51YWwKLW1lbnV0cmFucyBBJnV0b21hdGljCQkJc2ludGF4aXNcIGEmdXRvbeF0aWNhCi1tZW51dHJhbnMgb24vb2ZmXCBmb3JcICZUaGlzXCBmaWxlCUFjdGl2YXIvRGVzYWN0aXZhclwgZW5cIGVzJnRlXCBmaWNoZXJvCittZW51dHJhbnMgJk1hbnVhbAkJCVNpbnRheGlzXCAmbWFudWFsCittZW51dHJhbnMgQSZ1dG9tYXRpYwkJCVNpbnRheGlzXCBhJnV0b23hdGljYQorbWVudXRyYW5zIG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZQlBY3RpdmFyL0Rlc2FjdGl2YXJcIGVuXCBlcyZ0ZVwgYXJjaGl2bwogbWVudXRyYW5zIENvJmxvclwgdGVzdAkJCSZQcnVlYmFcIGRlXCBjb2xvcmVzCi1tZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdAkJUHJ1ZWJhXCBkZVwgJnJlYWx6YWRvCittZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdAkJUHJ1ZWJhXCBkZVwgJnJlc2FsdGFkbwogbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJJkNvbnZlcnRpclwgYVwgSFRNTAogCiAiIEZpbmQgSGVscCBkaWFsb2cgdGV4dApkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfa29fa3IuZXVja3IudmltIGIvcnVudGltZS9sYW5nL21lbnVfa29fa3IuZXVja3IudmltCmluZGV4IGI4ZmE2MjUuLjVlMjg1MWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbGFuZy9tZW51X2tvX2tyLmV1Y2tyLnZpbQorKysgYi9ydW50aW1lL2xhbmcvbWVudV9rb19rci5ldWNrci52aW0KQEAgLTEsNiArMSw2IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglLb3JlYW4KLSIgTWFpbnRhaW5lcjoJCU5hbSBTdW5nSHl1biA8bmFtc2hAa2xkcC5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkJMjAwMyBBcHIgMjUKKyIgTWFpbnRhaW5lcjoJCVN1bmdIeXVuIE5hbSA8Z293ZW9sQGdtYWlsLmNvbT4KKyIgTGFzdCBDaGFuZ2U6CQkyMDA4IFNlcCAxNwogCiAiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgogaWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9rb19rci51dGYtOC52aW0gYi9ydW50aW1lL2xhbmcvbWVudV9rb19rci51dGYtOC52aW0KaW5kZXggOGU1MDdkNS4uZDBiMWNjMCAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfa29fa3IudXRmLTgudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X2tvX2tyLnV0Zi04LnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgTWVudSBUcmFuc2xhdGlvbnM6CUtvcmVhbgotIiBNYWludGFpbmVyOgkJTmFtIFN1bmdIeXVuIDxuYW1zaEBrbGRwLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CQkyMDAzIEFwciAyNQorIiBNYWludGFpbmVyOgkJU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgorIiBMYXN0IENoYW5nZToJCTIwMDggU2VwIDE3CiAKICIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X2tvX2tyLnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X2tvX2tyLnZpbQppbmRleCAyNmE5NTlhLi5iNjdkMGNjIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9rb19rci52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfa29fa3IudmltCkBAIC0xLDUgKzEsNSBAQAogIiBNZW51IFRyYW5zbGF0aW9uczoJS29yZWFuCi0iIFRyYW5zbGF0ZWQgQnk6CU5hbSBTdW5nSHl1biA8bmFtc2hAa2xkcC5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkJMjAwMyBGZWIgMjQKKyIgVHJhbnNsYXRlZCBCeToJU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgorIiBMYXN0IENoYW5nZToJCTIwMDggU2VwIDE3CiAKIHNvdXJjZSA8c2ZpbGU+OnA6aC9tZW51X2tvX2tyLmV1Y2tyLnZpbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9sYW5nL21lbnVfcnVfcnUua29pOC1yLnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3J1X3J1LmtvaTgtci52aW0KaW5kZXggMjk1YjAxNi4uMzdjZDkzNSAxMDA2NDQKLS0tIGEvcnVudGltZS9sYW5nL21lbnVfcnVfcnUua29pOC1yLnZpbQorKysgYi9ydW50aW1lL2xhbmcvbWVudV9ydV9ydS5rb2k4LXIudmltCkBAIC0zLDcgKzMsNyBAQAogIiBMYXN0IENoYW5nZToJCTI2IEFwciAyMDA0CiAiIFVSTDoJCQljdnM6Ly9jdnMuc2YubmV0Oi9jdnNyb290L3J1dmltL2V4dHJhcy9tZW51L21lbnVfcnVfcnUudmltCiAiCi0iICRJZCQKKyIgJElkOiBtZW51X3J1X3J1LmtvaTgtci52aW0sdiAxLjIgMjAwNC8wNi8xNiAxMToxOToyMSB2aW1ib3NzIEV4cCAkCiAiCiAiIEFkb3B0ZWQgZm9yIFJ1VmltIHByb2plY3QgYnkgVmFzc2lseSBSYWdvc2luLgogIiBGaXJzdCB0cmFuc2xhdGlvbjogVGltIEFsZXhlZXZza3kgPHJlYWx0aW0gW2F0XSBtYWlsLnJ1PiwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3J1X3J1LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3J1X3J1LnZpbQppbmRleCBkNDcxZmQ1Li5iNzI2MTUyIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9ydV9ydS52aW0KKysrIGIvcnVudGltZS9sYW5nL21lbnVfcnVfcnUudmltCkBAIC0zLDcgKzMsNyBAQAogIiBMYXN0IENoYW5nZToJCTI2IEFwciAyMDA0CiAiIFVSTDoJCQljdnM6Ly9jdnMuc2YubmV0Oi9jdnNyb290L3J1dmltL2V4dHJhcy9tZW51L21lbnVfcnVfcnUudmltCiAiCi0iICRJZCQKKyIgJElkOiBtZW51X3J1X3J1LnZpbSx2IDEuMSAyMDA0LzA2LzEzIDE2OjA5OjEwIHZpbWJvc3MgRXhwICQKICIKICIgQWRvcHRlZCBmb3IgUnVWaW0gcHJvamVjdCBieSBWYXNzaWx5IFJhZ29zaW4uCiAiIEZpcnN0IHRyYW5zbGF0aW9uOiBUaW0gQWxleGVldnNreSA8cmVhbHRpbSBbYXRdIG1haWwucnU+LApkaWZmIC0tZ2l0IGEvcnVudGltZS9tYWNyb3MvbWF0Y2hpdC52aW0gYi9ydW50aW1lL21hY3Jvcy9tYXRjaGl0LnZpbQppbmRleCBlNDFjZGE5Li41NDljMjZjIDEwMDY0NAotLS0gYS9ydW50aW1lL21hY3Jvcy9tYXRjaGl0LnZpbQorKysgYi9ydW50aW1lL21hY3Jvcy9tYXRjaGl0LnZpbQpAQCAtMzU3LDcgKzM1Nyw3IEBACiAgICAgICBleGVjdXRlIHM6UmVmKGluaSwgZCwgInN0YXJ0IiwgImxlbiIpCiAgICAgICBsZXQgaW5pID0gc3RycGFydChpbmksIDAsIHN0YXJ0KSAuIGJhY2tyZWYgLiBzdHJwYXJ0KGluaSwgc3RhcnQrbGVuKQogICAgICAgbGV0IHRhaWxCUiA9IHN1YnN0aXR1dGUodGFpbEJSLCBzOm5vdHNsYXNoIC4gJ1x6c1xcJyAuIGQsCi0JXCBlc2NhcGUoYmFja3JlZiwgJ1xcJyksICdnJykKKwlcIGVzY2FwZShiYWNrcmVmLCAnXFwmJyksICdnJykKICAgICBlbmRpZgogICAgIGxldCBkID0gZC0xCiAgIGVuZHdoaWxlCmRpZmYgLS1naXQgYS9ydW50aW1lL21lbnUudmltIGIvcnVudGltZS9tZW51LnZpbQppbmRleCBmYWI4OTBlLi5iN2VjY2VhIDEwMDY0NAotLS0gYS9ydW50aW1lL21lbnUudmltCisrKyBiL3J1bnRpbWUvbWVudS52aW0KQEAgLTIsNyArMiw3IEBACiAiIFlvdSBjYW4gYWxzbyB1c2UgdGhpcyBhcyBhIHN0YXJ0IGZvciB5b3VyIG93biBzZXQgb2YgbWVudXMuCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA4IEp1biAzMAorIiBMYXN0IENoYW5nZToJMjAwOSBGZWIgMjYKIAogIiBOb3RlIHRoYXQgIjphbiIgKHNob3J0IGZvciAiOmFub3JlbWVudSIpIGlzIG9mdGVuIHVzZWQgdG8gbWFrZSBhIG1lbnUgd29yawogIiBpbiBhbGwgbW9kZXMgYW5kIGF2b2lkIHNpZGUgZWZmZWN0cyBmcm9tIG1hcHBpbmdzIGRlZmluZWQgYnkgdGhlIHVzZXIuCkBAIC0xMzgsNiArMTM4LDcgQEAKIGZ1bmMhIHM6Rm5hbWVFc2NhcGUoZm5hbWUpCiAgIGlmIGV4aXN0cygnKmZuYW1lZXNjYXBlJykKICAgICByZXR1cm4gZm5hbWVlc2NhcGUoYTpmbmFtZSkKKyAgZW5kaWYKICAgcmV0dXJuIGVzY2FwZShhOmZuYW1lLCAiIFx0XG4qP1t7YCRcXCUjJ1wifCE8IikKIGVuZGZ1bmMKIApAQCAtMTAxNiwxMCArMTAxNyw5IEBACiAgIHRtZW51IFRvb2xCYXIuQ29weQkJQ29weSB0byBjbGlwYm9hcmQKICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJUGFzdGUgZnJvbSBDbGlwYm9hcmQKICAgaWYgIWhhcygiZ3VpX2F0aGVuYSIpCi0gICAgdG1lbnUgVG9vbEJhci5GaW5kCQlGaW5kLi4uCisgICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlCUZpbmQgLyBSZXBsYWNlLi4uCiAgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlGaW5kIE5leHQKICAgICB0bWVudSBUb29sQmFyLkZpbmRQcmV2CUZpbmQgUHJldmlvdXMKLSAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJCUZpbmQgLyBSZXBsYWNlLi4uCiAgIGVuZGlmCiAgIHRtZW51IFRvb2xCYXIuTG9hZFNlc24JQ2hvb3NlIGEgc2Vzc2lvbiB0byBsb2FkCiAgIHRtZW51IFRvb2xCYXIuU2F2ZVNlc24JU2F2ZSBjdXJyZW50IHNlc3Npb24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL2dldHNjcmlwdFBsdWdpbi52aW0gYi9ydW50aW1lL3BsdWdpbi9nZXRzY3JpcHRQbHVnaW4udmltCmluZGV4IDRmZDM2ZGIuLjdhZTM1Y2IgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL2dldHNjcmlwdFBsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vZ2V0c2NyaXB0UGx1Z2luLnZpbQpAQCAtMTksNyArMTksNyBAQAogIGVuZGlmCiAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX2dldHNjcmlwdFBsdWdpbiA9ICJ2MzEiCitsZXQgZzpsb2FkZWRfZ2V0c2NyaXB0UGx1Z2luID0gInYzMiIKIGxldCBzOmtlZXBjcG8gICAgICAgICAgICAgICAgPSAmY3BvCiBzZXQgY3BvJnZpbQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi9nemlwLnZpbSBiL3J1bnRpbWUvcGx1Z2luL2d6aXAudmltCmluZGV4IDY1NjAyMzguLjE2ZTRmOGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL2d6aXAudmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL2d6aXAudmltCkBAIC0xLDYgKzEsNiBAQAogIiBWaW0gcGx1Z2luIGZvciBlZGl0aW5nIGNvbXByZXNzZWQgZmlsZXMuCiAiIE1haW50YWluZXI6IEJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOiAyMDA1IEp1bCAyNgorIiBMYXN0IENoYW5nZTogMjAwOSBKdWwgMDEKIAogIiBFeGl0IHF1aWNrbHkgd2hlbjoKICIgLSB0aGlzIHBsdWdpbiB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTIwLDE3ICsyMCwyMSBAQAogICAiCiAgICIgU2V0IGJpbmFyeSBtb2RlIGJlZm9yZSByZWFkaW5nIHRoZSBmaWxlLgogICAiIFVzZSAiZ3ppcCAtZCIsIGd1bnppcCBpc24ndCBhbHdheXMgYXZhaWxhYmxlLgotICBhdXRvY21kIEJ1ZlJlYWRQcmUsRmlsZVJlYWRQcmUJKi5neiwqLmJ6MiwqLlogc2V0bG9jYWwgYmluCisgIGF1dG9jbWQgQnVmUmVhZFByZSxGaWxlUmVhZFByZQkqLmd6LCouYnoyLCouWiwqLmx6bWEgc2V0bG9jYWwgYmluCiAgIGF1dG9jbWQgQnVmUmVhZFBvc3QsRmlsZVJlYWRQb3N0CSouZ3ogIGNhbGwgZ3ppcCNyZWFkKCJnemlwIC1kbiIpCiAgIGF1dG9jbWQgQnVmUmVhZFBvc3QsRmlsZVJlYWRQb3N0CSouYnoyIGNhbGwgZ3ppcCNyZWFkKCJiemlwMiAtZCIpCiAgIGF1dG9jbWQgQnVmUmVhZFBvc3QsRmlsZVJlYWRQb3N0CSouWiAgIGNhbGwgZ3ppcCNyZWFkKCJ1bmNvbXByZXNzIikKKyAgYXV0b2NtZCBCdWZSZWFkUG9zdCxGaWxlUmVhZFBvc3QJKi5sem1hIGNhbGwgZ3ppcCNyZWFkKCJsem1hIC1kIikKICAgYXV0b2NtZCBCdWZXcml0ZVBvc3QsRmlsZVdyaXRlUG9zdAkqLmd6ICBjYWxsIGd6aXAjd3JpdGUoImd6aXAiKQogICBhdXRvY21kIEJ1ZldyaXRlUG9zdCxGaWxlV3JpdGVQb3N0CSouYnoyIGNhbGwgZ3ppcCN3cml0ZSgiYnppcDIiKQogICBhdXRvY21kIEJ1ZldyaXRlUG9zdCxGaWxlV3JpdGVQb3N0CSouWiAgIGNhbGwgZ3ppcCN3cml0ZSgiY29tcHJlc3MgLWYiKQorICBhdXRvY21kIEJ1ZldyaXRlUG9zdCxGaWxlV3JpdGVQb3N0CSoubHptYSBjYWxsIGd6aXAjd3JpdGUoImx6bWEgLXoiKQogICBhdXRvY21kIEZpbGVBcHBlbmRQcmUJCQkqLmd6ICBjYWxsIGd6aXAjYXBwcmUoImd6aXAgLWRuIikKICAgYXV0b2NtZCBGaWxlQXBwZW5kUHJlCQkJKi5iejIgY2FsbCBnemlwI2FwcHJlKCJiemlwMiAtZCIpCiAgIGF1dG9jbWQgRmlsZUFwcGVuZFByZQkJCSouWiAgIGNhbGwgZ3ppcCNhcHByZSgidW5jb21wcmVzcyIpCisgIGF1dG9jbWQgRmlsZUFwcGVuZFByZQkJCSoubHptYSBjYWxsIGd6aXAjYXBwcmUoImx6bWEgLWQiKQogICBhdXRvY21kIEZpbGVBcHBlbmRQb3N0CQkqLmd6ICBjYWxsIGd6aXAjd3JpdGUoImd6aXAiKQogICBhdXRvY21kIEZpbGVBcHBlbmRQb3N0CQkqLmJ6MiBjYWxsIGd6aXAjd3JpdGUoImJ6aXAyIikKICAgYXV0b2NtZCBGaWxlQXBwZW5kUG9zdAkJKi5aICAgY2FsbCBnemlwI3dyaXRlKCJjb21wcmVzcyAtZiIpCisgIGF1dG9jbWQgRmlsZUFwcGVuZFBvc3QJCSoubHptYSBjYWxsIGd6aXAjd3JpdGUoImx6bWEgLXoiKQogYXVncm91cCBFTkQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL21hdGNocGFyZW4udmltIGIvcnVudGltZS9wbHVnaW4vbWF0Y2hwYXJlbi52aW0KaW5kZXggZjM4ZTQ4MS4uZDVhMGFjNSAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vbWF0Y2hwYXJlbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vbWF0Y2hwYXJlbi52aW0KQEAgLTEsNiArMSw2IEBACiAiIFZpbSBwbHVnaW4gZm9yIHNob3dpbmcgbWF0Y2hpbmcgcGFyZW5zCiAiIE1haW50YWluZXI6ICBCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZTogMjAwOCBGZWIgMjcKKyIgTGFzdCBDaGFuZ2U6IDIwMDggU2VwIDAzCiAKICIgRXhpdCBxdWlja2x5IHdoZW46CiAiIC0gdGhpcyBwbHVnaW4gd2FzIGFscmVhZHkgbG9hZGVkIChvciBkaXNhYmxlZCkKQEAgLTIxLDcgKzIxLDcgQEAKICAgZmluaXNoCiBlbmRpZgogCi1sZXQgY3BvX3NhdmUgPSAmY3BvCitsZXQgczpjcG9fc2F2ZSA9ICZjcG8KIHNldCBjcG8tPUMKIAogIiBUaGUgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkICh2ZXJ5IG9mdGVuKSB0byBkZWZpbmUgYSAiOm1hdGNoIiBoaWdobGlnaHRpbmcKQEAgLTE0Nyw0ICsxNDcsNSBAQAogCSAgXCBhdSEgbWF0Y2hwYXJlbgogY29tbWFuZCEgRG9NYXRjaFBhcmVuIHJ1bnRpbWUgcGx1Z2luL21hdGNocGFyZW4udmltIHwgd2luZG8gZG9hdSBDdXJzb3JNb3ZlZAogCi1sZXQgJmNwbyA9IGNwb19zYXZlCitsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKK3VubGV0IHM6Y3BvX3NhdmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbQppbmRleCA3ZDJjYTBiLi4xMzc5OGIwIDEwMDY0NAotLS0gYS9ydW50aW1lL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vbmV0cndQbHVnaW4udmltCkBAIC0xLDYgKzEsNiBAQAogIiBuZXRyd1BsdWdpbi52aW06IEhhbmRsZXMgZmlsZSB0cmFuc2ZlciBhbmQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIGFjcm9zcyBhIG5ldHdvcmsKICIgICAgICAgICAgICBQTFVHSU4gU0VDVElPTgotIiBEYXRlOgkJQXVnIDAxLCAyMDA4CisiIERhdGU6CQlBdWcgMTAsIDIwMDgKICIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFIENhbXBiZWxsLCBKciA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TS1OT1NQQU0+CiAiIEdldExhdGVzdFZpbVNjcmlwdHM6IDEwNzUgMSA6QXV0b0luc3RhbGw6IG5ldHJ3LnZpbQogIiBDb3B5cmlnaHQ6ICAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA4IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiB7e3sxCkBAIC0xNiwxOSArMTYsMTYgQEAKICIgIEJ1dCBiZSBkb2VycyBvZiB0aGUgV29yZCwgYW5kIG5vdCBvbmx5IGhlYXJlcnMsIGRlbHVkaW5nIHlvdXIgb3duIHNlbHZlcyB7e3sxCiAiICAoSmFtZXMgMToyMiBSU1YpCiAiID0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBMb2FkIE9uY2U6IHt7ezEKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX25ldHJ3UGx1Z2luIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfbmV0cndQbHVnaW4gPSAidjEzMiIKLWxldCBzOmtlZXBjcG8gICAgICAgICAgICA9ICZjcG8KLWlmIHY6dmVyc2lvbiA8IDcwMAotIGVjaG9obCBXYXJuaW5nTXNnIHwgZWNobyAiKioqbmV0cncqKiogeW91IG5lZWQgdmltIHZlcnNpb24gNy4wIGZvciB0aGlzIHZlcnNpb24gb2YgbmV0cnciIHwgZWNob2hsIE5vbmUKK2xldCBnOmxvYWRlZF9uZXRyd1BsdWdpbiA9ICJ2MTM2IgoraWYgdjp2ZXJzaW9uIDwgNzAyCisgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKipuZXRydyoqKiB5b3UgbmVlZCB2aW0gdmVyc2lvbiA3LjIgZm9yIHRoaXMgdmVyc2lvbiBvZiBuZXRydyIgfCBlY2hvaGwgTm9uZQogIGZpbmlzaAogZW5kaWYKLWxldCBzOmtlZXBjcG89ICZjcG8KK2xldCBzOmtlZXBjcG8gPSAmY3BvCiBzZXQgY3BvJnZpbQogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTIsOCArNDksOCBAQAogICBhdSBCdWZSZWFkQ21kICBmaWxlOi8vKgkJZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUHJlICIuZm5hbWVlc2NhcGUobmV0cncjUkZDMjM5NihleHBhbmQoIjxhbWF0Y2g+IikpKXxleGUgJ2UgJy5mbmFtZWVzY2FwZShzdWJzdGl0dXRlKG5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKSwnZmlsZTovL1woLipcKScsJ1wxJywiIikpfGV4ZSAiYndpcGUgIi5mbmFtZWVzY2FwZShleHBhbmQoIjxhbWF0Y2g+IikpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5mbmFtZWVzY2FwZShuZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkpCiAgIGF1IEJ1ZlJlYWRDbWQgIGZpbGU6Ly9sb2NhbGhvc3QvKglleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5mbmFtZWVzY2FwZShuZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkpfGV4ZSAnZSAnLmZuYW1lZXNjYXBlKHN1YnN0aXR1dGUobmV0cncjUkZDMjM5NihleHBhbmQoIjxhbWF0Y2g+IikpLCdmaWxlOi8vbG9jYWxob3N0L1woLipcKScsJ1wxJywiIikpfGV4ZSAiYndpcGUgIi5mbmFtZWVzY2FwZShzdWJzdGl0dXRlKGV4cGFuZCgiPGFtYXRjaD4iKSwnZmlsZTovL1woXGtcK0BcKVw9JywnJywnJykpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5mbmFtZWVzY2FwZShuZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkpCiAgZW5kaWYKLSBhdSBCdWZSZWFkQ21kICAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosaHR0cDovLyosZGF2Oi8vKixkYXZzOi8vKixyc3luYzovLyosc2Z0cDovLyoJZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUHJlICIuZm5hbWVlc2NhcGUoZXhwYW5kKCI8YW1hdGNoPiIpKXxleGUgJzJOcmVhZCAnLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUG9zdCAiLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSkKLSBhdSBGaWxlUmVhZENtZCAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosaHR0cDovLyosZGF2Oi8vKixkYXZzOi8vKixyc3luYzovLyosc2Z0cDovLyoJZXhlICJzaWxlbnQgZG9hdSBGaWxlUmVhZFByZSAiLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICdOcmVhZCAnLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICJzaWxlbnQgZG9hdSBGaWxlUmVhZFBvc3QgIi5mbmFtZWVzY2FwZShleHBhbmQoIjxhbWF0Y2g+IikpCisgYXUgQnVmUmVhZENtZCAgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGh0dHA6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8Y2FsbCBuZXRydyNOcmVhZCgyLGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUG9zdCAiLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSkKKyBhdSBGaWxlUmVhZENtZCAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosaHR0cDovLyosZGF2Oi8vKixkYXZzOi8vKixyc3luYzovLyosc2Z0cDovLyoJZXhlICJzaWxlbnQgZG9hdSBGaWxlUmVhZFByZSAiLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8Y2FsbCBuZXRydyNOcmVhZCgxLGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICJzaWxlbnQgZG9hdSBGaWxlUmVhZFBvc3QgIi5mbmFtZWVzY2FwZShleHBhbmQoIjxhbWF0Y2g+IikpCiAgYXUgQnVmV3JpdGVDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCQlleGUgInNpbGVudCBkb2F1IEJ1ZldyaXRlUHJlICIuZm5hbWVlc2NhcGUoZXhwYW5kKCI8YW1hdGNoPiIpKXxleGUgJ053cml0ZSAnLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICJzaWxlbnQgZG9hdSBCdWZXcml0ZVBvc3QgIi5mbmFtZWVzY2FwZShleHBhbmQoIjxhbWF0Y2g+IikpCiAgYXUgRmlsZVdyaXRlQ21kIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCQlleGUgInNpbGVudCBkb2F1IEZpbGVXcml0ZVByZSAiLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICInWywnXSIuJ053cml0ZSAnLmZuYW1lZXNjYXBlKGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICJzaWxlbnQgZG9hdSBGaWxlV3JpdGVQb3N0ICIuZm5hbWVlc2NhcGUoZXhwYW5kKCI8YW1hdGNoPiIpKQogIHRyeQpAQCAtMTU2LDI0ICsxNTMsNiBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIE5ldFJlYWRGaXh1cDogdGhpcyBzb3J0IG9mIGZ1bmN0aW9uIGlzIHR5cGljYWxseSB3cml0dGVuIGJ5IHRoZSB1c2VyIHt7ezEKLSIgICAgICAgICAgICAgICB0byBoYW5kbGUgZXh0cmEganVuayB0aGF0IHRoZWlyIHN5c3RlbSdzIGZ0cCBkdW1wcwotIiAgICAgICAgICAgICAgIGludG8gdGhlIHRyYW5zZmVyLiAgVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBhcyBhbgotIiAgICAgICAgICAgICAgIGV4YW1wbGUgYW5kIGFzIGEgZml4IGZvciBhIFdpbmRvd3MgOTUgcHJvYmxlbTogaW4gbXkKLSIgICAgICAgICAgICAgICBleHBlcmllbmNlLCB3aW45NSdzIGZ0cCBhbHdheXMgZHVtcGVkIGZvdXIgYmxhbmsgbGluZXMKLSIgICAgICAgICAgICAgICBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2Zlci4KLWlmIGhhcygid2luOTUiKSAmJiBleGlzdHMoImc6bmV0cndfd2luOTVmdHAiKSAmJiBnOm5ldHJ3X3dpbjk1ZnRwCi0gZnVuISBOZXRSZWFkRml4dXAobWV0aG9kLCBsaW5lMSwgbGluZTIpCi0iICAgY2FsbCBEZnVuYygiTmV0UmVhZEZpeHVwKG1ldGhvZDwiLmE6bWV0aG9kLiI+IGxpbmUxPSIuYTpsaW5lMS4iIGxpbmUyPSIuYTpsaW5lMi4iKSIpCi0gICBpZiBtZXRob2QgPT0gMyAgICIgZnRwIChubyA8Lm5ldHJjPikKLSAgICBsZXQgZm91cmJsYW5rbGluZXM9IGxpbmUyIC0gMwotICAgIHNpbGVudCBmb3VyYmxhbmtsaW5lcy4iLCIubGluZTIuImcvXlxzKi9kIgotICAgZW5kaWYKLSIgICBjYWxsIERyZXQoIk5ldFJlYWRGaXh1cCIpCi0gZW5kZnVuCi1lbmRpZgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBNb2RlbGluZXMgQW5kIFJlc3RvcmF0aW9uOiB7e3sxCiBsZXQgJmNwbz0gczprZWVwY3BvCiB1bmxldCBzOmtlZXBjcG8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL3RhclBsdWdpbi52aW0gYi9ydW50aW1lL3BsdWdpbi90YXJQbHVnaW4udmltCmluZGV4IDJkZGY3ZjMuLjgyMzJiNDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL3RhclBsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vdGFyUGx1Z2luLnZpbQpAQCAtMTQsNyArMTQsNyBAQAogaWYgJmNwIHx8IGV4aXN0cygiZzpsb2FkZWRfdGFyUGx1Z2luIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfdGFyUGx1Z2luID0gInYyMyIKK2xldCBnOmxvYWRlZF90YXJQbHVnaW4gPSAidjI0IgogbGV0IHM6a2VlcGNwbyAgICAgICAgICA9ICZjcG8KIHNldCBjcG8mdmltCiAKQEAgLTM0LDEzICszNCwxNSBAQAogICAgYXUgRmlsZVdyaXRlQ21kIHRhcmZpbGU6OiovKgljYWxsIHRhciNXcml0ZShleHBhbmQoIjxhbWF0Y2g+IikpCiAgIGVuZGlmCiAKLSAgYXUgQnVmUmVhZENtZCAgICoudGFyLmd6CWNhbGwgdGFyI0Jyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCi0gIGF1IEJ1ZlJlYWRDbWQgICAqLnRhcgkJY2FsbCB0YXIjQnJvd3NlKGV4cGFuZCgiPGFtYXRjaD4iKSkKLSAgYXUgQnVmUmVhZENtZCAgICoubHJwCQljYWxsIHRhciNCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQotICBhdSBCdWZSZWFkQ21kICAgKi50YXIuYnoyCWNhbGwgdGFyI0Jyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCi0gIGF1IEJ1ZlJlYWRDbWQgICAqLnRhci5aCWNhbGwgdGFyI0Jyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCi0gIGF1IEJ1ZlJlYWRDbWQgICAqLnRnegkJY2FsbCB0YXIjQnJvd3NlKGV4cGFuZCgiPGFtYXRjaD4iKSkKKyAgYXUgQnVmUmVhZENtZCAgICoudGFyLmd6CQljYWxsIHRhciNCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQorICBhdSBCdWZSZWFkQ21kICAgKi50YXIJCQljYWxsIHRhciNCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQorICBhdSBCdWZSZWFkQ21kICAgKi5scnAJCQljYWxsIHRhciNCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQorICBhdSBCdWZSZWFkQ21kICAgKi50YXIuYnoyCQljYWxsIHRhciNCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQorICBhdSBCdWZSZWFkQ21kICAgKi50YXIuWgkJY2FsbCB0YXIjQnJvd3NlKGV4cGFuZCgiPGFtYXRjaD4iKSkKKyAgYXUgQnVmUmVhZENtZCAgICoudGd6CQkJY2FsbCB0YXIjQnJvd3NlKGV4cGFuZCgiPGFtYXRjaD4iKSkKKyAgYXUgQnVmUmVhZENtZCAgICoudGFyLmx6bWEJY2FsbCB0YXIjQnJvd3NlKGV4cGFuZCgiPGFtYXRjaD4iKSkKIGF1Z3JvdXAgRU5ECitjb20hIC1uYXJncz0/IC1jb21wbGV0ZT1maWxlIFZpbXVudGFyIGNhbGwgdGFyI1ZpbXVudGFyKDxxLWFyZ3M+KQogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBSZXN0b3JhdGlvbiBBbmQgTW9kZWxpbmVzOiB7e3sxCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi92aW1iYWxsUGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltCmluZGV4IDYzMGJiOWYuLjExOTJhNmIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltCkBAIC0xLDYgKzEsNiBAQAogIiB2aW1iYWxsUGx1Z2luIDogY29uc3RydWN0IGEgZmlsZSBjb250YWluaW5nIGJvdGggcGF0aHMgYW5kIGZpbGVzCiAiIEF1dGhvcjogQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIENvcHlyaWdodDogKGMpIDIwMDQtMjAwNyBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KKyIgQ29weXJpZ2h0OiAoYykgMjAwNC0yMDA5IGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgogIiAgICAgICAgICAgIFRoZSBWSU0gTElDRU5TRSBhcHBsaWVzIHRvIFZpbWJhbGwudmltLCBhbmQgVmltYmFsbC50eHQKICIgICAgICAgICAgICAoc2VlIHxjb3B5cmlnaHR8KSBleGNlcHQgdXNlICJWaW1iYWxsIiBpbnN0ZWFkIG9mICJWaW0iLgogIiAgICAgICAgICAgIE5vIHdhcnJhbnR5LCBleHByZXNzIG9yIGltcGxpZWQuCkBAIC0xNiwxOCArMTYsMTggQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ZpbWJhbGxQbHVnaW4iKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF92aW1iYWxsUGx1Z2luID0gInYyOSIKK2xldCBnOmxvYWRlZF92aW1iYWxsUGx1Z2luID0gInYzMCIKIGxldCBzOmtlZXBjcG8gICAgICAgICAgICAgID0gJmNwbwogc2V0IGNwbyZ2aW0KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgUHVibGljIEludGVyZmFjZToge3t7MQogY29tISAtcmEgICAtY29tcGxldGU9ZmlsZSAtbmE9KyAtYmFuZyBNa1ZpbWJhbGwgY2FsbCB2aW1iYWxsI01rVmltYmFsbCg8bGluZTE+LDxsaW5lMj4sPGJhbmc+MCw8Zi1hcmdzPikKLWNvbSEgLW5hPT8gLWNvbXBsZXRlPWRpciAgVXNlVmltYmFsbCAgY2FsbCB2aW1iYWxsI1ZpbWJhbGwoMSw8Zi1hcmdzPikKLWNvbSEgLW5hPTAgICAgICAgICAgICAgICAgVmltYmFsbExpc3QgY2FsbCB2aW1iYWxsI1ZpbWJhbGwoMCkKLWNvbSEgLW5hPSogLWNvbXBsZXRlPWRpciAgUm1WaW1iYWxsICAgY2FsbCB2aW1iYWxsI1NhdmVTZXR0aW5ncygpfGNhbGwgdmltYmFsbCNSbVZpbWJhbGwoPGYtYXJncz4pfGNhbGwgdmltYmFsbCNSZXN0b3JlU2V0dGluZ3MoKQotYXUgQnVmRW50ZXIgICoudmJhLmd6LCoudmJhLmJ6MiwqLnZiYS56aXAgY2FsbCB2aW1iYWxsI0RlY29tcHJlc3MoZXhwYW5kKCI8YW1hdGNoPiIpKQotYXUgQnVmRW50ZXIgICoudmJhIHNldGxvY2FsIGZmPXVuaXggbm9tYSBidD1ub2ZpbGUgZm1yPVtbWyxdXV0gZmRtPW1hcmtlcnxjYWxsIHZpbWJhbGwjU2hvd01lc2coMCwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKK2NvbSEgLW5hPT8gLWNvbXBsZXRlPWRpciAgVXNlVmltYmFsbAkJCWNhbGwgdmltYmFsbCNWaW1iYWxsKDEsPGYtYXJncz4pCitjb20hIC1uYT0wICAgICAgICAgICAgICAgIFZpbWJhbGxMaXN0CQkJY2FsbCB2aW1iYWxsI1ZpbWJhbGwoMCkKK2NvbSEgLW5hPSogLWNvbXBsZXRlPWRpciAgUm1WaW1iYWxsCQkJCWNhbGwgdmltYmFsbCNTYXZlU2V0dGluZ3MoKXxjYWxsIHZpbWJhbGwjUm1WaW1iYWxsKDxmLWFyZ3M+KXxjYWxsIHZpbWJhbGwjUmVzdG9yZVNldHRpbmdzKCkKK2F1IFNvdXJjZUNtZCAgKi52YmEuZ3osKi52YmEuYnoyLCoudmJhLnppcAkJY2FsbCB2aW1iYWxsI0RlY29tcHJlc3MoZXhwYW5kKCI8YW1hdGNoPiIpKXxjYWxsIHZpbWJhbGwjVmltYmFsbCgxKQorYXUgQnVmRW50ZXIgICoudmJhLCoudmJhLmd6LCoudmJhLmJ6MiwqLnZiYS56aXAJc2V0bG9jYWwgYnQ9bm9maWxlIGZtcj1bW1ssXV1dIGZkbT1tYXJrZXJ8aWYgJmZmICE9ICd1bml4J3wgc2V0bG9jYWwgZmY9dW5peHxlbmRpZnxjYWxsIHZpbWJhbGwjU2hvd01lc2coMCwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKIAogIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICIgUmVzdG9yYXRpb24gQW5kIE1vZGVsaW5lczoge3t7MQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zY3JpcHRzLnZpbSBiL3J1bnRpbWUvc2NyaXB0cy52aW0KaW5kZXggZDIwYWIwOS4uMGIzYjEzNSAxMDA2NDQKLS0tIGEvcnVudGltZS9zY3JpcHRzLnZpbQorKysgYi9ydW50aW1lL3NjcmlwdHMudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3VwcG9ydCBmaWxlIHRvIGRldGVjdCBmaWxlIHR5cGVzIGluIHNjcmlwdHMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBjaGFuZ2U6CTIwMDggQXVnIDA5CisiIExhc3QgY2hhbmdlOgkyMDA5IERlYyAyNAogCiAiIFRoaXMgZmlsZSBpcyBjYWxsZWQgYnkgYW4gYXV0b2NvbW1hbmQgZm9yIGV2ZXJ5IGZpbGUgdGhhdCBoYXMganVzdCBiZWVuCiAiIGxvYWRlZCBpbnRvIGEgYnVmZmVyLiAgSXQgY2hlY2tzIGlmIHRoZSB0eXBlIG9mIGZpbGUgY2FuIGJlIHJlY29nbml6ZWQgYnkKQEAgLTMxOCwzMCArMzE4LDMxIEBACiAgICAgc2V0IGZ0PXNjaGVtZQogCiAgICIgR2l0IG91dHB1dAotICBlbHNlaWYgczpsaW5lMSA9fiAnXlwoY29tbWl0XHx0cmVlXHxvYmplY3RcKSBceFx7NDBcfSRcfF50YWcgXFNcKyQnCisgIGVsc2VpZiBzOmxpbmUxID1+ICdeXChjb21taXRcfHRyZWVcfG9iamVjdFwpIFx4XHs0MFx9XD5cfF50YWcgXFNcKyQnCiAgICAgc2V0IGZ0PWdpdAogCiAgICIgQ1ZTIGRpZmYKICAgZWxzZQotICAgIGxldCBsbnVtID0gMQotICAgIHdoaWxlIGdldGxpbmUobG51bSkgPX4gIl4/ICIgJiYgbG51bSA8IGxpbmUoIiQiKQotICAgICAgbGV0IGxudW0gPSBsbnVtICsgMQorICAgIGxldCBzOmxudW0gPSAxCisgICAgd2hpbGUgZ2V0bGluZShzOmxudW0pID1+ICJePyAiICYmIHM6bG51bSA8IGxpbmUoIiQiKQorICAgICAgbGV0IHM6bG51bSArPSAxCiAgICAgZW5kd2hpbGUKLSAgICBpZiBnZXRsaW5lKGxudW0pID1+ICdeSW5kZXg6XHNcK1xmXCskJworICAgIGlmIGdldGxpbmUoczpsbnVtKSA9fiAnXkluZGV4OlxzXCtcZlwrJCcKICAgICAgIHNldCBmdD1kaWZmCiAKICAgICAgICIgbG9jYWxlIGlucHV0IGZpbGVzOiBGb3JtYWwgRGVmaW5pdGlvbnMgb2YgQ3VsdHVyYWwgQ29udmVudGlvbnMKICAgICAgICIgZmlsZW5hbWUgbXVzdCBiZSBsaWtlIGVuX1VTLCBmcl9GUkBldXJvIG9yIGVuX1VTLlVURi04CiAgICAgZWxzZWlmIGV4cGFuZCgiJSIpID1+ICdcYVxhX1xhXGFcKCRcfFsuQF1cKVx8aTE4biRcfFBPU0lYJFx8dHJhbnNsaXRfJwotICAgICAgbGV0IGxudW0gPSAxCi0gICAgICB3aGlsZSBsbnVtIDwgMTAwICYmIGxudW0gPCBsaW5lKCIkIikKLQlpZiBnZXRsaW5lKGxudW0pID1+ICdeTENfXChJREVOVElGSUNBVElPTlx8Q1RZUEVcfENPTExBVEVcfE1PTkVUQVJZXHxOVU1FUklDXHxUSU1FXHxNRVNTQUdFU1x8UEFQRVJcfFRFTEVQSE9ORVx8TUVBU1VSRU1FTlRcfE5BTUVcfEFERFJFU1NcKSQnCisgICAgICBsZXQgczpsbnVtID0gMQorICAgICAgd2hpbGUgczpsbnVtIDwgMTAwICYmIHM6bG51bSA8IGxpbmUoIiQiKQorCWlmIGdldGxpbmUoczpsbnVtKSA9fiAnXkxDX1woSURFTlRJRklDQVRJT05cfENUWVBFXHxDT0xMQVRFXHxNT05FVEFSWVx8TlVNRVJJQ1x8VElNRVx8TUVTU0FHRVNcfFBBUEVSXHxURUxFUEhPTkVcfE1FQVNVUkVNRU5UXHxOQU1FXHxBRERSRVNTXCkkJwogCSAgc2V0ZiBmZGNjCiAJICBicmVhawogCWVuZGlmCi0JbGV0IGxudW0gPSBsbnVtICsgMQorCWxldCBzOmxudW0gKz0gMQogICAgICAgZW5kd2hpbGUKICAgICBlbmRpZgorICAgIHVubGV0IHM6bG51bQogCiAgIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvUkVBRE1FLnR4dCBiL3J1bnRpbWUvc3BlbGwvUkVBRE1FLnR4dAppbmRleCBkMmE5YzE3Li40MDgzN2E2IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL1JFQURNRS50eHQKKysrIGIvcnVudGltZS9zcGVsbC9SRUFETUUudHh0CkBAIC03Miw3ICs3Miw3IEBACiAgICBjaGFuZ2UgdG9vIG11Y2gsIHRoZSBPcGVuT2ZmaWNlIHBlb3BsZSBhcmUgbm90IHN0dXBpZC4gIEhvd2V2ZXIsIHlvdSBtYXkKICAgIHdhbnQgdG8gcmVtb3ZlIG9idmlvdXMgbWlzdGFrZXMuICBBbmQgcmVtb3ZlIHNpbmdsZS1sZXR0ZXIgd29yZHMgdGhhdAogICAgYXJlbid0IHJlYWxseSB3b3JkcywgdGhleSBtZXNzIHVwIHRoZSBzdWdnZXN0aW9ucyAoRW5nbGlzaCBoYXMgdGhpcwotICAgcHJvYmxlbSkuICBZb3UgY2FuIHVzZSB0aGUgImZpeGR1cCIgVmltIHNjcmlwdCB0byBmaW5kIGR1cGxpY2F0ZSB3b3Jkcy4KKyAgIHByb2JsZW0pLiAgWW91IGNhbiB1c2UgdGhlICJmaXhkdXAudmltIiBWaW0gc2NyaXB0IHRvIGZpbmQgZHVwbGljYXRlIHdvcmRzLgogCiAzLiBNYWtlIHRoZSBkaWZmIGZpbGUuICAiYWFwIGRpZmYiIHdpbGwgZG8gdGhpcyBmb3IgeW91LiAgSWYgYSBkaWZmIHdvdWxkIGJlCiAgICB0b28gYmlnIHlvdSBtaWdodCBjb25zaWRlciB3cml0aW5nIGEgVmltIHNjcmlwdCB0byBkbyBzeXN0ZW1hdGljIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2ZpeGR1cC52aW0gYi9ydW50aW1lL3NwZWxsL2ZpeGR1cC52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRkNTMyZAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZml4ZHVwLnZpbQpAQCAtMCwwICsxLDI3IEBACisiIFZpbSBzY3JpcHQgdG8gZml4IGR1cGxpY2F0ZSB3b3JkcyBpbiBhIC5kaWMgZmlsZSAgdmltOiBzZXQgZnQ9dmltOgorIgorIiBVc2FnZTogRWRpdCB0aGUgLmRpYyBmaWxlIGFuZCBzb3VyY2UgdGhpcyBzY3JpcHQuCisKK2xldCBkZWxldGVkID0gMAorCisiIFN0YXJ0IGJlbG93IHRoZSB3b3JkIGNvdW50LgorbGV0IGxudW0gPSAyCit3aGlsZSBsbnVtIDw9IGxpbmUoJyQnKQorICBsZXQgd29yZCA9IGdldGxpbmUobG51bSkKKyAgaWYgd29yZCAhfiAnLycKKyAgICBpZiBzZWFyY2goJ14nIC4gd29yZCAuICcvJywgJ3cnKSAhPSAwCisgICAgICBsZXQgZGVsZXRlZCArPSAxCisgICAgICBleGUgbG51bSAuICJkIgorICAgICAgY29udGludWUJCSIgZG9uJ3QgaW5jcmVtZW50IGxudW0sIGl0J3MgYWxyZWFkeSBhdCB0aGUgbmV4dCB3b3JkCisgICAgZW5kaWYKKyAgZW5kaWYKKyAgbGV0IGxudW0gKz0gMQorZW5kd2hpbGUKKworaWYgZGVsZXRlZCA9PSAwCisgIGVjaG9tc2cgIk5vIGR1cGxpY2F0ZSB3b3JkcyBmb3VuZCIKK2Vsc2VpZiBkZWxldGVkID09IDEKKyAgZWNob21zZyAiRGVsZXRlZCAxIGR1cGxpY2F0ZSB3b3JkIgorZWxzZQorICBlY2hvbXNnIHByaW50ZigiRGVsZXRlZCAlZCBkdXBsaWNhdGUgd29yZHMiLCBkZWxldGVkKQorZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4LzJodG1sLnZpbSBiL3J1bnRpbWUvc3ludGF4LzJodG1sLnZpbQppbmRleCBlZTY2YmY2Li4yNTJhODQxIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC8yaHRtbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvMmh0bWwudmltCkBAIC0xLDEzICsxLDE4IEBACiAiIFZpbSBzeW50YXggc3VwcG9ydCBmaWxlCiAiIE1haW50YWluZXI6IEJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOiAyMDA4IEp1bCAxNworIiBMYXN0IENoYW5nZTogMjAwOSBKdWwgMTQKICIJICAgICAgIChtb2RpZmllZCBieSBEYXZpZCBOZVx2e2N9YXMgKFlldGkpIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4pCiAiCSAgICAgICAoWEhUTUwgc3VwcG9ydCBieSBQYW5hZ2lvdGlzIElzc2FyaXMgPHRha2lzQGx1bXVtYmEubHVjLmFjLmJlPikKICIJICAgICAgIChtYWRlIHczIGNvbXBsaWFudCBieSBFZGQgQmFycmV0dCA8dmV4dDAxQGdtYWlsLmNvbT4pCiAiCSAgICAgICAoYWRkZWQgaHRtbF9mb250LiBFZGQgQmFycmV0dCA8dmV4dDAxQGdtYWlsLmNvbT4pCisiCSAgICAgICAoZHluYW1pYyBmb2xkaW5nIGJ5IEJlbiBGcml0eiA8ZnJpdHpvcGhyZW5pY0BnbWFpbC5jb20+KQogCiAiIFRyYW5zZm9ybSBhIGZpbGUgaW50byBIVE1MLCB1c2luZyB0aGUgY3VycmVudCBzeW50YXggaGlnaGxpZ2h0aW5nLgogCisiIHRoaXMgZmlsZSB1c2VzIGxpbmUgY29udGludWF0aW9ucworbGV0IHM6Y3BvX3NhdiA9ICZjcG8KK3NldCBjcG8tPUMKKwogIiBOdW1iZXIgbGluZXMgd2hlbiBleHBsaWNpdGVseSByZXF1ZXN0ZWQgb3Igd2hlbiBgbnVtYmVyJyBpcyBzZXQKIGlmIGV4aXN0cygiaHRtbF9udW1iZXJfbGluZXMiKQogICBsZXQgczpudW1ibGluZXMgPSBodG1sX251bWJlcl9saW5lcwpAQCAtMjIsNiArMjcsMzcgQEAKICAgbGV0IHM6aHRtbGZvbnQgPSAibW9ub3NwYWNlIgogZW5kaWYKIAorIiBtYWtlIGNvcGllcyBvZiB0aGUgdXNlci1kZWZpbmVkIHNldHRpbmdzIHRoYXQgd2UgbWF5IG92ZXJydWxlCitpZiBleGlzdHMoImh0bWxfZHluYW1pY19mb2xkcyIpCisgIGxldCBzOmh0bWxfZHluYW1pY19mb2xkcyA9IDEKK2VuZGlmCitpZiBleGlzdHMoImh0bWxfaG92ZXJfdW5mb2xkIikKKyAgbGV0IHM6aHRtbF9ob3Zlcl91bmZvbGQgPSAxCitlbmRpZgoraWYgZXhpc3RzKCJodG1sX3VzZV9jc3MiKQorICBsZXQgczpodG1sX3VzZV9jc3MgPSAxCitlbmRpZgorCisiIGhvdmVyIG9wZW5pbmcgaW1wbGllcyBkeW5hbWljIGZvbGRpbmcKK2lmIGV4aXN0cygiczpodG1sX2hvdmVyX3VuZm9sZCIpCisgIGxldCBzOmh0bWxfZHluYW1pY19mb2xkcyA9IDEKK2VuZGlmCisKKyIgZHluYW1pYyBmb2xkaW5nIHdpdGggbm8gZm9sZGNvbHVtbiBpbXBsaWVzIGhvdmVyIG9wZW5zCitpZiBleGlzdHMoInM6aHRtbF9keW5hbWljX2ZvbGRzIikgJiYgZXhpc3RzKCJodG1sX25vX2ZvbGRjb2x1bW4iKQorICBsZXQgczpodG1sX2hvdmVyX3VuZm9sZCA9IDEKK2VuZGlmCisKKyIgaWdub3JlIGZvbGRpbmcgb3ZlcnJpZGVzIGR5bmFtaWMgZm9sZGluZworaWYgZXhpc3RzKCJodG1sX2lnbm9yZV9mb2xkaW5nIikgJiYgZXhpc3RzKCJzOmh0bWxfZHluYW1pY19mb2xkcyIpCisgIHVubGV0IHM6aHRtbF9keW5hbWljX2ZvbGRzCitlbmRpZgorCisiIGR5bmFtaWMgZm9sZGluZyBpbXBsaWVzIGNzcworaWYgZXhpc3RzKCJzOmh0bWxfZHluYW1pY19mb2xkcyIpCisgIGxldCBzOmh0bWxfdXNlX2NzcyA9IDEKK2VuZGlmCisKICIgV2hlbiBub3QgaW4gZ3VpIHdlIGNhbiBvbmx5IGd1ZXNzIHRoZSBjb2xvcnMuCiBpZiBoYXMoImd1aV9ydW5uaW5nIikKICAgbGV0IHM6d2hhdHRlcm0gPSAiZ3VpIgpAQCAtNjIsNyArOTgsNyBAQAogICBlbmRmdW4KIGVuZGlmCiAKLWlmICFleGlzdHMoImh0bWxfdXNlX2NzcyIpCitpZiAhZXhpc3RzKCJzOmh0bWxfdXNlX2NzcyIpCiAgICIgUmV0dXJuIG9wZW5pbmcgSFRNTCB0YWcgZm9yIGdpdmVuIGhpZ2hsaWdodCBpZAogICBmdW5jdGlvbiEgczpIdG1sT3BlbmluZyhpZCkKICAgICBsZXQgYSA9ICIiCkBAIC0xNTAsNiArMTg2LDI2IEBACiAgIHJldHVybiBhCiBlbmRmdW4KIAoraWYgZXhpc3RzKCJzOmh0bWxfZHluYW1pY19mb2xkcyIpCisKKyAgIiBjb21wYXJlcyB0d28gZm9sZHMgYXMgc3RvcmVkIGluIG91ciBsaXN0IG9mIGZvbGRzCisgICIgQSBmb2xkIGlzICJsZXNzIiB0aGFuIGFub3RoZXIgaWYgaXQgc3RhcnRzIGF0IGFuIGVhcmxpZXIgbGluZSBudW1iZXIsCisgICIgb3IgZW5kcyBhdCBhIGxhdGVyIGxpbmUgbnVtYmVyLCB0aWVzIGJyb2tlbiBieSBmb2xkIGxldmVsCisgIGZ1bmN0aW9uISBzOkZvbGRDb21wYXJlKGYxLCBmMikKKyAgICBpZiBhOmYxLmZpcnN0bGluZSAhPSBhOmYyLmZpcnN0bGluZQorICAgICAgIiBwdXQgaXQgYmVmb3JlIGlmIGl0IHN0YXJ0cyBlYXJsaWVyCisgICAgICByZXR1cm4gYTpmMS5maXJzdGxpbmUgLSBhOmYyLmZpcnN0bGluZQorICAgIGVsc2VpZiBhOmYxLmxhc3RsaW5lICE9IGE6ZjIubGFzdGxpbmUKKyAgICAgICIgcHV0IGl0IGJlZm9yZSBpZiBpdCBlbmRzIGxhdGVyCisgICAgICByZXR1cm4gYTpmMi5sYXN0bGluZSAtIGE6ZjEubGFzdGxpbmUKKyAgICBlbHNlCisgICAgICAiIGlmIGZvbGRzIGJlZ2luIGFuZCBlbmQgb24gdGhlIHNhbWUgbGluZXMsIHB1dCBsb3dlc3QgZm9sZCBsZXZlbCBmaXJzdAorICAgICAgcmV0dXJuIGE6ZjEubGV2ZWwgLSBhOmYyLmxldmVsCisgICAgZW5kaWYKKyAgZW5kZnVuY3Rpb24KKworZW5kaWYKKwogIiBGaWd1cmUgb3V0IHByb3BlciBNSU1FIGNoYXJzZXQgZnJvbSB0aGUgJ2VuY29kaW5nJyBvcHRpb24uCiBpZiBleGlzdHMoImh0bWxfdXNlX2VuY29kaW5nIikKICAgbGV0IHM6aHRtbF9lbmNvZGluZyA9IGh0bWxfdXNlX2VuY29kaW5nCkBAIC0yMjMsMTMgKzI3OSwxMyBAQAogICBsZXQgczp0YWdfY2xvc2UgPSAnPicKIGVuZGlmCiAKLSIgQ2FjaGUgaHRtbF9ub19wcmUgaW5jYXNlIHdlIGhhdmUgdG8gdHVybiBpdCBvbiBmb3Igbm9uLWNzcyBtb2RlCisiIENhY2hlIGh0bWxfbm9fcHJlIGluIGNhc2Ugd2UgaGF2ZSB0byB0dXJuIGl0IG9uIGZvciBub24tY3NzIG1vZGUKIGlmIGV4aXN0cygiaHRtbF9ub19wcmUiKQogICBsZXQgczpvbGRfaHRtbF9ub19wcmUgPSBodG1sX25vX3ByZQogZW5kaWYKIAotaWYgIWV4aXN0cygiaHRtbF91c2VfY3NzIikKLSAgIiBDYW50IHB1dCBmb250IHRhZ3MgaW4gPHByZT4KK2lmICFleGlzdHMoInM6aHRtbF91c2VfY3NzIikKKyAgIiBDYW4ndCBwdXQgZm9udCB0YWdzIGluIDxwcmU+CiAgIGxldCBodG1sX25vX3ByZT0xCiBlbmRpZgogCkBAIC0yNTEsOSArMzA3LDg2IEBACiAgIGV4ZSAibm9ybWFsISBhPG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9IiAuIHM6aHRtbF9lbmNvZGluZyAuICciJyAuIHM6dGFnX2Nsb3NlIC4gIlxuXGUiCiBlbmRpZgogCi1pZiBleGlzdHMoImh0bWxfdXNlX2NzcyIpCi0gIGV4ZSAibm9ybWFsISBhPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPlxuPCEtLVxuLS0+XG48L3N0eWxlPlxuXGUiCitpZiBleGlzdHMoInM6aHRtbF91c2VfY3NzIikKKyAgaWYgZXhpc3RzKCJzOmh0bWxfZHluYW1pY19mb2xkcyIpCisgICAgaWYgZXhpc3RzKCJzOmh0bWxfaG92ZXJfdW5mb2xkIikKKyAgICAgICIgaWYgd2UgYXJlIGRvaW5nIGhvdmVyX3VuZm9sZCwgdXNlIGNzcyAyIHdpdGggY3NzIDEgZmFsbGJhY2sgZm9yIElFNgorICAgICAgZXhlICJub3JtYWwhIGEiLgorCSAgXCAiPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPlxuPCEtLVxuIi4KKwkgIFwgIi5Gb2xkQ29sdW1uIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB3aGl0ZS1zcGFjZTogcHJlOyB9XG5cbiIuCisJICBcICJib2R5ICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH1cbiIuCisJICBcICJcbiIuCisJICBcICIub3Blbi1mb2xkICAgPiAuRm9sZGVkIHsgZGlzcGxheTogbm9uZTsgIH1cbiIuCisJICBcICIub3Blbi1mb2xkICAgPiAuZnVsbHRleHQgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICBcICIuY2xvc2VkLWZvbGQgPiAuZnVsbHRleHQgeyBkaXNwbGF5OiBub25lOyAgfVxuIi4KKwkgIFwgIi5jbG9zZWQtZm9sZCA+IC5Gb2xkZWQgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICBcICJcbiIuCisJICBcICIub3Blbi1mb2xkICAgPiAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IG5vbmU7ICAgfVxuIi4KKwkgIFwgIi5vcGVuLWZvbGQgICA+IC50b2dnbGUtY2xvc2VkIHsgZGlzcGxheTogaW5saW5lOyB9XG4iLgorCSAgXCAiLmNsb3NlZC1mb2xkID4gLnRvZ2dsZS1vcGVuICAgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICBcICIuY2xvc2VkLWZvbGQgPiAudG9nZ2xlLWNsb3NlZCB7IGRpc3BsYXk6IG5vbmU7ICAgfVxuIgorICAgICAgZXhlICJub3JtYWwhIGFcbi8qIG9wZW5pbmcgYSBmb2xkIHdoaWxlIGhvdmVyaW5nIHdvbid0IGJlIHN1cHBvcnRlZCBieSBJRTYgYW5kIG90aGVyXG4iLgorCSAgXCAic2ltaWxhciBicm93c2VycywgYnV0IGl0IHNob3VsZCBmYWlsIGdyYWNlZnVsbHkuICovXG4iLgorCSAgXCAiLmNsb3NlZC1mb2xkOmhvdmVyID4gLmZ1bGx0ZXh0IHsgZGlzcGxheTogaW5saW5lOyB9XG4iLgorCSAgXCAiLmNsb3NlZC1mb2xkOmhvdmVyID4gLnRvZ2dsZS1maWxsZXIgeyBkaXNwbGF5OiBub25lOyB9XG4iLgorCSAgXCAiLmNsb3NlZC1mb2xkOmhvdmVyID4gLkZvbGRlZCB7IGRpc3BsYXk6IG5vbmU7IH1cbiIKKyAgICAgIGV4ZSAibm9ybWFsISBhLS0+XG48L3N0eWxlPlxuIgorICAgICAgZXhlICJub3JtYWwhIGE8IS0tW2lmIGx0IElFIDddPiIuCisJICBcICI8c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+XG4iLgorCSAgXCAiLm9wZW4tZm9sZCAgIC5Gb2xkZWQgICAgICB7IGRpc3BsYXk6IG5vbmU7IH1cbiIuCisJICBcICIub3Blbi1mb2xkICAgLmZ1bGx0ZXh0ICAgICAgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICBcICIub3Blbi1mb2xkICAgLnRvZ2dsZS1vcGVuICAgeyBkaXNwbGF5OiBub25lOyB9XG4iLgorCSAgXCAiLmNsb3NlZC1mb2xkIC50b2dnbGUtY2xvc2VkIHsgZGlzcGxheTogaW5saW5lOyB9XG4iLgorCSAgXCAiXG4iLgorCSAgXCAiLmNsb3NlZC1mb2xkIC5mdWxsdGV4dCAgICAgIHsgZGlzcGxheTogbm9uZTsgfVxuIi4KKwkgIFwgIi5jbG9zZWQtZm9sZCAuRm9sZGVkICAgICAgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICBcICIuY2xvc2VkLWZvbGQgLnRvZ2dsZS1vcGVuICAgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICBcICIuY2xvc2VkLWZvbGQgLnRvZ2dsZS1jbG9zZWQgeyBkaXNwbGF5OiBub25lOyB9XG4iLgorCSAgXCAiPC9zdHlsZT5cbiIuCisJICBcICI8IVtlbmRpZl0tLT5cbiIKKyAgICBlbHNlCisgICAgICAiIGlmIHdlIGFyZW4ndCBkb2luZyBob3Zlcl91bmZvbGQsIHVzZSBDU1MgMSBvbmx5CisgICAgICBleGUgIm5vcm1hbCEgYTxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj5cbjwhLS1cbiIuCisJICAgIFwgIi5Gb2xkQ29sdW1uIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB3aGl0ZS1zcGFjZTogcHJlOyB9XG5cbiIuCisJICAgIFwgIi5vcGVuLWZvbGQgICAuRm9sZGVkICAgICAgeyBkaXNwbGF5OiBub25lOyB9XG4iLgorCSAgICBcICIub3Blbi1mb2xkICAgLmZ1bGx0ZXh0ICAgICAgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICAgIFwgIi5vcGVuLWZvbGQgICAudG9nZ2xlLW9wZW4gICB7IGRpc3BsYXk6IG5vbmU7IH1cbiIuCisJICAgIFwgIi5jbG9zZWQtZm9sZCAudG9nZ2xlLWNsb3NlZCB7IGRpc3BsYXk6IGlubGluZTsgfVxuIi4KKwkgICAgXCAiXG4iLgorCSAgICBcICIuY2xvc2VkLWZvbGQgLmZ1bGx0ZXh0ICAgICAgeyBkaXNwbGF5OiBub25lOyB9XG4iLgorCSAgICBcICIuY2xvc2VkLWZvbGQgLkZvbGRlZCAgICAgIHsgZGlzcGxheTogaW5saW5lOyB9XG4iLgorCSAgICBcICIuY2xvc2VkLWZvbGQgLnRvZ2dsZS1vcGVuICAgeyBkaXNwbGF5OiBpbmxpbmU7IH1cbiIuCisJICAgIFwgIi5jbG9zZWQtZm9sZCAudG9nZ2xlLWNsb3NlZCB7IGRpc3BsYXk6IG5vbmU7IH1cbiIuCisJICAgIFwgIi0tPlxuPC9zdHlsZT5cbiIKKyAgICBlbmRpZgorICBlbHNlCisgICAgIiBpZiB3ZSBhcmVuJ3QgZG9pbmcgYW55IGR5bmFtaWMgZm9sZGluZywgbm8gbmVlZCBmb3IgYW55IHNwZWNpYWwgcnVsZXMKKyAgICBleGUgIm5vcm1hbCEgYTxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj5cbjwhLS1cbi0tPlxuPC9zdHlsZT5cblxlIgorICBlbmRpZgogZW5kaWYKKworIiBpbnNlcnQgamF2YXNjcmlwdCB0byB0b2dnbGUgZm9sZHMgb3BlbiBhbmQgY2xvc2VkCitpZiBleGlzdHMoInM6aHRtbF9keW5hbWljX2ZvbGRzIikKKyAgZXhlICJub3JtYWwhIGFcbiIuCisJXCAiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPlxuIi4KKwlcICI8IS0tXG4iLgorCVwgImZ1bmN0aW9uIHRvZ2dsZUZvbGQob2JqSUQpXG4iLgorCVwgIntcbiIuCisJXCAiICB2YXIgZm9sZDtcbiIuCisJXCAiICBmb2xkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob2JqSUQpO1xuIi4KKwlcICIgIGlmKGZvbGQuY2xhc3NOYW1lID09ICdjbG9zZWQtZm9sZCcpXG4iLgorCVwgIiAge1xuIi4KKwlcICIgICAgZm9sZC5jbGFzc05hbWUgPSAnb3Blbi1mb2xkJztcbiIuCisJXCAiICB9XG4iLgorCVwgIiAgZWxzZSBpZiAoZm9sZC5jbGFzc05hbWUgPT0gJ29wZW4tZm9sZCcpXG4iLgorCVwgIiAge1xuIi4KKwlcICIgICAgZm9sZC5jbGFzc05hbWUgPSAnY2xvc2VkLWZvbGQnO1xuIi4KKwlcICIgIH1cbiIuCisJXCAifVxuIi4KKwlcICItLT5cbiIuCisJXCAiPC9zY3JpcHQ+XG5cZSIKK2VuZGlmCisKIGlmIGV4aXN0cygiaHRtbF9ub19wcmUiKQogICBleGUgIm5vcm1hbCEgYTwvaGVhZD5cbjxib2R5PlxuXGUiCiBlbHNlCkBAIC0yNjUsNyArMzk4LDgxIEBACiAiIExpc3Qgb2YgYWxsIGlkJ3MKIGxldCBzOmlkbGlzdCA9ICIsIgogCi0iIExvb3Agb3ZlciBhbGwgbGluZXMgaW4gdGhlIG9yaWdpbmFsIHRleHQuCisiIEZpcnN0IGRvIHNvbWUgcHJlcHJvY2Vzc2luZyBmb3IgZHluYW1pYyBmb2xkaW5nLiBEbyB0aGlzIGZvciB0aGUgZW50aXJlIGZpbGUKKyIgc28gd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHN0YXJ0IHdpdGhpbiBhIGNsb3NlZCBmb2xkIG9yIHNvbWV0aGluZy4KK2xldCBzOmFsbGZvbGRzID0gW10KKworaWYgZXhpc3RzKCJzOmh0bWxfZHluYW1pY19mb2xkcyIpCisgIGxldCBzOmxudW0gPSAxCisgIGxldCBzOmVuZCA9IGxpbmUoJyQnKQorICAiIHNhdmUgdGhlIGZvbGQgdGV4dCBhbmQgc2V0IGl0IHRvIHRoZSBkZWZhdWx0IHNvIHdlIGNhbiBmaW5kIGZvbGQgbGV2ZWxzCisgIGxldCBzOmZvbGR0ZXh0X3NhdmUgPSAmZm9sZHRleHQKKyAgc2V0IGZvbGR0ZXh0JgorCisgICIgd2Ugd2lsbCBzZXQgdGhlIGZvbGRjb2x1bW4gaW4gdGhlIGh0bWwgdG8gdGhlIGdyZWF0ZXIgb2YgdGhlIG1heGltdW0gZm9sZAorICAiIGxldmVsIGFuZCB0aGUgY3VycmVudCBmb2xkY29sdW1uIHNldHRpbmcKKyAgbGV0IHM6Zm9sZGNvbHVtbiA9ICZmb2xkY29sdW1uCisKKyAgIiBnZXQgYWxsIGluZm8gbmVlZGVkIHRvIGRlc2NyaWJlIGN1cnJlbnRseSBjbG9zZWQgZm9sZHMKKyAgd2hpbGUgczpsbnVtIDwgczplbmQKKyAgICBpZiBmb2xkY2xvc2VkKHM6bG51bSkgPT0gczpsbnVtCisgICAgICAiIGRlZmF1bHQgZm9sZCB0ZXh0IGhhcyAnKy0nIGFuZCB0aGVuIGEgbnVtYmVyIG9mIGRhc2hlcyBlcXVhbCB0byBmb2xkCisgICAgICAiIGxldmVsLCBzbyBzdWJ0cmFjdCAyIGZyb20gaW5kZXggb2YgZmlyc3Qgbm9uLWRhc2ggYWZ0ZXIgdGhlIGRhc2hlcworICAgICAgIiBpbiBvcmRlciB0byBnZXQgdGhlIGZvbGQgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZm9sZAorICAgICAgbGV0IHM6bGV2ZWwgPSBtYXRjaChmb2xkdGV4dHJlc3VsdChzOmxudW0pLCAnKy0qXHpzW14tXScpIC0gMgorICAgICAgaWYgczpsZXZlbCsxID4gczpmb2xkY29sdW1uCisJbGV0IHM6Zm9sZGNvbHVtbiA9IHM6bGV2ZWwrMQorICAgICAgZW5kaWYKKyAgICAgICIgc3RvcmUgZm9sZCBpbmZvIGZvciBsYXRlciB1c2UKKyAgICAgIGxldCBzOm5ld2ZvbGQgPSB7J2ZpcnN0bGluZSc6IHM6bG51bSwgJ2xhc3RsaW5lJzogZm9sZGNsb3NlZGVuZChzOmxudW0pLCAnbGV2ZWwnOiBzOmxldmVsLCd0eXBlJzogImNsb3NlZC1mb2xkIn0KKyAgICAgIGNhbGwgYWRkKHM6YWxsZm9sZHMsIHM6bmV3Zm9sZCkKKyAgICAgICIgb3BlbiB0aGUgZm9sZCBzbyB3ZSBjYW4gZmluZCBhbnkgY29udGFpbmVkIGZvbGRzCisgICAgICBleGVjdXRlIHM6bG51bS4iZm9sZG9wZW4iCisgICAgZWxzZQorICAgICAgbGV0IHM6bG51bSA9IHM6bG51bSArIDEKKyAgICBlbmRpZgorICBlbmR3aGlsZQorCisgICIgY2xvc2UgYWxsIGZvbGRzIHRvIGdldCBpbmZvIGZvciBvcmlnaW5hbGx5IG9wZW4gZm9sZHMKKyAgc2lsZW50ISAlZm9sZGNsb3NlIQorICBsZXQgczpsbnVtID0gMQorCisgICIgdGhlIG9yaWdpbmFsbHkgb3BlbiBmb2xkcyB3aWxsIGJlIGFsbCBmb2xkcyB3ZSBlbmNvdW50ZXIgdGhhdCBhcmVuJ3QKKyAgIiBhbHJlYWR5IGluIHRoZSBsaXN0IG9mIGNsb3NlZCBmb2xkcworICB3aGlsZSBzOmxudW0gPCBzOmVuZAorICAgIGlmIGZvbGRjbG9zZWQoczpsbnVtKSA9PSBzOmxudW0KKyAgICAgICIgZGVmYXVsdCBmb2xkIHRleHQgaGFzICcrLScgYW5kIHRoZW4gYSBudW1iZXIgb2YgZGFzaGVzIGVxdWFsIHRvIGZvbGQKKyAgICAgICIgbGV2ZWwsIHNvIHN1YnRyYWN0IDIgZnJvbSBpbmRleCBvZiBmaXJzdCBub24tZGFzaCBhZnRlciB0aGUgZGFzaGVzCisgICAgICAiIGluIG9yZGVyIHRvIGdldCB0aGUgZm9sZCBsZXZlbCBvZiB0aGUgY3VycmVudCBmb2xkCisgICAgICBsZXQgczpsZXZlbCA9IG1hdGNoKGZvbGR0ZXh0cmVzdWx0KHM6bG51bSksICcrLSpcenNbXi1dJykgLSAyCisgICAgICBpZiBzOmxldmVsKzEgPiBzOmZvbGRjb2x1bW4KKwlsZXQgczpmb2xkY29sdW1uID0gczpsZXZlbCsxCisgICAgICBlbmRpZgorICAgICAgbGV0IHM6bmV3Zm9sZCA9IHsnZmlyc3RsaW5lJzogczpsbnVtLCAnbGFzdGxpbmUnOiBmb2xkY2xvc2VkZW5kKHM6bG51bSksICdsZXZlbCc6IHM6bGV2ZWwsJ3R5cGUnOiAiY2xvc2VkLWZvbGQifQorICAgICAgIiBvbmx5IGFkZCB0aGUgZm9sZCBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgaXQKKyAgICAgIGlmIGVtcHR5KHM6YWxsZm9sZHMpIHx8IGluZGV4KHM6YWxsZm9sZHMsIHM6bmV3Zm9sZCkgPT0gLTEKKwlsZXQgczpuZXdmb2xkLnR5cGUgPSAib3Blbi1mb2xkIgorCWNhbGwgYWRkKHM6YWxsZm9sZHMsIHM6bmV3Zm9sZCkKKyAgICAgIGVuZGlmCisgICAgICAiIG9wZW4gdGhlIGZvbGQgc28gd2UgY2FuIGZpbmQgYW55IGNvbnRhaW5lZCBmb2xkcworICAgICAgZXhlY3V0ZSBzOmxudW0uImZvbGRvcGVuIgorICAgIGVsc2UKKyAgICAgIGxldCBzOmxudW0gPSBzOmxudW0gKyAxCisgICAgZW5kaWYKKyAgZW5kd2hpbGUKKworICAiIHNvcnQgdGhlIGZvbGRzIHNvIHRoYXQgd2Ugb25seSBldmVyIG5lZWQgdG8gbG9vayBhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUKKyAgIiBsaXN0IG9mIGZvbGRzCisgIGNhbGwgc29ydChzOmFsbGZvbGRzLCAiczpGb2xkQ29tcGFyZSIpCisKKyAgbGV0ICZmb2xkdGV4dCA9IHM6Zm9sZHRleHRfc2F2ZQorICB1bmxldCBzOmZvbGR0ZXh0X3NhdmUKKworICAiIGNsb3NlIGFsbCBmb2xkcyBhZ2FpbiBzbyB3ZSBjYW4gZ2V0IHRoZSBmb2xkIHRleHQgYXMgd2UgZ28KKyAgc2lsZW50ISAlZm9sZGNsb3NlISAKK2VuZGlmCisKKyIgTm93IGxvb3Agb3ZlciBhbGwgbGluZXMgaW4gdGhlIG9yaWdpbmFsIHRleHQgdG8gY29udmVydCB0byBodG1sLgogIiBVc2UgaHRtbF9zdGFydF9saW5lIGFuZCBodG1sX2VuZF9saW5lIGlmIHRoZXkgYXJlIHNldC4KIGlmIGV4aXN0cygiaHRtbF9zdGFydF9saW5lIikKICAgbGV0IHM6bG51bSA9IGh0bWxfc3RhcnRfbGluZQpAQCAtMjg0LDYgKzQ5MSwxNSBAQAogICBsZXQgczplbmQgPSBsaW5lKCIkIikKIGVuZGlmCiAKKyIgc3RhY2sgdG8ga2VlcCB0cmFjayBvZiBhbGwgdGhlIGZvbGRzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbGluZQorbGV0IHM6Zm9sZHN0YWNrID0gW10KKworaWYgczpudW1ibGluZXMKKyAgbGV0IHM6bWFyZ2luID0gc3RybGVuKHM6ZW5kKSArIDEKK2Vsc2UKKyAgbGV0IHM6bWFyZ2luID0gMAorZW5kaWYKKwogaWYgaGFzKCdmb2xkaW5nJykgJiYgIWV4aXN0cygnaHRtbF9pZ25vcmVfZm9sZGluZycpCiAgIGxldCBzOmZvbGRmaWxsY2hhciA9ICZmaWxsY2hhcnNbbWF0Y2hlbmQoJmZpbGxjaGFycywgJ2ZvbGQ6JyldCiAgIGlmIHM6Zm9sZGZpbGxjaGFyID09ICcnCkBAIC0yOTUsNiArNTExLDcgQEAKICAgbGV0IHM6ZGlmZmZpbGxjaGFyID0gJy0nCiBlbmRpZgogCitsZXQgczpmb2xkSWQgPSAwCiAKIHdoaWxlIHM6bG51bSA8PSBzOmVuZAogCkBAIC0zMDMsMTIgKzUyMCw3IEBACiAgIGlmIHM6ZmlsbGVyID4gMAogICAgIGxldCBzOm4gPSBzOmZpbGxlcgogICAgIHdoaWxlIHM6biA+IDAKLSAgICAgIGlmIHM6bnVtYmxpbmVzCi0JIiBJbmRlbnQgaWYgbGluZSBudW1iZXJpbmcgaXMgb24KLQlsZXQgczpuZXcgPSByZXBlYXQoczpMZWFkaW5nU3BhY2UsIHN0cmxlbihzOmVuZCkgKyAxKSAuIHJlcGVhdChzOmRpZmZmaWxsY2hhciwgMykKLSAgICAgIGVsc2UKLQlsZXQgczpuZXcgPSByZXBlYXQoczpkaWZmZmlsbGNoYXIsIDMpCi0gICAgICBlbmRpZgorICAgICAgbGV0IHM6bmV3ID0gcmVwZWF0KHM6ZGlmZmZpbGxjaGFyLCAzKQogCiAgICAgICBpZiBzOm4gPiAyICYmIHM6biA8IHM6ZmlsbGVyICYmICFleGlzdHMoImh0bWxfd2hvbGVfZmlsbGVyIikKIAlsZXQgczpuZXcgPSBzOm5ldyAuICIgIiAuIHM6ZmlsbGVyIC4gIiBpbnNlcnRlZCBsaW5lcyAiCkBAIC0zMTcsMTAgKzUyOSwxNiBAQAogCiAgICAgICBpZiAhZXhpc3RzKCJodG1sX25vX3ByZSIpCiAJIiBIVE1MIGxpbmUgd3JhcHBpbmcgaXMgb2ZmLS1nbyBhaGVhZCBhbmQgZmlsbCB0byB0aGUgbWFyZ2luCi0JbGV0IHM6bmV3ID0gczpuZXcgLiByZXBlYXQoczpkaWZmZmlsbGNoYXIsICZjb2x1bW5zIC0gc3RybGVuKHM6bmV3KSkKKwlsZXQgczpuZXcgPSBzOm5ldyAuIHJlcGVhdChzOmRpZmZmaWxsY2hhciwgJmNvbHVtbnMgLSBzdHJsZW4oczpuZXcpIC0gczptYXJnaW4pCisgICAgICBlbHNlCisJbGV0IHM6bmV3ID0gczpuZXcgLiByZXBlYXQoczpkaWZmZmlsbGNoYXIsIDMpCiAgICAgICBlbmRpZgogCiAgICAgICBsZXQgczpuZXcgPSBzOkh0bWxGb3JtYXQoczpuZXcsICJEaWZmRGVsZXRlIikKKyAgICAgIGlmIHM6bnVtYmxpbmVzCisJIiBJbmRlbnQgaWYgbGluZSBudW1iZXJpbmcgaXMgb247IG11c3QgYmUgYWZ0ZXIgZXNjYXBpbmcuCisJbGV0IHM6bmV3ID0gcmVwZWF0KHM6TGVhZGluZ1NwYWNlLCBzOm1hcmdpbikgLiBzOm5ldworICAgICAgZW5kaWYKICAgICAgIGV4ZSBzOm5ld3dpbiAuICJ3aW5jbWQgdyIKICAgICAgIGV4ZSAibm9ybWFsISBhIiAuIHM6bmV3IC4gczpIdG1sRW5kbGluZSAuICJcblxlIgogICAgICAgZXhlIHM6b3Jnd2luIC4gIndpbmNtZCB3IgpAQCAtMzMzLDE2ICs1NTEsMTggQEAKIAogICAiIFN0YXJ0IHRoZSBsaW5lIHdpdGggdGhlIGxpbmUgbnVtYmVyLgogICBpZiBzOm51bWJsaW5lcwotICAgIGxldCBzOm5ldyA9IHJlcGVhdCgnICcsIHN0cmxlbihzOmVuZCkgLSBzdHJsZW4oczpsbnVtKSkgLiBzOmxudW0gLiAnICcKKyAgICBsZXQgczpudW1jb2wgPSByZXBlYXQoJyAnLCBzOm1hcmdpbiAtIDEgLSBzdHJsZW4oczpsbnVtKSkgLiBzOmxudW0gLiAnICcKICAgZWxzZQotICAgIGxldCBzOm5ldyA9ICIiCisgICAgbGV0IHM6bnVtY29sID0gIiIKICAgZW5kaWYKIAotICBpZiBoYXMoJ2ZvbGRpbmcnKSAmJiAhZXhpc3RzKCdodG1sX2lnbm9yZV9mb2xkaW5nJykgJiYgZm9sZGNsb3NlZChzOmxudW0pID4gLTEKKyAgbGV0IHM6bmV3ID0gIiIKKworICBpZiBoYXMoJ2ZvbGRpbmcnKSAmJiAhZXhpc3RzKCdodG1sX2lnbm9yZV9mb2xkaW5nJykgJiYgZm9sZGNsb3NlZChzOmxudW0pID4gLTEgJiYgIWV4aXN0cygnczpodG1sX2R5bmFtaWNfZm9sZHMnKQogICAgICIKLSAgICAiIFRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiBhIGZvbGRlZCBibG9jaworICAgICIgVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIGEgZm9sZGVkIGJsb2NrICh3aXRoIG5vIGR5bmFtaWMgZm9sZGluZykKICAgICAiCi0gICAgbGV0IHM6bmV3ID0gczpuZXcgLiBmb2xkdGV4dHJlc3VsdChzOmxudW0pCisgICAgbGV0IHM6bmV3ID0gczpudW1jb2wgLiBmb2xkdGV4dHJlc3VsdChzOmxudW0pCiAgICAgaWYgIWV4aXN0cygiaHRtbF9ub19wcmUiKQogICAgICAgIiBIVE1MIGxpbmUgd3JhcHBpbmcgaXMgb2ZmLS1nbyBhaGVhZCBhbmQgZmlsbCB0byB0aGUgbWFyZ2luCiAgICAgICBsZXQgczpuZXcgPSBzOm5ldyAuIHJlcGVhdChzOmZvbGRmaWxsY2hhciwgJmNvbHVtbnMgLSBzdHJsZW4oczpuZXcpKQpAQCAtMzU1LDE0ICs1NzUsOTYgQEAKIAogICBlbHNlCiAgICAgIgotICAgICIgQSBsaW5lIHRoYXQgaXMgbm90IGZvbGRlZC4KKyAgICAiIEEgbGluZSB0aGF0IGlzIG5vdCBmb2xkZWQsIG9yIGRvaW5nIGR5bmFtaWMgZm9sZGluZy4KICAgICAiCiAgICAgbGV0IHM6bGluZSA9IGdldGxpbmUoczpsbnVtKQotCiAgICAgbGV0IHM6bGVuID0gc3RybGVuKHM6bGluZSkKIAorICAgIGlmIGV4aXN0cygiczpodG1sX2R5bmFtaWNfZm9sZHMiKQorICAgICAgIiBGaXJzdCBpbnNlcnQgYSBjbG9zaW5nIGZvciBhbnkgb3BlbiBmb2xkcyB0aGF0IGVuZCBvbiB0aGlzIGxpbmUKKyAgICAgIHdoaWxlICFlbXB0eShzOmZvbGRzdGFjaykgJiYgZ2V0KHM6Zm9sZHN0YWNrLDApLmxhc3RsaW5lID09IHM6bG51bS0xCisJbGV0IHM6bmV3ID0gczpuZXcuIjwvc3Bhbj48L3NwYW4+IgorCWNhbGwgcmVtb3ZlKHM6Zm9sZHN0YWNrLCAwKQorICAgICAgZW5kd2hpbGUKKworICAgICAgIiBOb3cgaW5zZXJ0IGFuIG9wZW5pbmcgYW55IG5ldyBmb2xkcyB0aGF0IHN0YXJ0IG9uIHRoaXMgbGluZQorICAgICAgbGV0IHM6Zmlyc3Rmb2xkID0gMQorICAgICAgd2hpbGUgIWVtcHR5KHM6YWxsZm9sZHMpICYmIGdldChzOmFsbGZvbGRzLDApLmZpcnN0bGluZSA9PSBzOmxudW0KKwlsZXQgczpmb2xkSWQgPSBzOmZvbGRJZCArIDEKKwlsZXQgczpuZXcgPSBzOm5ldyAuICI8c3BhbiBpZD0nZm9sZCIuczpmb2xkSWQuIicgY2xhc3M9JyIuczphbGxmb2xkc1swXS50eXBlLiInPiIKKworCSIgVW5sZXNzIGRpc2FibGVkLCBhZGQgYSBmb2xkIGNvbHVtbiBmb3IgdGhlIG9wZW5pbmcgbGluZSBvZiBhIGZvbGQuCisJIgorCSIgTm90ZSB0aGF0IGR5bmFtaWMgZm9sZHMgcmVxdWlyZSB1c2luZyBjc3Mgc28gd2UganVzdCB1c2UgY3NzIHRvIHRha2UKKwkiIGNhcmUgb2YgdGhlIGxlYWRpbmcgc3BhY2VzIHJhdGhlciB0aGFuIHVzaW5nICZuYnNwOyBpbiB0aGUgY2FzZSBvZgorCSIgaHRtbF9ub19wcmUgdG8gbWFrZSBpdCBlYXNpZXIKKwlpZiAhZXhpc3RzKCJodG1sX25vX2ZvbGRjb2x1bW4iKQorCSAgIiBhZGQgZm9sZCBjb2x1bW4gdGhhdCBjYW4gb3BlbiB0aGUgbmV3IGZvbGQKKwkgIGlmIHM6YWxsZm9sZHNbMF0ubGV2ZWwgPiAxICYmIHM6Zmlyc3Rmb2xkCisJICAgIGxldCBzOm5ldyA9IHM6bmV3IC4gIjxhIGNsYXNzPSd0b2dnbGUtb3BlbiBGb2xkQ29sdW1uJyBocmVmPSdqYXZhc2NyaXB0OnRvZ2dsZUZvbGQoXCJmb2xkIi5zOmZvbGRzdGFja1swXS5pZC4iXCIpJz4iCisJICAgIGxldCBzOm5ldyA9IHM6bmV3IC4gcmVwZWF0KCd8JywgczphbGxmb2xkc1swXS5sZXZlbCAtIDEpIC4gIjwvYT4iCisJICBlbmRpZgorCSAgbGV0IHM6bmV3ID0gczpuZXcgLiAiPGEgY2xhc3M9J3RvZ2dsZS1vcGVuIEZvbGRDb2x1bW4nIGhyZWY9J2phdmFzY3JpcHQ6dG9nZ2xlRm9sZChcImZvbGQiLnM6Zm9sZElkLiJcIiknPis8L2E+IgorCSAgbGV0IHM6bmV3ID0gczpuZXcgLiAiPGEgY2xhc3M9J3RvZ2dsZS1vcGVuICIKKwkgICIgSWYgdGhpcyBpcyBub3QgdGhlIGxhc3QgZm9sZCB3ZSdyZSBvcGVuaW5nIG9uIHRoaXMgbGluZSwgd2UgbmVlZAorCSAgIiB0byBrZWVwIHRoZSBmaWxsZXIgc3BhY2VzIGhpZGRlbiBpZiB0aGUgZm9sZCBpcyBvcGVuZWQgYnkgbW91c2UKKwkgICIgaG92ZXIuIElmIGl0IGlzIHRoZSBsYXN0IGZvbGQgdG8gb3BlbiBpbiB0aGUgbGluZSwgd2Ugc2hvdWxkbid0IGhpZGUKKwkgICIgdGhlbSwgc28gZG9uJ3QgYXBwbHkgdGhlIHRvZ2dsZS1maWxsZXIgY2xhc3MuCisJICBpZiBnZXQoczphbGxmb2xkcywgMSwgeydmaXJzdGxpbmUnOiAwfSkuZmlyc3RsaW5lID09IHM6bG51bQorCSAgICBsZXQgczpuZXcgPSBzOm5ldyAuICJ0b2dnbGUtZmlsbGVyICIKKwkgIGVuZGlmCisJICBsZXQgczpuZXcgPSBzOm5ldyAuICJGb2xkQ29sdW1uJyBocmVmPSdqYXZhc2NyaXB0OnRvZ2dsZUZvbGQoXCJmb2xkIi5zOmZvbGRJZC4iXCIpJz4iCisJICBsZXQgczpuZXcgPSBzOm5ldyAuIHJlcGVhdCgiICIsIHM6Zm9sZGNvbHVtbiAtIHM6YWxsZm9sZHNbMF0ubGV2ZWwpIC4gIjwvYT4iCisKKwkgICIgYWRkIGZvbGQgY29sdW1uIHRoYXQgY2FuIGNsb3NlIHRoZSBuZXcgZm9sZAorCSAgbGV0IHM6bmV3ID0gczpuZXcgLiAiPGEgY2xhc3M9J3RvZ2dsZS1jbG9zZWQgRm9sZENvbHVtbicgaHJlZj0namF2YXNjcmlwdDp0b2dnbGVGb2xkKFwiZm9sZCIuczpmb2xkSWQuIlwiKSc+IgorCSAgaWYgczpmaXJzdGZvbGQKKwkgICAgbGV0IHM6bmV3ID0gczpuZXcgLiByZXBlYXQoJ3wnLCBzOmFsbGZvbGRzWzBdLmxldmVsIC0gMSkKKwkgIGVuZGlmCisJICBsZXQgczpuZXcgPSBzOm5ldyAuICItIgorCSAgIiBvbmx5IGFkZCBzcGFjZXMgaWYgd2UgYXJlbid0IG9wZW5pbmcgYW5vdGhlciBmb2xkIG9uIHRoZSBzYW1lIGxpbmUKKwkgIGlmIGdldChzOmFsbGZvbGRzLCAxLCB7J2ZpcnN0bGluZSc6IDB9KS5maXJzdGxpbmUgIT0gczpsbnVtCisJICAgIGxldCBzOm5ldyA9IHM6bmV3IC4gcmVwZWF0KCIgIiwgczpmb2xkY29sdW1uIC0gczphbGxmb2xkc1swXS5sZXZlbCkKKwkgIGVuZGlmCisJICBsZXQgczpuZXcgPSBzOm5ldyAuICI8L2E+IgorCSAgbGV0IHM6Zmlyc3Rmb2xkID0gMAorCWVuZGlmCisKKwkiIGFkZCBmb2xkIHRleHQsIG1vdmluZyB0aGUgc3BhbiBlbmRpbmcgdG8gdGhlIG5leHQgbGluZSBzbyBjb2xsYXBzaW5nCisJIiBvZiBmb2xkcyB3b3JrcyBjb3JyZWN0bHkKKwlsZXQgczpuZXcgPSBzOm5ldyAuIHN1YnN0aXR1dGUoczpIdG1sRm9ybWF0KHM6bnVtY29sIC4gZm9sZHRleHRyZXN1bHQoczpsbnVtKSwgIkZvbGRlZCIpLCAnPC9zcGFuPicsIHM6SHRtbEVuZGxpbmUuJ1xyXDAnLCAnJykKKwlsZXQgczpuZXcgPSBzOm5ldyAuICI8c3BhbiBjbGFzcz0nZnVsbHRleHQnPiIKKworCSIgb3BlbiB0aGUgZm9sZCBub3cgdGhhdCB3ZSBoYXZlIHRoZSBmb2xkIHRleHQgdG8gYWxsb3cgcmV0cmlldmFsIG9mCisJIiBmb2xkIHRleHQgZm9yIHN1YnNlcXVlbnQgZm9sZHMKKwlleGVjdXRlIHM6bG51bS4iZm9sZG9wZW4iCisJY2FsbCBpbnNlcnQoczpmb2xkc3RhY2ssIHJlbW92ZShzOmFsbGZvbGRzLDApKQorCWxldCBzOmZvbGRzdGFja1swXS5pZCA9IHM6Zm9sZElkCisgICAgICBlbmR3aGlsZQorCisgICAgICAiIFVubGVzcyBkaXNhYmxlZCwgYWRkIGEgZm9sZCBjb2x1bW4gZm9yIG90aGVyIGxpbmVzLgorICAgICAgIgorICAgICAgIiBOb3RlIHRoYXQgZHluYW1pYyBmb2xkcyByZXF1aXJlIHVzaW5nIGNzcyBzbyB3ZSBqdXN0IHVzZSBjc3MgdG8gdGFrZQorICAgICAgIiBjYXJlIG9mIHRoZSBsZWFkaW5nIHNwYWNlcyByYXRoZXIgdGhhbiB1c2luZyAmbmJzcDsgaW4gdGhlIGNhc2Ugb2YKKyAgICAgICIgaHRtbF9ub19wcmUgdG8gbWFrZSBpdCBlYXNpZXIKKyAgICAgIGlmICFleGlzdHMoImh0bWxfbm9fZm9sZGNvbHVtbiIpCisJaWYgZW1wdHkoczpmb2xkc3RhY2spCisJICAiIGFkZCB0aGUgZW1wdHkgZm9sZGNvbHVtbiBmb3IgdW5mb2xkZWQgbGluZXMKKwkgIGxldCBzOm5ldyA9IHM6bmV3IC4gczpIdG1sRm9ybWF0KHJlcGVhdCgnICcsIHM6Zm9sZGNvbHVtbiksICJGb2xkQ29sdW1uIikKKwllbHNlCisJICAiIGFkZCB0aGUgZm9sZCBjb2x1bW4gZm9yIGZvbGRzIG5vdCBvbiB0aGUgb3BlbmluZyBsaW5lCisJICBpZiBnZXQoczpmb2xkc3RhY2ssIDApLmZpcnN0bGluZSA8IHM6bG51bQorCSAgICBsZXQgczpuZXcgPSBzOm5ldyAuICI8YSBjbGFzcz0nRm9sZENvbHVtbicgaHJlZj0namF2YXNjcmlwdDp0b2dnbGVGb2xkKFwiZm9sZCIuczpmb2xkc3RhY2tbMF0uaWQuIlwiKSc+IgorCSAgICBsZXQgczpuZXcgPSBzOm5ldyAuIHJlcGVhdCgnfCcsIHM6Zm9sZHN0YWNrWzBdLmxldmVsKQorCSAgICBsZXQgczpuZXcgPSBzOm5ldyAuIHJlcGVhdCgnICcsIHM6Zm9sZGNvbHVtbiAtIHM6Zm9sZHN0YWNrWzBdLmxldmVsKSAuICI8L2E+IgorCSAgZW5kaWYKKwllbmRpZgorICAgICAgZW5kaWYKKyAgICBlbmRpZgorCisgICAgIiBOb3cgY29udGludWUgd2l0aCB0aGUgdW5mb2xkZWQgbGluZSB0ZXh0CiAgICAgaWYgczpudW1ibGluZXMKLSAgICAgIGxldCBzOm5ldyA9IHM6SHRtbEZvcm1hdChzOm5ldywgImxuciIpCisgICAgICBsZXQgczpuZXcgPSBzOm5ldyAuIHM6SHRtbEZvcm1hdChzOm51bWNvbCwgImxuciIpCiAgICAgZW5kaWYKIAogICAgICIgR2V0IHRoZSBkaWZmIGF0dHJpYnV0ZSwgaWYgYW55LgpAQCAtMzgwLDcgKzY4Miw3IEBACiAJd2hpbGUgczpjb2wgPD0gczpsZW4gJiYgczppZCA9PSBkaWZmX2hsSUQoczpsbnVtLCBzOmNvbCkgfCBsZXQgczpjb2wgPSBzOmNvbCArIDEgfCBlbmR3aGlsZQogCWlmIHM6bGVuIDwgJmNvbHVtbnMgJiYgIWV4aXN0cygiaHRtbF9ub19wcmUiKQogCSAgIiBBZGQgc3BhY2VzIGF0IHRoZSBlbmQgdG8gbWFyayB0aGUgY2hhbmdlZCBsaW5lLgotCSAgbGV0IHM6bGluZSA9IHM6bGluZSAuIHJlcGVhdCgnICcsICZjb2x1bW5zIC0gczpsZW4pCisJICBsZXQgczpsaW5lID0gczpsaW5lIC4gcmVwZWF0KCcgJywgJmNvbHVtbnMgLSB2aXJ0Y29sKFtzOmxudW0sIHM6bGVuXSkgLSBzOm1hcmdpbikKIAkgIGxldCBzOmxlbiA9ICZjb2x1bW5zCiAJZW5kaWYKICAgICAgIGVsc2UKQEAgLTM5MywxMSArNjk1LDI3IEBACiAKICAgICAgICIgRXhwYW5kIHRhYnMKICAgICAgIGxldCBzOmV4cGFuZGVkdGFiID0gc3RycGFydChzOmxpbmUsIHM6c3RhcnRjb2wgLSAxLCBzOmNvbCAtIHM6c3RhcnRjb2wpCi0gICAgICBsZXQgaWR4ID0gc3RyaWR4KHM6ZXhwYW5kZWR0YWIsICJcdCIpCi0gICAgICB3aGlsZSBpZHggPj0gMAotCWxldCBpID0gJnRzIC0gKChpZHggKyBzOnN0YXJ0Y29sIC0gMSkgJSAmdHMpCi0JbGV0IHM6ZXhwYW5kZWR0YWIgPSBzdWJzdGl0dXRlKHM6ZXhwYW5kZWR0YWIsICdcdCcsIHJlcGVhdCgnICcsIGkpLCAnJykKLQlsZXQgaWR4ID0gc3RyaWR4KHM6ZXhwYW5kZWR0YWIsICJcdCIpCisgICAgICBsZXQgczpvZmZzZXQgPSAwCisgICAgICBsZXQgczppZHggPSBzdHJpZHgoczpleHBhbmRlZHRhYiwgIlx0IikKKyAgICAgIHdoaWxlIHM6aWR4ID49IDAKKwlpZiBoYXMoIm11bHRpX2J5dGVfZW5jb2RpbmciKQorCSAgaWYgczpzdGFydGNvbCArIHM6aWR4ID09IDEKKwkgICAgbGV0IHM6aSA9ICZ0cworCSAgZWxzZQorCSAgICBpZiBzOmlkeCA9PSAwCisJICAgICAgbGV0IHM6cHJldmMgPSBtYXRjaHN0cihzOmxpbmUsICcuXCUnIC4gKHM6c3RhcnRjb2wgKyBzOmlkeCArIHM6b2Zmc2V0KSAuICdjJykKKwkgICAgZWxzZQorCSAgICAgIGxldCBzOnByZXZjID0gbWF0Y2hzdHIoczpleHBhbmRlZHRhYiwgJy5cJScgLiAoczppZHggKyAxKSAuICdjJykKKwkgICAgZW5kaWYKKwkgICAgbGV0IHM6dmNvbCA9IHZpcnRjb2woW3M6bG51bSwgczpzdGFydGNvbCArIHM6aWR4ICsgczpvZmZzZXQgLSBsZW4oczpwcmV2YyldKQorCSAgICBsZXQgczppID0gJnRzIC0gKHM6dmNvbCAlICZ0cykKKwkgIGVuZGlmCisJICBsZXQgczpvZmZzZXQgLT0gczppIC0gMQorCWVsc2UKKwkgIGxldCBzOmkgPSAmdHMgLSAoKHM6aWR4ICsgczpzdGFydGNvbCAtIDEpICUgJnRzKQorCWVuZGlmCisJbGV0IHM6ZXhwYW5kZWR0YWIgPSBzdWJzdGl0dXRlKHM6ZXhwYW5kZWR0YWIsICdcdCcsIHJlcGVhdCgnICcsIHM6aSksICcnKQorCWxldCBzOmlkeCA9IHN0cmlkeChzOmV4cGFuZGVkdGFiLCAiXHQiKQogICAgICAgZW5kd2hpbGUKIAogICAgICAgIiBPdXRwdXQgdGhlIHRleHQgd2l0aCB0aGUgc2FtZSBzeW5JRCwgd2l0aCBjbGFzcyBzZXQgdG8ge3M6aWRfbmFtZX0KQEAgLTQxNSw4ICs3MzMsMjIgQEAKICIgRmluaXNoIHdpdGggdGhlIGxhc3QgbGluZQogZXhlIHM6bmV3d2luIC4gIndpbmNtZCB3IgogCitpZiBleGlzdHMoInM6aHRtbF9keW5hbWljX2ZvbGRzIikKKyAgIiBmaW5pc2ggb2ZmIGFueSBvcGVuIGZvbGRzCisgIHdoaWxlICFlbXB0eShzOmZvbGRzdGFjaykKKyAgICBleGUgIm5vcm1hbCEgYTwvc3Bhbj48L3NwYW4+IgorICAgIGNhbGwgcmVtb3ZlKHM6Zm9sZHN0YWNrLCAwKQorICBlbmR3aGlsZQorCisgICIgYWRkIGZvbGQgY29sdW1uIHRvIHRoZSBzdHlsZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlCisgIGxldCBzOmlkID0gaGxJRCgnRm9sZENvbHVtbicpCisgIGlmIHN0cmlkeChzOmlkbGlzdCwgIiwiIC4gczppZCAuICIsIikgPT0gLTEKKyAgICBsZXQgczppZGxpc3QgPSBzOmlkbGlzdCAuIHM6aWQgLiAiLCIKKyAgZW5kaWYKK2VuZGlmCisKICIgQ2xvc2Ugb2ZmIHRoZSBmb250IHRhZyB0aGF0IGVuY2Fwc3VsYXRlcyB0aGUgd2hvbGUgPGJvZHk+Ci1pZiAhZXhpc3RzKCJodG1sX3VzZV9jc3MiKQoraWYgIWV4aXN0cygiczpodG1sX3VzZV9jc3MiKQogICBleGUgIm5vcm1hbCEgYTwvZm9udD5cZSIKIGVuZGlmCiAKQEAgLTQyOCw3ICs3NjAsNyBAQAogCiAKICIgTm93LCB3aGVuIHdlIGZpbmFsbHkga25vdyB3aGljaCwgd2UgZGVmaW5lIHRoZSBjb2xvcnMgYW5kIHN0eWxlcwotaWYgZXhpc3RzKCJodG1sX3VzZV9jc3MiKQoraWYgZXhpc3RzKCJzOmh0bWxfdXNlX2NzcyIpCiAgIDE7LzxzdHlsZSB0eXBlPSJ0ZXh0LysxCiBlbmRpZgogCkBAIC00NDUsNyArNzc3LDcgQEAKICIgTm9ybWFsL2dsb2JhbCBhdHRyaWJ1dGVzCiAiIEZvciBOZXRzY2FwZSA0LCBzZXQgPGJvZHk+IGF0dHJpYnV0ZXMgdG9vLCB0aG91Z2gsIHN0cmljdGx5IHNwZWFraW5nLCBpdCdzCiAiIGluY29ycmVjdC4KLWlmIGV4aXN0cygiaHRtbF91c2VfY3NzIikKK2lmIGV4aXN0cygiczpodG1sX3VzZV9jc3MiKQogICBpZiBleGlzdHMoImh0bWxfbm9fcHJlIikKICAgICBleGVjdXRlICJub3JtYWwhIEFcbmJvZHkgeyBjb2xvcjogIiAuIHM6ZmdjIC4gIjsgYmFja2dyb3VuZC1jb2xvcjogIiAuIHM6YmdjIC4gIjsgZm9udC1mYW1pbHk6ICIuIHM6aHRtbGZvbnQgLiI7IH1cZSIKICAgZWxzZQpAQCAtNDU1LDEyICs3ODcsMTIgQEAKICAgICBleGVjdXRlICJub3JtYWwhIF5jd2JvZHlcZSIKICAgZW5kaWYKIGVsc2UKLSAgICBleGVjdXRlICclczo8Ym9keT46PGJvZHkgYmdjb2xvcj0iJyAuIHM6YmdjIC4gJyIgdGV4dD0iJyAuIHM6ZmdjIC4gJyI+PGZvbnQgZmFjZT0iJy4gczpodG1sZm9udCAuJyI+JworICBleGVjdXRlICclczo8Ym9keT46PGJvZHkgYmdjb2xvcj0iJyAuIHM6YmdjIC4gJyIgdGV4dD0iJyAuIHM6ZmdjIC4gJyI+PGZvbnQgZmFjZT0iJy4gczpodG1sZm9udCAuJyI+JwogZW5kaWYKIAogIiBMaW5lIG51bWJlcmluZyBhdHRyaWJ1dGVzCiBpZiBzOm51bWJsaW5lcwotICBpZiBleGlzdHMoImh0bWxfdXNlX2NzcyIpCisgIGlmIGV4aXN0cygiczpodG1sX3VzZV9jc3MiKQogICAgIGV4ZWN1dGUgIm5vcm1hbCEgQVxuLmxuciB7ICIgLiBzOkNTUzEoaGxJRCgiTGluZU5yIikpIC4gIn1cZSIKICAgZWxzZQogICAgIGV4ZWN1dGUgJyVzK148c3BhbiBjbGFzcz0ibG5yIj5cKFtePF0qXCk8L3NwYW4+KycgLiBzOkh0bWxPcGVuaW5nKGhsSUQoIkxpbmVOciIpKSAuICdcMScgLiBzOkh0bWxDbG9zaW5nKGhsSUQoIkxpbmVOciIpKSAuICcrZycKQEAgLTQ3OSwxNCArODExLDE0IEBACiAgICIgSWYgdGhlIGNsYXNzIGhhcyBzb21lIGF0dHJpYnV0ZXMsIGV4cG9ydCB0aGUgc3R5bGUsIG90aGVyd2lzZSBERUxFVEUgYWxsCiAgICIgaXRzIG9jY3VyZW5jZXMgdG8gbWFrZSB0aGUgSFRNTCBzaG9ydGVyCiAgIGlmIHM6YXR0ciAhPSAiIgotICAgIGlmIGV4aXN0cygiaHRtbF91c2VfY3NzIikKKyAgICBpZiBleGlzdHMoInM6aHRtbF91c2VfY3NzIikKICAgICAgIGV4ZWN1dGUgIm5vcm1hbCEgQVxuLiIgLiBzOmlkX25hbWUgLiAiIHsgIiAuIHM6YXR0ciAuICJ9IgogICAgIGVsc2UKICAgICAgIGV4ZWN1dGUgJyVzKzxzcGFuIGNsYXNzPSInIC4gczppZF9uYW1lIC4gJyI+XChbXjxdKlwpPC9zcGFuPisnIC4gczpIdG1sT3BlbmluZyhzOmlkKSAuICdcMScgLiBzOkh0bWxDbG9zaW5nKHM6aWQpIC4gJytnJwogICAgIGVuZGlmCiAgIGVsc2UKICAgICBleGVjdXRlICclcys8c3BhbiBjbGFzcz0iJyAuIHM6aWRfbmFtZSAuICciPlwoW148XSpcKTwvc3Bhbj4rXDErZ2UnCi0gICAgaWYgZXhpc3RzKCJodG1sX3VzZV9jc3MiKQorICAgIGlmIGV4aXN0cygiczpodG1sX3VzZV9jc3MiKQogICAgICAgMTsvPHN0eWxlIHR5cGU9InRleHQvKzEKICAgICBlbmRpZgogICBlbmRpZgpAQCAtNTMxLDE2ICs4NjMsMjggQEAKICIgU2F2ZSBhIGxpdHRsZSBiaXQgb2YgbWVtb3J5ICh3b3J0aCBkb2luZz8pCiB1bmxldCBzOmh0bWxmb250CiB1bmxldCBzOm9sZF9ldCBzOm9sZF9wYXN0ZSBzOm9sZF9pY29uIHM6b2xkX3JlcG9ydCBzOm9sZF90aXRsZSBzOm9sZF9zZWFyY2gKLXVubGV0IHM6d2hhdHRlcm0gczppZGxpc3QgczpsbnVtIHM6ZW5kIHM6ZmdjIHM6YmdjIHM6b2xkX21hZ2ljCit1bmxldCBzOndoYXR0ZXJtIHM6aWRsaXN0IHM6bG51bSBzOmVuZCBzOm1hcmdpbiBzOmZnYyBzOmJnYyBzOm9sZF9tYWdpYwogdW5sZXQhIHM6Y29sIHM6aWQgczphdHRyIHM6bGVuIHM6bGluZSBzOm5ldyBzOmV4cGFuZGVkdGFiIHM6bnVtYmxpbmVzCi11bmxldCBzOm9yZ3dpbiBzOm5ld3dpbiBzOm9yZ2J1Zm5yCit1bmxldCEgczpvcmd3aW4gczpuZXd3aW4gczpvcmdidWZuciBzOmlkeCBzOmkgczpvZmZzZXQKIGlmICF2OnByb2ZpbGluZwogICBkZWxmdW5jIHM6SHRtbENvbG9yCiAgIGRlbGZ1bmMgczpIdG1sRm9ybWF0CiAgIGRlbGZ1bmMgczpDU1MxCi0gIGlmICFleGlzdHMoImh0bWxfdXNlX2NzcyIpCisgIGlmICFleGlzdHMoInM6aHRtbF91c2VfY3NzIikKICAgICBkZWxmdW5jIHM6SHRtbE9wZW5pbmcKICAgICBkZWxmdW5jIHM6SHRtbENsb3NpbmcKICAgZW5kaWYKIGVuZGlmCi1zaWxlbnQhIHVubGV0IHM6ZGlmZmF0dHIgczpkaWZmZmlsbGNoYXIgczpmb2xkZmlsbGNoYXIgczpIdG1sU3BhY2UgczpMZWFkaW5nU3BhY2UgczpIdG1sRW5kbGluZQorc2lsZW50ISB1bmxldCBzOmRpZmZhdHRyIHM6ZGlmZmZpbGxjaGFyIHM6Zm9sZGZpbGxjaGFyIHM6SHRtbFNwYWNlIHM6TGVhZGluZ1NwYWNlIHM6SHRtbEVuZGxpbmUgczpmaXJzdGZvbGQgczpmb2xkY29sdW1uCit1bmxldCBzOmZvbGRzdGFjayBzOmFsbGZvbGRzIHM6Zm9sZElkIHM6bnVtY29sCisKK2lmIGV4aXN0cygiczpodG1sX2R5bmFtaWNfZm9sZHMiKQorICBkZWxmdW5jIHM6Rm9sZENvbXBhcmUKK2VuZGlmCisKK3NpbGVudCEgdW5sZXQgczpodG1sX2R5bmFtaWNfZm9sZHMgczpodG1sX2hvdmVyX3VuZm9sZCBzOmh0bWxfdXNlX2NzcworCitsZXQgJmNwbyA9IHM6Y3BvX3NhdgordW5sZXQgczpjcG9fc2F2CisKKyIgdmltOiBub2V0IHN3PTIgc3RzPTIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2FkYS52aW0gYi9ydW50aW1lL3N5bnRheC9hZGEudmltCmluZGV4IDhkNzZmYjguLjRmMDRiZDAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2FkYS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvYWRhLnZpbQpAQCAtMSwxNiArMSwxNiBAQAogIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgIERlc2NyaXB0aW9uOiBWaW0gQWRhIHN5bnRheCBmaWxlCiAiICAgICBMYW5ndWFnZTogQWRhICgyMDA1KQotIgkgICAkSWQkCisiCSAgICRJZDogYWRhLnZpbSA4ODcgMjAwOC0wNy0wOCAxNDoyOTowMVoga3Jpc2NoaWsgJAogIiAgICBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNiBNYXJ0aW4gS3Jpc2NoaWsKICIgICBNYWludGFpbmVyOiBNYXJ0aW4gS3Jpc2NoaWsKICIJCURhdmlkIEEuIFdoZWVsZXIgPGR3aGVlbGVyQGR3aGVlbGVyLmNvbT4KICIJCVNpbW9uIEJyYWRsZXkgPHNpbW9uLmJyYWRsZXlAcGl0ZWNobm9sb2d5LmNvbT4KICIgQ29udHJpYnV0b3JzOiBQcmViZW4gUmFuZGhvbC4KLSIgICAgICAkQXV0aG9yJAotIgkgJERhdGUkCisiICAgICAgJEF1dGhvcjoga3Jpc2NoaWsgJAorIgkgJERhdGU6IDIwMDgtMDctMDggMTY6Mjk6MDEgKzAyMDAgKERpLCAwOCBKdWwgMjAwOCkgJAogIiAgICAgIFZlcnNpb246IDQuNgotIiAgICAkUmV2aXNpb24kCisiICAgICRSZXZpc2lvbjogODg3ICQKICIgICAgICRIZWFkVVJMOiBodHRwczovL2dudWFkYS5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9zeW50YXgvYWRhLnZpbSAkCiAiCQlodHRwOi8vd3d3LmR3aGVlbGVyLmNvbS92aW0KICIgICAgICBIaXN0b3J5OiAyNC4wNS4yMDA2IE1LIFVuaWZpZWQgSGVhZGVycwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvYW50LnZpbSBiL3J1bnRpbWUvc3ludGF4L2FudC52aW0KaW5kZXggNjg0NmVjNi4uNjY5NmY5NiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvYW50LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9hbnQudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KICIgTGFzdCBDaGFuZ2U6CVR1ZSBBcHIgMjcgMTM6MDU6NTkgQ0VTVCAyMDA0CiAiIEZpbGVuYW1lczoJYnVpbGQueG1sCi0iICRJZCQKKyIgJElkOiBhbnQudmltLHYgMS4xIDIwMDQvMDYvMTMgMTg6MTM6MTggdmltYm9zcyBFeHAgJAogCiAiIFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2FzcHZicy52aW0gYi9ydW50aW1lL3N5bnRheC9hc3B2YnMudmltCmluZGV4IGU3M2Q2NzQuLjA3YzEyOWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2FzcHZicy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvYXNwdmJzLnZpbQpAQCAtNCw3ICs0LDcgQEAKICIgVVJMOgkJaHR0cDovL3RyaXRhcmdldC5jb20vcHViL3ZpbS9zeW50YXgvYXNwdmJzLnZpbSAoYnJva2VuKQogIiBMYXN0IENoYW5nZToJMjAwNiBKdW4gMTkKICIgCQlieSBEYW4gQ2FzZXkKLSIgVmVyc2lvbjoJJFJldmlzaW9uJAorIiBWZXJzaW9uOgkkUmV2aXNpb246IDEuMyAkCiAiIFRoYW5rcyB0byBKYXktSmF5IDx2aW1AamF5LWpheS5uZXQ+IGZvciBhIHN5bnRheCBzeW5jIGhhY2ssIGh1bmdhcmlhbgogIiBub3RhdGlvbiwgYW5kIGV4dHJhIGhpZ2hsaWdodGluZy4KICIgVGhhbmtzIHRvIHBhdHJpY2sgZGVobmUgPHBhdHJpY2tAc3RlaWRsZS5uZXQ+IGZvciB0aGUgZm9sZGluZyBjb2RlLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvYmluZHpvbmUudmltIGIvcnVudGltZS9zeW50YXgvYmluZHpvbmUudmltCmluZGV4IDlmYWNkYmUuLjhkYjgzZjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2JpbmR6b25lLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9iaW5kem9uZS52aW0KQEAgLTcsNyArNyw3IEBACiAiIEJhc2VkIG9uIGFuIGVhcmxpZXIgdmVyc2lvbiBieSDQktGP0YfQtdGB0LvQsNCyINCT0L7RgNCx0LDQvdC10LIgKFNsYXZhIEdvcmJhbmV2KSwgd2l0aAogIiBoZWF2eSBtb2RpZmljYXRpb25zLgogIiAKLSIgJElkJAorIiAkSWQ6IGJpbmR6b25lLnZpbSx2IDEuMiAyMDA2LzA0LzIwIDIyOjA2OjIxIHZpbWJvc3MgRXhwICQKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2JzdC52aW0gYi9ydW50aW1lL3N5bnRheC9ic3QudmltCmluZGV4IDhmZGNkNDMuLmU3ODM2ZDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2JzdC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvYnN0LnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6ICAgICBCaWJUZVggQmlibGlvZ3JhcGh5IFN0eWxlCiAiIE1haW50YWluZXI6ICAgVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgogIiBGaWxlbmFtZXM6ICAgICouYnN0Ci0iICRJZCQKKyIgJElkOiBic3QudmltLHYgMS4yIDIwMDcvMDUvMDUgMTg6MjQ6NDIgdmltYm9zcyBFeHAgJAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvYnpyLnZpbSBiL3J1bnRpbWUvc3ludGF4L2J6ci52aW0KaW5kZXggMjk2OGY3OS4uODJhYjFkOCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvYnpyLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9ienIudmltCkBAIC0yLDkgKzIsMTQgQEAKICIgTGFuZ3VhZ2U6ICAgICBCYXphYXIgKGJ6cikgY29tbWl0IGZpbGUKICIgTWFpbnRhaW5lcjogICBEbWl0cnkgVmFzaWxpZXYgPGRpbWEgYXQgaGxhYnMgZG90IHNwYiBkb3QgcnU+CiAiIFVSTDogICAgICAgICAgaHR0cDovL3d3dy5obGFicy5zcGIucnUvdmltL2J6ci52aW0KLSIgUmV2aXNpb246ICAgICAkSWQkCisiIExhc3QgQ2hhbmdlOiAgMjAwOS0wMS0yNwogIiBGaWxlbmFtZXM6ICAgIGJ6cl9sb2cuKgotIiBWZXJzaW9uOiAgICAgIDEuMQorIiBWZXJzaW9uOiAgICAgIDEuMi4xCisiCisiIFRoYW5rczoKKyIKKyIgICAgR2lvZWxlIEJhcmFidWNjaQorIiAgICAgICBmb3IgaWRlYSBvZiBkaWZmIGhpZ2hsaWdodGluZwogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcy4KICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQuCkBAIC0xNCwxMyArMTksMjEgQEAKICAgZmluaXNoCiBlbmRpZgogCi1zeW4gcmVnaW9uIGJ6clJlZ2lvbiAgIHN0YXJ0PSJeLVx7MTR9IFRoaXMgbGluZSBhbmQgdGhlIGZvbGxvd2luZyB3aWxsIGJlIGlnbm9yZWQgLVx7MTR9JCIgZW5kPSJcJSQiIGNvbnRhaW5zPUFMTCBjb250YWlucz1ATm9TcGVsbAoraWYgZXhpc3RzKCJienJfaGlnaGxpZ2h0X2RpZmYiKQorICBzeW4gaW5jbHVkZSBARGlmZiBzeW50YXgvZGlmZi52aW0KK2VuZGlmCisKIHN5biBtYXRjaCBienJSZW1vdmVkICAgIl5yZW1vdmVkOiQiIGNvbnRhaW5lZAogc3luIG1hdGNoIGJ6ckFkZGVkICAgICAiXmFkZGVkOiQiIGNvbnRhaW5lZAogc3luIG1hdGNoIGJ6clJlbmFtZWQgICAiXnJlbmFtZWQ6JCIgY29udGFpbmVkCiBzeW4gbWF0Y2ggYnpyTW9kaWZpZWQgICJebW9kaWZpZWQ6JCIgY29udGFpbmVkCiBzeW4gbWF0Y2ggYnpyVW5jaGFuZ2VkICJedW5jaGFuZ2VkOiQiIGNvbnRhaW5lZAogc3luIG1hdGNoIGJ6clVua25vd24gICAiXnVua25vd246JCIgY29udGFpbmVkCitzeW4gY2x1c3RlciBTdGF0dXNlcyBjb250YWlucz1ienJSZW1vdmVkLGJ6ckFkZGVkLGJ6clJlbmFtZWQsYnpyTW9kaWZpZWQsYnpyVW5jaGFuZ2VkLGJ6clVua25vd24KK2lmIGV4aXN0cygiYnpyX2hpZ2hsaWdodF9kaWZmIikKKyAgc3luIGNsdXN0ZXIgU3RhdHVzZXMgYWRkPUBEaWZmCitlbmRpZgorc3luIHJlZ2lvbiBienJSZWdpb24gICBzdGFydD0iXi1cezE0fSBUaGlzIGxpbmUgYW5kIHRoZSBmb2xsb3dpbmcgd2lsbCBiZSBpZ25vcmVkIC1cezE0fSQiIGVuZD0iXCUkIiBjb250YWlucz1ATm9TcGVsbCxAU3RhdHVzZXMKIAogIiBTeW5jaHJvbml6YXRpb24uCiBzeW4gc3luYyBjbGVhcgpAQCAtMzcsNyArNTAsNiBAQAogICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgogICBlbmRpZgogCi0gIEhpTGluayBienJSZWdpb24gICAgIENvbW1lbnQKICAgSGlMaW5rIGJ6clJlbW92ZWQgICAgQ29uc3RhbnQKICAgSGlMaW5rIGJ6ckFkZGVkICAgICAgSWRlbnRpZmllcgogICBIaUxpbmsgYnpyTW9kaWZpZWQgICBTcGVjaWFsCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jLnZpbSBiL3J1bnRpbWUvc3ludGF4L2MudmltCmluZGV4IDA3ZGYzNmIuLjk0NTYyMTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2MudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2MudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CUMKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDggTWFyIDE5CisiIExhc3QgQ2hhbmdlOgkyMDA5IE5vdiAxNwogCiAiIFF1aXQgd2hlbiBhIChjdXN0b20pIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKQEAgLTE2LDggKzE2LDEzIEBACiAKIHN5biBrZXl3b3JkCWNUb2RvCQljb250YWluZWQgVE9ETyBGSVhNRSBYWFgKIAorIiBJdCdzIGVhc3kgdG8gYWNjaWRlbnRhbGx5IGFkZCBhIHNwYWNlIGFmdGVyIGEgYmFja3NsYXNoIHRoYXQgd2FzIGludGVuZGVkCisiIGZvciBsaW5lIGNvbnRpbnVhdGlvbi4gIFNvbWUgY29tcGlsZXJzIGFsbG93IGl0LCB3aGljaCBtYWtlcyBpdAorIiB1bnByZWRpY2F0YWJsZSBhbmQgc2hvdWxkIGJlIGF2b2lkZWQuCitzeW4gbWF0Y2gJY0JhZENvbnRpbnVhdGlvbiBjb250YWluZWQgIlxcXHNcKyQiCisKICIgY0NvbW1lbnRHcm91cCBhbGxvd3MgYWRkaW5nIG1hdGNoZXMgZm9yIHNwZWNpYWwgdGhpbmdzIGluIGNvbW1lbnRzCi1zeW4gY2x1c3RlcgljQ29tbWVudEdyb3VwCWNvbnRhaW5zPWNUb2RvCitzeW4gY2x1c3RlcgljQ29tbWVudEdyb3VwCWNvbnRhaW5zPWNUb2RvLGNCYWRDb250aW51YXRpb24KIAogIiBTdHJpbmcgYW5kIENoYXJhY3RlciBjb25zdGFudHMKICIgSGlnaGxpZ2h0IHNwZWNpYWwgY2hhcmFjdGVycyAodGhvc2Ugd2hpY2ggaGF2ZSBhIGJhY2tzbGFzaCkgZGlmZmVyZW50bHkKQEAgLTI2NSw3ICsyNzAsNyBAQAogZW5kaWYKIAogIiBBY2NlcHQgJTogZm9yICMgKEM5OSkKLXN5biByZWdpb24JY1ByZUNvbmRpdAlzdGFydD0iXlxzKlwoJTpcfCNcKVxzKlwoaWZcfGlmZGVmXHxpZm5kZWZcfGVsaWZcKVw+IiBza2lwPSJcXCQiIGVuZD0iJCIgZW5kPSIvLyJtZT1zLTEgY29udGFpbnM9Y0NvbW1lbnQsY0NwcFN0cmluZyxjQ2hhcmFjdGVyLGNDcHBQYXJlbixjUGFyZW5FcnJvcixjTnVtYmVycyxjQ29tbWVudEVycm9yLGNTcGFjZUVycm9yCitzeW4gcmVnaW9uCWNQcmVDb25kaXQJc3RhcnQ9Il5ccypcKCU6XHwjXClccypcKGlmXHxpZmRlZlx8aWZuZGVmXHxlbGlmXClcPiIgc2tpcD0iXFwkIiBlbmQ9IiQiICBjb250YWlucz1jQ29tbWVudCxjQ29tbWVudEwsY0NwcFN0cmluZyxjQ2hhcmFjdGVyLGNDcHBQYXJlbixjUGFyZW5FcnJvcixjTnVtYmVycyxjQ29tbWVudEVycm9yLGNTcGFjZUVycm9yCiBzeW4gbWF0Y2gJY1ByZUNvbmRpdAlkaXNwbGF5ICJeXHMqXCglOlx8I1wpXHMqXChlbHNlXHxlbmRpZlwpXD4iCiBpZiAhZXhpc3RzKCJjX25vX2lmMCIpCiAgIGlmICFleGlzdHMoImNfbm9faWYwX2ZvbGQiKQpAQCAtMjgxLDcgKzI4Niw3IEBACiBzeW4gbWF0Y2gJY0luY2x1ZGUJZGlzcGxheSAiXlxzKlwoJTpcfCNcKVxzKmluY2x1ZGVcPlxzKlsiPF0iIGNvbnRhaW5zPWNJbmNsdWRlZAogInN5biBtYXRjaCBjTGluZVNraXAJIlxcJCIKIHN5biBjbHVzdGVyCWNQcmVQcm9jR3JvdXAJY29udGFpbnM9Y1ByZUNvbmRpdCxjSW5jbHVkZWQsY0luY2x1ZGUsY0RlZmluZSxjRXJySW5QYXJlbixjRXJySW5CcmFja2V0LGNVc2VyTGFiZWwsY1NwZWNpYWwsY09jdGFsWmVybyxjQ3BwT3V0LGNDcHBPdXQyLGNDcHBTa2lwLGNGb3JtYXQsY051bWJlcixjRmxvYXQsY09jdGFsLGNPY3RhbEVycm9yLGNOdW1iZXJzQ29tLGNTdHJpbmcsY0NvbW1lbnRTa2lwLGNDb21tZW50U3RyaW5nLGNDb21tZW50MlN0cmluZyxAY0NvbW1lbnRHcm91cCxjQ29tbWVudFN0YXJ0RXJyb3IsY1BhcmVuLGNCcmFja2V0LGNNdWx0aQotc3luIHJlZ2lvbgljRGVmaW5lCQlzdGFydD0iXlxzKlwoJTpcfCNcKVxzKlwoZGVmaW5lXHx1bmRlZlwpXD4iIHNraXA9IlxcJCIgZW5kPSIkIiBlbmQ9Ii8vIm1lPXMtMSBrZWVwZW5kIGNvbnRhaW5zPUFMTEJVVCxAY1ByZVByb2NHcm91cCxAU3BlbGwKK3N5biByZWdpb24JY0RlZmluZQkJc3RhcnQ9Il5ccypcKCU6XHwjXClccypcKGRlZmluZVx8dW5kZWZcKVw+IiBza2lwPSJcXCQiIGVuZD0iJCIga2VlcGVuZCBjb250YWlucz1BTExCVVQsQGNQcmVQcm9jR3JvdXAsQFNwZWxsCiBzeW4gcmVnaW9uCWNQcmVQcm9jCXN0YXJ0PSJeXHMqXCglOlx8I1wpXHMqXChwcmFnbWFcPlx8bGluZVw+XHx3YXJuaW5nXD5cfHdhcm5cPlx8ZXJyb3JcPlwpIiBza2lwPSJcXCQiIGVuZD0iJCIga2VlcGVuZCBjb250YWlucz1BTExCVVQsQGNQcmVQcm9jR3JvdXAsQFNwZWxsCiAKICIgSGlnaGxpZ2h0IFVzZXIgTGFiZWxzCkBAIC0zNTksNiArMzY0LDcgQEAKIGhpIGRlZiBsaW5rIGNDb21tZW50CQlDb21tZW50CiBoaSBkZWYgbGluayBjU3BlY2lhbAkJU3BlY2lhbENoYXIKIGhpIGRlZiBsaW5rIGNUb2RvCQlUb2RvCitoaSBkZWYgbGluayBjQmFkQ29udGludWF0aW9uCUVycm9yCiBoaSBkZWYgbGluayBjQ3BwU2tpcAkJY0NwcE91dAogaGkgZGVmIGxpbmsgY0NwcE91dDIJCWNDcHBPdXQKIGhpIGRlZiBsaW5rIGNDcHBPdXQJCUNvbW1lbnQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2NhdGFsb2cudmltIGIvcnVudGltZS9zeW50YXgvY2F0YWxvZy52aW0KaW5kZXggNGRiZmYwMC4uMGExZDUxMSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvY2F0YWxvZy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvY2F0YWxvZy52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgogIiBMYXN0IENoYW5nZToJRnIsIDA0IE5vdiAyMDA1IDEyOjQ2OjQ1IENFVAogIiBGaWxlbmFtZXM6CS9ldGMvc2dtbC5jYXRhbG9nCi0iICRJZCQKKyIgJElkOiBjYXRhbG9nLnZpbSx2IDEuMiAyMDA1LzExLzIzIDIxOjExOjEwIHZpbWJvc3MgRXhwICQKIAogIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jbC52aW0gYi9ydW50aW1lL3N5bnRheC9jbC52aW0KaW5kZXggNzUwY2ZkZS4uYjI3OGVjYSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvY2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2NsLnZpbQpAQCAtMyw3ICszLDcgQEAKICIgRmlsZW5hbWUgZXh0ZW5zaW9uczogKi5lbnQsICouZW5pCiAiIE1haW50YWluZXI6CVBoaWxpcCBVcmVuIDxwaGlsdVNQQVhAaWVlZS5vcmc+IC0gUmVtb3ZlIFNQQVggc3BhbSBibG9jawogIiBMYXN0IHVwZGF0ZToJV2VkIEFwciAxMiAwODo0NzoxOCBFU1QgMjAwNgotIiAkSWQkCisiICRJZDogY2wudmltLHYgMS4zIDIwMDYvMDQvMTIgMjE6NDM6MjggdmltYm9zcyBFeHAgJAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvY21ha2UudmltIGIvcnVudGltZS9zeW50YXgvY21ha2UudmltCmluZGV4IDRkZDVjM2EuLmFiOTYzMjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2NtYWtlLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9jbWFrZS52aW0KQEAgLTEsMTAgKzEsMTAgQEAKICIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICIKICIgICBQcm9ncmFtOiAgIENNYWtlIC0gQ3Jvc3MtUGxhdGZvcm0gTWFrZWZpbGUgR2VuZXJhdG9yCi0iICAgTW9kdWxlOiAgICAkUkNTZmlsZSQKKyIgICBNb2R1bGU6ICAgICRSQ1NmaWxlOiBjbWFrZS1zeW50YXgudmltLHYgJAogIiAgIExhbmd1YWdlOiAgVklNCi0iICAgRGF0ZTogICAgICAkRGF0ZSQKLSIgICBWZXJzaW9uOiAgICRSZXZpc2lvbiQKKyIgICBEYXRlOiAgICAgICREYXRlOiAyMDA2LzA5LzIzIDIxOjA5OjA4ICQKKyIgICBWZXJzaW9uOiAgICRSZXZpc2lvbjogMS42ICQKICIKICIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIApAQCAtMTIsOCArMTIsOCBAQAogIiBMYW5ndWFnZTogICAgIENNYWtlCiAiIEF1dGhvcjogICAgICAgQW5keSBDZWRpbG5payA8YW5keS5jZWRpbG5pa0BraXR3YXJlLmNvbT4KICIgTWFpbnRhaW5lcjogICBBbmR5IENlZGlsbmlrIDxhbmR5LmNlZGlsbmlrQGtpdHdhcmUuY29tPgotIiBMYXN0IENoYW5nZTogICREYXRlJAotIiBWZXJzaW9uOiAgICAgICRSZXZpc2lvbiQKKyIgTGFzdCBDaGFuZ2U6ICAkRGF0ZTogMjAwNi8wOS8yMyAyMTowOTowOCAkCisiIFZlcnNpb246ICAgICAgJFJldmlzaW9uOiAxLjYgJAogIgogIiBMaWNlbmNlOiAgICAgIFRoZSBDTWFrZSBsaWNlbnNlIGFwcGxpZXMgdG8gdGhpcyBmaWxlLiBTZWUKICIgICAgICAgICAgICAgICBodHRwOi8vd3d3LmNtYWtlLm9yZy9IVE1ML0NvcHlyaWdodC5odG1sCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jb2JvbC52aW0gYi9ydW50aW1lL3N5bnRheC9jb2JvbC52aW0KaW5kZXggZGNlMmQzNi4uNTMxNWU3NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvY29ib2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2NvYm9sLnZpbQpAQCAtNCw3ICs0LDcgQEAKICIgICAgIChmb3JtZXJseSBEYXZ5ZCBPbmRyZWprbyA8dm9uZHJhY29AY29sdW1idXMucnIuY29tPikKICIgICAgIChmb3JtZXJseSBTaXRhcmFtIENoYW1hcnR5IDxzaXRhcmFtQGRpYWMuY29tPiBhbmQKICIJCSAgICBKYW1lcyBNaXRjaGVsbCA8amFtZXNfbWl0Y2hlbGxAYWNtLm9yZz4pCi0iICRJZCQKKyIgJElkOiBjb2JvbC52aW0sdiAxLjIgMjAwNy8wNS8wNSAxODoyMzo0MyB2aW1ib3NzIEV4cCAkCiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jb25maWcudmltIGIvcnVudGltZS9zeW50YXgvY29uZmlnLnZpbQppbmRleCBjMDI3OTlkLi4yMGNhMTljIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9jb25maWcudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2NvbmZpZy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJCWNvbmZpZ3VyZS5pbiBzY3JpcHQ6IE00IHdpdGggc2gKICIgTWFpbnRhaW5lcjoJQ2hyaXN0aWFuIEhhbW1lc3IgPGNoQGxhdGhzcGVsbC53ZXN0ZW5kLmNvbT4KLSIgTGFzdCBDaGFuZ2U6CTIwMDEgTWF5IDA5CisiIExhc3QgQ2hhbmdlOgkyMDA4IFNlcCAwMwogCiAiIFdlbGwsIEkgYWN0dWFsbHkgZXZlbiBkbyBub3Qga25vdyBtdWNoIGFib3V0IG00LiBUaGlzIGV4cGxhaW5zIHdoeSB0aGVyZQogIiBpcyBwcm9iYWJseSB2ZXJ5IG11Y2ggbWlzc2luZyBoZXJlLCB5ZXQgIQpAQCAtMjYsNyArMjYsNyBAQAogc3luIGtleXdvcmQgY29uZmlna2V5d29yZCAgIGlmIHRoZW4gZWxzZSBmaSB0ZXN0IGZvciBpbiBkbyBkb25lCiBzeW4ga2V5d29yZCBjb25maWdzcGVjaWFsICAgY2F0IHJtIGV2YWwKIHN5biByZWdpb24gIGNvbmZpZ3N0cmluZyAgICBzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrCi1zeW4gcmVnaW9uICBjb25maWdzdHJpbmcgICAgc3RhcnQ9K2ArIHNraXA9K1xcJysgZW5kPSsnKworc3luIHJlZ2lvbiAgY29uZmlnc3RyaW5nICAgIHN0YXJ0PSsnKyBza2lwPStcXCcrIGVuZD0rJysKIHN5biByZWdpb24gIGNvbmZpZ3N0cmluZyAgICBzdGFydD0rYCsgc2tpcD0rXFwnKyBlbmQ9K2ArCiAKICIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2NzLnZpbSBiL3J1bnRpbWUvc3ludGF4L2NzLnZpbQppbmRleCA4YjYzZTQ4Li4yYmE2MjlmIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9jcy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvY3MudmltCkBAIC0yLDkgKzIsOSBAQAogIiBMYW5ndWFnZToJQyMKICIgTWFpbnRhaW5lcjoJQW5kdWluIFdpdGhlcnMgPGF3aXRoZXJzQGFuZHVpbi5jb20+CiAiIEZvcm1lciBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CVN1biBBcHIgMzAgMTk6MjY6MTggUERUIDIwMDYKKyIgTGFzdCBDaGFuZ2U6CUZyaSBBdWcgMTQgMTM6NTY6MzcgUERUIDIwMDkKICIgRmlsZW5hbWVzOgkqLmNzCi0iICRJZCQKKyIgJElkOiBjcy52aW0sdiAxLjQgMjAwNi8wNS8wMyAyMToyMDowMiB2aW1ib3NzIEV4cCAkCiAiCiAiIFJFRkVSRU5DRVM6CiAiIFsxXSBFQ01BIFRDMzk6IEMjIExhbmd1YWdlIFNwZWNpZmljYXRpb24gKFdEMTNPY3QwMS5kb2MpCkBAIC03OCw4ICs3OCw4IEBACiBzeW4gY2x1c3RlciB4bWxUYWdIb29rIGFkZD1jc1htbFRhZwogCiBzeW4gbWF0Y2ggICBjc1htbENvbW1lbnRMZWFkZXIJK1wvXC9cLysgICAgY29udGFpbmVkCi1zeW4gbWF0Y2ggICBjc1htbENvbW1lbnQJK1wvXC9cLy4qJCsgY29udGFpbnM9Y3NYbWxDb21tZW50TGVhZGVyLEBjc1htbAotc3ludGF4IGluY2x1ZGUgQGNzWG1sIDxzZmlsZT46cDpoL3htbC52aW0KK3N5biBtYXRjaCAgIGNzWG1sQ29tbWVudAkrXC9cL1wvLiokKyBjb250YWlucz1jc1htbENvbW1lbnRMZWFkZXIsQGNzWG1sLEBTcGVsbAorc3ludGF4IGluY2x1ZGUgQGNzWG1sIHN5bnRheC94bWwudmltCiBoaSBkZWYgbGluayB4bWxSZWdpb24gQ29tbWVudAogCiAKQEAgLTEwMCw3ICsxMDAsNyBAQAogIiB1bmljb2RlIGNoYXJhY3RlcnMKIHN5biBtYXRjaCAgIGNzVW5pY29kZU51bWJlcgkrXFxcKHVceFx7NH1cfFVceFx7OH1cKSsgY29udGFpbmVkIGNvbnRhaW5zPWNzVW5pY29kZVNwZWNpZmllcgogc3luIG1hdGNoICAgY3NVbmljb2RlU3BlY2lmaWVyCStcXFt1VV0rIGNvbnRhaW5lZAotc3luIHJlZ2lvbiAgY3NWZXJiYXRpbVN0cmluZwlzdGFydD0rQCIrIGVuZD0rIisgZW5kPSskKyBza2lwPSsiIisgY29udGFpbnM9Y3NWZXJiYXRpbVNwZWMsQFNwZWxsCitzeW4gcmVnaW9uICBjc1ZlcmJhdGltU3RyaW5nCXN0YXJ0PStAIisgZW5kPSsiKyBza2lwPSsiIisgY29udGFpbnM9Y3NWZXJiYXRpbVNwZWMsQFNwZWxsCiBzeW4gbWF0Y2ggICBjc1ZlcmJhdGltU3BlYwkrQCIraGU9cysxIGNvbnRhaW5lZAogc3luIHJlZ2lvbiAgY3NTdHJpbmcJCXN0YXJ0PSsiKyAgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPWNzU3BlY2lhbENoYXIsY3NTcGVjaWFsRXJyb3IsY3NVbmljb2RlTnVtYmVyLEBTcGVsbAogc3luIG1hdGNoICAgY3NDaGFyYWN0ZXIJCSInW14nXSonIiBjb250YWlucz1jc1NwZWNpYWxDaGFyLGNzU3BlY2lhbENoYXJFcnJvcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZGViY2hhbmdlbG9nLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RlYmNoYW5nZWxvZy52aW0KaW5kZXggZTc1MWZiYy4uMDQwZDQ4ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZGViY2hhbmdlbG9nLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9kZWJjaGFuZ2Vsb2cudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOiAgRGViaWFuIFZpbSBNYWludGFpbmVycyA8cGtnLXZpbS1tYWludGFpbmVyc0BsaXN0cy5hbGlvdGguZGViaWFuLm9yZz4KICIgRm9ybWVyIE1haW50YWluZXJzOiBHZXJmcmllZCBGdWNocyA8YWxmaWVAaXN0Lm9yZz4KICIgICAgICAgICAgICAgICAgICAgICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotIiBMYXN0IENoYW5nZTogMjAwOC0wMS0xNgorIiBMYXN0IENoYW5nZTogMjAwOSBKdW4gMDUKICIgVVJMOiBodHRwOi8vZ2l0LmRlYmlhbi5vcmcvP3A9cGtnLXZpbS92aW0uZ2l0O2E9YmxvYl9wbGFpbjtmPXJ1bnRpbWUvc3ludGF4L2RlYmNoYW5nZWxvZy52aW07aGI9ZGViaWFuCiAKICIgU3RhbmRhcmQgc3ludGF4IGluaXRpYWxpemF0aW9uCkBAIC0xNyw5ICsxNyw5IEBACiBzeW4gY2FzZSBpZ25vcmUKIAogIiBEZWZpbmUgc29tZSBjb21tb24gZXhwcmVzc2lvbnMgd2UgY2FuIHVzZSBsYXRlciBvbgotc3luIG1hdGNoIGRlYmNoYW5nZWxvZ05hbWUJY29udGFpbmVkICJeW1s6YWxwaGE6XV1bWzphbG51bTpdListXVwrICIKK3N5biBtYXRjaCBkZWJjaGFuZ2Vsb2dOYW1lCWNvbnRhaW5lZCAiXltbOmFsbnVtOl1dW1s6YWxudW06XS4rLV1cKyAiCiBzeW4gbWF0Y2ggZGViY2hhbmdlbG9nVXJnZW5jeQljb250YWluZWQgIjsgdXJnZW5jeT1cKGxvd1x8bWVkaXVtXHxoaWdoXHxjcml0aWNhbFx8ZW1lcmdlbmN5XClcKCBcUy4qXClcPSIKLXN5biBtYXRjaCBkZWJjaGFuZ2Vsb2dUYXJnZXQJY29udGFpbmVkICJcdiAlKCUob2xkKT1zdGFibGV8ZnJvemVufHVuc3RhYmxlfCUodGVzdGluZy18JShvbGQpPXN0YWJsZS0pPXByb3Bvc2VkLXVwZGF0ZXN8ZXhwZXJpbWVudGFsfCUoc2FyZ2V8ZXRjaHxsZW5ueSktJShiYWNrcG9ydHN8dm9sYXRpbGUpfCUodGVzdGluZ3wlKG9sZCk9c3RhYmxlKS1zZWN1cml0eXwlKGRhcHBlcnxmZWlzdHl8Z3V0c3l8aGFyZHl8aW50cmVwaWQpJSgtJShzZWN1cml0eXxwcm9wb3NlZHx1cGRhdGVzfGJhY2twb3J0c3xjb21tZXJjaWFsfHBhcnRuZXIpKT0pKyIKK3N5biBtYXRjaCBkZWJjaGFuZ2Vsb2dUYXJnZXQJY29udGFpbmVkICJcdiAlKGZyb3plbnx1bnN0YWJsZXwlKHRlc3Rpbmd8JShvbGQpPXN0YWJsZSklKC1wcm9wb3NlZC11cGRhdGVzfC1zZWN1cml0eSk9fGV4cGVyaW1lbnRhbHwlKGV0Y2h8bGVubnkpLSUoYmFja3BvcnRzfHZvbGF0aWxlKXwlKGRhcHBlcnxoYXJkeXxpbnRyZXBpZHxqYXVudHl8a2FybWljKSUoLSUoc2VjdXJpdHl8cHJvcG9zZWR8dXBkYXRlc3xiYWNrcG9ydHN8Y29tbWVyY2lhbHxwYXJ0bmVyKSk9KSsiCiBzeW4gbWF0Y2ggZGViY2hhbmdlbG9nVmVyc2lvbgljb250YWluZWQgIiguXHstfSkiCiBzeW4gbWF0Y2ggZGViY2hhbmdlbG9nQ2xvc2VzCWNvbnRhaW5lZCAiY2xvc2VzOlxfcypcKGJ1Z1wpXD0jXD1cX3NcPVxkXCtcKCxcX3MqXChidWdcKVw9I1w9XF9zXD1cZFwrXCkqIgogc3luIG1hdGNoIGRlYmNoYW5nZWxvZ0xQCWNvbnRhaW5lZCAiXGNscDpcc1wrI1xkXCtcKCxccyojXGRcK1wpKiIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltIGIvcnVudGltZS9zeW50YXgvZGViY29udHJvbC52aW0KaW5kZXggZDU2YTM0Mi4uZTg4NmYwMSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZGViY29udHJvbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZGViY29udHJvbC52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6ICBEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgogIiBGb3JtZXIgTWFpbnRhaW5lcnM6IEdlcmZyaWVkIEZ1Y2hzIDxhbGZpZUBpc3Qub3JnPgogIiAgICAgICAgICAgICAgICAgICAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0iIExhc3QgQ2hhbmdlOiAyMDA4LTAyLTIzCisiIExhc3QgQ2hhbmdlOiAyMDA5IEp1bHkgMTQKICIgVVJMOiBodHRwOi8vZ2l0LmRlYmlhbi5vcmcvP3A9cGtnLXZpbS92aW0uZ2l0O2E9YmxvYl9wbGFpbjtmPXJ1bnRpbWUvZnRwbHVnaW4vZGViY29udHJvbC52aW07aGI9ZGViaWFuCiAKICIgQ29tbWVudHMgYXJlIHZlcnkgd2VsY29tZSAtIGJ1dCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgeW91IGFyZSBjb21tZW50aW5nIG9uCkBAIC0yOCwxMCArMjgsMTAgQEAKIHN5biBtYXRjaCBkZWJDb250cm9sU3BhY2UgIiAiCiAKICIgRGVmaW5lIHNvbWUgY29tbW9uIGV4cHJlc3Npb25zIHdlIGNhbiB1c2UgbGF0ZXIgb24KLXN5biBtYXRjaCBkZWJjb250cm9sQXJjaGl0ZWN0dXJlIGNvbnRhaW5lZCAiXChhbGxcfGFueVx8YWxwaGFcfGFtZDY0XHxhcm1cKGVbYmxdXClcPVx8aHBwYVx8aTM4Nlx8aWE2NFx8bTMyclx8bTY4a1x8bWlwc2VsXHxtaXBzXHxwb3dlcnBjXHxwcGM2NFx8czM5MHhcPVx8c2hbMzRdXChlYlwpXD1cfHNoXHxzcGFyYzY0XHxzcGFyY1x8aHVyZC1pMzg2XHxrZnJlZWJzZC1cKGkzODZcfGdudVwpXHxrbmV0YnNkLWkzODZcfG5ldGJzZC1cKGFscGhhXHxpMzg2XClcKSIKK3N5biBtYXRjaCBkZWJjb250cm9sQXJjaGl0ZWN0dXJlIGNvbnRhaW5lZCAiXChhbGxcfGFueVx8YWxwaGFcfGFtZDY0XHxhcm1cKGVbYmxdXClcPVx8YXZyMzJcfGhwcGFcfGkzODZcfGlhNjRcfG0zMnJcfG02OGtcfG1pcHNlbFx8bWlwc1x8cG93ZXJwY1x8cHBjNjRcfHMzOTB4XD1cfHNoWzM0XVwoZWJcKVw9XHxzaFx8c3BhcmM2NFx8c3BhcmNcfGh1cmQtaTM4Nlx8a2ZyZWVic2QtXChpMzg2XHxhbWQ2NFx8Z251XClcfGtuZXRic2QtaTM4Nlx8bmV0YnNkLVwoYWxwaGFcfGkzODZcKVwpIgogc3luIG1hdGNoIGRlYmNvbnRyb2xOYW1lIGNvbnRhaW5lZCAiW2EtejAtOV1bYS16MC05Ky4tXVwrIgogc3luIG1hdGNoIGRlYmNvbnRyb2xQcmlvcml0eSBjb250YWluZWQgIlwoZXh0cmFcfGltcG9ydGFudFx8b3B0aW9uYWxcfHJlcXVpcmVkXHxzdGFuZGFyZFwpIgotc3luIG1hdGNoIGRlYmNvbnRyb2xTZWN0aW9uIGNvbnRhaW5lZCAiXChcKGNvbnRyaWJcfG5vbi1mcmVlXHxub24tVVMvbWFpblx8bm9uLVVTL2NvbnRyaWJcfG5vbi1VUy9ub24tZnJlZVx8cmVzdHJpY3RlZFx8dW5pdmVyc2VcfG11bHRpdmVyc2VcKS9cKVw9XChhZG1pblx8YmFzZVx8Y29tbVx8ZGV2ZWxcfGRvY1x8ZWRpdG9yc1x8ZWxlY3Ryb25pY3NcfGVtYmVkZGVkXHxnYW1lc1x8Z25vbWVcfGdyYXBoaWNzXHxoYW1yYWRpb1x8aW50ZXJwcmV0ZXJzXHxrZGVcfGxpYnNcfGxpYmRldmVsXHxtYWlsXHxtYXRoXHxtaXNjXHxuZXRcfG5ld3NcfG9sZGxpYnNcfG90aGVyb3Nmc1x8cGVybFx8cHl0aG9uXHxzY2llbmNlXHxzaGVsbHNcfHNvdW5kXHx0ZXh0XHx0ZXhcfHV0aWxzXHx3ZWJcfHgxMVx8ZGViaWFuLWluc3RhbGxlclwpIgorc3luIG1hdGNoIGRlYmNvbnRyb2xTZWN0aW9uIGNvbnRhaW5lZCAiXHYoKGNvbnRyaWJ8bm9uLWZyZWV8bm9uLVVTL21haW58bm9uLVVTL2NvbnRyaWJ8bm9uLVVTL25vbi1mcmVlfHJlc3RyaWN0ZWR8dW5pdmVyc2V8bXVsdGl2ZXJzZSkvKT8oYWRtaW58Y2xpLW1vbm98Y29tbXxkYXRhYmFzZXxkZWJpYW4taW5zdGFsbGVyfGRlYnVnfGRldmVsfGRvY3xlZGl0b3JzfGVsZWN0cm9uaWNzfGVtYmVkZGVkfGZvbnRzfGdhbWVzfGdub21lfGdudXN0ZXB8Z251LXJ8Z3JhcGhpY3N8aGFtcmFkaW98aGFza2VsbHxodHRwZHxpbnRlcnByZXRlcnN8amF2YXxrZGV8a2VybmVsfGxpYnN8bGliZGV2ZWx8bGlzcHxsb2NhbGl6YXRpb258bWFpbHxtYXRofG1pc2N8bmV0fG5ld3N8b2NhbWx8b2xkbGlic3xvdGhlcm9zZnN8cGVybHxwaHB8cHl0aG9ufHJ1Ynl8c2NpZW5jZXxzaGVsbHN8c291bmR8dGV4dHx0ZXh8dXRpbHN8dmNzfHZpZGVvfHdlYnx4MTF8eGZjZXx6b3BlKSIKIHN5biBtYXRjaCBkZWJjb250cm9sUGFja2FnZVR5cGUgY29udGFpbmVkICJ1XD9kZWIiCiBzeW4gbWF0Y2ggZGViY29udHJvbFZhcmlhYmxlIGNvbnRhaW5lZCAiXCR7Llx7LX19Igogc3luIG1hdGNoIGRlYmNvbnRyb2xEbVVwbG9hZCBjb250YWluZWQgIlxjeWVzIgpAQCAtNDEsNyArNDEsNyBAQAogc3luIG1hdGNoIGRlYmNvbnRyb2xIVFRQVXJsIGNvbnRhaW5lZCAiXHZodHRwcz86Ly9bWzphbG51bTpdXVstWzphbG51bTpdXSpbWzphbG51bTpdXT8oXC5bWzphbG51bTpdXVstWzphbG51bTpdXSpbWzphbG51bTpdXT8pKlwuW1s6YWxwaGE6XV1bLVs6YWxudW06XV0qW1s6YWxwaGE6XV0/KDpcZCspPygvW15bOnNwYWNlOl1dKik/JCIKIHN5biBtYXRjaCBkZWJjb250cm9sVmNzU3ZuIGNvbnRhaW5lZCAiXHZzdm4lKFwrc3NoKT86Ly9bWzphbG51bTpdXVstWzphbG51bTpdXSpbWzphbG51bTpdXT8oXC5bWzphbG51bTpdXVstWzphbG51bTpdXSpbWzphbG51bTpdXT8pKlwuW1s6YWxwaGE6XV1bLVs6YWxudW06XV0qW1s6YWxwaGE6XV0/KDpcZCspPygvW15bOnNwYWNlOl1dKik/JCIKIHN5biBtYXRjaCBkZWJjb250cm9sVmNzQ3ZzIGNvbnRhaW5lZCAiXHYlKFwtZCAqKT86cHNlcnZlcjpbXkBdK1xAW1s6YWxudW06XV1bLVs6YWxudW06XV0qW1s6YWxudW06XV0/KFwuW1s6YWxudW06XV1bLVs6YWxudW06XV0qW1s6YWxudW06XV0/KSpcLltbOmFscGhhOl1dWy1bOmFsbnVtOl1dKltbOmFscGhhOl1dPzovW15bOnNwYWNlOl1dKiUoIFteWzpzcGFjZTpdXSspPyQiCi1zeW4gbWF0Y2ggZGViY29udHJvbFZjc0dpdCBjb250YWluZWQgIlx2Z2l0Oi8vW1s6YWxudW06XV1bLVs6YWxudW06XV0qW1s6YWxudW06XV0/KFwuW1s6YWxudW06XV1bLVs6YWxudW06XV0qW1s6YWxudW06XV0/KSpcLltbOmFscGhhOl1dWy1bOmFsbnVtOl1dKltbOmFscGhhOl1dPyg6XGQrKT8oL1teWzpzcGFjZTpdXSopPyQiCitzeW4gbWF0Y2ggZGViY29udHJvbFZjc0dpdCBjb250YWluZWQgIlx2JShnaXR8aHR0cCk6Ly9bWzphbG51bTpdXVstWzphbG51bTpdXSpbWzphbG51bTpdXT8oXC5bWzphbG51bTpdXVstWzphbG51bTpdXSpbWzphbG51bTpdXT8pKlwuW1s6YWxwaGE6XV1bLVs6YWxudW06XV0qW1s6YWxwaGE6XV0/KDpcZCspPygvW15bOnNwYWNlOl1dKik/JCIKIAogIiBBbiBlbWFpbCBhZGRyZXNzCiBzeW4gbWF0Y2gJZGViY29udHJvbEVtYWlsCSJbXz1bOmFsbnVtOl1cListXVwrQFtbOmFsbnVtOl1cLi9cLV1cKyIKQEAgLTUzLDcgKzUzLDcgQEAKIHN5biBjYXNlIGlnbm9yZQogCiAiIExpc3Qgb2YgYWxsIGxlZ2FsIGtleXMKLXN5biBtYXRjaCBkZWJjb250cm9sS2V5IGNvbnRhaW5lZCAiXlwoU291cmNlXHxQYWNrYWdlXHxTZWN0aW9uXHxQcmlvcml0eVx8TWFpbnRhaW5lclx8VXBsb2FkZXJzXHxCdWlsZC1EZXBlbmRzXHxCdWlsZC1Db25mbGljdHNcfEJ1aWxkLURlcGVuZHMtSW5kZXBcfEJ1aWxkLUNvbmZsaWN0cy1JbmRlcFx8U3RhbmRhcmRzLVZlcnNpb25cfFByZS1EZXBlbmRzXHxEZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVzc2VudGlhbFx8QXJjaGl0ZWN0dXJlXHxEZXNjcmlwdGlvblx8QnVnc1x8T3JpZ2luXHxFbmhhbmNlc1x8SG9tZXBhZ2VcfFwoWFMtXClcPVZjcy1cKEJyb3dzZXJcfEFyY2hcfEJ6clx8Q3ZzXHxEYXJjc1x8R2l0XHxIZ1x8TXRuXHxTdm5cKVx8WEMtUGFja2FnZS1UeXBlXHxcJShYUy1cKVw9RE0tVXBsb2FkLUFsbG93ZWRcKTogKiIKK3N5biBtYXRjaCBkZWJjb250cm9sS2V5IGNvbnRhaW5lZCAiXlwlKFNvdXJjZVx8UGFja2FnZVx8U2VjdGlvblx8UHJpb3JpdHlcfFwlKFhTQkMtT3JpZ2luYWwtXClcPU1haW50YWluZXJcfFVwbG9hZGVyc1x8QnVpbGQtXCUoQ29uZmxpY3RzXHxEZXBlbmRzXClcJSgtSW5kZXBcKVw9XHxTdGFuZGFyZHMtVmVyc2lvblx8XCUoUHJlLVwpXD1EZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVuaGFuY2VzXHxFc3NlbnRpYWxcfEFyY2hpdGVjdHVyZVx8RGVzY3JpcHRpb25cfEJ1Z3NcfE9yaWdpblx8WFtTQl0tUHl0aG9uLVZlcnNpb25cfEhvbWVwYWdlXHxcKFhTLVwpXD1WY3MtXChCcm93c2VyXHxBcmNoXHxCenJcfEN2c1x8RGFyY3NcfEdpdFx8SGdcfE10blx8U3ZuXClcfFhDLVBhY2thZ2UtVHlwZVx8XCUoWFMtXClcPURNLVVwbG9hZC1BbGxvd2VkXCk6ICoiCiAKICIgRmllbGRzIGZvciB3aGljaCB3ZSBkbyBzdHJpY3Qgc3ludGF4IGNoZWNraW5nCiBzeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXkFyY2hpdGVjdHVyZSIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xBcmNoaXRlY3R1cmUsZGViY29udHJvbFNwYWNlIG9uZWxpbmUKQEAgLTYyLDE1ICs2MiwxNSBAQAogc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5TZWN0aW9uIiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbFNlY3Rpb24gb25lbGluZQogc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5YQy1QYWNrYWdlLVR5cGUiIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sUGFja2FnZVR5cGUgb25lbGluZQogc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5Ib21lcGFnZSIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xIVFRQVXJsIG9uZWxpbmUga2VlcGVuZAotc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5cJShYUy1cKVw/VmNzLVwlKEJyb3dzZXJcfEFyY2hcfEJ6clx8RGFyY3NcfEhnXCkiIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sSFRUUFVybCBvbmVsaW5lIGtlZXBlbmQKLXN5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeXCUoWFMtXClcP1Zjcy1Tdm4iIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sVmNzU3ZuLGRlYmNvbnRyb2xIVFRQVXJsIG9uZWxpbmUga2VlcGVuZAotc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5cJShYUy1cKVw/VmNzLUN2cyIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xWY3NDdnMgb25lbGluZSBrZWVwZW5kCi1zeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXlwlKFhTLVwpXD9WY3MtR2l0IiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbFZjc0dpdCBvbmVsaW5lIGtlZXBlbmQKLXN5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeXCUoWFMtXClcP0RNLVVwbG9hZC1BbGxvd2VkIiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbERtVXBsb2FkIG9uZWxpbmUKK3N5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeXCUoWFMtXClcPVZjcy1cJShCcm93c2VyXHxBcmNoXHxCenJcfERhcmNzXHxIZ1wpIiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbEhUVFBVcmwgb25lbGluZSBrZWVwZW5kCitzeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXlwlKFhTLVwpXD1WY3MtU3ZuIiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbFZjc1N2bixkZWJjb250cm9sSFRUUFVybCBvbmVsaW5lIGtlZXBlbmQKK3N5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeXCUoWFMtXClcPVZjcy1DdnMiIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sVmNzQ3ZzIG9uZWxpbmUga2VlcGVuZAorc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5cJShYUy1cKVw9VmNzLUdpdCIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xWY3NHaXQgb25lbGluZSBrZWVwZW5kCitzeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXlwlKFhTLVwpXD1ETS1VcGxvYWQtQWxsb3dlZCIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xEbVVwbG9hZCBvbmVsaW5lCiAKICIgQ2F0Y2gtYWxsIGZvciB0aGUgb3RoZXIgbGVnYWwgZmllbGRzCi1zeW4gcmVnaW9uIGRlYmNvbnRyb2xGaWVsZCBzdGFydD0iXlwoTWFpbnRhaW5lclx8U3RhbmRhcmRzLVZlcnNpb25cfEVzc2VudGlhbFx8QnVnc1x8T3JpZ2luXHxYXChTXHxCXCktUHl0aG9uLVZlcnNpb25cfFhTQkMtT3JpZ2luYWwtTWFpbnRhaW5lclx8XChYUy1cKVw/VmNzLU10blwpOiIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xWYXJpYWJsZSxkZWJjb250cm9sRW1haWwgb25lbGluZQotc3luIHJlZ2lvbiBkZWJjb250cm9sTXVsdGlGaWVsZCBzdGFydD0iXlwoQnVpbGQtXChDb25mbGljdHNcfERlcGVuZHNcKVwoLUluZGVwXClcPVx8XChQcmUtXClcPURlcGVuZHNcfFJlY29tbWVuZHNcfFN1Z2dlc3RzXHxQcm92aWRlc1x8UmVwbGFjZXNcfENvbmZsaWN0c1x8RW5oYW5jZXNcfFVwbG9hZGVyc1x8RGVzY3JpcHRpb25cKToiIHNraXA9Il4gIiBlbmQ9Il4kIm1lPXMtMSBlbmQ9Il5bXiBdIm1lPXMtMSBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xFbWFpbCxkZWJjb250cm9sVmFyaWFibGUKK3N5biByZWdpb24gZGViY29udHJvbEZpZWxkIHN0YXJ0PSJeXCUoXCUoWFNCQy1PcmlnaW5hbC1cKVw9TWFpbnRhaW5lclx8U3RhbmRhcmRzLVZlcnNpb25cfEVzc2VudGlhbFx8QnVnc1x8T3JpZ2luXHxYW1NCXS1QeXRob24tVmVyc2lvblx8XCUoWFMtXClcPVZjcy1NdG5cKToiIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sVmFyaWFibGUsZGViY29udHJvbEVtYWlsIG9uZWxpbmUKK3N5biByZWdpb24gZGViY29udHJvbE11bHRpRmllbGQgc3RhcnQ9Il5cJShCdWlsZC1cJShDb25mbGljdHNcfERlcGVuZHNcKVwlKC1JbmRlcFwpXD1cfFwlKFByZS1cKVw9RGVwZW5kc1x8UmVjb21tZW5kc1x8U3VnZ2VzdHNcfFByb3ZpZGVzXHxSZXBsYWNlc1x8Q29uZmxpY3RzXHxFbmhhbmNlc1x8VXBsb2FkZXJzXHxEZXNjcmlwdGlvblwpOiIgc2tpcD0iXiAiIGVuZD0iXiQibWU9cy0xIGVuZD0iXlteICNdIm1lPXMtMSBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xFbWFpbCxkZWJjb250cm9sVmFyaWFibGUsZGViY29udHJvbENvbW1lbnQKIAogIiBBc3NvY2lhdGUgb3VyIG1hdGNoZXMgYW5kIHJlZ2lvbnMgd2l0aCBwcmV0dHkgY29sb3VycwogaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2RlYmNvbnRyb2xfc3luX2luaXRzIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltIGIvcnVudGltZS9zeW50YXgvZGVic291cmNlcy52aW0KaW5kZXggMGFlMDVhYi4uNTJjZTZkNyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZGVic291cmNlcy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZGVic291cmNlcy52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiAgICAgRGViaWFuIHNvdXJjZXMubGlzdAogIiBNYWludGFpbmVyOiAgIERlYmlhbiBWaW0gTWFpbnRhaW5lcnMgPHBrZy12aW0tbWFpbnRhaW5lcnNAbGlzdHMuYWxpb3RoLmRlYmlhbi5vcmc+CiAiIEZvcm1lciBNYWludGFpbmVyOiBNYXR0aGlqcyBNb2hsbWFubiA8bWF0dGhpanNAY2FjaG9sb25nLm5sPgotIiBMYXN0IENoYW5nZTogMjAwOC0wNC0yNQorIiBMYXN0IENoYW5nZTogMjAwOSBBcHIgMTcKICIgVVJMOiBodHRwOi8vZ2l0LmRlYmlhbi5vcmcvP3A9cGtnLXZpbS92aW0uZ2l0O2E9YmxvYl9wbGFpbjtmPXJ1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltO2hiPWRlYmlhbgogCiAiIFN0YW5kYXJkIHN5bnRheCBpbml0aWFsaXphdGlvbgpAQCAtMTksMTEgKzE5LDExIEBACiBzeW4gbWF0Y2ggZGVic291cmNlc0tleXdvcmQgICAgICAgIC9cKGRlYi1zcmNcfGRlYlx8bWFpblx8Y29udHJpYlx8bm9uLWZyZWVcfHJlc3RyaWN0ZWRcfHVuaXZlcnNlXHxtdWx0aXZlcnNlXCkvCiAKICIgTWF0Y2ggY29tbWVudHMKLXN5biBtYXRjaCBkZWJzb3VyY2VzQ29tbWVudCAgICAgICAgLyMuKi8KK3N5biBtYXRjaCBkZWJzb3VyY2VzQ29tbWVudCAgICAgICAgLyMuKi8gIGNvbnRhaW5zPUBTcGVsbAogCiAiIE1hdGNoIHVyaSdzCiBzeW4gbWF0Y2ggZGVic291cmNlc1VyaSAgICAgICAgICAgICtcKGh0dHA6Ly9cfGZ0cDovL1x8W3JzXXNoOi8vXHxkZWJ0b3JyZW50Oi8vXHxcKGNkcm9tXHxjb3B5XHxmaWxlXCk6XClbXicgCTw+Il1cKysKLXN5biBtYXRjaCBkZWJzb3VyY2VzRGlzdHJLZXl3b3JkICAgK1woW1s6YWxudW06XV8uL10qXClcKHNhcmdlXHxldGNoXHxsZW5ueVx8XChvbGRcKVw9c3RhYmxlXHx0ZXN0aW5nXHx1bnN0YWJsZVx8c2lkXHxleHBlcmltZW50YWxcfGRhcHBlclx8ZmVpc3R5XHxndXRzeVx8aGFyZHlcfGludHJlcGlkXClcKFstWzphbG51bTpdXy4vXSpcKSsKK3N5biBtYXRjaCBkZWJzb3VyY2VzRGlzdHJLZXl3b3JkICAgK1woW1s6YWxudW06XV8uL10qXClcKGV0Y2hcfGxlbm55XHxzcXVlZXplXHxcKG9sZFwpXD1zdGFibGVcfHRlc3RpbmdcfHVuc3RhYmxlXHxzaWRcfGV4cGVyaW1lbnRhbFx8ZGFwcGVyXHxoYXJkeVx8aW50cmVwaWRcfGphdW50eVx8a2FybWljXClcKFstWzphbG51bTpdXy4vXSpcKSsKIAogIiBBc3NvY2lhdGUgb3VyIG1hdGNoZXMgYW5kIHJlZ2lvbnMgd2l0aCBwcmV0dHkgY29sb3VycwogaGkgZGVmIGxpbmsgZGVic291cmNlc0xpbmUgICAgICAgICAgICBFcnJvcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZGVmLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RlZi52aW0KaW5kZXggNDg1MThkNy4uNWVmYjQxYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZGVmLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9kZWYudmltCkBAIC0yLDggKzIsOCBAQAogIiBMYW5ndWFnZToJTWljcm9zb2Z0IE1vZHVsZS1EZWZpbml0aW9uICguZGVmKSBGaWxlCiAiIE9yaWcgQXV0aG9yOglSb2IgQnJhZHkgPHJvYmJAZGF0YXRvbmUuY29tPgogIiBNYWludGFpbmVyOglXdSBZb25nd2VpIDx3dXlvbmd3ZWlAZ21haWwuY29tPgotIiBMYXN0IENoYW5nZToJJERhdGUkCi0iICRSZXZpc2lvbiQKKyIgTGFzdCBDaGFuZ2U6CSREYXRlOiAyMDA3LzEwLzAyIDEzOjUxOjI0ICQKKyIgJFJldmlzaW9uOiAxLjIgJAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZGphbmdvLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RqYW5nby52aW0KaW5kZXggM2FkNDgxNi4uZGEzNTQwNiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZGphbmdvLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9kamFuZ28udmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CURqYW5nbyB0ZW1wbGF0ZQogIiBNYWludGFpbmVyOglEYXZlIEhvZGRlciA8ZG1oQGRtaC5vcmcudWs+Ci0iIExhc3QgQ2hhbmdlOgkyMDA3IEFwciAyMQorIiBMYXN0IENoYW5nZToJMjAwOCBEZWMgMTgKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTE4LDggKzE4LDkgQEAKIAogIiBEamFuZ28gdGVtcGxhdGUgYnVpbHQtaW4gdGFncyBhbmQgcGFyYW1ldGVycwogIiAnY29tbWVudCcgZG9lc24ndCBhcHBlYXIgaGVyZSBiZWNhdXNlIGl0IGdldHMgc3BlY2lhbCB0cmVhdG1lbnQKK3N5biBrZXl3b3JkIGRqYW5nb1N0YXRlbWVudCBjb250YWluZWQgYXV0b2VzY2FwZSBvbiBvZmYgZW5kYXV0b2VzY2FwZQogc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBhbmQgYXMgYmxvY2sgZW5kYmxvY2sgYnkgY3ljbGUgZGVidWcgZWxzZQotc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBleHRlbmRzIGZpbHRlciBlbmRmaWx0ZXIgZmlyc3RvZiBmb3IKK3N5biBrZXl3b3JkIGRqYW5nb1N0YXRlbWVudCBjb250YWluZWQgZXh0ZW5kcyBmaWx0ZXIgZW5kZmlsdGVyIGZpcnN0b2YgZm9yIGVtcHR5CiBzeW4ga2V5d29yZCBkamFuZ29TdGF0ZW1lbnQgY29udGFpbmVkIGVuZGZvciBpZiBlbmRpZiBpZmNoYW5nZWQgZW5kaWZjaGFuZ2VkCiBzeW4ga2V5d29yZCBkamFuZ29TdGF0ZW1lbnQgY29udGFpbmVkIGlmZXF1YWwgZW5kaWZlcXVhbCBpZm5vdGVxdWFsCiBzeW4ga2V5d29yZCBkamFuZ29TdGF0ZW1lbnQgY29udGFpbmVkIGVuZGlmbm90ZXF1YWwgaW4gaW5jbHVkZSBsb2FkIG5vdCBub3cgb3IKQEAgLTM1LDE1ICszNiwxNSBAQAogIiBEamFuZ28gdGVtcGxldGUgYnVpbHQtaW4gZmlsdGVycwogc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBhZGQgYWRkc2xhc2hlcyBjYXBmaXJzdCBjZW50ZXIgY3V0IGRhdGUKIHN5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgZGVmYXVsdCBkZWZhdWx0X2lmX25vbmUgZGljdHNvcnQKLXN5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgZGljdHNvcnRyZXZlcnNlZCBkaXZpc2libGVieSBlc2NhcGUKK3N5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgZGljdHNvcnRyZXZlcnNlZCBkaXZpc2libGVieSBlc2NhcGUgZXNjYXBlanMKIHN5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgZmlsZXNpemVmb3JtYXQgZmlyc3QgZml4X2FtcGVyc2FuZHMKLXN5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgZmxvYXRmb3JtYXQgZ2V0X2RpZ2l0IGpvaW4gbGVuZ3RoIGxlbmd0aF9pcworc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBmbG9hdGZvcm1hdCBmb3JjZV9lc2NhcGUgZ2V0X2RpZ2l0IGlyaWVuY29kZSBqb2luIGxhc3QgbGVuZ3RoIGxlbmd0aF9pcwogc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBsaW5lYnJlYWtzIGxpbmVicmVha3NiciBsaW5lbnVtYmVycyBsanVzdAogc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBsb3dlciBtYWtlX2xpc3QgcGhvbmUybnVtZXJpYyBwbHVyYWxpemUKLXN5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgcHByaW50IHJhbmRvbSByZW1vdmV0YWdzIHJqdXN0IHNsaWNlIHNsdWdpZnkKK3N5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgcHByaW50IHJhbmRvbSByZW1vdmV0YWdzIHJqdXN0IHNhZmUgc2xpY2Ugc2x1Z2lmeQogc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBzdHJpbmdmb3JtYXQgc3RyaXB0YWdzCiBzeW4ga2V5d29yZCBkamFuZ29GaWx0ZXIgY29udGFpbmVkIHRpbWUgdGltZXNpbmNlIHRpbWV1bnRpbCB0aXRsZQotc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCB0cnVuY2F0ZXdvcmRzIHVub3JkZXJlZF9saXN0IHVwcGVyIHVybGVuY29kZQorc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCB0cnVuY2F0ZXdvcmRzIHRydW5jYXRld29yZHNfaHRtbCB1bm9yZGVyZWRfbGlzdCB1cHBlciB1cmxlbmNvZGUKIHN5biBrZXl3b3JkIGRqYW5nb0ZpbHRlciBjb250YWluZWQgdXJsaXplIHVybGl6ZXRydW5jIHdvcmRjb3VudCB3b3Jkd3JhcCB5ZXNubwogCiAiIEtleXdvcmRzIHRvIGhpZ2hsaWdodCB3aXRoaW4gY29tbWVudHMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RvY2JrLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RvY2JrLnZpbQppbmRleCBiNzYzZmIwLi43M2MxY2I0IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kb2Niay52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZG9jYmsudmltCkBAIC0yLDggKzIsOCBAQAogIiBMYW5ndWFnZToJRG9jQm9vawogIiBNYWludGFpbmVyOglEZXZpbiBXZWF2ZXIgPHZpbUB0cml0YXJnZXQuY29tPgogIiBVUkw6CQlodHRwOi8vdHJpdGFyZ2V0LmNvbS9wdWIvdmltL3N5bnRheC9kb2Niay52aW0KLSIgTGFzdCBDaGFuZ2U6CSREYXRlJAotIiBWZXJzaW9uOgkkUmV2aXNpb24kCisiIExhc3QgQ2hhbmdlOgkkRGF0ZTogMjAwNS8wNi8yMyAyMjozMTowMSAkCisiIFZlcnNpb246CSRSZXZpc2lvbjogMS4yICQKICIgVGhhbmtzIHRvIEpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPiBmb3IgdGhlIGRlZmF1bHQgdG8gWE1MCiAiIHN1Z2dlc3Rpb24uCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2Rvc2JhdGNoLnZpbSBiL3J1bnRpbWUvc3ludGF4L2Rvc2JhdGNoLnZpbQppbmRleCA4YzAxMjk5Li5kOWIxYWE2IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kb3NiYXRjaC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZG9zYmF0Y2gudmltCkBAIC0yLDcgKzIsNyBAQAogIiBMYW5ndWFnZToJTVNET1MgYmF0Y2ggZmlsZSAod2l0aCBOVCBjb21tYW5kIGV4dGVuc2lvbnMpCiAiIE1haW50YWluZXI6CU1pa2UgV2lsbGlhbXMgPG1yd0BlYW5kZW0uY28udWs+CiAiIEZpbGVuYW1lczogICAgKi5iYXQKLSIgTGFzdCBDaGFuZ2U6CTEwdGggTWF5IDIwMDgKKyIgTGFzdCBDaGFuZ2U6CTZ0aCBTZXB0ZW1iZXIgMjAwOQogIiBXZWIgUGFnZTogICAgIGh0dHA6Ly93d3cuZWFuZGVtLmNvLnVrL21ydy92aW0KICIKICIgT3B0aW9ucyBGbGFnczoKQEAgLTM2LDcgKzM2LDcgQEAKIHN5biBjYXNlIG1hdGNoCiBzeW4ga2V5d29yZCBkb3NiYXRjaE9wZXJhdG9yICAgIEVRVSBORVEgTFNTIExFUSBHVFIgR0VRCiBzeW4gY2FzZSBpZ25vcmUKLXN5biBtYXRjaCBkb3NiYXRjaE9wZXJhdG9yICAgICAgIlxzWy0rXCovJV1ccyIKK3N5biBtYXRjaCBkb3NiYXRjaE9wZXJhdG9yICAgICAgIlxzWy0rXCovJSF+XVxzIgogc3luIG1hdGNoIGRvc2JhdGNoT3BlcmF0b3IgICAgICAiPSIKIHN5biBtYXRjaCBkb3NiYXRjaE9wZXJhdG9yICAgICAgIlstK1wqLyVdPSIKIHN5biBtYXRjaCBkb3NiYXRjaE9wZXJhdG9yICAgICAgIlxzXCgmXHx8XHxeXHw8PFx8Pj5cKT1cPVxzIgpAQCAtNTEsMTAgKzUxLDEwIEBACiBzeW4gbWF0Y2ggZG9zYmF0Y2hDbWQJCSIoXHMqJ1teJ10qJyJsYz0xIGNvbnRhaW5zPWRvc2JhdGNoU3RyaW5nLGRvc2JhdGNoVmFyaWFibGUsZG9zQmF0Y2hBcmd1bWVudCxAZG9zYmF0Y2hOdW1iZXIsZG9zYmF0Y2hJbXBsaWNpdCxkb3NiYXRjaFN0YXRlbWVudCxkb3NiYXRjaENvbmRpdGlvbmFsLGRvc2JhdGNoUmVwZWF0LGRvc2JhdGNoT3BlcmF0b3IKIAogIiBOdW1iZXJzIC0gc3Vycm91bmQgd2l0aCB3cyB0byBub3QgaW5jbHVkZSBpbiBkaXIgYW5kIGZpbGVuYW1lcwotc3luIG1hdGNoIGRvc2JhdGNoSW50ZWdlciAgICAgICAiW1s6c3BhY2U6XT0oLzpdXGRcKyJsYz0xCi1zeW4gbWF0Y2ggZG9zYmF0Y2hIZXgJCSJbWzpzcGFjZTpdPSgvOl0weFx4XCsibGM9MQotc3luIG1hdGNoIGRvc2JhdGNoQmluYXJ5CSJbWzpzcGFjZTpdPSgvOl0wYlswMV1cKyJsYz0xCi1zeW4gbWF0Y2ggZG9zYmF0Y2hPY3RhbAkJIltbOnNwYWNlOl09KC86XTBcb1wrImxjPTEKK3N5biBtYXRjaCBkb3NiYXRjaEludGVnZXIgICAgICAgIltbOnNwYWNlOl09KC86LCF+LV1cZFwrImxjPTEKK3N5biBtYXRjaCBkb3NiYXRjaEhleAkJIltbOnNwYWNlOl09KC86LCF+LV0weFx4XCsibGM9MQorc3luIG1hdGNoIGRvc2JhdGNoQmluYXJ5CSJbWzpzcGFjZTpdPSgvOiwhfi1dMGJbMDFdXCsibGM9MQorc3luIG1hdGNoIGRvc2JhdGNoT2N0YWwJCSJbWzpzcGFjZTpdPSgvOiwhfi1dMFxvXCsibGM9MQogc3luIGNsdXN0ZXIgZG9zYmF0Y2hOdW1iZXIgICAgICBjb250YWlucz1kb3NiYXRjaEludGVnZXIsZG9zYmF0Y2hIZXgsZG9zYmF0Y2hCaW5hcnksZG9zYmF0Y2hPY3RhbAogCiAiIENvbW1hbmQgbGluZSBzd2l0Y2hlcwpAQCAtNjksMTUgKzY5LDE1IEBACiBzeW4gbWF0Y2ggZG9zYmF0Y2hJZGVudGlmaWVyICAgIGNvbnRhaW5lZCAiXHNcaFx3Klw+Igogc3luIG1hdGNoIGRvc2JhdGNoVmFyaWFibGUJIiVcaFx3KiUiCiBzeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiJVxoXHcqOlwqXD1bXj1dKj1bXiVdKiUiCi1zeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiJVxoXHcqOlx+XGRcKyxcZFwrJSIgY29udGFpbnM9ZG9zYmF0Y2hJbnRlZ2VyCitzeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiJVxoXHcqOlx+Wy1dXD1cZFwrXCgsWy1dXD1cZFwrXClcPSUiIGNvbnRhaW5zPWRvc2JhdGNoSW50ZWdlcgogc3luIG1hdGNoIGRvc2JhdGNoVmFyaWFibGUJIiFcaFx3KiEiCi1zeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiIVxoXHcqOlwqXD1bXj1dKj1bXiVdKiEiCi1zeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiIVxoXHcqOlx+XGRcKyxcZFwrISIgY29udGFpbnM9ZG9zYmF0Y2hJbnRlZ2VyCitzeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiIVxoXHcqOlwqXD1bXj1dKj1bXiFdKiEiCitzeW4gbWF0Y2ggZG9zYmF0Y2hWYXJpYWJsZQkiIVxoXHcqOlx+Wy1dXD1cZFwrXCgsWy1dXD1cZFwrXClcPSEiIGNvbnRhaW5zPWRvc2JhdGNoSW50ZWdlcgogc3luIG1hdGNoIGRvc2JhdGNoU2V0CQkiXHNcaFx3KlsrLV1cPT1cey0xfSIgY29udGFpbnM9ZG9zYmF0Y2hJZGVudGlmaWVyLGRvc2JhdGNoT3BlcmF0b3IKIAogIiBBcmdzIHRvIGJhdCBmaWxlcyBhbmQgZm9yIGxvb3BzLCBldGMKIHN5biBtYXRjaCBkb3NiYXRjaEFyZ3VtZW50CSIlXChcZFx8XCpcKSIKLXN5biBtYXRjaCBkb3NiYXRjaEFyZ3VtZW50CSIlJVthLXpdXD4iCitzeW4gbWF0Y2ggZG9zYmF0Y2hBcmd1bWVudAkiJVthLXpdXD4iCiBpZiBkb3NiYXRjaF9jbWRleHR2ZXJzaW9uID09IDEKICAgc3luIG1hdGNoIGRvc2JhdGNoQXJndW1lbnQJIiVcfltmZHBueHNdXCtcKFwoJFBBVEg6XClcPVthLXpdXHxcZFwpXD4iCiBlbHNlCkBAIC05Miw3ICs5Miw5IEBACiAKICIgQ29tbWVudHMgLSB1c3VhbCByZW0gYnV0IGFsc28gdHdvIGNvbG9ucyBhcyBmaXJzdCBub24tc3BhY2UgaXMgYW4gaWRpb20KIHN5biBtYXRjaCBkb3NiYXRjaENvbW1lbnQJIl5yZW1cKCRcfFxzLiokXCkibGM9MyBjb250YWlucz1kb3NiYXRjaFRvZG8sZG9zYmF0Y2hTcGVjaWFsQ2hhcixAZG9zYmF0Y2hOdW1iZXIsZG9zYmF0Y2hWYXJpYWJsZSxkb3NiYXRjaEFyZ3VtZW50LEBTcGVsbAorc3luIG1hdGNoIGRvc2JhdGNoQ29tbWVudAkiXkByZW1cKCRcfFxzLiokXCkibGM9NCBjb250YWlucz1kb3NiYXRjaFRvZG8sQGRvc2JhdGNoTnVtYmVyLGRvc2JhdGNoVmFyaWFibGUsZG9zYmF0Y2hBcmd1bWVudCxAU3BlbGwKIHN5biBtYXRjaCBkb3NiYXRjaENvbW1lbnQJIlxzcmVtXCgkXHxccy4qJFwpImxjPTQgY29udGFpbnM9ZG9zYmF0Y2hUb2RvLGRvc2JhdGNoU3BlY2lhbENoYXIsQGRvc2JhdGNoTnVtYmVyLGRvc2JhdGNoVmFyaWFibGUsZG9zYmF0Y2hBcmd1bWVudCxAU3BlbGwKK3N5biBtYXRjaCBkb3NiYXRjaENvbW1lbnQJIlxzQHJlbVwoJFx8XHMuKiRcKSJsYz01IGNvbnRhaW5zPWRvc2JhdGNoVG9kbyxAZG9zYmF0Y2hOdW1iZXIsZG9zYmF0Y2hWYXJpYWJsZSxkb3NiYXRjaEFyZ3VtZW50LEBTcGVsbAogc3luIG1hdGNoIGRvc2JhdGNoQ29tbWVudAkiXHMqOlxzKjouKiQiIGNvbnRhaW5zPWRvc2JhdGNoVG9kbyxkb3NiYXRjaFNwZWNpYWxDaGFyLEBkb3NiYXRjaE51bWJlcixkb3NiYXRjaFZhcmlhYmxlLGRvc2JhdGNoQXJndW1lbnQsQFNwZWxsCiAKICIgQ29tbWVudHMgaW4gKCkncyAtIHN0aWxsIHRvIGhhbmRsZSBzcGFjZXMgYmVmb3JlIHJlbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZG94eWdlbi52aW0gYi9ydW50aW1lL3N5bnRheC9kb3h5Z2VuLnZpbQppbmRleCBmYjRkM2NjLi4xYWVhM2JmIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kb3h5Z2VuLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9kb3h5Z2VuLnZpbQpAQCAtMiw4ICsyLDggQEAKICIgTGFuZ3VhZ2U6ICAgICBkb3h5Z2VuIG9uIHRvcCBvZiBjLCBjcHAsIGlkbCwgamF2YSwgcGhwCiAiIE1haW50YWluZXI6ICAgTWljaGFlbCBHZWRkZXMgPHZpbW1lckBmcm9nLndoZWVseWNyZWVrLm5ldD4KICIgQXV0aG9yOiAgICAgICBNaWNoYWVsIEdlZGRlcwotIiBMYXN0IENoYW5nZTogIEp1bHkgMjAwOAotIiBWZXJzaW9uOiAgICAgIDEuMjIKKyIgTGFzdCBDaGFuZ2U6ICBKYW4gMjAwOQorIiBWZXJzaW9uOiAgICAgIDEuMjMKICIKICIgQ29weXJpZ2h0IDIwMDQtMjAwOCBNaWNoYWVsIEdlZGRlcwogIiBQbGVhc2UgZmVlbCBmcmVlIHRvIHVzZSwgbW9kaWZ5ICYgZGlzdHJpYnV0ZSBhbGwgb3IgcGFydCBvZiB0aGlzIHNjcmlwdCwKQEAgLTIzOSw3ICsyMzksNyBAQAogICAiICNMaW5rIGhpbGlnaHRpbmcuCiAgIHN5biBtYXRjaCBkb3h5Z2VuSGFzaExpbmsgL1woW2EtekEtWl9dWzAtOWEtekEtWl9dKlwpXD8jXChcLlswLTlhLXpBLVpfXVxAPVx8W2EtekEtWjAtOV9dXCtcfDo6XHwoKVwpXCsvIGNvbnRhaW5lZCBjb250YWlucz1kb3h5Z2VuSGFzaFNwZWNpYWwKICAgc3luIG1hdGNoIGRveHlnZW5IYXNoU3BlY2lhbCAvIy8gY29udGFpbmVkCi0gIHN5biBtYXRjaCBkb3h5Z2VuSHlwZXJMaW5rIC9cKFxzXHxeXHMqXCpcP1wpXEA8PVwoaHR0cFx8aHR0cHNcfGZ0cFwpOlwvXC9bLTAtOWEtekEtWl8/Jj0rIyUvLiEnOjtAXVwrLyBjb250YWluZWQKKyAgc3luIG1hdGNoIGRveHlnZW5IeXBlckxpbmsgL1woXHNcfF5ccypcKlw/XClcQDw9XChodHRwXHxodHRwc1x8ZnRwXCk6XC9cL1stMC05YS16QS1aXz8mPSsjJS8uISc6O0B+XVwrLyBjb250YWluZWQKIAogICAiIEhhbmRsZSBccGFnZS4gIFRoaXMgZG9lcyBub3QgdXNlIGRveHlnZW5CcmllZi4KICAgc3luIG1hdGNoIGRveHlnZW5QYWdlICJbXFxAXXBhZ2VcPiJtZT1zKzEgY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9ZG94eWdlblBhZ2VQYWdlCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kc2wudmltIGIvcnVudGltZS9zeW50YXgvZHNsLnZpbQppbmRleCA5YjNjYjU2Li45NWM3ODQzIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kc2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2RzbC52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgogIiBMYXN0IENoYW5nZToJVHVlLCAyNyBBcHIgMjAwNCAxNDo1NDo1OSBDRVNUCiAiIEZpbGVuYW1lczoJKi5kc2wKLSIgJElkJAorIiAkSWQ6IGRzbC52aW0sdiAxLjEgMjAwNC8wNi8xMyAxOToxMzozMSB2aW1ib3NzIEV4cCAkCiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpIHwgZmluaXNoIHwgZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZWxmLnZpbSBiL3J1bnRpbWUvc3ludGF4L2VsZi52aW0KaW5kZXggNjc4MDQ4OS4uNjIxZTA2MyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZWxmLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9lbGYudmltCkBAIC00LDcgKzQsNyBAQAogIiBMYXN0IENoYW5nZTogU29uIDIyIEp1biAyMDAzIDIwOjQzOjE0IENFU1QKICIgRmlsZW5hbWVzOiAgICouYWIsKi5hbQogIiBVUkw6CSAgICAgICBodHRwOi8vd3d3LmN2amIuZGUvY29tcC92aW0vZWxmLnZpbQotIiAkSWQkCisiICRJZDogZWxmLnZpbSx2IDEuMSAyMDA0LzA2LzEzIDE5OjUyOjI3IHZpbWJvc3MgRXhwICQKICIKICIgRUxGOiBFeHRlbnNpYmxlIExhbmd1YWdlIEZhY2lsaXR5CiAiICAgICAgVGhpcyBpcyB0aGUgQXBwbGl4IEluYy4sIE1hY3JvIGFuZCBCdWlsZGVyIHByb2dyYW1taW5nIGxhbmd1YWdlLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZXJsYW5nLnZpbSBiL3J1bnRpbWUvc3ludGF4L2VybGFuZy52aW0KaW5kZXggZTNkNjgzNi4uMmYzOWQ2MSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZXJsYW5nLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9lcmxhbmcudmltCkBAIC01MCw3ICs1MCw3IEBACiAgICAgIiBPcGVyYXRvcnMKICAgICBzeW4gbWF0Y2ggICBlcmxhbmdPcGVyYXRvciAgICAgICAgICIrXHwtXHxcKlx8XC8iCiAgICAgc3luIGtleXdvcmQgZXJsYW5nT3BlcmF0b3IgICAgICAgICBkaXYgcmVtIG9yIHhvciBib3IgYnhvciBic2wgYnNyCi0gICAgc3luIGtleXdvcmQgZXJsYW5nT3BlcmF0b3IgICAgICAgICBhbmQgYmFuZCBub3QgYm5vdAorICAgIHN5biBrZXl3b3JkIGVybGFuZ09wZXJhdG9yICAgICAgICAgYW5kIGJhbmQgbm90IGJub3QgYW5kYWxzbyBvcmVsc2UKICAgICBzeW4gbWF0Y2ggICBlcmxhbmdPcGVyYXRvciAgICAgICAgICI9PVx8Lz1cfD06PVx8PS89XHw8XHw9PFx8Plx8Pj0iCiAgICAgc3luIG1hdGNoICAgZXJsYW5nT3BlcmF0b3IgICAgICAgICAiKytcfC0tXHw9XHwhXHw8LSIKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAKIGlmICEgZXhpc3RzICgiZXJsYW5nX2tleXdvcmRzIikKICAgICAiIENvbnN0YW50cyBhbmQgRGlyZWN0aXZlcwotICAgIHN5biBtYXRjaCAgIGVybGFuZ0RpcmVjdGl2ZSAgIi1iZWhhdmlvdXJcfC1iZWhhdmlvdXIiCisgICAgc3luIG1hdGNoICAgZXJsYW5nRGlyZWN0aXZlICAiLWJlaGF2aW91clx8LWJlaGF2aW9yIgogICAgIHN5biBtYXRjaCAgIGVybGFuZ0RpcmVjdGl2ZSAgIi1jb21waWxlXHwtZGVmaW5lXHwtZWxzZVx8LWVuZGlmXHwtZXhwb3J0XHwtZmlsZSIKICAgICBzeW4gbWF0Y2ggICBlcmxhbmdEaXJlY3RpdmUgICItaWZkZWZcfC1pZm5kZWZcfC1pbXBvcnRcfC1pbmNsdWRlX2xpYlx8LWluY2x1ZGUiCiAgICAgc3luIG1hdGNoICAgZXJsYW5nRGlyZWN0aXZlICAiLW1vZHVsZVx8LXJlY29yZFx8LXVuZGVmIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZXJ1YnkudmltIGIvcnVudGltZS9zeW50YXgvZXJ1YnkudmltCmluZGV4IDQ2ZTU3MDQuLjFlNDVmZmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2VydWJ5LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9lcnVieS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJCWVSdWJ5CiAiIE1haW50YWluZXI6CQlUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+Ci0iIEluZm86CQkJJElkJAorIiBJbmZvOgkJCSRJZDogZXJ1YnkudmltLHYgMS4yMyAyMDA4LzA2LzI5IDA0OjE4OjQzIHRwb3BlIEV4cCAkCiAiIFVSTDoJCQlodHRwOi8vdmltLXJ1YnkucnVieWZvcmdlLm9yZwogIiBBbm9uIENWUzoJCVNlZSBhYm92ZSBzaXRlCiAiIFJlbGVhc2UgQ29vcmRpbmF0b3I6CURvdWcgS2Vhcm5zIDxkb3Vna2Vhcm5zQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZvY2V4ZWMudmltIGIvcnVudGltZS9zeW50YXgvZm9jZXhlYy52aW0KaW5kZXggODg0YzM3ZS4uOGJlMWI2NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZm9jZXhlYy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZm9jZXhlYy52aW0KQEAgLTEsOSArMSw5IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJRm9jdXMgRXhlY3V0YWJsZQogIiBNYWludGFpbmVyOglSb2IgQnJhZHkgPHJvYmJAZGF0YXRvbmUuY29tPgotIiBMYXN0IENoYW5nZToJJERhdGUkCisiIExhc3QgQ2hhbmdlOgkkRGF0ZTogMjAwNC8wNi8xMyAxNTozODowNCAkCiAiIFVSTDoJCWh0dHA6Ly93d3cuZGF0YXRvbmUuY29tL35yb2JiL3ZpbS9zeW50YXgvZm9jZXhlYy52aW0KLSIgJFJldmlzaW9uJAorIiAkUmV2aXNpb246IDEuMSAkCiAKICIgdGhpcyBpcyBhIHZlcnkgc2ltcGxlIHN5bnRheCBmaWxlIC0gSSB3aWxsIGJlIGltcHJvdmluZyBpdAogIiBvbmUgdGhpbmcgaXMgaG93IHRvIGRvIGNvbXB1dGVzCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9mb3JtLnZpbSBiL3J1bnRpbWUvc3ludGF4L2Zvcm0udmltCmluZGV4IDcyNmJmNDcuLjE5YTQ3ZWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2Zvcm0udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2Zvcm0udmltCkBAIC0xLDcgKzEsMTAgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglGT1JNCisiIFZlcnNpb246IDIuMAogIiBNYWludGFpbmVyOglNaWNoYWVsIE0uIFR1bmcgPG1pY2hhZWwudHVuZ0B1bmktbWFpbnouZGU+Ci0iIExhc3QgQ2hhbmdlOgkyMDAxIE1heSAxMAorIiBMYXN0IENoYW5nZTogPFRodSBPY3QgMjMgMTM6MTE6MjEgQ0VTVCAyMDA4PgorIiBQYXN0IENoYW5nZTogPE9jdG9iZXIgMjAwOCBUaG9tYXMgUmVpdGVyIHRob21hc3JAbmlraGVmLm5sPgorIiBQYXN0IENoYW5nZTogPFdlZCwgMjAwNS8wNS8yNSAwOToyNDo1OCBhcndhZ25lciB3cHR4NDQ+CiAKICIgRmlyc3QgcHVibGljIHJlbGVhc2UgYmFzZWQgb24gJ1N5bWJvbGljIE1hbmlwdWxhdGlvbiB3aXRoIEZPUk0nCiAiIGJ5IEouQS5NLiBWZXJtYXNlcmVuLCBDQU4sIE5ldGhlcmxhbmRzLCAxOTkxLgpAQCAtMTgsMzAgKzIxLDczIEBACiAKIHN5biBjYXNlIGlnbm9yZQogCi0iIEEgYnVuY2ggb2YgdXNlZnVsIEZPUk0ga2V5d29yZHMKKyIgYSBidW5jaCBvZiB1c2VmdWwgRk9STSBrZXl3b3Jkcwogc3luIGtleXdvcmQgZm9ybVR5cGUJCWdsb2JhbCBsb2NhbAogc3luIGtleXdvcmQgZm9ybUhlYWRlclN0YXRlbWVudAlzeW1ib2wgc3ltYm9scyBjZnVuY3Rpb24gY2Z1bmN0aW9ucwogc3luIGtleXdvcmQgZm9ybUhlYWRlclN0YXRlbWVudAlmdW5jdGlvbiBmdW5jdGlvbnMgdmVjdG9yIHZlY3RvcnMKLXN5biBrZXl3b3JkIGZvcm1IZWFkZXJTdGF0ZW1lbnQJc2V0IHNldHMgaW5kZXggaW5kaWNlcworc3luIGtleXdvcmQgZm9ybUhlYWRlclN0YXRlbWVudCB0ZW5zb3IgdGVuc29ycyBjdGVuc29yIGN0ZW5zb3JzCitzeW4ga2V5d29yZCBmb3JtSGVhZGVyU3RhdGVtZW50CXNldCBzZXRzIGluZGV4IGluZGljZXMgdGFibGUgY3RhYmxlCiBzeW4ga2V5d29yZCBmb3JtSGVhZGVyU3RhdGVtZW50CWRpbWVuc2lvbiBkaW1lbnNpb25zIHVuaXR0cmFjZQotc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudAlpZCBpZGVudGlmeSBkcm9wIHNraXAKLXN5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQJd3JpdGUgbndyaXRlCi1zeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50CWZvcm1hdCBwcmludCBucHJpbnQgbG9hZCBzYXZlCi1zeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50CWJyYWNrZXQgYnJhY2tldHMKLXN5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQJbXVsdGlwbHkgY291bnQgbWF0Y2ggb25seSBkaXNjYXJkCi1zeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50CXRyYWNlNCB0cmFjZU4gY29udHJhY3Qgc3ltbWV0cml6ZSBhbnRpc3ltbWV0cml6ZQotc3luIGtleXdvcmQgZm9ybUNvbmRpdGlvbmFsCWlmIGVsc2UgZW5kaWYgd2hpbGUKK3N5biBrZXl3b3JkIGZvcm1Db25kaXRpb25hbAlpZiBlbHNlIGVsc2VpZiBlbmRpZiB3aGlsZQogc3luIGtleXdvcmQgZm9ybUNvbmRpdGlvbmFsCXJlcGVhdCBlbmRyZXBlYXQgbGFiZWwgZ290bworc3luIGtleXdvcmQgZm9ybUNvbmRpdGlvbmFsICAgICBhcmd1bWVudCBlbmRhcmd1bWVudCBleGl0CitzeW4ga2V5d29yZCBmb3JtQ29uZGl0aW9uYWwgICAgIGluZXhwcmVzc2lvbiBpbnNpZGUgdGVybQorc3luIGtleXdvcmQgZm9ybUNvbmRpdGlvbmFsICAgICBlbmRpbmV4cHJlc3Npb24gZW5kaW5zaWRlIGVuZHRlcm0KK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgYWJyYWNrZXRzIGFsc28gYW50aWJyYWNrZXRzIGFudGlzeW1tZXRyaXplCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIGFyZ2V4cGxvZGUgYXJnaW1wbG9kZSBhcHBseSBhdXRvIGF1dG9kZWNsYXJlCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIGJyYWNrZXRzIGNoYWluaW4gY2hhaW5vdXQgY2hpc2hvbG0gY2xlYXJ0YWJsZQorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBjb2xsZWN0IGNvbW11dGluZyBjb21wcmVzcyBjb250cmFjdAorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBjeWNsZXN5bW1ldHJpemUgZGVhbGxvY2F0ZXRhYmxlIGRlbGV0ZQorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBkaW1lbnNpb24gZGlzY2FyZCBkaXNvcmRlciBkcm9wIGZhY3RhcmcgZmlsbAorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBmaWxsZXhwcmVzc2lvbiBmaXhpbmRleCBmb3JtYXQgZnVucG93ZXJzIGhpZGUKK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgaWRlbnRpZnkgaWRuZXcgaWRvbGQgaWZtYXRjaCBpbnBhcmFsbGVsCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIGluc2lkZWZpcnN0IGtlZXAgbG9hZCBtYWtlaW50ZWdlciBtYW55IG1ldHJpYworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBtb2R1bGVvcHRpb24gbW9kdWx1cyBtdWx0aSBtdWx0aXBseSBuZHJvcAorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBuZnVuY3Rpb25zIG5oaWRlIG5vcm1hbGl6ZSBub3RpbnBhcmFsbGVsCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIG5wcmludCBuc2tpcCBudGFibGUgbnRlbnNvcnMgbnVuaGlkZSBud3JpdGUKK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgb2ZmIG9uIG9uY2Ugb25seSBwb2x5ZnVuIHBvcGhpZGUgcHJpbnQKK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgcHJpbnR0YWJsZSBwcm9wZXJjb3VudCBwdXNoaGlkZSByYXRpbworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICByY3ljbGVzeW1tZXRyaXplIHJlZGVmaW5lIHJlbnVtYmVyCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIHJlcGxhY2VpbmFyZyByZXBsYWNlbG9vcCBzYXZlIHNlbGVjdAorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBzZXRleGl0ZmxhZyBza2lwIHNsYXZlcGF0Y2hzaXplIHNvcnQgc3BsaXRhcmcKK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgc3BsaXRmaXJzdGFyZyBzcGxpdGxhc3Rhcmcgc3VtIHN5bW1ldHJpemUKK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgdGFibGViYXNlIHRlc3R1c2UgdGhyZWFkYnVja2V0c2l6ZSB0b3RlbnNvcgorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICB0b3ZlY3RvciB0cmFjZTQgdHJhY2VuIHRyeXJlcGxhY2UgdW5oaWRlCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIHVuaXR0cmFjZSB2ZWN0b3JzIHdyaXRlCisiIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgRk9STSB2ZXJzaW9uczoKK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgaWQgYnJhY2tldCBjb3VudCBtYXRjaCB0cmFjZU4KIAogIiBzb21lIHNwZWNpYWwgZnVuY3Rpb25zCi1zeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50CWdfIGdpXyBnNV8gZzZfIGc3XyA1XyA2XyA3Xwotc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudAllXyBkXyBkZWx0YV8gdGhldGFfIHN1bV8gc3VtcF8KK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgYWJzXyBiZXJub3VsbGlfIGJpbm9tXyBjb25qZ18gY291bnRfCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIGRfIGRkXyBkZWx0YV8gZGVsdGFwXyBkZW5vbV8gZGlzdHJpYl8KK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgZHVtXyBkdW1teV8gZHVtbXl0ZW5fIGVfIGV4cF8gZmFjXworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBmYWN0b3Jpbl8gZmlyc3RicmFja2V0XyBnNV8gZzZfIGc3Xworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBnXyBnY2RfIGdpXyBpbnRlZ2VyXyBpbnZmYWNfIG1hdGNoXworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBtYXhfIG1heHBvd2Vyb2ZfIG1pbl8gbWlucG93ZXJvZl8KK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgbW9kXyBuYXJnc18gbnRlcm1zXyBwYXR0ZXJuXyBwb2x5Xworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBwb2x5YWRkXyBwb2x5ZGl2XyBwb2x5Z2NkXyBwb2x5aW50ZmFjXworc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudCAgICAgICBwb2x5bXVsXyBwb2x5bm9ybV8gcG9seXJlbV8gcG9seXN1Yl8KK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgcmVwbGFjZV8gcmV2ZXJzZV8gcm9vdF8gc2V0ZnVuXyBzaWdfCitzeW4ga2V5d29yZCBmb3JtU3RhdGVtZW50ICAgICAgIHNpZ25fIHN1bV8gc3VtcF8gdGFibGVfIHRibF8gdGVybV8KK3N5biBrZXl3b3JkIGZvcm1TdGF0ZW1lbnQgICAgICAgdGVybXNpbl8gdGVybXNpbmJyYWNrZXRfIHRoZXRhXyB0aGV0YXBfIAorc3luIGtleXdvcmQgZm9ybVN0YXRlbWVudAk1XyA2XyA3XworCitzeW4ga2V5d29yZCBmb3JtUmVzZXJ2ZWQgICAgICAgIHNxcnRfIGxuXyBzaW5fIGNvc18gdGFuXyBhc2luXyBhY29zXworc3luIGtleXdvcmQgZm9ybVJlc2VydmVkICAgICAgICBhdGFuXyBhdGFuMl8gc2luaF8gY29zaF8gdGFuaF8gYXNpbmhfCitzeW4ga2V5d29yZCBmb3JtUmVzZXJ2ZWQgICAgICAgIGFjb3NoXyBhdGFuaF8gbGkyXyBsaW5fIAorCitzeW4ga2V5d29yZCBmb3JtVG9kbyAgICAgICAgICAgIGNvbnRhaW5lZCBUT0RPIEZJWE1FIFhYWAorCitzeW4gbWF0Y2ggICBmb3JtU3BlY2lhbCAgICAgICAgIGRpc3BsYXkgY29udGFpbmVkICJcXFwoblx8dFx8Ylx8XFxcfFwiXCkiCitzeW4gbWF0Y2ggICBmb3JtU3BlY2lhbCAgICAgICAgIGRpc3BsYXkgY29udGFpbmVkICIlXCglXHxlXHxFXHxzXHxmXHxcJFwpIgorc3luIG1hdGNoICAgZm9ybVNwZWNpYWwgICAgICAgICAiXDxOXGRcK19bP10iCiAKICIgcGF0dGVybiBtYXRjaGluZyBmb3Iga2V5d29yZHMKLXN5biBtYXRjaCAgIGZvcm1Db21tZW50CQkiXlwgKlwqLiokIgotc3luIG1hdGNoICAgZm9ybUNvbW1lbnQJCSJcO1wgKlwqLiokIgotc3luIHJlZ2lvbiAgZm9ybVN0cmluZwkJc3RhcnQ9KyIrICBlbmQ9KyIrCitzeW4gbWF0Y2ggICBmb3JtQ29tbWVudAkJIl5cICpcKi4qJCIgY29udGFpbnM9Zm9ybVRvZG8KK3N5biBtYXRjaCAgIGZvcm1Db21tZW50CQkiXDtcICpcKi4qJCIgY29udGFpbnM9Zm9ybVRvZG8KK3N5biByZWdpb24gIGZvcm1TdHJpbmcJCXN0YXJ0PSsiKyAgZW5kPSsiKyBjb250YWlucz1mb3JtU3BlY2lhbAogc3luIHJlZ2lvbiAgZm9ybVN0cmluZwkJc3RhcnQ9KycrICBlbmQ9KycrCitzeW4gcmVnaW9uICBmb3JtTmVzdGVkU3RyaW5nCXN0YXJ0PStgKyAgZW5kPSsnKyBjb250YWlucz1mb3JtTmVzdGVkU3RyaW5nCiBzeW4gbWF0Y2ggICBmb3JtUHJlUHJvYwkJIl5cPVwjW2EtekEtel1bYS16QS1aMC05XSpcPiIKIHN5biBtYXRjaCAgIGZvcm1OdW1iZXIJCSJcPFxkXCtcPiIKIHN5biBtYXRjaCAgIGZvcm1OdW1iZXIJCSJcPFxkXCtcLlxkKlw+IgpAQCAtNTAsNiArOTYsMTMgQEAKIHN5biBtYXRjaCAgIGZvcm1OdW1iZXIJCSItXC5cZCIgY29udGFpbnM9TnVtYmVyCiBzeW4gbWF0Y2ggICBmb3JtTnVtYmVyCQkiaV9cK1w+Igogc3luIG1hdGNoICAgZm9ybU51bWJlcgkJImZhY19cK1w+IgorIiBwYXR0ZXJuIG1hdGNoaW5nIHdpbGRjYXJkcworc3luIG1hdGNoICAgZm9ybU51bWJlcgkJIj9bQS16MC05XSoiCisiIGRvbGxhci12YXJpYWJsZXMgKG5ldyBpbiAzLngpCitzeW4gbWF0Y2ggICBmb3JtTnVtYmVyCQkiXFwkW0EtejAtOV0qIgorIiBzY2FsYXIgcHJvZHVjdHMKK3N5biBtYXRjaCAgIGZvcm1OdW1iZXIJCSJeXD1bYS16QS16XVthLXpBLVowLTldKlwuW2EtekEtel1bYS16QS1aMC05XSpcPiIKKwogc3luIG1hdGNoICAgZm9ybURpcmVjdGl2ZQkiXlw9XC5bYS16QS16XVthLXpBLVowLTldKlw+IgogCiAiIGhpIFVzZXIgTGFiZWxzCkBAIC03NCw2ICsxMjcsMTAgQEAKICAgSGlMaW5rIGZvcm1EaXJlY3RpdmUJCVByZVByb2MKICAgSGlMaW5rIGZvcm1UeXBlCQlUeXBlCiAgIEhpTGluayBmb3JtU3RyaW5nCQlTdHJpbmcKKyAgSGlMaW5rIGZvcm1OZXN0ZWRTdHJpbmcJU3RyaW5nCisgIEhpTGluayBmb3JtUmVzZXJ2ZWQgICAgICAgICAgIEVycm9yCisgIEhpTGluayBmb3JtVG9kbyAgICAgICAgICAgICAgIFRvZG8KKyAgSGlMaW5rIGZvcm1TcGVjaWFsICAgICAgICAgICAgU3BlY2lhbENoYXIKIAogICBpZiAhZXhpc3RzKCJmb3JtX2VuaGFuY2VkX2NvbG9yIikKICAgICBIaUxpbmsgZm9ybUhlYWRlclN0YXRlbWVudAlTdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZvcnRoLnZpbSBiL3J1bnRpbWUvc3ludGF4L2ZvcnRoLnZpbQppbmRleCA4NzEzYTcyLi5lMGU4Yjc3IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9mb3J0aC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZm9ydGgudmltCkBAIC01LDcgKzUsNyBAQAogIiBGaWxlbmFtZXM6ICAgKi5mcywqLmZ0CiAiIFVSTDoJICAgICAgIGh0dHA6Ly93d3cuY3ZqYi5kZS9jb21wL3ZpbS9mb3J0aC52aW0KIAotIiAkSWQkCisiICRJZDogZm9ydGgudmltLHYgMS4xMSAyMDA4LzAyLzA5IDEzOjE3OjAxIGJydWVzc293IEV4cCAkCiAKICIgVGhlIGxpc3Qgb2Yga2V5d29yZHMgaXMgaW5jb21wbGV0ZSwgY29tcGFyZWQgd2l0aCB0aGUgb2ZmaWNhbCBBTlMKICIgd29yZGxpc3QuIElmIHlvdSB1c2UgdGhpcyBsYW5ndWFnZSwgcGxlYXNlIGltcHJvdmUgaXQsIGFuZCBzZW5kIG1lCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9mb3J0cmFuLnZpbSBiL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCmluZGV4IDFkMTYwZjIuLjNkMzIzZmIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCkBAIC0yLDcgKzIsNyBAQAogIiBMYW5ndWFnZToJRm9ydHJhbjk1IChhbmQgRm9ydHJhbjkwLCBGb3J0cmFuNzcsIEYgYW5kIGVsZjkwKQogIiBWZXJzaW9uOgkwLjg4CiAiIFVSTDoJCWh0dHA6Ly93d3cudW5iLmNhL2NoZW0vYWppdC9zeW50YXgvZm9ydHJhbi52aW0KLSIgTGFzdCBDaGFuZ2U6CTIwMDYgQXByLiAyMgorIiBMYXN0IENoYW5nZToJMjAwOCBOb3YgMDEKICIgTWFpbnRhaW5lcjoJQWppdCBKLiBUaGFra2FyIChhaml0IEFUIHVuYi5jYSk7IDxodHRwOi8vd3d3LnVuYi5jYS9jaGVtL2FqaXQvPgogIiBVc2FnZToJRG8gOmhlbHAgZm9ydHJhbi1zeW50YXggZnJvbSBWaW0KICIgQ3JlZGl0czoKQEAgLTMwMCw3ICszMDAsNyBAQAogICAgIHN5biBtYXRjaCBmb3J0cmFuTGFiZWxFcnJvcgkiXi5cey0sNH1bXjAtOSBdIiBjb250YWlucz1mb3J0cmFuVGFiCiAgICAgc3luIG1hdGNoIGZvcnRyYW5MYWJlbEVycm9yCSJeLlx7NH1cZFxTIgogICBlbmRpZgotICBzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJCWV4Y2x1ZGVubCAiXlshYypdLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cAorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJCWV4Y2x1ZGVubCAiXlshYypdLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKICAgc3luIG1hdGNoIGZvcnRyYW5MZWZ0TWFyZ2luCQl0cmFuc3BhcmVudCAiXiBcezV9IgogICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnRpbnVlTWFyawkJZGlzcGxheSAiXi5cezV9XFMibGM9NQogZWxzZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZnN0YWIudmltIGIvcnVudGltZS9zeW50YXgvZnN0YWIudmltCmluZGV4IDgzMGI4ZDAuLjliZWU4OTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2ZzdGFiLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9mc3RhYi52aW0KQEAgLTIsMTQgKzIsMTUgQEAKICIgTGFuZ3VhZ2U6IGZzdGFiIGZpbGUKICIgTWFpbnRhbmVyOiBSYWR1IERpbmVpdSA8cmFkdS5kaW5laXVAZ21haWwuY29tPgogIiBVUkw6IGh0dHA6Ly9sZC55aS5vcmcvdmltL2ZzdGFiLnZpbQotIiBMYXN0IENoYW5nZTogMjAwOCBKYW4gMTYKLSIgVmVyc2lvbjogMC45MgorIiBMYXN0IENoYW5nZTogMjAwOSBGZWIgMDQKKyIgVmVyc2lvbjogMC45MwogIgogIiBDcmVkaXRzOgogIiAgIERhdmlkIE5lY2FzIChZZXRpKSA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CiAiICAgU3RlZmFubyBaYWNjaGlyb2xpIDx6YWNrQGRlYmlhbi5vcmc+CiAiICAgR2VvcmdpIEdlb3JnaWV2IDxjaHV0ekBnZzMubmV0PgogIiAgIEphbWVzIFZlZ2EgPGphbWVzc2FuQGRlYmlhbi5vcmc+CisiICAgRWxpYXMgUHJvYnN0IDxtYWlsQGVsaWFzcHJvYnN0LmV1PgogIgogIiBPcHRpb25zOgogIiAgIGxldCBmc3RhYl91bmtub3duX2ZzX2Vycm9ycyA9IDEKQEAgLTQ2LDcgKzQ3LDcgQEAKICIgVHlwZQogc3luIGNsdXN0ZXIgZnNUeXBlQ2x1c3RlciBjb250YWlucz1mc1R5cGVLZXl3b3JkLGZzVHlwZVVua25vd24KIHN5biBtYXRjaCBmc1R5cGVVbmtub3duIC9cc1wrXHpzXHdcKy8gY29udGFpbmVkCi1zeW4ga2V5d29yZCBmc1R5cGVLZXl3b3JkIGNvbnRhaW5lZCBhZGZzIGFkb3MgYWZmcyBhdGZzIGF1ZGlvZnMgYXV0byBhdXRvZnMgYmVmcyBiZnMgY2Q5NjYwIGNmcyBjaWZzIGNvZGEgY3JhbWZzIGRldmZzIGRldnB0cyBlMmNvbXByIGVmcyBleHQyIGV4dDJmcyBleHQzIGZkZXNjIGZmcyBmaWxlY29yZSBmdXNlIGhmcyBocGZzIGlzbzk2NjAgamZmcyBqZmZzMiBqZnMga2VybmZzIGxmcyBsaW5wcm9jZnMgbWZzIG1pbml4IG1zZG9zIG5jcGZzIG5mcyBub25lIG50ZnMgbnVsbCBud2ZzIG92ZXJsYXkgb3ZsZnMgcG9ydGFsIHByb2MgcHJvY2ZzIHB0eWZzIHFueDQgcmVpc2VyZnMgcm9tZnMgc2htIHNtYmZzIHNzaGZzIHN0ZCBzdWJmcyBzd2FwIHN5c2ZzIHN5c3YgdGNmcyB0bXBmcyB1ZGYgdWZzIHVtYXAgdW1zZG9zIHVuaW9uIHVzYmZzIHVzZXJmcyB2ZmF0IHZzM2ZzIHZ4ZnMgd3JhcGZzIHd2ZnMgeGZzIHppc29mcworc3luIGtleXdvcmQgZnNUeXBlS2V5d29yZCBjb250YWluZWQgYWRmcyBhZG9zIGFmZnMgYXRmcyBhdWRpb2ZzIGF1dG8gYXV0b2ZzIGJlZnMgYmZzIGNkOTY2MCBjZnMgY2lmcyBjb2RhIGNyYW1mcyBkZXZmcyBkZXZwdHMgZTJjb21wciBlZnMgZXh0MiBleHQyZnMgZXh0MyBleHQ0IGZkZXNjIGZmcyBmaWxlY29yZSBmdXNlIGhmcyBocGZzIGlzbzk2NjAgamZmcyBqZmZzMiBqZnMga2VybmZzIGxmcyBsaW5wcm9jZnMgbWZzIG1pbml4IG1zZG9zIG5jcGZzIG5mcyBub25lIG50ZnMgbnVsbCBud2ZzIG92ZXJsYXkgb3ZsZnMgcG9ydGFsIHByb2MgcHJvY2ZzIHB0eWZzIHFueDQgcmVpc2VyZnMgcm9tZnMgc2htIHNtYmZzIHNzaGZzIHN0ZCBzdWJmcyBzd2FwIHN5c2ZzIHN5c3YgdGNmcyB0bXBmcyB1ZGYgdWZzIHVtYXAgdW1zZG9zIHVuaW9uIHVzYmZzIHVzZXJmcyB2ZmF0IHZzM2ZzIHZ4ZnMgd3JhcGZzIHd2ZnMgeGZzIHppc29mcwogCiAiIE9wdGlvbnMKICIgLS0tLS0tLQpAQCAtOTEsNyArOTIsMjEgQEAKIHN5biBtYXRjaCBmc09wdGlvbnNLZXl3b3JkcyBjb250YWluZWQgL1w8Y29tbWl0PS8gbmV4dGdyb3VwPWZzT3B0aW9uc051bWJlcgogc3luIGtleXdvcmQgZnNPcHRpb25zRXh0M0pvdXJuYWwgY29udGFpbmVkIHVwZGF0ZSBpbnVtCiBzeW4ga2V5d29yZCBmc09wdGlvbnNFeHQzRGF0YSBjb250YWluZWQgam91cm5hbCBvcmRlcmVkIHdyaXRlYmFjawotc3luIGtleXdvcmQgZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIG5vbG9hZAorc3luIGtleXdvcmQgZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIG5vbG9hZCB1c2VyX3hhdHRyIG5vdXNlcl94YXR0ciBhY2wgbm9hY2wKKworIiBPcHRpb25zOiBleHQ0CitzeW4gbWF0Y2ggZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIC9cPGpvdXJuYWw9LyBuZXh0Z3JvdXA9ZnNPcHRpb25zRXh0NEpvdXJuYWwKK3N5biBtYXRjaCBmc09wdGlvbnNLZXl3b3JkcyBjb250YWluZWQgL1w8ZGF0YT0vIG5leHRncm91cD1mc09wdGlvbnNFeHQ0RGF0YQorc3luIG1hdGNoIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCAvXDxiYXJyaWVyPS8gbmV4dGdyb3VwPWZzT3B0aW9uc0V4dDRCYXJyaWVyCitzeW4gbWF0Y2ggZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIC9cPGpvdXJuYWxfZGV2PS8gbmV4dGdyb3VwPWZzT3B0aW9uc051bWJlcgorc3luIG1hdGNoIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCAvXDxyZXN1aWQ9LyBuZXh0Z3JvdXA9ZnNPcHRpb25zTnVtYmVyCitzeW4gbWF0Y2ggZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIC9cPHJlc2dpZD0vIG5leHRncm91cD1mc09wdGlvbnNOdW1iZXIKK3N5biBtYXRjaCBmc09wdGlvbnNLZXl3b3JkcyBjb250YWluZWQgL1w8c2I9LyBuZXh0Z3JvdXA9ZnNPcHRpb25zTnVtYmVyCitzeW4gbWF0Y2ggZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIC9cPGNvbW1pdD0vIG5leHRncm91cD1mc09wdGlvbnNOdW1iZXIKK3N5biBrZXl3b3JkIGZzT3B0aW9uc0V4dDRKb3VybmFsIGNvbnRhaW5lZCB1cGRhdGUgaW51bQorc3luIGtleXdvcmQgZnNPcHRpb25zRXh0NERhdGEgY29udGFpbmVkIGpvdXJuYWwgb3JkZXJlZCB3cml0ZWJhY2sKK3N5biBtYXRjaCBmc09wdGlvbnNFeHQ0QmFycmllciAvWzAtMV0vCitzeW4ga2V5d29yZCBmc09wdGlvbnNLZXl3b3JkcyBjb250YWluZWQgbm9sb2FkIGV4dGVudHMgb3Jsb3Ygb2xkYWxsb2MgdXNlcl94YXR0ciBub3VzZXJfeGF0dHIgYWNsIG5vYWNsIHJlc2VydmF0aW9uIG5vcmVzZXJ2YXRpb24gYnNkZGYgbWluaXhkZiBjaGVjaz1ub25lIG5vY2hlY2sgZGVidWcgZ3JwaWQgbm9ncm91cGlkIHN5c3Zncm91cHMgYnNkZ3JvdXBzIHF1b3RhIG5vcXVvdGEgZ3JwcXVvdGEgdXNycXVvdGEgYmggbm9iaAogCiAiIE9wdGlvbnM6IGZhdAogc3luIG1hdGNoIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCAvXDxibG9ja3NpemU9LyBuZXh0Z3JvdXA9ZnNPcHRpb25zU2l6ZQpAQCAtMjQxLDYgKzI1Niw5IEBACiAJSGlMaW5rIGZzT3B0aW9uc0V4dDJFcnJvcnMgU3RyaW5nCiAJSGlMaW5rIGZzT3B0aW9uc0V4dDNKb3VybmFsIFN0cmluZwogCUhpTGluayBmc09wdGlvbnNFeHQzRGF0YSBTdHJpbmcKKwlIaUxpbmsgZnNPcHRpb25zRXh0NEpvdXJuYWwgU3RyaW5nCisJSGlMaW5rIGZzT3B0aW9uc0V4dDREYXRhIFN0cmluZworCUhpTGluayBmc09wdGlvbnNFeHQ0QmFycmllciBOdW1iZXIKIAlIaUxpbmsgZnNPcHRpb25zRmF0Q2hlY2sgU3RyaW5nCiAJSGlMaW5rIGZzT3B0aW9uc0NvbnYgU3RyaW5nCiAJSGlMaW5rIGZzT3B0aW9uc0ZhdFR5cGUgTnVtYmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9nZGIudmltIGIvcnVudGltZS9zeW50YXgvZ2RiLnZpbQppbmRleCBjODc0YTA0Li5hYWRhNzBlIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9nZGIudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2dkYi52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOglHREIgY29tbWFuZCBmaWxlcwogIiBNYWludGFpbmVyOglDbGF1ZGlvIEZsZWluZXIgPGNsYXVkaW9AZmxlaW5lci5jb20+CiAiIFVSTDoJCWh0dHA6Ly93d3cuZmxlaW5lci5jb20vdmltL3N5bnRheC9nZGIudmltCi0iIExhc3QgQ2hhbmdlOgkyMDAzIEphbiAwNAorIiBMYXN0IENoYW5nZToJMjAwOSBNYXkgMjUKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTM1LDcgKzM1LDcgQEAKICIgc29tZSBjb21tb25seSB1c2VkIGFicmV2aWF0aW9ucwogc3luIGtleXdvcmQgZ2RiU3RhdGVtZW50IGMgZGlzcCB1bmRpc3AgZGlzYXMgcAogCi1zeW4gcmVnaW9uIGdkYkRvY3VtZW50IG1hdGNoZ3JvdXA9Z2RiRnVuY0RlZiBzdGFydD0iXDxkb2N1bWVudFw+LiokIiBtYXRjaGdyb3VwPWdkYkZ1bmNEZWYgZW5kPSJeZW5kJCIKK3N5biByZWdpb24gZ2RiRG9jdW1lbnQgbWF0Y2hncm91cD1nZGJGdW5jRGVmIHN0YXJ0PSJcPGRvY3VtZW50XD4uKiQiIG1hdGNoZ3JvdXA9Z2RiRnVuY0RlZiBlbmQ9Il5lbmRccyokIgogCiBzeW4gbWF0Y2ggZ2RiU3RhdGVtZW50ICJcPGFkZC1zaGFyZWQtc3ltYm9sLWZpbGVzXD4iCiBzeW4gbWF0Y2ggZ2RiU3RhdGVtZW50ICJcPGFkZC1zeW1ib2wtZmlsZVw+IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZ2l0LnZpbSBiL3J1bnRpbWUvc3ludGF4L2dpdC52aW0KaW5kZXggZmQ3NmI3My4uZmViNzA4NCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZ2l0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9naXQudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CWdlbmVyaWMgZ2l0IG91dHB1dAotIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+Ci0iIExhc3QgQ2hhbmdlOgkyMDA4IE1hciAyMQorIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLm9yZz4KKyIgTGFzdCBDaGFuZ2U6CTIwMDkgRGVjIDI0CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgICAgZmluaXNoCkBAIC0xMywxNCArMTMsMTkgQEAKIHN5biBpbmNsdWRlIEBnaXREaWZmIHN5bnRheC9kaWZmLnZpbQogCiBzeW4gcmVnaW9uIGdpdEhlYWQgc3RhcnQ9L1wlXi8gZW5kPS9eJC8KLXN5biByZWdpb24gZ2l0SGVhZCBzdGFydD0vXCUoXmNvbW1pdCBceFx7NDBcfSRcKVxAPS8gZW5kPS9eJC8KK3N5biByZWdpb24gZ2l0SGVhZCBzdGFydD0vXCUoXmNvbW1pdCBceFx7NDBcfVwlKFxzKiguKilcKVw9JFwpXEA9LyBlbmQ9L14kLwogCiAiIEZvciBnaXQgcmVmbG9nIGFuZCBnaXQgc2hvdyAuLi5ee3RyZWV9LCBhdm9pZCBzeW5jIGlzc3Vlcwogc3luIG1hdGNoIGdpdEhlYWQgL15cZFx7Nlx9IFwlKFx3XHs0fSBcKVw9XHhcezQwXH1cJSggWzAtM11cKVw9XHQuKi8KIHN5biBtYXRjaCBnaXRIZWFkIC9eXHhcezQwXH0gXHhcezQwfVx0LiovCiAKLXN5biByZWdpb24gZ2l0RGlmZiBzdGFydD0vXlwlKGRpZmYgLS1naXQgXClcQD0vIGVuZD0vXlwlKGRpZmYgLS1naXQgXHwkXClcQD0vIGNvbnRhaW5zPUBnaXREaWZmIGZvbGQKLXN5biByZWdpb24gZ2l0RGlmZiBzdGFydD0vXlwlKEBAIC1cKVxAPS8gZW5kPS9eXCUoZGlmZiAtLWdpdCBcfCRcKVxAPS8gY29udGFpbnM9QGdpdERpZmYKK3N5biByZWdpb24gZ2l0RGlmZiBzdGFydD0vXlwlKGRpZmYgLS1naXQgXClcQD0vIGVuZD0vXlwlKGRpZmYgLS1cfCRcKVxAPS8gY29udGFpbnM9QGdpdERpZmYgZm9sZAorc3luIHJlZ2lvbiBnaXREaWZmIHN0YXJ0PS9eXCUoQEAgLVwpXEA9LyBlbmQ9L15cJShkaWZmIC0tXCUoZ2l0XHxjY1x8Y29tYmluZWRcKSBcfCRcKVxAPS8gY29udGFpbnM9QGdpdERpZmYKKworc3luIHJlZ2lvbiBnaXREaWZmTWVyZ2Ugc3RhcnQ9L15cJShkaWZmIC0tXCUoY2NcfGNvbWJpbmVkXCkgXClcQD0vIGVuZD0vXlwlKGRpZmYgLS1cfCRcKVxAPS8gY29udGFpbnM9QGdpdERpZmYKK3N5biByZWdpb24gZ2l0RGlmZk1lcmdlIHN0YXJ0PS9eXCUoQEBAQCogLVwpXEA9LyBlbmQ9L15cJShkaWZmIC0tXHwkXClcQD0vIGNvbnRhaW5zPUBnaXREaWZmCitzeW4gbWF0Y2ggZ2l0RGlmZkFkZGVkICJeIFwrKy4qIiBjb250YWluZWQgY29udGFpbmVkaW49Z2l0RGlmZk1lcmdlCitzeW4gbWF0Y2ggZ2l0RGlmZlJlbW92ZWQgIl4gXCstLioiIGNvbnRhaW5lZCBjb250YWluZWRpbj1naXREaWZmTWVyZ2UKIAogc3luIG1hdGNoICBnaXRLZXl3b3JkIC9eXCUob2JqZWN0XHx0eXBlXHx0YWdcfGNvbW1pdFx8dHJlZVx8cGFyZW50XHxlbmNvZGluZ1wpXD4vIGNvbnRhaW5lZCBjb250YWluZWRpbj1naXRIZWFkIG5leHRncm91cD1naXRIYXNoLGdpdFR5cGUgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggIGdpdEtleXdvcmQgL15cJSh0YWdcPlx8cmVmOlwpLyBjb250YWluZWQgY29udGFpbmVkaW49Z2l0SGVhZCBuZXh0Z3JvdXA9Z2l0UmVmZXJlbmNlIHNraXB3aGl0ZQpAQCAtMjksOCArMzQsNiBAQAogc3luIG1hdGNoICBnaXRJZGVudGl0eUtleXdvcmQgL15cJShhdXRob3JcfGNvbW1pdHRlclx8dGFnZ2VyXClcPi8gY29udGFpbmVkIGNvbnRhaW5lZGluPWdpdEhlYWQgbmV4dGdyb3VwPWdpdElkZW50aXR5IHNraXB3aGl0ZQogc3luIG1hdGNoICBnaXRJZGVudGl0eUhlYWRlciAvXlwlKEF1dGhvclx8Q29tbWl0XHxUYWdnZXJcKTovIGNvbnRhaW5lZCBjb250YWluZWRpbj1naXRIZWFkIG5leHRncm91cD1naXRJZGVudGl0eSBza2lwd2hpdGUKIHN5biBtYXRjaCAgZ2l0RGF0ZUhlYWRlciAvXlwlKEF1dGhvckRhdGVcfENvbW1pdERhdGVcfERhdGVcKTovIGNvbnRhaW5lZCBjb250YWluZWRpbj1naXRIZWFkIG5leHRncm91cD1naXREYXRlIHNraXB3aGl0ZQotc3luIG1hdGNoICBnaXRJZGVudGl0eSAvXFMuXHstXH0gPFtePl0qPi8gY29udGFpbmVkIG5leHRncm91cD1naXREYXRlIHNraXB3aGl0ZQotc3luIHJlZ2lvbiBnaXRFbWFpbCBtYXRjaGdyb3VwPWdpdEVtYWlsRGVsaW1pdGVyIHN0YXJ0PS88LyBlbmQ9Lz4vIGtlZXBlbmQgb25lbGluZSBjb250YWluZWQgY29udGFpbmVkaW49Z2l0SWRlbnRpdHkKIAogc3luIG1hdGNoICBnaXRSZWZsb2dIZWFkZXIgL15SZWZsb2c6LyBjb250YWluZWQgY29udGFpbmVkaW49Z2l0SGVhZCBuZXh0Z3JvdXA9Z2l0UmVmbG9nTWlkZGxlIHNraXB3aGl0ZQogc3luIG1hdGNoICBnaXRSZWZsb2dIZWFkZXIgL15SZWZsb2cgbWVzc2FnZTovIGNvbnRhaW5lZCBjb250YWluZWRpbj1naXRIZWFkIHNraXB3aGl0ZQpAQCAtNDIsMTQgKzQ1LDIwIEBACiBzeW4gbWF0Y2ggIGdpdFR5cGUgICAgICAvXDxcJSh0YWdcfGNvbW1pdFx8dHJlZVx8YmxvYlwpXD4vICAgICBjb250YWluZWQgbmV4dGdyb3VwPWdpdEhhc2ggc2tpcHdoaXRlCiBzeW4gbWF0Y2ggIGdpdFN0YWdlICAgICAvXDxcZFx0XEA9LyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZWQKIHN5biBtYXRjaCAgZ2l0UmVmZXJlbmNlIC9cU1wrXFNcQCEvICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lZAotc3luIG1hdGNoICBnaXRIYXNoICAgICAgL1w8XHhcezQwXH1cPi8gICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVkIG5leHRncm91cD1naXRJZGVudGl0eSxnaXRTdGFnZSBza2lwd2hpdGUKK3N5biBtYXRjaCAgZ2l0SGFzaCAgICAgIC9cPFx4XHs0MFx9XD4vICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lZCBuZXh0Z3JvdXA9Z2l0SWRlbnRpdHksZ2l0U3RhZ2UsZ2l0SGFzaCBza2lwd2hpdGUKIHN5biBtYXRjaCAgZ2l0SGFzaCAgICAgIC9eXDxceFx7NDBcfVw+LyBjb250YWluZWRpbj1naXRIZWFkIGNvbnRhaW5lZCBuZXh0Z3JvdXA9Z2l0SGFzaCBza2lwd2hpdGUKK3N5biBtYXRjaCAgZ2l0SGFzaEFiYnJldiAvXDxceFx7NCw0MFx9XD4vICAgICAgICAgICBjb250YWluZWQgbmV4dGdyb3VwPWdpdEhhc2hBYmJyZXYgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggIGdpdEhhc2hBYmJyZXYgL1w8XHhcezQsMzlcfVwuXC5cLi9oZT1lLTMgY29udGFpbmVkIG5leHRncm91cD1naXRIYXNoQWJicmV2IHNraXB3aGl0ZQotc3luIG1hdGNoICBnaXRIYXNoQWJicmV2IC9cPFx4XHs0MFx9XD4vICAgICAgICAgICAgIGNvbnRhaW5lZCBuZXh0Z3JvdXA9Z2l0SGFzaEFiYnJldiBza2lwd2hpdGUKKworc3luIG1hdGNoICBnaXRJZGVudGl0eSAvXFMuXHstXH0gPFtePl0qPi8gY29udGFpbmVkIG5leHRncm91cD1naXREYXRlIHNraXB3aGl0ZQorc3luIHJlZ2lvbiBnaXRFbWFpbCBtYXRjaGdyb3VwPWdpdEVtYWlsRGVsaW1pdGVyIHN0YXJ0PS88LyBlbmQ9Lz4vIGtlZXBlbmQgb25lbGluZSBjb250YWluZWQgY29udGFpbmVkaW49Z2l0SWRlbnRpdHkKKworc3luIG1hdGNoICBnaXROb3Rlc0hlYWRlciAvXk5vdGVzOlx6ZVxuICAgIC8KIAogaGkgZGVmIGxpbmsgZ2l0RGF0ZUhlYWRlciAgICAgICAgZ2l0SWRlbnRpdHlIZWFkZXIKIGhpIGRlZiBsaW5rIGdpdElkZW50aXR5SGVhZGVyICAgIGdpdElkZW50aXR5S2V5d29yZAogaGkgZGVmIGxpbmsgZ2l0SWRlbnRpdHlLZXl3b3JkICAgTGFiZWwKK2hpIGRlZiBsaW5rIGdpdE5vdGVzSGVhZGVyICAgICAgIGdpdEtleXdvcmQKIGhpIGRlZiBsaW5rIGdpdFJlZmxvZ0hlYWRlciAgICAgIGdpdEtleXdvcmQKIGhpIGRlZiBsaW5rIGdpdEtleXdvcmQgICAgICAgICAgIEtleXdvcmQKIGhpIGRlZiBsaW5rIGdpdElkZW50aXR5ICAgICAgICAgIFN0cmluZwpAQCAtNjMsNSArNzIsNyBAQAogaGkgZGVmIGxpbmsgZ2l0UmVmZXJlbmNlICAgICAgICAgRnVuY3Rpb24KIGhpIGRlZiBsaW5rIGdpdFN0YWdlICAgICAgICAgICAgIGdpdFR5cGUKIGhpIGRlZiBsaW5rIGdpdFR5cGUgICAgICAgICAgICAgIFR5cGUKK2hpIGRlZiBsaW5rIGdpdERpZmZBZGRlZCAgICAgICAgIGRpZmZBZGRlZAoraGkgZGVmIGxpbmsgZ2l0RGlmZlJlbW92ZWQgICAgICAgZGlmZlJlbW92ZWQKIAogbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZ2l0IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZ2l0Y29tbWl0LnZpbSBiL3J1bnRpbWUvc3ludGF4L2dpdGNvbW1pdC52aW0KaW5kZXggZTc1ZDA0NC4uMTJkYjBhNCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZ2l0Y29tbWl0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9naXRjb21taXQudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CWdpdCBjb21taXQgZmlsZQotIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+CisiIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUub3JnPgogIiBGaWxlbmFtZXM6CSouZ2l0L0NPTU1JVF9FRElUTVNHCi0iIExhc3QgQ2hhbmdlOgkyMDA4IEFwciAwOQorIiBMYXN0IENoYW5nZToJMjAwOSBEZWMgMjQKIAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgICBmaW5pc2gKQEAgLTE2LDQ4ICsxNiw2NiBAQAogZW5kaWYKIAogc3luIGluY2x1ZGUgQGdpdGNvbW1pdERpZmYgc3ludGF4L2RpZmYudmltCi1zeW4gcmVnaW9uIGdpdGNvbW1pdERpZmYgc3RhcnQ9L1wlKF5kaWZmIC0tZ2l0IFwpXEA9LyBlbmQ9L14kXHxeI1xAPS8gY29udGFpbnM9QGdpdGNvbW1pdERpZmYKK3N5biByZWdpb24gZ2l0Y29tbWl0RGlmZiBzdGFydD0vXCUoXmRpZmYgLS1cJShnaXRcfGNjXHxjb21iaW5lZFwpIFwpXEA9LyBlbmQ9L14kXHxeI1xAPS8gY29udGFpbnM9QGdpdGNvbW1pdERpZmYKIAogc3luIG1hdGNoICAgZ2l0Y29tbWl0Rmlyc3RMaW5lCSJcJV5bXiNdLioiICBuZXh0Z3JvdXA9Z2l0Y29tbWl0Qmxhbmsgc2tpcG5sCi1zeW4gbWF0Y2ggICBnaXRjb21taXRTdW1tYXJ5ICAJIl4uXHswLDUwXH0iIGNvbnRhaW5lZCBjb250YWluZWRpbj1naXRjb21taXRGaXJzdExpbmUgbmV4dGdyb3VwPWdpdGNvbW1pdE92ZXJmbG93IGNvbnRhaW5zPUBTcGVsbAorc3luIG1hdGNoICAgZ2l0Y29tbWl0U3VtbWFyeQkiXi5cezAsNTBcfSIgY29udGFpbmVkIGNvbnRhaW5lZGluPWdpdGNvbW1pdEZpcnN0TGluZSBuZXh0Z3JvdXA9Z2l0Y29tbWl0T3ZlcmZsb3cgY29udGFpbnM9QFNwZWxsCiBzeW4gbWF0Y2ggICBnaXRjb21taXRPdmVyZmxvdwkiLioiIGNvbnRhaW5lZCBjb250YWlucz1AU3BlbGwKIHN5biBtYXRjaCAgIGdpdGNvbW1pdEJsYW5rCSJeW14jXS4qIiBjb250YWluZWQgY29udGFpbnM9QFNwZWxsCiBzeW4gbWF0Y2ggICBnaXRjb21taXRDb21tZW50CSJeIy4qIgotc3luIHJlZ2lvbiAgZ2l0Y29tbWl0SGVhZAlzdGFydD0vXiMgICAvIGVuZD0vXiMkLyBjb250YWluZWQgdHJhbnNwYXJlbnQKK3N5biBtYXRjaCAgIGdpdGNvbW1pdEhlYWQJIl5cJSgjICAgLipcblwpXCsjJCIgY29udGFpbmVkIHRyYW5zcGFyZW50CiBzeW4gbWF0Y2ggICBnaXRjb21taXRPbkJyYW5jaAkiXCUoXiMgXClcQDw9T24gYnJhbmNoIiBjb250YWluZWQgY29udGFpbmVkaW49Z2l0Y29tbWl0Q29tbWVudCBuZXh0Z3JvdXA9Z2l0Y29tbWl0QnJhbmNoIHNraXB3aGl0ZQotc3luIG1hdGNoICAgZ2l0Y29tbWl0QnJhbmNoCSJcU1wrIiBjb250YWluZWQKK3N5biBtYXRjaCAgIGdpdGNvbW1pdE9uQnJhbmNoCSJcJSheIyBcKVxAPD1Zb3VyIGJyYW5jaCAuXHstXH0gJyIgY29udGFpbmVkIGNvbnRhaW5lZGluPWdpdGNvbW1pdENvbW1lbnQgbmV4dGdyb3VwPWdpdGNvbW1pdEJyYW5jaCBza2lwd2hpdGUKK3N5biBtYXRjaCAgIGdpdGNvbW1pdEJyYW5jaAkiW14gXHQnXVwrIiBjb250YWluZWQKK3N5biBtYXRjaCAgIGdpdGNvbW1pdE5vQnJhbmNoCSJcJSheIyBcKVxAPD1Ob3QgY3VycmVudGx5IG9uIGFueSBicmFuY2guIiBjb250YWluZWQgY29udGFpbmVkaW49Z2l0Y29tbWl0Q29tbWVudAogc3luIG1hdGNoICAgZ2l0Y29tbWl0SGVhZGVyCSJcJSheIyBcKVxAPD0uKjokIgljb250YWluZWQgY29udGFpbmVkaW49Z2l0Y29tbWl0Q29tbWVudAorc3luIHJlZ2lvbiAgZ2l0Y29tbWl0QXV0aG9yCW1hdGNoZ3JvdXA9Z2l0Q29tbWl0SGVhZGVyIHN0YXJ0PS9cJSheIyBcKVxAPD1BdXRob3I6LyBlbmQ9LyQvIGtlZXBlbmQgb25lbGluZSBjb250YWluZWQgY29udGFpbmVkaW49Z2l0Y29tbWl0Q29tbWVudCB0cmFuc3BhcmVudAorc3luIG1hdGNoICAgZ2l0Y29tbWl0Tm9DaGFuZ2VzCSJcJSheIyBcKVxAPD1ObyBjaGFuZ2VzJCIgY29udGFpbmVkIGNvbnRhaW5lZGluPWdpdGNvbW1pdENvbW1lbnQKIAogc3luIHJlZ2lvbiAgZ2l0Y29tbWl0VW50cmFja2VkCXN0YXJ0PS9eIyBVbnRyYWNrZWQgZmlsZXM6LyBlbmQ9L14jJFx8XiNcQCEvIGNvbnRhaW5zPWdpdGNvbW1pdEhlYWRlcixnaXRjb21taXRIZWFkLGdpdGNvbW1pdFVudHJhY2tlZEZpbGUgZm9sZAogc3luIG1hdGNoICAgZ2l0Y29tbWl0VW50cmFja2VkRmlsZSAgIlx0XEA8PS4qIgljb250YWluZWQKIAogc3luIHJlZ2lvbiAgZ2l0Y29tbWl0RGlzY2FyZGVkCXN0YXJ0PS9eIyBDaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDovIGVuZD0vXiMkXHxeI1xAIS8gY29udGFpbnM9Z2l0Y29tbWl0SGVhZGVyLGdpdGNvbW1pdEhlYWQsZ2l0Y29tbWl0RGlzY2FyZGVkVHlwZSBmb2xkCiBzeW4gcmVnaW9uICBnaXRjb21taXRTZWxlY3RlZAlzdGFydD0vXiMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6LyBlbmQ9L14jJFx8XiNcQCEvIGNvbnRhaW5zPWdpdGNvbW1pdEhlYWRlcixnaXRjb21taXRIZWFkLGdpdGNvbW1pdFNlbGVjdGVkVHlwZSBmb2xkCitzeW4gcmVnaW9uICBnaXRjb21taXRVbm1lcmdlZAlzdGFydD0vXiMgVW5tZXJnZWQgcGF0aHM6LyBlbmQ9L14jJFx8XiNcQCEvIGNvbnRhaW5zPWdpdGNvbW1pdEhlYWRlcixnaXRjb21taXRIZWFkLGdpdGNvbW1pdFVubWVyZ2VkVHlwZSBmb2xkCiAKIHN5biBtYXRjaCAgIGdpdGNvbW1pdERpc2NhcmRlZFR5cGUJIlx0XEA8PVthLXpdW2EteiBdKlthLXpdOiAiaGU9ZS0yCWNvbnRhaW5lZCBjb250YWluZWRpbj1naXRjb21taXRDb21tZW50IG5leHRncm91cD1naXRjb21taXREaXNjYXJkZWRGaWxlIHNraXB3aGl0ZQogc3luIG1hdGNoICAgZ2l0Y29tbWl0U2VsZWN0ZWRUeXBlCSJcdFxAPD1bYS16XVthLXogXSpbYS16XTogImhlPWUtMgljb250YWluZWQgY29udGFpbmVkaW49Z2l0Y29tbWl0Q29tbWVudCBuZXh0Z3JvdXA9Z2l0Y29tbWl0U2VsZWN0ZWRGaWxlIHNraXB3aGl0ZQorc3luIG1hdGNoICAgZ2l0Y29tbWl0VW5tZXJnZWRUeXBlCSJcdFxAPD1bYS16XVthLXogXSpbYS16XTogImhlPWUtMgljb250YWluZWQgY29udGFpbmVkaW49Z2l0Y29tbWl0Q29tbWVudCBuZXh0Z3JvdXA9Z2l0Y29tbWl0VW5tZXJnZWRGaWxlIHNraXB3aGl0ZQogc3luIG1hdGNoICAgZ2l0Y29tbWl0RGlzY2FyZGVkRmlsZQkiLlx7LVx9XCUoJFx8IC0+IFwpXEA9IiBjb250YWluZWQgbmV4dGdyb3VwPWdpdGNvbW1pdERpc2NhcmRlZEFycm93CiBzeW4gbWF0Y2ggICBnaXRjb21taXRTZWxlY3RlZEZpbGUJIi5cey1cfVwlKCRcfCAtPiBcKVxAPSIgY29udGFpbmVkIG5leHRncm91cD1naXRjb21taXRTZWxlY3RlZEFycm93CitzeW4gbWF0Y2ggICBnaXRjb21taXRVbm1lcmdlZEZpbGUJIi5cey1cfVwlKCRcfCAtPiBcKVxAPSIgY29udGFpbmVkIG5leHRncm91cD1naXRjb21taXRTZWxlY3RlZEFycm93CiBzeW4gbWF0Y2ggICBnaXRjb21taXREaXNjYXJkZWRBcnJvdwkiIC0+ICIgY29udGFpbmVkIG5leHRncm91cD1naXRjb21taXREaXNjYXJkZWRGaWxlCiBzeW4gbWF0Y2ggICBnaXRjb21taXRTZWxlY3RlZEFycm93CSIgLT4gIiBjb250YWluZWQgbmV4dGdyb3VwPWdpdGNvbW1pdFNlbGVjdGVkRmlsZQorc3luIG1hdGNoICAgZ2l0Y29tbWl0VW5tZXJnZWRBcnJvdwkiIC0+ICIgY29udGFpbmVkIG5leHRncm91cD1naXRjb21taXRTZWxlY3RlZEZpbGUKKworc3luIG1hdGNoICAgZ2l0Y29tbWl0V2FybmluZwkJIlwlXlteI10uKjogbmVlZHMgbWVyZ2UkIiBuZXh0Z3JvdXA9Z2l0Y29tbWl0V2FybmluZyBza2lwbmwKK3N5biBtYXRjaCAgIGdpdGNvbW1pdFdhcm5pbmcJCSJeW14jXS4qOiBuZWVkcyBtZXJnZSQiIG5leHRncm91cD1naXRjb21taXRXYXJuaW5nIHNraXBubCBjb250YWluZWQKK3N5biBtYXRjaCAgIGdpdGNvbW1pdFdhcm5pbmcJCSJeXCUobm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcfG5vdGhpbmcgXCUoYWRkZWQgXClcPXRvIGNvbW1pdFwpXD4uKlwlJCIKIAogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0U3VtbWFyeQkJS2V5d29yZAogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0Q29tbWVudAkJQ29tbWVudAogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0VW50cmFja2VkCQlnaXRjb21taXRDb21tZW50CiBoaSBkZWYgbGluayBnaXRjb21taXREaXNjYXJkZWQJCWdpdGNvbW1pdENvbW1lbnQKIGhpIGRlZiBsaW5rIGdpdGNvbW1pdFNlbGVjdGVkCQlnaXRjb21taXRDb21tZW50CitoaSBkZWYgbGluayBnaXRjb21taXRVbm1lcmdlZAkJZ2l0Y29tbWl0Q29tbWVudAogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0T25CcmFuY2gJCUNvbW1lbnQKIGhpIGRlZiBsaW5rIGdpdGNvbW1pdEJyYW5jaAkJU3BlY2lhbAoraGkgZGVmIGxpbmsgZ2l0Y29tbWl0Tm9CcmFuY2gJCWdpdENvbW1pdEJyYW5jaAogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0RGlzY2FyZGVkVHlwZQlnaXRjb21taXRUeXBlCiBoaSBkZWYgbGluayBnaXRjb21taXRTZWxlY3RlZFR5cGUJZ2l0Y29tbWl0VHlwZQoraGkgZGVmIGxpbmsgZ2l0Y29tbWl0VW5tZXJnZWRUeXBlCWdpdGNvbW1pdFR5cGUKIGhpIGRlZiBsaW5rIGdpdGNvbW1pdFR5cGUJCVR5cGUKK2hpIGRlZiBsaW5rIGdpdGNvbW1pdE5vQ2hhbmdlcwkJZ2l0Y29tbWl0SGVhZGVyCiBoaSBkZWYgbGluayBnaXRjb21taXRIZWFkZXIJCVByZVByb2MKIGhpIGRlZiBsaW5rIGdpdGNvbW1pdFVudHJhY2tlZEZpbGUJZ2l0Y29tbWl0RmlsZQogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0RGlzY2FyZGVkRmlsZQlnaXRjb21taXRGaWxlCiBoaSBkZWYgbGluayBnaXRjb21taXRTZWxlY3RlZEZpbGUJZ2l0Y29tbWl0RmlsZQoraGkgZGVmIGxpbmsgZ2l0Y29tbWl0VW5tZXJnZWRGaWxlCWdpdGNvbW1pdEZpbGUKIGhpIGRlZiBsaW5rIGdpdGNvbW1pdEZpbGUJCUNvbnN0YW50CiBoaSBkZWYgbGluayBnaXRjb21taXREaXNjYXJkZWRBcnJvdwlnaXRjb21taXRBcnJvdwogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0U2VsZWN0ZWRBcnJvdwlnaXRjb21taXRBcnJvdworaGkgZGVmIGxpbmsgZ2l0Y29tbWl0VW5tZXJnZWRBcnJvdwlnaXRjb21taXRBcnJvdwogaGkgZGVmIGxpbmsgZ2l0Y29tbWl0QXJyb3cJCWdpdGNvbW1pdENvbW1lbnQKICJoaSBkZWYgbGluayBnaXRjb21taXRPdmVyZmxvdwkJRXJyb3IKIGhpIGRlZiBsaW5rIGdpdGNvbW1pdEJsYW5rCQlFcnJvcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZ2l0Y29uZmlnLnZpbSBiL3J1bnRpbWUvc3ludGF4L2dpdGNvbmZpZy52aW0KaW5kZXggZjQ0Y2UyYi4uZGMxNGFkYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZ2l0Y29uZmlnLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9naXRjb25maWcudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CWdpdCBjb25maWcgZmlsZQotIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLmluZm8+CisiIE1haW50YWluZXI6CVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUub3JnPgogIiBGaWxlbmFtZXM6CWdpdGNvbmZpZywgLmdpdGNvbmZpZywgKi5naXQvY29uZmlnCi0iIExhc3QgQ2hhbmdlOgkyMDA4IEp1biAwNAorIiBMYXN0IENoYW5nZToJMjAwOSBEZWMgMjQKIAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgICBmaW5pc2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2dpdHJlYmFzZS52aW0gYi9ydW50aW1lL3N5bnRheC9naXRyZWJhc2UudmltCmluZGV4IDA4MDI1MmYuLjk0MzYxYzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2dpdHJlYmFzZS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZ2l0cmViYXNlLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglnaXQgcmViYXNlIC0taW50ZXJhY3RpdmUKLSIgTWFpbnRhaW5lcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorIiBNYWludGFpbmVyOglUaW0gUG9wZSA8dmltTk9TUEFNQHRwb3BlLm9yZz4KICIgRmlsZW5hbWVzOglnaXQtcmViYXNlLXRvZG8KLSIgTGFzdCBDaGFuZ2U6CTIwMDggQXByIDE2CisiIExhc3QgQ2hhbmdlOgkyMDA5IERlYyAyNAogCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogICAgIGZpbmlzaApAQCAtMTQsNiArMTQsNyBAQAogc3luIG1hdGNoICAgZ2l0cmViYXNlQ29tbWl0ICJcdjxceHs3LDQwfT4iICBuZXh0Z3JvdXA9Z2l0cmViYXNlU3VtbWFyeSBza2lwd2hpdGUKIHN5biBtYXRjaCAgIGdpdHJlYmFzZVBpY2sgICAiXHZecCUoaWNrKT0+IiAgIG5leHRncm91cD1naXRyZWJhc2VDb21taXQgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggICBnaXRyZWJhc2VFZGl0ICAgIlx2XmUlKGRpdCk9PiIgICBuZXh0Z3JvdXA9Z2l0cmViYXNlQ29tbWl0IHNraXB3aGl0ZQorc3luIG1hdGNoICAgZ2l0cmViYXNlUmV3b3JkICJcdl5yJShld29yZCk9PiIgbmV4dGdyb3VwPWdpdHJlYmFzZUNvbW1pdCBza2lwd2hpdGUKIHN5biBtYXRjaCAgIGdpdHJlYmFzZVNxdWFzaCAiXHZecyUocXVhc2gpPT4iIG5leHRncm91cD1naXRyZWJhc2VDb21taXQgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggICBnaXRyZWJhc2VTdW1tYXJ5ICIuKiIgICAgICAgICAgICAgICBjb250YWlucz1naXRyZWJhc2VIYXNoIGNvbnRhaW5lZAogc3luIG1hdGNoICAgZ2l0cmViYXNlQ29tbWVudCAiXiMuKiIgICAgICAgICAgICAgY29udGFpbnM9Z2l0cmViYXNlSGFzaApAQCAtMjMsOSArMjQsMTAgQEAKIGhpIGRlZiBsaW5rIGdpdHJlYmFzZUhhc2ggICAgICAgICAgIElkZW50aWZpZXIKIGhpIGRlZiBsaW5rIGdpdHJlYmFzZVBpY2sgICAgICAgICAgIFN0YXRlbWVudAogaGkgZGVmIGxpbmsgZ2l0cmViYXNlRWRpdCAgICAgICAgICAgUHJlUHJvYworaGkgZGVmIGxpbmsgZ2l0cmViYXNlUmV3b3JkICAgICAgICAgU3BlY2lhbAogaGkgZGVmIGxpbmsgZ2l0cmViYXNlU3F1YXNoICAgICAgICAgVHlwZQogaGkgZGVmIGxpbmsgZ2l0cmViYXNlU3VtbWFyeSAgICAgICAgU3RyaW5nCiBoaSBkZWYgbGluayBnaXRyZWJhc2VDb21tZW50ICAgICAgICBDb21tZW50Ci1oaSBkZWYgbGluayBnaXRyZWJhc2VTcXVhc2hFcnJvciAgICAgRXJyb3IKK2hpIGRlZiBsaW5rIGdpdHJlYmFzZVNxdWFzaEVycm9yICAgIEVycm9yCiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gImdpdHJlYmFzZSIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2dyb292eS52aW0gYi9ydW50aW1lL3N5bnRheC9ncm9vdnkudmltCmluZGV4IDVmOTZkZmIuLmQyZjM0OTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2dyb292eS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZ3Jvb3Z5LnZpbQpAQCAtMjI4LDYgKzIyOCw3IEBACiAgICIgc3ludGF4IGluY2x1ZGUgQGdyb292eUh0bWwgPHNmaWxlPjpwOmgvaHRtbC52aW0KICAgIHN5bnRheCBpbmNsdWRlIEBncm9vdnlIdG1sIHJ1bnRpbWUhIHN5bnRheC9odG1sLnZpbQogICB1bmxldCBiOmN1cnJlbnRfc3ludGF4CisgIHN5bnRheCBzcGVsbCBkZWZhdWx0ICAiIGFkZGVkIGJ5IEJyYW0KICAgc3luIHJlZ2lvbiAgZ3Jvb3Z5RG9jQ29tbWVudCAgICBzdGFydD0iL1wqXCoiICBlbmQ9IlwqLyIga2VlcGVuZCBjb250YWlucz1ncm9vdnlDb21tZW50VGl0bGUsQGdyb292eUh0bWwsZ3Jvb3Z5RG9jVGFncyxncm9vdnlUb2RvLEBTcGVsbAogICBzeW4gcmVnaW9uICBncm9vdnlDb21tZW50VGl0bGUgIGNvbnRhaW5lZCBtYXRjaGdyb3VwPWdyb292eURvY0NvbW1lbnQgc3RhcnQ9Ii9cKlwqIiAgIG1hdGNoZ3JvdXA9Z3Jvb3Z5Q29tbWVudFRpdGxlIGtlZXBlbmQgZW5kPSJcLiQiIGVuZD0iXC5bIFx0XHI8Jl0ibWU9ZS0xIGVuZD0iW157XUAibWU9cy0yLGhlPXMtMSBlbmQ9IlwqLyJtZT1zLTEsaGU9cy0xIGNvbnRhaW5zPUBncm9vdnlIdG1sLGdyb292eUNvbW1lbnRTdGFyLGdyb292eVRvZG8sQFNwZWxsLGdyb292eURvY1RhZ3MKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaGFza2VsbC52aW0gYi9ydW50aW1lL3N5bnRheC9oYXNrZWxsLnZpbQppbmRleCAyMWZjZjgxLi44YWZjYTA0IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9oYXNrZWxsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9oYXNrZWxsLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOgkJSGFza2VsbAogIiBNYWludGFpbmVyOgkJSGFza2VsbCBDYWZlIG1haWxpbmdsaXN0IDxoYXNrZWxsLWNhZmVAaGFza2VsbC5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkJMjAwNCBGZWIgMjMKKyIgTGFzdCBDaGFuZ2U6CQkyMDA4IERlYyAxNQogIiBPcmlnaW5hbCBBdXRob3I6CUpvaG4gV2lsbGlhbXMgPGpyd0Bwb2JveC5jb20+CiAiCiAiIFRoYW5rcyB0byBSeWFuIENydW1sZXkgZm9yIHN1Z2dlc3Rpb25zIGFuZCBKb2huIE1lYWNoYW0gZm9yCkBAIC0zMCw2ICszMCw3IEBACiAiCSAgICAgICBpbiBlb2wgY29tbWVudCBjaGFyYWN0ZXIgY2xhc3MKICIgMjAwNCBGZWIgMjM6IE1hZGUgdGhlIGxlYWRpbmcgY29tbWVudHMgc29tZXdoYXQgY2xlYXJlciB3aGVyZSBpdCBjb21lcwogIgkgICAgICAgdG8gYXR0cmlidXRpb24gb2Ygd29yay4KKyIgMjAwOCBEZWMgMTU6IEFkZGVkIGNvbW1lbnRzIGFzIGNvbnRhaW5lZCBlbGVtZW50IGluIGltcG9ydCBzdGF0ZW1lbnRzCiAKICIgUmVtb3ZlIGFueSBvbGQgc3ludGF4IHN0dWZmIGhhbmdpbmcgYXJvdW5kCiBpZiB2ZXJzaW9uIDwgNjAwCkBAIC02Nyw3ICs2OCw3IEBACiAiIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZXkgd291bGQgbWF0Y2ggYXMga2V5d29yZHMgYXQgdGhlIHN0YXJ0IG9mIGEKICIgImxpdGVyYXRlIiBjb21tZW50IChzZWUgbGhzLnZpbSkuCiBzeW4gbWF0Y2ggaHNNb2R1bGUJCSJcPG1vZHVsZVw+Igotc3luIG1hdGNoIGhzSW1wb3J0CQkiXDxpbXBvcnRcPi4qImhlPXMrNiBjb250YWlucz1oc0ltcG9ydE1vZAorc3luIG1hdGNoIGhzSW1wb3J0CQkiXDxpbXBvcnRcPi4qImhlPXMrNiBjb250YWlucz1oc0ltcG9ydE1vZCxoc0xpbmVDb21tZW50LGhzQmxvY2tDb21tZW50CiBzeW4gbWF0Y2ggaHNJbXBvcnRNb2QJCWNvbnRhaW5lZCAiXDxcKGFzXHxxdWFsaWZpZWRcfGhpZGluZ1wpXD4iCiBzeW4gbWF0Y2ggaHNJbmZpeAkJIlw8XChpbmZpeFx8aW5maXhsXHxpbmZpeHJcKVw+Igogc3luIG1hdGNoIGhzU3RydWN0dXJlCQkiXDxcKGNsYXNzXHxkYXRhXHxkZXJpdmluZ1x8aW5zdGFuY2VcfGRlZmF1bHRcfHdoZXJlXClcPiIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2hlbHAudmltIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KaW5kZXggZTYwMGRlNy4uZDBmNDQ3ZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaGVscC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KQEAgLTEsMTQgKzEsMTQgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglWaW0gaGVscCBmaWxlCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIChCcmFtQHZpbS5vcmcpCi0iIExhc3QgQ2hhbmdlOgkyMDA2IE1heSAxMworIiBMYXN0IENoYW5nZToJMjAwOSBNYXkgMTgKIAogIiBRdWl0IHdoZW4gYSAoY3VzdG9tKSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaAogZW5kaWYKIAotc3luIG1hdGNoIGhlbHBIZWFkbGluZQkJIl5bLUEtWiAuXVwrWyBcdF1cK1wqIm1lPWUtMQorc3luIG1hdGNoIGhlbHBIZWFkbGluZQkJIl5bLUEtWiAuXVstQS1aMC05IC4oKV0qWyBcdF1cK1wqIm1lPWUtMQogc3luIG1hdGNoIGhlbHBTZWN0aW9uRGVsaW0JIl49XHszLH0uKj09PSQiCiBzeW4gbWF0Y2ggaGVscFNlY3Rpb25EZWxpbQkiXi1cezMsfS4qLS0kIgogc3luIHJlZ2lvbiBoZWxwRXhhbXBsZQkJbWF0Y2hncm91cD1oZWxwSWdub3JlIHN0YXJ0PSIgPiQiIHN0YXJ0PSJePiQiIGVuZD0iXlteIFx0XSJtZT1lLTEgZW5kPSJePCIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2hvZy52aW0gYi9ydW50aW1lL3N5bnRheC9ob2cudmltCmluZGV4IGYzOWMxNzEuLjdmMDFkN2YgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2hvZy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvaG9nLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgU25vcnQgc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CSAgU25vcnQgQ29uZmlndXJhdGlvbiBGaWxlIChzZWU6IGh0dHA6Ly93d3cuc25vcnQub3JnKQogIiBNYWludGFpbmVyOgkgIFBoaWwgV29vZCwgY29ybmV0dEBhcnBhLm5ldAotIiBMYXN0IENoYW5nZToJICAkRGF0ZSQKKyIgTGFzdCBDaGFuZ2U6CSAgJERhdGU6IDIwMDQvMDYvMTMgMTc6NDE6MTcgJAogIiBGaWxlbmFtZXM6CSAgKi5ob2cgKi5ydWxlcyBzbm9ydC5jb25mIHZpc2lvbi5jb25mCiAiIFVSTDoJCSAgaHR0cDovL2hvbWUubGFubC5nb3YvY3B3L3ZpbS9zeW50YXgvaG9nLnZpbQogIiBTbm9ydCBWZXJzaW9uOiAgMS44IEJ5IE1hcnRpbiBSb2VzY2ggKHJvZXNjaEBjbGFyay5uZXQsIHd3dy5zbm9ydC5vcmcpCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9pbml0bmcudmltIGIvcnVudGltZS9zeW50YXgvaW5pdG5nLnZpbQppbmRleCAyYjdiYzNiLi4xYTkxMmMxIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9pbml0bmcudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2luaXRuZy52aW0KQEAgLTQsNyArNCw3IEBACiAiIFVSTDoJCWh0dHA6Ly9nbGVuLmFsa29ob2wuZWUvcGxkL2luaXRuZy8KICIgTGljZW5zZToJR1BMIHYyCiAiIFZlcnNpb246CTAuMTMKLSIgTGFzdCBDaGFuZ2U6CSREYXRlJAorIiBMYXN0IENoYW5nZToJJERhdGU6IDIwMDcvMDUvMDUgMTc6MTc6NDAgJAogIgogIiBTeW50YXggaGlnaGxpZ2h0aW5nIGZvciBpbml0bmcgLmkgZmlsZXMuIEluaGVyaXRzIGZyb20gc2gudmltIGFuZCBhZGRzCiAiIGluIHRoZSBoaWxpdGluZyB0byBzdGFydC9zdG9wIHt9IGJsb2Nrcy4gUmVxdWlyZXMgdmltIDYuMyBvciBsYXRlci4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2phdmEudmltIGIvcnVudGltZS9zeW50YXgvamF2YS52aW0KaW5kZXggZDVlMzJmYS4uMThlNDUzMiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvamF2YS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvamF2YS52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiAgICAgSmF2YQogIiBNYWludGFpbmVyOiAgIENsYXVkaW8gRmxlaW5lciA8Y2xhdWRpb0BmbGVpbmVyLmNvbT4KICIgVVJMOgkJaHR0cDovL3d3dy5mbGVpbmVyLmNvbS92aW0vc3ludGF4L2phdmEudmltCi0iIExhc3QgQ2hhbmdlOiAgMjAwNyBEZWMgMjEKKyIgTGFzdCBDaGFuZ2U6ICAyMDA5IE1hciAxNAogCiAiIFBsZWFzZSBjaGVjayA6aGVscCBqYXZhLnZpbSBmb3IgY29tbWVudHMgb24gc29tZSBvZiB0aGUgb3B0aW9ucyBhdmFpbGFibGUuCiAKQEAgLTE1LDYgKzE1LDcgQEAKICAgZW5kaWYKICAgIiB3ZSBkZWZpbmUgaXQgaGVyZSBzbyB0aGF0IGluY2x1ZGVkIGZpbGVzIGNhbiB0ZXN0IGZvciBpdAogICBsZXQgbWFpbl9zeW50YXg9J2phdmEnCisgIHN5biByZWdpb24gamF2YUZvbGQgc3RhcnQ9InsiIGVuZD0ifSIgdHJhbnNwYXJlbnQgZm9sZAogZW5kaWYKIAogIiBkb24ndCB1c2Ugc3RhbmRhcmQgSGlMaW5rLCBpdCB3aWxsIG5vdCB3b3JrIHdpdGggaW5jbHVkZWQgc3ludGF4IGZpbGVzCkBAIC01OCw3ICs1OSw3IEBACiBzeW4ga2V5d29yZCBqYXZhQ2xhc3NEZWNsCWVudW0KIHN5biBtYXRjaCAgIGphdmFDbGFzc0RlY2wJIl5jbGFzc1w+Igogc3luIG1hdGNoICAgamF2YUNsYXNzRGVjbAkiW14uXVxzKlw8Y2xhc3NcPiJtcz1zKzEKLXN5biBtYXRjaCAgIGphdmFBbm5vdGF0aW9uICAgICAgIkBbXyRhLXpBLVpdW18kYS16QS1aMC05X10qXD4iCitzeW4gbWF0Y2ggICBqYXZhQW5ub3RhdGlvbiAgICAgICJAXChbXyRhLXpBLVpdW18kYS16QS1aMC05XSpcLlwpKltfJGEtekEtWl1bXyRhLXpBLVowLTldKlw+Igogc3luIG1hdGNoICAgamF2YUNsYXNzRGVjbCAgICAgICAiQGludGVyZmFjZVw+Igogc3luIGtleXdvcmQgamF2YUJyYW5jaAkJYnJlYWsgY29udGludWUgbmV4dGdyb3VwPWphdmFVc2VyTGFiZWxSZWYgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggICBqYXZhVXNlckxhYmVsUmVmCSJca1wrIiBjb250YWluZWQKQEAgLTEyMSwxMSArMTIyLDYgQEAKIHN5biBrZXl3b3JkIGphdmFMYWJlbAkJZGVmYXVsdAogCiBpZiAhZXhpc3RzKCJqYXZhX2FsbG93X2NwcF9rZXl3b3JkcyIpCi0gICIgVGhlIGRlZmF1bHQgdXNlZCB0byBiZSB0byBoaWdobGlnaHQgQysrIGtleXdvcmRzLiAgQnV0IHNldmVyYWwgcGVvcGxlCi0gICIgZG9uJ3QgbGlrZSB0aGF0LCBzbyBkZWZhdWx0IHRvIG5vdCBoaWdobGlnaHRpbmcgdGhlc2UuCi0gIGxldCBqYXZhX2FsbG93X2NwcF9rZXl3b3JkcyA9IDEKLWVuZGlmCi1pZiAhamF2YV9hbGxvd19jcHBfa2V5d29yZHMKICAgc3luIGtleXdvcmQgamF2YUVycm9yIGF1dG8gZGVsZXRlIGV4dGVybiBmcmllbmQgaW5saW5lIHJlZGVjbGFyZWQKICAgc3luIGtleXdvcmQgamF2YUVycm9yIHJlZ2lzdGVyIHNpZ25lZCBzaXplb2Ygc3RydWN0IHRlbXBsYXRlIHR5cGVkZWYgdW5pb24KICAgc3luIGtleXdvcmQgamF2YUVycm9yIHVuc2lnbmVkIG9wZXJhdG9yCkBAIC0xNjEsNiArMTU3LDExIEBACiAgICIgc3ludGF4IGNvbG9yaW5nIGZvciBqYXZhZG9jIGNvbW1lbnRzIChIVE1MKQogICBzeW50YXggaW5jbHVkZSBAamF2YUh0bWwgPHNmaWxlPjpwOmgvaHRtbC52aW0KICAgdW5sZXQgYjpjdXJyZW50X3N5bnRheAorICAiIEhUTUwgZW5hYmxlcyBzcGVsbCBjaGVja2luZyBmb3IgYWxsIHRleHQgdGhhdCBpcyBub3QgaW4gYSBzeW50YXggaXRlbS4gVGhpcworICAiIGlzIHdyb25nIGZvciBKYXZhIChhbGwgaWRlbnRpZmllcnMgd291bGQgYmUgc3BlbGwtY2hlY2tlZCksIHNvIGl0J3MgdW5kb25lCisgICIgaGVyZS4KKyAgc3ludGF4IHNwZWxsIGRlZmF1bHQKKwogICBzeW4gcmVnaW9uICBqYXZhRG9jQ29tbWVudCAgICBzdGFydD0iL1wqXCoiICBlbmQ9IlwqLyIga2VlcGVuZCBjb250YWlucz1qYXZhQ29tbWVudFRpdGxlLEBqYXZhSHRtbCxqYXZhRG9jVGFncyxqYXZhRG9jU2VlVGFnLGphdmFUb2RvLEBTcGVsbAogICBzeW4gcmVnaW9uICBqYXZhQ29tbWVudFRpdGxlICBjb250YWluZWQgbWF0Y2hncm91cD1qYXZhRG9jQ29tbWVudCBzdGFydD0iL1wqXCoiICAgbWF0Y2hncm91cD1qYXZhQ29tbWVudFRpdGxlIGtlZXBlbmQgZW5kPSJcLiQiIGVuZD0iXC5bIFx0XHI8Jl0ibWU9ZS0xIGVuZD0iW157XUAibWU9cy0yLGhlPXMtMSBlbmQ9IlwqLyJtZT1zLTEsaGU9cy0xIGNvbnRhaW5zPUBqYXZhSHRtbCxqYXZhQ29tbWVudFN0YXIsamF2YVRvZG8sQFNwZWxsLGphdmFEb2NUYWdzLGphdmFEb2NTZWVUYWcKIApAQCAtMTc5LDcgKzE4MCw3IEBACiAiIFN0cmluZ3MgYW5kIGNvbnN0YW50cwogc3luIG1hdGNoICAgamF2YVNwZWNpYWxFcnJvciAgICAgY29udGFpbmVkICJcXC4iCiBzeW4gbWF0Y2ggICBqYXZhU3BlY2lhbENoYXJFcnJvciBjb250YWluZWQgIlteJ10iCi1zeW4gbWF0Y2ggICBqYXZhU3BlY2lhbENoYXIgICAgICBjb250YWluZWQgIlxcXChbNC05XVxkXHxbMC0zXVxkXGRcfFtcIlxcJ250YnJmXVx8dVx4XHs0XH1cKSIKK3N5biBtYXRjaCAgIGphdmFTcGVjaWFsQ2hhciAgICAgIGNvbnRhaW5lZCAiXFxcKFs0LTldXGRcfFswLTNdXGRcZFx8W1wiXFwnbnRicmZdXHx1XCtceFx7NFx9XCkiCiBzeW4gcmVnaW9uICBqYXZhU3RyaW5nCQlzdGFydD0rIisgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPWphdmFTcGVjaWFsQ2hhcixqYXZhU3BlY2lhbEVycm9yLEBTcGVsbAogIiBuZXh0IGxpbmUgZGlzYWJsZWQsIGl0IGNhbiBjYXVzZSBhIGNyYXNoIGZvciBhIGxvbmcgbGluZQogInN5biBtYXRjaCAgIGphdmFTdHJpbmdFcnJvcgkgICsiXChbXiJcXF1cfFxcLlwpKiQrCkBAIC0xOTIsNyArMTkzLDcgQEAKIHN5biBtYXRjaCAgIGphdmFOdW1iZXIJCSAiXDxcZFwrXChbZUVdWy0rXVw9XGRcK1wpXD1bZkZkRF1cPiIKIAogIiB1bmljb2RlIGNoYXJhY3RlcnMKLXN5biBtYXRjaCAgIGphdmFTcGVjaWFsICJcXHVcZFx7NFx9Igorc3luIG1hdGNoICAgamF2YVNwZWNpYWwgIlxcdVwrXGRcezRcfSIKIAogc3luIGNsdXN0ZXIgamF2YVRvcCBhZGQ9amF2YVN0cmluZyxqYXZhQ2hhcmFjdGVyLGphdmFOdW1iZXIsamF2YVNwZWNpYWwsamF2YVN0cmluZ0Vycm9yCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2tjb25maWcudmltIGIvcnVudGltZS9zeW50YXgva2NvbmZpZy52aW0KaW5kZXggYTY4NTkyZS4uYTZjZWIxNyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgva2NvbmZpZy52aW0KKysrIGIvcnVudGltZS9zeW50YXgva2NvbmZpZy52aW0KQEAgLTEsNiArMSw2IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBNYWludGFpbmVyOiAgICAgICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNi0wNC0xNAorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA5LTA1LTI1CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtNjY2LDkgKzY2Niw5IEBACiAKIHN5biBtYXRjaCAgIGtjb25maWdDb21tZW50ICAgICAgICAgICAgZGlzcGxheSAnIy4qJCcgY29udGFpbnM9a2NvbmZpZ1RvZG8KIAotc3luIGtleXdvcmQga2NvbmZpZ0tleXdvcmQgICAgICAgICAgICBjb25maWcgbWVudWNvbmZpZyBjb21tZW50IG1lbnUgbWFpbm1lbnUKK3N5biBrZXl3b3JkIGtjb25maWdLZXl3b3JkICAgICAgICAgICAgY29uZmlnIG1lbnVjb25maWcgY29tbWVudCBtYWlubWVudQogCi1zeW4ga2V5d29yZCBrY29uZmlnQ29uZGl0aW9uYWwgICAgICAgIGNob2ljZSBlbmRjaG9pY2UgaWYgZW5kaWYKK3N5biBrZXl3b3JkIGtjb25maWdDb25kaXRpb25hbCAgICAgICAgbWVudSBlbmRtZW51IGNob2ljZSBlbmRjaG9pY2UgaWYgZW5kaWYKIAogc3luIGtleXdvcmQga2NvbmZpZ1ByZVByb2MgICAgICAgICAgICBzb3VyY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ1BhdGgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2tzY3JpcHQudmltIGIvcnVudGltZS9zeW50YXgva3NjcmlwdC52aW0KaW5kZXggOTAzZjg0Ny4uY2VmYmUzOSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgva3NjcmlwdC52aW0KKysrIGIvcnVudGltZS9zeW50YXgva3NjcmlwdC52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOglrc2NyaXB0CiAiIE1haW50YWluZXI6CVRob21hcyBDYXByaWNlbGxpIDxvcnplbEB5YWxiaS5jb20+CiAiIFVSTDoJCWh0dHA6Ly9hcXVpbGEucmV6ZWwuZW5zdC5mci90aG9tYXMvdmltL2tzY3JpcHQudmltCi0iIENWUzoJCSRJZCQKKyIgQ1ZTOgkJJElkOiBrc2NyaXB0LnZpbSx2IDEuMSAyMDA0LzA2LzEzIDE3OjQwOjAyIHZpbWJvc3MgRXhwICQKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2xleC52aW0gYi9ydW50aW1lL3N5bnRheC9sZXgudmltCmluZGV4IGY3MTQ0YjkuLjY4YWU2MzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2xleC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbGV4LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglMZXgKLSIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KLSIgTGFzdCBDaGFuZ2U6CVNlcCAwNiwgMjAwNQotIiBWZXJzaW9uOgk3CisiIE1haW50YWluZXI6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KKyIgTGFzdCBDaGFuZ2U6CVNlcCAxMSwgMjAwOQorIiBWZXJzaW9uOgkxMAogIiBVUkw6CWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI3ZpbWxpbmtzX3N5bnRheAogIgogIiBPcHRpb246CkBAIC0xNiw3ICsxNiw3IEBACiAgIGZpbmlzaAogZW5kaWYKIAotIiBSZWFkIHRoZSBDIHN5bnRheCB0byBzdGFydCB3aXRoCisiIFJlYWQgdGhlIEMvQysrIHN5bnRheCB0byBzdGFydCB3aXRoCiBpZiB2ZXJzaW9uID49IDYwMAogICBpZiBleGlzdHMoImxleF91c2VzX2NwcCIpCiAgICAgcnVudGltZSEgc3ludGF4L2NwcC52aW0KQEAgLTM2LDMyICszNiw2MCBAQAogIiAtLS0gTGV4IHN0dWZmIC0tLQogIiAtLS0gPT09PT09PT09IC0tLQogCi0iSSdkIHByZWZlciB0byB1c2UgbGV4LiogLCBidXQgaXQgZG9lc24ndCBoYW5kbGUgZm9yd2FyZCBkZWZpbml0aW9ucyB5ZXQKKyJJJ2QgcHJlZmVyIHRvIHVzZSBsZXguKiAsIGJ1dCB2aW0gZG9lc24ndCBoYW5kbGUgZm9yd2FyZCBkZWZpbml0aW9ucyB5ZXQKIHN5biBjbHVzdGVyIGxleExpc3RHcm91cAkJY29udGFpbnM9bGV4QWJicnZCbG9jayxsZXhBYmJydixsZXhBYmJydixsZXhBYmJydlJlZ0V4cCxsZXhJbmNsdWRlLGxleFBhdEJsb2NrLGxleFBhdCxsZXhCcmFjZSxsZXhQYXRTdHJpbmcsbGV4UGF0VGFnLGxleFBhdFRhZyxsZXhQYXRDb21tZW50LGxleFBhdENvZGVMaW5lLGxleE1vcmVQYXQsbGV4UGF0U2VwLGxleFNsYXNoUXVvdGUsbGV4UGF0Q29kZSxjSW5QYXJlbixjVXNlckxhYmVsLGNPY3RhbFplcm8sY0NwcFNraXAsY0VyckluQnJhY2tldCxjRXJySW5QYXJlbixjT2N0YWxFcnJvcixjQ3BwT3V0MixjQ29tbWVudFN0YXJ0RXJyb3IsY1BhcmVuRXJyb3IKLXN5biBjbHVzdGVyIGxleExpc3RQYXRDb2RlR3JvdXAJY29udGFpbnM9bGV4QWJicnZCbG9jayxsZXhBYmJydixsZXhBYmJydixsZXhBYmJydlJlZ0V4cCxsZXhJbmNsdWRlLGxleFBhdEJsb2NrLGxleFBhdCxsZXhCcmFjZSxsZXhQYXRUYWcsbGV4UGF0VGFnLGxleFBhdENvbW1lbnQsbGV4UGF0Q29kZUxpbmUsbGV4TW9yZVBhdCxsZXhQYXRTZXAsbGV4U2xhc2hRdW90ZSxjSW5QYXJlbixjVXNlckxhYmVsLGNPY3RhbFplcm8sY0NwcFNraXAsY0VyckluQnJhY2tldCxjRXJySW5QYXJlbixjT2N0YWxFcnJvcixjQ3BwT3V0MixjQ29tbWVudFN0YXJ0RXJyb3IsY1BhcmVuRXJyb3IKK3N5biBjbHVzdGVyIGxleExpc3RQYXRDb2RlR3JvdXAJY29udGFpbnM9bGV4QWJicnZCbG9jayxsZXhBYmJydixsZXhBYmJydixsZXhBYmJydlJlZ0V4cCxsZXhJbmNsdWRlLGxleFBhdEJsb2NrLGxleFBhdCxsZXhCcmFjZSxsZXhQYXRUYWcsbGV4UGF0VGFnLGxleFBhdFRhZ1pvbmVTdGFydCxsZXhQYXRDb21tZW50LGxleFBhdENvZGVMaW5lLGxleE1vcmVQYXQsbGV4UGF0U2VwLGxleFNsYXNoUXVvdGUsY0luUGFyZW4sY1VzZXJMYWJlbCxjT2N0YWxaZXJvLGNDcHBTa2lwLGNFcnJJbkJyYWNrZXQsY0VyckluUGFyZW4sY09jdGFsRXJyb3IsY0NwcE91dDIsY0NvbW1lbnRTdGFydEVycm9yLGNQYXJlbkVycm9yCiAKICIgQWJicmV2aWF0aW9ucyBTZWN0aW9uCi1zeW4gcmVnaW9uIGxleEFiYnJ2QmxvY2sJc3RhcnQ9Il5cKFxoXCtcc1x8JXtcKSIgZW5kPSJeXHplJSUkIglza2lwbmwJbmV4dGdyb3VwPWxleFBhdEJsb2NrIGNvbnRhaW5zPWxleEFiYnJ2LGxleEluY2x1ZGUsbGV4QWJicnZDb21tZW50LGxleFN0YXJ0U3RhdGUKK2lmIGhhcygiZm9sZGluZyIpCisgc3luIHJlZ2lvbiBsZXhBYmJydkJsb2NrCWZvbGQgc3RhcnQ9Il5cKFxoXCtcc1x8JXtcKSIJZW5kPSJeXHplJSUkIglza2lwbmwJbmV4dGdyb3VwPWxleFBhdEJsb2NrIGNvbnRhaW5zPWxleEFiYnJ2LGxleEluY2x1ZGUsbGV4QWJicnZDb21tZW50LGxleFN0YXJ0U3RhdGUKK2Vsc2UKKyBzeW4gcmVnaW9uIGxleEFiYnJ2QmxvY2sJc3RhcnQ9Il5cKFxoXCtcc1x8JXtcKSIJZW5kPSJeXHplJSUkIglza2lwbmwJbmV4dGdyb3VwPWxleFBhdEJsb2NrIGNvbnRhaW5zPWxleEFiYnJ2LGxleEluY2x1ZGUsbGV4QWJicnZDb21tZW50LGxleFN0YXJ0U3RhdGUKK2VuZGlmCiBzeW4gbWF0Y2ggIGxleEFiYnJ2CQkiXlxJXGkqXHMibWU9ZS0xCQkJc2tpcHdoaXRlCWNvbnRhaW5lZCBuZXh0Z3JvdXA9bGV4QWJicnZSZWdFeHAKIHN5biBtYXRjaCAgbGV4QWJicnYJCSJeJVtzeF0iCQkJCQljb250YWluZWQKIHN5biBtYXRjaCAgbGV4QWJicnZSZWdFeHAJIlxzXFMuKiQibGM9MQkJCQljb250YWluZWQgbmV4dGdyb3VwPWxleEFiYnJ2LGxleEluY2x1ZGUKLXN5biByZWdpb24gbGV4SW5jbHVkZQltYXRjaGdyb3VwPWxleFNlcAlzdGFydD0iXiV7IiBlbmQ9IiV9Igljb250YWluZWQJY29udGFpbnM9QUxMQlVULEBsZXhMaXN0R3JvdXAKLXN5biByZWdpb24gbGV4QWJicnZDb21tZW50CXN0YXJ0PSJeXHNcKy9cKiIJZW5kPSJcKi8iCQkJY29udGFpbnM9QFNwZWxsCi1zeW4gcmVnaW9uIGxleFN0YXJ0U3RhdGUJbWF0Y2hncm91cD1sZXhBYmJydglzdGFydD0iXiVcYVwrIgllbmQ9IiQiCQkJY29udGFpbmVkCitpZiBoYXMoImZvbGRpbmciKQorIHN5biByZWdpb24gbGV4SW5jbHVkZQlmb2xkIG1hdGNoZ3JvdXA9bGV4U2VwCXN0YXJ0PSJeJXsiCWVuZD0iJX0iCWNvbnRhaW5lZAljb250YWlucz1BTExCVVQsQGxleExpc3RHcm91cAorIHN5biByZWdpb24gbGV4QWJicnZDb21tZW50CWZvbGQJCQlzdGFydD0iXlxzXCsvXCoiCWVuZD0iXCovIgljb250YWlucz1AU3BlbGwKKyBzeW4gcmVnaW9uIGxleFN0YXJ0U3RhdGUJZm9sZCBtYXRjaGdyb3VwPWxleEFiYnJ2CXN0YXJ0PSJeJVxhXCsiCWVuZD0iJCIJY29udGFpbmVkCitlbHNlCisgc3luIHJlZ2lvbiBsZXhJbmNsdWRlCW1hdGNoZ3JvdXA9bGV4U2VwCQlzdGFydD0iXiV7IgllbmQ9IiV9Igljb250YWluZWQJY29udGFpbnM9QUxMQlVULEBsZXhMaXN0R3JvdXAKKyBzeW4gcmVnaW9uIGxleEFiYnJ2Q29tbWVudAkJCQlzdGFydD0iXlxzXCsvXCoiCWVuZD0iXCovIgljb250YWlucz1AU3BlbGwKKyBzeW4gcmVnaW9uIGxleFN0YXJ0U3RhdGUJbWF0Y2hncm91cD1sZXhBYmJydgkJc3RhcnQ9Il4lXGFcKyIJZW5kPSIkIgljb250YWluZWQKK2VuZGlmCiAKICIlJSA6IFBhdHRlcm5zIHtBY3Rpb25zfQotc3luIHJlZ2lvbiBsZXhQYXRCbG9jawltYXRjaGdyb3VwPVRvZG8Jc3RhcnQ9Il4lJSQiIG1hdGNoZ3JvdXA9VG9kbyBlbmQ9Il4lJSQiCXNraXBubCBza2lwd2hpdGUgY29udGFpbnM9bGV4UGF0LGxleFBhdFRhZyxsZXhQYXRDb21tZW50Ci1zeW4gcmVnaW9uIGxleFBhdAkJc3RhcnQ9K1xTKyBza2lwPSJcXFxcXHxcXC4iCWVuZD0iXHMibWU9ZS0xCWNvbnRhaW5lZCBuZXh0Z3JvdXA9bGV4TW9yZVBhdCxsZXhQYXRTZXAgY29udGFpbnM9bGV4UGF0U3RyaW5nLGxleFNsYXNoUXVvdGUsbGV4QnJhY2UKLXN5biByZWdpb24gbGV4QnJhY2UJc3RhcnQ9IlxbIiBza2lwPStcXFxcXHxcXCsJCWVuZD0iXSIJCWNvbnRhaW5lZAotc3luIHJlZ2lvbiBsZXhQYXRTdHJpbmcJbWF0Y2hncm91cD1TdHJpbmcgc3RhcnQ9KyIrCXNraXA9K1xcXFxcfFxcIisJbWF0Y2hncm91cD1TdHJpbmcgZW5kPSsiKwljb250YWluZWQKLXN5biBtYXRjaCAgbGV4UGF0VGFnCSJePFxJXGkqXCgsXElcaSpcKSo+KiIJCQljb250YWluZWQgbmV4dGdyb3VwPWxleFBhdCxsZXhQYXRUYWcsbGV4TW9yZVBhdCxsZXhQYXRTZXAKK2lmIGhhcygiZm9sZGluZyIpCisgc3luIHJlZ2lvbiBsZXhQYXRCbG9jawlmb2xkIG1hdGNoZ3JvdXA9VG9kbwlzdGFydD0iXiUlJCIgbWF0Y2hncm91cD1Ub2RvCWVuZD0iXiUlJCIJc2tpcG5sIHNraXB3aGl0ZQljb250YWlucz1sZXhQYXRUYWcsbGV4UGF0VGFnWm9uZSxsZXhQYXRDb21tZW50LGxleFBhdAorIHN5biByZWdpb24gbGV4UGF0CQlmb2xkCQkJc3RhcnQ9K1xTKyBza2lwPSJcXFxcXHxcXC4iCWVuZD0iXHMibWU9ZS0xCQljb250YWluZWQgbmV4dGdyb3VwPWxleE1vcmVQYXQsbGV4UGF0U2VwIGNvbnRhaW5zPWxleFBhdFRhZyxsZXhQYXRTdHJpbmcsbGV4U2xhc2hRdW90ZSxsZXhCcmFjZQorIHN5biByZWdpb24gbGV4QnJhY2UJZm9sZAkJCXN0YXJ0PSJcWyIgc2tpcD0rXFxcXFx8XFwrCWVuZD0iXSIJCQljb250YWluZWQKKyBzeW4gcmVnaW9uIGxleFBhdFN0cmluZwlmb2xkIG1hdGNoZ3JvdXA9U3RyaW5nCXN0YXJ0PSsiKwlza2lwPStcXFxcXHxcXCIrCW1hdGNoZ3JvdXA9U3RyaW5nIGVuZD0rIisJY29udGFpbmVkCitlbHNlCisgc3luIHJlZ2lvbiBsZXhQYXRCbG9jawltYXRjaGdyb3VwPVRvZG8JCXN0YXJ0PSJeJSUkIiBtYXRjaGdyb3VwPVRvZG8JZW5kPSJeJSUkIglza2lwbmwgc2tpcHdoaXRlCWNvbnRhaW5zPWxleFBhdFRhZyxsZXhQYXRUYWdab25lLGxleFBhdENvbW1lbnQsbGV4UGF0Cisgc3luIHJlZ2lvbiBsZXhQYXQJCQkJCXN0YXJ0PStcUysgc2tpcD0iXFxcXFx8XFwuIgllbmQ9IlxzIm1lPWUtMQkJY29udGFpbmVkIG5leHRncm91cD1sZXhNb3JlUGF0LGxleFBhdFNlcCBjb250YWlucz1sZXhQYXRUYWcsbGV4UGF0U3RyaW5nLGxleFNsYXNoUXVvdGUsbGV4QnJhY2UKKyBzeW4gcmVnaW9uIGxleEJyYWNlCQkJCXN0YXJ0PSJcWyIgc2tpcD0rXFxcXFx8XFwrCWVuZD0iXSIJCQljb250YWluZWQKKyBzeW4gcmVnaW9uIGxleFBhdFN0cmluZwltYXRjaGdyb3VwPVN0cmluZwkJc3RhcnQ9KyIrCXNraXA9K1xcXFxcfFxcIisJbWF0Y2hncm91cD1TdHJpbmcgZW5kPSsiKwljb250YWluZWQKK2VuZGlmCitzeW4gbWF0Y2ggIGxleFBhdFRhZwkiXjxcSVxpKlwoLFxJXGkqXCkqPiIJCQljb250YWluZWQgbmV4dGdyb3VwPWxleFBhdCxsZXhQYXRUYWcsbGV4TW9yZVBhdCxsZXhQYXRTZXAKK3N5biBtYXRjaCAgbGV4UGF0VGFnWm9uZQkiXjxcSVxpKlwoLFxJXGkqXCkqPlxzKlx6ZXsiCQljb250YWluZWQgbmV4dGdyb3VwPWxleFBhdFRhZ1pvbmVTdGFydAogc3luIG1hdGNoICBsZXhQYXRUYWcJK148XElcaSpcKCxcSVxpKlwpKj4qXChcXFxcXCkqXFwiKwkJY29udGFpbmVkIG5leHRncm91cD1sZXhQYXQsbGV4UGF0VGFnLGxleE1vcmVQYXQsbGV4UGF0U2VwCi1zeW4gcmVnaW9uIGxleFBhdENvbW1lbnQJc3RhcnQ9Il5ccyovXCoiIGVuZD0iXCovIgkJc2tpcG5sCWNvbnRhaW5lZCBjb250YWlucz1jVG9kbyBza2lwd2hpdGUgbmV4dGdyb3VwPWxleFBhdENvbW1lbnQsbGV4UGF0LEBTcGVsbAoraWYgaGFzKCJmb2xkaW5nIikKKyBzeW4gcmVnaW9uICBsZXhQYXRUYWdab25lU3RhcnQgbWF0Y2hncm91cD1sZXhQYXRUYWcJZm9sZAlzdGFydD0neycgZW5kPSd9Jwljb250YWluZWQgY29udGFpbnM9bGV4UGF0LGxleFBhdENvbW1lbnQKKyBzeW4gcmVnaW9uIGxleFBhdENvbW1lbnQJc3RhcnQ9IlxzXCsvXCoiIGVuZD0iXCovIglmb2xkCXNraXBubAljb250YWluZWQgY29udGFpbnM9Y1RvZG8gc2tpcHdoaXRlIG5leHRncm91cD1sZXhQYXRDb21tZW50LGxleFBhdCxAU3BlbGwKK2Vsc2UKKyBzeW4gcmVnaW9uICBsZXhQYXRUYWdab25lU3RhcnQgbWF0Y2hncm91cD1sZXhQYXRUYWcJCXN0YXJ0PSd7JyBlbmQ9J30nCWNvbnRhaW5lZCBjb250YWlucz1sZXhQYXQsbGV4UGF0Q29tbWVudAorIHN5biByZWdpb24gbGV4UGF0Q29tbWVudAlzdGFydD0iXHNcKy9cKiIgZW5kPSJcKi8iCQlza2lwbmwJY29udGFpbmVkIGNvbnRhaW5zPWNUb2RvIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bGV4UGF0Q29tbWVudCxsZXhQYXQsQFNwZWxsCitlbmRpZgogc3luIG1hdGNoICBsZXhQYXRDb2RlTGluZQkiLiokIgkJCQkJY29udGFpbmVkIGNvbnRhaW5zPUFMTEJVVCxAbGV4TGlzdEdyb3VwCiBzeW4gbWF0Y2ggIGxleE1vcmVQYXQJIlxzKnxccyokIgkJCXNraXBubAljb250YWluZWQgbmV4dGdyb3VwPWxleFBhdCxsZXhQYXRUYWcsbGV4UGF0Q29tbWVudAogc3luIG1hdGNoICBsZXhQYXRTZXAJIlxzXCsiCQkJCQljb250YWluZWQgbmV4dGdyb3VwPWxleE1vcmVQYXQsbGV4UGF0Q29kZSxsZXhQYXRDb2RlTGluZQogc3luIG1hdGNoICBsZXhTbGFzaFF1b3RlCStcKFxcXFxcKSpcXCIrCQkJCWNvbnRhaW5lZAotc3luIHJlZ2lvbiBsZXhQYXRDb2RlIG1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSJ7IiBtYXRjaGdyb3VwPURlbGltaXRlciBlbmQ9In0iCXNraXBubCBjb250YWluZWQgY29udGFpbnM9QUxMQlVULEBsZXhMaXN0UGF0Q29kZUdyb3VwCitpZiBoYXMoImZvbGRpbmciKQorIHN5biByZWdpb24gbGV4UGF0Q29kZSBtYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0ieyIgZW5kPSJ9Iglmb2xkCXNraXBubCBjb250YWluZWQgY29udGFpbnM9QUxMQlVULEBsZXhMaXN0UGF0Q29kZUdyb3VwCitlbHNlCisgc3luIHJlZ2lvbiBsZXhQYXRDb2RlIG1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSJ7IiBlbmQ9In0iCQlza2lwbmwgY29udGFpbmVkIGNvbnRhaW5zPUFMTEJVVCxAbGV4TGlzdFBhdENvZGVHcm91cAorZW5kaWYKIAogc3luIGtleXdvcmQgbGV4Q0Z1bmN0aW9ucwlCRUdJTglpbnB1dAl1bnB1dAl3b3V0cHV0CXl5bGVuZwl5eWxvb2sJeXl0ZXh0CiBzeW4ga2V5d29yZCBsZXhDRnVuY3Rpb25zCUVDSE8Jb3V0cHV0CXdpbnB1dAl3dW5wdXQJeXlsZXNzCXl5bW9yZQl5eXdyYXAKQEAgLTgwLDkgKzEwOCwxMCBAQAogc3luIHN5bmMgbWF0Y2ggbGV4U3luY1BhdAlncm91cHRoZXJlIGxleFBhdEJsb2NrCSJeJSUkIgogCiAiIFRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KLWhpIGRlZiBsaW5rIGxleFNsYXNoUXVvdGUJbGV4UGF0Ci1oaSBkZWYgbGluayBsZXhCcmFjZQlsZXhQYXQKIGhpIGRlZiBsaW5rIGxleEFiYnJ2Q29tbWVudAlsZXhQYXRDb21tZW50CitoaSBkZWYgbGluayBsZXhCcmFjZQlsZXhQYXQKK2hpIGRlZiBsaW5rIGxleFBhdFRhZ1pvbmUJbGV4UGF0VGFnCitoaSBkZWYgbGluayBsZXhTbGFzaFF1b3RlCWxleFBhdAogCiBoaSBkZWYgbGluayBsZXhBYmJydlJlZ0V4cAlNYWNybwogaGkgZGVmIGxpbmsgbGV4QWJicnYJU3BlY2lhbENoYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2xoYXNrZWxsLnZpbSBiL3J1bnRpbWUvc3ludGF4L2xoYXNrZWxsLnZpbQppbmRleCA3ZmYwOWU3Li44Y2MxZGVkIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9saGFza2VsbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbGhhc2tlbGwudmltCkBAIC00LDggKzQsOCBAQAogIgkJCVxiZWdpbntjb2RlfSBcZW5ke2NvZGV9IGJsb2NrcwogIiBNYWludGFpbmVyOgkJSGFza2VsbCBDYWZlIG1haWxpbmdsaXN0IDxoYXNrZWxsLWNhZmVAaGFza2VsbC5vcmc+CiAiIE9yaWdpbmFsIEF1dGhvcjoJQXJ0aHVyIHZhbiBMZWV1d2VuIDxhcnRodXJ2bEBjcy51dS5ubD4KLSIgTGFzdCBDaGFuZ2U6CQkyMDA4IEp1bCAwMQotIiBWZXJzaW9uOgkJMS4wMgorIiBMYXN0IENoYW5nZToJCTIwMDkgTWF5IDA4CisiIFZlcnNpb246CQkxLjA0CiAiCiAiIFRoYW5rcyB0byBJYW4gTHluYWdoIGZvciB0aG91Z2h0ZnVsIGNvbW1lbnRzIG9uIGluaXRpYWwgdmVyc2lvbnMgYW5kCiAiIGZvciB0aGUgaW5zcGlyYXRpb24gZm9yIHdyaXRpbmcgdGhpcyBpbiB0aGUgZmlyc3QgcGxhY2UuCkBAIC0yOSw4ICsyOSwxMCBAQAogIiAyMDA0IEZlYnJ1YXJ5IDIwOiBDbGVhbmVkIHVwIHRoZSBndWVzc2luZyBhbmQgb3ZlcnJpZGluZyBhIGJpdAogIiAyMDA0IEZlYnJ1YXJ5IDIzOiBDbGVhbmVkIHVwIHN5bnRheCBoaWdobGlnaHRpbmcgZm9yIFxiZWdpbntjb2RlfSBhbmQKICIJCSAgICBcZW5ke2NvZGV9LCBhZGRlZCBzb21lIGNsYXJpZmljYXRpb24gdG8gdGhlIGF0dHJpYnV0aW9ucwotIiAyMDA4IEp1bHkgMTogICAgICBSZW1vdmVkICUgZnJvbSBndWVzcyBsaXN0LCBhcyBpdCB0b3RhbGx5IGJyZWFrcyAgcGxhaW4KLSIJCSAgICB0ZXh0IG1hcmt1cCBndWVzc2luZworIiAyMDA4IEp1bHkgMTogICAgICBSZW1vdmVkICUgZnJvbSBndWVzcyBsaXN0LCBhcyBpdCB0b3RhbGx5IGJyZWFrcyBwbGFpbgorIiAgICAgICAgICAgICAgICAgICB0ZXh0IG1hcmt1cCBndWVzc2luZworIiAyMDA5IEFwcmlsIDI5OiAgICBGaXhlZCBoaWdobGlnaHRpbmcgYnJlYWthZ2UgaW4gVGVYIG1vZGUsIAorIiAgICAgICAgICAgICAgICAgICB0aGFua3MgdG8gS2FsbWFuIE5vZWwKICIKIAogCkBAIC03MywxNCArNzUsMTQgQEAKICIgICAtIFxiZWdpbntlbnZ9ICAgICAgIChmb3IgZW52ICE9IGNvZGUpCiAiICAgLSBccGFydCwgXGNoYXB0ZXIsIFxzZWN0aW9uLCBcc3Vic2VjdGlvbiwgXHN1YnN1YnNlY3Rpb24sIGV0YwogaWYgYjpsaHNfbWFya3VwID09ICJ1bmtub3duIgotICAgIGlmIHNlYXJjaCgnXFxkb2N1bWVudGNsYXNzXHxcXGJlZ2lue1woY29kZX1cKVxAIVx8XFxcKHN1YiBcKSpzZWN0aW9uXHxcXGNoYXB0ZXJ8XFxwYXJ0JywnVycpICE9IDAKKyAgICBpZiBzZWFyY2goJ1xcZG9jdW1lbnRjbGFzc1x8XFxiZWdpbntcKGNvZGV9XClcQCFcfFxcXChzdWJcKSpzZWN0aW9uXHxcXGNoYXB0ZXJ8XFxwYXJ0JywnVycpICE9IDAKIAlsZXQgYjpsaHNfbWFya3VwID0gInRleCIKICAgICBlbHNlCiAJbGV0IGI6bGhzX21hcmt1cCA9ICJwbGFpbiIKICAgICBlbmRpZgogZW5kaWYKIAotIiBJZiB1c2VyIHdhbnRzIHVzIHRvIGhpZ2hsaWdodCBUZVggc3ludGF4IG9yIGd1ZXNzIHRoaW5rcyBpdCdzIFRlWCwgIHJlYWQgaXQuCisiIElmIHVzZXIgd2FudHMgdXMgdG8gaGlnaGxpZ2h0IFRlWCBzeW50YXggb3IgZ3Vlc3MgdGhpbmtzIGl0J3MgVGVYLCByZWFkIGl0LgogaWYgYjpsaHNfbWFya3VwID09ICJ0ZXgiCiAgICAgaWYgdmVyc2lvbiA8IDYwMAogCXNvdXJjZSA8c2ZpbGU+OnA6aC90ZXgudmltCkBAIC05MSw2ICs5Myw5IEBACiAJIiBUZXgudmltIHJlbW92ZXMgIl8iIGZyb20gJ2lza2V5d29yZCcsIGJ1dCB3ZSBuZWVkIGl0IGZvciBIYXNrZWxsLgogCXNldGxvY2FsIGlzays9XwogICAgIGVuZGlmCisgICAgc3ludGF4IGNsdXN0ZXIgbGhzVGVYQ29udGFpbmVyIGNvbnRhaW5zPXRleC4qWm9uZSx0ZXhBYnN0cmFjdAorZWxzZQorICAgIHN5bnRheCBjbHVzdGVyIGxoc1RlWENvbnRhaW5lciBjb250YWlucz0uKgogZW5kaWYKIAogIiBMaXRlcmF0ZSBIYXNrZWxsIGlzIEhhc2tlbGwgaW4gYmV0d2VlbiB0ZXh0LCBzbyBhdCBsZWFzdCByZWFkIEhhc2tlbGwKQEAgLTEwMSw4ICsxMDYsOCBAQAogICAgIHN5bnRheCBpbmNsdWRlIEBoYXNrZWxsVG9wIHN5bnRheC9oYXNrZWxsLnZpbQogZW5kaWYKIAotc3ludGF4IHJlZ2lvbiBsaHNIYXNrZWxsQmlyZFRyYWNrIHN0YXJ0PSJePiIgZW5kPSJcJSheW14+XVwpXEA9IiBjb250YWlucz1AaGFza2VsbFRvcCxsaHNCaXJkVHJhY2sKLXN5bnRheCByZWdpb24gbGhzSGFza2VsbEJlZ2luRW5kQmxvY2sgc3RhcnQ9Il5cXGJlZ2lue2NvZGV9XHMqJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iXCUoXlxcZW5ke2NvZGV9LiokXClcQD0iIGNvbnRhaW5zPUBoYXNrZWxsVG9wLEBiZWdpbkNvZGUKK3N5bnRheCByZWdpb24gbGhzSGFza2VsbEJpcmRUcmFjayBzdGFydD0iXj4iIGVuZD0iXCUoXltePl1cKVxAPSIgY29udGFpbnM9QGhhc2tlbGxUb3AsbGhzQmlyZFRyYWNrIGNvbnRhaW5lZGluPUBsaHNUZVhDb250YWluZXIKK3N5bnRheCByZWdpb24gbGhzSGFza2VsbEJlZ2luRW5kQmxvY2sgc3RhcnQ9Il5cXGJlZ2lue2NvZGV9XHMqJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iXCUoXlxcZW5ke2NvZGV9LiokXClcQD0iIGNvbnRhaW5zPUBoYXNrZWxsVG9wLEBiZWdpbkNvZGUgY29udGFpbmVkaW49QGxoc1RlWENvbnRhaW5lcgogCiBzeW50YXggbWF0Y2ggbGhzQmlyZFRyYWNrICJePiIgY29udGFpbmVkCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2xpbG8udmltIGIvcnVudGltZS9zeW50YXgvbGlsby52aW0KaW5kZXggZTNiYTJhZi4uMTRiZDk0MCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbGlsby52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbGlsby52aW0KQEAgLTEsMTAgKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKLSIgVGhpcyBpcyBhIEdFTkVSQVRFRCBGSUxFLiBQbGVhc2UgYWx3YXlzIHJlZmVyIHRvIHNvdXJjZSBmaWxlIGF0IHRoZSBVUkkgYmVsb3cuCiAiIExhbmd1YWdlOiBsaWxvIGNvbmZpZ3VyYXRpb24gKGxpbG8uY29uZikKLSIgTWFpbnRhaW5lcjogRGF2aWQgTmVcdntjfWFzIChZZXRpKSA8eWV0aUBwaHlzaWNzLm11bmkuY3o+Ci0iIExhc3QgQ2hhbmdlOiAyMDA0LTA3LTIwCi0iIFVSTDogaHR0cDovL3RyaWZpYy5hdGguY3gvRnRwL3ZpbS9zeW50YXgvbGlsby52aW0KLQorIiBNYWludGFpbmVyOiBoZWxwIHdhbnRlZCEKKyIgUHJldmlvdXMgTWFpbnRhaW5lcjogRGF2aWQgTmVjYXMgKFlldGkpIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KKyIgTGFzdCBDaGFuZ2U6IDIwMDktMDEtMjcKIAogIiBTZXR1cAogaWYgdmVyc2lvbiA+PSA2MDAKQEAgLTY0LDcgKzYyLDcgQEAKIAogIiBTdHJpbmcKIHN5biBrZXl3b3JkIGxpbG9PcHRpb24gbWVudS10aXRsZSBuZXh0Z3JvdXA9bGlsb0VxU3RyaW5nLGxpbG9FcVN0cmluZ0NvbW1lbnQsbGlsb0Vycm9yIHNraXB3aGl0ZSBza2lwZW1wdHkKLXN5biBrZXl3b3JkIGxpbG9LZXJuZWxPcHQgYXBwZW5kIG5leHRncm91cD1saWxvRXFTdHJpbmcsbGlsb0VxU3RyaW5nQ29tbWVudCxsaWxvRXJyb3Igc2tpcHdoaXRlIHNraXBlbXB0eQorc3luIGtleXdvcmQgbGlsb0tlcm5lbE9wdCBhcHBlbmQgYWRkYXBwZW5kIG5leHRncm91cD1saWxvRXFTdHJpbmcsbGlsb0VxU3RyaW5nQ29tbWVudCxsaWxvRXJyb3Igc2tpcHdoaXRlIHNraXBlbXB0eQogc3luIGtleXdvcmQgbGlsb0ltYWdlT3B0IGZhbGxiYWNrIGxpdGVyYWwgbmV4dGdyb3VwPWxpbG9FcVN0cmluZyxsaWxvRXFTdHJpbmdDb21tZW50LGxpbG9FcnJvciBza2lwd2hpdGUgc2tpcGVtcHR5CiAKICIgSGV4IG51bWJlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbGlzcC52aW0gYi9ydW50aW1lL3N5bnRheC9saXNwLnZpbQppbmRleCA1NTM5MGFhLi5mZDQ0ZjYwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9saXNwLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9saXNwLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICBMaXNwCiAiIE1haW50YWluZXI6ICBEci4gQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgotIiBMYXN0IENoYW5nZTogT2N0IDE5LCAyMDA3Ci0iIFZlcnNpb246ICAgICAyMAorIiBMYXN0IENoYW5nZTogTWFyIDA1LCAyMDA5CisiIFZlcnNpb246ICAgICAyMQogIiBVUkw6CSAgICAgICBodHRwOi8vbXlzaXRlLnZlcml6b24ubmV0L2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgIFRoYW5rcyB0byBGIFhhdmllciBOb3JpYSBmb3IgYSBsaXN0IG9mIDk3OCBDb21tb24gTGlzcCBzeW1ib2xzCkBAIC01MzQsNyArNTM0LDggQEAKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgTnVtYmVyczogc3VwcG9ydGluZyBpbnRlZ2VycyBhbmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyB7e3sxCi1zeW4gbWF0Y2ggbGlzcE51bWJlcgkJIi1cPVwoXC5cZFwrXHxcZFwrXChcLlxkKlwpXD1cKVwoZVstK11cPVxkXCtcKVw9Igorc3luIG1hdGNoIGxpc3BOdW1iZXIJCSItXD1cKFwuXGRcK1x8XGRcK1woXC5cZCpcKVw9XClcKFtkRGVFZkZsTF1bLStdXD1cZFwrXClcPSIKK3N5biBtYXRjaCBsaXNwTnVtYmVyCQkiLVw9XChcZFwrL1xkXCtcKSIKIAogc3luIG1hdGNoIGxpc3BTcGVjaWFsCQkiXCpcd1thLXpfMC05LV0qXCoiCiBzeW4gbWF0Y2ggbGlzcFNwZWNpYWwJCSEjfFteKCknYCwiOyBcdF1cK3wjIQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbG9ndGFsay52aW0gYi9ydW50aW1lL3N5bnRheC9sb2d0YWxrLnZpbQppbmRleCA1ZmNiYjA5Li43ZDkwY2Q4IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9sb2d0YWxrLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9sb2d0YWxrLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIKICIgTGFuZ3VhZ2U6CUxvZ3RhbGsKICIgTWFpbnRhaW5lcjoJUGF1bG8gTW91cmEgPHBtb3VyYUBsb2d0YWxrLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CUp1bmUgMTYsIDIwMDgKKyIgTGFzdCBDaGFuZ2U6CU9jdCAzMSwgMjAwOAogCiAKICIgUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkOgpAQCAtNTEsOSArNTEsOSBAQAogCiAiIExvZ3RhbGsgb3BlbmluZyBlbnRpdHkgZGlyZWN0aXZlcwogCi1zeW4gcmVnaW9uCWxvZ3RhbGtPcGVuRW50aXR5RGlyCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJc3RhcnQ9IjotIG9iamVjdCgiCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtTdHJpbmcsbG9ndGFsa0F0b20sbG9ndGFsa0VudGl0eVJlbAotc3luIHJlZ2lvbglsb2d0YWxrT3BlbkVudGl0eURpcgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCXN0YXJ0PSI6LSBwcm90b2NvbCgiCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtFbnRpdHlSZWwKLXN5biByZWdpb24JbG9ndGFsa09wZW5FbnRpdHlEaXIJbWF0Y2hncm91cD1sb2d0YWxrT3BlbkVudGl0eURpclRhZwlzdGFydD0iOi0gY2F0ZWdvcnkoIgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1sb2d0YWxrRW50aXR5LGxvZ3RhbGtWYXJpYWJsZSxsb2d0YWxrTnVtYmVyLGxvZ3RhbGtPcGVyYXRvcixsb2d0YWxrRW50aXR5UmVsCitzeW4gcmVnaW9uCWxvZ3RhbGtPcGVuRW50aXR5RGlyCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJc3RhcnQ9IjotIG9iamVjdCgiCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtTdHJpbmcsbG9ndGFsa0F0b20sbG9ndGFsa0VudGl0eVJlbCxsb2d0YWxrTGluZUNvbW1lbnQKK3N5biByZWdpb24JbG9ndGFsa09wZW5FbnRpdHlEaXIJbWF0Y2hncm91cD1sb2d0YWxrT3BlbkVudGl0eURpclRhZwlzdGFydD0iOi0gcHJvdG9jb2woIgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1sb2d0YWxrRW50aXR5LGxvZ3RhbGtWYXJpYWJsZSxsb2d0YWxrTnVtYmVyLGxvZ3RhbGtPcGVyYXRvcixsb2d0YWxrRW50aXR5UmVsLGxvZ3RhbGtMaW5lQ29tbWVudAorc3luIHJlZ2lvbglsb2d0YWxrT3BlbkVudGl0eURpcgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCXN0YXJ0PSI6LSBjYXRlZ29yeSgiCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtFbnRpdHlSZWwsbG9ndGFsa0xpbmVDb21tZW50CiAKIAogIiBMb2d0YWxrIGNsb3NpbmcgZW50aXR5IGRpcmVjdGl2ZXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2xvdXQudmltIGIvcnVudGltZS9zeW50YXgvbG91dC52aW0KaW5kZXggZWE0Y2IwMC4uMmEwYTcyYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbG91dC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbG91dC52aW0KQEAgLTQsNyArNCw3IEBACiAiIExhc3QgQ2hhbmdlOiBTb24gMjIgSnVuIDIwMDMgMjA6NDM6MjYgQ0VTVAogIiBGaWxlbmFtZXM6ICAgKi5sb3V0LCoubHQKICIgVVJMOgkJCWh0dHA6Ly93d3cuY3ZqYi5kZS9jb21wL3ZpbS9sb3V0LnZpbQotIiAkSWQkCisiICRJZDogbG91dC52aW0sdiAxLjEgMjAwNC8wNi8xMyAxNzo1MjoxOCB2aW1ib3NzIEV4cCAkCiAiCiAiIExvdXQ6IEJhc3NlciBMb3V0IGRvY3VtZW50IGZvcm1hdHRpbmcgc3lzdGVtLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tYWlsLnZpbSBiL3J1bnRpbWUvc3ludGF4L21haWwudmltCmluZGV4IDExNTc1MTcuLmM4OWQyZGUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L21haWwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L21haWwudmltCkBAIC0yLDcgKzIsNyBAQAogIiBMYW5ndWFnZToJCU1haWwgZmlsZQogIiBQcmV2aW91cyBNYWludGFpbmVyOglGZWxpeCB2b24gTGVpdG5lciA8bGVpdG5lckBtYXRoLmZ1LWJlcmxpbi5kZT4KICIgTWFpbnRhaW5lcjoJCUdhdXRhbSBJeWVyIDxnaTEyNDJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotIiBMYXN0IENoYW5nZToJCVRodSAxNyBKYW4gMjAwOCAxMToyNTo0NCBBTSBQU1QKKyIgTGFzdCBDaGFuZ2U6CQlUaHUgMDYgTm92IDIwMDggMTA6MTA6NTUgUE0gUFNUCiAKICIgUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQpAQCAtMjQsMjggKzI0LDM1IEBACiAiIGVtYWlscwogIiBBY2NvcmRpbmcgdG8gUkZDIDI4MjIgYW55IHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXIgY2FuIGFwcGVhciBpbiBhIGZpZWxkCiAiIG5hbWUsIGV4Y2VwdCAnOicuCi1zeW4gcmVnaW9uCW1haWxIZWFkZXIJY29udGFpbnM9QG1haWxIZWFkZXJGaWVsZHMsQE5vU3BlbGwgc3RhcnQ9Il5Gcm9tIC4qXGRcZFxkXGQkIiBza2lwPSJeXHMiIGVuZD0iXHZeWyEtOTstfl0qKFteIS1+XXwkKSJtZT1zLTEKK3N5biByZWdpb24JbWFpbEhlYWRlcgljb250YWlucz1AbWFpbEhlYWRlckZpZWxkcyxATm9TcGVsbCBzdGFydD0iXkZyb20gLipcZFxkXGRcZCQiIHNraXA9Il5ccyIgZW5kPSJcdl5bIS05Oy1+XSooW14hLX5dfCQpIm1lPXMtMSBmb2xkCiBzeW4gbWF0Y2gJbWFpbEhlYWRlcktleQljb250YWluZWQgY29udGFpbnM9bWFpbEVtYWlsLEBOb1NwZWxsICJeRnJvbVxzLipcZFxkXGRcZCQiCisKKyIgTm90aGluZyBlbHNlIGRlcGVuZHMgb24gY2FzZS4gCitzeW4gY2FzZSBpZ25vcmUKKworIiBIZWFkZXJzIGluIHByb3Blcmx5IHF1b3RlZCAod2l0aCAiPiAiIG9yICI+IikgZW1haWxzIGFyZSBtYXRjaGVkCitzeW4gcmVnaW9uCW1haWxIZWFkZXIJa2VlcGVuZCBjb250YWlucz1AbWFpbEhlYWRlckZpZWxkcyxAbWFpbFF1b3RlRXhwcyxATm9TcGVsbCBzdGFydD0iXlx6KFwoPiBcP1wpKlwpXHYobmV3c2dyb3Vwc3x4LShbYS16XC1dKSp8cGF0aHx4cmVmfG1lc3NhZ2UtaWR8ZnJvbXwoKGluLSk/cmVwbHktKT90b3xiP2NjfHN1YmplY3R8cmV0dXJuLXBhdGh8cmVjZWl2ZWR8ZGF0ZXxyZXBsaWVkKToiIHNraXA9Il5cejFccyIgZW5kPSJcdl5cejFbIS05Oy1+XSooW14hLX5dfCQpIm1lPXMtMSBlbmQ9Ilx2Xlx6MUAhIm1lPXMtMSBlbmQ9Ilx2Xlx6MShcPiA/KSsibWU9cy0xIGZvbGQKKwogIiBVc2VuZXQgaGVhZGVycwogc3luIG1hdGNoCW1haWxIZWFkZXJLZXkJY29udGFpbmVkIGNvbnRhaW5zPW1haWxIZWFkZXJFbWFpbCxtYWlsRW1haWwsQE5vU3BlbGwgIlx2KF4oXD4gPykqKUA8PShOZXdzZ3JvdXBzfEZvbGxvd3VwLVRvfE1lc3NhZ2UtSUR8U3VwZXJzZWRlc3xDb250cm9sKTouKiQiCiAKLXN5biBjYXNlIGlnbm9yZQotIiBOb3RoaW5nIGVsc2UgZGVwZW5kcyBvbiBjYXNlLiBIZWFkZXJzIGluIHByb3Blcmx5IHF1b3RlZCAod2l0aCAiPiAiIG9yICI+IikKLSIgZW1haWxzIGFyZSBtYXRjaGVkCi1zeW4gcmVnaW9uCW1haWxIZWFkZXIJa2VlcGVuZCBjb250YWlucz1AbWFpbEhlYWRlckZpZWxkcyxAbWFpbFF1b3RlRXhwcyxATm9TcGVsbCBzdGFydD0iXlx6KFwoPiBcP1wpKlwpXHYobmV3c2dyb3Vwc3x4LShbYS16XC1dKSp8cGF0aHx4cmVmfG1lc3NhZ2UtaWR8ZnJvbXwoKGluLSk/cmVwbHktKT90b3xiP2NjfHN1YmplY3R8cmV0dXJuLXBhdGh8cmVjZWl2ZWR8ZGF0ZXxyZXBsaWVkKToiIHNraXA9Il5cejFccyIgZW5kPSJcdl5cejFbIS05Oy1+XSooW14hLX5dfCQpIm1lPXMtMSBlbmQ9Ilx2Xlx6MUAhIm1lPXMtMSBlbmQ9Ilx2Xlx6MShcPiA/KSsibWU9cy0xCiAKIHN5biByZWdpb24JbWFpbEhlYWRlcktleQljb250YWluZWQgY29udGFpbnM9bWFpbEhlYWRlckVtYWlsLG1haWxFbWFpbCxAbWFpbFF1b3RlRXhwcyxATm9TcGVsbCBzdGFydD0iXHYoXihcPiA/KSopQDw9KHRvfGI/Y2MpOiIgc2tpcD0iLCQiIGVuZD0iJCIKLXN5biBtYXRjaAltYWlsSGVhZGVyS2V5CWNvbnRhaW5lZCBjb250YWlucz1tYWlsSGVhZGVyRW1haWwsbWFpbEVtYWlsLEBOb1NwZWxsICJcdiheKFw+ID8pKilAPD0oZnJvbXxyZXBseS10byk6LiokIgorc3luIG1hdGNoCW1haWxIZWFkZXJLZXkJY29udGFpbmVkIGNvbnRhaW5zPW1haWxIZWFkZXJFbWFpbCxtYWlsRW1haWwsQE5vU3BlbGwgIlx2KF4oXD4gPykqKUA8PShmcm9tfHJlcGx5LXRvKTouKiQiIGZvbGQKIHN5biBtYXRjaAltYWlsSGVhZGVyS2V5CWNvbnRhaW5lZCBjb250YWlucz1ATm9TcGVsbCAiXHYoXihcPiA/KSopQDw9ZGF0ZToiCi1zeW4gbWF0Y2gJbWFpbFN1YmplY3QJY29udGFpbmVkICJcdl5zdWJqZWN0Oi4qJCIKK3N5biBtYXRjaAltYWlsU3ViamVjdAljb250YWluZWQgIlx2XnN1YmplY3Q6LiokIiBmb2xkCiBzeW4gbWF0Y2gJbWFpbFN1YmplY3QJY29udGFpbmVkIGNvbnRhaW5zPUBOb1NwZWxsICJcdiheKFw+ID8pKylAPD1zdWJqZWN0Oi4qJCIKIAogIiBBbnl0aGluZyBpbiB0aGUgaGVhZGVyIGJldHdlZW4gPCBhbmQgPiBpcyBhbiBlbWFpbCBhZGRyZXNzCiBzeW4gbWF0Y2gJbWFpbEhlYWRlckVtYWlsCWNvbnRhaW5lZCBjb250YWlucz1ATm9TcGVsbCAiPC5cey19PiIKIAogIiBNYWlsIFNpZ25hdHVyZXMuIChCZWdpbiB3aXRoICItLSAiLCBlbmQgd2l0aCBjaGFuZ2UgaW4gcXVvdGUgbGV2ZWwpCi1zeW4gcmVnaW9uCW1haWxTaWduYXR1cmUJa2VlcGVuZCBjb250YWlucz1AbWFpbExpbmtzLEBtYWlsUXVvdGVFeHBzIHN0YXJ0PSJeLS1ccyQiIGVuZD0iXiQiIGVuZD0iXlwoPiBcP1wpXCsibWU9cy0xCi1zeW4gcmVnaW9uCW1haWxTaWduYXR1cmUJa2VlcGVuZCBjb250YWlucz1AbWFpbExpbmtzLEBtYWlsUXVvdGVFeHBzLEBOb1NwZWxsIHN0YXJ0PSJeXHooXCg+IFw/XClcK1wpLS1ccyQiIGVuZD0iXlx6MSQiIGVuZD0iXlx6MVxAISJtZT1zLTEgZW5kPSJeXHoxXCg+IFw/XClcKyJtZT1zLTEKK3N5biByZWdpb24JbWFpbFNpZ25hdHVyZQlrZWVwZW5kIGNvbnRhaW5zPUBtYWlsTGlua3MsQG1haWxRdW90ZUV4cHMgc3RhcnQ9Il4tLVxzJCIgZW5kPSJeJCIgZW5kPSJeXCg+IFw/XClcKyJtZT1zLTEgZm9sZAorc3luIHJlZ2lvbgltYWlsU2lnbmF0dXJlCWtlZXBlbmQgY29udGFpbnM9QG1haWxMaW5rcyxAbWFpbFF1b3RlRXhwcyxATm9TcGVsbCBzdGFydD0iXlx6KFwoPiBcP1wpXCtcKS0tXHMkIiBlbmQ9Il5cejEkIiBlbmQ9Il5cejFcQCEibWU9cy0xIGVuZD0iXlx6MVwoPiBcP1wpXCsibWU9cy0xIGZvbGQKKworIiBUcmVhdCB2ZXJiYXRpbSBUZXh0IHNwZWNpYWwuCitzeW4gcmVnaW9uCW1haWxWZXJiYXRpbQljb250YWlucz1ATm9TcGVsbCBrZWVwZW5kIHN0YXJ0PSJeI3YrJCIgZW5kPSJeI3YtJCIgZm9sZCAKK3N5biByZWdpb24JbWFpbFZlcmJhdGltCWNvbnRhaW5zPUBtYWlsUXVvdGVFeHBzLEBOb1NwZWxsIHN0YXJ0PSJeXHooXCg+IFw/XClcK1wpI3YrJCIgZW5kPSJcejEjdi0kIiBmb2xkIAogCiAiIFVSTHMgc3RhcnQgd2l0aCBhIGtub3duIHByb3RvY29sIG9yIHd3dyx3ZWIsdzMuCiBzeW4gbWF0Y2ggbWFpbFVSTCBjb250YWlucz1ATm9TcGVsbCBgXHY8KCgoaHR0cHM/fGZ0cHxnb3BoZXIpOi8vfChtYWlsdG98ZmlsZXxuZXdzKTopW14nIAk8PiJdK3wod3d3fHdlYnx3MylbYS16MC05Xy1dKlwuW2EtejAtOS5fLV0rXC5bXicgCTw+Il0rKVthLXowLTkvXWAKQEAgLTU5LDEzICs2NiwxMyBAQAogc3luIG1hdGNoIG1haWxRdW90ZUV4cDUJY29udGFpbmVkICJcdl4oXD4gPyl7NX0iCiBzeW4gbWF0Y2ggbWFpbFF1b3RlRXhwNgljb250YWluZWQgIlx2XihcPiA/KXs2fSIKIAotIiBFdmVuIGFuZCBvZGQgcXVvdGVkIGxpbmVzLiBvcmRlciBpcyBpbXBvcmFudCBoZXJlIQotc3luIG1hdGNoIG1haWxRdW90ZWQxCWNvbnRhaW5zPW1haWxIZWFkZXIsQG1haWxMaW5rcyxtYWlsU2lnbmF0dXJlLEBOb1NwZWxsICJeXChbYS16XVwrPlx8W118fT5dXCkuKiQiCi1zeW4gbWF0Y2ggbWFpbFF1b3RlZDIJY29udGFpbnM9bWFpbEhlYWRlcixAbWFpbExpbmtzLG1haWxTaWduYXR1cmUsQE5vU3BlbGwgIl5cKFwoW2Etel1cKz5cfFtdfH0+XVwpWyBcdF0qXClcezJ9LiokIgotc3luIG1hdGNoIG1haWxRdW90ZWQzCWNvbnRhaW5zPW1haWxIZWFkZXIsQG1haWxMaW5rcyxtYWlsU2lnbmF0dXJlLEBOb1NwZWxsICJeXChcKFthLXpdXCs+XHxbXXx9Pl1cKVsgXHRdKlwpXHszfS4qJCIKLXN5biBtYXRjaCBtYWlsUXVvdGVkNAljb250YWlucz1tYWlsSGVhZGVyLEBtYWlsTGlua3MsbWFpbFNpZ25hdHVyZSxATm9TcGVsbCAiXlwoXChbYS16XVwrPlx8W118fT5dXClbIFx0XSpcKVx7NH0uKiQiCi1zeW4gbWF0Y2ggbWFpbFF1b3RlZDUJY29udGFpbnM9bWFpbEhlYWRlcixAbWFpbExpbmtzLG1haWxTaWduYXR1cmUsQE5vU3BlbGwgIl5cKFwoW2Etel1cKz5cfFtdfH0+XVwpWyBcdF0qXClcezV9LiokIgotc3luIG1hdGNoIG1haWxRdW90ZWQ2CWNvbnRhaW5zPW1haWxIZWFkZXIsQG1haWxMaW5rcyxtYWlsU2lnbmF0dXJlLEBOb1NwZWxsICJeXChcKFthLXpdXCs+XHxbXXx9Pl1cKVsgXHRdKlwpXHs2fS4qJCIKKyIgRXZlbiBhbmQgb2RkIHF1b3RlZCBsaW5lcy4gT3JkZXIgaXMgaW1wb3J0YW50IGhlcmUhCitzeW4gcmVnaW9uCW1haWxRdW90ZWQ2CWtlZXBlbmQgY29udGFpbnM9bWFpbFZlcmJhdGltLG1haWxIZWFkZXIsQG1haWxMaW5rcyxtYWlsU2lnbmF0dXJlLEBOb1NwZWxsIHN0YXJ0PSJeXHooXChcKFthLXpdXCs+XHxbXXx9Pl1cKVsgXHRdKlwpXHs1fVwoW2Etel1cKz5cfFtdfH0+XVwpXCkiIGVuZD0iXlx6MVxAISIgZm9sZAorc3luIHJlZ2lvbgltYWlsUXVvdGVkNQlrZWVwZW5kIGNvbnRhaW5zPW1haWxRdW90ZWQ2LG1haWxWZXJiYXRpbSxtYWlsSGVhZGVyLEBtYWlsTGlua3MsbWFpbFNpZ25hdHVyZSxATm9TcGVsbCBzdGFydD0iXlx6KFwoXChbYS16XVwrPlx8W118fT5dXClbIFx0XSpcKVx7NH1cKFthLXpdXCs+XHxbXXx9Pl1cKVwpIiBlbmQ9Il5cejFcQCEiIGZvbGQKK3N5biByZWdpb24JbWFpbFF1b3RlZDQJa2VlcGVuZCBjb250YWlucz1tYWlsUXVvdGVkNSxtYWlsUXVvdGVkNixtYWlsVmVyYmF0aW0sbWFpbEhlYWRlcixAbWFpbExpbmtzLG1haWxTaWduYXR1cmUsQE5vU3BlbGwgc3RhcnQ9Il5ceihcKFwoW2Etel1cKz5cfFtdfH0+XVwpWyBcdF0qXClcezN9XChbYS16XVwrPlx8W118fT5dXClcKSIgZW5kPSJeXHoxXEAhIiBmb2xkCitzeW4gcmVnaW9uCW1haWxRdW90ZWQzCWtlZXBlbmQgY29udGFpbnM9bWFpbFF1b3RlZDQsbWFpbFF1b3RlZDUsbWFpbFF1b3RlZDYsbWFpbFZlcmJhdGltLG1haWxIZWFkZXIsQG1haWxMaW5rcyxtYWlsU2lnbmF0dXJlLEBOb1NwZWxsIHN0YXJ0PSJeXHooXChcKFthLXpdXCs+XHxbXXx9Pl1cKVsgXHRdKlwpXHsyfVwoW2Etel1cKz5cfFtdfH0+XVwpXCkiIGVuZD0iXlx6MVxAISIgZm9sZAorc3luIHJlZ2lvbgltYWlsUXVvdGVkMglrZWVwZW5kIGNvbnRhaW5zPW1haWxRdW90ZWQzLG1haWxRdW90ZWQ0LG1haWxRdW90ZWQ1LG1haWxRdW90ZWQ2LG1haWxWZXJiYXRpbSxtYWlsSGVhZGVyLEBtYWlsTGlua3MsbWFpbFNpZ25hdHVyZSxATm9TcGVsbCBzdGFydD0iXlx6KFwoXChbYS16XVwrPlx8W118fT5dXClbIFx0XSpcKVx7MX1cKFthLXpdXCs+XHxbXXx9Pl1cKVwpIiBlbmQ9Il5cejFcQCEiIGZvbGQKK3N5biByZWdpb24JbWFpbFF1b3RlZDEJa2VlcGVuZCBjb250YWlucz1tYWlsUXVvdGVkMixtYWlsUXVvdGVkMyxtYWlsUXVvdGVkNCxtYWlsUXVvdGVkNSxtYWlsUXVvdGVkNixtYWlsVmVyYmF0aW0sbWFpbEhlYWRlcixAbWFpbExpbmtzLG1haWxTaWduYXR1cmUsQE5vU3BlbGwgc3RhcnQ9Il5ceihbYS16XVwrPlx8W118fT5dXCkiIGVuZD0iXlx6MVxAISIgZm9sZAogCiAiIE5lZWQgdG8gc3luYyBvbiB0aGUgaGVhZGVyLiBBc3N1bWUgd2UgY2FuIGRvIHRoYXQgd2l0aGluIDEwMCBsaW5lcwogaWYgZXhpc3RzKCJtYWlsX21pbmxpbmVzIikKQEAgLTc1LDYgKzgyLDcgQEAKIGVuZGlmCiAKICIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KK2hpIGRlZiBsaW5rIG1haWxWZXJiYXRpbQlTcGVjaWFsCiBoaSBkZWYgbGluayBtYWlsSGVhZGVyCQlTdGF0ZW1lbnQKIGhpIGRlZiBsaW5rIG1haWxIZWFkZXJLZXkJVHlwZQogaGkgZGVmIGxpbmsgbWFpbFNpZ25hdHVyZQlQcmVQcm9jCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tYW4udmltIGIvcnVudGltZS9zeW50YXgvbWFuLnZpbQppbmRleCA2MTY3YjIzLi40MTcyYTAyIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tYW4udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L21hbi52aW0KQEAgLTEsOSArMSw5IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJTWFuIHBhZ2UKLSIgTWFpbnRhaW5lcjoJTmFtIFN1bmdIeXVuIDxuYW1zaEBrbGRwLm9yZz4KKyIgTWFpbnRhaW5lcjoJU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgogIiBQcmV2aW91cyBNYWludGFpbmVyOglHYXV0YW0gSC4gTXVkdW51cmkgPGdtdWR1bnVyQGluZm9ybWF0aWNhLmNvbT4KICIgVmVyc2lvbiBJbmZvOgotIiBMYXN0IENoYW5nZToJMjAwNyBEZWMgMzAKKyIgTGFzdCBDaGFuZ2U6CTIwMDggU2VwIDE3CiAKICIgQWRkaXRpb25hbCBoaWdobGlnaHRpbmcgYnkgSm9oYW5uZXMgVGFuemxlciA8am9oYW5uZXMudGFuemxlckBhb24uYXQ+OgogIgkqIG1hblN1YkhlYWRpbmcKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21hc20udmltIGIvcnVudGltZS9zeW50YXgvbWFzbS52aW0KaW5kZXggZWZkNWZlMC4uNGZmZDIyYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbWFzbS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWFzbS52aW0KQEAgLTIsOCArMiw4IEBACiAiIExhbmd1YWdlOglNaWNyb3NvZnQgTWFjcm8gQXNzZW1ibGVyICg4MHg4NikKICIgT3JpZyBBdXRob3I6CVJvYiBCcmFkeSA8cm9iYkBkYXRhdG9uZS5jb20+CiAiIE1haW50YWluZXI6CVd1IFlvbmd3ZWkgPHd1eW9uZ3dlaUBnbWFpbC5jb20+Ci0iIExhc3QgQ2hhbmdlOgkkRGF0ZSQKLSIgJFJldmlzaW9uJAorIiBMYXN0IENoYW5nZToJJERhdGU6IDIwMDcvMDQvMjEgMTM6MjA6MTUgJAorIiAkUmV2aXNpb246IDEuNDQgJAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbWFzdGVyLnZpbSBiL3J1bnRpbWUvc3ludGF4L21hc3Rlci52aW0KaW5kZXggYzIxMjVjMS4uNDBkNjQ0ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbWFzdGVyLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9tYXN0ZXIudmltCkBAIC0xLDkgKzEsOSBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CUZvY3VzIE1hc3RlciBGaWxlCiAiIE1haW50YWluZXI6CVJvYiBCcmFkeSA8cm9iYkBkYXRhdG9uZS5jb20+Ci0iIExhc3QgQ2hhbmdlOgkkRGF0ZSQKKyIgTGFzdCBDaGFuZ2U6CSREYXRlOiAyMDA0LzA2LzEzIDE1OjU0OjAzICQKICIgVVJMOiBodHRwOi8vd3d3LmRhdGF0b25lLmNvbS9+cm9iYi92aW0vc3ludGF4L21hc3Rlci52aW0KLSIgJFJldmlzaW9uJAorIiAkUmV2aXNpb246IDEuMSAkCiAKICIgdGhpcyBpcyBhIHZlcnkgc2ltcGxlIHN5bnRheCBmaWxlIC0gSSB3aWxsIGJlIGltcHJvdmluZyBpdAogIiBhZGQgZW50aXJlIERFRklORSBzeW50YXgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21hdGxhYi52aW0gYi9ydW50aW1lL3N5bnRheC9tYXRsYWIudmltCmluZGV4IDliYmE5NzUuLjBlMjgxYzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L21hdGxhYi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWF0bGFiLnZpbQpAQCAtMSw4ICsxLDE1IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJTWF0bGFiCi0iIE1haW50YWluZXI6CVByZWJlbiAnUGVwcGUnIEd1bGRiZXJnIDxwZXBwZS12aW1Ad2llbGRlcnMub3JnPgorIiBNYWludGFpbmVyOglNYXVyaXppbyBUcmFuY2hlcm8gLSBtYXVyaXppby50cmFuY2hlcm9AZ21haWwuY29tCisiIENyZWRpdHM6CVByZWJlbiAnUGVwcGUnIEd1bGRiZXJnIDxwZXBwZS12aW1Ad2llbGRlcnMub3JnPgogIgkJT3JpZ2luYWwgYXV0aG9yOiBNYXJpbyBFdXNlYmlvCi0iIExhc3QgQ2hhbmdlOgkzMCBNYXkgMjAwMworIiBDaGFuZ2UgSGlzdG9yeToKKyIgCQlTYXQgSnVsIDI1IDE2OjE0OjU1IENFU1QgMjAwOQorIgkJLSBzcGVsbCBjaGVjayBlbmFibGVkIG9ubHkgZm9yIGNvbW1lbnRzICh0aGFua3MgdG8gSmFtZXMgVmVnYSkKKyIKKyIgCQlUdWUgQXByIDIxIDEwOjAzOjMxIENFU1QgMjAwOQorIgkJLSBhZGRlZCBvYmplY3Qgb3JpZW50ZWQgc3VwcG9ydAorIgkJLSBhZGRlZCBtdWx0aS1saW5lIGNvbW1lbnRzICV7IC4uLlxuLi4uICV9CiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCkBAIC0xNiw2ICsyMyw5IEBACiBzeW4ga2V5d29yZCBtYXRsYWJMYWJlbAkJCWNhc2Ugc3dpdGNoCiBzeW4ga2V5d29yZCBtYXRsYWJDb25kaXRpb25hbAkJZWxzZSBlbHNlaWYgZW5kIGlmIG90aGVyd2lzZQogc3luIGtleXdvcmQgbWF0bGFiUmVwZWF0CQlkbyBmb3Igd2hpbGUKKyIgTVRfQURET04gLSBhZGRlZCBleGNlcHRpb24tc3BlY2lmaWMga2V5d29yZHMKK3N5biBrZXl3b3JkIG1hdGxhYkV4Y2VwdGlvbnMJCXRyeSBjYXRjaAorc3luIGtleXdvcmQgbWF0bGFiT08JCQljbGFzc2RlZiBwcm9wZXJ0aWVzIGV2ZW50cyBtZXRob2RzCiAKIHN5biBrZXl3b3JkIG1hdGxhYlRvZG8JCQljb250YWluZWQgIFRPRE8KIApAQCAtMzEsNyArNDEsOCBAQAogInN5biBtYXRjaCBtYXRsYWJJZGVudGlmaWVyCQkiXDxcYVx3Klw+IgogCiAiIFN0cmluZwotc3luIHJlZ2lvbiBtYXRsYWJTdHJpbmcJCQlzdGFydD0rJysgZW5kPSsnKwlvbmVsaW5lCisiIE1UX0FERE9OIC0gYWRkZWQgJ3NraXAnIGluIG9yZGVyIHRvIGRlYWwgd2l0aCAndGljJyBlc2NhcGluZyBzZXF1ZW5jZSAKK3N5biByZWdpb24gbWF0bGFiU3RyaW5nCQkJc3RhcnQ9KycrIGVuZD0rJysJb25lbGluZSBza2lwPSsnJysgY29udGFpbnM9QFNwZWxsCiAKICIgSWYgeW91IGRvbid0IGxpa2UgdGFicwogc3luIG1hdGNoIG1hdGxhYlRhYgkJCSJcdCIKQEAgLTUwLDcgKzYxLDEwIEBACiAKIHN5biBtYXRjaCBtYXRsYWJTZW1pY29sb24JCSI7IgogCi1zeW4gbWF0Y2ggbWF0bGFiQ29tbWVudAkJCSIlLiokIgljb250YWlucz1tYXRsYWJUb2RvLG1hdGxhYlRhYgorc3luIG1hdGNoIG1hdGxhYkNvbW1lbnQJCQkiJS4qJCIJY29udGFpbnM9bWF0bGFiVG9kbyxtYXRsYWJUYWIsQFNwZWxsCisiIE1UX0FERE9OIC0gY29ycmVjdGx5IGhpZ2hsaWdodHMgd29yZHMgYWZ0ZXIgJy4uLicgYXMgY29tbWVudHMKK3N5biBtYXRjaCBtYXRsYWJDb21tZW50CQkJIlwuXC5cLi4qJCIJY29udGFpbnM9bWF0bGFiVG9kbyxtYXRsYWJUYWIsQFNwZWxsCitzeW4gcmVnaW9uIG1hdGxhYk11bHRpbGluZUNvbW1lbnQJc3RhcnQ9KyV7KyBlbmQ9KyV9KyBjb250YWlucz1tYXRsYWJUb2RvLG1hdGxhYlRhYixAU3BlbGwKIAogc3luIGtleXdvcmQgbWF0bGFiT3BlcmF0b3IJCWJyZWFrIHplcm9zIGRlZmF1bHQgbWFyZ2luIHJvdW5kIG9uZXMgcmFuZAogc3luIGtleXdvcmQgbWF0bGFiT3BlcmF0b3IJCWNlaWwgZmxvb3Igc2l6ZSBjbGVhciB6ZXJvcyBleWUgbWVhbiBzdGQgY292CkBAIC03NSwxMCArODksMTEgQEAKICAgZW5kaWYKIAogICBIaUxpbmsgbWF0bGFiVHJhbnNwb3NlT3BlcmF0b3IJbWF0bGFiT3BlcmF0b3IKLSAgSGlMaW5rIG1hdGxhYk9wZXJhdG9yCQlPcGVyYXRvcgotICBIaUxpbmsgbWF0bGFiTGluZUNvbnRpbnVhdGlvbglTcGVjaWFsCisgIEhpTGluayBtYXRsYWJPcGVyYXRvcgkJCU9wZXJhdG9yCisgIEhpTGluayBtYXRsYWJMaW5lQ29udGludWF0aW9uCQlTcGVjaWFsCiAgIEhpTGluayBtYXRsYWJMYWJlbAkJCUxhYmVsCiAgIEhpTGluayBtYXRsYWJDb25kaXRpb25hbAkJQ29uZGl0aW9uYWwKKyAgSGlMaW5rIG1hdGxhYkV4Y2VwdGlvbnMJCUNvbmRpdGlvbmFsCiAgIEhpTGluayBtYXRsYWJSZXBlYXQJCQlSZXBlYXQKICAgSGlMaW5rIG1hdGxhYlRvZG8JCQlUb2RvCiAgIEhpTGluayBtYXRsYWJTdHJpbmcJCQlTdHJpbmcKQEAgLTg2LDEyICsxMDEsMTQgQEAKICAgSGlMaW5rIG1hdGxhYlRyYW5zcG9zZU90aGVyCQlJZGVudGlmaWVyCiAgIEhpTGluayBtYXRsYWJOdW1iZXIJCQlOdW1iZXIKICAgSGlMaW5rIG1hdGxhYkZsb2F0CQkJRmxvYXQKLSAgSGlMaW5rIG1hdGxhYkZ1bmN0aW9uCQlGdW5jdGlvbgorICBIaUxpbmsgbWF0bGFiRnVuY3Rpb24JCQlGdW5jdGlvbgogICBIaUxpbmsgbWF0bGFiRXJyb3IJCQlFcnJvcgotICBIaUxpbmsgbWF0bGFiSW1wbGljaXQJCW1hdGxhYlN0YXRlbWVudAorICBIaUxpbmsgbWF0bGFiSW1wbGljaXQJCQltYXRsYWJTdGF0ZW1lbnQKICAgSGlMaW5rIG1hdGxhYlN0YXRlbWVudAkJU3RhdGVtZW50CisgIEhpTGluayBtYXRsYWJPTwkJCVN0YXRlbWVudAogICBIaUxpbmsgbWF0bGFiU2VtaWNvbG9uCQlTcGVjaWFsQ2hhcgogICBIaUxpbmsgbWF0bGFiQ29tbWVudAkJCUNvbW1lbnQKKyAgSGlMaW5rIG1hdGxhYk11bHRpbGluZUNvbW1lbnQJCUNvbW1lbnQKIAogICBIaUxpbmsgbWF0bGFiQXJpdGhtZXRpY09wZXJhdG9yCW1hdGxhYk9wZXJhdG9yCiAgIEhpTGluayBtYXRsYWJSZWxhdGlvbmFsT3BlcmF0b3IJbWF0bGFiT3BlcmF0b3IKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21heGltYS52aW0gYi9ydW50aW1lL3N5bnRheC9tYXhpbWEudmltCmluZGV4IGNhOTgyZDcuLjI3ZGNjMTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L21heGltYS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWF4aW1hLnZpbQpAQCAtMjI3LDcgKzIyNyw3IEBACiAiIENvbW1lbnRzOgogIiBtYXhpbWEgc3VwcG9ydHMgLyogLi4uICovIChsaWtlIEMpCiBzeW4ga2V5d29yZCBtYXhpbWFUb2RvIGNvbnRhaW5lZAlUT0RPIFRvZG8gREVCVUcKLXN5biByZWdpb24gIG1heGltYUNvbW1lbnRCbG9jawlzdGFydD0iL1wqIiBlbmQ9IlwqLyIJY29udGFpbnM9bWF4aW1hU3RyaW5nLG1heGltYVRvZG8KK3N5biByZWdpb24gIG1heGltYUNvbW1lbnRCbG9jawlzdGFydD0iL1wqIiBlbmQ9IlwqLyIJY29udGFpbnM9bWF4aW1hU3RyaW5nLG1heGltYVRvZG8sbWF4aW1hQ29tbWVudEJsb2NrCiAKICIgc3luY2hyb25pemluZwogc3luIHN5bmMgbWF0Y2ggbWF4aW1hU3luY0NvbW1lbnQJZ3JvdXBoZXJlIG1heGltYUNvbW1lbnRCbG9jayAiLyoiCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tZ2wudmltIGIvcnVudGltZS9zeW50YXgvbWdsLnZpbQppbmRleCA2MDQ5ZThhLi41NWFlMTM3IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tZ2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L21nbC52aW0KQEAgLTQsNyArNCw3IEBACiAiIExhc3QgQ2hhbmdlOgkyMDA2IEZlYiAyMQogIiBNYWludGFpbmVyOiAgR2VybyBLdWhsbWFubiA8Z2Vyb0Bna21pbml4Lmhhbi5kZT4KICIKLSIgJElkJAorIiAkSWQ6IG1nbC52aW0sdiAxLjEgMjAwNi8wMi8yMSAyMjowODoyMCB2aW1ib3NzIEV4cCAkCiAiCiBpZiB2ZXJzaW9uIDwgNjAwCiAgIHN5bnRheCBjbGVhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbW1hLnZpbSBiL3J1bnRpbWUvc3ludGF4L21tYS52aW0KaW5kZXggMTJhYWM5Yy4uZjQ4ZGNjZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbW1hLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9tbWEudmltCkBAIC00LDcgKzQsNyBAQAogIiBMYXN0IENoYW5nZTogIFRodSBNYXkgMTkgMjE6MzY6MDQgQ0RUIDIwMDUKICIgU291cmNlOiAgICAgICBodHRwOi8vbWVtYmVycy53cmkuY29tL2xheWxhbmQvdmltL3N5bnRheC9tbWEudmltCiAiICAgICAgICAgICAgICAgaHR0cDovL3ZpbS5zb3VyY2Vmb3JnZS5uZXQvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0xMjczCi0iIElkOiAgICAgICAgICAgJElkJAorIiBJZDogICAgICAgICAgICRJZDogbW1hLnZpbSx2IDEuNCAyMDA2LzA0LzE0IDIwOjQwOjM4IHZpbWJvc3MgRXhwICQKICIgTk9URToKICIgCiAiIEVtcHR5IC5tIGZpbGVzIHdpbGwgYXV0b21hdGljYWxseSBiZSBwcmVzdW1lZCBhcyBNYXRsYWIgZmlsZXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L215c3FsLnZpbSBiL3J1bnRpbWUvc3ludGF4L215c3FsLnZpbQppbmRleCA3OWNmNGI1Li44NmE2YzA3IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9teXNxbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbXlzcWwudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6ICAgICBteXNxbAogIiBNYWludGFpbmVyOiAgIEtlbm5ldGggSi4gUHJvbm92aWNpIDxwcm9ub3ZpY0BpZWVlLm9yZz4KLSIgTGFzdCBDaGFuZ2U6ICAkTGFzdENoYW5nZWREYXRlOiAyMDA3LTEyLTE5IDEwOjU5OjM5IC0wNjAwIChXZWQsIDE5IERlYyAyMDA3KSAkCisiIExhc3QgQ2hhbmdlOiAgJExhc3RDaGFuZ2VkRGF0ZTogMjAwOS0wNi0yOSAyMzowODozNyAtMDUwMCAoTW9uLCAyOSBKdW4gMjAwOSkgJAogIiBGaWxlbmFtZXM6ICAgICoubXlzcWwKICIgVVJMOiAgICAgICAgICBmdHA6Ly9jZWRhci1zb2x1dGlvbnMuY29tL3NvZnR3YXJlL215c3FsLnZpbQogIiBOb3RlOiAgICAgICAgIFRoZSBkZWZpbml0aW9ucyBiZWxvdyBhcmUgdGFrZW4gZnJvbSB0aGUgbXlzcWwgdXNlciBtYW51YWwgYXMgb2YgQXByaWwgMjAwMiwgZm9yIHZlcnNpb24gMy4yMwpAQCAtMzYsNyArMzYsNyBAQAogc3luIGtleXdvcmQgbXlzcWxLZXl3b3JkICAgICAgICAgbmF0dXJhbCBubwogc3luIGtleXdvcmQgbXlzcWxLZXl3b3JkICAgICAgICAgb24gb3B0aW1pemUgb3B0aW9uIG9wdGlvbmFsbHkgb3JkZXIgb3V0ZXIgb3V0ZmlsZQogc3luIGtleXdvcmQgbXlzcWxLZXl3b3JkICAgICAgICAgcGFja19rZXlzIHBhcnRpYWwgcGFzc3dvcmQgcHJpbWFyeSBwcml2aWxlZ2VzIHByb2NlZHVyZSBwcm9jZXNzIHByb2Nlc3NsaXN0Ci1zeW4ga2V5d29yZCBteXNxbEtleXdvcmQgICAgICAgICByZWFkIHJlZmVyZW5jZXMgcmVsb2FkIHJlbmFtZSByZXBsYWNlIHJlc3RyaWN0IHJldHVybnMgcmV2b2tlIHJvdyByb3dzCitzeW4ga2V5d29yZCBteXNxbEtleXdvcmQgICAgICAgICByZWFkIHJlZmVyZW5jZXMgcmVsb2FkIHJlbmFtZSByZXBsYWNlIHJlc3RyaWN0IHJldHVybnMgcmV2b2tlIHJpZ2h0IHJvdyByb3dzCiBzeW4ga2V5d29yZCBteXNxbEtleXdvcmQgICAgICAgICBzZWNvbmQgc2VsZWN0IHNob3cgc2h1dGRvd24gc29uYW1lIHNxbF9iaWdfcmVzdWx0IHNxbF9iaWdfc2VsZWN0cyBzcWxfYmlnX3RhYmxlcyBzcWxfbG9nX29mZgogc3luIGtleXdvcmQgbXlzcWxLZXl3b3JkICAgICAgICAgc3FsX2xvZ191cGRhdGUgc3FsX2xvd19wcmlvcml0eV91cGRhdGVzIHNxbF9zZWxlY3RfbGltaXQgc3FsX3NtYWxsX3Jlc3VsdCBzcWxfd2FybmluZ3Mgc3RhcnRpbmcKIHN5biBrZXl3b3JkIG15c3FsS2V5d29yZCAgICAgICAgIHN0YXR1cyBzdHJhaWdodF9qb2luIHN0cmluZwpAQCAtNTcsNyArNTcsNyBAQAogIiBOdW1iZXJzIGFuZCBoZXhpZGVjaW1hbCB2YWx1ZXMKIHN5biBtYXRjaCBteXNxbE51bWJlciAgICAgICAgICAgICItXD1cPFswLTldKlw+Igogc3luIG1hdGNoIG15c3FsTnVtYmVyICAgICAgICAgICAgIi1cPVw8WzAtOV0qXC5bMC05XSpcPiIKLXN5biBtYXRjaCBteXNxbE51bWJlciAgICAgICAgICAgICItXD1cPFswLTldKmVbKy1dXD1bMC05XSpcPiIKK3N5biBtYXRjaCBteXNxbE51bWJlciAgICAgICAgICAgICItXD1cPFswLTldWzAtOV0qZVsrLV1cPVswLTldKlw+Igogc3luIG1hdGNoIG15c3FsTnVtYmVyICAgICAgICAgICAgIi1cPVw8WzAtOV0qXC5bMC05XSplWystXVw9WzAtOV0qXD4iCiBzeW4gbWF0Y2ggbXlzcWxOdW1iZXIgICAgICAgICAgICAiXDwweFthYmNkZWZBQkNERUYwLTldKlw+IgogCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9uY2YudmltIGIvcnVudGltZS9zeW50YXgvbmNmLnZpbQppbmRleCAxNWM3NGM4Li4yMDE5YzAzIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9uY2YudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L25jZi52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiAgICAgTm92ZWxsICJOQ0YiIEJhdGNoIEZpbGUKICIgTWFpbnRhaW5lcjogICBKb25hdGhhbiBKLiBNaW5lciA8bWluZXJAZG9pdC53aXNjLmVkdT4KICIgTGFzdCBDaGFuZ2U6CVR1ZSwgMDQgU2VwIDIwMDEgMTY6MjA6MzMgQ0RUCi0iICRJZCQKKyIgJElkOiBuY2YudmltLHYgMS4xIDIwMDQvMDYvMTMgMTY6MzE6NTggdmltYm9zcyBFeHAgJAogCiAiIFJlbW92ZSBhbnkgb2xkIHN5bnRheCBzdHVmZiBoYW5naW5nIGFyb3VuZAogaWYgdmVyc2lvbiA8IDYwMApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbmV0cmMudmltIGIvcnVudGltZS9zeW50YXgvbmV0cmMudmltCmluZGV4IGQ4ZWJhMzAuLjlmMTVkMTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L25ldHJjLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9uZXRyYy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgICAgICBuZXRyYyg1KSBjb25maWd1cmF0aW9uIGZpbGUKICIgTWFpbnRhaW5lcjogICAgICAgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+Ci0iIExhdGVzdCBSZXZpc2lvbjogIDIwMDYtMDQtMTkKKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAxMC0wMS0wMwogCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogICBmaW5pc2gKQEAgLTExLDEyICsxMSwxMyBAQAogc2V0IGNwbyZ2aW0KIAogc3luIGtleXdvcmQgbmV0cmNLZXl3b3JkICAgIG1hY2hpbmUgbmV4dGdyb3VwPW5ldHJjTWFjaGluZSBza2lwd2hpdGUgc2tpcG5sCi1zeW4ga2V5d29yZCBuZXRyY0tleXdvcmQgICAgbG9naW4gbmV4dGdyb3VwPW5ldHJjTG9naW4sbmV0cmNTcGVjaWFsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCitzeW4ga2V5d29yZCBuZXRyY0tleXdvcmQgICAgYWNjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICBcIGxvZ2luCisgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW5ldHJjTG9naW4sbmV0cmNTcGVjaWFsIHNraXB3aGl0ZSBza2lwbmwKIHN5biBrZXl3b3JkIG5ldHJjS2V5d29yZCAgICBwYXNzd29yZCBuZXh0Z3JvdXA9bmV0cmNQYXNzd29yZCBza2lwd2hpdGUgc2tpcG5sCiBzeW4ga2V5d29yZCBuZXRyY0tleXdvcmQgICAgZGVmYXVsdAotc3luIGtleXdvcmQgbmV0cmNLZXl3b3JkICAgIG1hY2RlZiBuZXh0Z3JvdXA9bmV0cmNJbml0LG5ldHJjTWFjcm9OYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCitzeW4ga2V5d29yZCBuZXRyY0tleXdvcmQgICAgbWFjZGVmCisgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW5ldHJjSW5pdCxuZXRyY01hY3JvTmFtZSBza2lwd2hpdGUgc2tpcG5sCiBzeW4gcmVnaW9uICBuZXRyY01hY3JvICAgICAgY29udGFpbmVkIHN0YXJ0PScuJyBlbmQ9J14kJwogCiBzeW4gbWF0Y2ggICBuZXRyY01hY2hpbmUgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xTXCsnCkBAIC0yNSwxNCArMjYsMTQgQEAKIHN5biBtYXRjaCAgIG5ldHJjTG9naW4gICAgICBjb250YWluZWQgZGlzcGxheSAnIlteXFwiXSpcKFxcLlteXFwiXSpcKSoiJwogc3luIG1hdGNoICAgbmV0cmNQYXNzd29yZCAgIGNvbnRhaW5lZCBkaXNwbGF5ICdcU1wrJwogc3luIG1hdGNoICAgbmV0cmNQYXNzd29yZCAgIGNvbnRhaW5lZCBkaXNwbGF5ICciW15cXCJdKlwoXFwuW15cXCJdKlwpKiInCi1zeW4gbWF0Y2ggICBuZXRyY01hY3JvTmFtZSAgY29udGFpbmVkIGRpc3BsYXkgJ1xTXCsnIG5leHRncm91cD1uZXRyY01hY3JvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCitzeW4gbWF0Y2ggICBuZXRyY01hY3JvTmFtZSAgY29udGFpbmVkIGRpc3BsYXkgJ1xTXCsnCisgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW5ldHJjTWFjcm8gc2tpcHdoaXRlIHNraXBubAogc3luIG1hdGNoICAgbmV0cmNNYWNyb05hbWUgIGNvbnRhaW5lZCBkaXNwbGF5ICciW15cXCJdKlwoXFwuW15cXCJdKlwpKiInCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bmV0cmNNYWNybyBza2lwd2hpdGUgc2tpcG5sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW5ldHJjTWFjcm8gc2tpcHdoaXRlIHNraXBubAogCiBzeW4ga2V5d29yZCBuZXRyY1NwZWNpYWwgICAgY29udGFpbmVkIGFub255bW91cwotc3luIG1hdGNoICAgbmV0cmNJbml0ICAgICAgIGNvbnRhaW5lZCAnXDxpbml0JCcgbmV4dGdyb3VwPW5ldHJjTWFjcm8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKK3N5biBtYXRjaCAgIG5ldHJjSW5pdCAgICAgICBjb250YWluZWQgJ1w8aW5pdCQnCisgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW5ldHJjTWFjcm8gc2tpcHdoaXRlIHNraXBubAogCiBzeW4gc3luYyBmcm9tc3RhcnQKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbmV0cncudmltIGIvcnVudGltZS9zeW50YXgvbmV0cncudmltCmluZGV4IDYyZGFiM2YuLmY2ZmQ2NmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L25ldHJ3LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9uZXRydy52aW0KQEAgLTEsNyArMSw3IEBACiAiIExhbmd1YWdlICAgOiBOZXRydyBSZW1vdGUtRGlyZWN0b3J5IExpc3RpbmcgU3ludGF4CiAiIE1haW50YWluZXIgOiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KLSIgTGFzdCBjaGFuZ2U6IEZlYiAwNiwgMjAwOAotIiBWZXJzaW9uICAgIDogMTIKKyIgTGFzdCBjaGFuZ2U6IEphbiAxNCwgMjAwOQorIiBWZXJzaW9uICAgIDogMTYKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICIgU3ludGF4IENsZWFyaW5nOiB7e3sxCkBAIC0xNiw4NSArMTYsOTEgQEAKIHN5biBjbHVzdGVyIE5ldHJ3R3JvdXAJCWNvbnRhaW5zPW5ldHJ3SGlkZSxuZXRyd1NvcnRCeSxuZXRyd1NvcnRTZXEsbmV0cndRdWlja0hlbHAsbmV0cndWZXJzaW9uLG5ldHJ3Q29weVRndAogc3luIGNsdXN0ZXIgTmV0cndUcmVlR3JvdXAJY29udGFpbnM9bmV0cndEaXIsbmV0cndTeW1MaW5rLG5ldHJ3RXhlCiAKLXN5biBtYXRjaCAgbmV0cndTcGVjaWFsCQkiXCUoXFNcKyBcKSpcU1wrWyp8PV1cemVcJShcc1x7Mix9XHwkXCkiCQljb250YWlucz1uZXRyd0NsYXNzaWZ5Ci1zeW4gbWF0Y2ggIG5ldHJ3RGlyCQkiXC5cezEsMn0vIgkJCQkJCWNvbnRhaW5zPW5ldHJ3Q2xhc3NpZnkKLXN5biBtYXRjaCAgbmV0cndEaXIJCSJcJShcU1wrIFwpKlxTXCsvIgkJCQkJY29udGFpbnM9bmV0cndDbGFzc2lmeQotc3luIG1hdGNoICBuZXRyd1NpemVEYXRlCSJcPFxkXCtcc1xkXHsxLDJ9L1xkXHsxLDJ9L1xkXHs0fVxzIgkJCWNvbnRhaW5zPW5ldHJ3RGF0ZVNlcCBza2lwd2hpdGUgbmV4dGdyb3VwPW5ldHJ3VGltZQotc3luIG1hdGNoICBuZXRyd1N5bUxpbmsJCSJcJShcU1wrIFwpKlxTXCtAXHplXCUoXHNcezIsfVx8JFwpIiAgCQkJY29udGFpbnM9bmV0cndDbGFzc2lmeQotc3luIG1hdGNoICBuZXRyd0V4ZQkJIlwlKFxTXCsgXCkqXFNcK1wqXHplXCUoXHNcezIsfVx8JFwpIiAJCQljb250YWlucz1uZXRyd0NsYXNzaWZ5Ci1zeW4gbWF0Y2ggIG5ldHJ3VHJlZUJhcgkJIl5cJSh8IFwpKiIJCQkJCQljb250YWlucz1uZXRyd1RyZWVCYXJTcGFjZQluZXh0Z3JvdXA9QG5ldHJ3VHJlZUdyb3VwCi1zeW4gbWF0Y2ggIG5ldHJ3VHJlZUJhclNwYWNlCSIgIgkJCQljb250YWluZWQKK3N5biBtYXRjaCAgbmV0cndQbGFpbgkJIlwoXFNcKyBcKSpcU1wrIgkJCQkJY29udGFpbnM9QE5vU3BlbGwKK3N5biBtYXRjaCAgbmV0cndTcGVjaWFsCQkiXCUoXFNcKyBcKSpcU1wrWyp8PV1cemVcJShcc1x7Mix9XHwkXCkiCQljb250YWlucz1uZXRyd0NsYXNzaWZ5LEBOb1NwZWxsCitzeW4gbWF0Y2ggIG5ldHJ3RGlyCQkiXC5cezEsMn0vIgkJCQkJCWNvbnRhaW5zPW5ldHJ3Q2xhc3NpZnksQE5vU3BlbGwKK3N5biBtYXRjaCAgbmV0cndEaXIJCSJcJShcU1wrIFwpKlxTXCsvIgkJCQkJY29udGFpbnM9bmV0cndDbGFzc2lmeSxATm9TcGVsbAorc3luIG1hdGNoICBuZXRyd1NpemVEYXRlCSJcPFxkXCtcc1xkXHsxLDJ9L1xkXHsxLDJ9L1xkXHs0fVxzIglza2lwd2hpdGUJY29udGFpbnM9bmV0cndEYXRlU2VwLEBOb1NwZWxsCW5leHRncm91cD1uZXRyd1RpbWUKK3N5biBtYXRjaCAgbmV0cndTeW1MaW5rCQkiXCUoXFNcKyBcKSpcU1wrQFx6ZVwlKFxzXHsyLH1cfCRcKSIgIAkJCWNvbnRhaW5zPW5ldHJ3Q2xhc3NpZnksQE5vU3BlbGwKK3N5biBtYXRjaCAgbmV0cndFeGUJCSJcJShcU1wrIFwpKlxTXCtcKlx6ZVwlKFxzXHsyLH1cfCRcKSIgCQkJY29udGFpbnM9bmV0cndDbGFzc2lmeSxATm9TcGVsbAorc3luIG1hdGNoICBuZXRyd1RyZWVCYXIJCSJeXCUoWy0rfF0gXClcKyIJCQkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhclNwYWNlCW5leHRncm91cD1AbmV0cndUcmVlR3JvdXAKK3N5biBtYXRjaCAgbmV0cndUcmVlQmFyU3BhY2UJIiAiCQkJCQljb250YWluZWQKIAotc3luIG1hdGNoICBuZXRyd0NsYXNzaWZ5CSJbKj18QC9dXHplXCUoXHNcezIsfVx8JFwpIgljb250YWluZWQKLXN5biBtYXRjaCAgbmV0cndEYXRlU2VwCQkiLyIJCQkJY29udGFpbmVkCi1zeW4gbWF0Y2ggIG5ldHJ3VGltZQkJIlxkXHsxLDJ9OlxkXHsyfTpcZFx7Mn0iCWNvbnRhaW5lZAkJY29udGFpbnM9bmV0cndUaW1lU2VwCitzeW4gbWF0Y2ggIG5ldHJ3Q2xhc3NpZnkJIlsqPXxAL11cemVcJShcc1x7Mix9XHwkXCkiCQljb250YWluZWQKK3N5biBtYXRjaCAgbmV0cndEYXRlU2VwCQkiLyIJCQkJCWNvbnRhaW5lZAorc3luIG1hdGNoICBuZXRyd1RpbWUJCSJcZFx7MSwyfTpcZFx7Mn06XGRcezJ9IgkJY29udGFpbmVkCWNvbnRhaW5zPW5ldHJ3VGltZVNlcAogc3luIG1hdGNoICBuZXRyd1RpbWVTZXAJCSI6IgogCi1zeW4gbWF0Y2ggIG5ldHJ3Q29tbWVudAkJJyIuKlwlKFx0XHwkXCknCQkJCQkJY29udGFpbnM9QE5ldHJ3R3JvdXAKLXN5biBtYXRjaCAgbmV0cndIaWRlCQknXiJccypcKEhpZFx8U2hvd1wpaW5nOicJc2tpcHdoaXRlIG5leHRncm91cD1uZXRyd0hpZGVQYXQKK3N5biBtYXRjaCAgbmV0cndDb21tZW50CQknIi4qXCUoXHRcfCRcKScJCQkJCQljb250YWlucz1ATmV0cndHcm91cCxATm9TcGVsbAorc3luIG1hdGNoICBuZXRyd0hpZGUJCSdeIlxzKlwoSGlkXHxTaG93XClpbmc6Jwlza2lwd2hpdGUJCWNvbnRhaW5zPUBOb1NwZWxsCQluZXh0Z3JvdXA9bmV0cndIaWRlUGF0CiBzeW4gbWF0Y2ggIG5ldHJ3U2xhc2gJCSIvIgkJCQljb250YWluZWQKLXN5biBtYXRjaCAgbmV0cndIaWRlUGF0CQkiW14sXVwrIgkJCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPW5ldHJ3SGlkZVNlcAotc3luIG1hdGNoICBuZXRyd0hpZGVTZXAJCSIsIgkJCQljb250YWluZWQgdHJhbnNwYXJlbnQgc2tpcHdoaXRlIG5leHRncm91cD1uZXRyd0hpZGVQYXQKLXN5biBtYXRjaCAgbmV0cndTb3J0QnkJCSJTb3J0ZWQgYnkiCQkJY29udGFpbmVkIHRyYW5zcGFyZW50IHNraXB3aGl0ZSBuZXh0Z3JvdXA9bmV0cndMaXN0Ci1zeW4gbWF0Y2ggIG5ldHJ3U29ydFNlcQkJIlNvcnQgc2VxdWVuY2U6IgkJY29udGFpbmVkIHRyYW5zcGFyZW50IHNraXB3aGl0ZSBuZXh0Z3JvdXA9bmV0cndMaXN0Ci1zeW4gbWF0Y2ggIG5ldHJ3Q29weVRndAkJIkNvcHkvTW92ZSBUZ3Q6IgkJY29udGFpbmVkIHRyYW5zcGFyZW50IHNraXB3aGl0ZSBuZXh0Z3JvdXA9bmV0cndMaXN0Ci1zeW4gbWF0Y2ggIG5ldHJ3TGlzdAkJIi4qJCIJCQkJY29udGFpbmVkCQljb250YWlucz1uZXRyd0NvbW1hCitzeW4gbWF0Y2ggIG5ldHJ3SGlkZVBhdAkJIlteLF1cKyIJCQljb250YWluZWQgc2tpcHdoaXRlCWNvbnRhaW5zPUBOb1NwZWxsCQluZXh0Z3JvdXA9bmV0cndIaWRlU2VwCitzeW4gbWF0Y2ggIG5ldHJ3SGlkZVNlcAkJIiwiCQkJCWNvbnRhaW5lZCBza2lwd2hpdGUJCQkJCW5leHRncm91cD1uZXRyd0hpZGVQYXQKK3N5biBtYXRjaCAgbmV0cndTb3J0QnkJCSJTb3J0ZWQgYnkiCQkJY29udGFpbmVkIHRyYW5zcGFyZW50IHNraXB3aGl0ZQkJCQluZXh0Z3JvdXA9bmV0cndMaXN0CitzeW4gbWF0Y2ggIG5ldHJ3U29ydFNlcQkJIlNvcnQgc2VxdWVuY2U6IgkJY29udGFpbmVkIHRyYW5zcGFyZW50IHNraXB3aGl0ZQkJCSAJbmV4dGdyb3VwPW5ldHJ3TGlzdAorc3luIG1hdGNoICBuZXRyd0NvcHlUZ3QJCSJDb3B5L01vdmUgVGd0OiIJCWNvbnRhaW5lZCB0cmFuc3BhcmVudCBza2lwd2hpdGUJCQkJbmV4dGdyb3VwPW5ldHJ3TGlzdAorc3luIG1hdGNoICBuZXRyd0xpc3QJCSIuKiQiCQkJCWNvbnRhaW5lZAkJY29udGFpbnM9bmV0cndDb21tYSxATm9TcGVsbAogc3luIG1hdGNoICBuZXRyd0NvbW1hCQkiLCIJCQkJY29udGFpbmVkCi1zeW4gcmVnaW9uIG5ldHJ3UXVpY2tIZWxwCW1hdGNoZ3JvdXA9Q29tbWVudCBzdGFydD0iUXVpY2sgSGVscDpcc1wrIiBlbmQ9IiQiCWNvbnRhaW5zPW5ldHJ3SGVscENtZCBrZWVwZW5kIGNvbnRhaW5lZAotc3luIG1hdGNoICBuZXRyd0hlbHBDbWQJCSJcU1x6ZToiCQkJY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9bmV0cndDbWRTZXAKK3N5biByZWdpb24gbmV0cndRdWlja0hlbHAJbWF0Y2hncm91cD1Db21tZW50IHN0YXJ0PSJRdWljayBIZWxwOlxzXCsiIGVuZD0iJCIJY29udGFpbnM9bmV0cndIZWxwQ21kLEBOb1NwZWxsCWtlZXBlbmQgY29udGFpbmVkCitzeW4gbWF0Y2ggIG5ldHJ3SGVscENtZAkJIlxTXHplOiIJCQljb250YWluZWQgc2tpcHdoaXRlCWNvbnRhaW5zPUBOb1NwZWxsCQluZXh0Z3JvdXA9bmV0cndDbWRTZXAKIHN5biBtYXRjaCAgbmV0cndDbWRTZXAJCSI6IgkJCQljb250YWluZWQgbmV4dGdyb3VwPW5ldHJ3Q21kTm90ZQotc3luIG1hdGNoICBuZXRyd0NtZE5vdGUJCSIuXHstfVx6ZSAgIgkJCWNvbnRhaW5lZAotc3luIG1hdGNoICBuZXRyd1ZlcnNpb24JCSIobmV0cncuKikiCQkJY29udGFpbmVkCitzeW4gbWF0Y2ggIG5ldHJ3Q21kTm90ZQkJIi5cey19XHplICAiCQkJY29udGFpbmVkCQljb250YWlucz1ATm9TcGVsbAorc3luIG1hdGNoICBuZXRyd1ZlcnNpb24JCSIobmV0cncuKikiCQkJY29udGFpbmVkCQljb250YWlucz1ATm9TcGVsbAogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIFNwZWNpYWwgZmlsZXR5cGUgaGlnaGxpZ2h0aW5nIHt7ezEKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGlmIGV4aXN0cygiZzpuZXRyd19zcGVjaWFsX3N5bnRheCIpICYmIG5ldHJ3X3NwZWNpYWxfc3ludGF4Ci0gc3luIG1hdGNoIG5ldHJ3QmFrCQkiXChcU1wrIFwpKlxTXCtcLmJha1w+IgkJCQljb250YWlucz1uZXRyd1RyZWVCYXIKLSBzeW4gbWF0Y2ggbmV0cndDb21wcmVzcwkiXChcU1wrIFwpKlxTXCtcLlwlKGd6XHxiejJcfFpcfHppcFwpXD4iCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcgotIHN5biBtYXRjaCBuZXRyd0RhdGEJCSJcKFxTXCsgXCkqXFNcK1wuZGF0XD4iCQkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcgotIHN5biBtYXRjaCBuZXRyd0hkcgkJIlwoXFNcKyBcKSpcU1wrXC5oXD4iCQkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcgotIHN5biBtYXRjaCBuZXRyd0xpYgkJIlwoXFNcKyBcKSpcUypcLlwlKGFcfHNvXHxsaWJcfGRsbFwpXD4iCQljb250YWlucz1uZXRyd1RyZWVCYXIKLSBzeW4gbWF0Y2ggbmV0cndNYWtlRmlsZQkiXDxbbU1dYWtlZmlsZVw+XHxcKFxTXCsgXCkqXFNcK1wubWFrXD4iCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcgotIHN5biBtYXRjaCBuZXRyd09iagkJIlwoXFNcKyBcKSpcUypcLlwlKG9cfG9ialwpXD4iCQkJY29udGFpbnM9bmV0cndUcmVlQmFyCi0gc3luIG1hdGNoIG5ldHJ3VGFncyAgICAJIlw8dGFnc1w+IgkJCQkJY29udGFpbnM9bmV0cndUcmVlQmFyCi0gc3luIG1hdGNoIG5ldHJ3VGFncwkJIlw8XChBTm1lbnVcfEFOdGFnc1wpXD4iCQkJY29udGFpbnM9bmV0cndUcmVlQmFyCi0gc3luIG1hdGNoIG5ldHJ3VGlsZGUJCSJcKFxTXCsgXCkqXFNcK1x+XD4iCQkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcgotIHN5biBtYXRjaCBuZXRyd1RtcAkJIlw8dG1wXChcU1wrIFwpKlxTXCtcPlx8XChcU1wrIFwpKlxTKnRtcFw+Igljb250YWlucz1uZXRyd1RyZWVCYXIKKyBzeW4gbWF0Y2ggbmV0cndCYWsJCSJcKFxTXCsgXCkqXFNcK1wuYmFrXD4iCQkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcixATm9TcGVsbAorIHN5biBtYXRjaCBuZXRyd0NvbXByZXNzCSJcKFxTXCsgXCkqXFNcK1wuXCUoZ3pcfGJ6Mlx8Wlx8emlwXClcPiIJY29udGFpbnM9bmV0cndUcmVlQmFyLEBOb1NwZWxsCisgaWYgaGFzKCJ1bml4IikKKyAgc3luIG1hdGNoIG5ldHJ3Q29yZUR1bXAJIlw8Y29yZVwlKFwuXGRcK1wpXD1cPiIJCQkJY29udGFpbnM9bmV0cndUcmVlQmFyLEBOb1NwZWxsCisgZW5kaWYKKyBzeW4gbWF0Y2ggbmV0cndEYXRhCQkiXChcU1wrIFwpKlxTXCtcLmRhdFw+IgkJCQljb250YWlucz1uZXRyd1RyZWVCYXIsQE5vU3BlbGwKKyBzeW4gbWF0Y2ggbmV0cndIZHIJCSJcKFxTXCsgXCkqXFNcK1wuaFw+IgkJCQljb250YWlucz1uZXRyd1RyZWVCYXIsQE5vU3BlbGwKKyBzeW4gbWF0Y2ggbmV0cndMaWIJCSJcKFxTXCsgXCkqXFMqXC5cJShhXHxzb1x8bGliXHxkbGxcKVw+IgkJY29udGFpbnM9bmV0cndUcmVlQmFyLEBOb1NwZWxsCisgc3luIG1hdGNoIG5ldHJ3TWFrZUZpbGUJIlw8W21NXWFrZWZpbGVcPlx8XChcU1wrIFwpKlxTXCtcLm1ha1w+Igljb250YWlucz1uZXRyd1RyZWVCYXIsQE5vU3BlbGwKKyBzeW4gbWF0Y2ggbmV0cndPYmoJCSJcKFxTXCsgXCkqXFMqXC5cJShvXHxvYmpcKVw+IgkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcixATm9TcGVsbAorIHN5biBtYXRjaCBuZXRyd1RhZ3MgICAgCSJcPHRhZ3NcPiIJCQkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcixATm9TcGVsbAorIHN5biBtYXRjaCBuZXRyd1RhZ3MJCSJcPFwoQU5tZW51XHxBTnRhZ3NcKVw+IgkJCWNvbnRhaW5zPW5ldHJ3VHJlZUJhcixATm9TcGVsbAorIHN5biBtYXRjaCBuZXRyd1RpbGRlCQkiXChcU1wrIFwpKlxTXCtcflw+IgkJCQljb250YWlucz1uZXRyd1RyZWVCYXIsQE5vU3BlbGwKKyBzeW4gbWF0Y2ggbmV0cndUbXAJCSJcPHRtcFwoXFNcKyBcKSpcU1wrXD5cfFwoXFNcKyBcKSpcUyp0bXBcPiIJY29udGFpbnM9bmV0cndUcmVlQmFyLEBOb1NwZWxsCiBlbmRpZgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBIaWdobGlnaHRpbmcgTGlua3M6IHt7ezEKIGlmICFleGlzdHMoImRpZF9kcmNoaXBfbmV0cndsaXN0X3N5bnRheCIpCiAgbGV0IGRpZF9kcmNoaXBfbmV0cndsaXN0X3N5bnRheD0gMQotIGhpIGxpbmsgbmV0cndDbGFzc2lmeQlGdW5jdGlvbgotIGhpIGxpbmsgbmV0cndDbWRTZXAJRGVsaW1pdGVyCi0gaGkgbGluayBuZXRyd0NvbW1lbnQJQ29tbWVudAotIGhpIGxpbmsgbmV0cndEaXIJRGlyZWN0b3J5Ci0gaGkgbGluayBuZXRyd0hlbHBDbWQJRnVuY3Rpb24KLSBoaSBsaW5rIG5ldHJ3SGlkZVBhdAlTdGF0ZW1lbnQKLSBoaSBsaW5rIG5ldHJ3TGlzdAlTdGF0ZW1lbnQKLSBoaSBsaW5rIG5ldHJ3VmVyc2lvbglJZGVudGlmaWVyCi0gaGkgbGluayBuZXRyd1N5bUxpbmsJUXVlc3Rpb24KLSBoaSBsaW5rIG5ldHJ3RXhlCVByZVByb2MKLSBoaSBsaW5rIG5ldHJ3RGF0ZVNlcAlEZWxpbWl0ZXIKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndDbGFzc2lmeQlGdW5jdGlvbgorIGhpIGRlZmF1bHQgbGluayBuZXRyd0NtZFNlcAlEZWxpbWl0ZXIKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndDb21tZW50CUNvbW1lbnQKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndEaXIJRGlyZWN0b3J5CisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3SGVscENtZAlGdW5jdGlvbgorIGhpIGRlZmF1bHQgbGluayBuZXRyd0hpZGVQYXQJU3RhdGVtZW50CisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3SGlkZVNlcAluZXRyd0NvbW1lbnQKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndMaXN0CVN0YXRlbWVudAorIGhpIGRlZmF1bHQgbGluayBuZXRyd1ZlcnNpb24JSWRlbnRpZmllcgorIGhpIGRlZmF1bHQgbGluayBuZXRyd1N5bUxpbmsJUXVlc3Rpb24KKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndFeGUJUHJlUHJvYworIGhpIGRlZmF1bHQgbGluayBuZXRyd0RhdGVTZXAJRGVsaW1pdGVyCiAKLSBoaSBsaW5rIG5ldHJ3VHJlZUJhcglTcGVjaWFsCi0gaGkgbGluayBuZXRyd1RpbWVTZXAJbmV0cndEYXRlU2VwCi0gaGkgbGluayBuZXRyd0NvbW1hCW5ldHJ3Q29tbWVudAotIGhpIGxpbmsgbmV0cndIaWRlCW5ldHJ3Q29tbWVudAotIGhpIGxpbmsgbmV0cndNYXJrRmlsZQlJZGVudGlmaWVyCisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3VHJlZUJhcglTcGVjaWFsCisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3VGltZVNlcAluZXRyd0RhdGVTZXAKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndDb21tYQluZXRyd0NvbW1lbnQKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndIaWRlCW5ldHJ3Q29tbWVudAorIGhpIGRlZmF1bHQgbGluayBuZXRyd01hcmtGaWxlCUlkZW50aWZpZXIKIAogICIgc3BlY2lhbCBzeW50YXggaGlnaGxpZ2h0aW5nIChzZWUgOmhlIGc6bmV0cndfc3BlY2lhbF9zeW50YXgpCi0gaGkgbGluayBuZXRyd0JhawlOb25UZXh0Ci0gaGkgbGluayBuZXRyd0NvbXByZXNzCUZvbGRlZAotIGhpIGxpbmsgbmV0cndEYXRhCURpZmZDaGFuZ2UKLSBoaSBsaW5rIG5ldHJ3TGliCURpZmZDaGFuZ2UKLSBoaSBsaW5rIG5ldHJ3TWFrZWZpbGUJRGlmZkNoYW5nZQotIGhpIGxpbmsgbmV0cndPYmoJRm9sZGVkCi0gaGkgbGluayBuZXRyd1RpbGRlCUZvbGRlZAotIGhpIGxpbmsgbmV0cndUbXAJRm9sZGVkCi0gaGkgbGluayBuZXRyd1RhZ3MJRm9sZGVkCisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3QmFrCU5vblRleHQKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndDb21wcmVzcwlGb2xkZWQKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndDb3JlRHVtcAlXYXJuaW5nTXNnCisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3RGF0YQlEaWZmQ2hhbmdlCisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3TGliCURpZmZDaGFuZ2UKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndNYWtlZmlsZQlEaWZmQ2hhbmdlCisgaGkgZGVmYXVsdCBsaW5rIG5ldHJ3T2JqCUZvbGRlZAorIGhpIGRlZmF1bHQgbGluayBuZXRyd1RpbGRlCUZvbGRlZAorIGhpIGRlZmF1bHQgbGluayBuZXRyd1RtcAlGb2xkZWQKKyBoaSBkZWZhdWx0IGxpbmsgbmV0cndUYWdzCUZvbGRlZAogZW5kaWYKIAogIiBDdXJyZW50IFN5bnRheDoge3t7MQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvb3BsLnZpbSBiL3J1bnRpbWUvc3ludGF4L29wbC52aW0KaW5kZXggMTkxNGEwNS4uYWEzY2I5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvb3BsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9vcGwudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU9QTAogIiBNYWludGFpbmVyOglDem8gPE9saXZpZXIuU2lyb2xAbGlwNi5mcj4KLSIgJElkJAorIiAkSWQ6IG9wbC52aW0sdiAxLjEgMjAwNC8wNi8xMyAxNzozNDoxMSB2aW1ib3NzIEV4cCAkCiAKICIgT3BlbiBQc2lvbiBMYW5ndWFnZS4uLiAoRVBPQzE2L0VQT0MzMikKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcGFwcC52aW0gYi9ydW50aW1lL3N5bnRheC9wYXBwLnZpbQppbmRleCAwZDg0ZDgwLi5kODZkY2U2IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9wYXBwLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9wYXBwLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIKICIgTGFuZ3VhZ2U6CXBhcHAKICIgTWFpbnRhaW5lcjoJTWFyYyBMZWhtYW5uIDxwY2dAZ29vZi5jb20+Ci0iIExhc3QgQ2hhbmdlOgkyMDAzIE1heSAxMQorIiBMYXN0IENoYW5nZToJMjAwOSBOb3YgMTEKICIgRmlsZW5hbWVzOiAgICAqLnBhcHAgKi5weG1sICoucHhzbAogIiBVUkw6CQlodHRwOi8vcGFwcC5wbGFuOS5kZS8KIApAQCAtMzcsNiArMzcsNyBAQAogICAgIHN5biBpbmNsdWRlIEBQQXBwSHRtbCBzeW50YXgvaHRtbC52aW0KICAgZW5kaWYKICAgdW5sZXQgYjpjdXJyZW50X3N5bnRheAorICBzeW50YXggc3BlbGwgZGVmYXVsdCAgIiBhZGRlZCBieSBCcmFtCiBlbmRpZgogCiBpZiB2ZXJzaW9uIDwgNjAwCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9wby52aW0gYi9ydW50aW1lL3N5bnRheC9wby52aW0KaW5kZXggMTI0ZDUyNC4uNDQ3NTQxNyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcG8udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3BvLnZpbQpAQCAtMSwxMCArMSwxMCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CXBvIChnZXR0ZXh0KQogIiBNYWludGFpbmVyOglEd2F5bmUgQmFpbGV5IDxkd2F5bmVAdHJhbnNsYXRlLm9yZy56YT4KLSIgTGFzdCBDaGFuZ2U6CTIwMDggSmFuIDA4CisiIExhc3QgQ2hhbmdlOgkyMDA4IFNlcCAxNwogIiBDb250cmlidXRvcnM6IER3YXluZSBCYWlsZXkgKE1vc3QgYWR2YW5jZWQgc3ludGF4IGhpZ2hsaWdodGluZykKICIgICAgICAgICAgICAgICBMZW9uYXJkbyBGb250ZW5lbGxlIChTcGVsbCBjaGVja2luZykKLSIgICAgICAgICAgICAgICBOYW0gU3VuZ0h5dW4gPG5hbXNoQGtsZHAub3JnPiAoT3JpZ2luYWwgbWFpbnRhaW5lcikKKyIgICAgICAgICAgICAgICBTdW5nSHl1biBOYW0gPGdvd2VvbEBnbWFpbC5jb20+IChPcmlnaW5hbCBtYWludGFpbmVyKQogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcHJvZ3Jlc3MudmltIGIvcnVudGltZS9zeW50YXgvcHJvZ3Jlc3MudmltCmluZGV4IGZiMmIxNjEuLjY4MTY1NDggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3Byb2dyZXNzLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9wcm9ncmVzcy52aW0KQEAgLTgsNyArOCw3IEBACiAiCQkJTWlraGFpbCBLdXBlcmJsdW0JPG1pa2hhaWxAd2hhc3VwLmNvbT4KICIJCQlKb2huIEZsb3JpYW4JCTxqZmxvcmlhbkB2b3lhZ2VyLm5ldD4KICIgTGFzdCBDaGFuZ2U6CQlXZWQgQXByIDEyIDA4OjU1OjM1IEVTVCAyMDA2Ci0iICRJZCQKKyIgJElkOiBwcm9ncmVzcy52aW0sdiAxLjMgMjAwNi8wNC8xMiAyMTo0ODo0NyB2aW1ib3NzIEV4cCAkCiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9wcm9sb2cudmltIGIvcnVudGltZS9zeW50YXgvcHJvbG9nLnZpbQppbmRleCA2OGIwOGJlLi41OGRlNzFmIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9wcm9sb2cudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3Byb2xvZy52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgUFJPTE9HCiAiIE1haW50YWluZXJzOiBUaG9tYXMgS29laGxlciA8amVhbi1sdWNAcGljYXJkLmZyYW5rZW4uZGU+Ci0iIExhc3QgQ2hhbmdlOiAyMDA4IEFwcmlsIDUKLSIgVVJMOgkgICAgICAgaHR0cDovL2dvdHQtZ2VoYWJ0LzgwMF93ZXJfd2lyX3NpbmQvdGhvbWFzL0hvbWVwYWdlL0NvbXB1dGVyL3ZpbS9zeW50YXgvcHJvbG9nLnZpbQorIiBMYXN0IENoYW5nZTogMjAwOSBEZWMgMDQKKyIgVVJMOgkgICAgICAgaHR0cDovL2dvdHQtZ2VoYWJ0LmRlLzgwMF93ZXJfd2lyX3NpbmQvdGhvbWFzL0hvbWVwYWdlL0NvbXB1dGVyL3ZpbS9zeW50YXgvcHJvbG9nLnZpbQogCiAiIFRoZXJlIGFyZSB0d28gc2V0cyBvZiBoaWdobGlnaHRpbmcgaW4gaGVyZToKICIgSWYgdGhlICJwcm9sb2dfaGlnaGxpZ2h0aW5nX2NsZWFuIiB2YXJpYWJsZSBleGlzdHMsIGl0IGlzIHJhdGhlciBzcGFyc2UuCkBAIC02Myw3ICs2Myw3IEBACiAgIHN5biBtYXRjaCAgIHByb2xvZ09wZXJhdG9yICI9XFw9XHw9Oj1cfFxcPT1cfD08XHw9PVx8Pj1cfFxcPVx8XFwrXHw8XHw+XHw9IgogICBzeW4gbWF0Y2ggICBwcm9sb2dBc0lzICAgICAiPT09XHxcXD09PVx8PD1cfD0+IgogCi0gIHN5biBtYXRjaCAgIHByb2xvZ051bWJlcgkgICAgICAiXDxbMDEyMzQ1Njc4OV0qXD4iCisgIHN5biBtYXRjaCAgIHByb2xvZ051bWJlcgkgICAgICAiXDxbMDEyMzQ1Njc4OV0qXD4nXEAhIgogICBzeW4gbWF0Y2ggICBwcm9sb2dDb21tZW50RXJyb3IgICAgICAiXCovIgogICBzeW4gbWF0Y2ggICBwcm9sb2dTcGVjaWFsQ2hhcmFjdGVyICAiOyIKICAgc3luIG1hdGNoICAgcHJvbG9nU3BlY2lhbENoYXJhY3RlciAgIiEiCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9weXJleC52aW0gYi9ydW50aW1lL3N5bnRheC9weXJleC52aW0KaW5kZXggZjA2YjJkMy4uN2RjOWI5NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcHlyZXgudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3B5cmV4LnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6CVB5cmV4CiAiIE1haW50YWluZXI6CU1hcmNvIEJhcmlzaW9uZSA8bWFyY28uYmFyaUBwZW9wbGUuaXQ+CiAiIFVSTDoJCWh0dHA6Ly9tYXJjb2JhcmkuYWx0ZXJ2aXN0YS5vcmcvcHlyZXhfdmltLmh0bWwKLSIgTGFzdCBDaGFuZ2U6CTIwMDQgTWF5IDE2CisiIExhc3QgQ2hhbmdlOgkyMDA5IE5vdiAwOQogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApAQCAtMjUsNyArMjUsNyBAQAogc3luIGtleXdvcmQgcHlyZXhUeXBlCQlpbnQgbG9uZyBzaG9ydCBmbG9hdCBkb3VibGUgY2hhciBvYmplY3Qgdm9pZAogc3luIGtleXdvcmQgcHlyZXhUeXBlCQlzaWduZWQgdW5zaWduZWQKIHN5biBrZXl3b3JkIHB5cmV4U3RydWN0dXJlCXN0cnVjdCB1bmlvbiBlbnVtCi1zeW4ga2V5d29yZCBweXJleFByZWNvbmRpdAlpbmNsdWRlIGNpbXBvcnQKK3N5biBrZXl3b3JkIHB5cmV4SW5jbHVkZQlpbmNsdWRlIGNpbXBvcnQKIHN5biBrZXl3b3JkIHB5cmV4QWNjZXNzCQlwdWJsaWMgcHJpdmF0ZSBwcm9wZXJ0eSByZWFkb25seSBleHRlcm4KICIgSWYgc29tZW9tZSB3YW50cyBQeXRob24ncyBidWlsdC1pbnMgaGlnaGxpZ2h0ZWQgcHJvYmFibHkgaGUKICIgYWxzbyB3YW50cyBQeXJleCdzIGJ1aWx0LWlucyBoaWdobGlnaHRlZApAQCAtMzUsOSArMzUsOSBAQAogCiAiIFRoaXMgZGVsZXRlcyAiZnJvbSIgZnJvbSB0aGUga2V5d29yZHMgYW5kIHJlLWFkZHMgaXQgYXMgYQogIiBtYXRjaCB3aXRoIGxvd2VyIHByaW9yaXR5IHRoYW4gcHlyZXhGb3JGcm9tCi1zeW4gY2xlYXIgICBweXRob25QcmVDb25kaXQKLXN5biBrZXl3b3JkIHB5dGhvblByZUNvbmRpdCAgICAgaW1wb3J0Ci1zeW4gbWF0Y2ggICBweXRob25QcmVDb25kaXQgICAgICJmcm9tIgorc3luIGNsZWFyICAgcHl0aG9uSW5jbHVkZQorc3luIGtleXdvcmQgcHl0aG9uSW5jbHVkZSAgICAgaW1wb3J0CitzeW4gbWF0Y2ggICBweXRob25JbmNsdWRlICAgICAiZnJvbSIKIAogIiBXaXRoICJmb3JbXjpdKlx6c2Zyb20iIFZJTSBkb2VzIG5vdCBtYXRjaCAiZm9yIiBhbnltb3JlLCBzbwogIiBJIHVzZWQgdGhlIHNsb3dlciAiXEA8PSIgZm9ybQpAQCAtNTQsNyArNTQsNyBAQAogICBIaUxpbmsgcHlyZXhTdGF0ZW1lbnQJCVN0YXRlbWVudAogICBIaUxpbmsgcHlyZXhUeXBlCQlUeXBlCiAgIEhpTGluayBweXJleFN0cnVjdHVyZQkJU3RydWN0dXJlCi0gIEhpTGluayBweXJleFByZWNvbmRpdAkJUHJlQ29uZGl0CisgIEhpTGluayBweXJleEluY2x1ZGUJCVByZUNvbmRpdAogICBIaUxpbmsgcHlyZXhBY2Nlc3MJCXB5cmV4U3RhdGVtZW50CiAgIGlmIGV4aXN0cygicHl0aG9uX2hpZ2hsaWdodF9idWlsdGlucyIpIHx8IGV4aXN0cygicHlyZXhfaGlnaGxpZ2h0X2J1aWx0aW5zIikKICAgICAgIEhpTGluayBweXJleEJ1aWx0aW4JRnVuY3Rpb24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3B5dGhvbi52aW0gYi9ydW50aW1lL3N5bnRheC9weXRob24udmltCmluZGV4IDUyODhkOWIuLmQ1OTA3NDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3B5dGhvbi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcHl0aG9uLnZpbQpAQCAtMSwxNDMgKzEsMjUyIEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJUHl0aG9uCiAiIE1haW50YWluZXI6CU5laWwgU2NoZW1lbmF1ZXIgPG5hc0BweXRob24uY2E+Ci0iIFVwZGF0ZWQ6CTIwMDYtMTAtMTUKLSIJCUFkZGVkIFB5dGhvbiAyLjQgZmVhdHVyZXMgMjAwNiBNYXkgNCAoRG1pdHJ5IFZhc2lsaWV2KQorIiBMYXN0IENoYW5nZToJMjAwOS0xMC0xMworIiBDcmVkaXRzOgladmV6ZGFuIFBldGtvdmljIDx6cGV0a292aWNAYWNtLm9yZz4KKyIJCU5laWwgU2NoZW1lbmF1ZXIgPG5hc0BweXRob24uY2E+CisiCQlEbWl0cnkgVmFzaWxpZXYKICIKLSIgT3B0aW9ucyB0byBjb250cm9sIFB5dGhvbiBzeW50YXggaGlnaGxpZ2h0aW5nOgorIgkJVGhpcyB2ZXJzaW9uIGlzIGEgbWFqb3IgcmV3cml0ZSBieSBadmV6ZGFuIFBldGtvdmljLgogIgotIiBGb3IgaGlnaGxpZ2h0ZWQgbnVtYmVyczoKKyIJCS0gaW50cm9kdWNlZCBoaWdobGlnaHRpbmcgb2YgZG9jdGVzdHMKKyIJCS0gdXBkYXRlZCBrZXl3b3JkcywgYnVpbHQtaW5zLCBhbmQgZXhjZXB0aW9ucworIgkJLSBjb3JyZWN0ZWQgcmVndWxhciBleHByZXNzaW9ucyBmb3IKICIKLSIgICAgbGV0IHB5dGhvbl9oaWdobGlnaHRfbnVtYmVycyA9IDEKKyIJCSAgKiBmdW5jdGlvbnMKKyIJCSAgKiBkZWNvcmF0b3JzCisiCQkgICogc3RyaW5ncworIgkJICAqIGVzY2FwZXMKKyIJCSAgKiBudW1iZXJzCisiCQkgICogc3BhY2UgZXJyb3IKICIKLSIgRm9yIGhpZ2hsaWdodGVkIGJ1aWx0aW4gZnVuY3Rpb25zOgorIgkJLSBjb3JyZWN0ZWQgc3luY2hyb25pemF0aW9uCisiCQktIG1vcmUgaGlnaGxpZ2h0aW5nIGlzIE9OIGJ5IGRlZmF1bHQsIGV4Y2VwdAorIgkJLSBzcGFjZSBlcnJvciBoaWdobGlnaHRpbmcgaXMgT0ZGIGJ5IGRlZmF1bHQKICIKLSIgICAgbGV0IHB5dGhvbl9oaWdobGlnaHRfYnVpbHRpbnMgPSAxCisiIE9wdGlvbmFsIGhpZ2hsaWdodGluZyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyB0aGVzZSB2YXJpYWJsZXMuCiAiCi0iIEZvciBoaWdobGlnaHRlZCBzdGFuZGFyZCBleGNlcHRpb25zOgorIiAgIGxldCBweXRob25fbm9fYnVpbHRpbl9oaWdobGlnaHQgPSAxCisiICAgbGV0IHB5dGhvbl9ub19kb2N0ZXN0X2NvZGVfaGlnaGxpZ2h0ID0gMQorIiAgIGxldCBweXRob25fbm9fZG9jdGVzdF9oaWdobGlnaHQgPSAxCisiICAgbGV0IHB5dGhvbl9ub19leGNlcHRpb25faGlnaGxpZ2h0ID0gMQorIiAgIGxldCBweXRob25fbm9fbnVtYmVyX2hpZ2hsaWdodCA9IDEKKyIgICBsZXQgcHl0aG9uX3NwYWNlX2Vycm9yX2hpZ2hsaWdodCA9IDEKICIKLSIgICAgbGV0IHB5dGhvbl9oaWdobGlnaHRfZXhjZXB0aW9ucyA9IDEKKyIgQWxsIHRoZSBvcHRpb25zIGFib3ZlIGNhbiBiZSBzd2l0Y2hlZCBvbiB0b2dldGhlci4KICIKLSIgSGlnaGxpZ2h0IGVycm9uZW91cyB3aGl0ZXNwYWNlOgotIgotIiAgICBsZXQgcHl0aG9uX2hpZ2hsaWdodF9zcGFjZV9lcnJvcnMgPSAxCi0iCi0iIElmIHlvdSB3YW50IGFsbCBwb3NzaWJsZSBQeXRob24gaGlnaGxpZ2h0aW5nICh0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZQotIiBwcmVjZWRpbmcgb3B0aW9ucyk6Ci0iCi0iICAgIGxldCBweXRob25faGlnaGxpZ2h0X2FsbCA9IDEKKyIgICBsZXQgcHl0aG9uX2hpZ2hsaWdodF9hbGwgPSAxCiAiCiAKLSIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCi0iIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCisiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcy4KKyIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQuCiBpZiB2ZXJzaW9uIDwgNjAwCiAgIHN5bnRheCBjbGVhcgogZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaAogZW5kaWYKIAotCi1zeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJYnJlYWsgY29udGludWUgZGVsCi1zeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJZXhjZXB0IGV4ZWMgZmluYWxseQotc3luIGtleXdvcmQgcHl0aG9uU3RhdGVtZW50CXBhc3MgcHJpbnQgcmFpc2UKLXN5biBrZXl3b3JkIHB5dGhvblN0YXRlbWVudAlyZXR1cm4gdHJ5IHdpdGgKLXN5biBrZXl3b3JkIHB5dGhvblN0YXRlbWVudAlnbG9iYWwgYXNzZXJ0Ci1zeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJbGFtYmRhIHlpZWxkCi1zeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJZGVmIGNsYXNzIG5leHRncm91cD1weXRob25GdW5jdGlvbiBza2lwd2hpdGUKLXN5biBtYXRjaCAgIHB5dGhvbkZ1bmN0aW9uCSJbYS16QS1aX11bYS16QS1aMC05X10qIiBjb250YWluZWQKKyIgS2VlcCBQeXRob24ga2V5d29yZHMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIGluc2lkZSBncm91cHMgZm9yIGVhc3kKKyIgY29tcGFyaXNvbiB3aXRoIHRoZSB0YWJsZSBpbiB0aGUgJ1B5dGhvbiBMYW5ndWFnZSBSZWZlcmVuY2UnCisiIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNrZXl3b3Jkcy4KKyIgR3JvdXBzIGFyZSBpbiB0aGUgb3JkZXIgcHJlc2VudGVkIGluIE5BTUlORyBDT05WRU5USU9OUyBpbiBzeW50YXgudHh0LgorIiBFeGNlcHRpb25zIGNvbWUgbGFzdCBhdCB0aGUgZW5kIG9mIGVhY2ggZ3JvdXAgKGNsYXNzIGFuZCBkZWYgYmVsb3cpLgorIgorIiBLZXl3b3JkcyAnd2l0aCcgYW5kICdhcycgYXJlIG5ldyBpbiBQeXRob24gMi42CisiICh1c2UgJ2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQnIGluIFB5dGhvbiAyLjUpLgorIgorIiBTb21lIGNvbXByb21pc2VzIGhhZCB0byBiZSBtYWRlIHRvIHN1cHBvcnQgYm90aCBQeXRob24gMy4wIGFuZCAyLjYuCisiIFdlIGluY2x1ZGUgUHl0aG9uIDMuMCBmZWF0dXJlcywgYnV0IHdoZW4gYSBkZWZpbml0aW9uIGlzIGR1cGxpY2F0ZWQsCisiIHRoZSBsYXN0IGRlZmluaXRpb24gdGFrZXMgcHJlY2VkZW5jZS4KKyIKKyIgLSAnRmFsc2UnLCAnTm9uZScsIGFuZCAnVHJ1ZScgYXJlIGtleXdvcmRzIGluIFB5dGhvbiAzLjAgYnV0IHRoZXkgYXJlCisiICAgYnVpbHQtaW5zIGluIDIuNiBhbmQgd2lsbCBiZSBoaWdobGlnaHRlZCBhcyBidWlsdC1pbnMgYmVsb3cuCisiIC0gJ2V4ZWMnIGlzIGEgYnVpbHQtaW4gaW4gUHl0aG9uIDMuMCBhbmQgd2lsbCBiZSBoaWdobGlnaHRlZCBhcworIiAgIGJ1aWx0LWluIGJlbG93LgorIiAtICdub25sb2NhbCcgaXMgYSBrZXl3b3JkIGluIFB5dGhvbiAzLjAgYW5kIHdpbGwgYmUgaGlnaGxpZ2h0ZWQuCisiIC0gJ3ByaW50JyBpcyBhIGJ1aWx0LWluIGluIFB5dGhvbiAzLjAgYW5kIHdpbGwgYmUgaGlnaGxpZ2h0ZWQgYXMKKyIgICBidWlsdC1pbiBiZWxvdyAodXNlICdmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uJyBpbiAyLjYpCisiCitzeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJRmFsc2UsIE5vbmUsIFRydWUKK3N5biBrZXl3b3JkIHB5dGhvblN0YXRlbWVudAlhcyBhc3NlcnQgYnJlYWsgY29udGludWUgZGVsIGV4ZWMgZ2xvYmFsCitzeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQJbGFtYmRhIG5vbmxvY2FsIHBhc3MgcHJpbnQgcmV0dXJuIHdpdGggeWllbGQKK3N5biBrZXl3b3JkIHB5dGhvblN0YXRlbWVudAljbGFzcyBkZWYgbmV4dGdyb3VwPXB5dGhvbkZ1bmN0aW9uIHNraXB3aGl0ZQorc3luIGtleXdvcmQgcHl0aG9uQ29uZGl0aW9uYWwJZWxpZiBlbHNlIGlmCiBzeW4ga2V5d29yZCBweXRob25SZXBlYXQJZm9yIHdoaWxlCi1zeW4ga2V5d29yZCBweXRob25Db25kaXRpb25hbAlpZiBlbGlmIGVsc2UKIHN5biBrZXl3b3JkIHB5dGhvbk9wZXJhdG9yCWFuZCBpbiBpcyBub3Qgb3IKLSIgQVMgd2lsbCBiZSBhIGtleXdvcmQgaW4gUHl0aG9uIDMKLXN5biBrZXl3b3JkIHB5dGhvblByZUNvbmRpdAlpbXBvcnQgZnJvbSBhcwotc3luIG1hdGNoICAgcHl0aG9uQ29tbWVudAkiIy4qJCIgY29udGFpbnM9cHl0aG9uVG9kbyxAU3BlbGwKLXN5biBrZXl3b3JkIHB5dGhvblRvZG8JCVRPRE8gRklYTUUgWFhYIGNvbnRhaW5lZAorc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCWV4Y2VwdCBmaW5hbGx5IHJhaXNlIHRyeQorc3luIGtleXdvcmQgcHl0aG9uSW5jbHVkZQlmcm9tIGltcG9ydAogCiAiIERlY29yYXRvcnMgKG5ldyBpbiBQeXRob24gMi40KQogc3luIG1hdGNoICAgcHl0aG9uRGVjb3JhdG9yCSJAIiBkaXNwbGF5IG5leHRncm91cD1weXRob25GdW5jdGlvbiBza2lwd2hpdGUKKyIgVGhlIHplcm8tbGVuZ3RoIG5vbi1ncm91cGluZyBtYXRjaCBiZWZvcmUgdGhlIGZ1bmN0aW9uIG5hbWUgaXMKKyIgZXh0cmVtZWx5IGltcG9ydGFudCBpbiBweXRob25GdW5jdGlvbi4gIFdpdGhvdXQgaXQsIGV2ZXJ5dGhpbmcgaXMKKyIgaW50ZXJwcmV0ZWQgYXMgYSBmdW5jdGlvbiBpbnNpZGUgdGhlIGNvbnRhaW5lZCBlbnZpcm9ubWVudCBvZgorIiBkb2N0ZXN0cy4KKyIgQSBkb3QgbXVzdCBiZSBhbGxvd2VkIGJlY2F1c2Ugb2YgQE15Q2xhc3MubXlmdW5jIGRlY29yYXRvcnMuCitzeW4gbWF0Y2ggICBweXRob25GdW5jdGlvbgorICAgICAgXCAiXCUoXCUoZGVmXHNcfGNsYXNzXHNcfEBcKVxzKlwpXEA8PVxoXCUoXHdcfFwuXCkqIiBjb250YWluZWQKIAotIiBzdHJpbmdzCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZwkJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPScrIGVuZD0rJysgc2tpcD0rXFxcXFx8XFwnKyBjb250YWlucz1weXRob25Fc2NhcGUsQFNwZWxsCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZwkJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPSIrIGVuZD0rIisgc2tpcD0rXFxcXFx8XFwiKyBjb250YWlucz1weXRob25Fc2NhcGUsQFNwZWxsCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZwkJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPSIiIisgZW5kPSsiIiIrIGNvbnRhaW5zPXB5dGhvbkVzY2FwZSxAU3BlbGwKLXN5biByZWdpb24gcHl0aG9uU3RyaW5nCQltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9JycnKyBlbmQ9KycnJysgY29udGFpbnM9cHl0aG9uRXNjYXBlLEBTcGVsbAotc3luIHJlZ2lvbiBweXRob25SYXdTdHJpbmcJbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPVtyUl0nKyBlbmQ9KycrIHNraXA9K1xcXFxcfFxcJysgY29udGFpbnM9QFNwZWxsCi1zeW4gcmVnaW9uIHB5dGhvblJhd1N0cmluZwltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9W3JSXSIrIGVuZD0rIisgc2tpcD0rXFxcXFx8XFwiKyBjb250YWlucz1AU3BlbGwKLXN5biByZWdpb24gcHl0aG9uUmF3U3RyaW5nCW1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD1bclJdIiIiKyBlbmQ9KyIiIisgY29udGFpbnM9QFNwZWxsCi1zeW4gcmVnaW9uIHB5dGhvblJhd1N0cmluZwltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9W3JSXScnJysgZW5kPSsnJycrIGNvbnRhaW5zPUBTcGVsbAotc3luIG1hdGNoICBweXRob25Fc2NhcGUJCStcXFthYmZucnR2JyJcXF0rIGNvbnRhaW5lZAotc3luIG1hdGNoICBweXRob25Fc2NhcGUJCSJcXFxvXHsxLDN9IiBjb250YWluZWQKLXN5biBtYXRjaCAgcHl0aG9uRXNjYXBlCQkiXFx4XHhcezJ9IiBjb250YWluZWQKLXN5biBtYXRjaCAgcHl0aG9uRXNjYXBlCQkiXChcXHVceFx7NH1cfFxcVVx4XHs4fVwpIiBjb250YWluZWQKLXN5biBtYXRjaCAgcHl0aG9uRXNjYXBlCQkiXFwkIgorc3luIG1hdGNoICAgcHl0aG9uQ29tbWVudAkiIy4qJCIgY29udGFpbnM9cHl0aG9uVG9kbyxAU3BlbGwKK3N5biBrZXl3b3JkIHB5dGhvblRvZG8JCUZJWE1FIE5PVEUgTk9URVMgVE9ETyBYWFggY29udGFpbmVkCisKKyIgVHJpcGxlLXF1b3RlZCBzdHJpbmdzIGNhbiBjb250YWluIGRvY3Rlc3RzLgorc3luIHJlZ2lvbiAgcHl0aG9uU3RyaW5nCisgICAgICBcIHN0YXJ0PStbdVVdXD1ceihbJyJdXCkrIGVuZD0iXHoxIiBza2lwPSJcXFxcXHxcXFx6MSIKKyAgICAgIFwgY29udGFpbnM9cHl0aG9uRXNjYXBlLEBTcGVsbAorc3luIHJlZ2lvbiAgcHl0aG9uU3RyaW5nCisgICAgICBcIHN0YXJ0PStbdVVdXD1ceignJydcfCIiIlwpKyBlbmQ9Ilx6MSIga2VlcGVuZAorICAgICAgXCBjb250YWlucz1weXRob25Fc2NhcGUscHl0aG9uU3BhY2VFcnJvcixweXRob25Eb2N0ZXN0LEBTcGVsbAorc3luIHJlZ2lvbiAgcHl0aG9uUmF3U3RyaW5nCisgICAgICBcIHN0YXJ0PStbdVVdXD1bclJdXHooWyciXVwpKyBlbmQ9Ilx6MSIgc2tpcD0iXFxcXFx8XFxcejEiCisgICAgICBcIGNvbnRhaW5zPUBTcGVsbAorc3luIHJlZ2lvbiAgcHl0aG9uUmF3U3RyaW5nCisgICAgICBcIHN0YXJ0PStbdVVdXD1bclJdXHooJycnXHwiIiJcKSsgZW5kPSJcejEiIGtlZXBlbmQKKyAgICAgIFwgY29udGFpbnM9cHl0aG9uU3BhY2VFcnJvcixweXRob25Eb2N0ZXN0LEBTcGVsbAorCitzeW4gbWF0Y2ggICBweXRob25Fc2NhcGUJK1xcW2FiZm5ydHYnIlxcXSsgY29udGFpbmVkCitzeW4gbWF0Y2ggICBweXRob25Fc2NhcGUJIlxcXG9cezEsM30iIGNvbnRhaW5lZAorc3luIG1hdGNoICAgcHl0aG9uRXNjYXBlCSJcXHhceFx7Mn0iIGNvbnRhaW5lZAorc3luIG1hdGNoICAgcHl0aG9uRXNjYXBlCSJcJShcXHVceFx7NH1cfFxcVVx4XHs4fVwpIiBjb250YWluZWQKKyIgUHl0aG9uIGFsbG93cyBjYXNlLWluc2Vuc2l0aXZlIFVuaWNvZGUgSURzOiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy8KK3N5biBtYXRjaCAgIHB5dGhvbkVzY2FwZQkiXFxOe1xhXCtcJShcc1xhXCtcKSp9IiBjb250YWluZWQKK3N5biBtYXRjaCAgIHB5dGhvbkVzY2FwZQkiXFwkIgogCiBpZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfYWxsIikKLSAgbGV0IHB5dGhvbl9oaWdobGlnaHRfbnVtYmVycyA9IDEKLSAgbGV0IHB5dGhvbl9oaWdobGlnaHRfYnVpbHRpbnMgPSAxCi0gIGxldCBweXRob25faGlnaGxpZ2h0X2V4Y2VwdGlvbnMgPSAxCi0gIGxldCBweXRob25faGlnaGxpZ2h0X3NwYWNlX2Vycm9ycyA9IDEKKyAgaWYgZXhpc3RzKCJweXRob25fbm9fYnVpbHRpbl9oaWdobGlnaHQiKQorICAgIHVubGV0IHB5dGhvbl9ub19idWlsdGluX2hpZ2hsaWdodAorICBlbmRpZgorICBpZiBleGlzdHMoInB5dGhvbl9ub19kb2N0ZXN0X2NvZGVfaGlnaGxpZ2h0IikKKyAgICB1bmxldCBweXRob25fbm9fZG9jdGVzdF9jb2RlX2hpZ2hsaWdodAorICBlbmRpZgorICBpZiBleGlzdHMoInB5dGhvbl9ub19kb2N0ZXN0X2hpZ2hsaWdodCIpCisgICAgdW5sZXQgcHl0aG9uX25vX2RvY3Rlc3RfaGlnaGxpZ2h0CisgIGVuZGlmCisgIGlmIGV4aXN0cygicHl0aG9uX25vX2V4Y2VwdGlvbl9oaWdobGlnaHQiKQorICAgIHVubGV0IHB5dGhvbl9ub19leGNlcHRpb25faGlnaGxpZ2h0CisgIGVuZGlmCisgIGlmIGV4aXN0cygicHl0aG9uX25vX251bWJlcl9oaWdobGlnaHQiKQorICAgIHVubGV0IHB5dGhvbl9ub19udW1iZXJfaGlnaGxpZ2h0CisgIGVuZGlmCisgIGxldCBweXRob25fc3BhY2VfZXJyb3JfaGlnaGxpZ2h0ID0gMQogZW5kaWYKIAotaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X251bWJlcnMiKQorIiBJdCBpcyB2ZXJ5IGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGFsbCBkZXRhaWxzIGJlZm9yZSBjaGFuZ2luZyB0aGUKKyIgcmVndWxhciBleHByZXNzaW9ucyBiZWxvdyBvciB0aGVpciBvcmRlci4KKyIgVGhlIHdvcmQgYm91bmRhcmllcyBhcmUgKm5vdCogdGhlIGZsb2F0aW5nLXBvaW50IG51bWJlciBib3VuZGFyaWVzCisiIGJlY2F1c2Ugb2YgYSBwb3NzaWJsZSBsZWFkaW5nIG9yIHRyYWlsaW5nIGRlY2ltYWwgcG9pbnQuCisiIFRoZSBleHByZXNzaW9ucyBiZWxvdyBlbnN1cmUgdGhhdCBhbGwgdmFsaWQgbnVtYmVyIGxpdGVyYWxzIGFyZQorIiBoaWdobGlnaHRlZCwgYW5kIGludmFsaWQgbnVtYmVyIGxpdGVyYWxzIGFyZSBub3QuICBGb3IgZXhhbXBsZSwKKyIKKyIgLSBhIGRlY2ltYWwgcG9pbnQgaW4gJzQuJyBhdCB0aGUgZW5kIG9mIGEgbGluZSBpcyBoaWdobGlnaHRlZCwKKyIgLSBhIHNlY29uZCBkb3QgaW4gMS4wLjAgaXMgbm90IGhpZ2hsaWdodGVkLAorIiAtIDA4IGlzIG5vdCBoaWdobGlnaHRlZCwKKyIgLSAwOGUwIG9yIDA4aiBhcmUgaGlnaGxpZ2h0ZWQsCisiCisiIGFuZCBzbyBvbiwgYXMgc3BlY2lmaWVkIGluIHRoZSAnUHl0aG9uIExhbmd1YWdlIFJlZmVyZW5jZScuCisiIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNudW1lcmljLWxpdGVyYWxzCitpZiAhZXhpc3RzKCJweXRob25fbm9fbnVtYmVyX2hpZ2hsaWdodCIpCiAgICIgbnVtYmVycyAoaW5jbHVkaW5nIGxvbmdzIGFuZCBjb21wbGV4KQotICBzeW4gbWF0Y2ggICBweXRob25OdW1iZXIJIlw8MHhceFwrW0xsXVw9XD4iCi0gIHN5biBtYXRjaCAgIHB5dGhvbk51bWJlcgkiXDxcZFwrW0xsakpdXD1cPiIKLSAgc3luIG1hdGNoICAgcHl0aG9uTnVtYmVyCSJcLlxkXCtcKFtlRV1bKy1dXD1cZFwrXClcPVtqSl1cPVw+IgotICBzeW4gbWF0Y2ggICBweXRob25OdW1iZXIJIlw8XGRcK1wuXChbZUVdWystXVw9XGRcK1wpXD1bakpdXD1cPiIKLSAgc3luIG1hdGNoICAgcHl0aG9uTnVtYmVyCSJcPFxkXCtcLlxkXCtcKFtlRV1bKy1dXD1cZFwrXClcPVtqSl1cPVw+IgorICBzeW4gbWF0Y2ggICBweXRob25OdW1iZXIJIlw8MFtvT11cPVxvXCtbTGxdXD1cPiIKKyAgc3luIG1hdGNoICAgcHl0aG9uTnVtYmVyCSJcPDBbeFhdXHhcK1tMbF1cPVw+IgorICBzeW4gbWF0Y2ggICBweXRob25OdW1iZXIJIlw8MFtiQl1bMDFdXCtbTGxdXD1cPiIKKyAgc3luIG1hdGNoICAgcHl0aG9uTnVtYmVyCSJcPFwlKFsxLTldXGQqXHwwXClbTGxdXD1cPiIKKyAgc3luIG1hdGNoICAgcHl0aG9uTnVtYmVyCSJcPFxkXCtbakpdXD4iCisgIHN5biBtYXRjaCAgIHB5dGhvbk51bWJlcgkiXDxcZFwrW2VFXVsrLV1cPVxkXCtbakpdXD1cPiIKKyAgc3luIG1hdGNoICAgcHl0aG9uTnVtYmVyCisJXCAiXDxcZFwrXC5cJShbZUVdWystXVw9XGRcK1wpXD1bakpdXD1cJShcV1x8JFwpXEA9IgorICBzeW4gbWF0Y2ggICBweXRob25OdW1iZXIKKwlcICJcJSheXHxcV1wpXEA8PVxkKlwuXGRcK1wlKFtlRV1bKy1dXD1cZFwrXClcPVtqSl1cPVw+IgogZW5kaWYKIAotaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X2J1aWx0aW5zIikKLSAgIiBidWlsdGluIGZ1bmN0aW9ucywgdHlwZXMgYW5kIG9iamVjdHMsIG5vdCByZWFsbHkgcGFydCBvZiB0aGUgc3ludGF4Ci0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JVHJ1ZSBGYWxzZSBib29sIGVudW1lcmF0ZSBzZXQgZnJvemVuc2V0IGhlbHAKLSAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbglyZXZlcnNlZCBzb3J0ZWQgc3VtCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JRWxsaXBzaXMgTm9uZSBOb3RJbXBsZW1lbnRlZCBfX2ltcG9ydF9fIGFicwotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCWFwcGx5IGJ1ZmZlciBjYWxsYWJsZSBjaHIgY2xhc3NtZXRob2QgY21wCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JY29lcmNlIGNvbXBpbGUgY29tcGxleCBkZWxhdHRyIGRpY3QgZGlyIGRpdm1vZAotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCWV2YWwgZXhlY2ZpbGUgZmlsZSBmaWx0ZXIgZmxvYXQgZ2V0YXR0ciBnbG9iYWxzCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JaGFzYXR0ciBoYXNoIGhleCBpZCBpbnB1dCBpbnQgaW50ZXJuIGlzaW5zdGFuY2UKLSAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbglpc3N1YmNsYXNzIGl0ZXIgbGVuIGxpc3QgbG9jYWxzIGxvbmcgbWFwIG1heAotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCW1pbiBvYmplY3Qgb2N0IG9wZW4gb3JkIHBvdyBwcm9wZXJ0eSByYW5nZQotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCXJhd19pbnB1dCByZWR1Y2UgcmVsb2FkIHJlcHIgcm91bmQgc2V0YXR0cgotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCXNsaWNlIHN0YXRpY21ldGhvZCBzdHIgc3VwZXIgdHVwbGUgdHlwZSB1bmljaHIKLSAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbgl1bmljb2RlIHZhcnMgeHJhbmdlIHppcAorIiBHcm91cCB0aGUgYnVpbHQtaW5zIGluIHRoZSBvcmRlciBpbiB0aGUgJ1B5dGhvbiBMaWJyYXJ5IFJlZmVyZW5jZScgZm9yCisiIGVhc2llciBjb21wYXJpc29uLgorIiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvY29uc3RhbnRzLmh0bWwKKyIgaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L2Z1bmN0aW9ucy5odG1sCisiIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9mdW5jdGlvbnMuaHRtbCNub24tZXNzZW50aWFsLWJ1aWx0LWluLWZ1bmN0aW9ucworIiBQeXRob24gYnVpbHQtaW4gZnVuY3Rpb25zIGFyZSBpbiBhbHBoYWJldGljYWwgb3JkZXIuCitpZiAhZXhpc3RzKCJweXRob25fbm9fYnVpbHRpbl9oaWdobGlnaHQiKQorICAiIGJ1aWx0LWluIGNvbnN0YW50cworICAiICdGYWxzZScsICdUcnVlJywgYW5kICdOb25lJyBhcmUgYWxzbyByZXNlcnZlZCB3b3JkcyBpbiBQeXRob24gMy4wCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JRmFsc2UgVHJ1ZSBOb25lCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JTm90SW1wbGVtZW50ZWQgRWxsaXBzaXMgX19kZWJ1Z19fCisgICIgYnVpbHQtaW4gZnVuY3Rpb25zCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JYWJzIGFsbCBhbnkgYmluIGJvb2wgY2hyIGNsYXNzbWV0aG9kCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JY29tcGlsZSBjb21wbGV4IGRlbGF0dHIgZGljdCBkaXIgZGl2bW9kCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JZW51bWVyYXRlIGV2YWwgZmlsdGVyIGZsb2F0IGZvcm1hdAorICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCWZyb3plbnNldCBnZXRhdHRyIGdsb2JhbHMgaGFzYXR0ciBoYXNoCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JaGVscCBoZXggaWQgaW5wdXQgaW50IGlzaW5zdGFuY2UKKyAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbglpc3N1YmNsYXNzIGl0ZXIgbGVuIGxpc3QgbG9jYWxzIG1hcCBtYXgKKyAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbgltaW4gbmV4dCBvYmplY3Qgb2N0IG9wZW4gb3JkIHBvdyBwcmludAorICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCXByb3BlcnR5IHJhbmdlIHJlcHIgcmV2ZXJzZWQgcm91bmQgc2V0CisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4Jc2V0YXR0ciBzbGljZSBzb3J0ZWQgc3RhdGljbWV0aG9kIHN0cgorICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCXN1bSBzdXBlciB0dXBsZSB0eXBlIHZhcnMgemlwIF9faW1wb3J0X18KKyAgIiBQeXRob24gMi42IG9ubHkKKyAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbgliYXNlc3RyaW5nIGNhbGxhYmxlIGNtcCBleGVjZmlsZSBmaWxlCisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JbG9uZyByYXdfaW5wdXQgcmVkdWNlIHJlbG9hZCB1bmljaHIKKyAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbgl1bmljb2RlIHhyYW5nZQorICAiIFB5dGhvbiAzLjAgb25seQorICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluCWFzY2lpIGJ5dGVhcnJheSBieXRlcyBleGVjIG1lbW9yeXZpZXcKKyAgIiBub24tZXNzZW50aWFsIGJ1aWx0LWluIGZ1bmN0aW9uczsgUHl0aG9uIDIuNiBvbmx5CisgIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4JYXBwbHkgYnVmZmVyIGNvZXJjZSBpbnRlcm4KIGVuZGlmCiAKLWlmIGV4aXN0cygicHl0aG9uX2hpZ2hsaWdodF9leGNlcHRpb25zIikKLSAgIiBidWlsdGluIGV4Y2VwdGlvbnMgYW5kIHdhcm5pbmdzCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglBcml0aG1ldGljRXJyb3IgQXNzZXJ0aW9uRXJyb3IgQXR0cmlidXRlRXJyb3IKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCURlcHJlY2F0aW9uV2FybmluZyBFT0ZFcnJvciBFbnZpcm9ubWVudEVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglFeGNlcHRpb24gRmxvYXRpbmdQb2ludEVycm9yIElPRXJyb3IKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCUltcG9ydEVycm9yIEluZGVudGF0aW9uRXJyb3IgSW5kZXhFcnJvcgotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24JS2V5RXJyb3IgS2V5Ym9hcmRJbnRlcnJ1cHQgTG9va3VwRXJyb3IKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCU1lbW9yeUVycm9yIE5hbWVFcnJvciBOb3RJbXBsZW1lbnRlZEVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglPU0Vycm9yIE92ZXJmbG93RXJyb3IgT3ZlcmZsb3dXYXJuaW5nCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglSZWZlcmVuY2VFcnJvciBSdW50aW1lRXJyb3IgUnVudGltZVdhcm5pbmcKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCVN0YW5kYXJkRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvcgotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24JU3ludGF4V2FybmluZyBTeXN0ZW1FcnJvciBTeXN0ZW1FeGl0IFRhYkVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglUeXBlRXJyb3IgVW5ib3VuZExvY2FsRXJyb3IgVW5pY29kZUVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglVbmljb2RlRW5jb2RlRXJyb3IgVW5pY29kZURlY29kZUVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbglVbmljb2RlVHJhbnNsYXRlRXJyb3IKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCVVzZXJXYXJuaW5nIFZhbHVlRXJyb3IgV2FybmluZyBXaW5kb3dzRXJyb3IKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uCVplcm9EaXZpc2lvbkVycm9yCisiIEZyb20gdGhlICdQeXRob24gTGlicmFyeSBSZWZlcmVuY2UnIGNsYXNzIGhpZXJhcmNoeSBhdCB0aGUgYm90dG9tLgorIiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvZXhjZXB0aW9ucy5odG1sCitpZiAhZXhpc3RzKCJweXRob25fbm9fZXhjZXB0aW9uX2hpZ2hsaWdodCIpCisgICIgYnVpbHRpbiBiYXNlIGV4Y2VwdGlvbnMgKG9ubHkgdXNlZCBhcyBiYXNlIGNsYXNzZXMgZm9yIG90aGVyIGV4Y2VwdGlvbnMpCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJQmFzZUV4Y2VwdGlvbiBFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlBcml0aG1ldGljRXJyb3IgRW52aXJvbm1lbnRFcnJvcgorICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb25zCUxvb2t1cEVycm9yCisgICIgYnVpbHRpbiBiYXNlIGV4Y2VwdGlvbiByZW1vdmVkIGluIFB5dGhvbiAzLjAKKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlTdGFuZGFyZEVycm9yCisgICIgYnVpbHRpbiBleGNlcHRpb25zIChhY3R1YWxseSByYWlzZWQpCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJQXNzZXJ0aW9uRXJyb3IgQXR0cmlidXRlRXJyb3IgQnVmZmVyRXJyb3IKKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlFT0ZFcnJvciBGbG9hdGluZ1BvaW50RXJyb3IgR2VuZXJhdG9yRXhpdAorICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb25zCUlPRXJyb3IgSW1wb3J0RXJyb3IgSW5kZW50YXRpb25FcnJvcgorICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb25zCUluZGV4RXJyb3IgS2V5RXJyb3IgS2V5Ym9hcmRJbnRlcnJ1cHQKKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlNZW1vcnlFcnJvciBOYW1lRXJyb3IgTm90SW1wbGVtZW50ZWRFcnJvcgorICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb25zCU9TRXJyb3IgT3ZlcmZsb3dFcnJvciBSZWZlcmVuY2VFcnJvcgorICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb25zCVJ1bnRpbWVFcnJvciBTdG9wSXRlcmF0aW9uIFN5bnRheEVycm9yCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJU3lzdGVtRXJyb3IgU3lzdGVtRXhpdCBUYWJFcnJvciBUeXBlRXJyb3IKKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlVbmJvdW5kTG9jYWxFcnJvciBVbmljb2RlRXJyb3IKKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlVbmljb2RlRGVjb2RlRXJyb3IgVW5pY29kZUVuY29kZUVycm9yCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJVW5pY29kZVRyYW5zbGF0ZUVycm9yIFZhbHVlRXJyb3IgVk1TRXJyb3IKKyAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9ucwlXaW5kb3dzRXJyb3IgWmVyb0RpdmlzaW9uRXJyb3IKKyAgIiBidWlsdGluIHdhcm5pbmdzCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJQnl0ZXNXYXJuaW5nIERlcHJlY2F0aW9uV2FybmluZyBGdXR1cmVXYXJuaW5nCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJSW1wb3J0V2FybmluZyBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nCisgIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbnMJUnVudGltZVdhcm5pbmcgU3ludGF4V2FybmluZyBVbmljb2RlV2FybmluZworICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb25zCVVzZXJXYXJuaW5nIFdhcm5pbmcKIGVuZGlmCiAKLWlmIGV4aXN0cygicHl0aG9uX2hpZ2hsaWdodF9zcGFjZV9lcnJvcnMiKQoraWYgZXhpc3RzKCJweXRob25fc3BhY2VfZXJyb3JfaGlnaGxpZ2h0IikKICAgIiB0cmFpbGluZyB3aGl0ZXNwYWNlCi0gIHN5biBtYXRjaCAgIHB5dGhvblNwYWNlRXJyb3IgICBkaXNwbGF5IGV4Y2x1ZGVubCAiXFNcc1wrJCJtcz1zKzEKKyAgc3luIG1hdGNoICAgcHl0aG9uU3BhY2VFcnJvcglkaXNwbGF5IGV4Y2x1ZGVubCAiXHNcKyQiCiAgICIgbWl4ZWQgdGFicyBhbmQgc3BhY2VzCi0gIHN5biBtYXRjaCAgIHB5dGhvblNwYWNlRXJyb3IgICBkaXNwbGF5ICIgXCtcdCIKLSAgc3luIG1hdGNoICAgcHl0aG9uU3BhY2VFcnJvciAgIGRpc3BsYXkgIlx0XCsgIgorICBzeW4gbWF0Y2ggICBweXRob25TcGFjZUVycm9yCWRpc3BsYXkgIiBcK1x0IgorICBzeW4gbWF0Y2ggICBweXRob25TcGFjZUVycm9yCWRpc3BsYXkgIlx0XCsgIgogZW5kaWYKIAotIiBUaGlzIGlzIGZhc3QgYnV0IGNvZGUgaW5zaWRlIHRyaXBsZSBxdW90ZWQgc3RyaW5ncyBzY3Jld3MgaXQgdXAuIEl0Ci0iIGlzIGltcG9zc2libGUgdG8gZml4IGJlY2F1c2UgdGhlIG9ubHkgd2F5IHRvIGtub3cgaWYgeW91IGFyZSBpbnNpZGUgYQotIiB0cmlwbGUgcXVvdGVkIHN0cmluZyBpcyB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUuIElmCi0iIHlvdSBoYXZlIGEgZmFzdCBtYWNoaW5lIHlvdSBjYW4gdHJ5IHVuY29tbWVudGluZyB0aGUgInN5bmMgbWlubGluZXMiCi0iIGFuZCBjb21tZW50aW5nIG91dCB0aGUgcmVzdC4KLXN5biBzeW5jIG1hdGNoIHB5dGhvblN5bmMgZ3JvdXBoZXJlIE5PTkUgIik6JCIKLXN5biBzeW5jIG1heGxpbmVzPTIwMAotInN5biBzeW5jIG1pbmxpbmVzPTIwMDAKKyIgRG8gbm90IHNwZWxsIGRvY3Rlc3RzIGluc2lkZSBzdHJpbmdzLgorIiBOb3RpY2UgdGhhdCB0aGUgZW5kIG9mIGEgc3RyaW5nLCBlaXRoZXIgJycnLCBvciAiIiIsIHdpbGwgZW5kIHRoZSBjb250YWluZWQKKyIgZG9jdGVzdCB0b28uICBUaHVzLCB3ZSBkbyAqbm90KiBuZWVkIHRvIGhhdmUgaXQgYXMgYW4gZW5kIHBhdHRlcm4uCitpZiAhZXhpc3RzKCJweXRob25fbm9fZG9jdGVzdF9oaWdobGlnaHQiKQorICBpZiAhZXhpc3RzKCJweXRob25fbm9fZG9jdGVzdF9jb2RlX2hpZ2xpZ2h0IikKKyAgICBzeW4gcmVnaW9uIHB5dGhvbkRvY3Rlc3QKKwkgIFwgc3RhcnQ9Il5ccyo+Pj5ccyIgZW5kPSJeXHMqJCIKKwkgIFwgY29udGFpbmVkIGNvbnRhaW5zPUFMTEJVVCxweXRob25Eb2N0ZXN0LEBTcGVsbAorICAgIHN5biByZWdpb24gcHl0aG9uRG9jdGVzdFZhbHVlCisJICBcIHN0YXJ0PSteXHMqXCUoPj4+XHNcfFwuXC5cLlxzXHwiIiJcfCcnJ1wpXEAhXFNcKysgZW5kPSIkIgorCSAgXCBjb250YWluZWQKKyAgZWxzZQorICAgIHN5biByZWdpb24gcHl0aG9uRG9jdGVzdAorCSAgXCBzdGFydD0iXlxzKj4+PiIgZW5kPSJeXHMqJCIKKwkgIFwgY29udGFpbmVkIGNvbnRhaW5zPUBOb1NwZWxsCisgIGVuZGlmCitlbmRpZgorCisiIFN5bmMgYXQgdGhlIGJlZ2lubmluZyBvZiBjbGFzcywgZnVuY3Rpb24sIG9yIG1ldGhvZCBkZWZpbml0aW9uLgorc3luIHN5bmMgbWF0Y2ggcHl0aG9uU3luYyBncm91cGhlcmUgTk9ORSAiXlxzKlwlKGRlZlx8Y2xhc3NcKVxzXCtcaFx3KlxzKigiCiAKIGlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9weXRob25fc3luX2luaXRzIikKICAgaWYgdmVyc2lvbiA8PSA1MDgKQEAgLTE0NywzNSArMjU2LDQwIEBACiAgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CiAgIGVuZGlmCiAKLSAgIiBUaGUgZGVmYXVsdCBtZXRob2RzIGZvciBoaWdobGlnaHRpbmcuICBDYW4gYmUgb3ZlcnJpZGRlbiBsYXRlcgorICAiIFRoZSBkZWZhdWx0IGhpZ2hsaWdodCBsaW5rcy4gIENhbiBiZSBvdmVycmlkZGVuIGxhdGVyLgogICBIaUxpbmsgcHl0aG9uU3RhdGVtZW50CVN0YXRlbWVudAotICBIaUxpbmsgcHl0aG9uRnVuY3Rpb24JCUZ1bmN0aW9uCiAgIEhpTGluayBweXRob25Db25kaXRpb25hbAlDb25kaXRpb25hbAogICBIaUxpbmsgcHl0aG9uUmVwZWF0CQlSZXBlYXQKKyAgSGlMaW5rIHB5dGhvbk9wZXJhdG9yCQlPcGVyYXRvcgorICBIaUxpbmsgcHl0aG9uRXhjZXB0aW9uCUV4Y2VwdGlvbgorICBIaUxpbmsgcHl0aG9uSW5jbHVkZQkJSW5jbHVkZQorICBIaUxpbmsgcHl0aG9uRGVjb3JhdG9yCURlZmluZQorICBIaUxpbmsgcHl0aG9uRnVuY3Rpb24JCUZ1bmN0aW9uCisgIEhpTGluayBweXRob25Db21tZW50CQlDb21tZW50CisgIEhpTGluayBweXRob25Ub2RvCQlUb2RvCiAgIEhpTGluayBweXRob25TdHJpbmcJCVN0cmluZwogICBIaUxpbmsgcHl0aG9uUmF3U3RyaW5nCVN0cmluZwogICBIaUxpbmsgcHl0aG9uRXNjYXBlCQlTcGVjaWFsCi0gIEhpTGluayBweXRob25PcGVyYXRvcgkJT3BlcmF0b3IKLSAgSGlMaW5rIHB5dGhvblByZUNvbmRpdAlQcmVDb25kaXQKLSAgSGlMaW5rIHB5dGhvbkNvbW1lbnQJCUNvbW1lbnQKLSAgSGlMaW5rIHB5dGhvblRvZG8JCVRvZG8KLSAgSGlMaW5rIHB5dGhvbkRlY29yYXRvcglEZWZpbmUKLSAgaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X251bWJlcnMiKQotICAgIEhpTGluayBweXRob25OdW1iZXIJTnVtYmVyCisgIGlmICFleGlzdHMoInB5dGhvbl9ub19udW1iZXJfaGlnaGxpZ2h0IikKKyAgICBIaUxpbmsgcHl0aG9uTnVtYmVyCQlOdW1iZXIKICAgZW5kaWYKLSAgaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X2J1aWx0aW5zIikKKyAgaWYgIWV4aXN0cygicHl0aG9uX25vX2J1aWx0aW5faGlnaGxpZ2h0IikKICAgICBIaUxpbmsgcHl0aG9uQnVpbHRpbglGdW5jdGlvbgogICBlbmRpZgotICBpZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfZXhjZXB0aW9ucyIpCi0gICAgSGlMaW5rIHB5dGhvbkV4Y2VwdGlvbglFeGNlcHRpb24KKyAgaWYgIWV4aXN0cygicHl0aG9uX25vX2V4Y2VwdGlvbl9oaWdobGlnaHQiKQorICAgIEhpTGluayBweXRob25FeGNlcHRpb25zCVN0cnVjdHVyZQogICBlbmRpZgotICBpZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfc3BhY2VfZXJyb3JzIikKKyAgaWYgZXhpc3RzKCJweXRob25fc3BhY2VfZXJyb3JfaGlnaGxpZ2h0IikKICAgICBIaUxpbmsgcHl0aG9uU3BhY2VFcnJvcglFcnJvcgogICBlbmRpZgorICBpZiAhZXhpc3RzKCJweXRob25fbm9fZG9jdGVzdF9oaWdobGlnaHQiKQorICAgIEhpTGluayBweXRob25Eb2N0ZXN0CVNwZWNpYWwKKyAgICBIaUxpbmsgcHl0aG9uRG9jdGVzdFZhbHVlCURlZmluZQorICBlbmRpZgogCiAgIGRlbGNvbW1hbmQgSGlMaW5rCiBlbmRpZgogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJweXRob24iCiAKLSIgdmltOiB0cz04CisiIHZpbTpzZXQgc3c9MiBzdHM9MiB0cz04IG5vZXQ6CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9yY3MudmltIGIvcnVudGltZS9zeW50YXgvcmNzLnZpbQppbmRleCAwYjU2MDExLi4wNGEyY2NlIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9yY3MudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3Jjcy52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiAgICAgUkNTIGZpbGUKICIgTWFpbnRhaW5lcjogICBEbWl0cnkgVmFzaWxpZXYgPGRpbWEgYXQgaGxhYnMgZG90IHNwYiBkb3QgcnU+CiAiIFVSTDogICAgICAgICAgaHR0cDovL3d3dy5obGFicy5zcGIucnUvdmltL3Jjcy52aW0KLSIgUmV2aXNpb246ICAgICAkSWQkCisiIFJldmlzaW9uOiAgICAgJElkOiByY3MudmltLHYgMS4yIDIwMDYvMDMvMjcgMTY6NDE6MDAgdmltYm9zcyBFeHAgJAogIiBGaWxlbmFtZXM6ICAgICosdgogIiBWZXJzaW9uOiAgICAgIDEuMTEKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcmVhZGxpbmUudmltIGIvcnVudGltZS9zeW50YXgvcmVhZGxpbmUudmltCmluZGV4IDE5NzJlNWEuLjkxMDk0YzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3JlYWRsaW5lLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9yZWFkbGluZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgICAgICByZWFkbGluZSgzKSBjb25maWd1cmF0aW9uIGZpbGUKICIgTWFpbnRhaW5lcjogICAgICAgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+Ci0iIExhdGVzdCBSZXZpc2lvbjogIDIwMDctMDYtMTcKKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwOS0wNS0yNQogIiAgIHJlYWRsaW5lX2hhc19iYXNoIC0gaWYgZGVmaW5lZCBhZGQgc3VwcG9ydCBmb3IgYmFzaCBzcGVjaWZpYwogIiAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MvZnVuY3Rpb25zCiAKQEAgLTEyOCw2ICsxMjgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGFycm93LWtleS1wcmVmaXggdmktYmFjay10by1pbmRlbnQgdmktYndvcmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCB2aS1iV29yZCB2aS1ld29yZCB2aS1lV29yZCB2aS1md29yZCB2aS1mV29yZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHZpLW5leHQtd29yZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHZpLW1vdmVtZW50LW1vZGUKIAogaWYgZXhpc3RzKCJyZWFkbGluZV9oYXNfYmFzaCIpCiAgIHN5biBrZXl3b3JkIHJlYWRsaW5lRnVuY3Rpb25zIGNvbnRhaW5lZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcmVtaW5kLnZpbSBiL3J1bnRpbWUvc3ludGF4L3JlbWluZC52aW0KaW5kZXggMDAxODY4ZS4uOTNhNzE3OCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcmVtaW5kLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9yZW1pbmQudmltCkBAIC0xLDEyICsxLDEzIEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJUmVtaW5kCiAiIE1haW50YWluZXI6CURhdmlkZSBBbGJlcmFuaSA8YWxiZXJhbmlkQGxpYmVyby5pdD4KLSIgTGFzdCBDaGFuZ2U6CTEwIE1heSAyMDA2Ci0iIFZlcnNpb246CTAuMworIiBMYXN0IENoYW5nZToJMTggU2VwIDIwMDkKKyIgVmVyc2lvbjoJMC41CiAiIFVSTDoJCWh0dHA6Ly9lcmx1Zy5saW51eC5pdC9+ZGEvdmltL3N5bnRheC9yZW1pbmQudmltCiAiCi0iIHJlbWluZCBpcyBhIHNvcGhpc3RpY2F0ZWQgcmVtaW5kZXIgc2VydmljZTsgeW91IGNhbiBkb3dubG9hZCByZW1pbmQgZnJvbToKLSIgaHR0cDovL3d3dy5yb2FyaW5ncGVuZ3Vpbi5jb20vcGVuZ3Vpbi9vcGVuX3NvdXJjZV9yZW1pbmQucGhwCisiIHJlbWluZCBpcyBhIHNvcGhpc3RpY2F0ZWQgcmVtaW5kZXIgc2VydmljZQorIiB5b3UgY2FuIGRvd25sb2FkIHJlbWluZCBmcm9tOgorIiAgIGh0dHA6Ly93d3cucm9hcmluZ3Blbmd1aW4uY29tL3Blbmd1aW4vb3Blbl9zb3VyY2VfcmVtaW5kLnBocAogCiBpZiB2ZXJzaW9uIDwgNjAwCiAgIHN5bnRheCBjbGVhcgpAQCAtMTQsMjQgKzE1LDMwIEBACiAgIGZpbmlzaAogZW5kaWYKIAotIiBzaHV0IGNhc2Ugb2ZmCisiIHNodXQgY2FzZSBvZmYuCiBzeW4gY2FzZSBpZ25vcmUKIAogc3luIGtleXdvcmQgcmVtaW5kQ29tbWFuZHMJUkVNIE9NSVQgU0VUIEZTRVQgVU5TRVQKLXN5biBrZXl3b3JkIHJlbWluZEV4cGlyeQlVTlRJTCBTQ0FORlJPTSBTQ0FOIFdBUk4gU0NIRUQKK3N5biBrZXl3b3JkIHJlbWluZEV4cGlyeQlVTlRJTCBGUk9NIFNDQU5GUk9NIFNDQU4gV0FSTiBTQ0hFRAogc3luIGtleXdvcmQgcmVtaW5kVGFnCQlQUklPUklUWSBUQUcKIHN5biBrZXl3b3JkIHJlbWluZFRpbWVkCQlBVCBEVVJBVElPTgogc3luIGtleXdvcmQgcmVtaW5kTW92ZQkJT05DRSBTS0lQIEJFRk9SRSBBRlRFUgotc3luIGtleXdvcmQgcmVtaW5kU3BlY2lhbAlJTkNMVURFIElOQyBCQU5ORVIgUFVTSC1PTUlULUNPTlRFWFQgUFVTSCBDTEVBUi1PTUlULUNPTlRFWFQgQ0xFQVIgUE9QLU9NSVQtQ09OVEVYVCBQT1AKK3N5biBrZXl3b3JkIHJlbWluZFNwZWNpYWwJSU5DTFVERSBJTkMgQkFOTkVSIFBVU0gtT01JVC1DT05URVhUIFBVU0ggQ0xFQVItT01JVC1DT05URVhUIENMRUFSIFBPUC1PTUlULUNPTlRFWFQgUE9QIENPTE9SCiBzeW4ga2V5d29yZCByZW1pbmRSdW4JCU1TRyBNU0YgUlVOIENBTCBTQVRJU0ZZIFNQRUNJQUwgUFMgUFNGSUxFIFNIQURFIE1PT04KIHN5biBrZXl3b3JkIHJlbWluZENvbmRpdGlvbmFsCUlGIEVMU0UgRU5ESUYgSUZUUklHCitzeW4ga2V5d29yZCByZW1pbmREZWJ1ZwkJREVCVUcgRFVNUFZBUlMgRFVNUCBFUlJNU0cgRkxVU0ggUFJFU0VSVkUKIHN5biBtYXRjaCByZW1pbmRDb21tZW50CQkiIy4qJCIKIHN5biByZWdpb24gcmVtaW5kU3RyaW5nCQlzdGFydD0rJysgZW5kPSsnKyBza2lwPStcXFxcXHxcXCcrIG9uZWxpbmUKIHN5biByZWdpb24gcmVtaW5kU3RyaW5nCQlzdGFydD0rIisgZW5kPSsiKyBza2lwPStcXFxcXHxcXCIrIG9uZWxpbmUKLXN5biBrZXl3b3JkIHJlbWluZERlYnVnCQlERUJVRyBEVU1QVkFSUyBEVU1QIEVSUk1TRyBGTFVTSCBQUkVTRVJWRQogc3luIG1hdGNoIHJlbWluZFZhcgkJIlwkW19hLXpBLVpdW19hLXpBLVowLTldKiIKIHN5biBtYXRjaCByZW1pbmRTdWJzdAkJIiVbXiBdIgogc3luIG1hdGNoIHJlbWluZEFkdmFuY2VOdW1iZXIJIlwoXCpcfCtcfC1cfCsrXHwtLVwpWzAtOV1cKyIKKyIgWFhYOiB1c2UgZGlmZmVyZW50IHNlcGFyYXRvcnMgZm9yIGRhdGVzIGFuZCB0aW1lcz8KK3N5biBtYXRjaCByZW1pbmREYXRlU2VwYXJhdG9ycwkiWy86QFwuLV0iIGNvbnRhaW5lZAorc3luIG1hdGNoIHJlbWluZFRpbWVzCQkiWzAtOV1cezEsMn1bOlwuXVswLTldXHsxLDJ9IiBjb250YWlucz1yZW1pbmREYXRlU2VwYXJhdG9ycworIiBYWFg6IHdoeSBub3QgbWF0Y2ggb25seSB2YWxpZCBkYXRlcz8gIE9rLCBjaGVja2luZyBmb3IgJ0ZlYiB0aGUgMzAnIHdvdWxkCisiICAgICAgIGJlIGltcG9zc2libGUsIGJ1dCBhdCBsZWFzdCBjaGVjayBmb3IgdmFsaWQgbW9udGhzIGFuZCB0aW1lcy4KK3N5biBtYXRjaCByZW1pbmREYXRlcwkJIidbMC05XVx7NH1bLy1dWzAtOV1cezEsMn1bLy1dWzAtOV1cezEsMn1cKEBbMC05XVx7MSwyfVs6XC5dWzAtOV1cezEsMn1cKVw/JyIgY29udGFpbnM9cmVtaW5kRGF0ZVNlcGFyYXRvcnMKICIgVGhpcyB3aWxsIG1hdGNoIHRyYWlsaW5nIHdoaXRlc3BhY2VzIHRoYXQgc2VlbSB0byBicmVhayByZW0ycHMuCiAiIENvdXJ0ZXN5IG9mIE1pY2hhZWwgRHVubi4KIHN5biBtYXRjaCByZW1pbmRXYXJuaW5nCQlkaXNwbGF5IGV4Y2x1ZGVubCAiXFNcc1wrJCJtcz1zKzEKQEAgLTU0LDExICs2MSwxNCBAQAogICBIaUxpbmsgcmVtaW5kUnVuCQlGdW5jdGlvbgogICBIaUxpbmsgcmVtaW5kQ29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKICAgSGlMaW5rIHJlbWluZENvbW1lbnQJCUNvbW1lbnQKKyAgSGlMaW5rIHJlbWluZFRpbWVzCQlTdHJpbmcKICAgSGlMaW5rIHJlbWluZFN0cmluZwkJU3RyaW5nCiAgIEhpTGluayByZW1pbmREZWJ1ZwkJRGVidWcKICAgSGlMaW5rIHJlbWluZFZhcgkJSWRlbnRpZmllcgogICBIaUxpbmsgcmVtaW5kU3Vic3QJCUNvbnN0YW50CiAgIEhpTGluayByZW1pbmRBZHZhbmNlTnVtYmVyCU51bWJlcgorICBIaUxpbmsgcmVtaW5kRGF0ZVNlcGFyYXRvcnMJQ29tbWVudAorICBIaUxpbmsgcmVtaW5kRGF0ZXMJCVN0cmluZwogICBIaUxpbmsgcmVtaW5kV2FybmluZwkJRXJyb3IKIAogICBkZWxjb21tYW5kIEhpTGluawpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcmhlbHAudmltIGIvcnVudGltZS9zeW50YXgvcmhlbHAudmltCmluZGV4IGYxYjhkODguLmZhNTg1YjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3JoZWxwLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9yaGVscC52aW0KQEAgLTEsMTMgKzEsMTQgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICBSIEhlbHAgRmlsZQogIiBNYWludGFpbmVyOiAgSm9oYW5uZXMgUmFua2UgPGpyYW5rZUB1bmktYnJlbWVuLmRlPgotIiBMYXN0IENoYW5nZTogMjAwOCBBcHIgMTAKLSIgVmVyc2lvbjogICAgIDAuNy4xCi0iIFNWTjoJCSAgICRJZCQKKyIgTGFzdCBDaGFuZ2U6IDIwMDkgTWFpIDEyCisiIFZlcnNpb246ICAgICAwLjcuMgorIiBTVk46CQkgICAkSWQ6IHJoZWxwLnZpbSA4NiAyMDA5LTA1LTEyIDE5OjIzOjQ3WiByYW5rZSAkCiAiIFJlbWFya3M6ICAgICAtIE5vdyBpbmNsdWRlcyBSIHN5bnRheCBoaWdobGlnaHRpbmcgaW4gdGhlIGFwcHJvcHJpYXRlCiAiICAgICAgICAgICAgICAgIHNlY3Rpb25zIGlmIGFuIHIudmltIGZpbGUgaXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IG9yIGluIHRoZQogIiAgICAgICAgICAgICAgICBkZWZhdWx0IGRlYmlhbiBsb2NhdGlvbi4KICIgICAgICAgICAgICAgIC0gVGhlcmUgaXMgbm8gTGF0ZXggbWFya3VwIGluIGVxdWF0aW9ucworIiAgICAgICAgICAgICAgLSBUaGFua3MgdG8gV2lsbCBHcmF5IGZvciBmaW5kaW5nIGFuZCBmaXhpbmcgYSBidWcKIAogIiBWZXJzaW9uIENsZWFyczoge3t7MQogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKQEAgLTU3LDcgKzU4LDcgQEAKIAogIiBMaW5rcyB7e3sxCiBzeW4gcmVnaW9uIHJoZWxwTGluayBtYXRjaGdyb3VwPXJoZWxwU2VjdGlvbiBzdGFydD0iXFxsaW5reyIgZW5kPSJ9IiBjb250YWluZWQga2VlcGVuZAotc3luIHJlZ2lvbiByaGVscExpbmsgbWF0Y2hncm91cD1yaGVscFNlY3Rpb24gc3RhcnQ9IlxcbGlua1xbLipcXXsiIGVuZD0ifSIgY29udGFpbmVkIGtlZXBlbmQKK3N5biByZWdpb24gcmhlbHBMaW5rIG1hdGNoZ3JvdXA9cmhlbHBTZWN0aW9uIHN0YXJ0PSJcXGxpbmtcWy5cey19XF17IiBlbmQ9In0iIGNvbnRhaW5lZCBrZWVwZW5kCiBzeW4gcmVnaW9uIHJoZWxwTGluayBtYXRjaGdyb3VwPXJoZWxwU2VjdGlvbiBzdGFydD0iXFxsaW5rUzRjbGFzc3siIGVuZD0ifSIgY29udGFpbmVkIGtlZXBlbmQKIAogIiBUeXBlIFN0eWxlcyB7e3sxCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9ybm93ZWIudmltIGIvcnVudGltZS9zeW50YXgvcm5vd2ViLnZpbQppbmRleCA5YjFkZmM3Li43ZDQyMzk1IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9ybm93ZWIudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3Jub3dlYi52aW0KQEAgLTEsOSArMSw5IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgUiBub3dlYiBGaWxlcwogIiBNYWludGFpbmVyOiAgSm9oYW5uZXMgUmFua2UgPGpyYW5rZUB1bmktYnJlbWVuLmRlPgotIiBMYXN0IENoYW5nZTogMjAwNyBN5HIgMzAKLSIgVmVyc2lvbjogICAgIDAuOAotIiBTVk46CSAgICAgICAkSWQkCisiIExhc3QgQ2hhbmdlOiAyMDA5IE1heSAwNQorIiBWZXJzaW9uOiAgICAgMC45CisiIFNWTjoJICAgICAgICRJZDogcm5vd2ViLnZpbSA4NCAyMDA5LTA1LTAzIDE5OjUyOjQ3WiByYW5rZSAkCiAiIFJlbWFya3M6ICAgICAtIFRoaXMgZmlsZSBpcyBpbnNwaXJlZCBieSB0aGUgcHJvcG9zYWwgb2YgCiAiCQkJCSBGZXJuYW5kbyBIZW5yaXF1ZSBGZXJyYXogUGVyZWlyYSBkYSBSb3NhIDxmZWZlcnJhekBpbWUudXNwLmJyPgogIgkJCSAgICAgaHR0cDovL3d3dy5pbWUudXNwLmJyL35mZWZlcnJhei9lbi9zd2VhdmV2aW0uaHRtbApAQCAtMjUsNiArMjUsNyBAQAogdW5sZXQgYjpjdXJyZW50X3N5bnRheAogCiBzeW4gY2x1c3RlciB0ZXhNYXRjaEdyb3VwIGFkZD1Acm5vd2ViCitzeW4gY2x1c3RlciB0ZXhNYXRoTWF0Y2hHcm91cCBhZGQ9cm5vd2ViU2V4cHIKIHN5biBjbHVzdGVyIHRleEVudkdyb3VwIGFkZD1Acm5vd2ViCiBzeW4gY2x1c3RlciB0ZXhGb2xkR3JvdXAgYWRkPUBybm93ZWIKIHN5biBjbHVzdGVyIHRleERvY0dyb3VwCQlhZGQ9QHJub3dlYgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcnN0LnZpbSBiL3J1bnRpbWUvc3ludGF4L3JzdC52aW0KaW5kZXggZDVhNzZhMi4uMjQ1YzNhZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcnN0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9yc3QudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6ICAgICAgICAgcmVTdHJ1Y3R1cmVkVGV4dCBkb2N1bWVudGF0aW9uIGZvcm1hdAogIiBNYWludGFpbmVyOiAgICAgICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNi0wNy0wNAorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA5LTA1LTI1CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMTIsMTIgKzEyLDkgQEAKIAogc3luIGNhc2UgaWdub3JlCiAKLSIgRklYTUU6IFRoZSBwcm9ibGVtIHdpdGggdGhlc2UgdHdvIGlzIHRoYXQgVmltIGRvZXNu4oCZdCBzZWVtIHRvIGxpa2UKLSIgbWF0Y2hpbmcgYWNyb3NzIGxpbmUgYm91bmRhcmllcy4KLSIKLSIgc3luIG1hdGNoICAgcnN0U2VjdGlvbnMgL14uKlxuWz1gOi4nIn5eXyorIy1dXCskLworc3luIG1hdGNoICAgcnN0U2VjdGlvbnMgIl5cJShcKFs9YDouJyJ+Xl8qKyMtXVwpXDFcK1xuXClcPS5cK1xuXChbPWA6Licifl5fKisjLV1cKVwyXCskIgogCi0iIHN5biBtYXRjaCAgIHJzdFRyYW5zaXRpb24gIC9eXHMqWz1gOi4nIn5eXyorIy1dXHs0LH1ccyokLworc3luIG1hdGNoICAgcnN0VHJhbnNpdGlvbiAgL15bPWA6Licifl5fKisjLV1cezQsfVxzKiQvCiAKIHN5biBjbHVzdGVyIHJzdENydWZ0ICAgICAgICAgICAgICAgIGNvbnRhaW5zPXJzdEVtcGhhc2lzLHJzdFN0cm9uZ0VtcGhhc2lzLAogICAgICAgXCByc3RJbnRlcnByZXRlZFRleHQscnN0SW5saW5lTGl0ZXJhbCxyc3RTdWJzdGl0dXRpb25SZWZlcmVuY2UsCkBAIC0xNDQsOCArMTQxLDggQEAKIAogaGkgZGVmIGxpbmsgcnN0VG9kbyAgICAgICAgICAgICAgICAgICAgICAgICBUb2RvCiBoaSBkZWYgbGluayByc3RDb21tZW50ICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQKLSJoaSBkZWYgbGluayByc3RTZWN0aW9ucyAgICAgICAgICAgICAgICAgICAgIFR5cGUKLSJoaSBkZWYgbGluayByc3RUcmFuc2l0aW9uICAgICAgICAgICAgICAgICAgIFR5cGUKK2hpIGRlZiBsaW5rIHJzdFNlY3Rpb25zICAgICAgICAgICAgICAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgcnN0VHJhbnNpdGlvbiAgICAgICAgICAgICAgICAgICBUeXBlCiBoaSBkZWYgbGluayByc3RMaXRlcmFsQmxvY2sgICAgICAgICAgICAgICAgIFN0cmluZwogaGkgZGVmIGxpbmsgcnN0UXVvdGVkTGl0ZXJhbEJsb2NrICAgICAgICAgICBTdHJpbmcKIGhpIGRlZiBsaW5rIHJzdERvY3Rlc3RCbG9jayAgICAgICAgICAgICAgICAgUHJlUHJvYwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvcnVieS52aW0gYi9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbQppbmRleCBhNWExMThlLi5mODJiNGMyIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOgkJUnVieQogIiBNYWludGFpbmVyOgkJRG91ZyBLZWFybnMgPGRvdWdrZWFybnNAZ21haWwuY29tPgotIiBJbmZvOgkJCSRJZCQKKyIgSW5mbzoJCQkkSWQ6IHJ1YnkudmltLHYgMS4xNTIgMjAwOC8wNi8yOSAwNDozMzo0MSB0cG9wZSBFeHAgJAogIiBVUkw6CQkJaHR0cDovL3ZpbS1ydWJ5LnJ1Ynlmb3JnZS5vcmcKICIgQW5vbiBDVlM6CQlTZWUgYWJvdmUgc2l0ZQogIiBSZWxlYXNlIENvb3JkaW5hdG9yOglEb3VnIEtlYXJucyA8ZG91Z2tlYXJuc0BnbWFpbC5jb20+CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zYW1iYS52aW0gYi9ydW50aW1lL3N5bnRheC9zYW1iYS52aW0KaW5kZXggMzE1NzBlMC4uZGFlNDA0MCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvc2FtYmEudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3NhbWJhLnZpbQpAQCAtMiw4ICsyLDEwIEBACiAiIExhbmd1YWdlOglzYW1iYSBjb25maWd1cmF0aW9uIGZpbGVzIChzbWIuY29uZikKICIgTWFpbnRhaW5lcjoJUmFmYWVsIEdhcmNpYS1TdWFyZXogPHJnYXJjaWFzdWFyZXpAZnJlZS5mcj4KICIgVVJMOgkJaHR0cDovL3JnYXJjaWFzdWFyZXouZnJlZS5mci92aW0vc3ludGF4L3NhbWJhLnZpbQotIiBMYXN0IGNoYW5nZToJMjAwNCBTZXB0ZW1iZXIgMjEKLQorIiBMYXN0IGNoYW5nZToJMjAwOSBBdWcgMDYKKyIKKyIgICAgICAgICAgICAgICBOZXcgbWFpbnRhaW5lciB3YW50ZWQhCisiCiAiIERvbid0IGZvcmdldCB0byBydW4geW91ciBjb25maWcgZmlsZSB0aHJvdWdoIHRlc3RwYXJtKDEpIQogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwpAQCAtNTEsNyArNTMsNyBAQAogc3luIGtleXdvcmQgc2FtYmFLZXl3b3JkIGNvbnRhaW5lZCBuZXRiaW9zIG5pcyBub3RpZnkgbnQgbnVsbCBvZmZzZXQgb2sgb2xlCiBzeW4ga2V5d29yZCBzYW1iYUtleXdvcmQgY29udGFpbmVkIG9ubHkgb3BlbiBvcGxvY2sgb3Bsb2NrcyBvcHRpb25zIG9yZGVyIG9zCiBzeW4ga2V5d29yZCBzYW1iYUtleXdvcmQgY29udGFpbmVkIG91dHB1dCBwYWNrZXQgcGFnZSBwYW5pYyBwYXNzd2QgcGFzc3dvcmQKLXN5biBrZXl3b3JkIHNhbWJhS2V5d29yZCBjb250YWluZWQgcGFzc3dvcmRzIHBhdGggcGVybWlzc2lvbnMgcGlwZSBwb3J0CitzeW4ga2V5d29yZCBzYW1iYUtleXdvcmQgY29udGFpbmVkIHBhc3N3b3JkcyBwYXRoIHBlcm1pc3Npb25zIHBpcGUgcG9ydCBwb3J0cwogc3luIGtleXdvcmQgc2FtYmFLZXl3b3JkIGNvbnRhaW5lZCBwb3N0ZXhlYyBwb3N0c2NyaXB0IHByZWRpY3Rpb24gcHJlZXhlYwogc3luIGtleXdvcmQgc2FtYmFLZXl3b3JkIGNvbnRhaW5lZCBwcmVmZXJlZCBwcmVmZXJyZWQgcHJlbG9hZCBwcmVzZXJ2ZSBwcmludAogc3luIGtleXdvcmQgc2FtYmFLZXl3b3JkIGNvbnRhaW5lZCBwcmludGFibGUgcHJpbnRjYXAgcHJpbnRlciBwcmludGVycwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc2NoZW1lLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NjaGVtZS52aW0KaW5kZXggNmY2OTI3Zi4uZjk4NzAzNCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvc2NoZW1lLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9zY2hlbWUudmltCkBAIC0xLDYgKzEsNiBAQAogIiBWaW0gc3ludGF4IGZpbGUKLSIgTGFuZ3VhZ2U6CVNjaGVtZSAoUjVSUykKLSIgTGFzdCBDaGFuZ2U6CTIwMDcgSnVuIDE2CisiIExhbmd1YWdlOglTY2hlbWUgKFI1UlMgKyBzb21lIFI2UlMgZXh0cmFzKQorIiBMYXN0IENoYW5nZToJMjAwOSBOb3YgMjcKICIgTWFpbnRhaW5lcjoJU2VyZ2V5IEtob3JldiA8c2VyZ2V5Lmtob3JldkBnbWFpbC5jb20+CiAiIE9yaWdpbmFsIGF1dGhvcjoJRGlyayB2YW4gRGV1biA8ZGlya0BpZ3dlLnZ1Yi5hYy5iZT4KIApAQCAtMjYsOCArMjYsOCBAQAogCiAiIEZhc2Npc3QgaGlnaGxpZ2h0aW5nOiBldmVyeXRoaW5nIHRoYXQgZG9lc24ndCBmaXQgdGhlIHJ1bGVzIGlzIGFuIGVycm9yLi4uCiAKLXN5biBtYXRjaAlzY2hlbWVFcnJvcglvbmVsaW5lICAgICFbXiBcdCgpXFtcXSI7XSohCi1zeW4gbWF0Y2gJc2NoZW1lRXJyb3IJb25lbGluZSAgICAiKSIKK3N5biBtYXRjaAlzY2hlbWVFcnJvcgkhW14gXHQoKVxbXF0iO10qIQorc3luIG1hdGNoCXNjaGVtZUVycm9yCSIpIgogCiAiIFF1b3RlZCBhbmQgYmFja3F1b3RlZCBzdHVmZgogCkBAIC03MSw2ICs3MSw4IEBACiBzeW4ga2V5d29yZCBzY2hlbWVTeW50YXggYmVnaW4gZG8gZGVsYXkgc2V0ISBlbHNlID0+CiBzeW4ga2V5d29yZCBzY2hlbWVTeW50YXggcXVvdGUgcXVhc2lxdW90ZSB1bnF1b3RlIHVucXVvdGUtc3BsaWNpbmcKIHN5biBrZXl3b3JkIHNjaGVtZVN5bnRheCBkZWZpbmUtc3ludGF4IGxldC1zeW50YXggbGV0cmVjLXN5bnRheCBzeW50YXgtcnVsZXMKKyIgUjZSUworc3luIGtleXdvcmQgc2NoZW1lU3ludGF4IGRlZmluZS1yZWNvcmQtdHlwZSBmaWVsZHMgcHJvdG9jb2wKIAogc3luIGtleXdvcmQgc2NoZW1lRnVuYyBub3QgYm9vbGVhbj8gZXE/IGVxdj8gZXF1YWw/IHBhaXI/IGNvbnMgY2FyIGNkciBzZXQtY2FyIQogc3luIGtleXdvcmQgc2NoZW1lRnVuYyBzZXQtY2RyISBjYWFyIGNhZHIgY2RhciBjZGRyIGNhYWFyIGNhYWRyIGNhZGFyIGNhZGRyCkBAIC0xMDksMzAgKzExMSwzOSBAQAogc3luIGtleXdvcmQgc2NoZW1lRnVuYyBkeW5hbWljLXdpbmQgcG9ydD8gdmFsdWVzIGNhbGwtd2l0aC12YWx1ZXMKIHN5biBrZXl3b3JkIHNjaGVtZUZ1bmMgc2NoZW1lLXJlcG9ydC1lbnZpcm9ubWVudCBudWxsLWVudmlyb25tZW50CiBzeW4ga2V5d29yZCBzY2hlbWVGdW5jIGludGVyYWN0aW9uLWVudmlyb25tZW50CisiIFI2UlMKK3N5biBrZXl3b3JkIHNjaGVtZUZ1bmMgbWFrZS1lcS1oYXNodGFibGUgbWFrZS1lcXYtaGFzaHRhYmxlIG1ha2UtaGFzaHRhYmxlCitzeW4ga2V5d29yZCBzY2hlbWVGdW5jIGhhc2h0YWJsZT8gaGFzaHRhYmxlLXNpemUgaGFzaHRhYmxlLXJlZiBoYXNodGFibGUtc2V0IQorc3luIGtleXdvcmQgc2NoZW1lRnVuYyBoYXNodGFibGUtZGVsZXRlISBoYXNodGFibGUtY29udGFpbnM/IGhhc2h0YWJsZS11cGRhdGUhCitzeW4ga2V5d29yZCBzY2hlbWVGdW5jIGhhc2h0YWJsZS1jb3B5IGhhc2h0YWJsZS1jbGVhciEgaGFzaHRhYmxlLWtleXMKK3N5biBrZXl3b3JkIHNjaGVtZUZ1bmMgaGFzaHRhYmxlLWVudHJpZXMgaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uCitzeW4ga2V5d29yZCBzY2hlbWVGdW5jIGhhc2h0YWJsZS1tdXRhYmxlPyBlcXVhbC1oYXNoIHN0cmluZy1oYXNoIHN0cmluZy1jaS1oYXNoIHN5bWJvbC1oYXNoIAorc3luIGtleXdvcmQgc2NoZW1lRnVuYyBmaW5kIGZvci1hbGwgZXhpc3RzIGZpbHRlciBwYXJ0aXRpb24gZm9sZC1sZWZ0IGZvbGQtcmlnaHQKK3N5biBrZXl3b3JkIHNjaGVtZUZ1bmMgcmVtcCByZW1vdmUgcmVtdiByZW1xIG1lbXAgYXNzcCBjb25zKgogCiAiIC4uLiBzbyB0aGF0IGEgc2luZ2xlICsgb3IgLSwgaW5zaWRlIGEgcXVvdGVkIGNvbnRleHQsIHdvdWxkIG5vdCBiZQogIiBpbnRlcnByZXRlZCBhcyBhIG51bWJlciAob3V0c2lkZSBzdWNoIGNvbnRleHRzLCBpdCdzIGEgc2NoZW1lRnVuYykKIAotc3luIG1hdGNoCXNjaGVtZURlbGltaXRlcglvbmVsaW5lICAgICFcLlsgXHRcW1xdKCkiO10hbWU9ZS0xCi1zeW4gbWF0Y2gJc2NoZW1lRGVsaW1pdGVyCW9uZWxpbmUgICAgIVwuJCEKK3N5biBtYXRjaAlzY2hlbWVEZWxpbWl0ZXIJIVwuWyBcdFxbXF0oKSI7XSFtZT1lLTEKK3N5biBtYXRjaAlzY2hlbWVEZWxpbWl0ZXIJIVwuJCEKICIgLi4uIGFuZCBhIHNpbmdsZSBkb3QgaXMgbm90IGEgbnVtYmVyIGJ1dCBhIGRlbGltaXRlcgogCiAiIFRoaXMga2VlcHMgYWxsIG90aGVyIHN0dWZmIHVuaGlnaGxpZ2h0ZWQsIGV4Y2VwdCAqc3R1ZmYqIGFuZCA8c3R1ZmY+OgogCi1zeW4gbWF0Y2gJc2NoZW1lT3RoZXIJb25lbGluZSAgICAsW2EteiEkJSYqLzo8PT4/Xl9+K0AjJS1dWy1hLXohJCUmKi86PD0+P15ffjAtOSsuQCMlXSosCi1zeW4gbWF0Y2gJc2NoZW1lRXJyb3IJb25lbGluZSAgICAsW2EteiEkJSYqLzo8PT4/Xl9+K0AjJS1dWy1hLXohJCUmKi86PD0+P15ffjAtOSsuQCMlXSpbXi1hLXohJCUmKi86PD0+P15ffjAtOSsuQCBcdFxbXF0oKSI7XVwrW14gXHRcW1xdKCkiO10qLAorc3luIG1hdGNoCXNjaGVtZU90aGVyCSxbYS16ISQlJiovOjw9Pj9eX34rQCMlLV1bLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIyVdKiwKK3N5biBtYXRjaAlzY2hlbWVFcnJvcgksW2EteiEkJSYqLzo8PT4/Xl9+K0AjJS1dWy1hLXohJCUmKi86PD0+P15ffjAtOSsuQCMlXSpbXi1hLXohJCUmKi86PD0+P15ffjAtOSsuQCBcdFxbXF0oKSI7XVwrW14gXHRcW1xdKCkiO10qLAogCi1zeW4gbWF0Y2gJc2NoZW1lT3RoZXIJb25lbGluZSAgICAiXC5cLlwuIgotc3luIG1hdGNoCXNjaGVtZUVycm9yCW9uZWxpbmUgICAgIVwuXC5cLlteIFx0XFtcXSgpIjtdXCshCitzeW4gbWF0Y2gJc2NoZW1lT3RoZXIJIlwuXC5cLiIKK3N5biBtYXRjaAlzY2hlbWVFcnJvcgkhXC5cLlwuW14gXHRcW1xdKCkiO11cKyEKICIgLi4uIGEgc3BlY2lhbCBpZGVudGlmaWVyCiAKLXN5biBtYXRjaAlzY2hlbWVDb25zdGFudAlvbmVsaW5lICAgICxcKlstYS16ISQlJiovOjw9Pj9eX34wLTkrLkBdKlwqWyBcdFxbXF0oKSI7XSxtZT1lLTEKLXN5biBtYXRjaAlzY2hlbWVDb25zdGFudAlvbmVsaW5lICAgICxcKlstYS16ISQlJiovOjw9Pj9eX34wLTkrLkBdKlwqJCwKLXN5biBtYXRjaAlzY2hlbWVFcnJvcglvbmVsaW5lICAgICxcKlstYS16ISQlJiovOjw9Pj9eX34wLTkrLkBdKlwqW14tYS16ISQlJiovOjw9Pj9eX34wLTkrLkAgXHRcW1xdKCkiO11cK1teIFx0XFtcXSgpIjtdKiwKK3N5biBtYXRjaAlzY2hlbWVDb25zdGFudAksXCpbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AXVwrXCpbIFx0XFtcXSgpIjtdLG1lPWUtMQorc3luIG1hdGNoCXNjaGVtZUNvbnN0YW50CSxcKlstYS16ISQlJiovOjw9Pj9eX34wLTkrLkBdXCtcKiQsCitzeW4gbWF0Y2gJc2NoZW1lRXJyb3IJLFwqWy1hLXohJCUmKi86PD0+P15ffjAtOSsuQF0qXCpbXi1hLXohJCUmKi86PD0+P15ffjAtOSsuQCBcdFxbXF0oKSI7XVwrW14gXHRcW1xdKCkiO10qLAogCi1zeW4gbWF0Y2gJc2NoZW1lQ29uc3RhbnQJb25lbGluZSAgICAsPFstYS16ISQlJiovOjw9Pj9eX34wLTkrLkBdKj5bIFx0XFtcXSgpIjtdLG1lPWUtMQotc3luIG1hdGNoCXNjaGVtZUNvbnN0YW50CW9uZWxpbmUgICAgLDxbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AXSo+JCwKLXN5biBtYXRjaAlzY2hlbWVFcnJvcglvbmVsaW5lICAgICw8Wy1hLXohJCUmKi86PD0+P15ffjAtOSsuQF0qPlteLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIFx0XFtcXSgpIjtdXCtbXiBcdFxbXF0oKSI7XSosCitzeW4gbWF0Y2gJc2NoZW1lQ29uc3RhbnQJLDxbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AXSo+WyBcdFxbXF0oKSI7XSxtZT1lLTEKK3N5biBtYXRjaAlzY2hlbWVDb25zdGFudAksPFstYS16ISQlJiovOjw9Pj9eX34wLTkrLkBdKj4kLAorc3luIG1hdGNoCXNjaGVtZUVycm9yCSw8Wy1hLXohJCUmKi86PD0+P15ffjAtOSsuQF0qPlteLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIFx0XFtcXSgpIjtdXCtbXiBcdFxbXF0oKSI7XSosCiAKICIgTm9uLXF1b3RlZCBsaXN0cywgYW5kIHN0cmluZ3M6CiAKQEAgLTE1MywyMyArMTY0LDI3IEBACiAiIFdyaXRpbmcgb3V0IHRoZSBjb21wbGV0ZSBkZXNjcmlwdGlvbiBvZiBTY2hlbWUgbnVtZXJhbHMgd2l0aG91dAogIiB1c2luZyB2YXJpYWJsZXMgaXMgYSBkYXkncyB3b3JrIGZvciBhIHRyYWluZWQgc2VjcmV0YXJ5Li4uCiAKLXN5biBtYXRjaAlzY2hlbWVPdGhlcglvbmVsaW5lICAgICFbKy1dWyBcdFxbXF0oKSI7XSFtZT1lLTEKLXN5biBtYXRjaAlzY2hlbWVPdGhlcglvbmVsaW5lICAgICFbKy1dJCEKK3N5biBtYXRjaAlzY2hlbWVPdGhlcgkhWystXVsgXHRcW1xdKCkiO10hbWU9ZS0xCitzeW4gbWF0Y2gJc2NoZW1lT3RoZXIJIVsrLV0kIQogIgogIiBUaGlzIGlzIGEgdXNlZnVsIGxheCBhcHByb3hpbWF0aW9uOgotc3luIG1hdGNoCXNjaGVtZU51bWJlcglvbmVsaW5lICAgICJbLSMrMC05Ll1bLSMrLzAtOWEtZkBpLmJveGVzZmRsXSoiCi1zeW4gbWF0Y2gJc2NoZW1lRXJyb3IJb25lbGluZSAgICAhWy0jKzAtOS5dWy0jKy8wLTlhLWZAaS5ib3hlc2ZkbF0qW14tIysvMC05YS1mQGkuYm94ZXNmZGwgXHRcW1xdKCkiO11bXiBcdFxbXF0oKSI7XSohCitzeW4gbWF0Y2gJc2NoZW1lTnVtYmVyCSJbLSMrLl1cPVswLTldWy0jKy8wLTlhLWZAaS5ib3hlc2ZkbF0qIgorc3luIG1hdGNoCXNjaGVtZUVycm9yCSFbLSMrMC05Ll1bLSMrLzAtOWEtZkBpLmJveGVzZmRsXSpbXi0jKy8wLTlhLWZAaS5ib3hlc2ZkbCBcdFxbXF0oKSI7XVteIFx0XFtcXSgpIjtdKiEKIAotc3luIG1hdGNoCXNjaGVtZUJvb2xlYW4Jb25lbGluZSAgICAiI1t0Zl0iCi1zeW4gbWF0Y2gJc2NoZW1lRXJyb3IJb25lbGluZSAgICAhI1t0Zl1bXiBcdFxbXF0oKSI7XVwrIQorc3luIG1hdGNoCXNjaGVtZUJvb2xlYW4JIiNbdGZdIgorc3luIG1hdGNoCXNjaGVtZUVycm9yCSEjW3RmXVteIFx0XFtcXSgpIjtdXCshCiAKLXN5biBtYXRjaAlzY2hlbWVDaGFyCW9uZWxpbmUgICAgIiNcXCIKLXN5biBtYXRjaAlzY2hlbWVDaGFyCW9uZWxpbmUgICAgIiNcXC4iCi1zeW4gbWF0Y2ggICAgICAgc2NoZW1lRXJyb3IJb25lbGluZSAgICAhI1xcLlteIFx0XFtcXSgpIjtdXCshCi1zeW4gbWF0Y2gJc2NoZW1lQ2hhcglvbmVsaW5lICAgICIjXFxzcGFjZSIKLXN5biBtYXRjaAlzY2hlbWVFcnJvcglvbmVsaW5lICAgICEjXFxzcGFjZVteIFx0XFtcXSgpIjtdXCshCi1zeW4gbWF0Y2gJc2NoZW1lQ2hhcglvbmVsaW5lICAgICIjXFxuZXdsaW5lIgotc3luIG1hdGNoCXNjaGVtZUVycm9yCW9uZWxpbmUgICAgISNcXG5ld2xpbmVbXiBcdFxbXF0oKSI7XVwrIQorc3luIG1hdGNoCXNjaGVtZUNoYXJhY3RlcgkiI1xcIgorc3luIG1hdGNoCXNjaGVtZUNoYXJhY3RlcgkiI1xcLiIKK3N5biBtYXRjaCAgICAgICBzY2hlbWVFcnJvcgkhI1xcLlteIFx0XFtcXSgpIjtdXCshCitzeW4gbWF0Y2gJc2NoZW1lQ2hhcmFjdGVyCSIjXFxzcGFjZSIKK3N5biBtYXRjaAlzY2hlbWVFcnJvcgkhI1xcc3BhY2VbXiBcdFxbXF0oKSI7XVwrIQorc3luIG1hdGNoCXNjaGVtZUNoYXJhY3RlcgkiI1xcbmV3bGluZSIKK3N5biBtYXRjaAlzY2hlbWVFcnJvcgkhI1xcbmV3bGluZVteIFx0XFtcXSgpIjtdXCshCisKKyIgUjZSUworc3luIG1hdGNoIHNjaGVtZUNoYXJhY3RlciAiI1xceFswLTlhLWZBLUZdXCsiCisKIAogaWYgZXhpc3RzKCJiOmlzX216c2NoZW1lIikgfHwgZXhpc3RzKCJpc19tenNjaGVtZSIpCiAgICAgIiBNelNjaGVtZSBleHRlbnNpb25zCkBAIC0xNzcsMTEgKzE5MiwxMSBAQAogICAgIHN5biByZWdpb24Jc2NoZW1lQ29tbWVudCBzdGFydD0iI3wiIGVuZD0ifCMiCiAKICAgICAiICMleHh4IGFyZSB0aGUgc3BlY2lhbCBNelNjaGVtZSBpZGVudGlmaWVycwotICAgIHN5biBtYXRjaCBzY2hlbWVPdGhlciBvbmVsaW5lICAgICIjJVstYS16ISQlJiovOjw9Pj9eX34wLTkrLkAjJV1cKyIKKyAgICBzeW4gbWF0Y2ggc2NoZW1lT3RoZXIgIiMlWy1hLXohJCUmKi86PD0+P15ffjAtOSsuQCMlXVwrIgogICAgICIgYW55dGhpbmcgbGltaXRlZCBieSB8J3MgaXMgaWRlbnRpZmllcgotICAgIHN5biBtYXRjaCBzY2hlbWVPdGhlciBvbmVsaW5lICAgICJ8W158XVwrfCIKKyAgICBzeW4gbWF0Y2ggc2NoZW1lT3RoZXIgInxbXnxdXCt8IgogCi0gICAgc3luIG1hdGNoCXNjaGVtZUNoYXIJb25lbGluZSAgICAiI1xcXCUocmV0dXJuXHx0YWJcKSIKKyAgICBzeW4gbWF0Y2gJc2NoZW1lQ2hhcmFjdGVyCSIjXFxcJShyZXR1cm5cfHRhYlwpIgogCiAgICAgIiBNb2R1bGVzIHJlcXVpcmUgc3RtdAogICAgIHN5biBrZXl3b3JkIHNjaGVtZUV4dFN5bnRheCBtb2R1bGUgcmVxdWlyZSBkeW5hbWljLXJlcXVpcmUgbGliIHByZWZpeCBhbGwtZXhjZXB0IHByZWZpeC1hbGwtZXhjZXB0IHJlbmFtZQpAQCAtMjM0LDggKzI0OSw4IEBACiAgICAgIiBtdWx0aWxpbmUgY29tbWVudAogICAgIHN5bnRheCByZWdpb24gc2NoZW1lTXVsdGlsaW5lQ29tbWVudCBzdGFydD0vI3wvIGVuZD0vfCMvIGNvbnRhaW5zPXNjaGVtZU11bHRpbGluZUNvbW1lbnQKIAotICAgIHN5biBtYXRjaCBzY2hlbWVPdGhlciBvbmVsaW5lICAgICIjI1stYS16ISQlJiovOjw9Pj9eX34wLTkrLkAjJV1cKyIKLSAgICBzeW4gbWF0Y2ggc2NoZW1lRXh0U3ludGF4IG9uZWxpbmUgICAgIiM6Wy1hLXohJCUmKi86PD0+P15ffjAtOSsuQCMlXVwrIgorICAgIHN5biBtYXRjaCBzY2hlbWVPdGhlciAiIyNbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIyVdXCsiCisgICAgc3luIG1hdGNoIHNjaGVtZUV4dFN5bnRheCAiIzpbLWEteiEkJSYqLzo8PT4/Xl9+MC05Ky5AIyVdXCsiCiAKICAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggdW5pdCB1c2VzIGRlY2xhcmUgaGlkZSBmb3JlaWduLWRlY2xhcmUgZm9yZWlnbi1wYXJzZSBmb3JlaWduLXBhcnNlL3NwZWMKICAgICBzeW4ga2V5d29yZCBzY2hlbWVFeHRTeW50YXggZm9yZWlnbi1sYW1iZGEgZm9yZWlnbi1sYW1iZGEqIGRlZmluZS1leHRlcm5hbCBkZWZpbmUtbWFjcm8gbG9hZC1saWJyYXJ5CkBAIC0yNjYsNyArMjgxLDcgQEAKICAgICBlbmRpZgogCiAgICAgIiBzdWdnZXN0ZWQgYnkgQWxleCBRdWVpcm96Ci0gICAgc3luIG1hdGNoIHNjaGVtZUV4dFN5bnRheCBvbmVsaW5lICAgICIjIVstYS16ISQlJiovOjw9Pj9eX34wLTkrLkAjJV1cKyIKKyAgICBzeW4gbWF0Y2ggc2NoZW1lRXh0U3ludGF4ICIjIVstYS16ISQlJiovOjw9Pj9eX34wLTkrLkAjJV1cKyIKICAgICBzeW4gcmVnaW9uIHNjaGVtZVN0cmluZyBzdGFydD0rIzwjXHMqXHooLipcKSsgZW5kPSteXHoxJCsgCiBlbmRpZgogCkBAIC0yOTAsNyArMzA1LDcgQEAKICAgSGlMaW5rIHNjaGVtZUZ1bmMJCUZ1bmN0aW9uCiAKICAgSGlMaW5rIHNjaGVtZVN0cmluZwkJU3RyaW5nCi0gIEhpTGluayBzY2hlbWVDaGFyCQlDaGFyYWN0ZXIKKyAgSGlMaW5rIHNjaGVtZUNoYXJhY3RlcglDaGFyYWN0ZXIKICAgSGlMaW5rIHNjaGVtZU51bWJlcgkJTnVtYmVyCiAgIEhpTGluayBzY2hlbWVCb29sZWFuCQlCb29sZWFuCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NkYy52aW0gYi9ydW50aW1lL3N5bnRheC9zZGMudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYTliZWMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9zZGMudmltCkBAIC0wLDAgKzEsNDEgQEAKKyIgVmltIHN5bnRheCBmaWxlCisiIExhbmd1YWdlOiAgICAgU0RDIC0gU3lub3BzeXMgRGVzaWduIENvbnN0cmFpbnRzCisiIE1haW50YWluZXI6ICAgTWF1cml6aW8gVHJhbmNoZXJvIC0gbWF1cml6aW8udHJhbmNoZXJvQGdtYWlsLmNvbQorIiBMYXN0IENoYW5nZTogIFRodSBNYXIgIDI1IDE3OjM1OjE2IENFVCAyMDA5CisiIENyZWRpdHM6ICAgICAgYmFzZWQgb24gVENMIFZpbSBzeW50YXggZmlsZQorIiBWZXJzaW9uOgkwLjMKKworIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgIGZpbmlzaAorZW5kaWYKKworIiBSZWFkIHRoZSBUQ0wgc3ludGF4IHRvIHN0YXJ0IHdpdGgKK3J1bnRpbWUhIHN5bnRheC90Y2wudmltCisKKyIgU0RDLXNwZWNpZmljIGtleXdvcmRzCitzeW4ga2V5d29yZCBzZGNDb2xsZWN0aW9ucwlmb3JlYWNoX2luX2NvbGxlY3Rpb24KK3N5biBrZXl3b3JkIHNkY09iamVjdHNRdWVyeQlnZXRfY2xvY2tzIGdldF9wb3J0cworc3luIGtleXdvcmQgc2RjT2JqZWN0c0luZm8JZ2V0X3BvaW50X2luZm8gZ2V0X25vZGVfaW5mbyBnZXRfcGF0aF9pbmZvCitzeW4ga2V5d29yZCBzZGNPYmplY3RzSW5mbwlnZXRfdGltaW5nX3BhdGhzIHNldF9hdHRyaWJ1dGUKK3N5biBrZXl3b3JkIHNkY0NvbnN0cmFpbnRzCXNldF9mYWxzZV9wYXRoCitzeW4ga2V5d29yZCBzZGNOb25JZGVhbGl0aWVzCXNldF9taW5fZGVsYXkgc2V0X21heF9kZWxheQorc3luIGtleXdvcmQgc2RjTm9uSWRlYWxpdGllcwlzZXRfaW5wdXRfZGVsYXkgc2V0X291dHB1dF9kZWxheQorc3luIGtleXdvcmQgc2RjTm9uSWRlYWxpdGllcwlzZXRfbG9hZCBzZXRfbWluX2NhcGFjaXRhbmNlIHNldF9tYXhfY2FwYWNpdGFuY2UKK3N5biBrZXl3b3JkIHNkY0NyZWF0ZU9wZXJhdGlvbnMJY3JlYXRlX2Nsb2NrIGNyZWF0ZV90aW1pbmdfbmV0bGlzdCB1cGRhdGVfdGltaW5nX25ldGxpc3QKKworIiBjb21tYW5kIGZsYWdzIGhpZ2hsaWdodGluZworc3luIG1hdGNoIHNkY0ZsYWdzCQkiW1s6c3BhY2U6XV0tW1s6YWxwaGE6XV0qXD4iCisKKyIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KK2hpIGRlZiBsaW5rIHNkY0NvbGxlY3Rpb25zICAgICAgUmVwZWF0CitoaSBkZWYgbGluayBzZGNPYmplY3RzSW5mbyAgICAgIE9wZXJhdG9yCitoaSBkZWYgbGluayBzZGNDcmVhdGVPcGVyYXRpb25zCU9wZXJhdG9yCitoaSBkZWYgbGluayBzZGNPYmplY3RzUXVlcnkJT3BlcmF0b3IKK2hpIGRlZiBsaW5rIHNkY0NvbnN0cmFpbnRzCU9wZXJhdG9yCitoaSBkZWYgbGluayBzZGNOb25JZGVhbGl0aWVzCU9wZXJhdG9yCitoaSBkZWYgbGluayBzZGNGbGFncwkJU3BlY2lhbAorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJzZGMiCisKKyIgdmltOiB0cz04CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zZ21sLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NnbWwudmltCmluZGV4IGJjYzQ2YzMuLmMwYzM2NDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NnbWwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3NnbWwudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KICIgTGFzdCBDaGFuZ2U6CVR1ZSwgMjcgQXByIDIwMDQgMTU6MDU6MjEgQ0VTVAogIiBGaWxlbmFtZXM6CSouc2dtbCwqLnNnbQotIiAkSWQkCisiICRJZDogc2dtbC52aW0sdiAxLjEgMjAwNC8wNi8xMyAxNzo1Mjo1NyB2aW1ib3NzIEV4cCAkCiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zZ21sbG54LnZpbSBiL3J1bnRpbWUvc3ludGF4L3NnbWxsbngudmltCmluZGV4IDQxOWU5MDQuLjk5ZTZlYTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NnbWxsbngudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3NnbWxsbngudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVNHTUwtbGludXhkb2MgKHN1cHBvcnRlZCBieSBvbGQgc2dtbHRvb2xzLTEueCkKICIJCShmb3IgbW9yZSBpbmZvcm1hdGlvbiwgdmlzaXQgd3d3LnNnbWx0b29scy5vcmcpCi0iIE1haW50YWluZXI6CU5hbSBTdW5nSHl1biA8bmFtc2hAa2xkcC5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDAxIEFwciAyNgorIiBNYWludGFpbmVyOglTdW5nSHl1biBOYW0gPGdvd2VvbEBnbWFpbC5jb20+CisiIExhc3QgQ2hhbmdlOgkyMDA4IFNlcCAxNwogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc2gudmltIGIvcnVudGltZS9zeW50YXgvc2gudmltCmluZGV4IDVmYThkOTMuLjZlZjRmYmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9zaC52aW0KQEAgLTIsOCArMiw4IEBACiAiIExhbmd1YWdlOgkJc2hlbGwgKHNoKSBLb3JuIHNoZWxsIChrc2gpIGJhc2ggKHNoKQogIiBNYWludGFpbmVyOgkJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+CiAiIFByZXZpb3VzIE1haW50YWluZXI6CUxlbm5hcnQgU2NodWx0eiA8TGVubmFydC5TY2h1bHR6QGVjbXdmLmludD4KLSIgTGFzdCBDaGFuZ2U6CQlKdWwgMTEsIDIwMDgKLSIgVmVyc2lvbjoJCTEwMgorIiBMYXN0IENoYW5nZToJCU5vdiAxNywgMjAwOQorIiBWZXJzaW9uOgkJMTEwCiAiIFVSTDoJCWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI3ZpbWxpbmtzX3N5bnRheAogIiBGb3Igb3B0aW9ucyBhbmQgc2V0dGluZ3MsIHBsZWFzZSB1c2U6ICAgICAgOmhlbHAgZnQtc2gtc3ludGF4CiAiIFRoaXMgZmlsZSBpbmNsdWRlcyBtYW55IGlkZWFzIGZyb20gyXJpYyBCcnVuZXQgKGVyaWMuYnJ1bmV0QGVucy5mcikKQEAgLTY3LDEzICs2NywxMyBAQAogCiAiIENsdXN0ZXJzOiBjb250YWlucz1ALi4uIGNsdXN0ZXJzIHt7ezEKICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zeW4gY2x1c3RlciBzaEVycm9yTGlzdAljb250YWlucz1zaERvRXJyb3Isc2hJZkVycm9yLHNoSW5FcnJvcixzaENhc2VFcnJvcixzaEVzYWNFcnJvcixzaEN1cmx5RXJyb3Isc2hQYXJlbkVycm9yLHNoVGVzdEVycm9yCitzeW4gY2x1c3RlciBzaEVycm9yTGlzdAljb250YWlucz1zaERvRXJyb3Isc2hJZkVycm9yLHNoSW5FcnJvcixzaENhc2VFcnJvcixzaEVzYWNFcnJvcixzaEN1cmx5RXJyb3Isc2hQYXJlbkVycm9yLHNoVGVzdEVycm9yLHNoT0sKIGlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQogIHN5biBjbHVzdGVyIEVycm9yTGlzdCBhZGQ9c2hEVGVzdEVycm9yCiBlbmRpZgotc3luIGNsdXN0ZXIgc2hBcml0aFBhcmVuTGlzdAljb250YWlucz1zaEFyaXRobWV0aWMsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRXNjYXBlLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hQb3NuUGFybSxzaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hBbGlhcyxzaFRlc3Qsc2hDdHJsU2VxLHNoU3BlY2lhbCxzaFBhcmVuCitzeW4gY2x1c3RlciBzaEFyaXRoUGFyZW5MaXN0CWNvbnRhaW5zPXNoQXJpdGhtZXRpYyxzaENhc2VFc2FjLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEVjaG8sc2hFc2NhcGUsc2hOdW1iZXIsc2hPcGVyYXRvcixzaFBvc25QYXJtLHNoRXhTaW5nbGVRdW90ZSxzaFJlZGlyLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoQWxpYXMsc2hUZXN0LHNoQ3RybFNlcSxzaFNwZWNpYWwsc2hQYXJlbixiYXNoU3BlY2lhbFZhcmlhYmxlcyxiYXNoU3RhdGVtZW50CiBzeW4gY2x1c3RlciBzaEFyaXRoTGlzdAljb250YWlucz1Ac2hBcml0aFBhcmVuTGlzdCxzaFBhcmVuRXJyb3IKLXN5biBjbHVzdGVyIHNoQ2FzZUVzYWNMaXN0CWNvbnRhaW5zPXNoQ2FzZVN0YXJ0LHNoQ2FzZSxzaENhc2VCYXIsc2hDYXNlSW4sc2hDb21tZW50LHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaENhc2VDb21tYW5kU3ViLHNoQ2FzZUV4U2luZ2xlUXVvdGUsc2hDYXNlU2luZ2xlUXVvdGUsc2hDYXNlRG91YmxlUXVvdGUsc2hDdHJsU2VxLEBzaEVycm9yTGlzdCxzaFN0cmluZ1NwZWNpYWwKK3N5biBjbHVzdGVyIHNoQ2FzZUVzYWNMaXN0CWNvbnRhaW5zPXNoQ2FzZVN0YXJ0LHNoQ2FzZSxzaENhc2VCYXIsc2hDYXNlSW4sc2hDb21tZW50LHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaENhc2VDb21tYW5kU3ViLHNoQ2FzZUV4U2luZ2xlUXVvdGUsc2hDYXNlU2luZ2xlUXVvdGUsc2hDYXNlRG91YmxlUXVvdGUsc2hDdHJsU2VxLEBzaEVycm9yTGlzdCxzaFN0cmluZ1NwZWNpYWwsc2hDYXNlUmFuZ2UKIHN5biBjbHVzdGVyIHNoQ2FzZUxpc3QJY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3Qsc2hDYXNlRXNhYyxzaENvbG9uLHNoQ29tbWFuZFN1YixzaENvbW1hbmRTdWIsc2hDb21tZW50LHNoRG8sc2hFY2hvLHNoRXhwcixzaEZvcixzaEhlcmVEb2Msc2hJZixzaFJlZGlyLHNoU2V0TGlzdCxzaFNvdXJjZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoQ3RybFNlcQogc3luIGNsdXN0ZXIgc2hDb2xvbkxpc3QJY29udGFpbnM9QHNoQ2FzZUxpc3QKIHN5biBjbHVzdGVyIHNoQ29tbWFuZFN1Ykxpc3QJY29udGFpbnM9c2hBcml0aG1ldGljLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEVzY2FwZSxzaE51bWJlcixzaE9wZXJhdG9yLHNoUG9zblBhcm0sc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoU3ViU2gsc2hBbGlhcyxzaFRlc3Qsc2hDdHJsU2VxLHNoU3BlY2lhbApAQCAtODQsNyArODQsNyBAQAogc3luIGNsdXN0ZXIgc2hFY2hvTGlzdAljb250YWlucz1zaEFyaXRobWV0aWMsc2hDb21tYW5kU3ViLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEV4cHIsc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaEN0cmxTZXEsc2hFY2hvUXVvdGUKIHN5biBjbHVzdGVyIHNoRXhwckxpc3QxCWNvbnRhaW5zPXNoQ2hhckNsYXNzLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaEV4cHIsc2hEYmxCcmFjZSxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hDdHJsU2VxCiBzeW4gY2x1c3RlciBzaEV4cHJMaXN0Mgljb250YWlucz1Ac2hFeHByTGlzdDEsQHNoQ2FzZUxpc3Qsc2hUZXN0Ci1zeW4gY2x1c3RlciBzaEZ1bmN0aW9uTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWFuZFN1YixzaENvbW1lbnQsc2hEbyxzaEVjaG8sc2hFeHByLHNoRm9yLHNoSGVyZURvYyxzaElmLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hPcGVyYXRvcixzaEN0cmxTZXEKK3N5biBjbHVzdGVyIHNoRnVuY3Rpb25MaXN0CWNvbnRhaW5zPUBzaENvbW1hbmRTdWJMaXN0LHNoQ2FzZUVzYWMsc2hDb2xvbixzaENvbW1hbmRTdWIsc2hDb21tYW5kU3ViLHNoQ29tbWVudCxzaERvLHNoRWNobyxzaEV4cHIsc2hGb3Isc2hIZXJlRG9jLHNoSWYsc2hPcHRpb24sc2hSZWRpcixzaFNldExpc3Qsc2hTb3VyY2Usc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaE9wZXJhdG9yLHNoQ3RybFNlcQogaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpIHx8IGV4aXN0cygiYjppc19iYXNoIikKICBzeW4gY2x1c3RlciBzaEZ1bmN0aW9uTGlzdAlhZGQ9c2hSZXBlYXQKICBzeW4gY2x1c3RlciBzaEZ1bmN0aW9uTGlzdAlhZGQ9c2hEYmxCcmFjZSxzaERibFBhcmVuCkBAIC05NCwxOSArOTQsMTggQEAKIHN5biBjbHVzdGVyIHNoSGVyZUxpc3REUQljb250YWlucz1zaEJlZ2luSGVyZSxAc2hEYmxRdW90ZUxpc3Qsc2hIZXJlUGF5bG9hZAogc3luIGNsdXN0ZXIgc2hJZExpc3QJY29udGFpbnM9c2hDb21tYW5kU3ViLHNoV3JhcExpbmVPcGVyYXRvcixzaFNldE9wdGlvbixzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hSZWRpcixzaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoRXhwcixzaEN0cmxTZXEsc2hTdHJpbmdTcGVjaWFsCiBzeW4gY2x1c3RlciBzaExvb3BMaXN0CWNvbnRhaW5zPUBzaENhc2VMaXN0LHNoVGVzdE9wcixzaEV4cHIsc2hEYmxCcmFjZSxzaENvbmRpdGlvbmFsLHNoQ2FzZUVzYWMsc2hUZXN0LEBzaEVycm9yTGlzdCxzaFNldAotc3luIGNsdXN0ZXIgc2hTdWJTaExpc3QJY29udGFpbnM9QHNoQ2FzZUxpc3Qsc2hPcGVyYXRvcgorc3luIGNsdXN0ZXIgc2hTdWJTaExpc3QJY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3Qsc2hDYXNlRXNhYyxzaENvbG9uLHNoQ29tbWFuZFN1YixzaENvbW1hbmRTdWIsc2hDb21tZW50LHNoRG8sc2hFY2hvLHNoRXhwcixzaEZvcixzaElmLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hDdHJsU2VxLHNoT3BlcmF0b3IKIHN5biBjbHVzdGVyIHNoVGVzdExpc3QJY29udGFpbnM9c2hDaGFyQ2xhc3Msc2hDb21tZW50LHNoQ29tbWFuZFN1YixzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hEb3VibGVRdW90ZSxzaEV4cHIsc2hFeHByLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hUZXN0T3ByLHNoVGVzdCxzaEN0cmxTZXEKIAotCiAiIEVjaG86IHt7ezEKICIgPT09PQogIiBUaGlzIG9uZSBpcyBuZWVkZWQgSU5TSURFIGEgQ29tbWFuZFN1Yiwgc28gdGhhdCBgZWNobyBibGFgIGJlIGNvcnJlY3QKLXN5biByZWdpb24gc2hFY2hvIG1hdGNoZ3JvdXA9c2hTdGF0ZW1lbnQgc3RhcnQ9Ilw8ZWNob1w+IiAgc2tpcD0iXFwkIiBtYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSIkIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbPD47JnwoKV0ibWU9ZS0xIGVuZD0iXGRbPD5dIm1lPWUtMiBlbmQ9IiMibWU9ZS0xIGNvbnRhaW5zPUBzaEVjaG9MaXN0IHNraXB3aGl0ZSBuZXh0Z3JvdXA9c2hRdWlja0NvbW1lbnQKLXN5biByZWdpb24gc2hFY2hvIG1hdGNoZ3JvdXA9c2hTdGF0ZW1lbnQgc3RhcnQ9Ilw8cHJpbnRcPiIgc2tpcD0iXFwkIiBtYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSIkIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbPD47JnwoKV0ibWU9ZS0xIGVuZD0iXGRbPD5dIm1lPWUtMiBlbmQ9IiMibWU9ZS0xIGNvbnRhaW5zPUBzaEVjaG9MaXN0IHNraXB3aGl0ZSBuZXh0Z3JvdXA9c2hRdWlja0NvbW1lbnQKLXN5biBtYXRjaCAgc2hFY2hvUXVvdGUgY29udGFpbmVkCSdcJShcXFxcXCkqXFxbImAnXScKK3N5biByZWdpb24gc2hFY2hvIG1hdGNoZ3JvdXA9c2hTdGF0ZW1lbnQgc3RhcnQ9Ilw8ZWNob1w+IiAgc2tpcD0iXFwkIiBtYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSIkIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbPD47JnwoKV0ibWU9ZS0xIGVuZD0iXGRbPD5dIm1lPWUtMiBlbmQ9IlxzIyJtZT1lLTIgY29udGFpbnM9QHNoRWNob0xpc3Qgc2tpcHdoaXRlIG5leHRncm91cD1zaFF1aWNrQ29tbWVudAorc3luIHJlZ2lvbiBzaEVjaG8gbWF0Y2hncm91cD1zaFN0YXRlbWVudCBzdGFydD0iXDxwcmludFw+IiBza2lwPSJcXCQiIG1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9IiQiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ils8PjsmfCgpXSJtZT1lLTEgZW5kPSJcZFs8Pl0ibWU9ZS0yIGVuZD0iXHMjIm1lPWUtMiBjb250YWlucz1Ac2hFY2hvTGlzdCBza2lwd2hpdGUgbmV4dGdyb3VwPXNoUXVpY2tDb21tZW50CitzeW4gbWF0Y2ggIHNoRWNob1F1b3RlIGNvbnRhaW5lZAknXCUoXFxcXFwpKlxcWyJgJygpXScKIAogIiBUaGlzIG11c3QgYmUgYWZ0ZXIgdGhlIHN0cmluZ3MsIHNvIHRoYXQgLi4uIFwiIHdpbGwgYmUgY29ycmVjdAotc3luIHJlZ2lvbiBzaEVtYmVkZGVkRWNobyBjb250YWluZWQgbWF0Y2hncm91cD1zaFN0YXRlbWVudCBzdGFydD0iXDxwcmludFw+IiBza2lwPSJcXCQiIG1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9IiQiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ils8PjsmfGApXSJtZT1lLTEgZW5kPSJcZFs8Pl0ibWU9ZS0yIGVuZD0iIyJtZT1lLTEgY29udGFpbnM9c2hOdW1iZXIsc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoU3BlY2lhbFZhcixzaE9wZXJhdG9yLHNoRG91YmxlUXVvdGUsc2hDaGFyQ2xhc3Msc2hDdHJsU2VxCitzeW4gcmVnaW9uIHNoRW1iZWRkZWRFY2hvIGNvbnRhaW5lZCBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHByaW50XD4iIHNraXA9IlxcJCIgbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iWzw+OyZ8YCldIm1lPWUtMSBlbmQ9IlxkWzw+XSJtZT1lLTIgZW5kPSJccyMibWU9ZS0yIGNvbnRhaW5zPXNoTnVtYmVyLHNoRXhTaW5nbGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaFNwZWNpYWxWYXIsc2hPcGVyYXRvcixzaERvdWJsZVF1b3RlLHNoQ2hhckNsYXNzLHNoQ3RybFNlcQogCiAiIEFsaWFzOiB7e3sxCiAiID09PT09CkBAIC0xMjUsNiArMTI0LDcgQEAKIHN5biBtYXRjaCAgIHNoRXNhY0Vycm9yICJcPGVzYWNcPiIKIHN5biBtYXRjaCAgIHNoQ3VybHlFcnJvciAifSIKIHN5biBtYXRjaCAgIHNoUGFyZW5FcnJvciAiKSIKK3N5biBtYXRjaCAgIHNoT0sJJ1wuXChkb25lXHxmaVx8aW5cfGVzYWNcKScKIGlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQogIHN5biBtYXRjaCAgICAgc2hEVGVzdEVycm9yICJdXSIKIGVuZGlmCkBAIC0xNTIsMTQgKzE1MiwxMyBAQAogCiAiIFN1YnNoZWxsczoge3t7MQogIiA9PT09PT09PT09Ci1zeW4gcmVnaW9uIHNoRXhwciAgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaEV4cHJSZWdpb24gIHN0YXJ0PSJ7IiBlbmQ9In0iCWNvbnRhaW5zPUBzaEV4cHJMaXN0Mgotc3luIHJlZ2lvbiBzaFN1YlNoIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hTdWJTaFJlZ2lvbiBzdGFydD0iKCIgZW5kPSIpIgljb250YWlucz1Ac2hTdWJTaExpc3QKK3N5biByZWdpb24gc2hFeHByICB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoRXhwclJlZ2lvbiAgc3RhcnQ9InsiIGVuZD0ifSIJY29udGFpbnM9QHNoRXhwckxpc3QyIG5leHRncm91cD1zaE1vcmVTcGVjaWFsCitzeW4gcmVnaW9uIHNoU3ViU2ggdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaFN1YlNoUmVnaW9uIHN0YXJ0PSIoIiBlbmQ9IikiCWNvbnRhaW5zPUBzaFN1YlNoTGlzdCBuZXh0Z3JvdXA9c2hNb3JlU3BlY2lhbAogCiAiIFRlc3RzOiB7e3sxCiAiPT09PT09PQotInN5biByZWdpb24gIHNoRXhwciB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoUmFuZ2Ugc3RhcnQ9IlxbIiBza2lwPStcXFxcXHxcXCQrIGVuZD0iXF0iIGNvbnRhaW5zPUBzaFRlc3RMaXN0Ci1zeW4gcmVnaW9uIHNoRXhwcgltYXRjaGdyb3VwPXNoUmFuZ2Ugc3RhcnQ9IlxbIiBza2lwPStcXFxcXHxcXCQrIGVuZD0iXF0iIGNvbnRhaW5zPUBzaFRlc3RMaXN0Ci1zeW4gcmVnaW9uIHNoVGVzdAl0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHRlc3RcPiIgc2tpcD0rXFxcXFx8XFwkKyBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbOyZ8XSJtZT1lLTEgZW5kPSIkIiBjb250YWlucz1Ac2hFeHByTGlzdDEKK3N5biByZWdpb24gc2hFeHByCW1hdGNoZ3JvdXA9c2hSYW5nZSBzdGFydD0iXFsiIHNraXA9K1xcXFxcfFxcJCsgZW5kPSJcXSIgY29udGFpbnM9QHNoVGVzdExpc3Qsc2hTcGVjaWFsCitzeW4gcmVnaW9uIHNoVGVzdAl0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHRlc3RccyIgc2tpcD0rXFxcXFx8XFwkKyBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbOyZ8XSJtZT1lLTEgZW5kPSIkIiBjb250YWlucz1Ac2hFeHByTGlzdDEKIHN5biBtYXRjaCAgc2hUZXN0T3ByCWNvbnRhaW5lZAkiPD1cfD49XHwhPVx8PT1cfC0uXD5cfC1cKG50XHxvdFx8ZWZcfGVxXHxuZVx8bHRcfGxlXHxndFx8Z2VcKVw+XHxbITw+XSIKIHN5biBtYXRjaCAgc2hUZXN0T3ByCWNvbnRhaW5lZAknPScgc2tpcHdoaXRlIG5leHRncm91cD1zaFRlc3REb3VibGVRdW90ZSxzaFRlc3RTaW5nbGVRdW90ZSxzaFRlc3RQYXR0ZXJuCiBzeW4gbWF0Y2ggIHNoVGVzdFBhdHRlcm4JY29udGFpbmVkCSdcd1wrJwpAQCAtMjAzLDEwICsyMDIsMTEgQEAKICIgPT09PQogc3luIG1hdGNoICAgc2hDYXNlQmFyCWNvbnRhaW5lZCBza2lwd2hpdGUgIlwoXlx8W15cXF1cKVwoXFxcXFwpKlx6c3wiCQluZXh0Z3JvdXA9c2hDYXNlLHNoQ2FzZVN0YXJ0LHNoQ2FzZUJhcixzaENvbW1lbnQsc2hDYXNlRXhTaW5nbGVRdW90ZSxzaENhc2VTaW5nbGVRdW90ZSxzaENhc2VEb3VibGVRdW90ZQogc3luIG1hdGNoICAgc2hDYXNlU3RhcnQJY29udGFpbmVkIHNraXB3aGl0ZSBza2lwbmwgIigiCQkJbmV4dGdyb3VwPXNoQ2FzZSxzaENhc2VCYXIKLXN5biByZWdpb24gIHNoQ2FzZQljb250YWluZWQgc2tpcHdoaXRlIHNraXBubCBtYXRjaGdyb3VwPXNoU25nbENhc2Ugc3RhcnQ9IlwlKFxcLlx8W14jJCgpJyIgXHRdXClcey19XHpzKSIgIGVuZD0iOzsiIGVuZD0iZXNhYyJtZT1zLTEgY29udGFpbnM9QHNoQ2FzZUxpc3QgbmV4dGdyb3VwPXNoQ2FzZVN0YXJ0LHNoQ2FzZSxzaENvbW1lbnQKIGlmIChnOnNoX2ZvbGRfZW5hYmxlZCAlIChzOnNoX2ZvbGRfaWZkb2ZvciAqIDIpKS9zOnNoX2ZvbGRfaWZkb2ZvcgorIHN5biByZWdpb24gIHNoQ2FzZQlmb2xkIGNvbnRhaW5lZCBza2lwd2hpdGUgc2tpcG5sIG1hdGNoZ3JvdXA9c2hTbmdsQ2FzZSBzdGFydD0iXCUoXFwuXHxbXiMkKCknIiBcdF1cKVx7LX1cenMpIiAgZW5kPSI7OyIgZW5kPSJlc2FjIm1lPXMtMSBjb250YWlucz1Ac2hDYXNlTGlzdCBuZXh0Z3JvdXA9c2hDYXNlU3RhcnQsc2hDYXNlLHNoQ29tbWVudAogIHN5biByZWdpb24gIHNoQ2FzZUVzYWMJZm9sZCBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8Y2FzZVw+IiBlbmQ9Ilw8ZXNhY1w+Igljb250YWlucz1Ac2hDYXNlRXNhY0xpc3QKIGVsc2UKKyBzeW4gcmVnaW9uICBzaENhc2UJY29udGFpbmVkIHNraXB3aGl0ZSBza2lwbmwgbWF0Y2hncm91cD1zaFNuZ2xDYXNlIHN0YXJ0PSJcJShcXC5cfFteIyQoKSciIFx0XVwpXHstfVx6cykiICBlbmQ9Ijs7IiBlbmQ9ImVzYWMibWU9cy0xIGNvbnRhaW5zPUBzaENhc2VMaXN0IG5leHRncm91cD1zaENhc2VTdGFydCxzaENhc2Usc2hDb21tZW50CiAgc3luIHJlZ2lvbiAgc2hDYXNlRXNhYwltYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8Y2FzZVw+IiBlbmQ9Ilw8ZXNhY1w+Igljb250YWlucz1Ac2hDYXNlRXNhY0xpc3QKIGVuZGlmCiBzeW4ga2V5d29yZCBzaENhc2VJbgljb250YWluZWQgc2tpcHdoaXRlIHNraXBubCBpbgkJCW5leHRncm91cD1zaENhc2Usc2hDYXNlU3RhcnQsc2hDYXNlQmFyLHNoQ29tbWVudCxzaENhc2VFeFNpbmdsZVF1b3RlLHNoQ2FzZVNpbmdsZVF1b3RlLHNoQ2FzZURvdWJsZVF1b3RlCkBAIC0yMTgsNiArMjE4LDcgQEAKIHN5biByZWdpb24gIHNoQ2FzZVNpbmdsZVF1b3RlCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rJysgZW5kPSsnKwkJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCQlza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD1zaENhc2VCYXIJY29udGFpbmVkCiBzeW4gcmVnaW9uICBzaENhc2VEb3VibGVRdW90ZQltYXRjaGdyb3VwPXNoT3BlcmF0b3Igc3RhcnQ9KyIrIHNraXA9K1xcXFxcfFxcLisgZW5kPSsiKwljb250YWlucz1Ac2hEYmxRdW90ZUxpc3Qsc2hTdHJpbmdTcGVjaWFsCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoQ2FzZUJhcgljb250YWluZWQKIHN5biByZWdpb24gIHNoQ2FzZUNvbW1hbmRTdWIJc3RhcnQ9K2ArIHNraXA9K1xcXFxcfFxcLisgZW5kPStgKwkJY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3QJCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoQ2FzZUJhcgljb250YWluZWQKK3N5biByZWdpb24gIHNoQ2FzZVJhbmdlCW1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PStcWysgc2tpcD0rXFxcXCsgZW5kPStdKwljb250YWluZWQKIAogIiBNaXNjOiB7e3sxCiAiPT09PT09CkBAIC0yNTYsMzQgKzI1NywzNiBAQAogCiBzeW4gbWF0Y2ggICBzaFNvdXJjZQkiXlwuXHMiCiBzeW4gbWF0Y2ggICBzaFNvdXJjZQkiXHNcLlxzIgotc3luIHJlZ2lvbiAgc2hDb2xvbglzdGFydD0iXlxzKjoiIGVuZD0iJFx8IiBlbmQ9IiMibWU9ZS0xIGNvbnRhaW5zPUBzaENvbG9uTGlzdAorInN5biByZWdpb24gIHNoQ29sb24Jc3RhcnQ9Il5ccyo6IiBlbmQ9IiQiIGVuZD0iXHMjIm1lPWUtMiBjb250YWlucz1Ac2hDb2xvbkxpc3QKK3N5biByZWdpb24gIHNoQ29sb24Jc3RhcnQ9Il5ccypcenM6IiBlbmQ9IiQiIGVuZD0iXHMjIm1lPWUtMgogCiAiIFN0cmluZyBBbmQgQ2hhcmFjdGVyIENvbnN0YW50czoge3t7MQogIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBzeW4gbWF0Y2ggICBzaE51bWJlcgkiLVw9XDxcZFwrXD4jXD0iCiBzeW4gbWF0Y2ggICBzaEN0cmxTZXEJIlxcXGRcZFxkXHxcXFthYmNmbnJ0djBdIgkJY29udGFpbmVkCiBpZiBleGlzdHMoImI6aXNfYmFzaCIpCi0gc3luIG1hdGNoICAgc2hTcGVjaWFsCSJcXFxvXG9cb1x8XFx4XHhceFx8XFxjLlx8XFxbYWJlZm5ydHZdIgljb250YWluZWQKKyBzeW4gbWF0Y2ggICBzaFNwZWNpYWwJIlxcXG9cb1xvXHxcXHhceFx4XHxcXGNbXiJdXHxcXFthYmVmbnJ0dl0iCWNvbnRhaW5lZAogZW5kaWYKIGlmIGV4aXN0cygiYjppc19iYXNoIikKICBzeW4gcmVnaW9uICBzaEV4U2luZ2xlUXVvdGUJbWF0Y2hncm91cD1zaE9wZXJhdG9yIHN0YXJ0PStcJCcrIHNraXA9K1xcXFxcfFxcLisgZW5kPSsnKwljb250YWlucz1zaFN0cmluZ1NwZWNpYWwsc2hTcGVjaWFsCiBlbHNlCiAgc3luIHJlZ2lvbiAgc2hFeFNpbmdsZVF1b3RlCW1hdGNoR3JvdXA9RXJyb3Igc3RhcnQ9K1wkJysgc2tpcD0rXFxcXFx8XFwuKyBlbmQ9KycrCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbAogZW5kaWYKLXN5biByZWdpb24gIHNoU2luZ2xlUXVvdGUJbWF0Y2hncm91cD1zaE9wZXJhdG9yIHN0YXJ0PSsnKyBlbmQ9KycrCQljb250YWlucz1zaFN0cmluZ1NwZWNpYWwsQFNwZWxsCitzeW4gcmVnaW9uICBzaFNpbmdsZVF1b3RlCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rJysgZW5kPSsnKwkJY29udGFpbnM9QFNwZWxsCiBzeW4gcmVnaW9uICBzaERvdWJsZVF1b3RlCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrCWNvbnRhaW5zPUBzaERibFF1b3RlTGlzdCxzaFN0cmluZ1NwZWNpYWwsQFNwZWxsCiBzeW4gbWF0Y2ggICBzaFN0cmluZ1NwZWNpYWwJIlteWzpwcmludDpdIFx0XSIJY29udGFpbmVkCiBzeW4gbWF0Y2ggICBzaFN0cmluZ1NwZWNpYWwJIlwlKFxcXFxcKSpcXFtcXCInYCQoKSNdIgotc3luIG1hdGNoICAgc2hTcGVjaWFsCSJbXlxcXVx6c1wlKFxcXFxcKSpcXFtcXCInYCQoKSNdIgorc3luIG1hdGNoICAgc2hTcGVjaWFsCSJbXlxcXVx6c1wlKFxcXFxcKSpcXFtcXCInYCQoKSNdIiBuZXh0Z3JvdXA9c2hNb3JlU3BlY2lhbAogc3luIG1hdGNoICAgc2hTcGVjaWFsCSJeXCUoXFxcXFwpKlxcW1xcIidgJCgpI10iCitzeW4gbWF0Y2ggICBzaE1vcmVTcGVjaWFsCSJcJShcXFxcXCkqXFxbXFwiJ2AkKCkjXSIgbmV4dGdyb3VwPXNoTW9yZVNwZWNpYWwgY29udGFpbmVkCiAKICIgQ29tbWVudHM6IHt7ezEKICI9PT09PT09PT09Ci1zeW4gY2x1c3RlciAgICBzaENvbW1lbnRHcm91cAljb250YWlucz1zaFRvZG8sQFNwZWxsCi1zeW4ga2V5d29yZCAgICBzaFRvZG8JY29udGFpbmVkCUNPTUJBSyBGSVhNRSBUT0RPIFhYWAotc3luIG1hdGNoICAgICAgc2hDb21tZW50CSJeXHMqXHpzIy4qJCIJY29udGFpbnM9QHNoQ29tbWVudEdyb3VwCi1zeW4gbWF0Y2ggICAgICBzaENvbW1lbnQJIlxzXHpzIy4qJCIJY29udGFpbnM9QHNoQ29tbWVudEdyb3VwCi1zeW4gbWF0Y2ggICAgICBzaFF1aWNrQ29tbWVudAljb250YWluZWQJIiMuKiQiCitzeW4gY2x1c3RlcglzaENvbW1lbnRHcm91cAljb250YWlucz1zaFRvZG8sQFNwZWxsCitzeW4ga2V5d29yZAlzaFRvZG8JY29udGFpbmVkCQlDT01CQUsgRklYTUUgVE9ETyBYWFgKK3N5biBtYXRjaAlzaENvbW1lbnQJCSJeXHMqXHpzIy4qJCIJY29udGFpbnM9QHNoQ29tbWVudEdyb3VwCitzeW4gbWF0Y2gJc2hDb21tZW50CQkiXHNcenMjLiokIgljb250YWlucz1Ac2hDb21tZW50R3JvdXAKK3N5biBtYXRjaAlzaFF1aWNrQ29tbWVudAljb250YWluZWQJIiMuKiQiCiAKICIgSGVyZSBEb2N1bWVudHM6IHt7ezEKICIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTMzOCwxMyArMzQxLDEzIEBACiBzeW4gbWF0Y2ggIHNoVmFyaWFibGUJIlw8XChbYndnbHNhdl06XClcPVthLXpBLVowLTkuIUBfJSssXSpcemU9IgluZXh0Z3JvdXA9c2hTZXRJZGVudGlmaWVyCiBzeW4gbWF0Y2ggIHNoU2V0SWRlbnRpZmllcgkiPSIJCWNvbnRhaW5lZAluZXh0Z3JvdXA9c2hQYXR0ZXJuLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERvdWJsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hFeFNpbmdsZVF1b3RlCiBpZiBleGlzdHMoImI6aXNfYmFzaCIpCi0gc3luIHJlZ2lvbiBzaFNldExpc3Qgb25lbGluZSBtYXRjaGdyb3VwPXNoU2V0IHN0YXJ0PSJcPFwoZGVjbGFyZVx8dHlwZXNldFx8bG9jYWxcfGV4cG9ydFx8dW5zZXRcKVw+XHplW14vXSIgZW5kPSIkIgltYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSJcemVbfXwpOyZdIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJcemUjXHw9IiBjb250YWlucz1Ac2hJZExpc3QKLSBzeW4gcmVnaW9uIHNoU2V0TGlzdCBvbmVsaW5lIG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8c2V0XD5cemVbXi9dIiBlbmQ9Ilx6ZVs7fCldXHwkIgkJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZVsjPV0iIGNvbnRhaW5zPUBzaElkTGlzdAorIHN5biByZWdpb24gc2hTZXRMaXN0IG9uZWxpbmUgbWF0Y2hncm91cD1zaFNldCBzdGFydD0iXDxcKGRlY2xhcmVcfHR5cGVzZXRcfGxvY2FsXHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJCIJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW318KTsmXSIgbWF0Y2hncm91cD1OT05FIGVuZD0iXHplXHNcKyNcfD0iIGNvbnRhaW5zPUBzaElkTGlzdAorIHN5biByZWdpb24gc2hTZXRMaXN0IG9uZWxpbmUgbWF0Y2hncm91cD1zaFNldCBzdGFydD0iXDxzZXRcPlx6ZVteL10iIGVuZD0iXHplWzt8KV1cfCQiCQkJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW318KTsmXSIgbWF0Y2hncm91cD1OT05FIGVuZD0iXHplXHNcK1sjPV0iIGNvbnRhaW5zPUBzaElkTGlzdAogZWxzZWlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQotIHN5biByZWdpb24gc2hTZXRMaXN0IG9uZWxpbmUgbWF0Y2hncm91cD1zaFNldCBzdGFydD0iXDxcKHR5cGVzZXRcfGV4cG9ydFx8dW5zZXRcKVw+XHplW14vXSIgZW5kPSIkIgkJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW318KTsmXSIgbWF0Y2hncm91cD1OT05FIGVuZD0iXHplWyM9XSIgY29udGFpbnM9QHNoSWRMaXN0Ci0gc3luIHJlZ2lvbiBzaFNldExpc3Qgb25lbGluZSBtYXRjaGdyb3VwPXNoU2V0IHN0YXJ0PSJcPHNldFw+XHplW14vXSIgZW5kPSIkIgkJCQltYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSJcemVbfXwpOyZdIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJcemVbIz1dIiBjb250YWlucz1Ac2hJZExpc3QKKyBzeW4gcmVnaW9uIHNoU2V0TGlzdCBvbmVsaW5lIG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8XCh0eXBlc2V0XHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJCIJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZVxzXCtbIz1dIiBjb250YWlucz1Ac2hJZExpc3QKKyBzeW4gcmVnaW9uIHNoU2V0TGlzdCBvbmVsaW5lIG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8c2V0XD5cemVbXi9dIiBlbmQ9IiQiCQkJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZVxzXCtbIz1dIiBjb250YWlucz1Ac2hJZExpc3QKIGVsc2UKLSBzeW4gcmVnaW9uIHNoU2V0TGlzdCBvbmVsaW5lIG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8XChzZXRcfGV4cG9ydFx8dW5zZXRcKVw+XHplW14vXSIgZW5kPSIkIgkJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW318KTsmXSIgbWF0Y2hncm91cD1OT05FIGVuZD0iXHplWyM9XSIgY29udGFpbnM9QHNoSWRMaXN0Cisgc3luIHJlZ2lvbiBzaFNldExpc3Qgb25lbGluZSBtYXRjaGdyb3VwPXNoU2V0IHN0YXJ0PSJcPFwoc2V0XHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJCIJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZVxzXCtbIz1dIiBjb250YWlucz1Ac2hJZExpc3QKIGVuZGlmCiAKICIgRnVuY3Rpb25zOiB7e3sxCkBAIC00OTIsNyArNDk1LDcgQEAKIGhpIGRlZiBsaW5rIHNoQ2FzZVNpbmdsZVF1b3RlCXNoU2luZ2xlUXVvdGUKIGhpIGRlZiBsaW5rIHNoQ2FzZVN0YXJ0CXNoQ29uZGl0aW9uYWwKIGhpIGRlZiBsaW5rIHNoQ21kU3ViUmVnaW9uCXNoU2hlbGxWYXJpYWJsZXMKLWhpIGRlZiBsaW5rIHNoQ29sb24Jc2hTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHNoQ29sb24Jc2hDb21tZW50CiBoaSBkZWYgbGluayBzaERlcmVmT3AJc2hPcGVyYXRvcgogaGkgZGVmIGxpbmsgc2hEZXJlZlBPTAlzaERlcmVmT3AKIGhpIGRlZiBsaW5rIHNoRGVyZWZQUFMJc2hEZXJlZk9wCkBAIC01MTEsNiArNTE0LDcgQEAKIGhpIGRlZiBsaW5rIHNoSGVyZURvYwlzaFN0cmluZwogaGkgZGVmIGxpbmsgc2hIZXJlUGF5bG9hZAlzaEhlcmVEb2MKIGhpIGRlZiBsaW5rIHNoTG9vcAlzaFN0YXRlbWVudAoraGkgZGVmIGxpbmsgc2hNb3JlU3BlY2lhbAlzaFNwZWNpYWwKIGhpIGRlZiBsaW5rIHNoT3B0aW9uCXNoQ29tbWFuZFN1YgogaGkgZGVmIGxpbmsgc2hQYXR0ZXJuCXNoU3RyaW5nCiBoaSBkZWYgbGluayBzaFBhcmVuCXNoQXJpdGhtZXRpYwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc2lzdS52aW0gYi9ydW50aW1lL3N5bnRheC9zaXN1LnZpbQppbmRleCBmMjliYzI2Li5jN2NkZjJkIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zaXN1LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9zaXN1LnZpbQpAQCAtMSw2ICsxLDYgQEAKICJTaVNVIFZpbSBzeW50YXggZmlsZQogIlNpU1UgTWFpbnRhaW5lcjogUmFscGggQW1pc3NhaCA8cmFscGhAYW1pc3NhaC5jb20+Ci0iU2lTVSBNYXJrdXA6ICAgICBTaVNVIChzaXN1LTAuNjYuMCwgMjAwOC0wMi0yNCkKKyJTaVNVIE1hcmt1cDogICAgIFNpU1UgKHNpc3UtMC42OS4wLCAyMDA4LTA5LTE2KQogIihvcmlnaW5hbGx5IGxvb2tlZCBhdCBSdWJ5IFZpbSBieSBNaXJrbyBOYXNhdG8pCiAKIGlmIHZlcnNpb24gPCA2MDAKQEAgLTgxLDYgKzgxLDcgQEAKIHN5biByZWdpb24gc2lzdV9jb21tZW50IG1hdGNoZ3JvdXA9c2lzdV9jb21tZW50IHN0YXJ0PSJeJVx7MSwyXH0gIiBlbmQ9IiQiCiAiZm9udCBmYWNlIGN1cmx5IGJyYWNrZXRzCiAic3luIHJlZ2lvbiBzaXN1X2lkZW50aWZpZXIgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9zZW0gc3RhcnQ9IlxTXCs6eyIgZW5kPSJ9OltePD4sLiE/OjsgXVwrIiBvbmVsaW5lCitzeW4gcmVnaW9uIHNpc3VfaW5kZXggbWF0Y2hncm91cD1zaXN1X2luZGV4X2Jsb2NrIHN0YXJ0PSJePXsiIGVuZD0ifSIKIHN5biByZWdpb24gc2lzdV9jb250cm9sIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfZm9udGZhY2Ugc3RhcnQ9IlwqeyIgZW5kPSJ9XCoiCiBzeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2ZvbnRmYWNlIHN0YXJ0PSIheyIgZW5kPSJ9ISIKIHN5biByZWdpb24gc2lzdV91bmRlcmxpbmUgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9mb250ZmFjZSBzdGFydD0iX3siIGVuZD0ifV8iCkBAIC0xNjIsNyArMTYzLDYgQEAKIGhpIGRlZiBsaW5rIHNpc3VfZm9udGZhY2UgICAgICAgICBJbmNsdWRlCiBoaSBkZWYgbGluayBzaXN1X3N0cmlrZW91dCAgICAgICAgRGlmZkRlbGV0ZQogaGkgZGVmIGxpbmsgc2lzdV9jb250ZW50X2FsdCAgICAgIFNwZWNpYWwKLWhpIGRlZiBsaW5rIHNpc3Vfc2VtX2NvbnRlbnQgICAgICBTdHJpbmcKIGhpIGRlZiBsaW5rIHNpc3Vfc2VtX2NvbnRlbnQgICAgICBTcGVjaWFsS2V5CiBoaSBkZWYgbGluayBzaXN1X3NlbV9ibG9jayAgICAgICAgU3BlY2lhbAogaGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyICAgICAgIFZpc3VhbApAQCAtMTczLDYgKzE3Myw4IEBACiBoaSBkZWYgbGluayBzaXN1X3NlbV9leF9jb250ZW50ICAgQ29tbWVudAogImhpIGRlZiBsaW5rIHNpc3Vfc2VtX2V4X2NvbnRlbnQgICBTcGVjaWFsS2V5CiBoaSBkZWYgbGluayBzaXN1X3NlbV9leF9ibG9jayAgICAgQ29tbWVudAoraGkgZGVmIGxpbmsgc2lzdV9pbmRleCAgICAgICAgICAgIFNwZWNpYWxLZXkKK2hpIGRlZiBsaW5rIHNpc3VfaW5kZXhfYmxvY2sgICAgICBWaXN1YWwKIGhpIGRlZiBsaW5rIHNpc3VfY29udGVudF9lbmRub3RlICBTcGVjaWFsCiBoaSBkZWYgbGluayBzaXN1X2NvbnRyb2wgICAgICAgICAgRGVmaW5lCiBoaSBkZWYgbGluayBzaXN1X29jbiAgICAgICAgICAgICAgSW5jbHVkZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc3BlYy52aW0gYi9ydW50aW1lL3N5bnRheC9zcGVjLnZpbQppbmRleCBjYjJmMzA0Li44YzlkZDFmIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zcGVjLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9zcGVjLnZpbQpAQCAtMSw4ICsxLDcgQEAKICIgRmlsZW5hbWU6ICAgIHNwZWMudmltCiAiIFB1cnBvc2U6ICAgICBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6ICAgIFNQRUM6IEJ1aWxkL2luc3RhbGwgc2NyaXB0cyBmb3IgTGludXggUlBNIHBhY2thZ2VzCi0iIE1haW50YWluZXI6ICBEb25vdmFuIFJlYmJlY2hpIGVsZmxvcmRAcGVnYXN1cy5ydXRnZXJzLmVkdQotIiBVUkw6CSAgICAgICBodHRwOi8vcGVnYXN1cy5ydXRnZXJzLmVkdS9+ZWxmbG9yZC92aW0vc3ludGF4L3NwZWMudmltCisiIE1haW50YWluZXI6ICBEb25vdmFuIFJlYmJlY2hpIGVsZmxvcmRAcGFuaXguY29tCiAiIExhc3QgQ2hhbmdlOiBGcmkgRGVjIDMgMTE6NTQgRVNUIDIwMDQgTWFyY2luIERhbGVja2kKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NwbGludC52aW0gYi9ydW50aW1lL3N5bnRheC9zcGxpbnQudmltCmluZGV4IDJmMjgzODAuLmRjMDlkOGIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NwbGludC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc3BsaW50LnZpbQpAQCAtMiw4ICsyLDggQEAKICIgTGFuZ3VhZ2U6CXNwbGludCAoQyB3aXRoIGxjbGludC9zcGxpbnQgQW5ub3RhdGlvbnMpCiAiIE1haW50YWluZXI6CVJhbGYgV2lsZGVuaHVlcyA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KICIgU3BsaW50IEhvbWU6CWh0dHA6Ly93d3cuc3BsaW50Lm9yZy8KLSIgTGFzdCBDaGFuZ2U6CSREYXRlJAotIiAkUmV2aXNpb24kCisiIExhc3QgQ2hhbmdlOgkkRGF0ZTogMjAwNC8wNi8xMyAyMDowODo0NyAkCisiICRSZXZpc2lvbjogMS4xICQKIAogIiBOb3RlOgkJU3BsaW50IGFubm90YXRlZCBmaWxlcyBhcmUgbm90IGRldGVjdGVkIGJ5IGRlZmF1bHQuCiAiCQlJZiB5b3Ugd2FudCB0byB1c2UgdGhpcyBmaWxlIGZvciBoaWdobGlnaHRpbmcgQyBjb2RlLApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc3B5Y2UudmltIGIvcnVudGltZS9zeW50YXgvc3B5Y2UudmltCmluZGV4IDY0MWFhODYuLmU3NmNiMWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NweWNlLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9zcHljZS52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOgkgICBTUFlDRQogIiBNYWludGFpbmVyOgkgUmltb24gQmFyciA8cmltb24gQVQgYWNtIERPVCBvcmc+CiAiIFVSTDoJCSAgICAgaHR0cDovL3NweWNlLnNvdXJjZWZvcmdlLm5ldAotIiBMYXN0IENoYW5nZTogMjAwMyBNYXkgMTEKKyIgTGFzdCBDaGFuZ2U6IDIwMDkgTm92IDExCiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCkBAIC0yNSw2ICsyNSw3IEBACiBlbHNlCiAgIHJ1bnRpbWUhIHN5bnRheC9odG1sLnZpbQogICB1bmxldCBiOmN1cnJlbnRfc3ludGF4CisgIHN5bnRheCBzcGVsbCBkZWZhdWx0ICAiIGFkZGVkIGJ5IEJyYW0KIGVuZGlmCiAKICIgaW5jbHVkZSBweXRob24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NxbGFueXdoZXJlLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NxbGFueXdoZXJlLnZpbQppbmRleCA4MWZhMDYwLi41YWJhYjM4IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zcWxhbnl3aGVyZS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc3FsYW55d2hlcmUudmltCkBAIC0yLDEwICsyLDExIEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgU1FMLCBBZGFwdGl2ZSBTZXJ2ZXIgQW55d2hlcmUKICIgTWFpbnRhaW5lcjogIERhdmlkIEZpc2hidXJuIDxmaXNoYnVybiBhdCBpYW55d2hlcmUgZG90IGNvbT4KLSIgTGFzdCBDaGFuZ2U6IFR1ZSAyOSBKYW4gMjAwOCAxMjo1NDoxOSBQTSBFYXN0ZXJuIFN0YW5kYXJkIFRpbWUKLSIgVmVyc2lvbjogICAgIDEwLjAuMQorIiBMYXN0IENoYW5nZTogMjAwOSBNYXIgMTUKKyIgVmVyc2lvbjogICAgIDExLjAuMQogCi0iIERlc2NyaXB0aW9uOiBVcGRhdGVkIHRvIEFkYXB0aXZlIFNlcnZlciBBbnl3aGVyZSAxMC4wLjEKKyIgRGVzY3JpcHRpb246IFVwZGF0ZWQgdG8gQWRhcHRpdmUgU2VydmVyIEFueXdoZXJlIDExLjAuMQorIiAgICAgICAgICAgICAgVXBkYXRlZCB0byBBZGFwdGl2ZSBTZXJ2ZXIgQW55d2hlcmUgMTAuMC4xCiAiICAgICAgICAgICAgICBVcGRhdGVkIHRvIEFkYXB0aXZlIFNlcnZlciBBbnl3aGVyZSAgOS4wLjIKICIgICAgICAgICAgICAgIFVwZGF0ZWQgdG8gQWRhcHRpdmUgU2VydmVyIEFueXdoZXJlICA5LjAuMQogIiAgICAgICAgICAgICAgVXBkYXRlZCB0byBBZGFwdGl2ZSBTZXJ2ZXIgQW55d2hlcmUgIDkuMC4wCkBAIC01NCwyMCArNTUsMjQgQEAKIHN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBzdHJ0b3V1aWQgdmFyZXhpc3RzCiAKICIgOS4wLjEgZnVuY3Rpb25zCi1zeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgYWNvcyBhc2luIGF0YW4gYXRuMiBjYXN0IGNlaWxpbmcgY29udmVydCBjb3MgY290IAorc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIGFjb3MgYXNpbiBhdGFuIGF0bjIgY2FzdCBjZWlsaW5nIGNvbnZlcnQgY29zIGNvdAogc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIGNoYXJfbGVuZ3RoIGNvYWxlc2NlIGRhdGVmb3JtYXQgZGF0ZXRpbWUgZGVncmVlcyBleHAKLXN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBmbG9vciBnZXRkYXRlIGluc2VydHN0ciAKK3N5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBmbG9vciBnZXRkYXRlIGluc2VydHN0cgogc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIGxvZyBsb2cxMCBsb3dlciBtb2QgcGkgcG93ZXIKLXN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBwcm9wZXJ0eSByYWRpYW5zIHJlcGxpY2F0ZSByb3VuZCBzaWduIHNpbiAKK3N5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBwcm9wZXJ0eSByYWRpYW5zIHJlcGxpY2F0ZSByb3VuZCBzaWduIHNpbgogc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIHNxbGRpYWxlY3QgdGFuIHRydW5jYXRlIHRydW5jbnVtCiBzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgYmFzZTY0X2VuY29kZSBiYXNlNjRfZGVjb2RlCiBzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgaGFzaCBjb21wcmVzcyBkZWNvbXByZXNzIGVuY3J5cHQgZGVjcnlwdAogCisiIDExLjAuMSBmdW5jdGlvbnMKK3N5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBjb25uZWN0aW9uX2V4dGVuZGVkX3Byb3BlcnR5IHRleHRfaGFuZGxlX3ZlY3Rvcl9tYXRjaAorc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIHJlYWRfY2xpZW50X2ZpbGUgd3JpdGVfY2xpZW50X2ZpbGUKKwogIiBzdHJpbmcgZnVuY3Rpb25zCiBzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgYXNjaWkgY2hhciBsZWZ0IGx0cmltIHJlcGVhdAogc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIHNwYWNlIHJpZ2h0IHJ0cmltIHRyaW0gbGNhc2UgdWNhc2UKIHN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBsb2NhdGUgY2hhcmluZGV4IHBhdGluZGV4IHJlcGxhY2UKLXN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBlcnJvcm1zZyBjc2NvbnZlcnQgCitzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgZXJyb3Jtc2cgY3Njb252ZXJ0CiAKICIgcHJvcGVydHkgZnVuY3Rpb25zCiBzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgZGJfaWQgZGJfbmFtZSBwcm9wZXJ0eV9uYW1lCkBAIC0zNTgsMTI1ICszNjMsMTM1IEBACiBzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgc2Ffc2V0X2h0dHBfaGVhZGVyIHNhX3NldF9odHRwX29wdGlvbgogc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIHNhX2h0dHBfdmFyaWFibGVfaW5mbyBzYV9odHRwX2hlYWRlcl9pbmZvCiAKLSIgaHR0cCBmdW5jdGlvbnMgOS4wLjEgCisiIGh0dHAgZnVuY3Rpb25zIDkuMC4xCiBzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgaHR0cF9lbmNvZGUgaHR0cF9kZWNvZGUKIHN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBodG1sX2VuY29kZSBodG1sX2RlY29kZQogCiAiIGtleXdvcmRzCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBhYnNvbHV0ZSBhY2NlbnQgYWN0aW9uIGFjdGl2IGFkZCBhZGRyZXNzIGFmdGVyCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBhbGdvcml0aG0gYWxsb3dfZHVwX3Jvdwotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgYWx0ZXIgYW5kIGFueSBhcyBhcHBlbmQgYXNjIGFzY2lpIGFzZSBhdCBhdG9taWMKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGF0dGFjaCBhdHRlbmRlZCBhdWRpdCBhdXRob3JpemF0aW9uIAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgYWJzb2x1dGUgYWNjZW50IGFjdGlvbiBhY3RpdmUgYWRkIGFkZHJlc3MgYWVzX2RlY3J5cHQKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGFmdGVyIGFnZ3JlZ2F0ZSBhbGdvcml0aG0gYWxsb3dfZHVwX3JvdyBhbGxvd2VkCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBhbHRlciBhbmQgYW5zaV9zdWJzdHJpbmcgYW55IGFzIGFwcGVuZCBhcHBseSBhc2MgYXNjaWkgYXNlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBhc3NpZ24gYXQgYXRhbjIgYXRvbWljIGF0dGFjaCBhdHRlbmRlZCBhdWRpdCBhdXRob3JpemF0aW9uCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBhdXRvaW5jcmVtZW50IGF1dG9zdG9wIGJhdGNoIGJjcCBiZWZvcmUKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGJldHdlZW4gYmxhbmsgYmxhbmtzIGJsb2NrCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBib3RoIGJvdHRvbSB1bmJvdW5kZWQgYnJlYWsgYnVmZmVycG9vbAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgYmV0d2VlbiBiaXRfYW5kIGJpdF9sZW5ndGggYml0X29yIGJpdF9zdWJzdHIgYml0X3hvcgorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgYmxhbmsgYmxhbmtzIGJsb2NrCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBib3RoIGJvdHRvbSB1bmJvdW5kZWQgYnJlYWsgYnJlYWtlciBidWZmZXJwb29sCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBidWlsZCBidWxrIGJ5IGJ5dGUgYnl0ZXMgY2FjaGUgY2FsaWJyYXRlIGNhbGlicmF0aW9uCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjYW5jZWwgY2FwYWJpbGl0eSBjYXNjYWRlIGNhc3QKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNhdGFsb2cgY2hhbmdlcyBjaGFyIGNoYXJfY29udmVydCBjaGVjayBjaGVja3N1bQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgY2F0YWxvZyBjZWlsIGNoYW5nZXMgY2hhciBjaGFyX2NvbnZlcnQgY2hlY2sgY2hlY2tzdW0KIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNsYXNzIGNsYXNzZXMgY2xpZW50IGNtcAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgY2x1c3RlciBjbHVzdGVyZWQgY29sbGF0aW9uIGNvbHVtbiBjb2x1bW5zCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjbHVzdGVyIGNsdXN0ZXJlZCBjb2xsYXRpb24KK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvbHVtbiBjb2x1bW5zCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjb21tYW5kIGNvbW1lbnQgY29tbWl0dGVkIGNvbXBhcmlzb25zCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjb21wYXRpYmxlIGNvbXBvbmVudCBjb21wcmVzc2VkIGNvbXB1dGUgY29tcHV0ZXMKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvbmNhdCBjb25maXJtIGNvbmZsaWN0IGNvbm5lY3Rpb24KK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvbmNhdCBjb25maWd1cmF0aW9uIGNvbmZpcm0gY29uZmxpY3QgY29ubmVjdGlvbgogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgY29uc29sZSBjb25zb2xpZGF0ZSBjb25zb2xpZGF0ZWQKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvbnN0cmFpbnQgY29uc3RyYWludHMgY29udGludWUKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvbnZlcnQgY29weSBjb3VudCBjcmMgY3Jvc3MgY3ViZQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgY29uc3RyYWludCBjb25zdHJhaW50cyBjb250ZW50IGNvbnRpbnVlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjb252ZXJ0IGNvb3JkaW5hdG9yIGNvcHkgY291bnQgY291bnRfc2V0X2JpdHMKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNyYyBjcmVhdGV0aW1lIGNyb3NzIGN1YmUgY3VtZV9kaXN0CiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjdXJyZW50IGN1cnNvciBkYXRhIGRhdGEgZGF0YWJhc2UKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGN1cnJlbnRfdGltZXN0YW1wIGN1cnJlbnRfdXNlcgotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZGF0YXR5cGUgZGJhIGRiZmlsZQotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZGJzcGFjZSBkYnNwYWNlbmFtZSBkZWJ1ZyBkZWNvdXBsZWQKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGRlY3J5cHRlZCBkZWZhdWx0IGRlZmF1bHRzIGRlZmVycmVkIGRlZmluaXRpb24KK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGRhdGFiYXNlcyBkYXRhdHlwZSBkYmEgZGJmaWxlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBkYnNwYWNlIGRic3BhY2VzIGRic3BhY2VuYW1lIGRlYnVnIGRlY291cGxlZAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZGVjcnlwdGVkIGRlZmF1bHQgZGVmYXVsdHMgZGVmYXVsdF9kYnNwYWNlIGRlZmVycmVkCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBkZWZpbmVyIGRlZmluaXRpb24KIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGRlbGF5IGRlbGV0aW5nIGRlbGltaXRlZCBkZXBlbmRlbmNpZXMgZGVzYwogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZGVzY3JpcHRpb24gZGV0YWNoIGRldGVybWluaXN0aWMgZGlyZWN0b3J5Ci1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBkaXNhYmxlIGRpc2FibGVkIGRpc3RpbmN0IGRvIGRvbWFpbiBkb3dubG9hZAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZGlzYWJsZSBkaXNhYmxlZCBkaXN0aW5jdCBkbyBkb21haW4gZG93bmxvYWQgZHVwbGljYXRlCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBkc2V0cGFzcyBkdHRtIGR5bmFtaWMgZWFjaCBlZGl0cHJvYyBlamIKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGVsc2UgZWxzZWlmIGVuYWJsZSBlbmNhcHN1bGF0ZWQgZW5jcnlwdGVkIGVuZCAKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGVuY29kaW5nIGVuZGlmIGVuZ2luZSBlcmFzZSBlcnJvciBlc2NhcGUgZXNjYXBlcyBldmVudAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZXZlcnkgZXhjZXB0IGV4Y2VwdGlvbiBleGNsdWRlIGV4Y2x1c2l2ZSBleGVjIAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZXhpc3RpbmcgZXhpc3RzIGV4cGFuZGVkIGV4cHJlc3MKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGVsc2UgZWxzZWlmIGVtcHR5IGVuYWJsZSBlbmNhcHN1bGF0ZWQgZW5jcnlwdGVkIGVuZAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZW5jb2RpbmcgZW5kaWYgZW5naW5lIGVudmlyb25tZW50IGVyYXNlIGVycm9yIGVzY2FwZSBlc2NhcGVzIGV2ZW50CitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBldmVudF9wYXJhbWV0ZXIgZXZlcnkgZXhjZXB0IGV4Y2VwdGlvbiBleGNsdWRlIGV4Y2x1ZGVkIGV4Y2x1c2l2ZSBleGVjCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBleGlzdGluZyBleGlzdHMgZXhwYW5kZWQgZXhwaXJ5IGV4cHJlc3MgZXhwcnR5cGUgZXh0ZW5kZWRfcHJvcGVydHkKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGV4dGVybmFsIGV4dGVybmxvZ2luIGZhY3RvciBmYWlsb3ZlciBmYWxzZQotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZmFzdGZpcnN0cm93IGZpZWxkcHJvYyBmaWxlIGZpbGxlcgotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZmlsbGZhY3RvciBmaW5pc2ggZmlyc3QgZmlyc3Rfa2V5d29yZCAKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGZvbGxvd2luZyBmb3JjZSBmb3JlaWduIGZvcm1hdCAKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGZyZWVwYWdlIGZyZW5jaCBmcmVzaCBmdWxsIGZ1bmN0aW9uIGdvIGdsb2JhbAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgZ3JvdXAgaGFuZGxlciBoYXNoIGhhdmluZyBoZWFkZXIgaGV4YWRlY2ltYWwgCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBoaWRkZW4gaGlnaCBoaXN0b3J5IGhvbGQgaG9sZGxvY2sKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGhvdXJzIGlkIGlkZW50aWZpZWQgaWRlbnRpdHkgaWdub3JlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBmYXN0Zmlyc3Ryb3cgZmllbGRwcm9jIGZpbGUgZmlsZXMgZmlsbGVyCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBmaWxsZmFjdG9yIGZpbmlzaCBmaXJzdCBmaXJzdF9rZXl3b3JkIGZpcnN0X3ZhbHVlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBmb2xsb3dpbmcgZm9yY2UgZm9yZWlnbiBmb3JtYXQgZm9yeG1sIGZvcnhtbF9zZXAgZnAgZnJhbWUKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGZyZWVwYWdlIGZyZW5jaCBmcmVzaCBmdWxsIGZ1bmN0aW9uIGdiIGdldF9iaXQgZ28gZ2xvYmFsCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBncm91cCBoYW5kbGVyIGhhc2ggaGF2aW5nIGhlYWRlciBoZXhhZGVjaW1hbAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgaGlkZGVuIGhpZ2ggaGlzdG9yeSBoZyBobmcgaG9sZCBob2xkbG9jayBob3N0CitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBob3VycyBodHRwX2JvZHkgaHR0cF9zZXNzaW9uX3RpbWVvdXQgaWQgaWRlbnRpZmllZCBpZGVudGl0eSBpZ25vcmUKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGlnbm9yZV9kdXBfa2V5IGlnbm9yZV9kdXBfcm93IGltbWVkaWF0ZQotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgaW4gaW5hY3RpdmUgaW5hY3Rpdml0eSBpbmNyZW1lbnRhbCBpbmRleCBpbmZvIAorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgaW4gaW5hY3RpdiBpbmFjdGl2ZSBpbmFjdGl2aXR5IGluY2x1ZGVkIGluY3JlbWVudGFsCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBpbmRleCBpbmRleF9lbmFibGVkIGluZGV4X2xwYXJlbiBpbmRleG9ubHkgaW5mbwogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgaW5saW5lIGlubmVyIGlub3V0IGluc2Vuc2l0aXZlIGluc2VydGluZwogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgaW5zdGVhZCBpbnRlZ3JhdGVkCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBpbnRlcm5hbCBpbnRvIGludHJvZHVjZWQgaXEgaXMgaXNvbGF0aW9uIGphciBqYXZhCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBpbnRlcm5hbCBpbnRlcnNlY3Rpb24gaW50byBpbnRyb2R1Y2VkIGludm9rZXIgaXEgaXMgaXNvbGF0aW9uCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBqYXIgamF2YSBqYXZhX2xvY2F0aW9uIGphdmFfbWFpbl91c2VyaWQgamF2YV92bV9vcHRpb25zCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBqY29ubmVjdCBqZGsgam9pbiBrYiBrZXkga2VlcCBrZXJiZXJvcyBsYW5ndWFnZSBsYXN0Ci1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBsYXN0X2tleXdvcmQgbGF0ZXJhbCBsZWZ0IGxldmVsIGxpa2UKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGxpbWl0IGxvY2FsIGxvY2F0aW9uIGxvZyAKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGxvZ2dpbmcgbG9naW4gbG9nc2NhbiBsb25nIGxvdyBscnUgbWFpbgotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgbWF0Y2ggbWF0ZXJpYWxpemVkIG1heCBtYXhpbXVtIG1lbWJlcnNoaXAgCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBtaW51dGVzIG1pcnJvciBtb2RlIG1vZGlmeSBtb25pdG9yICBtcnUKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIG5hbWUgbmFtZWQgbmF0aW9uYWwgbmF0aXZlIG5hdHVyYWwgbmV3IG5leHQgbm8KK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGxhc3Rfa2V5d29yZCBsYXN0X3ZhbHVlIGxhdGVyYWwgbGQgbGVmdCBsZW4gbGYgbG4gbGV2ZWwgbGlrZQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgbGltaXQgbG9jYWwgbG9jYXRpb24gbG9nCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBsb2dnaW5nIGxvZ2luIGxvZ3NjYW4gbG9uZyBsb3cgbHJ1IG1haW4gbWFudWFsIG1hcmsKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIG1hdGNoIG1hdGNoZWQgbWF0ZXJpYWxpemVkIG1heCBtYXhpbXVtIG1iIG1lbWJlcnNoaXAKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIG1lcmdlIG1ldGFkYXRhIG1ldGhvZHMgbWluaW11bSBtaW51dGVzIG1pcnJvciBtb2RlIG1vZGlmeSBtb25pdG9yIG1vdmUgbXJ1CitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBtdWx0aXBsZXggbmFtZSBuYW1lZCBuYXRpb25hbCBuYXRpdmUgbmF0dXJhbCBuZXcgbmV4dCBubwogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgbm9ob2xkbG9jayBub2xvY2sgbm9uY2x1c3RlcmVkIG5vbmUgbm90Ci1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBub3RpZnkgbnVsbCBudWxscyBvZiBvZmYgb2xkIG9uCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBvbmx5IG9wdGltaXphdGlvbiBvcHRpbWl6ZXIgb3B0aW9uCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBub3RpZnkgbnVsbCBudWxsYWJsZV9jb25zdGFudCBudWxscyBvYmplY3Qgb2VtX3N0cmluZyBvZiBvZmYgb2ZmbGluZQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgb2xkIG9uIG9ubGluZSBvbmx5IG9wZW5zdHJpbmcgb3B0aW1pemF0aW9uIG9wdGltaXplciBvcHRpb24KIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIG9yIG9yZGVyIG90aGVycyBvdXQgb3V0ZXIgb3Zlcgogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcGFja2FnZSBwYWNrZXRzaXplIHBhZGRpbmcgcGFnZSBwYWdlcwotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcGFnbG9jayBwYXJhbGxlbCBwYXJ0IHBhcnRpdGlvbiBwYXJ0bmVyIHBhc3N3b3JkIHBhdGgKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHBjdGZyZWUgcGxhbiBwcmVjZWRpbmcgcHJlY2lzaW9uIHByZWZldGNoIHByZWZpeAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcHJlc2VydmUgcHJldmlldyBwcmltYXJ5IAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcHJpb3IgcHJpcXR5IHByaXZhdGUgcHJpdmlsZWdlcyBwcm9jZWR1cmUgcHJvZmlsZQotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcHVibGljIHB1YmxpY2F0aW9uIHB1Ymxpc2ggcHVibGlzaGVyCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBxdW90ZSBxdW90ZXMgcmFuZ2UgcmVhZGNvbW1pdHRlZCByZWFkb25seQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcGFnbG9jayBwYXJhbGxlbCBwYXJ0IHBhcnRpYWwgcGFydGl0aW9uIHBhcnRpdGlvbnMgcGFydG5lciBwYXNzd29yZCBwYXRoCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBwY3RmcmVlIHBsYW4gcG9saWN5IHBvcHVsYXRlIHBvcnQgcG9zdGZpbHRlciBwcmVjZWRpbmcgcHJlY2lzaW9uCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBwcmVmZXRjaCBwcmVmaWx0ZXIgcHJlZml4IHByZXNlcnZlIHByZXZpZXcgcHJpbWFyeQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcHJpb3IgcHJpb3JpdHkgcHJpcXR5IHByaXZhdGUgcHJpdmlsZWdlcyBwcm9jZWR1cmUgcHJvZmlsZQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcHJvcGVydHlfaXNfY3VtdWxhdGl2ZSBwcm9wZXJ0eV9pc19udW1lcmljIHB1YmxpYyBwdWJsaWNhdGlvbiBwdWJsaXNoIHB1Ymxpc2hlcgorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcXVpZXNjZSBxdW90ZSBxdW90ZXMgcmFuZ2UgcmVhZGNsaWVudGZpbGUgcmVhZGNvbW1pdHRlZCByZWFkZXIgcmVhZGZpbGUgcmVhZG9ubHkKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJlYWRwYXN0IHJlYWR1bmNvbW1pdHRlZCByZWFkd3JpdGUgcmVidWlsZAogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcmVjZWl2ZWQgcmVjb21waWxlIHJlY292ZXIgcmVjdXJzaXZlIHJlZmVyZW5jZXMKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJlZmVyZW5jaW5nIHJlZnJlc2ggcmVsYXRpdmUgcmVsb2NhdGUKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJlZmVyZW5jaW5nIHJlZnJlc2ggcmVnZXggcmVnZXhwIHJlZ2V4cF9zdWJzdHIgcmVsYXRpdmUgcmVsb2NhdGUKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJlbmFtZSByZXBlYXRhYmxlIHJlcGVhdGFibGVyZWFkCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSByZXBsaWNhdGUgcmVyZWNlaXZlIHJlc2VuZCByZXNlcnZlIHJlc2V0CitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSByZXBsaWNhdGUgcmVxdWVzdF90aW1lb3V0IHJlcXVpcmVkIHJlcmVjZWl2ZSByZXNlbmQgcmVzZXJ2ZSByZXNldAogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcmVzaXppbmcgcmVzb2x2ZSByZXNvdXJjZSByZXNwZWN0CiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSByZXN0cmljdCByZXN1bHQgcmV0YWluCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSByZXR1cm5zIHJpZ2h0IAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcm9sbHVwIHJvb3Qgcm93IHJvd2xvY2sgcm93cyBzYXZlIAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgc2NoZWR1bGUgc2NoZW1hIHNjcmlwdGVkIHNjcm9sbCBzZWNvbmRzIHNlY3F0eQorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcmV0dXJucyByZXZlcnNlIHJpZ2h0IHJvbGUKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJvbGx1cCByb290IHJvdyByb3dfbnVtYmVyIHJvd2xvY2sgcm93cyBzYXZlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBzYV9pbmRleF9oYXNoIHNhX2ludGVybmFsX2ZrX3ZlcmlmeSBzYV9pbnRlcm5hbF90ZXJtYnJlYWsKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHNhX29yZGVyX3ByZXNlcnZpbmdfaGFzaCBzYV9vcmRlcl9wcmVzZXJ2aW5nX2hhc2hfYmlnIHNhX29yZGVyX3ByZXNlcnZpbmdfaGFzaF9wcmVmaXgKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHNjaGVkdWxlIHNjaGVtYSBzY29wZSBzY3JpcHRlZCBzY3JvbGwgc2Vjb25kcyBzZWNxdHkgc2VjdXJpdHkKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHNlbmQgc2Vuc2l0aXZlIHNlbnQgc2VyaWFsaXphYmxlCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBzZXJ2ZXIgc2VydmVyIHNlc3Npb24gc2V0cyAKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHNlcnZlciBzZXJ2ZXIgc2Vzc2lvbiBzZXRfYml0IHNldF9iaXRzIHNldHMKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHNoYXJlIHNpbXBsZSBzaW5jZSBzaXRlIHNpemUgc2tpcAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgc25hcHNob3Qgc29hcGhlYWRlciBzb21lIHNvcnRlZF9kYXRhIAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgc3FsY29kZSBzcWxpZCBzcWxzdGF0ZSBzdGFja2VyIHN0YWxlIHN0YXRlbWVudAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgc3RhdGlzdGljcyBzdGF0dXMgc3RvZ3JvdXAgc3RvcmUKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHN0cmlwIHN1YnBhZ2VzIHN1YnNjcmliZSBzdWJzY3JpcHRpb24KLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHN1YnRyYW5zYWN0aW9uIHN5bmNocm9uaXphdGlvbgorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgc25hcHNob3Qgc29hcGhlYWRlciBzb2FwX2hlYWRlciBzcGxpdCBzb21lIHNvcnRlZF9kYXRhCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBzcWxjb2RlIHNxbGlkIHNxbGZsYWdnZXIgc3Fsc3RhdGUgc3FydCBzcXVhcmUKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHN0YWNrZXIgc3RhbGUgc3RhdGVtZW50IHN0YXRpc3RpY3Mgc3RhdHVzIHN0ZGRldl9wb3Agc3RkZGV2X3NhbXAKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHN0ZW1tZXIgc3RvZ3JvdXAgc3RvcGxpc3Qgc3RvcmUKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHN0cmlwIHN0cmlwZXNpemVrYiBzdHJpcGluZyBzdWJwYWdlcyBzdWJzY3JpYmUgc3Vic2NyaXB0aW9uCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBzdWJ0cmFuc2FjdGlvbiBzdXNlcl9pZCBzdXNlcl9uYW1lIHN5bmNocm9uaXphdGlvbgogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgc3ludGF4X2Vycm9yIHRhYmxlIHRhYmxvY2sKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHRhYmxvY2t4IHRiIHRlbXAgdGVtcGxhdGUgdGVtcG9yYXJ5IHRoZW4KLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHRpZXMgdGltZXpvbmUgdG8gdG9wIHRyYWNpbmcKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uYWwgdHJpZXMgdHJ1ZSAKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHRhYmxvY2t4IHRiIHRlbXAgdGVtcGxhdGUgdGVtcG9yYXJ5IHRlcm0gdGhlbgorc3luIGtleXdvcmQgc3FsS2V5d29yZAkgdGllcyB0aW1lem9uZSB0byB0b19jaGFyIHRvX25jaGFyIHRvcCB0cmFjZWRfcGxhbiB0cmFjaW5nCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB0cmFuc2ZlciB0cmFuc2FjdGlvbiB0cmFuc2FjdGlvbmFsIHRyaWVzIHRydWUKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHRzZXF1YWwgdHlwZSB0dW5lIHVuY29tbWl0dGVkIHVuY29uZGl0aW9uYWxseQotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgdW5lbmZvcmNlZCB1bmlxdWUgdW5pb24gdW5rbm93biB1bmxvYWQgCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB1cGRhdGluZyB1cGRsb2NrIHVwZ3JhZGUgdXBsb2FkIHVzZSB1c2VyCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB1bmVuZm9yY2VkIHVuaWNvZGUgdW5pcXVlIHVuaW9uIHVuaXN0ciB1bmtub3duIHVubGltaXRlZCB1bmxvYWQKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHVucGFydGl0aW9uIHVucXVpZXNjZSB1cGRhdGV0aW1lIHVwZGF0aW5nIHVwZGxvY2sgdXBncmFkZSB1cGxvYWQKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHVwcGVyIHVzZSB1c2VyCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB1c2luZyB1dGMgdXRpbGl0aWVzIHZhbGlkcHJvYwogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgdmFsdWUgdmFsdWVzIHZhcmNoYXIgdmFyaWFibGUKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHZhcnlpbmcgdmNhdCB2ZXJpZnkgdmlldyB2aXJ0dWFsIHdhaXQgCi1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB3YXJuaW5nIHdlYiB3aGVuIHdoZXJlIHdpbmRvdyB3aXRoIHdpdGhfYXV0bworc3luIGtleXdvcmQgc3FsS2V5d29yZAkgdmFyeWluZyB2YXJfcG9wIHZhcl9zYW1wIHZjYXQgdmVyaWZ5IHZlcnNpb25zIHZpZXcgdmlydHVhbCB3YWl0CitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB3YXJuaW5nIHdkIHdlYiB3aGVuIHdoZXJlIHdpbmRvdyB3aXRoIHdpdGhfYXV0bwogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgd2l0aF9hdXRvIHdpdGhfY3ViZSB3aXRoX3JvbGx1cCB3aXRob3V0Ci1zeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB3aXRoX2xwYXJlbiB3aXRoaW4gd29yZCB3b3JrIHdvcmtsb2FkIHdyaXRlZmlsZSAKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHdyaXRlcnMgd3JpdGVzZXJ2ZXIgeGxvY2sgemVyb3MKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIHdpdGhfbHBhcmVuIHdpdGhpbiB3b3JkIHdvcmsgd29ya2xvYWQgd3JpdGUgd3JpdGVmaWxlCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSB3cml0ZWNsaWVudGZpbGUgd3JpdGVyIHdyaXRlcnMgd3JpdGVzZXJ2ZXIgeGxvY2sgemVyb3MKICIgWE1MIGZ1bmN0aW9uIHN1cHBvcnQKLXN5biBrZXl3b3JkIHNxbEZ1bmN0aW9uCSBvcGVueG1sIHhtbGVsZW1lbnQgeG1sZm9yZXN0IHhtbGdlbiB4bWxjb25jYXQgeG1sYWdnIAotc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIHhtbGF0dHJpYnV0ZXMgCitzeW4ga2V5d29yZCBzcWxGdW5jdGlvbgkgb3BlbnhtbCB4bWxlbGVtZW50IHhtbGZvcmVzdCB4bWxnZW4geG1sY29uY2F0IHhtbGFnZworc3luIGtleXdvcmQgc3FsRnVuY3Rpb24JIHhtbGF0dHJpYnV0ZXMKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJhdyBhdXRvIGVsZW1lbnRzIGV4cGxpY2l0CiAiIEhUVFAgc3VwcG9ydAotc3luIGtleXdvcmQgc3FsS2V5d29yZAkgYXV0aG9yaXphdGlvbiBzZWN1cmUgdXJsIHNlcnZpY2UKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGF1dGhvcml6YXRpb24gc2VjdXJlIHVybCBzZXJ2aWNlIG5leHRfc29hcF9oZWFkZXIKICIgSFRUUCA5LjAuMiBuZXcgcHJvY2VkdXJlIGtleXdvcmRzCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBuYW1lc3BhY2UgY2VydGlmaWNhdGUgY2xpZW50cG9ydCBwcm94eQogIiBPTEFQIHN1cHBvcnQgOS4wLjAKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvdmFyX3BvcCBjb3Zhcl9zYW1wIGNvcnIgcmVncl9zbG9wZSByZWdyX2ludGVyY2VwdCAKK3N5biBrZXl3b3JkIHNxbEtleXdvcmQJIGNvdmFyX3BvcCBjb3Zhcl9zYW1wIGNvcnIgcmVncl9zbG9wZSByZWdyX2ludGVyY2VwdAogc3luIGtleXdvcmQgc3FsS2V5d29yZAkgcmVncl9jb3VudCByZWdyX3IyIHJlZ3JfYXZneCByZWdyX2F2Z3kKIHN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHJlZ3Jfc3h4IHJlZ3Jfc3l5IHJlZ3Jfc3h5CiAKICIgQWx0ZXJuYXRlIGtleXdvcmRzCiBzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBjaGFyYWN0ZXIgZGVjIG9wdGlvbnMgcHJvYyByZWZlcmVuY2UKLXN5biBrZXl3b3JkIHNxbEtleXdvcmQJIHN1YnRyYW5zIHRyYW4gc3luIGtleXdvcmQgCitzeW4ga2V5d29yZCBzcWxLZXl3b3JkCSBzdWJ0cmFucyB0cmFuIHN5biBrZXl3b3JkCiAKIAogc3luIGtleXdvcmQgc3FsT3BlcmF0b3IJIGluIGFueSBzb21lIGFsbCBiZXR3ZWVuIGV4aXN0cwotc3luIGtleXdvcmQgc3FsT3BlcmF0b3IJIGxpa2UgZXNjYXBlIG5vdCBpcyBhbmQgb3IgCitzeW4ga2V5d29yZCBzcWxPcGVyYXRvcgkgbGlrZSBlc2NhcGUgbm90IGlzIGFuZCBvcgogc3luIGtleXdvcmQgc3FsT3BlcmF0b3IgIGludGVyc2VjdCBtaW51cwogc3luIGtleXdvcmQgc3FsT3BlcmF0b3IgIHByaW9yIGRpc3RpbmN0CiAKQEAgLTQ5Niw0MyArNTExLDM4IEBACiAKIAogc3luIGtleXdvcmQgc3FsVHlwZQkgY2hhciBsb25nIHZhcmNoYXIgdGV4dAotc3luIGtleXdvcmQgc3FsVHlwZQkgYmlnaW50IGRlY2ltYWwgZG91YmxlIGZsb2F0IGludCBpbnRlZ2VyIG51bWVyaWMgCitzeW4ga2V5d29yZCBzcWxUeXBlCSBiaWdpbnQgZGVjaW1hbCBkb3VibGUgZmxvYXQgaW50IGludGVnZXIgbnVtZXJpYwogc3luIGtleXdvcmQgc3FsVHlwZQkgc21hbGxpbnQgdGlueWludCByZWFsCiBzeW4ga2V5d29yZCBzcWxUeXBlCSBtb25leSBzbWFsbG1vbmV5Ci1zeW4ga2V5d29yZCBzcWxUeXBlCSBiaXQgCi1zeW4ga2V5d29yZCBzcWxUeXBlCSBkYXRlIGRhdGV0aW1lIHNtYWxsZGF0ZSB0aW1lIHRpbWVzdGFtcCAKK3N5biBrZXl3b3JkIHNxbFR5cGUJIGJpdAorc3luIGtleXdvcmQgc3FsVHlwZQkgZGF0ZSBkYXRldGltZSBzbWFsbGRhdGUgdGltZSB0aW1lc3RhbXAKIHN5biBrZXl3b3JkIHNxbFR5cGUJIGJpbmFyeSBpbWFnZSB2YXJiaW5hcnkgdW5pcXVlaWRlbnRpZmllcgogc3luIGtleXdvcmQgc3FsVHlwZQkgeG1sIHVuc2lnbmVkCiAiIE5ldyB0eXBlcyAxMC4wLjAKIHN5biBrZXl3b3JkIHNxbFR5cGUJIHZhcmJpdCBuY2hhciBudmFyY2hhcgogCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQWxsb3dfbnVsbHNfYnlfZGVmYXVsdAorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEFsbG93X3JlYWRfY2xpZW50X2ZpbGUKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBBbGxvd19zbmFwc2hvdF9pc29sYXRpb24KK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBBbGxvd193cml0ZV9jbGllbnRfZmlsZQogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEFuc2lfYmxhbmtzCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQW5zaV9jbG9zZV9jdXJzb3JzX29uX3JvbGxiYWNrCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQW5zaV9pbnRlZ2VyX292ZXJmbG93CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQW5zaV9wZXJtaXNzaW9ucworc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEFuc2lfc3Vic3RyaW5nCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQW5zaV91cGRhdGVfY29uc3RyYWludHMKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBBbnNpbnVsbAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEFzc3VtZV9kaXN0aW5jdF9zZXJ2ZXJzCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQXVkaXRpbmcKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBBdWRpdGluZ19vcHRpb25zCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQXV0b19jb21taXQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBBdXRvX3JlZmV0Y2gKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBBdXRvbWF0aWNfdGltZXN0YW1wCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQmFja2dyb3VuZF9wcmlvcml0eQotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEJlbGwKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBCbG9iX3RocmVzaG9sZAogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEJsb2NraW5nCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQmxvY2tpbmdfdGltZW91dAogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIENoYWluZWQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBDaGFyX09FTV9UcmFuc2xhdGlvbgogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIENoZWNrcG9pbnRfdGltZQogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIENpc19vcHRpb24KIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBDaXNfcm93c2V0X3NpemUKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBDbG9zZV9vbl9lbmR0cmFucwotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIENvbW1hbmRfZGVsaW1pdGVyCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQ29tbWl0X29uX2V4aXQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBDb21wcmVzc2lvbgorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIENvbGxlY3Rfc3RhdGlzdGljc19vbl9kbWxfdXBkYXRlcworc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIENvbm5fYXVkaXRpbmcKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBDb25uZWN0aW9uX2F1dGhlbnRpY2F0aW9uCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQ29udGludWVfYWZ0ZXJfcmFpc2Vycm9yCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgQ29udmVyc2lvbl9lcnJvcgpAQCAtNTQzLDEyNSArNTUzLDkwIEBACiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRGF0ZV9vcmRlcgogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIERlYnVnX21lc3NhZ2VzCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRGVkaWNhdGVkX3Rhc2sKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBEZWZhdWx0X2Ric3BhY2UKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBEZWZhdWx0X3RpbWVzdGFtcF9pbmNyZW1lbnQKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBEZWxheWVkX2NvbW1pdF90aW1lb3V0CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRGVsYXllZF9jb21taXRzCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRGVsZXRlX29sZF9sb2dzCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRGVzY3JpYmVfSmF2YV9Gb3JtYXQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBEaXZpZGVfYnlfemVyb19lcnJvcgotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEVjaG8KIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBFc2NhcGVfY2hhcmFjdGVyCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRXhjbHVkZV9vcGVyYXRvcnMKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBFeHRlbmRlZF9qb2luX3N5bnRheAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEV4dGVybmFsX3JlbW90ZV9vcHRpb25zCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRmlyZV90cmlnZ2Vycwogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEZpcnN0X2RheV9vZl93ZWVrCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRmxvYXRfYXNfZG91YmxlCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgRm9yX3htbF9udWxsX3RyZWF0bWVudAogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEZvcmNlX3ZpZXdfY3JlYXRpb24KIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBHbG9iYWxfZGF0YWJhc2VfaWQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBIZWFkaW5ncwotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIElucHV0X2Zvcm1hdAorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEh0dHBfc2Vzc2lvbl90aW1lb3V0CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgSW50ZWdyYXRlZF9zZXJ2ZXJfbmFtZQogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIElzb2xhdGlvbl9sZXZlbAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIElTUUxfY29tbWFuZF90aW1pbmcKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBJU1FMX2VzY2FwZV9jaGFyYWN0ZXIKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBJU1FMX2ZpZWxkX3NlcGFyYXRvcgotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIElTUUxfbG9nCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgSVNRTF9wbGFuCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgSVNRTF9wbGFuX2N1cnNvcl9zZW5zaXRpdml0eQotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIElTUUxfcGxhbl9jdXJzb3Jfd3JpdGFiaWxpdHkKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBJU1FMX3F1b3RlCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgSmF2YV9oZWFwX3NpemUKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBKYXZhX2lucHV0X291dHB1dAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEphdmFfbmFtZXNwYWNlX3NpemUKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBKYXZhX3BhZ2VfYnVmZmVyX3NpemUKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBKYXZhX2xvY2F0aW9uCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgSmF2YV9tYWluX3VzZXJpZAorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIEphdmFfdm1fb3B0aW9ucwogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIExvY2tfcmVqZWN0ZWRfcm93cwogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIExvZ19kZWFkbG9ja3MKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBMb2dfZGV0YWlsZWRfcGxhbnMKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBMb2dfbWF4X3JlcXVlc3RzCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTG9naW5fbW9kZQogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIExvZ2luX3Byb2NlZHVyZQorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE1hdGVyaWFsaXplZF92aWV3X29wdGltaXphdGlvbgorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE1heF9jbGllbnRfc3RhdGVtZW50c19jYWNoZWQKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBNYXhfY3Vyc29yX2NvdW50CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTWF4X2hhc2hfc2l6ZQogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE1heF9wbGFuc19jYWNoZWQKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBNYXhfcHJpb3JpdHkKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBNYXhfcXVlcnlfdGFza3MKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBNYXhfcmVjdXJzaXZlX2l0ZXJhdGlvbnMKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBNYXhfc3RhdGVtZW50X2NvdW50Ci1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTWF4X3dvcmtfdGFibGVfaGFzaF9zaXplCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTWF4X3RlbXBfc3BhY2UKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBNaW5fcGFzc3dvcmRfbGVuZ3RoCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTmVhcmVzdF9jZW50dXJ5CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTm9uX2tleXdvcmRzCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgTlVMTFMKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBPREJDX2Rlc2NyaWJlX2JpbmFyeV9hc192YXJiaW5hcnkKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBPREJDX2Rpc3Rpbmd1aXNoX2NoYXJfYW5kX3ZhcmNoYXIKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBPbl9DaGFyc2V0X2NvbnZlcnNpb25fZmFpbHVyZQotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE9uX2Vycm9yCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgT2RiY19kZXNjcmliZV9iaW5hcnlfYXNfdmFyYmluYXJ5CitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgT2RiY19kaXN0aW5ndWlzaF9jaGFyX2FuZF92YXJjaGFyCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgT2VtX3N0cmluZworc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE9uX2NoYXJzZXRfY29udmVyc2lvbl9mYWlsdXJlCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgT25fdHNxbF9lcnJvcgotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE9wdGltaXN0aWNfd2FpdF9mb3JfY29tbWl0CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgT3B0aW1pemF0aW9uX2dvYWwKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBPcHRpbWl6YXRpb25fbGV2ZWwKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBPcHRpbWl6YXRpb25fbG9nZ2luZwogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE9wdGltaXphdGlvbl93b3JrbG9hZAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIE91dHB1dF9mb3JtYXQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBPdXRwdXRfbGVuZ3RoCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgT3V0cHV0X251bGxzCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUGVyY2VudF9hc19jb21tZW50CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUGlubmVkX2N1cnNvcl9wZXJjZW50X29mX2NhY2hlCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUG9zdF9sb2dpbl9wcm9jZWR1cmUKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBQcmVjaXNpb24KIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBQcmVmZXRjaAogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFByZXNlcnZlX3NvdXJjZV9mb3JtYXQKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBQcmV2ZW50X2FydGljbGVfcGtleV91cGRhdGUKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBRdWFsaWZ5X293bmVycwotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFF1ZXJ5X3BsYW5fb25fb3Blbgotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFF1aWV0Ci1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUXVvdGVfYWxsX2lkZW50aWZpZXJzCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUHJpb3JpdHkKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBRdWVyeV9tZW1fdGltZW91dAogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFF1b3RlZF9pZGVudGlmaWVyCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUmVhZF9wYXN0X2RlbGV0ZWQKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBSZWNvdmVyeV90aW1lCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUmVtb3RlX2lkbGVfdGltZW91dAogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFJlcGxpY2F0ZV9hbGwKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBSZXBsaWNhdGlvbl9lcnJvcgotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFJlcGxpY2F0aW9uX2Vycm9yX3BpZWNlCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUmVxdWVzdF90aW1lb3V0CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgUmV0dXJuX2RhdGVfdGltZV9hc19zdHJpbmcKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBSZXR1cm5famF2YV9hc19zdHJpbmcKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBSSV9UcmlnZ2VyX3RpbWUKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBSb2xsYmFja19vbl9kZWFkbG9jawogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFJvd19jb3VudHMKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTYXZlX3JlbW90ZV9wYXNzd29yZHMKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTY2FsZQotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFNjcmVlbl9mb3JtYXQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTb3J0X0NvbGxhdGlvbgotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFNRTF9mbGFnZ2VyX2Vycm9yX2xldmVsCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU1FMX2ZsYWdnZXJfd2FybmluZ19sZXZlbAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFNRTENvbm5lY3QKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTUUxTdGFydAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFNSX0RhdGVfRm9ybWF0Ci1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU1JfVGltZV9Gb3JtYXQKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTUl9UaW1lU3RhbXBfRm9ybWF0Ci1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU3RhdGlzdGljcworc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFNlY3VyZV9mZWF0dXJlX2tleQorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFNvcnRfY29sbGF0aW9uCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU3FsX2ZsYWdnZXJfZXJyb3JfbGV2ZWwKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTcWxfZmxhZ2dlcl93YXJuaW5nX2xldmVsCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU3RyaW5nX3J0cnVuY2F0aW9uCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU3Vic2NyaWJlX2J5X3JlbW90ZQogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFN1YnN1bWVfcm93X2xvY2tzCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgU3VwcHJlc3NfVERTX2RlYnVnZ2luZwotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFREU19FbXB0eV9zdHJpbmdfaXNfbnVsbAorc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFN1cHByZXNzX3Rkc19kZWJ1Z2dpbmcKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBTeW5jaHJvbml6ZV9taXJyb3Jfb25fY29tbWl0CitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVGRzX2VtcHR5X3N0cmluZ19pc19udWxsCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVGVtcF9zcGFjZV9saW1pdF9jaGVjawotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFRocmVhZF9jb3VudAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFRocmVhZF9zdGFjawotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFRocmVhZF9zd2Fwcwogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFRpbWVfZm9ybWF0CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVGltZV96b25lX2FkanVzdG1lbnQKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBUaW1lc3RhbXBfZm9ybWF0Ci1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVHJ1bmNhdGVfZGF0ZV92YWx1ZXMKIHN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBUcnVuY2F0ZV90aW1lc3RhbXBfdmFsdWVzCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVHJ1bmNhdGVfd2l0aF9hdXRvX2NvbW1pdAotc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFRydW5jYXRpb25fbGVuZ3RoCi1zeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVHNxbF9oZXhfY29uc3RhbnQKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBUc3FsX291dGVyX2pvaW5zCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVHNxbF92YXJpYWJsZXMKK3N5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBVcGRhdGFibGVfc3RhdGVtZW50X2lzb2xhdGlvbgogc3luIGtleXdvcmQgc3FsT3B0aW9uICAgIFVwZGF0ZV9zdGF0aXN0aWNzCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVXBncmFkZV9kYXRhYmFzZV9jYXBhYmlsaXR5CiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVXNlcl9lc3RpbWF0ZXMKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBWZXJpZnlfYWxsX2NvbHVtbnMKLXN5biBrZXl3b3JkIHNxbE9wdGlvbiAgICBWZXJpZnlfdGhyZXNob2xkCitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgVmVyaWZ5X3Bhc3N3b3JkX2Z1bmN0aW9uCiBzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgV2FpdF9mb3JfY29tbWl0CitzeW4ga2V5d29yZCBzcWxPcHRpb24gICAgV2Vic2VydmljZV9uYW1lc3BhY2VfaG9zdAogCiAiIFN0cmluZ3MgYW5kIGNoYXJhY3RlcnM6CiBzeW4gcmVnaW9uIHNxbFN0cmluZwkJc3RhcnQ9KyIrICAgIGVuZD0rIisgY29udGFpbnM9QFNwZWxsCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zc2hjb25maWcudmltIGIvcnVudGltZS9zeW50YXgvc3NoY29uZmlnLnZpbQppbmRleCA0NGYyM2Q3Li40NTk0N2YyIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zc2hjb25maWcudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3NzaGNvbmZpZy52aW0KQEAgLTEsMjMgKzEsMjEgQEAKICIgVmltIHN5bnRheCBmaWxlCi0iIFRoaXMgaXMgYSBHRU5FUkFURUQgRklMRS4gUGxlYXNlIGFsd2F5cyByZWZlciB0byBzb3VyY2UgZmlsZSBhdCB0aGUgVVJJIGJlbG93LgotIiBMYW5ndWFnZTogT3BlblNTSCBzZXJ2ZXIgY29uZmlndXJhdGlvbiBmaWxlIChzc2hfY29uZmlnKQotIiBNYWludGFpbmVyOiBEYXZpZCBOZVx2e2N9YXMgKFlldGkpIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KLSIgTGFzdCBDaGFuZ2U6IDIwMDYtMDMtMDUKLSIgVVJMOiBodHRwOi8vdHJpZmljLmF0aC5jeC9GdHAvdmltL3N5bnRheC9zc2hjb25maWcudmltCisiIExhbmd1YWdlOiBPcGVuU1NIIGNsaWVudCBjb25maWd1cmF0aW9uIGZpbGUgKHNzaF9jb25maWcpCisiIE1haW50YWluZXI6IERhdmlkIE5lY2FzIChZZXRpKSA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CisiIExhc3QgQ2hhbmdlOiAyMDA5LTA3LTA5CiAKICIgU2V0dXAKIGlmIHZlcnNpb24gPj0gNjAwCi0JaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKLQkJZmluaXNoCi0JZW5kaWYKKyAgaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKKyAgZW5kaWYKIGVsc2UKLQlzeW50YXggY2xlYXIKKyAgc3ludGF4IGNsZWFyCiBlbmRpZgogCiBpZiB2ZXJzaW9uID49IDYwMAotCXNldGxvY2FsIGlza2V5d29yZD1fLC0sYS16LEEtWiw0OC01NworICBzZXRsb2NhbCBpc2tleXdvcmQ9XywtLGEteixBLVosNDgtNTcKIGVsc2UKLQlzZXQgaXNrZXl3b3JkPV8sLSxhLXosQS1aLDQ4LTU3CisgIHNldCBpc2tleXdvcmQ9XywtLGEteixBLVosNDgtNTcKIGVuZGlmCiAKIHN5biBjYXNlIGlnbm9yZQpAQCAtMjgsMTkgKzI2LDIxIEBACiAKICIgQ29uc3RhbnRzCiBzeW4ga2V5d29yZCBzc2hjb25maWdZZXNObyB5ZXMgbm8gYXNrCi1zeW4ga2V5d29yZCBzc2hjb25maWdDaXBoZXIgYmxvd2Zpc2ggZGVzIDNkZXMKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ1llc05vIGFueSBhdXRvCiBzeW4ga2V5d29yZCBzc2hjb25maWdDaXBoZXIgYWVzMTI4LWNiYyAzZGVzLWNiYyBibG93ZmlzaC1jYmMgY2FzdDEyOC1jYmMKIHN5biBrZXl3b3JkIHNzaGNvbmZpZ0NpcGhlciBhZXMxOTItY2JjIGFlczI1Ni1jYmMgYWVzMTI4LWN0ciBhZXMyNTYtY3RyCiBzeW4ga2V5d29yZCBzc2hjb25maWdDaXBoZXIgYXJjZm91ciBhcmNmb3VyMTI4IGFyY2ZvdXIyNTYgY2FzdDEyOC1jYmMKIHN5biBrZXl3b3JkIHNzaGNvbmZpZ01BQyBobWFjLW1kNSBobWFjLXNoYTEgaG1hYy1yaXBlbWQxNjAgaG1hYy1zaGExLTk2CiBzeW4ga2V5d29yZCBzc2hjb25maWdNQUMgaG1hYy1tZDUtOTYKK3N5biBtYXRjaCBzc2hjb25maWdNQUMgIlw8dW1hYy02NEBvcGVuc3NoXC5jb21cPiIKIHN5biBrZXl3b3JkIHNzaGNvbmZpZ0hvc3RLZXlBbGcgc3NoLXJzYSBzc2gtZHNzCiBzeW4ga2V5d29yZCBzc2hjb25maWdQcmVmZXJyZWRBdXRoIGhvc3RiYXNlZCBwdWJsaWNrZXkgcGFzc3dvcmQKIHN5biBrZXl3b3JkIHNzaGNvbmZpZ1ByZWZlcnJlZEF1dGgga2V5Ym9hcmQtaW50ZXJhY3RpdmUKIHN5biBrZXl3b3JkIHNzaGNvbmZpZ0xvZ0xldmVsIFFVSUVUIEZBVEFMIEVSUk9SIElORk8gVkVSQk9TRQogc3luIGtleXdvcmQgc3NoY29uZmlnTG9nTGV2ZWwgREVCVUcgREVCVUcxIERFQlVHMiBERUJVRzMKLXN5biBrZXl3b3JkIHNzaGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IERBRU1PTiBVU0VSIEFVVEggTE9DQUwwIExPQ0FMMSBMT0NBTDIKLXN5biBrZXl3b3JkIHNzaGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IExPQ0FMMyBMT0NBTDQgTE9DQUw1IExPQ0FMNiBMT0NBTDcKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IERBRU1PTiBVU0VSIEFVVEggQVVUSFBSSVYgTE9DQUwwIExPQ0FMMQorc3luIGtleXdvcmQgc3NoY29uZmlnU3lzTG9nRmFjaWxpdHkgTE9DQUwyIExPQ0FMMyBMT0NBTDQgTE9DQUw1IExPQ0FMNiBMT0NBTDcKK3N5biBtYXRjaCBzc2hjb25maWdWYXIgIiVbcmhwbGR1bl1cPiIKIHN5biBtYXRjaCBzc2hjb25maWdTcGVjaWFsICJbKj9dIgogc3luIG1hdGNoIHNzaGNvbmZpZ051bWJlciAiXGRcKyIKIHN5biBtYXRjaCBzc2hjb25maWdIb3N0UG9ydCAiXDxcKFxkXHsxLDN9XC5cKVx7M31cZFx7MSwzfVwoOlxkXCtcKVw/XD4iCkBAIC00OSw1NyArNDksNjggQEAKIAogIiBLZXl3b3Jkcwogc3luIGtleXdvcmQgc3NoY29uZmlnSG9zdFNlY3QgSG9zdAotc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBBZGRyZXNzRmFtaWx5IEJhdGNoTW9kZSBCaW5kQWRkcmVzcworc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBBZGRyZXNzRmFtaWx5CitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEJhdGNoTW9kZSBCaW5kQWRkcmVzcwogc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBDaGFsbGVuZ2VSZXNwb25zZUF1dGhlbnRpY2F0aW9uIENoZWNrSG9zdElQCiBzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIENpcGhlciBDaXBoZXJzIENsZWFyQWxsRm9yd2FyZGluZ3MKIHN5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgQ29tcHJlc3Npb24gQ29tcHJlc3Npb25MZXZlbCBDb25uZWN0VGltZW91dAogc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBDb25uZWN0aW9uQXR0ZW1wdHMgQ29udHJvbE1hc3Rlcgotc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBDb250cm9sUGF0aCBEeW5hbWljRm9yd2FyZCBFbmFibGVTU0hLZXlzaWduCi1zeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEVzY2FwZUNoYXIgRm9yd2FyZEFnZW50IEZvcndhcmRYMTEKLXN5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgRm9yd2FyZFgxMVRydXN0ZWQgR1NTQVBJQXV0aGVudGljYXRpb24KK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgQ29udHJvbFBhdGggRHluYW1pY0ZvcndhcmQKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgRW5hYmxlU1NIS2V5c2lnbiBFc2NhcGVDaGFyIEV4aXRPbkZvcndhcmRGYWlsdXJlCitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEZvcndhcmRBZ2VudCBGb3J3YXJkWDExCitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEZvcndhcmRYMTFUcnVzdGVkCitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEdTU0FQSUF1dGhlbnRpY2F0aW9uCiBzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEdTU0FQSURlbGVnYXRlQ3JlZGVudGlhbHMgR2F0ZXdheVBvcnRzCi1zeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEdsb2JhbEtub3duSG9zdHNGaWxlIEhvc3RLZXlBbGdvcml0aG1zCi1zeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEhhc2hLbm93bkhvc3RzIEtiZEludGVyYWN0aXZlRGV2aWNlcworc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBHbG9iYWxLbm93bkhvc3RzRmlsZQorc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBIb3N0S2V5QWxnb3JpdGhtcyBIYXNoS25vd25Ib3N0cwogc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBIb3N0S2V5QWxpYXMgSG9zdE5hbWUgSG9zdGJhc2VkQXV0aGVudGljYXRpb24KLXN5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgSWRlbnRpdGllc09ubHkgSWRlbnRpdHlGaWxlIExvY2FsRm9yd2FyZAotc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBMb2dMZXZlbCBNQUNzIE5vSG9zdEF1dGhlbnRpY2F0aW9uRm9yTG9jYWxob3N0Ci1zeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIE51bWJlck9mUGFzc3dvcmRQcm9tcHRzIFBhc3N3b3JkQXV0aGVudGljYXRpb24KK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgSWRlbnRpdGllc09ubHkgSWRlbnRpdHlGaWxlCitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIEtiZEludGVyYWN0aXZlQXV0aGVudGljYXRpb24gS2JkSW50ZXJhY3RpdmVEZXZpY2VzCitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIExvY2FsQ29tbWFuZCBMb2NhbEZvcndhcmQgTG9nTGV2ZWwKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgTUFDcworc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBOb0hvc3RBdXRoZW50aWNhdGlvbkZvckxvY2FsaG9zdAorc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBOdW1iZXJPZlBhc3N3b3JkUHJvbXB0cworc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBQYXNzd29yZEF1dGhlbnRpY2F0aW9uIFBlcm1pdExvY2FsQ29tbWFuZAogc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBQb3J0IFByZWZlcnJlZEF1dGhlbnRpY2F0aW9ucyBQcm90b2NvbAogc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBQcm94eUNvbW1hbmQgUHVia2V5QXV0aGVudGljYXRpb24KLXN5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgUlNBQXV0aGVudGljYXRpb24gUmVtb3RlRm9yd2FyZAotc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBSaG9zdHNBdXRoZW50aWNhdGlvbiBSaG9zdHNSU0FBdXRoZW50aWNhdGlvbgorc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBQZXJtaXRMb2NhbENvbW1hbmQKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgUlNBQXV0aGVudGljYXRpb24gUmVtb3RlRm9yd2FyZCBSZWtleUxpbWl0CitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIFJob3N0c1JTQUF1dGhlbnRpY2F0aW9uCiBzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIFNlbmRFbnYgU2VydmVyQWxpdmVDb3VudE1heCBTZXJ2ZXJBbGl2ZUludGVydmFsCiBzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIFNtYXJ0Y2FyZERldmljZSBTdHJpY3RIb3N0S2V5Q2hlY2tpbmcKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgVHVubmVsIFR1bm5lbERldmljZQogc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBUQ1BLZWVwQWxpdmUgVXNlUHJpdmlsZWdlZFBvcnQgVXNlcgotc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBVc2VyS25vd25Ib3N0c0ZpbGUgVmVyaWZ5SG9zdEtleUROUyBYQXV0aExvY2F0aW9uCitzeW4ga2V5d29yZCBzc2hjb25maWdLZXl3b3JkIFVzZXJLbm93bkhvc3RzRmlsZQorc3luIGtleXdvcmQgc3NoY29uZmlnS2V5d29yZCBWZXJpZnlIb3N0S2V5RE5TIFZpc3VhbEhvc3RLZXkKK3N5biBrZXl3b3JkIHNzaGNvbmZpZ0tleXdvcmQgWEF1dGhMb2NhdGlvbgogCiAiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcKIGlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9zc2hjb25maWdfc3ludGF4X2luaXRzIikKLQlpZiB2ZXJzaW9uIDwgNTA4Ci0JCWxldCBkaWRfc3NoY29uZmlnX3N5bnRheF9pbml0cyA9IDEKLQkJY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KLQllbHNlCi0JCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgotCWVuZGlmCisgIGlmIHZlcnNpb24gPCA1MDgKKyAgICBsZXQgZGlkX3NzaGNvbmZpZ19zeW50YXhfaW5pdHMgPSAxCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KKyAgZWxzZQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgorICBlbmRpZgogCi0JSGlMaW5rIHNzaGNvbmZpZ0NvbW1lbnQgQ29tbWVudAotCUhpTGluayBzc2hjb25maWdUb2RvIFRvZG8KLQlIaUxpbmsgc3NoY29uZmlnSG9zdFBvcnQgc3NoY29uZmlnQ29uc3RhbnQKLQlIaUxpbmsgc3NoY29uZmlnTnVtYmVyIHNzaGNvbmZpZ0NvbnN0YW50Ci0JSGlMaW5rIHNzaGNvbmZpZ0NvbnN0YW50IENvbnN0YW50Ci0JSGlMaW5rIHNzaGNvbmZpZ1llc05vIHNzaGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoY29uZmlnQ2lwaGVyIHNzaGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoY29uZmlnTUFDIHNzaGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoY29uZmlnSG9zdEtleUFsZyBzc2hjb25maWdFbnVtCi0JSGlMaW5rIHNzaGNvbmZpZ0xvZ0xldmVsIHNzaGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoY29uZmlnU3lzTG9nRmFjaWxpdHkgc3NoY29uZmlnRW51bQotCUhpTGluayBzc2hjb25maWdQcmVmZXJyZWRBdXRoIHNzaGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoY29uZmlnRW51bSBGdW5jdGlvbgotCUhpTGluayBzc2hjb25maWdTcGVjaWFsIFNwZWNpYWwKLQlIaUxpbmsgc3NoY29uZmlnS2V5d29yZCBLZXl3b3JkCi0JSGlMaW5rIHNzaGNvbmZpZ0hvc3RTZWN0IFR5cGUKLQlkZWxjb21tYW5kIEhpTGluaworICBIaUxpbmsgc3NoY29uZmlnQ29tbWVudCAgICAgICAgQ29tbWVudAorICBIaUxpbmsgc3NoY29uZmlnVG9kbyAgICAgICAgICAgVG9kbworICBIaUxpbmsgc3NoY29uZmlnSG9zdFBvcnQgICAgICAgc3NoY29uZmlnQ29uc3RhbnQKKyAgSGlMaW5rIHNzaGNvbmZpZ051bWJlciAgICAgICAgIHNzaGNvbmZpZ0NvbnN0YW50CisgIEhpTGluayBzc2hjb25maWdDb25zdGFudCAgICAgICBDb25zdGFudAorICBIaUxpbmsgc3NoY29uZmlnWWVzTm8gICAgICAgICAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnQ2lwaGVyICAgICAgICAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnTUFDICAgICAgICAgICAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnSG9zdEtleUFsZyAgICAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnTG9nTGV2ZWwgICAgICAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnU3lzTG9nRmFjaWxpdHkgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnUHJlZmVycmVkQXV0aCAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnVmFyICAgICAgICAgICAgc3NoY29uZmlnRW51bQorICBIaUxpbmsgc3NoY29uZmlnRW51bSAgICAgICAgICAgSWRlbnRpZmllcgorICBIaUxpbmsgc3NoY29uZmlnU3BlY2lhbCAgICAgICAgU3BlY2lhbAorICBIaUxpbmsgc3NoY29uZmlnS2V5d29yZCAgICAgICAgS2V5d29yZAorICBIaUxpbmsgc3NoY29uZmlnSG9zdFNlY3QgICAgICAgVHlwZQorICBkZWxjb21tYW5kIEhpTGluawogZW5kaWYKIAogbGV0IGI6Y3VycmVudF9zeW50YXggPSAic3NoY29uZmlnIgotCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zc2hkY29uZmlnLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NzaGRjb25maWcudmltCmluZGV4IDIyMTdlMDkuLjk3ZWU4ZjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3NzaGRjb25maWcudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3NzaGRjb25maWcudmltCkBAIC0xLDIzICsxLDIxIEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBUaGlzIGlzIGEgR0VORVJBVEVEIEZJTEUuIFBsZWFzZSBhbHdheXMgcmVmZXIgdG8gc291cmNlIGZpbGUgYXQgdGhlIFVSSSBiZWxvdy4KICIgTGFuZ3VhZ2U6IE9wZW5TU0ggc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZSAoc3NoZF9jb25maWcpCi0iIE1haW50YWluZXI6IERhdmlkIE5lXHZ7Y31hcyAoWWV0aSkgPHlldGlAcGh5c2ljcy5tdW5pLmN6PgotIiBMYXN0IENoYW5nZTogMjAwNi0wMy0wNQotIiBVUkw6IGh0dHA6Ly90cmlmaWMuYXRoLmN4L0Z0cC92aW0vc3ludGF4L3NzaGRjb25maWcudmltCisiIE1haW50YWluZXI6IERhdmlkIE5lY2FzIChZZXRpKSA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CisiIExhc3QgQ2hhbmdlOiAyMDA5LTA3LTA5CiAKICIgU2V0dXAKIGlmIHZlcnNpb24gPj0gNjAwCi0JaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKLQkJZmluaXNoCi0JZW5kaWYKKyAgaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKKyAgZW5kaWYKIGVsc2UKLQlzeW50YXggY2xlYXIKKyAgc3ludGF4IGNsZWFyCiBlbmRpZgogCiBpZiB2ZXJzaW9uID49IDYwMAotCXNldGxvY2FsIGlza2V5d29yZD1fLC0sYS16LEEtWiw0OC01NworICBzZXRsb2NhbCBpc2tleXdvcmQ9XywtLGEteixBLVosNDgtNTcKIGVsc2UKLQlzZXQgaXNrZXl3b3JkPV8sLSxhLXosQS1aLDQ4LTU3CisgIHNldCBpc2tleXdvcmQ9XywtLGEteixBLVosNDgtNTcKIGVuZGlmCiAKIHN5biBjYXNlIGlnbm9yZQpAQCAtMjcsNzggKzI1LDg3IEBACiBzeW4ga2V5d29yZCBzc2hkY29uZmlnVG9kbyBUT0RPIEZJWE1FIE5PVCBjb250YWluZWQKIAogIiBDb25zdGFudHMKLXN5biBrZXl3b3JkIHNzaGRjb25maWdZZXNObyB5ZXMgbm8KK3N5biBrZXl3b3JkIHNzaGRjb25maWdZZXNObyB5ZXMgbm8gbm9uZQorc3luIGtleXdvcmQgc3NoZGNvbmZpZ0FkZHJlc3NGYW1pbHkgYW55IGluZXQgaW5ldDYKIHN5biBrZXl3b3JkIHNzaGRjb25maWdDaXBoZXIgYWVzMTI4LWNiYyAzZGVzLWNiYyBibG93ZmlzaC1jYmMgY2FzdDEyOC1jYmMKIHN5biBrZXl3b3JkIHNzaGRjb25maWdDaXBoZXIgYWVzMTkyLWNiYyBhZXMyNTYtY2JjIGFlczEyOC1jdHIgYWVzMjU2LWN0cgogc3luIGtleXdvcmQgc3NoZGNvbmZpZ0NpcGhlciBhcmNmb3VyIGFyY2ZvdXIxMjggYXJjZm91cjI1NiBjYXN0MTI4LWNiYwogc3luIGtleXdvcmQgc3NoZGNvbmZpZ01BQyBobWFjLW1kNSBobWFjLXNoYTEgaG1hYy1yaXBlbWQxNjAgaG1hYy1zaGExLTk2CiBzeW4ga2V5d29yZCBzc2hkY29uZmlnTUFDIGhtYWMtbWQ1LTk2CitzeW4gbWF0Y2ggc3NoZGNvbmZpZ01BQyAiXDx1bWFjLTY0QG9wZW5zc2hcLmNvbVw+Igogc3luIGtleXdvcmQgc3NoZGNvbmZpZ1Jvb3RMb2dpbiB3aXRob3V0LXBhc3N3b3JkIGZvcmNlZC1jb21tYW5kcy1vbmx5CiBzeW4ga2V5d29yZCBzc2hkY29uZmlnTG9nTGV2ZWwgUVVJRVQgRkFUQUwgRVJST1IgSU5GTyBWRVJCT1NFCiBzeW4ga2V5d29yZCBzc2hkY29uZmlnTG9nTGV2ZWwgREVCVUcgREVCVUcxIERFQlVHMiBERUJVRzMKLXN5biBrZXl3b3JkIHNzaGRjb25maWdTeXNMb2dGYWNpbGl0eSBEQUVNT04gVVNFUiBBVVRIIExPQ0FMMCBMT0NBTDEgTE9DQUwyCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnU3lzTG9nRmFjaWxpdHkgTE9DQUwzIExPQ0FMNCBMT0NBTDUgTE9DQUw2IExPQ0FMNworc3luIGtleXdvcmQgc3NoZGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IERBRU1PTiBVU0VSIEFVVEggQVVUSFBSSVYgTE9DQUwwIExPQ0FMMQorc3luIGtleXdvcmQgc3NoZGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IExPQ0FMMiBMT0NBTDMgTE9DQUw0IExPQ0FMNSBMT0NBTDYgTE9DQUw3CiBzeW4gbWF0Y2ggc3NoZGNvbmZpZ1NwZWNpYWwgIlsqP10iCiBzeW4gbWF0Y2ggc3NoZGNvbmZpZ051bWJlciAiXGRcKyIKIHN5biBtYXRjaCBzc2hkY29uZmlnSG9zdFBvcnQgIlw8XChcZFx7MSwzfVwuXClcezN9XGRcezEsM31cKDpcZFwrXClcP1w+Igogc3luIG1hdGNoIHNzaGRjb25maWdIb3N0UG9ydCAiXDxcKFstYS16QS1aMC05XVwrXC5cKVwrWy1hLXpBLVowLTldXHsyLH1cKDpcZFwrXClcP1w+IgorIiBGSVhNRTogdGhpcyBtYXRjaGVzIHF1aXRlIGEgZmV3IHRoaW5ncyB3aGljaCBhcmUgTk9UIHZhbGlkIElQdjYgYWRkcmVzc2VzCiBzeW4gbWF0Y2ggc3NoZGNvbmZpZ0hvc3RQb3J0ICJcPFwoXHhceyw0fTpcKVwrXHhceyw0fTpcZFwrXD4iCiBzeW4gbWF0Y2ggc3NoZGNvbmZpZ1RpbWUgIlw8XChcZFwrW3NTbU1oSGREd1ddXClcK1w+IgogCiAiIEtleXdvcmRzCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBBY2NlcHRFbnYgQWRkcmVzc0ZhbWlseQorc3luIGtleXdvcmQgc3NoZGNvbmZpZ01hdGNoIEhvc3QgVXNlciBHcm91cCBBZGRyZXNzCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBBY2NlcHRFbnYgQWRkcmVzc0ZhbWlseSBBbGxvd0FnZW50Rm9yd2FyZGluZwogc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgQWxsb3dHcm91cHMgQWxsb3dUY3BGb3J3YXJkaW5nCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBBbGxvd1VzZXJzIEF1dGhvcml6ZWRLZXlzRmlsZSBCYW5uZXIKLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIENoYWxsZW5nZVJlc3BvbnNlQXV0aGVudGljYXRpb24KK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIEFsbG93VXNlcnMgQXV0aG9yaXplZEtleXNGaWxlCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBCYW5uZXIKK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIENoYWxsZW5nZVJlc3BvbnNlQXV0aGVudGljYXRpb24gQ2hyb290RGlyZWN0b3J5CiBzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBDaXBoZXJzIENsaWVudEFsaXZlQ291bnRNYXgKIHN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIENsaWVudEFsaXZlSW50ZXJ2YWwgQ29tcHJlc3Npb24KLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIERlbnlHcm91cHMgRGVueVVzZXJzIEdTU0FQSUF1dGhlbnRpY2F0aW9uCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBHU1NBUElDbGVhbnVwQ3JlZGVudGlhbHMgR2F0ZXdheVBvcnRzCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBIb3N0S2V5IEhvc3RiYXNlZEF1dGhlbnRpY2F0aW9uCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBEZW55R3JvdXBzIERlbnlVc2Vycworc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgRm9yY2VDb21tYW5kCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBHYXRld2F5UG9ydHMgR1NTQVBJQXV0aGVudGljYXRpb24KK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIEdTU0FQSUNsZWFudXBDcmVkZW50aWFscworc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgSG9zdGJhc2VkQXV0aGVudGljYXRpb24gSG9zdEtleQogc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgSWdub3JlUmhvc3RzIElnbm9yZVVzZXJLbm93bkhvc3RzCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBLZXJiZXJvc0F1dGhlbnRpY2F0aW9uIEtlcmJlcm9zT3JMb2NhbFBhc3N3ZAotc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgS2VyYmVyb3NUZ3RQYXNzaW5nIEtlcmJlcm9zVGlja2V0Q2xlYW51cAotc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgS2VyYmVyb3NHZXRBRlNUb2tlbgotc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgS2V5UmVnZW5lcmF0aW9uSW50ZXJ2YWwgTGlzdGVuQWRkcmVzcwotc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgTG9nTGV2ZWwgTG9naW5HcmFjZVRpbWUgTUFDcyBNYXhBdXRoVHJpZXMKLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIE1heFN0YXJ0dXBzIFBhc3N3b3JkQXV0aGVudGljYXRpb24KLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFBlcm1pdEVtcHR5UGFzc3dvcmRzIFBlcm1pdFJvb3RMb2dpbgorc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgS2VyYmVyb3NBdXRoZW50aWNhdGlvbiBLZXJiZXJvc0dldEFGU1Rva2VuCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBLZXJiZXJvc09yTG9jYWxQYXNzd2QgS2VyYmVyb3NUaWNrZXRDbGVhbnVwCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBLZXlSZWdlbmVyYXRpb25JbnRlcnZhbAorc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgTGlzdGVuQWRkcmVzcyBMb2dpbkdyYWNlVGltZSBMb2dMZXZlbAorc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgTUFDcyBNYXRjaCBNYXhBdXRoVHJpZXMgTWF4U2Vzc2lvbnMgTWF4U3RhcnR1cHMKK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFBhc3N3b3JkQXV0aGVudGljYXRpb24gUGVybWl0RW1wdHlQYXNzd29yZHMKK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFBlcm1pdFJvb3RMb2dpbiBQZXJtaXRPcGVuIFBlcm1pdFR1bm5lbAogc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgUGVybWl0VXNlckVudmlyb25tZW50IFBpZEZpbGUgUG9ydAogc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgUHJpbnRMYXN0TG9nIFByaW50TW90ZCBQcm90b2NvbAotc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgUHVia2V5QXV0aGVudGljYXRpb24gUlNBQXV0aGVudGljYXRpb24KLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFJob3N0c0F1dGhlbnRpY2F0aW9uIFJob3N0c1JTQUF1dGhlbnRpY2F0aW9uCi1zeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBTZXJ2ZXJLZXlCaXRzIFN0cmljdE1vZGVzIFN1YnN5c3RlbQotc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgU2hvd1BhdGNoTGV2ZWwKLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFN5c2xvZ0ZhY2lsaXR5IFRDUEtlZXBBbGl2ZSBVc2VETlMKLXN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFVzZUxvZ2luIFVzZVBBTSBVc2VQcml2aWxlZ2VTZXBhcmF0aW9uCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBQdWJrZXlBdXRoZW50aWNhdGlvbgorc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgUmhvc3RzUlNBQXV0aGVudGljYXRpb24gUlNBQXV0aGVudGljYXRpb24KK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFNlcnZlcktleUJpdHMgU2hvd1BhdGNoTGV2ZWwgU3RyaWN0TW9kZXMKK3N5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFN1YnN5c3RlbSBTeXNsb2dGYWNpbGl0eQorc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgVENQS2VlcEFsaXZlCitzeW4ga2V5d29yZCBzc2hkY29uZmlnS2V5d29yZCBVc2VETlMgVXNlTG9naW4gVXNlUEFNIFVzZVByaXZpbGVnZVNlcGFyYXRpb24KIHN5biBrZXl3b3JkIHNzaGRjb25maWdLZXl3b3JkIFgxMURpc3BsYXlPZmZzZXQgWDExRm9yd2FyZGluZwogc3luIGtleXdvcmQgc3NoZGNvbmZpZ0tleXdvcmQgWDExVXNlTG9jYWxob3N0IFhBdXRoTG9jYXRpb24KIAogIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nCiBpZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfc3NoZGNvbmZpZ19zeW50YXhfaW5pdHMiKQotCWlmIHZlcnNpb24gPCA1MDgKLQkJbGV0IGRpZF9zc2hkY29uZmlnX3N5bnRheF9pbml0cyA9IDEKLQkJY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KLQllbHNlCi0JCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgotCWVuZGlmCisgIGlmIHZlcnNpb24gPCA1MDgKKyAgICBsZXQgZGlkX3NzaGRjb25maWdfc3ludGF4X2luaXRzID0gMQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CisgIGVsc2UKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KKyAgZW5kaWYKIAotCUhpTGluayBzc2hkY29uZmlnQ29tbWVudCBDb21tZW50Ci0JSGlMaW5rIHNzaGRjb25maWdUb2RvIFRvZG8KLQlIaUxpbmsgc3NoZGNvbmZpZ0hvc3RQb3J0IHNzaGRjb25maWdDb25zdGFudAotCUhpTGluayBzc2hkY29uZmlnVGltZSBzc2hkY29uZmlnQ29uc3RhbnQKLQlIaUxpbmsgc3NoZGNvbmZpZ051bWJlciBzc2hkY29uZmlnQ29uc3RhbnQKLQlIaUxpbmsgc3NoZGNvbmZpZ0NvbnN0YW50IENvbnN0YW50Ci0JSGlMaW5rIHNzaGRjb25maWdZZXNObyBzc2hkY29uZmlnRW51bQotCUhpTGluayBzc2hkY29uZmlnQ2lwaGVyIHNzaGRjb25maWdFbnVtCi0JSGlMaW5rIHNzaGRjb25maWdNQUMgc3NoZGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoZGNvbmZpZ1Jvb3RMb2dpbiBzc2hkY29uZmlnRW51bQotCUhpTGluayBzc2hkY29uZmlnTG9nTGV2ZWwgc3NoZGNvbmZpZ0VudW0KLQlIaUxpbmsgc3NoZGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IHNzaGRjb25maWdFbnVtCi0JSGlMaW5rIHNzaGRjb25maWdFbnVtIEZ1bmN0aW9uCi0JSGlMaW5rIHNzaGRjb25maWdTcGVjaWFsIFNwZWNpYWwKLQlIaUxpbmsgc3NoZGNvbmZpZ0tleXdvcmQgS2V5d29yZAotCWRlbGNvbW1hbmQgSGlMaW5rCisgIEhpTGluayBzc2hkY29uZmlnQ29tbWVudCAgICAgICAgQ29tbWVudAorICBIaUxpbmsgc3NoZGNvbmZpZ1RvZG8gICAgICAgICAgIFRvZG8KKyAgSGlMaW5rIHNzaGRjb25maWdIb3N0UG9ydCAgICAgICBzc2hkY29uZmlnQ29uc3RhbnQKKyAgSGlMaW5rIHNzaGRjb25maWdUaW1lICAgICAgICAgICBzc2hkY29uZmlnQ29uc3RhbnQKKyAgSGlMaW5rIHNzaGRjb25maWdOdW1iZXIgICAgICAgICBzc2hkY29uZmlnQ29uc3RhbnQKKyAgSGlMaW5rIHNzaGRjb25maWdDb25zdGFudCAgICAgICBDb25zdGFudAorICBIaUxpbmsgc3NoZGNvbmZpZ1llc05vICAgICAgICAgIHNzaGRjb25maWdFbnVtCisgIEhpTGluayBzc2hkY29uZmlnQWRkcmVzc0ZhbWlseSAgc3NoZGNvbmZpZ0VudW0KKyAgSGlMaW5rIHNzaGRjb25maWdDaXBoZXIgICAgICAgICBzc2hkY29uZmlnRW51bQorICBIaUxpbmsgc3NoZGNvbmZpZ01BQyAgICAgICAgICAgIHNzaGRjb25maWdFbnVtCisgIEhpTGluayBzc2hkY29uZmlnUm9vdExvZ2luICAgICAgc3NoZGNvbmZpZ0VudW0KKyAgSGlMaW5rIHNzaGRjb25maWdMb2dMZXZlbCAgICAgICBzc2hkY29uZmlnRW51bQorICBIaUxpbmsgc3NoZGNvbmZpZ1N5c0xvZ0ZhY2lsaXR5IHNzaGRjb25maWdFbnVtCisgIEhpTGluayBzc2hkY29uZmlnRW51bSAgICAgICAgICAgRnVuY3Rpb24KKyAgSGlMaW5rIHNzaGRjb25maWdTcGVjaWFsICAgICAgICBTcGVjaWFsCisgIEhpTGluayBzc2hkY29uZmlnS2V5d29yZCAgICAgICAgS2V5d29yZAorICBIaUxpbmsgc3NoZGNvbmZpZ01hdGNoICAgICAgICAgIFR5cGUKKyAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gInNzaGRjb25maWciCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9zdm4udmltIGIvcnVudGltZS9zeW50YXgvc3ZuLnZpbQppbmRleCBiYjRmNTk0Li4wY2Q3NzBhIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zdm4udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3N2bi52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiAgICAgU3VidmVyc2lvbiAoc3ZuKSBjb21taXQgZmlsZQogIiBNYWludGFpbmVyOiAgIERtaXRyeSBWYXNpbGlldiA8ZGltYSBhdCBobGFicyBkb3Qgc3BiIGRvdCBydT4KICIgVVJMOiAgICAgICAgICBodHRwOi8vd3d3LmhsYWJzLnNwYi5ydS92aW0vc3ZuLnZpbQotIiBSZXZpc2lvbjogICAgICRJZCQKKyIgUmV2aXNpb246ICAgICAkSWQ6IHN2bi52aW0gNjgzIDIwMDgtMDctMzAgMTE6NTI6MzhaIGhkaW1hICQKICIgRmlsZW5hbWVzOiAgICBzdm4tY29tbWl0Ki50bXAKICIgVmVyc2lvbjogICAgICAxLjYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGFkcy52aW0gYi9ydW50aW1lL3N5bnRheC90YWRzLnZpbQppbmRleCA3MGZmZTZmLi4yNjBmZjM2IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC90YWRzLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC90YWRzLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglUQURTCiAiIE1haW50YWluZXI6CUFtaXIgS2FyZ2VyIDxrYXJnZXJAcG9zdC5oYXJ2YXJkLmVkdT4KLSIgJERhdGUkCi0iICRSZXZpc2lvbiQKKyIgJERhdGU6IDIwMDQvMDYvMTMgMTk6Mjg6NDUgJAorIiAkUmV2aXNpb246IDEuMSAkCiAiIFN0b2xlbiBmcm9tOiBCcmFtIE1vb2xlbmFhcidzIEMgbGFuZ3VhZ2UgZmlsZQogIiBOZXdlc3QgdmVyc2lvbiBhdDogaHR0cDovL3d3dy5oZWMudXRhaC5lZHUvfmthcmdlci92aW0vc3ludGF4L3RhZHMudmltCiAiIEhpc3RvcnkgaW5mbyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC90YXNrZGF0YS52aW0gYi9ydW50aW1lL3N5bnRheC90YXNrZGF0YS52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkxODZlMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L3Rhc2tkYXRhLnZpbQpAQCAtMCwwICsxLDQzIEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZToJdGFzayBkYXRhCisiIE1haW50YWluZXI6CUpvaG4gRmxvcmlhbiA8amZsb3JpYW5AZG91YmxlZG9nLm9yZz4KKyIgVXBkYXRlZDoJV2VkIEp1bCAgOCAxOTo0NjoyMCBFRFQgMjAwOQorCisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zLgorIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZC4KK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCisiIEtleSBOYW1lcyBmb3IgdmFsdWVzLgorc3luIGtleXdvcmQgdGFza2RhdGFLZXkJCWRlc2NyaXB0aW9uIGR1ZSBlbmQgZW50cnkgaW1hc2sgbWFzayBwYXJlbnQKK3N5biBrZXl3b3JkIHRhc2tkYXRhS2V5CQlwcmlvcml0eSBwcm9qZWN0IHJlY3VyIHN0YXJ0IHN0YXR1cyB0YWdzIHV1aWQKK3N5biBtYXRjaCB0YXNrZGF0YUtleQkJImFubm90YXRpb25fXGRcKyIKK3N5biBtYXRjaCB0YXNrZGF0YVVuZG8JCSJedGltZS4qJCIKK3N5biBtYXRjaCB0YXNrZGF0YVVuZG8JCSJeXChvbGQgXHxuZXcgXHwtLS1cKSIKKworIiBWYWx1ZXMgYXNzb2NpYXRlZCB3aXRoIGtleSBuYW1lcy4KKyIKKyIgU3RyaW5ncworc3luIHJlZ2lvbiB0YXNrZGF0YVN0cmluZwltYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rIisgZW5kPSsiKworCQkJXAljb250YWlucz10YXNrZGF0YUVuY29kZWQsdGFza2RhdGFVVUlELEBTcGVsbAorIgorIiBTcGVjaWFsIEVtYmVkZGVkIENoYXJhY3RlcnMgKGUuZy4sICImY29tbWE7IikKK3N5biBtYXRjaCB0YXNrZGF0YUVuY29kZWQJIiZcYVwrOyIgY29udGFpbmVkCisiIFVVSURzCitzeW4gbWF0Y2ggdGFza2RhdGFVVUlECQkiXHhcezh9LVwoXHhcezR9LVwpXHszfVx4XHsxMn0iIGNvbnRhaW5lZAorCisKKyIgVGhlIGRlZmF1bHQgbWV0aG9kcyBmb3IgaGlnaGxpZ2h0aW5nLiAgQ2FuIGJlIG92ZXJyaWRkZW4gbGF0ZXIuCitoaSBkZWYgbGluayB0YXNrZGF0YUVuY29kZWQJRnVuY3Rpb24KK2hpIGRlZiBsaW5rIHRhc2tkYXRhS2V5CQlTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHRhc2tkYXRhU3RyaW5nIAlTdHJpbmcKK2hpIGRlZiBsaW5rIHRhc2tkYXRhVVVJRCAJU3BlY2lhbAoraGkgZGVmIGxpbmsgdGFza2RhdGFVbmRvIAlUeXBlCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gInRhc2tkYXRhIgorCisiIHZpbTpub2V4cGFuZHRhYgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGFza2VkaXQudmltIGIvcnVudGltZS9zeW50YXgvdGFza2VkaXQudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZTBlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC90YXNrZWRpdC52aW0KQEAgLTAsMCArMSwzNSBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CXN1cHBvcnQgZm9yICd0YXNrIDQyIGVkaXQnCisiIE1haW50YWluZXI6CUpvaG4gRmxvcmlhbiA8amZsb3JpYW5AZG91YmxlZG9nLm9yZz4KKyIgVXBkYXRlZDoJV2VkIEp1bCAgOCAxOTo0NjozMiBFRFQgMjAwOQorCisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zLgorIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZC4KK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitzeW4gbWF0Y2ggdGFza2VkaXRIZWFkaW5nCSJeXHMqI1xzKk5hbWVcc1wrRWRpdGFibGUgZGV0YWlsc1xzKiQiIGNvbnRhaW5lZAorc3luIG1hdGNoIHRhc2tlZGl0SGVhZGluZwkiXlxzKiNccyotXCtcc1wrLVwrXHMqJCIgY29udGFpbmVkCitzeW4gbWF0Y2ggdGFza2VkaXRSZWFkT25seQkiXlxzKiNccypcKFVVXClcP0lEOi4qJCIgY29udGFpbmVkCitzeW4gbWF0Y2ggdGFza2VkaXRSZWFkT25seQkiXlxzKiNccypTdGF0dXM6LiokIiBjb250YWluZWQKK3N5biBtYXRjaCB0YXNrZWRpdFJlYWRPbmx5CSJeXHMqI1xzKmlcP01hc2s6LiokIiBjb250YWluZWQKK3N5biBtYXRjaCB0YXNrZWRpdEtleQkJIl4gKi5cey19OiIgbmV4dGdyb3VwPXRhc2tlZGl0U3RyaW5nCitzeW4gbWF0Y2ggdGFza2VkaXRDb21tZW50CSJeXHMqIy4qJCIKKwkJCVwJY29udGFpbnM9dGFza2VkaXRSZWFkT25seSx0YXNrZWRpdEhlYWRpbmcKK3N5biBtYXRjaCB0YXNrZWRpdFN0cmluZwkiLiokIiBjb250YWluZWQgY29udGFpbnM9QFNwZWxsCisKKworIiBUaGUgZGVmYXVsdCBtZXRob2RzIGZvciBoaWdobGlnaHRpbmcuICBDYW4gYmUgb3ZlcnJpZGRlbiBsYXRlci4KK2hpIGRlZiBsaW5rIHRhc2tlZGl0Q29tbWVudAlDb21tZW50CitoaSBkZWYgbGluayB0YXNrZWRpdEhlYWRpbmcJRnVuY3Rpb24KK2hpIGRlZiBsaW5rIHRhc2tlZGl0S2V5CQlTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHRhc2tlZGl0UmVhZE9ubHkJU3BlY2lhbAoraGkgZGVmIGxpbmsgdGFza2VkaXRTdHJpbmcJU3RyaW5nCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gInRhc2tlZGl0IgorCisiIHZpbTpub2V4cGFuZHRhYgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGNsLnZpbSBiL3J1bnRpbWUvc3ludGF4L3RjbC52aW0KaW5kZXggZTk1NjJkNi4uZDE1NDIyZCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdGNsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC90Y2wudmltCkBAIC0xLDEzICsxLDE2IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJVENML1RLCi0iIE1haW50YWluZXI6CUJyZXR0IENhbm5vbiA8YnJldHRAcHl0aG9uLm9yZz4KKyIgTGFuZ3VhZ2U6CVRjbC9UaworIiBNYWludGFpbmVyOglUYXlsb3IgVmVuYWJsZSA8dGF5bG9yQG1ldGFzeW50YXgubmV0PgorIiAJCShwcmV2aW91c2x5IEJyZXR0IENhbm5vbiA8YnJldHRAcHl0aG9uLm9yZz4pCiAiIAkJKHByZXZpb3VzbHkgRGVhbiBDb3BzZXkgPGNvcHNleUBjcy51Y2RhdmlzLmVkdT4pCiAiCQkocHJldmlvdXNseSBNYXR0IE5ldW1hbm4gPG1hdHRuZXVAcHVycGxldHVydGxlLmNvbT4pCiAiCQkocHJldmlvdXNseSBBbGxhbiBLZWxseSA8YWxsYW5AZnJ1aXRsb2FmLmNvLnVrPikKICIgT3JpZ2luYWw6CVJvYmluIEJlY2tlciA8cm9iaW5AamVzc2lrYXQuZGVtb24uY28udWs+Ci0iIExhc3QgQ2hhbmdlOgkyMDA2IE5vdiAxNworIiBMYXN0IENoYW5nZToJMjAwOS8wNC8wNiAwMjozODozNgorIiBWZXJzaW9uOgkxLjEzCisiIFVSTDoJCWh0dHA6Ly9yZWFsLm1ldGFzeW50YXgubmV0OjIzNTcvY3ZzL2N2c3dlYi5jZ2kvQ29uZmlnL3ZpbS9zeW50YXgvdGNsLnZpbQogIgotIiBLZXl3b3JkcyBUT0RPOiBmb3JtYXQgY2xvY2sgY2xpY2sgYW5jaG9yCisiIEtleXdvcmRzIFRPRE86IGNsaWNrIGFuY2hvcgogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApAQCAtMTcsMTkgKzIwLDQwIEBACiAgIGZpbmlzaAogZW5kaWYKIAotIiBBIGJ1bmNoIG9mIHVzZWZ1bCBrZXl3b3Jkcwotc3luIGtleXdvcmQgdGNsU3RhdGVtZW50ICB0ZWxsIHNvY2tldCBzdWJzdCBvcGVuIGVvZiBwd2QgZ2xvYiBsaXN0IGV4ZWMgcGlkCi1zeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgIGF1dG9fbG9hZF9pbmRleCB0aW1lIHVua25vd24gZXZhbCBscmFuZ2UgZmJsb2NrZWQKLXN5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgbHNlYXJjaCBhdXRvX2ltcG9ydCBnZXRzIGxhcHBlbmQgcHJvYyB2YXJpYWJsZSBsbGVuZ3RoCi1zeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgIGF1dG9fZXhlY29rIHJldHVybiBsaW5zZXJ0IGVycm9yIGNhdGNoIGNsb2NrIGluZm8KLXN5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgc3BsaXQgYXJyYXkgZmNvbmZpZ3VyZSBjb25jYXQgam9pbiBscmVwbGFjZSBzb3VyY2UKLXN5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgZmNvcHkgZ2xvYmFsIGF1dG9fcXVhbGlmeSB1cGRhdGUgY2xvc2UgY2QgYXV0b19sb2FkCi1zeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgIGZpbGUgYXBwZW5kIGZvcm1hdCByZWFkIHBhY2thZ2Ugc2V0IGJpbmFyeSBuYW1lc3BhY2UKLXN5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgc2NhbiB0cmFjZSBzZWVrIGZsdXNoIGFmdGVyIHZ3YWl0IHVwbGV2ZWwgbHNldCByZW5hbWUKLXN5biBrZXl3b3JkIHRjbFN0YXRlbWVudCAgZmlsZWV2ZW50IHJlZ2V4cCB1cHZhciB1bnNldCBlbmNvZGluZyBleHByIGxvYWQgcmVnc3ViCi1zeW4ga2V5d29yZCB0Y2xTdGF0ZW1lbnQgaW50ZXJwIGV4aXQgcHV0cyBpbmNyIGxpbmRleCBsc29ydCB0Y2xMb2cgc3RyaW5nCisiIEJhc2ljIFRjbCBjb21tYW5kczogaHR0cDovL3d3dy50Y2wudGsvbWFuL3RjbDguNS9UY2xDbWQvY29udGVudHMuaHRtCitzeW4ga2V5d29yZCB0Y2xDb21tYW5kCQlhZnRlciBhcHBlbmQgYXBwbHkgYXJyYXkgYmdlcnJvciBiaW5hcnkgY2F0Y2ggY2QgY2hhbiBjbG9jaworc3luIGtleXdvcmQgdGNsQ29tbWFuZAkJY2xvc2UgY29uY2F0IGRkZSBkaWN0IGVuY29kaW5nIGVvZiBlcnJvciBldmFsIGV4ZWMgZXhpdAorc3luIGtleXdvcmQgdGNsQ29tbWFuZAkJZXhwciBmYmxvY2tlZCBmY29uZmlndXJlIGZjb3B5IGZpbGUgZmlsZWV2ZW50IGZpbGVuYW1lIGZsdXNoCitzeW4ga2V5d29yZCB0Y2xDb21tYW5kCQlmb3JtYXQgZ2V0cyBnbG9iIGdsb2JhbCBoaXN0b3J5IGluY3IgaW5mbyBpbnRlcnAgam9pbgorc3luIGtleXdvcmQgdGNsQ29tbWFuZAkJbGFwcGVuZCBsYXNzaWduIGxpbmRleCBsaW5zZXJ0IGxpc3QgbGxlbmd0aCBsb2FkIGxyYW5nZSBscmVwZWF0CitzeW4ga2V5d29yZCB0Y2xDb21tYW5kCQlscmVwbGFjZSBscmV2ZXJzZSBsc2VhcmNoIGxzZXQgbHNvcnQgbWVtb3J5IG5hbWVzcGFjZSBvcGVuIHBhY2thZ2UKK3N5biBrZXl3b3JkIHRjbENvbW1hbmQJCXBpZCBwcm9jIHB1dHMgcHdkIHJlYWQgcmVnZXhwIHJlZ2lzdHJ5IHJlZ3N1YiByZW5hbWUgcmV0dXJuCitzeW4ga2V5d29yZCB0Y2xDb21tYW5kCQlzY2FuIHNlZWsgc2V0IHNvY2tldCBzb3VyY2Ugc3BsaXQgc3RyaW5nIHN1YnN0IHRlbGwgdGltZQorc3luIGtleXdvcmQgdGNsQ29tbWFuZAkJdHJhY2UgdW5rbm93biB1bmxvYWQgdW5zZXQgdXBkYXRlIHVwbGV2ZWwgdXB2YXIgdmFyaWFibGUgdndhaXQKKworIiBUaGUgJ1RjbCBTdGFuZGFyZCBMaWJyYXJ5JyBjb21tYW5kczogaHR0cDovL3d3dy50Y2wudGsvbWFuL3RjbDguNS9UY2xDbWQvbGlicmFyeS5odG0KK3N5biBrZXl3b3JkIHRjbENvbW1hbmQJCWF1dG9fZXhlY29rIGF1dG9faW1wb3J0IGF1dG9fbG9hZCBhdXRvX21raW5kZXggYXV0b19ta2luZGV4X29sZAorc3luIGtleXdvcmQgdGNsQ29tbWFuZAkJYXV0b19xdWFsaWZ5IGF1dG9fcmVzZXQgcGFycmF5IHRjbF9lbmRPZldvcmQgdGNsX2ZpbmRMaWJyYXJ5CitzeW4ga2V5d29yZCB0Y2xDb21tYW5kCQl0Y2xfc3RhcnRPZk5leHRXb3JkIHRjbF9zdGFydE9mUHJldmlvdXNXb3JkIHRjbF93b3JkQnJlYWtBZnRlcgorc3luIGtleXdvcmQgdGNsQ29tbWFuZAkJdGNsX3dvcmRCcmVha0JlZm9yZQorCisiIENvbW1hbmRzIHRoYXQgd2VyZSBhZGRlZCBpbiBUY2wgOC42CisKK3N5biBrZXl3b3JkIHRjbENvbW1hbmQJCW15IG9vOjpjb3B5IG9vOjpkZWZpbmUgb286Om9iamRlZmluZSBzZWxmCitzeW4ga2V5d29yZCB0Y2xDb21tYW5kCQljb3JvdXRpbmUgdGFpbGNhbGwgdGhyb3cgeWllbGQKKworIiBHbG9iYWwgdmFyaWFibGVzIHVzZWQgYnkgVGNsOiBodHRwOi8vd3d3LnRjbC50ay9tYW4vdGNsOC41L1RjbENtZC90Y2x2YXJzLmh0bQorc3luIGtleXdvcmQgdGNsVmFycwkJZW52IGVycm9yQ29kZSBlcnJvckluZm8gdGNsX2xpYnJhcnkgdGNsX3BhdGNoTGV2ZWwgdGNsX3BrZ1BhdGgKK3N5biBrZXl3b3JkIHRjbFZhcnMJCXRjbF9wbGF0Zm9ybSB0Y2xfcHJlY2lzaW9uIHRjbF9yY0ZpbGVOYW1lIHRjbF90cmFjZUNvbXBpbGUKK3N5biBrZXl3b3JkIHRjbFZhcnMJCXRjbF90cmFjZUV4ZWMgdGNsX3dvcmRjaGFycyB0Y2xfbm9ud29yZGNoYXJzIHRjbF92ZXJzaW9uIGFyZ2MgYXJndgorc3luIGtleXdvcmQgdGNsVmFycwkJYXJndjAgdGNsX2ludGVyYWN0aXZlIGdlb21ldHJ5CisKKyIgU3RyaW5ncyB3aGljaCBleHByIGFjY2VwdHMgYXMgYm9vbGVhbiB2YWx1ZXMsIGFzaWRlIGZyb20gemVybyAvIG5vbi16ZXJvLgorc3luIGtleXdvcmQgdGNsQm9vbGVhbgkJdHJ1ZSBmYWxzZSBvbiBvZmYgeWVzIG5vCisKIHN5biBrZXl3b3JkIHRjbExhYmVsCQljYXNlIGRlZmF1bHQKIHN5biBrZXl3b3JkIHRjbENvbmRpdGlvbmFsCWlmIHRoZW4gZWxzZSBlbHNlaWYgc3dpdGNoCitzeW4ga2V5d29yZCB0Y2xDb25kaXRpb25hbAl0cnkgZmluYWxseQogc3luIGtleXdvcmQgdGNsUmVwZWF0CQl3aGlsZSBmb3IgZm9yZWFjaCBicmVhayBjb250aW51ZQogc3luIGtleXdvcmQgdGNsdGtTd2l0Y2gJY29udGFpbmVkCWluc2VydCBjcmVhdGUgcG9seWdvbiBmaWxsIG91dGxpbmUgdGFnCiAKQEAgLTYzLDkgKzg3LDE0IEBACiBzeW4ga2V5d29yZCB0Y2x0a1dpZGdldFN3aXRjaCBjb250YWluZWQgZGVsZXRlIG5hbWVzIHR5cGVzIGNyZWF0ZQogIiB2YXJpYWJsZSByZWZlcmVuY2UKIAkiIDo6b3B0aW9uYWw6Om5hbWVzcGFjZXMKLXN5biBtYXRjaCB0Y2xWYXJSZWYgIiRcKFwoOjpcKVw/XChbWzphbG51bTpdXy5dKjo6XCkqXClcYVthLXpBLVowLTlfLl0qIgorc3luIG1hdGNoIHRjbFZhclJlZiAiJFwoXCg6OlwpXD9cKFtbOmFsbnVtOl1fXSo6OlwpKlwpXGFbWzphbG51bTpdX10qIgogCSIgJHsuLi59IG1heSBjb250YWluIGFueSBjaGFyYWN0ZXIgZXhjZXB0ICd9Jwogc3luIG1hdGNoIHRjbFZhclJlZiAiJHtbXn1dKn0iCisKKyIgVGhlIHN5bnRhY3RpYyB1bnF1b3RlLXNwbGljaW5nIHJlcGxhY2VtZW50IGZvciBbZXhwYW5kXS4KK3N5biBtYXRjaCB0Y2xFeHBhbmQgJ1xze1wqfScKK3N5biBtYXRjaCB0Y2xFeHBhbmQgJ157XCp9JworCiAiIG1lbnUsIG1hbmUgYWRkCiBzeW4ga2V5d29yZCB0Y2x0a1dpZGdldFN3aXRjaCBjb250YWluZWQgYWN0aXZlIGVuZCBsYXN0IG5vbmUgY2FzY2FkZSBjaGVja2J1dHRvbiBjb21tYW5kIHJhZGlvYnV0dG9uIHNlcGFyYXRvcgogc3luIGtleXdvcmQgdGNsdGtXaWRnZXRTd2l0Y2ggY29udGFpbmVkIGFjdGl2ZWJhY2tncm91bmQgYWN0dmVmb3JlZ3JvdW5kIGFjY2VsZXJhdG9yIGJhY2tncm91bmQgYml0bWFwIGNvbHVtbmJyZWFrCkBAIC0xMzAsMTEgKzE1OSwxMCBAQAogCiAiIEVYUFIKICIgY29tbWFuZHMgYXNzb2NpYXRlZCB3aXRoIGV4cHIKLXN5biBrZXl3b3JkIHRjbHRrTWF0aHMJY29udGFpbmVkCWFjb3MJY29zCWh5cG90CXNpbmgKLXN5biBrZXl3b3JkIHRjbHRrTWF0aHMJY29udGFpbmVkCWFzaW4JY29zaAlsb2cJc3FydAotc3luIGtleXdvcmQgdGNsdGtNYXRocwljb250YWluZWQJYXRhbglleHAJbG9nMTAJdGFuCi1zeW4ga2V5d29yZCB0Y2x0a01hdGhzCWNvbnRhaW5lZAlhdGFuMglmbG9vcglwb3cJdGFuaAotc3luIGtleXdvcmQgdGNsdGtNYXRocwljb250YWluZWQJY2VpbAlmbW9kCXNpbgorc3luIGtleXdvcmQgdGNsdGtNYXRocyBjb250YWluZWQJYWJzIGFjb3MgYXNpbiBhdGFuIGF0YW4yIGJvb2wgY2VpbCBjb3MgY29zaCBkb3VibGUgZW50aWVyCitzeW4ga2V5d29yZCB0Y2x0a01hdGhzIGNvbnRhaW5lZAlleHAgZmxvb3IgZm1vZCBoeXBvdCBpbnQgaXNxcnQgbG9nIGxvZzEwIG1heCBtaW4gcG93IHJhbmQKK3N5biBrZXl3b3JkIHRjbHRrTWF0aHMgY29udGFpbmVkCXJvdW5kIHNpbiBzaW5oIHNxcnQgc3JhbmQgdGFuIHRhbmggd2lkZQorCiBzeW4gcmVnaW9uIHRjbHRrQ29tbWFuZCBtYXRjaGdyb3VwPXRjbHRrQ29tbWFuZENvbG9yIHN0YXJ0PSJcPGV4cHJcPiIgbWF0Y2hncm91cD1OT05FIHNraXA9Il5ccyokIiBlbmQ9Il1cfFteXFxdKlxzKiQibWU9ZS0xICBjb250YWlucz10Y2xMaW5lQ29udGludWUsdGNsdGtNYXRocyx0Y2xOdW1iZXIsdGNsVmFyUmVmLHRjbFN0cmluZyx0Y2x0bFdpZGdldFN3aXRjaCx0Y2x0a0NvbW1hbmQsdGNsdGtQYWNrQ29uZgogCiAiIGZvcm1hdApAQCAtMTY1LDE3ICsxOTMsMjYgQEAKIAogc3luIGtleXdvcmQgdGNsVG9kbyBjb250YWluZWQJVE9ETwogCisiIFNlcXVlbmNlcyB3aGljaCBhcmUgYmFja3NsYXNoLWVzY2FwZWQ6IGh0dHA6Ly93d3cudGNsLnRrL21hbi90Y2w4LjUvVGNsQ21kL1RjbC5odG0jTTE2CisiIE9jdGFsLCBoZXhhZGVjaW1hbCwgdW5pY29kZSBjb2RlcG9pbnRzLCBhbmQgdGhlIGNsYXNzaWNzLgorIiBUY2wgdGFrZXMgYXMgbWFueSB2YWxpZCBjaGFyYWN0ZXJzIGluIGEgcm93IGFzIGl0IGNhbiwgc28gXHhBWiBpbiBhIHN0cmluZyBpcyBuZXdsaW5lIGZvbGxvd2VkIGJ5ICdaJy4KK3N5biBtYXRjaCAgIHRjbFNwZWNpYWwgY29udGFpbmVkICdcXFwoWzAtN11cezEsM31cfHhceFx7MSwyfVx8dVx4XHsxLDR9XHxbYWJmbnJ0dl1cKScKK3N5biBtYXRjaCAgIHRjbFNwZWNpYWwgY29udGFpbmVkICdcXFtcW1xdXHtcfVwiXCRdJwogCi0iIFN0cmluZyBhbmQgQ2hhcmFjdGVyIGNvbnRzdGFudHMKLSIgSGlnaGxpZ2h0IHNwZWNpYWwgY2hhcmFjdGVycyAodGhvc2Ugd2hpY2ggaGF2ZSBhIGJhY2tzbGFzaCkgZGlmZmVyZW50bHkKLXN5biBtYXRjaCAgIHRjbFNwZWNpYWwgY29udGFpbmVkICJcXFxkXGRcZFw9XHxcXC4iCisiIENvbW1hbmQgYXBwZWFyaW5nIGluc2lkZSBhbm90aGVyIGNvbW1hbmQgb3IgaW5zaWRlIGEgc3RyaW5nLgorc3luIHJlZ2lvbiB0Y2xFbWJlZGRlZFN0YXRlbWVudAlzdGFydD0nXFsnIGVuZD0nXF0nIGNvbnRhaW5lZCBjb250YWlucz10Y2xDb21tYW5kLHRjbE51bWJlcix0Y2xMaW5lQ29udGludWUsdGNsU3RyaW5nLHRjbFZhclJlZix0Y2xFbWJlZGRlZFN0YXRlbWVudAogIiBBIHN0cmluZyBuZWVkcyB0aGUgc2tpcCBhcmd1bWVudCBhcyBpdCBtYXkgbGVnaXRpbWF0ZWx5IGNvbnRhaW4gXCIuCiAiIE1hdGNoIGF0IHN0YXJ0IG9mIGxpbmUKIHN5biByZWdpb24gIHRjbFN0cmluZwkJICBzdGFydD0rXiIrIGVuZD0rIisgY29udGFpbnM9dGNsU3BlY2lhbCBza2lwPStcXFxcXHxcXCIrCiAiTWF0Y2ggYWxsIG90aGVyIGxlZ2FsIHN0cmluZ3MuCi1zeW4gcmVnaW9uICB0Y2xTdHJpbmcJCSAgc3RhcnQ9K1teXFxdIittcz1zKzEgIGVuZD0rIisgY29udGFpbnM9dGNsU3BlY2lhbCBza2lwPStcXFxcXHxcXCIrCitzeW4gcmVnaW9uICB0Y2xTdHJpbmcJCSAgc3RhcnQ9K1teXFxdIittcz1zKzEgIGVuZD0rIisgY29udGFpbnM9dGNsU3BlY2lhbCx0Y2xWYXJSZWYsdGNsRW1iZWRkZWRTdGF0ZW1lbnQgc2tpcD0rXFxcXFx8XFwiKwogCi1zeW4gbWF0Y2ggICB0Y2xMaW5lQ29udGludWUgIlxcXHMqJCIKKyIgTGluZSBjb250aW51YXRpb24gaXMgYmFja3NsYXNoIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IG5ld2xpbmUuCitzeW4gbWF0Y2ggdGNsTGluZUNvbnRpbnVlICdcXCQnCisKK2lmIGV4aXN0cygnZzp0Y2xfd2Fybl9jb250aW51YXRpb24nKQorICAgIHN5biBtYXRjaCB0Y2xOb3RMaW5lQ29udGludWUgJ1xcXHNcKyQnCitlbmRpZgogCiAiaW50ZWdlciBudW1iZXIsIG9yIGZsb2F0aW5nIHBvaW50IG51bWJlciB3aXRob3V0IGEgZG90IGFuZCB3aXRoICJmIi4KIHN5biBjYXNlIGlnbm9yZQpAQCAtMjA4LDEzICsyNDUsMTMgQEAKICAgZW5kaWYKIAogICBIaUxpbmsgdGNsdGtTd2l0Y2gJCVNwZWNpYWwKKyAgSGlMaW5rIHRjbEV4cGFuZAkJU3BlY2lhbAogICBIaUxpbmsgdGNsTGFiZWwJCUxhYmVsCiAgIEhpTGluayB0Y2xDb25kaXRpb25hbAkJQ29uZGl0aW9uYWwKICAgSGlMaW5rIHRjbFJlcGVhdAkJUmVwZWF0CiAgIEhpTGluayB0Y2xOdW1iZXIJCU51bWJlcgogICBIaUxpbmsgdGNsRXJyb3IJCUVycm9yCi0gIEhpTGluayB0Y2xTdGF0ZW1lbnQJCVN0YXRlbWVudAotICAiSGlMaW5rIHRjbFN0YXRlbWVudENvbG9yCVN0YXRlbWVudAorICBIaUxpbmsgdGNsQ29tbWFuZAkJU3RhdGVtZW50CiAgIEhpTGluayB0Y2xTdHJpbmcJCVN0cmluZwogICBIaUxpbmsgdGNsQ29tbWVudAkJQ29tbWVudAogICBIaUxpbmsgdGNsU3BlY2lhbAkJU3BlY2lhbApAQCAtMjIzLDYgKzI2MCw5IEBACiAgIEhpTGluayB0Y2x0a0NvbW1hbmRDb2xvcglTdGF0ZW1lbnQKICAgSGlMaW5rIHRjbHRrV2lkZ2V0Q29sb3IJU3RydWN0dXJlCiAgIEhpTGluayB0Y2xMaW5lQ29udGludWUJV2FybmluZ01zZworaWYgZXhpc3RzKCdnOnRjbF93YXJuX2NvbnRpbnVhdGlvbicpCisgIEhpTGluayB0Y2xOb3RMaW5lQ29udGludWUJRXJyb3JNc2cKK2VuZGlmCiAgIEhpTGluayB0Y2x0a1N0cmluZ1N3aXRjaAlTcGVjaWFsCiAgIEhpTGluayB0Y2x0a0FycmF5U3dpdGNoCVNwZWNpYWwKICAgSGlMaW5rIHRjbHRrTHNvcnRTd2l0Y2gJU3BlY2lhbApAQCAtMjMyLDcgKzI3Miw2IEBACiAgIEhpTGluayB0Y2x0a05hbWVzcGFjZVN3aXRjaAlTcGVjaWFsCiAgIEhpTGluayB0Y2x0a1dpZGdldFN3aXRjaAlTcGVjaWFsCiAgIEhpTGluayB0Y2x0a1BhY2tDb25mQ29sb3IJSWRlbnRpZmllcgotICAiSGlMaW5rIHRjbHRrTHNvcnQJCVN0YXRlbWVudAogICBIaUxpbmsgdGNsVmFyUmVmCQlJZGVudGlmaWVyCiAKICAgZGVsY29tbWFuZCBIaUxpbmsKQEAgLTI0MCw0ICsyNzksNCBAQAogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJ0Y2wiCiAKLSIgdmltOiB0cz04CisiIHZpbTogdHM9OCBub2V0CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC90Y3NoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3Rjc2gudmltCmluZGV4IDk0YzQxODEuLmI1MzVkMTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3Rjc2gudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3Rjc2gudmltCkBAIC0xLDYgKzEsNiBAQAogIiB0Y3NoLnZpbTogVmltIHN5bnRheCBmaWxlIGZvciB0Y3NoIHNjcmlwdHMKLSIgTWFpbnRhaW5lcjoJR2F1dGFtIEl5ZXIgPGdpMTI0MkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci0iIE1vZGlmaWVkOglTYXQgMTYgSnVuIDIwMDcgMDQ6NTI6MTIgUE0gUERUCisiIE1haW50YWluZXI6CUdhdXRhbSBJeWVyIDxnaTEyNDJAZ21haWwuY29tPgorIiBNb2RpZmllZDoJVGh1IDE3IERlYyAyMDA5IDA2OjA1OjA3IFBNIEVTVAogIgogIiBEZXNjcmlwdGlvbjogV2UgYnJlYWsgdXAgZWFjaCBzdGF0ZW1lbnQgaW50byBhICJjb21tYW5kIiBhbmQgYW4gImVuZCIgcGFydC4KICIgQWxsIGdyb3VwcyBhcmUgZWl0aGVyIGEgImNvbW1hbmQiIG9yIHBhcnQgb2YgdGhlICJlbmQiIG9mIGEgc3RhdGVtZW50IChpZQpAQCAtNjAsNyArNjAsNyBAQAogIiBhbGlhcyBhbmQgdW5hbGlhcyAoY29udGFpbnMgc3BlY2lhbCBhbGlhc2VzKQogc3luIGtleXdvcmQgdGNzaEFsaWFzZXMgY29udGFpbmVkIGJlZXBjbWQgY3dkY21kIGpvYmNtZCBoZWxwY29tbWFuZCBwZXJpb2RpYyBwcmVjbWQgcG9zdGNtZCBzaGVsbAogc3luIGtleXdvcmQgdGNzaEJ1aWx0aW4JbmV4dGdyb3VwPXRjc2hBbGlDbWQgc2tpcHdoaXRlIGFsaWFzIHVuYWxpYXMKLXN5biBtYXRjaCAgIHRjc2hBbGlDbWQJY29udGFpbmVkIG5leHRncm91cD10Y3NoQWxpRW5kIHNraXB3aGl0ZSAnXHZbXHctXSsnIGNvbnRhaW5zPXRjc2hBbGlhc2VzCitzeW4gbWF0Y2ggICB0Y3NoQWxpQ21kCWNvbnRhaW5lZCBuZXh0Z3JvdXA9dGNzaEFsaUVuZCBza2lwd2hpdGUgJ1x2KFx3fC0pKycgY29udGFpbnM9dGNzaEFsaWFzZXMKIHN5biByZWdpb24gIHRjc2hBbGlFbmQJY29udGFpbmVkIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9dGNzaEJ1aWx0aW4gc3RhcnQ9Jycgc2tpcD0nXFwkJyBlbmQ9JyRcfDsnIGNvbnRhaW5zPUB0Y3NoU3RhdGVtZW50RW5kcwogCiAiIGlmIHN0YXRlbWVudHMKQEAgLTE5Nyw3ICsxOTcsMTEgQEAKIAogIiAtLS0tLSBTeW5jaHJvbmlzaW5nIC0tLS0tCiBpZiBleGlzdHMoJ3Rjc2hfbWlubGluZXMnKQotICAgIGV4ZWMgJ3N5biBzeW5jIG1pbmxpbmVzPScgLiB0Y3NoX21pbmxpbmVzCisgICAgaWYgdGNzaF9taW5saW5lcyA9PSAnZnJvbXN0YXJ0JworCXN5biBzeW5jIGZyb21zdGFydAorICAgIGVsc2UKKwlleGVjICdzeW4gc3luYyBtaW5saW5lcz0nIC4gdGNzaF9taW5saW5lcworICAgIGVuZGlmCiBlbHNlCiAgICAgc3luIHN5bmMgbWlubGluZXM9MTAwCSIgU29tZSBjb21wbGV0aW9ucyBjYW4gYmUgcXVpdGUgbG9uZwogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3RleC52aW0gYi9ydW50aW1lL3N5bnRheC90ZXgudmltCmluZGV4IDEzOTNhNTguLmZmMTcxZDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3RleC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdGV4LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglUZVgKICIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyY2hpcE9AU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KLSIgTGFzdCBDaGFuZ2U6CUp1biAwMywgMjAwOAotIiBWZXJzaW9uOgk0MQorIiBMYXN0IENoYW5nZToJRGVjIDI4LCAyMDA5CisiIFZlcnNpb246CTQ2CiAiIFVSTDoJCWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI3ZpbWxpbmtzX3N5bnRheAogIgogIiBOb3Rlczoge3t7MQpAQCAtMTAzLDYgKzEwMyw3IEBACiBzeW4gY2x1c3RlciB0ZXhFbnZHcm91cAkJY29udGFpbnM9dGV4TWF0Y2hlcix0ZXhNYXRoRGVsaW0sdGV4U3BlY2lhbENoYXIsdGV4U3RhdGVtZW50CiBzeW4gY2x1c3RlciB0ZXhGb2xkR3JvdXAJY29udGFpbnM9dGV4QWNjZW50LHRleEJhZE1hdGgsdGV4Q29tbWVudCx0ZXhEZWZDbWQsdGV4RGVsaW1pdGVyLHRleERvY1R5cGUsdGV4SW5wdXQsdGV4SW5wdXRGaWxlLHRleExlbmd0aCx0ZXhMaWdhdHVyZSx0ZXhNYXRjaGVyLHRleE1hdGhab25lVix0ZXhNYXRoWm9uZVcsdGV4TWF0aFpvbmVYLHRleE1hdGhab25lWSx0ZXhNYXRoWm9uZVosdGV4TmV3Q21kLHRleE5ld0Vudix0ZXhPbmx5TWF0aCx0ZXhPcHRpb24sdGV4UGFyZW4sdGV4UmVmWm9uZSx0ZXhTZWN0aW9uLHRleFNlY3Rpb25NYXJrZXIsdGV4U2VjdGlvblpvbmUsdGV4U3BhY2VDb2RlLHRleFNwZWNpYWxDaGFyLHRleFN0YXRlbWVudCx0ZXhTdHJpbmcsdGV4VHlwZVNpemUsdGV4VHlwZVN0eWxlLHRleFpvbmUsQHRleE1hdGhab25lcyx0ZXhUaXRsZSx0ZXhBYnN0cmFjdAogc3luIGNsdXN0ZXIgdGV4TWF0Y2hHcm91cAljb250YWlucz10ZXhBY2NlbnQsdGV4QmFkTWF0aCx0ZXhDb21tZW50LHRleERlZkNtZCx0ZXhEZWxpbWl0ZXIsdGV4RG9jVHlwZSx0ZXhJbnB1dCx0ZXhMZW5ndGgsdGV4TGlnYXR1cmUsdGV4TWF0Y2hlcix0ZXhOZXdDbWQsdGV4TmV3RW52LHRleE9ubHlNYXRoLHRleFBhcmVuLHRleFJlZlpvbmUsdGV4U2VjdGlvbix0ZXhTcGVjaWFsQ2hhcix0ZXhTdGF0ZW1lbnQsdGV4U3RyaW5nLHRleFR5cGVTaXplLHRleFR5cGVTdHlsZSx0ZXhab25lLHRleElucHV0RmlsZSx0ZXhPcHRpb24sQFNwZWxsCitzeW4gY2x1c3RlciB0ZXhTdHlsZUdyb3VwCWNvbnRhaW5zPXRleEFjY2VudCx0ZXhCYWRNYXRoLHRleENvbW1lbnQsdGV4RGVmQ21kLHRleERlbGltaXRlcix0ZXhEb2NUeXBlLHRleElucHV0LHRleExlbmd0aCx0ZXhMaWdhdHVyZSx0ZXhOZXdDbWQsdGV4TmV3RW52LHRleE9ubHlNYXRoLHRleFBhcmVuLHRleFJlZlpvbmUsdGV4U2VjdGlvbix0ZXhTcGVjaWFsQ2hhcix0ZXhTdGF0ZW1lbnQsdGV4U3RyaW5nLHRleFR5cGVTaXplLHRleFR5cGVTdHlsZSx0ZXhab25lLHRleElucHV0RmlsZSx0ZXhPcHRpb24sdGV4U3R5bGVTdGF0ZW1lbnQsQFNwZWxsLHRleFN0eWxlTWF0Y2hlcgogc3luIGNsdXN0ZXIgdGV4UmVmR3JvdXAJCWNvbnRhaW5zPXRleE1hdGNoZXIsdGV4Q29tbWVudCx0ZXhEZWxpbWl0ZXIKIGlmICFleGlzdHMoInRleF9ub19tYXRoIikKICBzeW4gY2x1c3RlciB0ZXhNYXRoWm9uZXMJY29udGFpbnM9dGV4TWF0aFpvbmVWLHRleE1hdGhab25lVyx0ZXhNYXRoWm9uZVgsdGV4TWF0aFpvbmVZLHRleE1hdGhab25lWgpAQCAtMTc5LDI0ICsxODAsMjQgQEAKIAogIiBcYmVnaW57fS9cZW5ke30gc2VjdGlvbiBtYXJrZXJzOiB7e3sxCiBzeW4gbWF0Y2ggIHRleFNlY3Rpb25NYXJrZXIJIlxcYmVnaW5cPlx8XFxlbmRcPiIgbmV4dGdyb3VwPXRleFNlY3Rpb25OYW1lCi1zeW4gcmVnaW9uIHRleFNlY3Rpb25OYW1lCW1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSJ7IiBlbmQ9In0iICBjb250YWluZWQgbmV4dGdyb3VwPXRleFNlY3Rpb25Nb2RpZmllcgotc3luIHJlZ2lvbiB0ZXhTZWN0aW9uTW9kaWZpZXIJbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9IlxbIiBlbmQ9Il0iIGNvbnRhaW5lZAorc3luIHJlZ2lvbiB0ZXhTZWN0aW9uTmFtZQltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0ieyIgZW5kPSJ9IiAgY29udGFpbmVkCW5leHRncm91cD10ZXhTZWN0aW9uTW9kaWZpZXIJY29udGFpbnM9dGV4Q29tbWVudAorc3luIHJlZ2lvbiB0ZXhTZWN0aW9uTW9kaWZpZXIJbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9IlxbIiBlbmQ9Il0iIGNvbnRhaW5lZAljb250YWlucz10ZXhDb21tZW50CiAKICIgXGRvY3VtZW50Y2xhc3MsIFxkb2N1bWVudHN0eWxlLCBcdXNlcGFja2FnZToge3t7MQogc3luIG1hdGNoICB0ZXhEb2NUeXBlCQkiXFxkb2N1bWVudGNsYXNzXD5cfFxcZG9jdW1lbnRzdHlsZVw+XHxcXHVzZXBhY2thZ2VcPiIJbmV4dGdyb3VwPXRleFNlY3Rpb25OYW1lLHRleERvY1R5cGVBcmdzCi1zeW4gcmVnaW9uIHRleERvY1R5cGVBcmdzCW1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSJcWyIgZW5kPSJdIgkJCWNvbnRhaW5lZAluZXh0Z3JvdXA9dGV4U2VjdGlvbk5hbWUKK3N5biByZWdpb24gdGV4RG9jVHlwZUFyZ3MJbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9IlxbIiBlbmQ9Il0iCQkJY29udGFpbmVkCW5leHRncm91cD10ZXhTZWN0aW9uTmFtZQljb250YWlucz10ZXhDb21tZW50CiAKICIgUHJlYW1ibGUgc3ludGF4LWJhc2VkIGZvbGRpbmcgc3VwcG9ydDoge3t7MQogaWYgZzp0ZXhfZm9sZF9lbmFibGVkICYmIGhhcygiZm9sZGluZyIpCi0gc3luIHJlZ2lvbiB0ZXhQcmVhbWJsZQl0cmFuc3BhcmVudCBmb2xkCXN0YXJ0PSdcenNcXGRvY3VtZW50Y2xhc3NcPicgZW5kPSdcemVcXGJlZ2lue2RvY3VtZW50fScJY29udGFpbnM9QHRleE1hdGNoR3JvdXAKKyBzeW4gcmVnaW9uIHRleFByZWFtYmxlCXRyYW5zcGFyZW50IGZvbGQJc3RhcnQ9J1x6c1xcZG9jdW1lbnRjbGFzc1w+JyBlbmQ9J1x6ZVxcYmVnaW57ZG9jdW1lbnR9Jwljb250YWlucz10ZXhTdHlsZSxAdGV4TWF0Y2hHcm91cAogZW5kaWYKIAogIiBUZVggaW5wdXQ6IHt7ezEKIHN5biBtYXRjaCB0ZXhJbnB1dAkJIlxcaW5wdXRcc1wrW2EtekEtWi8uMC05X15dXCsiaHM9cys3CQkJCWNvbnRhaW5zPXRleFN0YXRlbWVudAotc3luIG1hdGNoIHRleElucHV0RmlsZQkJIlxcaW5jbHVkZVwoZ3JhcGhpY3NcfGxpc3RcKVw9XChcWy5cey19XF1cKVw9XHMqey5cey19fSIJY29udGFpbnM9dGV4U3RhdGVtZW50LHRleElucHV0Q3VybGllcworc3luIG1hdGNoIHRleElucHV0RmlsZQkJIlxcaW5jbHVkZVwoZ3JhcGhpY3NcfGxpc3RcKVw9XChcWy5cey19XF1cKVw9XHMqey5cey19fSIJY29udGFpbnM9dGV4U3RhdGVtZW50LHRleElucHV0Q3VybGllcyx0ZXhJbnB1dEZpbGVPcHQKIHN5biBtYXRjaCB0ZXhJbnB1dEZpbGUJCSJcXFwoZXBzZmlnXHxpbnB1dFx8dXNlcGFja2FnZVwpXHMqXChcWy4qXF1cKVw9ey5cey19fSIJCWNvbnRhaW5zPXRleFN0YXRlbWVudCx0ZXhJbnB1dEN1cmxpZXMsdGV4SW5wdXRGaWxlT3B0CiBzeW4gbWF0Y2ggdGV4SW5wdXRDdXJsaWVzCSJbe31dIgkJCQkJCQkJY29udGFpbmVkCi1zeW4gcmVnaW9uIHRleElucHV0RmlsZU9wdAltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iXFsiIGVuZD0iXF0iCQkJY29udGFpbmVkCitzeW4gcmVnaW9uIHRleElucHV0RmlsZU9wdAltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iXFsiIGVuZD0iXF0iCQkJY29udGFpbmVkCWNvbnRhaW5zPXRleENvbW1lbnQKIAogIiBUeXBlIFN0eWxlcyAoTGFUZVggMi4wOSk6IHt7ezEKIHN5biBtYXRjaCB0ZXhUeXBlU3R5bGUJCSJcXHJtXD4iCkBAIC0zMDksNyArMzEwLDcgQEAKICAgIGV4ZSAnc3luIHJlZ2lvbiAnLmdycG5hbWUuJyBzdGFydD0nLiInIi4nXFxiZWdpblxzKntccyonLmE6bWF0aHpvbmUuJ1xzKn0nLiInIi4nIGVuZD0nLiInIi4nXFxlbmRccyp7XHMqJy5hOm1hdGh6b25lLidccyp9Jy4iJyIuJyBrZWVwZW5kIGNvbnRhaW5zPUB0ZXhNYXRoWm9uZUdyb3VwJy5mb2xkY21kCiAgICBleGUgJ3N5biBzeW5jIG1hdGNoICcuc3luY25hbWUuJyBncm91cGhlcmUgJy5ncnBuYW1lLicgIlxcYmVnaW5ccyp7XHMqJy5hOm1hdGh6b25lLidcKlxzKn0iJwogICAgZXhlICdzeW4gc3luYyBtYXRjaCAnLnN5bmNuYW1lLicgZ3JvdXBoZXJlICcuZ3JwbmFtZS4nICJcXGJlZ2luXHMqe1xzKicuYTptYXRoem9uZS4nXCpccyp9IicKLSAgIGV4ZSAnSGlMaW5rICcuZ3JwbmFtZS4nIHRleE1hdGgnCisgICBleGUgJ2hpIGRlZiBsaW5rICcuZ3JwbmFtZS4nIHRleE1hdGgnCiAgICBpZiBhOnN0YXJmb3JtCiAgICAgbGV0IGdycG5hbWUgID0gInRleE1hdGhab25lIi5hOnNmeC4nUycKICAgICBsZXQgc3luY25hbWUgPSAidGV4U3luY01hdGhab25lIi5hOnNmeC4nUycKQEAgLTMxNyw3ICszMTgsNyBAQAogICAgIGV4ZSAnc3luIHJlZ2lvbiAnLmdycG5hbWUuJyBzdGFydD0nLiInIi4nXFxiZWdpblxzKntccyonLmE6bWF0aHpvbmUuJ1wqXHMqfScuIiciLicgZW5kPScuIiciLidcXGVuZFxzKntccyonLmE6bWF0aHpvbmUuJ1wqXHMqfScuIiciLicga2VlcGVuZCBjb250YWlucz1AdGV4TWF0aFpvbmVHcm91cCcuZm9sZGNtZAogICAgIGV4ZSAnc3luIHN5bmMgbWF0Y2ggJy5zeW5jbmFtZS4nIGdyb3VwaGVyZSAnLmdycG5hbWUuJyAiXFxiZWdpblxzKntccyonLmE6bWF0aHpvbmUuJ1wqXHMqfSInCiAgICAgZXhlICdzeW4gc3luYyBtYXRjaCAnLnN5bmNuYW1lLicgZ3JvdXBoZXJlICcuZ3JwbmFtZS4nICJcXGJlZ2luXHMqe1xzKicuYTptYXRoem9uZS4nXCpccyp9IicKLSAgICBleGUgJ0hpTGluayAnLmdycG5hbWUuJyB0ZXhNYXRoJworICAgIGV4ZSAnaGkgZGVmIGxpbmsgJy5ncnBuYW1lLicgdGV4TWF0aCcKICAgIGVuZGlmCiAgZW5kZnVuCiAKQEAgLTM5OSw3ICs0MDAsNyBAQAogIiBTZXBhcmF0ZSBsaW5lcyB1c2VkIGZvciB2ZXJiYCBhbmQgdmVyYiMgc28gdGhhdCB0aGUgZW5kIGNvbmRpdGlvbnMge3t7MQogIiB3aWxsIGFwcHJvcHJpYXRlbHkgdGVybWluYXRlLiAgSWRlYWxseSB2aW0gd291bGQgbGV0IG1lIHNhdmUgYQogIiBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RhcnQgcGF0dGVybiBhbmQgcmUtdXNlIGl0IGluIHRoZSBlbmQtcGF0dGVybi4KLXN5biByZWdpb24gdGV4Wm9uZQkJc3RhcnQ9IlxcYmVnaW57dmVyYmF0aW19IgkJZW5kPSJcXGVuZHt2ZXJiYXRpbX1cfCVzdG9wem9uZVw+Igljb250YWlucz1AU3BlbGwKK3N5biByZWdpb24gdGV4Wm9uZQkJc3RhcnQ9IlxcYmVnaW57W3ZWXWVyYmF0aW19IgkJZW5kPSJcXGVuZHtbdlZdZXJiYXRpbX1cfCVzdG9wem9uZVw+Igljb250YWlucz1AU3BlbGwKICIgbGlzdGluZ3MgcGFja2FnZToKIHN5biByZWdpb24gdGV4Wm9uZQkJc3RhcnQ9IlxcYmVnaW57bHN0bGlzdGluZ30iCQllbmQ9IlxcZW5ke2xzdGxpc3Rpbmd9XHwlc3RvcHpvbmVcPiIJY29udGFpbnM9QFNwZWxsCiAiIG1vcmV2ZXJiIHBhY2thZ2U6CkBAIC00NTYsNiArNDU3LDE0IEBACiAiIFRlWCBTdHJpbmcgRGVsaW1pdGVyczoge3t7MQogc3luIG1hdGNoIHRleFN0cmluZwkJIlwoYGBcfCcnXHwsLFwpIgogCisiIG1ha2VhdGxldHRlciAtLSBtYWtlYXRvdGhlciBzZWN0aW9ucworaWYgIWV4aXN0cygiZzp0ZXhfbm9fZXJyb3IiKQorIHN5biByZWdpb24gdGV4U3R5bGUJCQltYXRjaGdyb3VwPXRleFN0YXRlbWVudCBzdGFydD0nXFxtYWtlYXRsZXR0ZXInIGVuZD0nXFxtYWtlYXRvdGhlcicJY29udGFpbnM9QHRleFN0eWxlR3JvdXAgY29udGFpbmVkCisgc3luIG1hdGNoICB0ZXhTdHlsZVN0YXRlbWVudAkJIlxcW2EtekEtWkBdXCsiCWNvbnRhaW5lZAorIHN5biByZWdpb24gdGV4U3R5bGVNYXRjaGVyCQltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0ieyIgc2tpcD0iXFxcXFx8XFxbe31dIgllbmQ9In0iCQljb250YWlucz1AdGV4U3R5bGVHcm91cCx0ZXhFcnJvcgljb250YWluZWQKKyBzeW4gcmVnaW9uIHRleFN0eWxlTWF0Y2hlcgkJbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9IlxbIgkJCQllbmQ9Il0iCQljb250YWlucz1AdGV4U3R5bGVHcm91cCx0ZXhFcnJvcgljb250YWluZWQKK2VuZGlmCisKICIgTGFUZVggc3luY2hyb25pemF0aW9uOiB7e3sxCiBzeW4gc3luYyBtYXhsaW5lcz0yMDAKIHN5biBzeW5jIG1pbmxpbmVzPTUwCkBAIC01MDcsNiArNTE2LDcgQEAKICAgIEhpTGluayB0ZXhNYXRoRGVsaW1TZXQyCXRleE1hdGhEZWxpbQogICAgSGlMaW5rIHRleE1hdGhEZWxpbUtleQl0ZXhNYXRoRGVsaW0KICAgIEhpTGluayB0ZXhNYXRoTWF0Y2hlcgl0ZXhNYXRoCisgICBIaUxpbmsgdGV4TWF0aFpvbmVWCQl0ZXhNYXRoCiAgICBIaUxpbmsgdGV4TWF0aFpvbmVXCQl0ZXhNYXRoCiAgICBIaUxpbmsgdGV4TWF0aFpvbmVYCQl0ZXhNYXRoCiAgICBIaUxpbmsgdGV4TWF0aFpvbmVZCQl0ZXhNYXRoCkBAIC01MTYsNiArNTI2LDcgQEAKICAgSGlMaW5rIHRleFNlY3Rpb25NYXJrZXIJdGV4Q21kTmFtZQogICBIaUxpbmsgdGV4U2VjdGlvbk5hbWUJCXRleFNlY3Rpb24KICAgSGlMaW5rIHRleFNwYWNlQ29kZQkJdGV4U3RhdGVtZW50CisgIEhpTGluayB0ZXhTdHlsZVN0YXRlbWVudAl0ZXhTdGF0ZW1lbnQKICAgSGlMaW5rIHRleFR5cGVTaXplCQl0ZXhUeXBlCiAgIEhpTGluayB0ZXhUeXBlU3R5bGUJCXRleFR5cGUKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGlsZGUudmltIGIvcnVudGltZS9zeW50YXgvdGlsZGUudmltCmluZGV4IDU2ODgwNTAuLjNmZGViZjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3RpbGRlLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC90aWxkZS52aW0KQEAgLTMsNyArMyw3IEBACiAiIExhbmd1YWdlOglUaWxkZQogIiBNYWludGFpbmVyOglUb2JpYXMgUnVuZHN0cvZtIDx0b2JpQHRpbGRlc29mdHdhcmUubmV0PgogIiBVUkw6CQlodHRwOi8vd3d3LnRpbGRlc29mdHdhcmUubmV0Ci0iIENWUzoJCSRJZCQKKyIgQ1ZTOgkJJElkOiB0aWxkZS52aW0sdiAxLjEgMjAwNC8wNi8xMyAxOTozMTo1MSB2aW1ib3NzIEV4cCAkCiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdWlsLnZpbSBiL3J1bnRpbWUvc3ludGF4L3VpbC52aW0KaW5kZXggYmRjNGU5NS4uYTQzOTk4NCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdWlsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC91aWwudmltCkBAIC0xLDggKzEsOSBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU1vdGlmIFVJTCAoVXNlciBJbnRlcmZhY2UgTGFuZ3VhZ2UpCiAiIE1haW50YWluZXI6CVRob21hcyBLb2VobGVyIDxqZWFuLWx1Y0BwaWNhcmQuZnJhbmtlbi5kZT4KLSIgTGFzdCBDaGFuZ2U6CTIwMDIgU2VwIDIwCi0iIFVSTDoJCWh0dHA6Ly9qZWFubHVjLXBpY2FyZC5kZS92aW0vc3ludGF4L3VpbC52aW0KKyIgTGFzdCBDaGFuZ2U6CTIwMDkgRGVjIDA0CisiIFVSTDoJCWh0dHA6Ly9nb3R0LWdlaGFidC5kZS84MDBfd2VyX3dpcl9zaW5kL3Rob21hcy9Ib21lcGFnZS9Db21wdXRlci92aW0vc3ludGF4L3VpbC52aW0KKwogCiAiIFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAogaWYgdmVyc2lvbiA8IDYwMApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdXBkYXRlZGIudmltIGIvcnVudGltZS9zeW50YXgvdXBkYXRlZGIudmltCmluZGV4IDRmOTEyZDQuLjdjMDgyZDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3VwZGF0ZWRiLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC91cGRhdGVkYi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZTogICAgICAgICB1cGRhdGVkYi5jb25mKDUpIGNvbmZpZ3VyYXRpb24gZmlsZQogIiBNYWludGFpbmVyOiAgICAgICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNy0xMC0yNQorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA5LTA1LTI1CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMTgsNyArMTgsMTEgQEAKIHN5biBtYXRjaCAgIHVwZGF0ZWRiQmVnaW4gICBkaXNwbGF5ICdeJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPXVwZGF0ZWRiTmFtZSx1cGRhdGVkYkNvbW1lbnQgc2tpcHdoaXRlCiAKLXN5biBrZXl3b3JkIHVwZGF0ZWRiTmFtZSAgICBjb250YWluZWQgUFJVTkVGUyBQUlVORVBBVEhTIFBSVU5FX0JJTkRfTU9VTlRTCitzeW4ga2V5d29yZCB1cGRhdGVkYk5hbWUgICAgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBQUlVORUZTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBQUlVORU5BTUVTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBQUlVORVBBVEhTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBQUlVORV9CSU5EX01PVU5UUwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPXVwZGF0ZWRiTmFtZUVxCiAKIHN5biBtYXRjaCAgIHVwZGF0ZWRiTmFtZUVxICBjb250YWluZWQgZGlzcGxheSAnPScgbmV4dGdyb3VwPXVwZGF0ZWRiVmFsdWUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3ZoZGwudmltIGIvcnVudGltZS9zeW50YXgvdmhkbC52aW0KaW5kZXggOTZmYmNkNi4uNGFjM2I2ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdmhkbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdmhkbC52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOglWSERMCiAiIE1haW50YWluZXI6CUN6byA8T2xpdmllci5TaXJvbEBsaXA2LmZyPgogIiBDcmVkaXRzOglTdGVwaGFuIEhlZ2VsIDxzdGVwaGFuLmhlZ2VsQHNuYy5zaWVtZW5zLmNvbS5jbj4KLSIgJElkJAorIiAkSWQ6IHZoZGwudmltLHYgMS4xIDIwMDQvMDYvMTMgMTU6MzQ6NTYgdmltYm9zcyBFeHAgJAogCiAiIFZIU0lDIEhhcmR3YXJlIERlc2NyaXB0aW9uIExhbmd1YWdlCiAiIFZlcnkgSGlnaCBTY2FsZSBJbnRlZ3JhdGVkIENpcmN1aXQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0gYi9ydW50aW1lL3N5bnRheC92aW0udmltCmluZGV4IDViZmNkNjYuLjIyYWZjZjQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdmltLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglWaW0gNy4yIHNjcmlwdAogIiBNYWludGFpbmVyOglEci4gQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgotIiBMYXN0IENoYW5nZToJSnVseSAyOSwgMjAwOAotIiBWZXJzaW9uOgk3LjItODIKKyIgTGFzdCBDaGFuZ2U6CU5vdiAxOCwgMjAwOQorIiBWZXJzaW9uOgk3LjItOTUKICIgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQga2V5d29yZCBsaXN0czoge3t7MQogCiAiIFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZCB7e3syCkBAIC0xNiwxMSArMTYsMTEgQEAKIHN5biBjbHVzdGVyIHZpbUNvbW1lbnRHcm91cAljb250YWlucz12aW1Ub2RvLEBTcGVsbAogCiAiIHJlZ3VsYXIgdmltIGNvbW1hbmRzIHt7ezIKLXN5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFiY1tsZWFyXSBhcmdkbyBhcmd1W21lbnRdIGJlbFtvd3JpZ2h0XSBiTltleHRdIGJyZWFrZFtlbF0gYlt1ZmZlcl0gY2FkZGJbdWZmZXJdIGNiW3VmZmVyXSBjZXhbcHJdIGNnW2V0ZmlsZV0gY2hlY2t0W2ltZV0gY25ld1tlcl0gY29sW2Rlcl0gY29uW3RpbnVlXSBjcVt1aXRdIGRlbGNbb21tYW5kXSBkaWZmb2ZmIGRpZmZ1W3BkYXRlXSBkcltvcF0gZWNob21bc2ddIGVtW2VudV0gZW5kdFtyeV0gZXh1W3NhZ2VdIGZpbltkXSBmb2xkY1tsb3NlXSBmdVtuY3Rpb25dIGhhW3JkY29weV0gaGVscHRbYWdzXSBpZiBpc1tlYXJjaF0ganVbbXBzXSBrZWVbcG1hcmtzXSBsYW5bZ3VhZ2VdIGxjW2RdIGxlZnRhW2JvdmVdIGxnZXRiW3VmZmVyXSBsZ3JlcGFbZGRdIGxsYVtzdF0gbG1hcGNbbGVhcl0gbG5mW2lsZV0gbG9jW2ttYXJrc10gbHBmW2lsZV0gbHRbYWddIG1ha1tlXSBtZW51dFtyYW5zbGF0ZV0gbWt2aWVbd10gbXpmW2lsZV0gbltleHRdIG51W21iZXJdIG9wdFtpb25zXSBwZXJsZFtvXSBwcFtvcF0gUFtyaW50XSBwcm9tcHRyW2VwbF0gcHRqW3VtcF0gcHRwW3JldmlvdXNdIHB3W2RdIHFbdWl0XSByZWRpW3JdIHJlZ1tpc3RlcnNdIHJld1tpbmRdIHJ1YnlkW29dIHNhbFtsXSBzYmFbbGxdIHNibltleHRdIHNiW3VmZmVyXSBzZXRmW2lsZXR5cGVdIHNmaXJbc3RdIHNpbVthbHRdIHNtW2FwXSBzbltleHRdIHNub3JbZW1hcF0gc29bdXJjZV0gc3BlbGxyW2VwYWxsXSBzcHJbZXZpb3VzXSBzdGFyW3RpbnNlcnRdIHN0b3BpW25zZXJ0XSBzdW5tZW51IHQgdGFiZVtkaXRdIHRhYm1bb3ZlXSB0YWJvW25seV0gdGFbZ10gdGNsZltpbGVdIHRqW3VtcF0gdG5bZXh0XSB0cltld2luZF0gdHVbbm1lbnVdIHVuZG9sW2lzdF0gdmVyYltvc2VdIHZpbVtncmVwXSB2bWFwY1tsZWFyXSB3aFtpbGVdIHdpbltzaXplXSB3cSB3dltpbWluZm9dIHhtW2FwXSBYTUxlbnQgeG5vcmVtZW51Ci1zeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhYm9bdmVsZWZ0XSBhcmdlW2RpdF0gYXNbY2lpXSBiZltpcnN0XSBib1t0cmlnaHRdIGJyZWFrbFtpc3RdIGJ1ZmZlcnMgY2FkW2RleHByXSBjYyBjZltpbGVdIGNbaGFuZ2VdIGNsYVtzdF0gY25bZXh0XSBjb2xvW3JzY2hlbWVdIGNvcGVbbl0gY3JbZXdpbmRdIGRbZWxldGVdIGRpZmZwYXRjaCBkaWdbcmFwaHNdIGRzW2VhcmNoXSBlY2hvbiBlbWVudSogZW5kd1toaWxlXSBmW2lsZV0gZmluaVtzaF0gZm9sZGRvY1tsb3NlZF0gZ29bdG9dIGhbZWxwXSBoaWRbZV0gaWpbdW1wXSBpc3BbbGl0XSBrIGxhZGRiW3VmZmVyXSBsYVtzdF0gbGNoW2Rpcl0gbGV4W3ByXSBsZ2V0ZVt4cHJdIGxoW2VscGdyZXBdIGxsaVtzdF0gbG5ld1tlcl0gbE5mW2lsZV0gbG9ja3ZbYXJdIGxwW3JldmlvdXNdIGx2W2ltZ3JlcF0gbWFbcmtdIG1rW2V4cmNdIG1rdltpbXJjXSBteltzY2hlbWVdIE5bZXh0XSBvbWFwY1tsZWFyXSBwY1tsb3NlXSBwb1twXSBwcmVbc2VydmVdIHByb2ZkW2VsXSBwc1tlYXJjaF0gcHRsW2FzdF0gcHRyW2V3aW5kXSBweWZbaWxlXSBxdWl0YVtsbF0gcmVkW29dIHJlc1tpemVdIHJpW2dodF0gcnVieWZbaWxlXSBzYW5bZGJveF0gc2JmW2lyc3RdIHNiTltleHRdIHNjcmlwdGVbbmNvZGluZ10gc2V0Z1tsb2JhbF0gc2hbZWxsXSBzbGFbc3RdIHNtYXBjW2xlYXJdIHNOW2V4dF0gc25vcmVtZSBzcGVsbGRbdW1wXSBzcGVsbHVbbmRvXSBzcmVbd2luZF0gc3RhcnRyW2VwbGFjZV0gc3RzW2VsZWN0XSBzdXNbcGVuZF0gdGFiIHRhYmZbaW5kXSB0YWJuZXcgdGFicFtyZXZpb3VzXSB0YWdzIHRlW2Fyb2ZmXSB0bFthc3RdIHROW2V4dF0gdHJ5IHVuYVtiYnJldmlhdGVdIHVuaFtpZGVdIHZlW3JzaW9uXSB2aW1ncmVwYVtkZF0gdm5lW3ddIHdpbmNbbWRdIHduW2V4dF0gd3FhW2xsXSBYIHhtYXBjW2xlYXJdIFhNTG5zIHh1bm1lCi1zeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhbFtsXSBhcmdnW2xvYmFsXSBiYWRbZF0gYmxbYXN0XSBicFtyZXZpb3VzXSBicltld2luZF0gYnVuW2xvYWRdIGNhZGRmW2lsZV0gY2NsW29zZV0gY2ZpcltzdF0gY2hhbmdlcyBjbFtpc3RdIGNOW2V4dF0gY29tY1tsZWFyXSBjb1tweV0gY3VuYVtiYnJldl0gZGVsZlt1bmN0aW9uXSBkaWZmcHVbdF0gZGlbc3BsYXldIGRzcFtsaXRdIGVbZGl0XSBlbmRmb1tyXSBlbmVbd10gZmlsZXMgZmlyW3N0XSBmb2xkZFtvb3Blbl0gZ3JbZXBdIGhlbHBmW2luZF0gaGlzW3RvcnldIGlsW2lzdF0gaXVuYVtiYnJldl0ga2VlcGFsdCBsYWRbZGV4cHJdIGxhdGVyIGxjbFtvc2VdIGxmW2lsZV0gbGdbZXRmaWxlXSBsW2lzdF0gbG1ha1tlXSBsbmVbeHRdIGxuW29yZW1hcF0gbG9sW2Rlcl0gbHJbZXdpbmRdIGx2aW1ncmVwYVtkZF0gbWFya3MgbWtzW2Vzc2lvbl0gbW9kW2VdIG5ia2V5IG5tYXBjW2xlYXJdIG9uW2x5XSBwZWRbaXRdIHBvcHUgcHJldltpb3VzXSBwcm9mW2lsZV0gcHRhW2ddIHB0bltleHRdIHB0c1tlbGVjdF0gcHlbdGhvbl0gcltlYWRdIHJlZHJbYXddIHJldFthYl0gcmlnaHRiW2Vsb3ddIHJ1W250aW1lXSBzYVtyZ3VtZW50XSBzYmxbYXN0XSBzYnBbcmV2aW91c10gc2NyaXBbdG5hbWVzXSBzZXRsW29jYWxdIHNpZ24gc2xbZWVwXSBzbWUgc25pW2ZmXSBzbm9yZW1lbnUgc3BlW2xsZ29vZF0gc3BlbGx3W3JvbmddIHN0YVtnXSBzdGpbdW1wXSBzdW5baGlkZV0gc3ZbaWV3XSB0YWJjW2xvc2VdIHRhYmZpcltzdF0gdGFibltleHRdIHRhYnJbZXdpbmRdIHRjW2xdIHRmW2lyc3RdIHRtIHRvW3BsZWZ0XSB0c1tlbGVjdF0gdVtuZG9dIHVubG9bY2t2YXJdIHZlcnRbaWNhbF0gdmlbc3VhbF0gdnNbcGxpdF0gd2luZG8gd05bZXh0XSB3W3JpdGVdIHhhW2xsXSB4bWUgeG5bb3JlbWFwXSB4dW5tZW51Ci1zeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhcmdhW2RkXSBhcmdsW29jYWxdIGJhW2xsXSBibVtvZGlmaWVkXSBicmVhW2tdIGJyb1t3c2VdIGJ3W2lwZW91dF0gY2FsW2xdIGNkIGNnZXRiW3VmZmVyXSBjaGRbaXJdIGNsb1tzZV0gY25mW2lsZV0gY29tcFtpbGVyXSBjcGZbaWxlXSBjd1tpbmRvd10gZGVsbVthcmtzXSBkaWZmc3BsaXQgZGpbdW1wXSBlYXJsaWVyIGVsW3NlXSBlbmRmW3VuY3Rpb25dIGV4IGZpbGV0eXBlIGZpeFtkZWxdIGZvbGRvW3Blbl0gZ3JlcGFbZGRdIGhlbHBnW3JlcF0gaWFiY1tsZWFyXSBpbWFwY1tsZWFyXSBqW29pbl0ga2VlcGpbdW1wc10gbGFkZGZbaWxlXSBsYlt1ZmZlcl0gbGVbZnRdIGxmaXJbc3RdIGxncltlcF0gbGwgbG1bYXBdIGxOW2V4dF0gbG9bYWR2aWV3XSBsb3BbZW5dIGxzIGx3W2luZG93XSBtYXRbY2hdIG1rc3BbZWxsXSBtW292ZV0gbmV3IG5vaFtsc2VhcmNoXSBvW3Blbl0gcGVbcmxdIHBvcHVbcF0gcFtyaW50XSBwcm9tcHRmW2luZF0gcHRmW2lyc3RdIHB0TltleHRdIHB1W3RdIHFhW2xsXSByZWNbb3Zlcl0gcmVkcmF3c1t0YXR1c10gcmV0dVtybl0gcnViW3ldIHJ2W2ltaW5mb10gc2F2W2Vhc10gc2JtW29kaWZpZWRdIHNicltld2luZF0gc2VbdF0gc2ZbaW5kXSBzaWxbZW50XSBzbVthZ2ljXSBzbWVudSBzbm9bbWFnaWNdIHNvclt0XSBzcGVsbGlbbmZvXSBzcFtsaXRdIHN0YXJ0Z1tyZXBsYWNlXSBzdFtvcF0gc3VubWUgc3luY2JpbmQgdGFiZFtvXSB0YWJsW2FzdF0gdGFiTltleHRdIHRhYnMgdGNsZFtvXSB0aFtyb3ddIHRtW2VudV0gdHBbcmV2aW91c10gdHUgdW5kb2pbb2luXSB1cFtkYXRlXSB2aWVbd10gdml1W3NhZ2VdIHdhW2xsXSB3aW5wW29zXSB3cFtyZXZpb3VzXSB3c1t2ZXJiXSB4W2l0XSB4bWVudSB4bm9yZW1lIHlbYW5rXQotc3luIGtleXdvcmQgdmltQ29tbWFuZCBjb250YWluZWQJYXJnZFtlbGV0ZV0gYXJbZ3NdIGJkW2VsZXRlXSBibltleHRdIGJyZWFrYVtkZF0gYnVmZG8gY2FiY1tsZWFyXSBjYXRbY2hdIGNlW250ZXJdIGNnZXRlW3hwcl0gY2hlW2NrcGF0aF0gY21hcGNbbGVhcl0gY05mW2lsZV0gY29uZltpcm1dIGNwW3JldmlvdXNdIGRlYnVnZ1tyZWVkeV0gZGlmZmdbZXRdIGRpZmZ0aGlzIGRsW2lzdF0gZWNob2VbcnJdIGVsc2VpW2ZdIGVuW2RpZl0gZXhpW3RdIGZpbmFbbGx5XSBmb1tsZF0gZm9yIAorc3luIGtleXdvcmQgdmltQ29tbWFuZCBjb250YWluZWQJYWJjW2xlYXJdIGFyZ2RvIGFyZ3VbbWVudF0gYmVsW293cmlnaHRdIGJOW2V4dF0gYnJlYWtkW2VsXSBiW3VmZmVyXSBjYWRkYlt1ZmZlcl0gY2JbdWZmZXJdIGNleFtwcl0gY2dbZXRmaWxlXSBjaGVja3RbaW1lXSBjbmV3W2VyXSBjb2xbZGVyXSBjb25bdGludWVdIGNxW3VpdF0gZGVsY1tvbW1hbmRdIGRpZmZvZmYgZGlmZnVbcGRhdGVdIGRyW29wXSBlY2hvbVtzZ10gZW1bZW51XSBlbltkaWZdIGV4IGZpbGVzIGZpbmlbc2hdIGZvbGRjW2xvc2VdIGZvciBncmVwYVtkZF0gaGVscGdbcmVwXSBpYWJjW2xlYXJdIGltYXBjW2xlYXJdIGpbb2luXSBrZWVwalt1bXBzXSBsYWRkZltpbGVdIGxiW3VmZmVyXSBsZVtmdF0gbGZpcltzdF0gbGdyW2VwXSBsbCBsbWFwY1tsZWFyXSBsbmZbaWxlXSBsb2Nrdlthcl0gbHBbcmV2aW91c10gbHZbaW1ncmVwXSBtYVtya10gbWtbZXhyY10gbWt2W2ltcmNdIG16W3NjaGVtZV0gTltleHRdIG9sW2RmaWxlc10gb3B0W2lvbnNdIHBlcmxkW29dIHBwW29wXSBQW3JpbnRdIHByb21wdHJbZXBsXSBwdGpbdW1wXSBwdHBbcmV2aW91c10gcHdbZF0gcVt1aXRdIHJlZGlbcl0gcmVnW2lzdGVyc10gcmV3W2luZF0gcnVieWRbb10gc2FsW2xdIHNiYVtsbF0gc2JuW2V4dF0gc2JbdWZmZXJdIHNldGZbaWxldHlwZV0gc2ZpcltzdF0gc2ltW2FsdF0gc21bYXBdIHNOW2V4dF0gc25vcmVtZW51IHNwZVtsbGdvb2RdIHNwZWxsd1tyb25nXSBzdGFbZ10gc3RqW3VtcF0gc3VuW2hpZGVdIHN2W2lld10gdGFiY1tsb3NlXSB0YWJmaXJbc3RdIHRhYm5bZXh0XSB0YWJyW2V3aW5kXSB0Y1tsXSB0ZltpcnN0XSB0bSB0b1twbGVmdF0gdHNbZWxlY3RdIHVbbmRvXSB1bmxvW2NrdmFyXSB2ZXJ0W2ljYWxdIHZpW3N1YWxdIHZzW3BsaXRdIHdpbmRvIHdOW2V4dF0gd1tyaXRlXSB4YVtsbF0geG1lbnUgeG5vcmVtZW51CitzeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhYm9bdmVsZWZ0XSBhcmdlW2RpdF0gYXNbY2lpXSBiZltpcnN0XSBib1t0cmlnaHRdIGJyZWFrbFtpc3RdIGJ1ZmZlcnMgY2FkW2RleHByXSBjYyBjZltpbGVdIGNbaGFuZ2VdIGNsYVtzdF0gY25bZXh0XSBjb2xvW3JzY2hlbWVdIGNvcGVbbl0gY3JbZXdpbmRdIGRbZWxldGVdIGRpZmZwYXRjaCBkaWdbcmFwaHNdIGRzW2VhcmNoXSBlY2hvbiBlbWVudSogZW5kdFtyeV0gZXhpW3RdIGZpbGV0eXBlIGZpcltzdF0gZm9sZGRvY1tsb3NlZF0gZnVbbmN0aW9uXSBoYVtyZGNvcHldIGhlbHB0W2Fnc10gaWYgaXNbZWFyY2hdIGp1W21wc10ga2VlW3BtYXJrc10gbGFuW2d1YWdlXSBsY1tkXSBsZWZ0YVtib3ZlXSBsZ2V0Ylt1ZmZlcl0gbGdyZXBhW2RkXSBsbGFbc3RdIGxuZXdbZXJdIGxOZltpbGVdIGxvbFtkZXJdIGxyW2V3aW5kXSBsdmltZ3JlcGFbZGRdIG1hcmtzIG1rc1tlc3Npb25dIG1vZFtlXSBuYmtleSBubWFwY1tsZWFyXSBvbWFwY1tsZWFyXSBwY1tsb3NlXSBwb1twXSBwcmVbc2VydmVdIHByb2ZkW2VsXSBwc1tlYXJjaF0gcHRsW2FzdF0gcHRyW2V3aW5kXSBweWZbaWxlXSBxdWl0YVtsbF0gcmVkW29dIHJlc1tpemVdIHJpW2dodF0gcnVieWZbaWxlXSBzYW5bZGJveF0gc2JmW2lyc3RdIHNiTltleHRdIHNjcmlwdGVbbmNvZGluZ10gc2V0Z1tsb2JhbF0gc2hbZWxsXSBzbGFbc3RdIHNtZSBzbmlbZmZdIHNvclt0XSBzcGVsbGlbbmZvXSBzcFtsaXRdIHN0YXJ0Z1tyZXBsYWNlXSBzdFtvcF0gc3VubWUgc3luY2JpbmQgdGFiZFtvXSB0YWJsW2FzdF0gdGFiTltleHRdIHRhYnMgdGNsZFtvXSB0aFtyb3ddIHRtW2VudV0gdHBbcmV2aW91c10gdHUgdW5kb2pbb2luXSB1cFtkYXRlXSB2aWVbd10gdml1W3NhZ2VdIHdhW2xsXSB3aW5wW29zXSB3cFtyZXZpb3VzXSB3c1t2ZXJiXSB4W2l0XSBYTUxlbnQgeHVubWUKK3N5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFsW2xdIGFyZ2dbbG9iYWxdIGJhZFtkXSBibFthc3RdIGJwW3JldmlvdXNdIGJyW2V3aW5kXSBidW5bbG9hZF0gY2FkZGZbaWxlXSBjY2xbb3NlXSBjZmlyW3N0XSBjaGFuZ2VzIGNsW2lzdF0gY05bZXh0XSBjb21jW2xlYXJdIGNvW3B5XSBjdW5hW2JicmV2XSBkZWxmW3VuY3Rpb25dIGRpZmZwdVt0XSBkaVtzcGxheV0gZHNwW2xpdF0gZVtkaXRdIGVuZGZvW3JdIGVuZHdbaGlsZV0gZXh1W3NhZ2VdIGZpbmFbbGx5XSBmaXhbZGVsXSBmb2xkZFtvb3Blbl0gZ29bdG9dIGhbZWxwXSBoaWRbZV0gaWpbdW1wXSBpc3BbbGl0XSBrIGxhZGRiW3VmZmVyXSBsYVtzdF0gbGNoW2Rpcl0gbGV4W3ByXSBsZ2V0ZVt4cHJdIGxoW2VscGdyZXBdIGxsaVtzdF0gbG5lW3h0XSBsb1thZHZpZXddIGxvcFtlbl0gbHMgbHdbaW5kb3ddIG1hdFtjaF0gbWtzcFtlbGxdIG1bb3ZlXSBuZXcgbm9oW2xzZWFyY2hdIG9uW2x5XSBwZWRbaXRdIHBvcHUgcHJldltpb3VzXSBwcm9mW2lsZV0gcHRhW2ddIHB0bltleHRdIHB0c1tlbGVjdF0gcHlbdGhvbl0gcltlYWRdIHJlZHJbYXddIHJldFthYl0gcmlnaHRiW2Vsb3ddIHJ1W250aW1lXSBzYVtyZ3VtZW50XSBzYmxbYXN0XSBzYnBbcmV2aW91c10gc2NyaXBbdG5hbWVzXSBzZXRsW29jYWxdIHNpZ24gc2xbZWVwXSBzbWVudSBzbm9bbWFnaWNdIHNvW3VyY2VdIHNwZWxscltlcGFsbF0gc3ByW2V2aW91c10gc3Rhclt0aW5zZXJ0XSBzdG9waVtuc2VydF0gc3VubWVudSB0IHRhYmVbZGl0XSB0YWJtW292ZV0gdGFib1tubHldIHRhW2ddIHRjbGZbaWxlXSB0alt1bXBdIHRuW2V4dF0gdHJbZXdpbmRdIHR1W25tZW51XSB1bmRvbFtpc3RdIHZlcmJbb3NlXSB2aW1bZ3JlcF0gdm1hcGNbbGVhcl0gd2hbaWxlXSB3aW5bc2l6ZV0gd3Egd3ZbaW1pbmZvXSB4bWFwY1tsZWFyXSBYTUxucyB4dW5tZW51CitzeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhcmdhW2RkXSBhcmdsW29jYWxdIGJhW2xsXSBibVtvZGlmaWVkXSBicmVhW2tdIGJyb1t3c2VdIGJ3W2lwZW91dF0gY2FsW2xdIGNkIGNnZXRiW3VmZmVyXSBjaGRbaXJdIGNsb1tzZV0gY25mW2lsZV0gY29tcFtpbGVyXSBjcGZbaWxlXSBjd1tpbmRvd10gZGVsbVthcmtzXSBkaWZmc3BsaXQgZGpbdW1wXSBlYXJsaWVyIGVsW3NlXSBlbmRmW3VuY3Rpb25dIGVuZVt3XSBmW2lsZV0gZmluW2RdIGZvW2xkXSBmb2xkb1twZW5dIGdyW2VwXSBoZWxwZltpbmRdIGhpc1t0b3J5XSBpbFtpc3RdIGl1bmFbYmJyZXZdIGtlZXBhbHQgbGFkW2RleHByXSBsYXRlciBsY2xbb3NlXSBsZltpbGVdIGxnW2V0ZmlsZV0gbFtpc3RdIGxtYWtbZV0gbE5bZXh0XSBsb2Nba21hcmtzXSBscGZbaWxlXSBsdFthZ10gbWFrW2VdIG1lbnV0W3JhbnNsYXRlXSBta3ZpZVt3XSBtemZbaWxlXSBuW2V4dF0gbnVbbWJlcl0gb1twZW5dIHBlW3JsXSBwb3B1W3BdIHBbcmludF0gcHJvbXB0ZltpbmRdIHB0ZltpcnN0XSBwdE5bZXh0XSBwdVt0XSBxYVtsbF0gcmVjW292ZXJdIHJlZHJhd3NbdGF0dXNdIHJldHVbcm5dIHJ1Ylt5XSBydltpbWluZm9dIHNhdltlYXNdIHNibVtvZGlmaWVkXSBzYnJbZXdpbmRdIHNlW3RdIHNmW2luZF0gc2lsW2VudF0gc21bYWdpY10gc25bZXh0XSBzbm9yZW1lIHNwZWxsZFt1bXBdIHNwZWxsdVtuZG9dIHNyZVt3aW5kXSBzdGFydHJbZXBsYWNlXSBzdHNbZWxlY3RdIHN1c1twZW5kXSB0YWIgdGFiZltpbmRdIHRhYm5ldyB0YWJwW3JldmlvdXNdIHRhZ3MgdGVbYXJvZmZdIHRsW2FzdF0gdE5bZXh0XSB0cnkgdW5hW2JicmV2aWF0ZV0gdW5oW2lkZV0gdmVbcnNpb25dIHZpbWdyZXBhW2RkXSB2bmVbd10gd2luY1ttZF0gd25bZXh0XSB3cWFbbGxdIFggeG1lIHhub3JlbWUgeVthbmtdCitzeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhcmdkW2VsZXRlXSBhcltnc10gYmRbZWxldGVdIGJuW2V4dF0gYnJlYWthW2RkXSBidWZkbyBjYWJjW2xlYXJdIGNhdFtjaF0gY2VbbnRlcl0gY2dldGVbeHByXSBjaGVbY2twYXRoXSBjbWFwY1tsZWFyXSBjTmZbaWxlXSBjb25mW2lybV0gY3BbcmV2aW91c10gZGVidWdnW3JlZWR5XSBkaWZmZ1tldF0gZGlmZnRoaXMgZGxbaXN0XSBlY2hvZVtycl0gZWxzZWlbZl0gCiBzeW4gbWF0Y2ggICB2aW1Db21tYW5kIGNvbnRhaW5lZAkiXDx6Wy0rXi49XSIKIAogIiB2aW1PcHRpb25zIGFyZSBjYXVnaHQgb25seSB3aGVuIGNvbnRhaW5lZCBpbiBhIHZpbVNldCB7e3syCkBAIC0zMyw3ICszMyw3IEBACiBzeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFsdGtleW1hcCBhcmFiaWMgYXV0b3dyaXRlIGJhY2t1cGNvcHkgYmRpciBiaW4gYm9tYiBidCBjZCBjaSBjaW53IGNvIGNvbXBsZXRlZnVuYyBjcCBjc2NvcGV0YWcgY3N0byBkZWJ1ZyBkaWN0IGRpciBlYiBlbmMgZXJyb3JiZWxscyBleHBhbmR0YWIgZmRsIGZlbmMgZmlsZWZvcm1hdCBmbWwgZm9sZGlnbm9yZSBmb2xkb3BlbiBmcyBnZm4gZ3JlcHByZyBndWloZWFkcm9vbSBoZWxwbGFuZyBoaXN0b3J5IGhscyBpbWFjdGl2YXRla2V5IGltaW5zZXJ0IGluZGUgaW5zZXJ0bW9kZSBpc2tleXdvcmQga2V5bW9kZWwgbGFzdHN0YXR1cyBsaXNwIGxwbCBtYWdpYyBtYXhmdW5jZGVwdGggbWVudWl0ZW1zIG1tIG1vZGlmaWFibGUgbW91c2VtIG1wcyBudW1iZXIgb3BlbmRldmljZSBwYXN0ZSBwZXggcG1iY3MgcHJpbnRlbmNvZGluZyBwcm9tcHQgcmR0IHJpIAogCiAiIHZpbU9wdGlvbnM6IFRoZXNlIGFyZSB0aGUgdHVybi1vZmYgc2V0dGluZyB2YXJpYW50cyB7e3syCi1zeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCW5vYWNkIG5vYWxsb3dyZXZpbnMgbm9hbnRpYWxpYXMgbm9hcmFiaWMgbm9hcnNoYXBlIG5vYXV0b3JlYWQgbm9hdyBub2JhbGxvb25ldmFsIG5vYmluYXJ5IG5vYmsgbm9idWZsaXN0ZWQgbm9jaW4gbm9jb25maXJtIG5vY29weWluZGVudCBub2NzY29wZXZlcmJvc2Ugbm9jdWMgbm9jdXJzb3JsaW5lIG5vZGcgbm9kaXNhYmxlIG5vZWIgbm9lZGNvbXBhdGlibGUgbm9lbmRvZmxpbmUgbm9lcXVhbGFsd2F5cyBub2VzY2tleXMgbm9leCBub2V4cmMgbm9mayBub2ZvbGRlbmFibGUgbm9nZGVmYXVsdCBub2hpZCBub2hrIG5vaGttYXBwIG5vaGxzIG5vaWMgbm9pZ25vcmVjYXNlIG5vaW1jIG5vaW1kIG5vaW5mIG5vaW5zZXJ0bW9kZSBub2pvaW5zcGFjZXMgbm9sYXp5cmVkcmF3IG5vbGluZWJyZWFrIG5vbGlzdCBub2xwbCBub21hIG5vbWFnaWMgbm9tbCBub21vZGVsaW5lIG5vbW9kaWZpZWQgbm9tb3VzZWYgbm9tb3VzZWhpZGUgbm9udW1iZXIgbm9vcGVuZGV2aWNlIG5vcGkgbm9wcmV2aWV3d2luZG93IG5vcHZ3IG5vcmVtYXAgbm9yZXZpbnMgbm9yaWdodGxlZnQgbm9ybCBub3JvIG5vcnUgbm9zYiBub3NjYiBub3NjcyBub3NmdCBub3NoZWxsdGVtcCBub3Nob3J0bmFtZSBub3Nob3dmdWxsdGFnIG5vc2hvd21vZGUgbm9zbSBub3NtYXJ0aW5kZW50IG5vc21kIG5vc29sIG5vc3BsaXRiZWxvdyBub3NwciBub3NzbCBub3N0YXJ0b2ZsaW5lIG5vc3dhcGZpbGUgbm90YSBub3RhZ3JlbGF0aXZlIG5vdGJpIG5vdGJzIG5vdGVyc2Ugbm90ZXh0bW9kZSBub3Rnc3Qgbm90aW1lb3V0IG5vdG8gbm90ciBub3R0eWJ1aWx0aW4gbm90eCBub3Zpc3VhbGJlbGwgbm93YXJuIG5vd2VpcmRpbnZlcnQgbm93Zncgbm93aW5maXhoZWlnaHQgbm93aXYgbm93cmFwIG5vd3JpdGUgbm93cml0ZWJhY2t1cAorc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlub2FjZCBub2FsbG93cmV2aW5zIG5vYW50aWFsaWFzIG5vYXJhYmljIG5vYXJzaGFwZSBub2F1dG9yZWFkIG5vYXcgbm9iYWxsb29uZXZhbCBub2JpbmFyeSBub2JrIG5vYnVmbGlzdGVkIG5vY2luIG5vY29uZmlybSBub2NvcHlpbmRlbnQgbm9jc2NvcGV2ZXJib3NlIG5vY3VjIG5vY3Vyc29ybGluZSBub2RnIG5vaW1kaXNhYmxlIG5vZWIgbm9lZGNvbXBhdGlibGUgbm9lbmRvZmxpbmUgbm9lcXVhbGFsd2F5cyBub2VzY2tleXMgbm9leCBub2V4cmMgbm9mayBub2ZvbGRlbmFibGUgbm9nZGVmYXVsdCBub2hpZCBub2hrIG5vaGttYXBwIG5vaGxzIG5vaWMgbm9pZ25vcmVjYXNlIG5vaW1jIG5vaW1kIG5vaW5mIG5vaW5zZXJ0bW9kZSBub2pvaW5zcGFjZXMgbm9sYXp5cmVkcmF3IG5vbGluZWJyZWFrIG5vbGlzdCBub2xwbCBub21hIG5vbWFnaWMgbm9tbCBub21vZGVsaW5lIG5vbW9kaWZpZWQgbm9tb3VzZWYgbm9tb3VzZWhpZGUgbm9udW1iZXIgbm9vcGVuZGV2aWNlIG5vcGkgbm9wcmV2aWV3d2luZG93IG5vcHZ3IG5vcmVtYXAgbm9yZXZpbnMgbm9yaWdodGxlZnQgbm9ybCBub3JvIG5vcnUgbm9zYiBub3NjYiBub3NjcyBub3NmdCBub3NoZWxsdGVtcCBub3Nob3J0bmFtZSBub3Nob3dmdWxsdGFnIG5vc2hvd21vZGUgbm9zbSBub3NtYXJ0aW5kZW50IG5vc21kIG5vc29sIG5vc3BsaXRiZWxvdyBub3NwciBub3NzbCBub3N0YXJ0b2ZsaW5lIG5vc3dhcGZpbGUgbm90YSBub3RhZ3JlbGF0aXZlIG5vdGJpIG5vdGJzIG5vdGVyc2Ugbm90ZXh0bW9kZSBub3Rnc3Qgbm90aW1lb3V0IG5vdG8gbm90ciBub3R0eWJ1aWx0aW4gbm90eCBub3Zpc3VhbGJlbGwgbm93YXJuIG5vd2VpcmRpbnZlcnQgbm93Zncgbm93aW5maXhoZWlnaHQgbm93aXYgbm93cmFwIG5vd3JpdGUgbm93cml0ZWJhY2t1cAogc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlub2FpIG5vYWx0a2V5bWFwIG5vYXIgbm9hcmFiaWNzaGFwZSBub2F1dG9jaGRpciBub2F1dG93cml0ZSBub2F3YSBub2JldmFsIG5vYmlvc2sgbm9ibCBub2NmIG5vY2luZGVudCBub2NvbnNrIG5vY3Agbm9jc3Qgbm9jdWwgbm9kZWNvIG5vZGlmZiBub2VhIG5vZWQgbm9layBub2VvbCBub2Vycm9yYmVsbHMgbm9ldCBub2V4cGFuZHRhYiBub2ZlbiBub2ZrbWFwIG5vZ2Qgbm9ndWlwdHkgbm9oaWRkZW4gbm9oa21hcCBub2hrcCBub2hsc2VhcmNoIG5vaWNvbiBub2ltIG5vaW1jbWRsaW5lIG5vaW5jc2VhcmNoIG5vaW5mZXJjYXNlIG5vaXMgbm9qcyBub2xiciBub2xpc3Agbm9sb2FkcGx1Z2lucyBub2x6IG5vbWFjYXRzdWkgbm9taCBub21vZCBub21vZGlmaWFibGUgbm9tb3JlIG5vbW91c2Vmb2N1cyBub251IG5vb2RldiBub3Bhc3RlIG5vcHJlc2VydmVpbmRlbnQgbm9wcm9tcHQgbm9yZWFkb25seSBub3Jlc3RvcmVzY3JlZW4gbm9yaSBub3JpZ2h0bGVmdGNtZCBub3JsYyBub3JzIG5vcnVsZXIgbm9zYyBub3Njcm9sbGJpbmQgbm9zZWN1cmUgbm9zaGVsbHNsYXNoIG5vc2hpZnRyb3VuZCBub3Nob3djbWQgbm9zaG93bWF0Y2ggbm9zaSBub3NtYXJ0Y2FzZSBub3NtYXJ0dGFiIG5vc24gbm9zcGVsbCBub3NwbGl0cmlnaHQgbm9zciBub3N0YSBub3N0bXAgbm9zd2Ygbm90YWdic2VhcmNoIG5vdGFnc3RhY2sgbm90YmlkaSBub3Rlcm1iaWRpIG5vdGV4dGF1dG8gbm90ZiBub3RpbGRlb3Agbm90aXRsZSBub3RvcCBub3R0aW1lb3V0IG5vdHR5ZmFzdCBub3ZiIG5vd2Egbm93YiBub3dmaCBub3dpbGRtZW51IG5vd2luZml4d2lkdGggbm93bW51IG5vd3JhcHNjYW4gbm93cml0ZWFueSBub3dzCiBzeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCW5vYWttIG5vYW50aSBub2FyYWIgbm9hcmkgbm9hdXRvaW5kZW50IG5vYXV0b3dyaXRlYWxsIG5vYmFja3VwIG5vYmluIG5vYmlvc2tleSBub2JvbWIgbm9jaSBub2NvbXBhdGlibGUgbm9jb25za2V5IG5vY3Njb3BldGFnIG5vY3N2ZXJiIG5vY3Vyc29yY29sdW1uIG5vZGVsY29tYmluZSBub2RpZ3JhcGggCiAKQEAgLTYyLDcgKzYyLDcgQEAKIHN5biBrZXl3b3JkIHZpbUF1dG9FdmVudCBjb250YWluZWQJQnVmQWRkIEJ1ZkNyZWF0ZSBCdWZEZWxldGUgQnVmRW50ZXIgQnVmRmlsZVBvc3QgQnVmRmlsZVByZSBCdWZIaWRkZW4gQnVmTGVhdmUgQnVmTmV3IEJ1Zk5ld0ZpbGUgQnVmUmVhZCBCdWZSZWFkQ21kIEJ1ZlJlYWRQb3N0IEJ1ZlJlYWRQcmUgQnVmVW5sb2FkIEJ1ZldpbkVudGVyIEJ1ZldpbkxlYXZlIEJ1ZldpcGVvdXQgQnVmV3JpdGUgQnVmV3JpdGVDbWQgQnVmV3JpdGVQb3N0IEJ1ZldyaXRlUHJlIENtZC1ldmVudCBDbWR3aW5FbnRlciBDbWR3aW5MZWF2ZSBDb2xvclNjaGVtZSBDdXJzb3JIb2xkIEN1cnNvckhvbGRJIEN1cnNvck1vdmVkIEN1cnNvck1vdmVkSSBFbmNvZGluZ0NoYW5nZWQgRmlsZUFwcGVuZENtZCBGaWxlQXBwZW5kUG9zdCBGaWxlQXBwZW5kUHJlIEZpbGVDaGFuZ2VkUk8gRmlsZUNoYW5nZWRTaGVsbCBGaWxlQ2hhbmdlZFNoZWxsUG9zdCBGaWxlRW5jb2RpbmcgRmlsZVJlYWRDbWQgRmlsZVJlYWRQb3N0IEZpbGVSZWFkUHJlIEZpbGVUeXBlIEZpbGVXcml0ZUNtZCBGaWxlV3JpdGVQb3N0IEZpbGVXcml0ZVByZSBGaWx0ZXJSZWFkUG9zdCBGaWx0ZXJSZWFkUHJlIEZpbHRlcldyaXRlUG9zdCBGaWx0ZXJXcml0ZVByZSBGb2N1c0dhaW5lZCBGb2N1c0xvc3QgRnVuY1VuZGVmaW5lZCBHVUlFbnRlciBHVUlGYWlsZWQgSW5zZXJ0Q2hhbmdlIEluc2VydEVudGVyIEluc2VydExlYXZlIE1lbnVQb3B1cCBRdWlja0ZpeENtZFBvc3QgUXVpY2tGaXhDbWRQcmUgUmVtb3RlUmVwbHkgU2Vzc2lvbkxvYWRQb3N0IFNoZWxsQ21kUG9zdCBTaGVsbEZpbHRlclBvc3QgU291cmNlQ21kIFNvdXJjZVByZSBTcGVsbEZpbGVNaXNzaW5nIFN0ZGluUmVhZFBvc3QgU3RkaW5SZWFkUHJlIFN3YXBFeGlzdHMgU3ludGF4IFRhYkVudGVyIFRhYkxlYXZlIFRlcm1DaGFuZ2VkIFRlcm1SZXNwb25zZSBVc2VyIFVzZXJHZXR0aW5nQm9yZWQgVmltRW50ZXIgVmltTGVhdmUgVmltTGVhdmVQcmUgVmltUmVzaXplZCBXaW5FbnRlciBXaW5MZWF2ZSAKIAogIiBIaWdobGlnaHQgY29tbW9ubHkgdXNlZCBHcm91cG5hbWVzIHt7ezIKLXN5biBrZXl3b3JkIHZpbUdyb3VwIGNvbnRhaW5lZAlDb21tZW50IENvbnN0YW50IFN0cmluZyBDaGFyYWN0ZXIgTnVtYmVyIEJvb2xlYW4gRmxvYXQgSWRlbnRpZmllciBGdW5jdGlvbiBTdGF0ZW1lbnQgQ29uZGl0aW9uYWwgUmVwZWF0IExhYmVsIE9wZXJhdG9yIEtleXdvcmQgRXhjZXB0aW9uIFByZVByb2MgSW5jbHVkZSBEZWZpbmUgTWFjcm8gUHJlQ29uZGl0IFR5cGUgU3RvcmFnZUNsYXNzIFN0cnVjdHVyZSBUeXBlZGVmIFNwZWNpYWwgU3BlY2lhbENoYXIgVGFnIERlbGltaXRlciBTcGVjaWFsQ29tbWVudCBEZWJ1ZyBVbmRlcmxpbmVkIElnbm9yZSBFcnJvciBUb2RvIAorc3luIGtleXdvcmQgdmltR3JvdXAgY29udGFpbmVkCUNvbW1lbnQgQ29uc3RhbnQgU3RyaW5nIENoYXJhY3RlciBOdW1iZXIgQm9vbGVhbiBGbG9hdCBJZGVudGlmaWVyIEZ1bmN0aW9uIFN0YXRlbWVudCBDb25kaXRpb25hbCBSZXBlYXQgTGFiZWwgT3BlcmF0b3IgS2V5d29yZCBFeGNlcHRpb24gUHJlUHJvYyBJbmNsdWRlIERlZmluZSBNYWNybyBQcmVDb25kaXQgVHlwZSBTdG9yYWdlQ2xhc3MgU3RydWN0dXJlIFR5cGVkZWYgU3BlY2lhbCBTcGVjaWFsQ2hhciBUYWcgRGVsaW1pdGVyIFNwZWNpYWxDb21tZW50IERlYnVnIFVuZGVybGluZWQgSWdub3JlIEVycm9yIFRvZG8gTm9uZQogCiAiIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGdyb3VwcyB7e3syCiBzeW4ga2V5d29yZCB2aW1ITEdyb3VwIGNvbnRhaW5lZAlDdXJzb3IgQ3Vyc29yQ29sdW1uIEN1cnNvcklNIEN1cnNvckxpbmUgRGlmZkFkZCBEaWZmQ2hhbmdlIERpZmZEZWxldGUgRGlmZlRleHQgRGlyZWN0b3J5IEVycm9yTXNnIEZvbGRDb2x1bW4gRm9sZGVkIEluY1NlYXJjaCBMaW5lTnIgTWF0Y2hQYXJlbiBNZW51IE1vZGVNc2cgTW9yZU1zZyBOb25UZXh0IE5vcm1hbCBQbWVudSBQbWVudVNiYXIgUG1lbnVTZWwgUG1lbnVUaHVtYiBRdWVzdGlvbiBTY3JvbGxiYXIgU2VhcmNoIFNpZ25Db2x1bW4gU3BlY2lhbEtleSBTcGVsbEJhZCBTcGVsbENhcCBTcGVsbExvY2FsIFNwZWxsUmFyZSBTdGF0dXNMaW5lIFN0YXR1c0xpbmVOQyBUYWJMaW5lIFRhYkxpbmVGaWxsIFRhYkxpbmVTZWwgVGl0bGUgVG9vbHRpcCBWZXJ0U3BsaXQgVmlzdWFsIFZpc3VhbE5PUyBXYXJuaW5nTXNnIFdpbGRNZW51IApAQCAtOTksOCArOTksOSBAQAogc3luIG1hdGNoIHZpbUNtZFNlcAkiWzp8XVwrIglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUFkZHJlc3MsdmltQXV0b0NtZCx2aW1Db21tYW5kLHZpbUV4dENtZCx2aW1GaWx0ZXIsdmltTGV0LHZpbU1hcCx2aW1NYXJrLHZpbVNldCx2aW1TeW50YXgsdmltVXNlckNtZAogc3luIG1hdGNoIHZpbUlzQ29tbWFuZAkiXDxcaFx3Klw+Igljb250YWlucz12aW1Db21tYW5kCiBzeW4gbWF0Y2ggdmltVmFyCQkiXDxbYndnbHNhdl06XEtcaypcPiIKLXN5biBtYXRjaCB2aW1WYXIgY29udGFpbmVkCSJcPFxLXGsqXD4iCi1zeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlpbgorc3luIG1hdGNoIHZpbVZhciAgICAgICAgY29udGFpbmVkCSJcPFxLXGsqXD4iCitzeW4gbWF0Y2ggdmltRkJWYXIgICAgICBjb250YWluZWQgICAiXDxbYndnbHNhdl06XEtcaypcPiIKK3N5biBrZXl3b3JkIHZpbUNvbW1hbmQgIGNvbnRhaW5lZAlpbgogCiAiIEluc2VydGlvbnMgQW5kIEFwcGVuZHM6IGluc2VydCBhcHBlbmQge3t7MgogIiA9PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMTI3LDcgKzEyOCw3IEBACiAKICIgQXVncm91cCA6IHZpbUF1Z3JvdXBFcnJvciByZW1vdmVkIGJlY2F1c2UgbG9uZyBhdWdyb3VwcyBjYXVzZWQgc3luYydpbmcgcHJvYmxlbXMuIHt7ezIKICIgPT09PT09PSA6IFRyYWRlLW9mZjogSW5jcmVhc2luZyBzeW5jbGluZXMgd2l0aCBzbG93ZXIgZWRpdGluZyB2cyBhdWdyb3VwIEVORCBlcnJvciBjaGVja2luZy4KLXN5biBjbHVzdGVyIHZpbUF1Z3JvdXBMaXN0CWNvbnRhaW5zPXZpbUlzQ29tbWFuZCx2aW1GdW5jdGlvbix2aW1GdW5jdGlvbkVycm9yLHZpbUxpbmVDb21tZW50LHZpbVNwZWNGaWxlLHZpbU9wZXIsdmltTnVtYmVyLHZpbUNvbW1lbnQsdmltU3RyaW5nLHZpbVN1YnN0LHZpbU1hcmssdmltUmVnaXN0ZXIsdmltQWRkcmVzcyx2aW1GaWx0ZXIsdmltQ21wbHhSZXBlYXQsdmltQ29tbWVudCx2aW1MZXQsdmltU2V0LHZpbUF1dG9DbWQsdmltUmVnaW9uLHZpbVN5bkxpbmUsdmltTm90YXRpb24sdmltQ3RybENoYXIsdmltRnVuY1Zhcix2aW1Db250aW51ZQorc3luIGNsdXN0ZXIgdmltQXVncm91cExpc3QJY29udGFpbnM9dmltSXNDb21tYW5kLHZpbUZ1bmNOYW1lLHZpbUZ1bmN0aW9uLHZpbUZ1bmN0aW9uRXJyb3IsdmltTGluZUNvbW1lbnQsdmltU3BlY0ZpbGUsdmltT3Blcix2aW1OdW1iZXIsdmltT3BlclBhcmVuLHZpbUNvbW1lbnQsdmltU3RyaW5nLHZpbVN1YnN0LHZpbU1hcmssdmltUmVnaXN0ZXIsdmltQWRkcmVzcyx2aW1GaWx0ZXIsdmltQ21wbHhSZXBlYXQsdmltQ29tbWVudCx2aW1MZXQsdmltU2V0LHZpbUF1dG9DbWQsdmltUmVnaW9uLHZpbVN5bkxpbmUsdmltTm90YXRpb24sdmltQ3RybENoYXIsdmltRnVuY1Zhcix2aW1Db250aW51ZQogaWYgZXhpc3RzKCJnOnZpbXN5bl9mb2xkaW5nIikgJiYgZzp2aW1zeW5fZm9sZGluZyA9fiAnYScKICBzeW4gcmVnaW9uICB2aW1BdWdyb3VwCWZvbGQgc3RhcnQ9Ilw8YXVnXCVbcm91cF1cPlxzXCtcS1xrKiIgZW5kPSJcPGF1Z1wlW3JvdXBdXD5cc1wrW2VFXVtuTl1bZERdXD4iCWNvbnRhaW5zPXZpbUF1Z3JvdXBLZXksdmltQXV0b0NtZCxAdmltQXVncm91cExpc3Qga2VlcGVuZAogZWxzZQpAQCAtMTQxLDE1NiArMTQyLDE1NCBAQAogCiAiIE9wZXJhdG9yczoge3t7MgogIiA9PT09PT09PT0KLXN5biBjbHVzdGVyIHZpbU9wZXJHcm91cAljb250YWlucz12aW1PcGVyLHZpbU9wZXJQYXJlbix2aW1OdW1iZXIsdmltU3RyaW5nLHZpbVJlZ2lzdGVyLHZpbUNvbnRpbnVlCi1zeW4gbWF0Y2ggIHZpbU9wZXIJIlwoPT1cfCE9XHw+PVx8PD1cfD1cflx8IVx+XHw+XHw8XHw9XClbPyNdXHswLDJ9Iglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN0cmluZyx2aW1TcGVjRmlsZQotc3luIG1hdGNoICB2aW1PcGVyCSJ8fFx8JiZcfFstKy5dIglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN0cmluZyx2aW1TcGVjRmlsZQotc3luIHJlZ2lvbiB2aW1PcGVyUGFyZW4gCW9uZWxpbmUgbWF0Y2hncm91cD12aW1PcGVyIHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUB2aW1PcGVyR3JvdXAKLXN5biByZWdpb24gdmltT3BlclBhcmVuCW9uZWxpbmUgbWF0Y2hncm91cD12aW1TZXAgIHN0YXJ0PSJ7IiBlbmQ9In0iIGNvbnRhaW5zPUB2aW1PcGVyR3JvdXAgbmV4dGdyb3VwPXZpbVZhcgorc3luIGNsdXN0ZXIJdmltT3Blckdyb3VwCWNvbnRhaW5zPXZpbUZ1bmMsdmltRnVuY1Zhcix2aW1PcGVyLHZpbU9wZXJQYXJlbix2aW1OdW1iZXIsdmltU3RyaW5nLHZpbVJlZ2lzdGVyLHZpbUNvbnRpbnVlCitzeW4gbWF0Y2gJdmltT3BlcgkiXCg9PVx8IT1cfD49XHw8PVx8PVx+XHwhXH5cfD5cfDxcfD1cKVs/I11cezAsMn0iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3RyaW5nLHZpbVNwZWNGaWxlCitzeW4gbWF0Y2gJdmltT3BlcgkifHxcfCYmXHxbLSsuXSIJc2tpcHdoaXRlIG5leHRncm91cD12aW1TdHJpbmcsdmltU3BlY0ZpbGUKK3N5biByZWdpb24JdmltT3BlclBhcmVuIAlvbmVsaW5lIG1hdGNoZ3JvdXA9dmltUGFyZW5TZXAJc3RhcnQ9IigiIGVuZD0iKSIgY29udGFpbnM9QHZpbU9wZXJHcm91cAorc3luIHJlZ2lvbgl2aW1PcGVyUGFyZW4Jb25lbGluZSBtYXRjaGdyb3VwPXZpbVNlcAlzdGFydD0ieyIgZW5kPSJ9IiBjb250YWlucz1AdmltT3Blckdyb3VwIG5leHRncm91cD12aW1WYXIsdmltRnVuY1ZhcgogaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCi0gc3luIG1hdGNoICB2aW1PcGVyRXJyb3IJIikiCisgc3luIG1hdGNoCXZpbU9wZXJFcnJvcgkiKSIKIGVuZGlmCiAKICIgRnVuY3Rpb25zIDogVGFnIGlzIHByb3ZpZGVkIGZvciB0aG9zZSB3aG8gd2lzaCB0byBoaWdobGlnaHQgdGFnZ2VkIGZ1bmN0aW9ucyB7e3syCiAiID09PT09PT09PQotc3luIGNsdXN0ZXIgdmltRnVuY0xpc3QJY29udGFpbnM9dmltQ29tbWFuZCx2aW1GdW5jS2V5LFRhZyx2aW1GdW5jU0lECi1zeW4gY2x1c3RlciB2aW1GdW5jQm9keUxpc3QJY29udGFpbnM9dmltQWRkcmVzcyx2aW1BdXRvQ21kLHZpbUNtcGx4UmVwZWF0LHZpbUNvbW1lbnQsdmltQ29tbWVudCx2aW1Db250aW51ZSx2aW1DdHJsQ2hhcix2aW1FY2hvLHZpbUVjaG9ITCx2aW1FeGVjdXRlLHZpbUlmLHZpbUZ1bmMsdmltRnVuY3Rpb24sdmltRnVuY3Rpb25FcnJvcix2aW1GdW5jVmFyLHZpbUlzQ29tbWFuZCx2aW1MZXQsdmltTGluZUNvbW1lbnQsdmltTWFwLHZpbU1hcmssdmltTm9ybSx2aW1Ob3RhdGlvbix2aW1Ob3RGdW5jLHZpbU51bWJlcix2aW1PcGVyLHZpbU9wZXJQYXJlbix2aW1SZWdpb24sdmltUmVnaXN0ZXIsdmltU2V0LHZpbVNwZWNGaWxlLHZpbVN0cmluZyx2aW1TdWJzdCx2aW1TeW5MaW5lLHZpbVVzZXJDb21tYW5kCi1pZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKLSBzeW4gbWF0Y2ggICB2aW1GdW5jdGlvbkVycm9yCSJcPGZ1XCVbbmN0aW9uXSFcPVxzXCtcenNcVVxpXHstfVx6ZVxzKigiICAgICAgICAgICAgICAgIAljb250YWlucz12aW1GdW5jS2V5LHZpbUZ1bmNCbGFuayBuZXh0Z3JvdXA9dmltRnVuY0JvZHkKLWVuZGlmCi1zeW4gbWF0Y2ggICB2aW1GdW5jdGlvbgkiXDxmdVwlW25jdGlvbl0hXD1cc1wrXChcKDxbc1NdW2lJXVtkRF0+XHxbU3NdOlx8XHVcfFxpXCsjXClcaSpcfFwoZzpcKVw9XChcSVxpKlwuXClcK1xJXGkqXClcemVccyooIgljb250YWlucz1AdmltRnVuY0xpc3QgbmV4dGdyb3VwPXZpbUZ1bmNCb2R5Ci1pZiBleGlzdHMoImc6dmltc3luX2ZvbGRpbmciKSAmJiBnOnZpbXN5bl9mb2xkaW5nID1+ICdmJwotIHN5biByZWdpb24gIHZpbUZ1bmNCb2R5ICBjb250YWluZWQJZm9sZCBzdGFydD0iXHplKCIJbWF0Y2hncm91cD12aW1Db21tYW5kIGVuZD0iXDxcKGVuZGZcPlx8ZW5kZnVcJVtuY3Rpb25dXD5cKSIJCWNvbnRhaW5zPUB2aW1GdW5jQm9keUxpc3QKLWVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gc3luIHJlZ2lvbiAgdmltRnVuY0JvZHkgIGNvbnRhaW5lZAlzdGFydD0iXHplKCIJbWF0Y2hncm91cD12aW1Db21tYW5kIGVuZD0iXDxcKGVuZGZcPlx8ZW5kZnVcJVtuY3Rpb25dXD5cKSIJCWNvbnRhaW5zPUB2aW1GdW5jQm9keUxpc3QKLWVuZGlmCi1zeW4gbWF0Y2ggICB2aW1GdW5jVmFyICAgY29udGFpbmVkCSJhOlwoXElcaSpcfFxkXCtcKSIKLXN5biBtYXRjaCAgIHZpbUZ1bmNTSUQgICBjb250YWluZWQJIlxjPHNpZD5cfFw8czoiCi1zeW4ga2V5d29yZCB2aW1GdW5jS2V5ICAgY29udGFpbmVkCWZ1W25jdGlvbl0KLXN5biBtYXRjaCAgIHZpbUZ1bmNCbGFuayBjb250YWluZWQJIlxzXCsiCitzeW4gY2x1c3Rlcgl2aW1GdW5jTGlzdAljb250YWlucz12aW1Db21tYW5kLHZpbUZ1bmN0aW9uRXJyb3IsdmltRnVuY0tleSxUYWcsdmltRnVuY1NJRAorc3luIGNsdXN0ZXIJdmltRnVuY0JvZHlMaXN0CWNvbnRhaW5zPXZpbUFiYix2aW1BZGRyZXNzLHZpbUF1Z3JvdXBLZXksdmltQXV0b0NtZCx2aW1DbXBseFJlcGVhdCx2aW1Db21tZW50LHZpbUNvbW1lbnQsdmltQ29udGludWUsdmltQ3RybENoYXIsdmltRWNobyx2aW1FY2hvSEwsdmltRXhlY3V0ZSx2aW1JZix2aW1Jc0NvbW1hbmQsdmltRkJWYXIsdmltRnVuYyx2aW1GdW5jdGlvbix2aW1GdW5jVmFyLHZpbUhpZ2hsaWdodCx2aW1Jc0NvbW1hbmQsdmltTGV0LHZpbUxpbmVDb21tZW50LHZpbU1hcCx2aW1NYXJrLHZpbU5vcm0sdmltTm90YXRpb24sdmltTm90RnVuYyx2aW1OdW1iZXIsdmltT3Blcix2aW1PcGVyUGFyZW4sdmltUmVnaW9uLHZpbVJlZ2lzdGVyLHZpbVNldCx2aW1TcGVjRmlsZSx2aW1TdHJpbmcsdmltU3Vic3QsdmltU3luTGluZSx2aW1Vc2VyQ29tbWFuZAorc3luIG1hdGNoCXZpbUZ1bmN0aW9uCSJcPGZ1XCVbbmN0aW9uXSFcPVxzXCtcJSg8W3NTXVtpSV1bZERdPlx8W3NTZ0diQndXdFRsTF06XClcPVwlKFxpXHxbIy5dXHx7Llx7LTEsfX1cKSpcemVccyooIgljb250YWlucz1AdmltRnVuY0xpc3QgbmV4dGdyb3VwPXZpbUZ1bmNCb2R5CiAKLXN5biBrZXl3b3JkIHZpbVBhdHRlcm4gICBjb250YWluZWQJc3RhcnQJc2tpcAllbmQKK2lmIGV4aXN0cygiZzp2aW1zeW5fZm9sZGluZyIpICYmIGc6dmltc3luX2ZvbGRpbmcgPX4gJ2YnCisgc3luIHJlZ2lvbgl2aW1GdW5jQm9keSAgY29udGFpbmVkCWZvbGQgc3RhcnQ9Ilx6ZSgiCW1hdGNoZ3JvdXA9dmltQ29tbWFuZCBlbmQ9Ilw8XChlbmRmXD5cfGVuZGZ1XCVbbmN0aW9uXVw+XCkiCQljb250YWlucz1AdmltRnVuY0JvZHlMaXN0CitlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIHN5biByZWdpb24JdmltRnVuY0JvZHkgIGNvbnRhaW5lZAlzdGFydD0iXHplKCIJbWF0Y2hncm91cD12aW1Db21tYW5kIGVuZD0iXDxcKGVuZGZcPlx8ZW5kZnVcJVtuY3Rpb25dXD5cKSIJCWNvbnRhaW5zPUB2aW1GdW5jQm9keUxpc3QKK2VuZGlmCitzeW4gbWF0Y2gJdmltRnVuY1ZhciAgIGNvbnRhaW5lZAkiYTpcKFxLXGsqXHxcZFwrXCkiCitzeW4gbWF0Y2gJdmltRnVuY1NJRCAgIGNvbnRhaW5lZAkiXGM8c2lkPlx8XDxzOiIKK3N5biBrZXl3b3JkCXZpbUZ1bmNLZXkgICBjb250YWluZWQJZnVbbmN0aW9uXQorc3luIG1hdGNoCXZpbUZ1bmNCbGFuayBjb250YWluZWQJIlxzXCsiCisKK3N5biBrZXl3b3JkCXZpbVBhdHRlcm4gICBjb250YWluZWQJc3RhcnQJc2tpcAllbmQKIAogIiBTcGVjaWFsIEZpbGVuYW1lcywgTW9kaWZpZXJzLCBFeHRlbnNpb24gUmVtb3ZhbDoge3t7MgogIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotc3luIG1hdGNoIHZpbVNwZWNGaWxlCSI8Y1wod29yZFx8V09SRFwpPiIJbmV4dGdyb3VwPXZpbVNwZWNGaWxlTW9kLHZpbVN1YnN0Ci1zeW4gbWF0Y2ggdmltU3BlY0ZpbGUJIjxcKFthY3NdZmlsZVx8YW1hdGNoXHxhYnVmXCk+IgluZXh0Z3JvdXA9dmltU3BlY0ZpbGVNb2QsdmltU3Vic3QKLXN5biBtYXRjaCB2aW1TcGVjRmlsZQkiXHMlWyBcdDpdIm1zPXMrMSxtZT1lLTEJbmV4dGdyb3VwPXZpbVNwZWNGaWxlTW9kLHZpbVN1YnN0Ci1zeW4gbWF0Y2ggdmltU3BlY0ZpbGUJIlxzJSQibXM9cysxCW5leHRncm91cD12aW1TcGVjRmlsZU1vZCx2aW1TdWJzdAotc3luIG1hdGNoIHZpbVNwZWNGaWxlCSJccyU8Im1zPXMrMSxtZT1lLTEJbmV4dGdyb3VwPXZpbVNwZWNGaWxlTW9kLHZpbVN1YnN0Ci1zeW4gbWF0Y2ggdmltU3BlY0ZpbGUJIiNcZFwrXHxbIyVdPFw+IgluZXh0Z3JvdXA9dmltU3BlY0ZpbGVNb2QsdmltU3Vic3QKLXN5biBtYXRjaCB2aW1TcGVjRmlsZU1vZAkiXCg6W3BodHJlXVwpXCsiCWNvbnRhaW5lZAorc3luIG1hdGNoCXZpbVNwZWNGaWxlCSI8Y1wod29yZFx8V09SRFwpPiIJbmV4dGdyb3VwPXZpbVNwZWNGaWxlTW9kLHZpbVN1YnN0CitzeW4gbWF0Y2gJdmltU3BlY0ZpbGUJIjxcKFthY3NdZmlsZVx8YW1hdGNoXHxhYnVmXCk+IgluZXh0Z3JvdXA9dmltU3BlY0ZpbGVNb2QsdmltU3Vic3QKK3N5biBtYXRjaAl2aW1TcGVjRmlsZQkiXHMlWyBcdDpdIm1zPXMrMSxtZT1lLTEJbmV4dGdyb3VwPXZpbVNwZWNGaWxlTW9kLHZpbVN1YnN0CitzeW4gbWF0Y2gJdmltU3BlY0ZpbGUJIlxzJSQibXM9cysxCW5leHRncm91cD12aW1TcGVjRmlsZU1vZCx2aW1TdWJzdAorc3luIG1hdGNoCXZpbVNwZWNGaWxlCSJccyU8Im1zPXMrMSxtZT1lLTEJbmV4dGdyb3VwPXZpbVNwZWNGaWxlTW9kLHZpbVN1YnN0CitzeW4gbWF0Y2gJdmltU3BlY0ZpbGUJIiNcZFwrXHxbIyVdPFw+IgluZXh0Z3JvdXA9dmltU3BlY0ZpbGVNb2QsdmltU3Vic3QKK3N5biBtYXRjaAl2aW1TcGVjRmlsZU1vZAkiXCg6W3BodHJlXVwpXCsiCWNvbnRhaW5lZAogCiAiIFVzZXItU3BlY2lmaWVkIENvbW1hbmRzOiB7e3syCiAiID09PT09PT09PT09PT09PT09PT09PT09Ci1zeW4gY2x1c3RlciB2aW1Vc2VyQ21kTGlzdAljb250YWlucz12aW1BZGRyZXNzLHZpbVN5bnRheCx2aW1IaWdobGlnaHQsdmltQXV0b0NtZCx2aW1DbXBseFJlcGVhdCx2aW1Db21tZW50LHZpbUN0cmxDaGFyLHZpbUVzY2FwZUJyYWNlLHZpbUZpbHRlcix2aW1GdW5jLHZpbUZ1bmN0aW9uLHZpbUlzQ29tbWFuZCx2aW1NYXJrLHZpbU5vdGF0aW9uLHZpbU51bWJlcix2aW1PcGVyLHZpbVJlZ2lvbix2aW1SZWdpc3Rlcix2aW1MZXQsdmltU2V0LHZpbVNldEVxdWFsLHZpbVNldFN0cmluZyx2aW1TcGVjRmlsZSx2aW1TdHJpbmcsdmltU3Vic3QsdmltU3Vic3RSZXAsdmltU3Vic3RSYW5nZSx2aW1TeW5MaW5lCi1zeW4ga2V5d29yZCB2aW1Vc2VyQ29tbWFuZAljb250YWluZWQJY29tW21hbmRdCi1zeW4gbWF0Y2ggICB2aW1Vc2VyQ21kCSJcPGNvbVwlW21hbmRdIVw9XD4uKiQiCWNvbnRhaW5zPXZpbVVzZXJBdHRyYix2aW1Vc2VyQ29tbWFuZCxAdmltVXNlckNtZExpc3QKLXN5biBtYXRjaCAgIHZpbVVzZXJBdHRyYgljb250YWluZWQJIi1uXCVbYXJnc109WzAxKj8rXSIJY29udGFpbnM9dmltVXNlckF0dHJiS2V5LHZpbU9wZXIKLXN5biBtYXRjaCAgIHZpbVVzZXJBdHRyYgljb250YWluZWQJIi1jb21cJVtwbGV0ZV09Igljb250YWlucz12aW1Vc2VyQXR0cmJLZXksdmltT3BlciBuZXh0Z3JvdXA9dmltVXNlckF0dHJiQ21wbHQsdmltVXNlckNtZEVycm9yCi1zeW4gbWF0Y2ggICB2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItcmFcJVtuZ2VdXCg9JVx8PVxkXCtcKVw9Igljb250YWlucz12aW1OdW1iZXIsdmltT3Blcix2aW1Vc2VyQXR0cmJLZXkKLXN5biBtYXRjaCAgIHZpbVVzZXJBdHRyYgljb250YWluZWQJIi1jb3VcJVtudF09XGRcKyIJY29udGFpbnM9dmltTnVtYmVyLHZpbU9wZXIsdmltVXNlckF0dHJiS2V5Ci1zeW4gbWF0Y2ggICB2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItYmFuZ1w9XD4iCWNvbnRhaW5zPXZpbU9wZXIsdmltVXNlckF0dHJiS2V5Ci1zeW4gbWF0Y2ggICB2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItYmFyXD4iCWNvbnRhaW5zPXZpbU9wZXIsdmltVXNlckF0dHJiS2V5Ci1zeW4gbWF0Y2ggICB2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItcmVcJVtnaXN0ZXJdXD4iCWNvbnRhaW5zPXZpbU9wZXIsdmltVXNlckF0dHJiS2V5CitzeW4gY2x1c3Rlcgl2aW1Vc2VyQ21kTGlzdAljb250YWlucz12aW1BZGRyZXNzLHZpbVN5bnRheCx2aW1IaWdobGlnaHQsdmltQXV0b0NtZCx2aW1DbXBseFJlcGVhdCx2aW1Db21tZW50LHZpbUN0cmxDaGFyLHZpbUVzY2FwZUJyYWNlLHZpbUZpbHRlcix2aW1GdW5jLHZpbUZ1bmNOYW1lLHZpbUZ1bmN0aW9uLHZpbUZ1bmN0aW9uRXJyb3IsdmltSXNDb21tYW5kLHZpbU1hcmssdmltTm90YXRpb24sdmltTnVtYmVyLHZpbU9wZXIsdmltUmVnaW9uLHZpbVJlZ2lzdGVyLHZpbUxldCx2aW1TZXQsdmltU2V0RXF1YWwsdmltU2V0U3RyaW5nLHZpbVNwZWNGaWxlLHZpbVN0cmluZyx2aW1TdWJzdCx2aW1TdWJzdFJlcCx2aW1TdWJzdFJhbmdlLHZpbVN5bkxpbmUKK3N5biBrZXl3b3JkCXZpbVVzZXJDb21tYW5kCWNvbnRhaW5lZAljb21bbWFuZF0KK3N5biBtYXRjaAl2aW1Vc2VyQ21kCSJcPGNvbVwlW21hbmRdIVw9XD4uKiQiCWNvbnRhaW5zPXZpbVVzZXJBdHRyYix2aW1Vc2VyQ29tbWFuZCxAdmltVXNlckNtZExpc3QKK3N5biBtYXRjaAl2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItblwlW2FyZ3NdPVswMSo/K10iCWNvbnRhaW5zPXZpbVVzZXJBdHRyYktleSx2aW1PcGVyCitzeW4gbWF0Y2gJdmltVXNlckF0dHJiCWNvbnRhaW5lZAkiLWNvbVwlW3BsZXRlXT0iCWNvbnRhaW5zPXZpbVVzZXJBdHRyYktleSx2aW1PcGVyIG5leHRncm91cD12aW1Vc2VyQXR0cmJDbXBsdCx2aW1Vc2VyQ21kRXJyb3IKK3N5biBtYXRjaAl2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItcmFcJVtuZ2VdXCg9JVx8PVxkXCtcKVw9Igljb250YWlucz12aW1OdW1iZXIsdmltT3Blcix2aW1Vc2VyQXR0cmJLZXkKK3N5biBtYXRjaAl2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItY291XCVbbnRdPVxkXCsiCWNvbnRhaW5zPXZpbU51bWJlcix2aW1PcGVyLHZpbVVzZXJBdHRyYktleQorc3luIG1hdGNoCXZpbVVzZXJBdHRyYgljb250YWluZWQJIi1iYW5nXD1cPiIJY29udGFpbnM9dmltT3Blcix2aW1Vc2VyQXR0cmJLZXkKK3N5biBtYXRjaAl2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItYmFyXD4iCWNvbnRhaW5zPXZpbU9wZXIsdmltVXNlckF0dHJiS2V5CitzeW4gbWF0Y2gJdmltVXNlckF0dHJiCWNvbnRhaW5lZAkiLXJlXCVbZ2lzdGVyXVw+Igljb250YWlucz12aW1PcGVyLHZpbVVzZXJBdHRyYktleQogaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCi0gc3luIG1hdGNoICAgdmltVXNlckNtZEVycm9yCWNvbnRhaW5lZAkiXFNcK1w+IgorIHN5biBtYXRjaAl2aW1Vc2VyQ21kRXJyb3IJY29udGFpbmVkCSJcU1wrXD4iCiBlbmRpZgogc3luIGNhc2UgaWdub3JlCi1zeW4ga2V5d29yZCB2aW1Vc2VyQXR0cmJLZXkgICBjb250YWluZWQJYmFyCWJhbltnXQljb3VbbnRdCXJhW25nZV0gY29tW3BsZXRlXQluW2FyZ3NdCXJlW2dpc3Rlcl0KLXN5biBrZXl3b3JkIHZpbVVzZXJBdHRyYkNtcGx0IGNvbnRhaW5lZAlhdWdyb3VwIGJ1ZmZlciBjb21tYW5kIGRpciBlbnZpcm9ubWVudCBldmVudCBleHByZXNzaW9uIGZpbGUgZnVuY3Rpb24gaGVscCBoaWdobGlnaHQgbWFwcGluZyBtZW51IG9wdGlvbiBzb21ldGhpbmcgdGFnIHRhZ19saXN0ZmlsZXMgdmFyCi1zeW4ga2V5d29yZCB2aW1Vc2VyQXR0cmJDbXBsdCBjb250YWluZWQJY3VzdG9tIGN1c3RvbWxpc3QgbmV4dGdyb3VwPXZpbVVzZXJBdHRyYkNtcGx0RnVuYyx2aW1Vc2VyQ21kRXJyb3IKLXN5biBtYXRjaCAgIHZpbVVzZXJBdHRyYkNtcGx0RnVuYyBjb250YWluZWQJIixcJShbc1NdOlx8PFtzU11baUldW2REXT5cKVw9XCUoXGhcdypcJSgjXHVcdypcKVwrXHxcdVx3KlwpImhzPXMrMSBuZXh0Z3JvdXA9dmltVXNlckNtZEVycm9yCitzeW4ga2V5d29yZAl2aW1Vc2VyQXR0cmJLZXkgICBjb250YWluZWQJYmFyCWJhbltnXQljb3VbbnRdCXJhW25nZV0gY29tW3BsZXRlXQluW2FyZ3NdCXJlW2dpc3Rlcl0KK3N5biBrZXl3b3JkCXZpbVVzZXJBdHRyYkNtcGx0IGNvbnRhaW5lZAlhdWdyb3VwIGJ1ZmZlciBjb21tYW5kIGRpciBlbnZpcm9ubWVudCBldmVudCBleHByZXNzaW9uIGZpbGUgZnVuY3Rpb24gaGVscCBoaWdobGlnaHQgbWFwcGluZyBtZW51IG9wdGlvbiBzaGVsbGNtZCBzb21ldGhpbmcgdGFnIHRhZ19saXN0ZmlsZXMgdmFyCitzeW4ga2V5d29yZAl2aW1Vc2VyQXR0cmJDbXBsdCBjb250YWluZWQJY3VzdG9tIGN1c3RvbWxpc3QgbmV4dGdyb3VwPXZpbVVzZXJBdHRyYkNtcGx0RnVuYyx2aW1Vc2VyQ21kRXJyb3IKK3N5biBtYXRjaAl2aW1Vc2VyQXR0cmJDbXBsdEZ1bmMgY29udGFpbmVkCSIsXCUoW3NTXTpcfDxbc1NdW2lJXVtkRF0+XClcPVwlKFxoXHcqXCUoI1x1XHcqXClcK1x8XHVcdypcKSJocz1zKzEgbmV4dGdyb3VwPXZpbVVzZXJDbWRFcnJvcgogCiBzeW4gY2FzZSBtYXRjaAotc3luIG1hdGNoICAgdmltVXNlckF0dHJiQ21wbHQgY29udGFpbmVkCSJjdXN0b20sXHVcdyoiCitzeW4gbWF0Y2gJdmltVXNlckF0dHJiQ21wbHQgY29udGFpbmVkCSJjdXN0b20sXHVcdyoiCiAKICIgTG93ZXIgUHJpb3JpdHkgQ29tbWVudHM6IGFmdGVyIHNvbWUgdmltIGNvbW1hbmRzLi4uIHt7ezIKICIgPT09PT09PT09PT09PT09PT09PT09PT0KLXN5biBtYXRjaCAgdmltQ29tbWVudAlleGNsdWRlbmwgK1xzIlteXC06LiUjPSpdLiokK2xjPTEJY29udGFpbnM9QHZpbUNvbW1lbnRHcm91cCx2aW1Db21tZW50U3RyaW5nCi1zeW4gbWF0Y2ggIHZpbUNvbW1lbnQJK1w8ZW5kaWZcc1wrIi4qJCtsYz01CWNvbnRhaW5zPUB2aW1Db21tZW50R3JvdXAsdmltQ29tbWVudFN0cmluZwotc3luIG1hdGNoICB2aW1Db21tZW50CStcPGVsc2Vcc1wrIi4qJCtsYz00CWNvbnRhaW5zPUB2aW1Db21tZW50R3JvdXAsdmltQ29tbWVudFN0cmluZwotc3luIHJlZ2lvbiB2aW1Db21tZW50U3RyaW5nCWNvbnRhaW5lZCBvbmVsaW5lIHN0YXJ0PSdcU1xzXCsiJ21zPWUJZW5kPSciJworc3luIG1hdGNoCXZpbUNvbW1lbnQJZXhjbHVkZW5sICtccyJbXlwtOi4lIz0qXS4qJCtsYz0xCWNvbnRhaW5zPUB2aW1Db21tZW50R3JvdXAsdmltQ29tbWVudFN0cmluZworc3luIG1hdGNoCXZpbUNvbW1lbnQJK1w8ZW5kaWZcc1wrIi4qJCtsYz01CWNvbnRhaW5zPUB2aW1Db21tZW50R3JvdXAsdmltQ29tbWVudFN0cmluZworc3luIG1hdGNoCXZpbUNvbW1lbnQJK1w8ZWxzZVxzXCsiLiokK2xjPTQJY29udGFpbnM9QHZpbUNvbW1lbnRHcm91cCx2aW1Db21tZW50U3RyaW5nCitzeW4gcmVnaW9uCXZpbUNvbW1lbnRTdHJpbmcJY29udGFpbmVkIG9uZWxpbmUgc3RhcnQ9J1xTXHNcKyInbXM9ZQllbmQ9JyInCiAKICIgRW52aXJvbm1lbnQgVmFyaWFibGVzOiB7e3syCiAiID09PT09PT09PT09PT09PT09PT09PQotc3luIG1hdGNoIHZpbUVudnZhcgkiXCRcSVxpKiIKLXN5biBtYXRjaCB2aW1FbnZ2YXIJIlwke1xJXGkqfSIKK3N5biBtYXRjaAl2aW1FbnZ2YXIJIlwkXElcaSoiCitzeW4gbWF0Y2gJdmltRW52dmFyCSJcJHtcSVxpKn0iCiAKICIgSW4tU3RyaW5nIFNwZWNpYWxzOiB7e3syCiAiIFRyeSB0byBjYXRjaCBzdHJpbmdzLCBpZiBub3RoaW5nIGVsc2UgbWF0Y2hlcyAodGhlcmVmb3JlIGl0IG11c3QgcHJlY2VkZSB0aGUgb3RoZXJzISkKICIgIHZpbUVzY2FwZUJyYWNlIGhhbmRsZXMgWyJdICBbXSJdIChpZS4gInMgZG9uJ3QgdGVybWluYXRlIHN0cmluZyBpbnNpZGUgW10pCi1zeW4gcmVnaW9uIHZpbUVzY2FwZUJyYWNlCW9uZWxpbmUgICBjb250YWluZWQgdHJhbnNwYXJlbnQgc3RhcnQ9IlteXFxdXChcXFxcXCkqXFtcenNcXlw9XF1cPSIgc2tpcD0iXFxcXFx8XFxcXSIgZW5kPSJdIm1lPWUtMQotc3luIG1hdGNoICB2aW1QYXRTZXBFcnIJY29udGFpbmVkCSJcXCkiCi1zeW4gbWF0Y2ggIHZpbVBhdFNlcAljb250YWluZWQJIlxcfCIKLXN5biByZWdpb24gdmltUGF0U2VwWm9uZQlvbmVsaW5lICAgY29udGFpbmVkICAgbWF0Y2hncm91cD12aW1QYXRTZXBaIHN0YXJ0PSJcXCVcPVx6ZSgiIHNraXA9IlxcXFwiIGVuZD0iXFwpXHxbXlxdWyciXSIJY29udGFpbnM9QHZpbVN0cmluZ0dyb3VwCi1zeW4gcmVnaW9uIHZpbVBhdFJlZ2lvbgljb250YWluZWQgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD12aW1QYXRTZXBSIHN0YXJ0PSJcXFt6JV1cPSgiIGVuZD0iXFwpIgljb250YWlucz1AdmltU3Vic3RMaXN0IG9uZWxpbmUKLXN5biBtYXRjaCAgdmltTm90UGF0U2VwCWNvbnRhaW5lZAkiXFxcXCIKLXN5biBjbHVzdGVyIHZpbVN0cmluZ0dyb3VwCWNvbnRhaW5zPXZpbUVzY2FwZUJyYWNlLHZpbVBhdFNlcCx2aW1Ob3RQYXRTZXAsdmltUGF0U2VwRXJyLHZpbVBhdFNlcFpvbmUsQFNwZWxsCi1zeW4gcmVnaW9uIHZpbVN0cmluZwlvbmVsaW5lIGtlZXBlbmQJc3RhcnQ9K1teOmEtekEtWj4hXFxAXSIrbGM9MSBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisJY29udGFpbnM9QHZpbVN0cmluZ0dyb3VwCi1zeW4gcmVnaW9uIHZpbVN0cmluZwlvbmVsaW5lIGtlZXBlbmQJc3RhcnQ9K1teOmEtekEtWj4hXFxAXScrbGM9MSBlbmQ9KycrCi1zeW4gcmVnaW9uIHZpbVN0cmluZwlvbmVsaW5lCXN0YXJ0PSs9IStsYz0xCXNraXA9K1xcXFxcfFxcISsgZW5kPSshKwljb250YWlucz1AdmltU3RyaW5nR3JvdXAKLXN5biByZWdpb24gdmltU3RyaW5nCW9uZWxpbmUJc3RhcnQ9Ij0rImxjPTEJc2tpcD0iXFxcXFx8XFwrIiBlbmQ9IisiCWNvbnRhaW5zPUB2aW1TdHJpbmdHcm91cAotc3luIHJlZ2lvbiB2aW1TdHJpbmcJb25lbGluZQlzdGFydD0iXHMvXHMqXEEibGM9MSBza2lwPSJcXFxcXHxcXCsiIGVuZD0iLyIJY29udGFpbnM9QHZpbVN0cmluZ0dyb3VwCi1zeW4gbWF0Y2ggIHZpbVN0cmluZwljb250YWluZWQJKyJbXiJdKlxcJCsJc2tpcG5sIG5leHRncm91cD12aW1TdHJpbmdDb250Ci1zeW4gbWF0Y2ggIHZpbVN0cmluZ0NvbnQJY29udGFpbmVkCStcKFxcXFxcfC5cKVx7LX1bXlxcXSIrCitzeW4gcmVnaW9uCXZpbUVzY2FwZUJyYWNlCW9uZWxpbmUgICBjb250YWluZWQgdHJhbnNwYXJlbnQgc3RhcnQ9IlteXFxdXChcXFxcXCkqXFtcenNcXlw9XF1cPSIgc2tpcD0iXFxcXFx8XFxcXSIgZW5kPSJdIm1lPWUtMQorc3luIG1hdGNoCXZpbVBhdFNlcEVycgljb250YWluZWQJIlxcKSIKK3N5biBtYXRjaAl2aW1QYXRTZXAJY29udGFpbmVkCSJcXHwiCitzeW4gcmVnaW9uCXZpbVBhdFNlcFpvbmUJb25lbGluZSAgIGNvbnRhaW5lZCAgIG1hdGNoZ3JvdXA9dmltUGF0U2VwWiBzdGFydD0iXFwlXD1cemUoIiBza2lwPSJcXFxcIiBlbmQ9IlxcKVx8W15cXVsnIl0iCWNvbnRhaW5zPUB2aW1TdHJpbmdHcm91cAorc3luIHJlZ2lvbgl2aW1QYXRSZWdpb24JY29udGFpbmVkIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9dmltUGF0U2VwUiBzdGFydD0iXFxbeiVdXD0oIiBlbmQ9IlxcKSIJY29udGFpbnM9QHZpbVN1YnN0TGlzdCBvbmVsaW5lCitzeW4gbWF0Y2gJdmltTm90UGF0U2VwCWNvbnRhaW5lZAkiXFxcXCIKK3N5biBjbHVzdGVyCXZpbVN0cmluZ0dyb3VwCWNvbnRhaW5zPXZpbUVzY2FwZUJyYWNlLHZpbVBhdFNlcCx2aW1Ob3RQYXRTZXAsdmltUGF0U2VwRXJyLHZpbVBhdFNlcFpvbmUsQFNwZWxsCitzeW4gcmVnaW9uCXZpbVN0cmluZwlvbmVsaW5lIGtlZXBlbmQJc3RhcnQ9K1teOmEtekEtWj4hXFxAXSIrbGM9MSBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisJY29udGFpbnM9QHZpbVN0cmluZ0dyb3VwCitzeW4gcmVnaW9uCXZpbVN0cmluZwlvbmVsaW5lIGtlZXBlbmQJc3RhcnQ9K1teOmEtekEtWj4hXFxAXScrbGM9MSBlbmQ9KycrCitzeW4gcmVnaW9uCXZpbVN0cmluZwlvbmVsaW5lCXN0YXJ0PSs9IStsYz0xCXNraXA9K1xcXFxcfFxcISsgZW5kPSshKwljb250YWlucz1AdmltU3RyaW5nR3JvdXAKK3N5biByZWdpb24JdmltU3RyaW5nCW9uZWxpbmUJc3RhcnQ9Ij0rImxjPTEJc2tpcD0iXFxcXFx8XFwrIiBlbmQ9IisiCWNvbnRhaW5zPUB2aW1TdHJpbmdHcm91cAorc3luIHJlZ2lvbgl2aW1TdHJpbmcJb25lbGluZQlzdGFydD0iXHMvXHMqXEEibGM9MSBza2lwPSJcXFxcXHxcXCsiIGVuZD0iLyIJY29udGFpbnM9QHZpbVN0cmluZ0dyb3VwCitzeW4gbWF0Y2gJdmltU3RyaW5nCWNvbnRhaW5lZAkrIlteIl0qXFwkKwlza2lwbmwgbmV4dGdyb3VwPXZpbVN0cmluZ0NvbnQKK3N5biBtYXRjaAl2aW1TdHJpbmdDb250CWNvbnRhaW5lZAkrXChcXFxcXHwuXClcey19W15cXF0iKwogCiAiIFN1YnN0aXR1dGlvbnM6IHt7ezIKICIgPT09PT09PT09PT09PQotc3luIGNsdXN0ZXIgdmltU3Vic3RMaXN0CWNvbnRhaW5zPXZpbVBhdFNlcCx2aW1QYXRSZWdpb24sdmltUGF0U2VwRXJyLHZpbVN1YnN0VHdvQlMsdmltU3Vic3RSYW5nZSx2aW1Ob3RhdGlvbgotc3luIGNsdXN0ZXIgdmltU3Vic3RSZXBMaXN0CWNvbnRhaW5zPXZpbVN1YnN0U3Vic3RyLHZpbVN1YnN0VHdvQlMsdmltTm90YXRpb24KLXN5biBjbHVzdGVyIHZpbVN1YnN0TGlzdAlhZGQ9dmltQ29sbGVjdGlvbgotc3luIG1hdGNoICAgdmltU3Vic3QJIlwoOlwrXHMqXHxeXHMqXHx8XHMqXClcPHNcJVt1YnN0aXR1dGVdWzpbOmFscGhhOl1dXEAhIiBuZXh0Z3JvdXA9dmltU3Vic3RQYXQKLXN5biBtYXRjaCAgIHZpbVN1YnN0CSJzXCVbdWJzdGl0dXRlXVs6WzphbHBoYTpdXVxAISIJbmV4dGdyb3VwPXZpbVN1YnN0UGF0IGNvbnRhaW5lZAotc3luIG1hdGNoICAgdmltU3Vic3QJIi9cenNzXCVbdWJzdGl0dXRlXVx6ZS8iCW5leHRncm91cD12aW1TdWJzdFBhdAotc3luIG1hdGNoICAgdmltU3Vic3QxICAgICAgIGNvbnRhaW5lZAkic1wlW3Vic3RpdHV0ZV1cPiIJbmV4dGdyb3VwPXZpbVN1YnN0UGF0Ci1zeW4gcmVnaW9uICB2aW1TdWJzdFBhdCAgICAgY29udGFpbmVkCW1hdGNoZ3JvdXA9dmltU3Vic3REZWxpbSBzdGFydD0iXHooW15hLXpBLVooIFx0W1xdJl1cKSJycz1zKzEgc2tpcD0iXFxcXFx8XFxcejEiIGVuZD0iXHoxInJlPWUtMSxtZT1lLTEJIGNvbnRhaW5zPUB2aW1TdWJzdExpc3QJbmV4dGdyb3VwPXZpbVN1YnN0UmVwNAlvbmVsaW5lCi1zeW4gcmVnaW9uICB2aW1TdWJzdFJlcDQgICAgY29udGFpbmVkCW1hdGNoZ3JvdXA9dmltU3Vic3REZWxpbSBzdGFydD0iXHooLlwpIiBza2lwPSJcXFxcXHxcXFx6MSIgZW5kPSJcejEiIG1hdGNoZ3JvdXA9dmltTm90YXRpb24gZW5kPSI8W2NDXVtyUl0+IiBjb250YWlucz1AdmltU3Vic3RSZXBMaXN0CW5leHRncm91cD12aW1TdWJzdEZsYWdFcnIJb25lbGluZQotc3luIHJlZ2lvbiAgdmltQ29sbGVjdGlvbiAgIGNvbnRhaW5lZCB0cmFuc3BhcmVudAlzdGFydD0iXFxcQDwhXFsiIHNraXA9IlxcXFsiIGVuZD0iXF0iCWNvbnRhaW5zPXZpbUNvbGxDbGFzcwotc3luIG1hdGNoICAgdmltQ29sbENsYXNzRXJyIGNvbnRhaW5lZAkiXFs6Llx7LVx9OlxdIgotc3luIG1hdGNoICAgdmltQ29sbENsYXNzICAgIGNvbnRhaW5lZCB0cmFuc3BhcmVudAkiXFs6XChhbG51bVx8YWxwaGFcfGJsYW5rXHxjbnRybFx8ZGlnaXRcfGdyYXBoXHxsb3dlclx8cHJpbnRcfHB1bmN0XHxzcGFjZVx8dXBwZXJcfHhkaWdpdFx8cmV0dXJuXHx0YWJcfGVzY2FwZVx8YmFja3NwYWNlXCk6XF0iCi1zeW4gbWF0Y2ggICB2aW1TdWJzdFN1YnN0ciAgY29udGFpbmVkCSJcXHpcPVxkIgotc3luIG1hdGNoICAgdmltU3Vic3RUd29CUyAgIGNvbnRhaW5lZAkiXFxcXCIKLXN5biBtYXRjaCAgIHZpbVN1YnN0RmxhZ0VyciBjb250YWluZWQJIltePCBcdFxyfF1cKyIgY29udGFpbnM9dmltU3Vic3RGbGFncwotc3luIG1hdGNoICAgdmltU3Vic3RGbGFncyAgIGNvbnRhaW5lZAkiWyZjZWdpSXByXVwrIgorc3luIGNsdXN0ZXIJdmltU3Vic3RMaXN0CWNvbnRhaW5zPXZpbVBhdFNlcCx2aW1QYXRSZWdpb24sdmltUGF0U2VwRXJyLHZpbVN1YnN0VHdvQlMsdmltU3Vic3RSYW5nZSx2aW1Ob3RhdGlvbgorc3luIGNsdXN0ZXIJdmltU3Vic3RSZXBMaXN0CWNvbnRhaW5zPXZpbVN1YnN0U3Vic3RyLHZpbVN1YnN0VHdvQlMsdmltTm90YXRpb24KK3N5biBjbHVzdGVyCXZpbVN1YnN0TGlzdAlhZGQ9dmltQ29sbGVjdGlvbgorc3luIG1hdGNoCXZpbVN1YnN0CSJcKDpcK1xzKlx8XlxzKlx8fFxzKlwpXDxzXCVbdWJzdGl0dXRlXVs6WzphbHBoYTpdXVxAISIgbmV4dGdyb3VwPXZpbVN1YnN0UGF0CitzeW4gbWF0Y2gJdmltU3Vic3QJInNcJVt1YnN0aXR1dGVdWzojWzphbHBoYTpdXVxAISIJbmV4dGdyb3VwPXZpbVN1YnN0UGF0IGNvbnRhaW5lZAorc3luIG1hdGNoCXZpbVN1YnN0CSIvXHpzc1wlW3Vic3RpdHV0ZV1cemUvIgluZXh0Z3JvdXA9dmltU3Vic3RQYXQKK3N5biBtYXRjaAl2aW1TdWJzdDEgICAgICAgY29udGFpbmVkCSJzXCVbdWJzdGl0dXRlXVw+IgluZXh0Z3JvdXA9dmltU3Vic3RQYXQKK3N5biByZWdpb24JdmltU3Vic3RQYXQgICAgIGNvbnRhaW5lZAltYXRjaGdyb3VwPXZpbVN1YnN0RGVsaW0gc3RhcnQ9Ilx6KFteYS16QS1aKCBcdFtcXSZdXCkicnM9cysxIHNraXA9IlxcXFxcfFxcXHoxIiBlbmQ9Ilx6MSJyZT1lLTEsbWU9ZS0xCSBjb250YWlucz1AdmltU3Vic3RMaXN0CW5leHRncm91cD12aW1TdWJzdFJlcDQJb25lbGluZQorc3luIHJlZ2lvbgl2aW1TdWJzdFJlcDQgICAgY29udGFpbmVkCW1hdGNoZ3JvdXA9dmltU3Vic3REZWxpbSBzdGFydD0iXHooLlwpIiBza2lwPSJcXFxcXHxcXFx6MSIgZW5kPSJcejEiIG1hdGNoZ3JvdXA9dmltTm90YXRpb24gZW5kPSI8W2NDXVtyUl0+IiBjb250YWlucz1AdmltU3Vic3RSZXBMaXN0CW5leHRncm91cD12aW1TdWJzdEZsYWdFcnIJb25lbGluZQorc3luIHJlZ2lvbgl2aW1Db2xsZWN0aW9uICAgY29udGFpbmVkIHRyYW5zcGFyZW50CXN0YXJ0PSJcXFxAPCFcWyIgc2tpcD0iXFxcWyIgZW5kPSJcXSIJY29udGFpbnM9dmltQ29sbENsYXNzCitzeW4gbWF0Y2gJdmltQ29sbENsYXNzRXJyIGNvbnRhaW5lZAkiXFs6Llx7LVx9OlxdIgorc3luIG1hdGNoCXZpbUNvbGxDbGFzcyAgICBjb250YWluZWQgdHJhbnNwYXJlbnQJIlxbOlwoYWxudW1cfGFscGhhXHxibGFua1x8Y250cmxcfGRpZ2l0XHxncmFwaFx8bG93ZXJcfHByaW50XHxwdW5jdFx8c3BhY2VcfHVwcGVyXHx4ZGlnaXRcfHJldHVyblx8dGFiXHxlc2NhcGVcfGJhY2tzcGFjZVwpOlxdIgorc3luIG1hdGNoCXZpbVN1YnN0U3Vic3RyICBjb250YWluZWQJIlxcelw9XGQiCitzeW4gbWF0Y2gJdmltU3Vic3RUd29CUyAgIGNvbnRhaW5lZAkiXFxcXCIKK3N5biBtYXRjaAl2aW1TdWJzdEZsYWdFcnIgY29udGFpbmVkCSJbXjwgXHRccnxdXCsiIGNvbnRhaW5zPXZpbVN1YnN0RmxhZ3MKK3N5biBtYXRjaAl2aW1TdWJzdEZsYWdzICAgY29udGFpbmVkCSJbJmNlZ2lJcHJdXCsiCiAKICIgJ1N0cmluZyc6IHt7ezIKLXN5biBtYXRjaCAgdmltU3RyaW5nCSJbXigsXSdbXiddXHstfVx6cyciCitzeW4gbWF0Y2gJdmltU3RyaW5nCSJbXigsXSdbXiddXHstfVx6cyciCiAKICIgTWFya3MsIFJlZ2lzdGVycywgQWRkcmVzc2VzLCBGaWx0ZXJzOiB7e3syCi1zeW4gbWF0Y2ggIHZpbU1hcmsJIidbYS16QS1aMC05XVx6ZVstKywhXSIJbmV4dGdyb3VwPXZpbU9wZXIsdmltTWFya051bWJlcix2aW1TdWJzdAotc3luIG1hdGNoICB2aW1NYXJrCSInWzw+XVx6ZVstKywhXSIJCW5leHRncm91cD12aW1PcGVyLHZpbU1hcmtOdW1iZXIsdmltU3Vic3QKLXN5biBtYXRjaCAgdmltTWFyawkiLFx6cydbPD5dXHplIgkJbmV4dGdyb3VwPXZpbU9wZXIsdmltTWFya051bWJlcix2aW1TdWJzdAotc3luIG1hdGNoICB2aW1NYXJrCSJbISw6XVx6cydbYS16QS1aMC05XSIJbmV4dGdyb3VwPXZpbU9wZXIsdmltTWFya051bWJlcix2aW1TdWJzdAotc3luIG1hdGNoICB2aW1NYXJrCSJcPG5vcm1cJVthbF1cc1x6cydbYS16QS1aMC05XSIJbmV4dGdyb3VwPXZpbU9wZXIsdmltTWFya051bWJlcix2aW1TdWJzdAotc3luIG1hdGNoICB2aW1NYXJrTnVtYmVyCSJbLStdXGRcKyIJCW5leHRncm91cD12aW1TdWJzdCBjb250YWluZWQgY29udGFpbnM9dmltT3Blcgotc3luIG1hdGNoICB2aW1QbGFpbk1hcmsgY29udGFpbmVkCSInW2EtekEtWjAtOV0iCitzeW4gbWF0Y2gJdmltTWFyawkiJ1thLXpBLVowLTldXHplWy0rLCFdIgluZXh0Z3JvdXA9dmltT3Blcix2aW1NYXJrTnVtYmVyLHZpbVN1YnN0CitzeW4gbWF0Y2gJdmltTWFyawkiJ1s8Pl1cemVbLSssIV0iCQluZXh0Z3JvdXA9dmltT3Blcix2aW1NYXJrTnVtYmVyLHZpbVN1YnN0CitzeW4gbWF0Y2gJdmltTWFyawkiLFx6cydbPD5dXHplIgkJbmV4dGdyb3VwPXZpbU9wZXIsdmltTWFya051bWJlcix2aW1TdWJzdAorc3luIG1hdGNoCXZpbU1hcmsJIlshLDpdXHpzJ1thLXpBLVowLTldIgluZXh0Z3JvdXA9dmltT3Blcix2aW1NYXJrTnVtYmVyLHZpbVN1YnN0CitzeW4gbWF0Y2gJdmltTWFyawkiXDxub3JtXCVbYWxdXHNcenMnW2EtekEtWjAtOV0iCW5leHRncm91cD12aW1PcGVyLHZpbU1hcmtOdW1iZXIsdmltU3Vic3QKK3N5biBtYXRjaAl2aW1NYXJrTnVtYmVyCSJbLStdXGRcKyIJCW5leHRncm91cD12aW1TdWJzdCBjb250YWluZWQgY29udGFpbnM9dmltT3Blcgorc3luIG1hdGNoCXZpbVBsYWluTWFyayBjb250YWluZWQJIidbYS16QS1aMC05XSIKIAotc3luIG1hdGNoICB2aW1SZWdpc3RlcgknW14sO11cenMiW2EtekEtWjAtOS4lIzpfXC0vXVx6ZVteYS16QS1aXyI6XScKLXN5biBtYXRjaCAgdmltUmVnaXN0ZXIJJ1w8bm9ybVxzXCtcenMiW2EtekEtWjAtOV0nCi1zeW4gbWF0Y2ggIHZpbVJlZ2lzdGVyCSdcPG5vcm1hbFxzXCtcenMiW2EtekEtWjAtOV0nCi1zeW4gbWF0Y2ggIHZpbVJlZ2lzdGVyCSdAIicKLXN5biBtYXRjaCAgdmltUGxhaW5SZWdpc3RlciBjb250YWluZWQJJyJbYS16QS1aMC05XC06LiUjKis9XScKK3N5biBtYXRjaAl2aW1SZWdpc3RlcgknW14sO1t7XVx6cyJbYS16QS1aMC05LiUjOl9cLS9dXHplW15hLXpBLVpfIjpdJworc3luIG1hdGNoCXZpbVJlZ2lzdGVyCSdcPG5vcm1cc1wrXHpzIlthLXpBLVowLTldJworc3luIG1hdGNoCXZpbVJlZ2lzdGVyCSdcPG5vcm1hbFxzXCtcenMiW2EtekEtWjAtOV0nCitzeW4gbWF0Y2gJdmltUmVnaXN0ZXIJJ0AiJworc3luIG1hdGNoCXZpbVBsYWluUmVnaXN0ZXIgY29udGFpbmVkCSciW2EtekEtWjAtOVwtOi4lIyorPV0nCiAKLXN5biBtYXRjaCAgdmltQWRkcmVzcwkiLFx6c1suJF0iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3Vic3QxCi1zeW4gbWF0Y2ggIHZpbUFkZHJlc3MJIiVcemVcYSIJc2tpcHdoaXRlIG5leHRncm91cD12aW1TdHJpbmcsdmltU3Vic3QxCitzeW4gbWF0Y2gJdmltQWRkcmVzcwkiLFx6c1suJF0iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3Vic3QxCitzeW4gbWF0Y2gJdmltQWRkcmVzcwkiJVx6ZVxhIglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN0cmluZyx2aW1TdWJzdDEKIAotc3luIG1hdGNoICB2aW1GaWx0ZXIgY29udGFpbmVkCSJeIS5cey19XCh8XHwkXCkiCQljb250YWlucz12aW1TcGVjRmlsZQotc3luIG1hdGNoICB2aW1GaWx0ZXIgY29udGFpbmVkCSJcQSEuXHstfVwofFx8JFwpIm1zPXMrMQljb250YWlucz12aW1TcGVjRmlsZQorc3luIG1hdGNoCXZpbUZpbHRlciBjb250YWluZWQJIl4hLlx7LX1cKHxcfCRcKSIJCWNvbnRhaW5zPXZpbVNwZWNGaWxlCitzeW4gbWF0Y2gJdmltRmlsdGVyIGNvbnRhaW5lZAkiXEEhLlx7LX1cKHxcfCRcKSJtcz1zKzEJY29udGFpbnM9dmltU3BlY0ZpbGUKIAogIiBDb21wbGV4IHJlcGVhdHMgKDpoIGNvbXBsZXgtcmVwZWF0KSB7e3syCi0ic3luIG1hdGNoICB2aW1DbXBseFJlcGVhdAknW15hLXpBLVpfL1xcKCldcVswLTlhLXpBLVoiXSdsYz0xCi0ic3luIG1hdGNoICB2aW1DbXBseFJlcGVhdAknQFswLTlhLXoiLj1AOl1cemVcKCRcfFteYS16QS1aXVwpJworc3luIG1hdGNoCXZpbUNtcGx4UmVwZWF0CSdbXmEtekEtWl8vXFwoKV1xWzAtOWEtekEtWiJdJ2xjPTEKK3N5biBtYXRjaAl2aW1DbXBseFJlcGVhdAknQFswLTlhLXoiLj1AOl1cemVcKCRcfFteYS16QS1aXVwpJwogCiAiIFNldCBjb21tYW5kIGFuZCBhc3NvY2lhdGVkIHNldC1vcHRpb25zICh2aW1PcHRpb25zKSB3aXRoIGNvbW1lbnQge3t7Mgotc3luIHJlZ2lvbiB2aW1TZXQJCW1hdGNoZ3JvdXA9dmltQ29tbWFuZCBzdGFydD0iXDxcJShzZXRsXCVbb2NhbF1cfHNldGdcJVtsb2JhbF1cfHNldFwpXD4iIHNraXA9IlwlKFxcXFxcKSpcXC4iIGVuZD0iJCIgbWF0Y2hncm91cD12aW1Ob3RhdGlvbiBlbmQ9IjxbY0NdW3JSXT4iIGtlZXBlbmQgb25lbGluZSBjb250YWlucz12aW1TZXRFcXVhbCx2aW1PcHRpb24sdmltRXJyU2V0dGluZyx2aW1Db21tZW50LHZpbVNldFN0cmluZyx2aW1TZXRNb2QKLXN5biByZWdpb24gdmltU2V0RXF1YWwgIGNvbnRhaW5lZAlzdGFydD0iPSIJc2tpcD0iXFxcXFx8XFxccyIgZW5kPSJbfCBcdF1cfCQibWU9ZS0xIGNvbnRhaW5zPXZpbUN0cmxDaGFyLHZpbVNldFNlcCx2aW1Ob3RhdGlvbiBvbmVsaW5lCi1zeW4gcmVnaW9uIHZpbVNldFN0cmluZyBjb250YWluZWQJc3RhcnQ9Kz0iK2hzPXMrMQlza2lwPStcXFxcXHxcXCIrICBlbmQ9KyIrCWNvbnRhaW5zPXZpbUN0cmxDaGFyCi1zeW4gbWF0Y2ggIHZpbVNldFNlcCAgICBjb250YWluZWQJIlssOl0iCi1zeW4gbWF0Y2ggIHZpbVNldE1vZAljb250YWluZWQJIiZ2aW1cfFshJl1cfGFsbCYiCitzeW4gcmVnaW9uCXZpbVNldAkJbWF0Y2hncm91cD12aW1Db21tYW5kIHN0YXJ0PSJcPFwlKHNldGxcJVtvY2FsXVx8c2V0Z1wlW2xvYmFsXVx8c2V0XClcPiIgc2tpcD0iXCUoXFxcXFwpKlxcLiIgZW5kPSIkIiBtYXRjaGdyb3VwPXZpbU5vdGF0aW9uIGVuZD0iPFtjQ11bclJdPiIga2VlcGVuZCBvbmVsaW5lIGNvbnRhaW5zPXZpbVNldEVxdWFsLHZpbU9wdGlvbix2aW1FcnJTZXR0aW5nLHZpbUNvbW1lbnQsdmltU2V0U3RyaW5nLHZpbVNldE1vZAorc3luIHJlZ2lvbgl2aW1TZXRFcXVhbAljb250YWluZWQJc3RhcnQ9Ils9Ol1cfFstK15dPSIgc2tpcD0iXFxcXFx8XFxccyIgZW5kPSJbfCBcdF1cfCQibWU9ZS0xIGNvbnRhaW5zPXZpbUN0cmxDaGFyLHZpbVNldFNlcCx2aW1Ob3RhdGlvbiBvbmVsaW5lCitzeW4gcmVnaW9uCXZpbVNldFN0cmluZwljb250YWluZWQJc3RhcnQ9Kz0iK2hzPXMrMQlza2lwPStcXFxcXHxcXCIrICBlbmQ9KyIrCWNvbnRhaW5zPXZpbUN0cmxDaGFyCitzeW4gbWF0Y2gJdmltU2V0U2VwCWNvbnRhaW5lZAkiWyw6XSIKK3N5biBtYXRjaAl2aW1TZXRNb2QJY29udGFpbmVkCSImdmltXD1cfFshJj88XVx8YWxsJiIKIAogIiBMZXQge3t7MgogIiA9PT0KLXN5biBrZXl3b3JkIHZpbUxldAlsZXQJdW5sW2V0XQlza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVZhcgorc3luIGtleXdvcmQJdmltTGV0CWxldAl1bmxbZXRdCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltVmFyLHZpbUZ1bmNWYXIKIAogIiBBYmJyZXZpYXRpb25zIHt7ezIKICIgPT09PT09PT09PT09PQpAQCAtMjk4LDIzMiArMjk3LDIzNSBAQAogCiAiIEF1dG9jbWQge3t7MgogIiA9PT09PT09Ci1zeW4gbWF0Y2ggICB2aW1BdXRvRXZlbnRMaXN0CWNvbnRhaW5lZAkiXCghXHNcK1wpXD1cKFxhXCssXCkqXGFcKyIJY29udGFpbnM9dmltQXV0b0V2ZW50IG5leHRncm91cD12aW1BdXRvQ21kU3BhY2UKLXN5biBtYXRjaCAgIHZpbUF1dG9DbWRTcGFjZQljb250YWluZWQJIlxzXCsiCW5leHRncm91cD12aW1BdXRvQ21kU2Z4TGlzdAotc3luIG1hdGNoICAgdmltQXV0b0NtZFNmeExpc3QJY29udGFpbmVkCSJcUyoiCi1zeW4ga2V5d29yZCB2aW1BdXRvQ21kCWF1W3RvY21kXSBkb1thdXRvY21kXSBkb2F1dG9hW2xsXQlza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUF1dG9FdmVudExpc3QKK3N5biBtYXRjaAl2aW1BdXRvRXZlbnRMaXN0CWNvbnRhaW5lZAkiXCghXHNcK1wpXD1cKFxhXCssXCkqXGFcKyIJY29udGFpbnM9dmltQXV0b0V2ZW50IG5leHRncm91cD12aW1BdXRvQ21kU3BhY2UKK3N5biBtYXRjaAl2aW1BdXRvQ21kU3BhY2UJY29udGFpbmVkCSJcc1wrIgluZXh0Z3JvdXA9dmltQXV0b0NtZFNmeExpc3QKK3N5biBtYXRjaAl2aW1BdXRvQ21kU2Z4TGlzdAljb250YWluZWQJIlxTKiIKK3N5biBrZXl3b3JkCXZpbUF1dG9DbWQJYXVbdG9jbWRdIGRvW2F1dG9jbWRdIGRvYXV0b2FbbGxdCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltQXV0b0V2ZW50TGlzdAogCiAiIEVjaG8gYW5kIEV4ZWN1dGUgLS0gcHJlZmVyIHN0cmluZ3MhIHt7ezIKICIgPT09PT09PT09PT09PT09PQotc3luIHJlZ2lvbiAgdmltRWNobwlvbmVsaW5lIGV4Y2x1ZGVubCBtYXRjaGdyb3VwPXZpbUNvbW1hbmQgc3RhcnQ9Ilw8ZWNcJVtob11cPiIgc2tpcD0iXChcXFxcXCkqXFx8IiBlbmQ9IiRcfHwiIGNvbnRhaW5zPXZpbUZ1bmMsdmltU3RyaW5nLHZhclZhcgotc3luIHJlZ2lvbiAgdmltRXhlY3V0ZQlvbmVsaW5lIGV4Y2x1ZGVubCBtYXRjaGdyb3VwPXZpbUNvbW1hbmQgc3RhcnQ9Ilw8ZXhlXCVbY3V0ZV1cPiIgc2tpcD0iXChcXFxcXCkqXFx8IiBlbmQ9IiRcfHxcfDxbY0NdW3JSXT4iIGNvbnRhaW5zPXZpbUlzQ29tbWFuZCx2aW1TdHJpbmcsdmltT3Blcix2aW1WYXIsdmltTm90YXRpb24sdmltT3BlclBhcmVuCi1zeW4gbWF0Y2ggICB2aW1FY2hvSEwJImVjaG9obFw9Iglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdyb3VwLHZpbUhMR3JvdXAsdmltRWNob0hMTm9uZQorc3luIHJlZ2lvbgl2aW1FY2hvCW9uZWxpbmUgZXhjbHVkZW5sIG1hdGNoZ3JvdXA9dmltQ29tbWFuZCBzdGFydD0iXDxlY1wlW2hvXVw+IiBza2lwPSJcKFxcXFxcKSpcXHwiIGVuZD0iJFx8fCIgY29udGFpbnM9dmltRnVuYyx2aW1GdW5jVmFyLHZpbVN0cmluZyx2aW1WYXIKK3N5biByZWdpb24JdmltRXhlY3V0ZQlvbmVsaW5lIGV4Y2x1ZGVubCBtYXRjaGdyb3VwPXZpbUNvbW1hbmQgc3RhcnQ9Ilw8ZXhlXCVbY3V0ZV1cPiIgc2tpcD0iXChcXFxcXCkqXFx8IiBlbmQ9IiRcfHxcfDxbY0NdW3JSXT4iIGNvbnRhaW5zPXZpbUZ1bmNWYXIsdmltSXNDb21tYW5kLHZpbU9wZXIsdmltTm90YXRpb24sdmltT3BlclBhcmVuLHZpbVN0cmluZyx2aW1WYXIKK3N5biBtYXRjaAl2aW1FY2hvSEwJImVjaG9obFw9Iglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdyb3VwLHZpbUhMR3JvdXAsdmltRWNob0hMTm9uZQogc3luIGNhc2UgaWdub3JlCi1zeW4ga2V5d29yZCB2aW1FY2hvSExOb25lCW5vbmUKK3N5biBrZXl3b3JkCXZpbUVjaG9ITE5vbmUJbm9uZQogc3luIGNhc2UgbWF0Y2gKIAogIiBNYXBzIHt7ezIKICIgPT09PQotc3luIG1hdGNoICAgdmltTWFwCSJcPG1hcFw+IVw9XHplXHMqW14oXSIgc2tpcHdoaXRlIG5leHRncm91cD12aW1NYXBNb2QsdmltTWFwTGhzCi1zeW4ga2V5d29yZCB2aW1NYXAJY21bYXBdIGNub1tyZW1hcF0gaW1bYXBdIGlub1tyZW1hcF0gbG5bb3JlbWFwXSBubVthcF0gbm5bb3JlbWFwXSBub1tyZW1hcF0gb21bYXBdIG9ub1tyZW1hcF0gc25vcltlbWFwXSB2bVthcF0gdm5bb3JlbWFwXSB4bltvcmVtYXBdIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltTWFwQmFuZyx2aW1NYXBNb2QsdmltTWFwTGhzCi1zeW4ga2V5d29yZCB2aW1NYXAJbWFwY1tsZWFyXQotc3luIG1hdGNoICAgdmltTWFwTGhzICAgIGNvbnRhaW5lZAkiXFNcKyIJY29udGFpbnM9dmltTm90YXRpb24sdmltQ3RybENoYXIgc2tpcHdoaXRlIG5leHRncm91cD12aW1NYXBSaHMKLXN5biBtYXRjaCAgIHZpbU1hcEJhbmcgICBjb250YWluZWQJIiEiCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltTWFwTW9kLHZpbU1hcExocwotc3luIG1hdGNoICAgdmltTWFwTW9kICAgIGNvbnRhaW5lZAkiXGM8XChidWZmZXJcfGV4cHJcfFwobG9jYWxcKVw9bGVhZGVyXHxwbHVnXHxzY3JpcHRcfHNpZFx8dW5pcXVlXHxzaWxlbnRcKVwrPiIgY29udGFpbnM9dmltTWFwTW9kS2V5LHZpbU1hcE1vZEVyciBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbU1hcE1vZCx2aW1NYXBMaHMKLXN5biBtYXRjaCAgIHZpbU1hcFJocyAgICBjb250YWluZWQgICIuKiIgY29udGFpbnM9dmltTm90YXRpb24sdmltQ3RybENoYXIgc2tpcG5sIG5leHRncm91cD12aW1NYXBSaHNFeHRlbmQKLXN5biBtYXRjaCAgIHZpbU1hcFJoc0V4dGVuZCBjb250YWluZWQgIl5ccypcXC4qJCIgY29udGFpbnM9dmltQ29udGludWUKK3N5biBtYXRjaAl2aW1NYXAJCSJcPG1hcFw+IVw9XHplXHMqW14oXSIgc2tpcHdoaXRlIG5leHRncm91cD12aW1NYXBNb2QsdmltTWFwTGhzCitzeW4ga2V5d29yZAl2aW1NYXAJCWNtW2FwXSBjbm9bcmVtYXBdIGltW2FwXSBpbm9bcmVtYXBdIGxtW2FwXSBsbltvcmVtYXBdIG5tW2FwXSBubltvcmVtYXBdIG5vW3JlbWFwXSBvbVthcF0gb25vW3JlbWFwXSBzbWFwIHNub3JbZW1hcF0gdm1bYXBdIHZuW29yZW1hcF0geG1bYXBdIHhuW29yZW1hcF0gc2tpcHdoaXRlIG5leHRncm91cD12aW1NYXBCYW5nLHZpbU1hcE1vZCx2aW1NYXBMaHMKK3N5biBrZXl3b3JkCXZpbU1hcAkJbWFwY1tsZWFyXQorc3luIGtleXdvcmQJdmltVW5tYXAJCWN1W25tYXBdIGl1W25tYXBdIGx1W25tYXBdIG51blttYXBdIG91W25tYXBdIHN1bm1bYXBdIHVubVthcF0gdW5tW2FwXSB2dVtubWFwXSB4dVtubWFwXSBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbU1hcEJhbmcsdmltTWFwTW9kLHZpbU1hcExocworc3luIG1hdGNoCXZpbU1hcExocwljb250YWluZWQJIlxTXCsiCQkJY29udGFpbnM9dmltTm90YXRpb24sdmltQ3RybENoYXIgc2tpcHdoaXRlIG5leHRncm91cD12aW1NYXBSaHMKK3N5biBtYXRjaAl2aW1NYXBCYW5nCWNvbnRhaW5lZAkiISIJCQlza2lwd2hpdGUgbmV4dGdyb3VwPXZpbU1hcE1vZCx2aW1NYXBMaHMKK3N5biBtYXRjaAl2aW1NYXBNb2QJY29udGFpbmVkCSJcYzxcKGJ1ZmZlclx8ZXhwclx8XChsb2NhbFwpXD1sZWFkZXJcfHBsdWdcfHNjcmlwdFx8c2lkXHx1bmlxdWVcfHNpbGVudFwpXCs+IiBjb250YWlucz12aW1NYXBNb2RLZXksdmltTWFwTW9kRXJyIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltTWFwTW9kLHZpbU1hcExocworc3luIG1hdGNoCXZpbU1hcFJocwljb250YWluZWQJIi4qIiBjb250YWlucz12aW1Ob3RhdGlvbix2aW1DdHJsQ2hhcglza2lwbmwgbmV4dGdyb3VwPXZpbU1hcFJoc0V4dGVuZAorc3luIG1hdGNoCXZpbU1hcFJoc0V4dGVuZAljb250YWluZWQJIl5ccypcXC4qJCIJCQljb250YWlucz12aW1Db250aW51ZQogc3luIGNhc2UgaWdub3JlCi1zeW4ga2V5d29yZCB2aW1NYXBNb2RLZXkgY29udGFpbmVkCWJ1ZmZlcglleHByCWxlYWRlcglsb2NhbGxlYWRlcglwbHVnCXNjcmlwdAlzaWQJc2lsZW50CXVuaXF1ZQorc3luIGtleXdvcmQJdmltTWFwTW9kS2V5CWNvbnRhaW5lZAlidWZmZXIJZXhwcglsZWFkZXIJbG9jYWxsZWFkZXIJcGx1ZwlzY3JpcHQJc2lkCXNpbGVudAl1bmlxdWUKIHN5biBjYXNlIG1hdGNoCiAKICIgTWVudXMge3t7MgogIiA9PT09PQotc3luIGNsdXN0ZXIgdmltTWVudUxpc3QgY29udGFpbnM9dmltTWVudUJhbmcsdmltTWVudVByaW9yaXR5LHZpbU1lbnVOYW1lLHZpbU1lbnVNb2QKLXN5biBrZXl3b3JkIHZpbUNvbW1hbmQJYW1bZW51XSBhbltvcmVtZW51XSBhdW5bbWVudV0gY21lW251XSBjbm9yZW1lW251XSBjdW5tZVtudV0gaW1lW251XSBpbm9yZW1lW251XSBpdW5tZVtudV0gbWVbbnVdIG5tZVtudV0gbm5vcmVtZVtudV0gbm9yZW1lW251XSBudW5tZVtudV0gb21lW251XSBvbm9yZW1lW251XSBvdW5tZVtudV0gdW5tZVtudV0gdm1lW251XSB2bm9yZW1lW251XSB2dW5tZVtudV0gc2tpcHdoaXRlIG5leHRncm91cD1AdmltTWVudUxpc3QKLXN5biBtYXRjaCAgIHZpbU1lbnVOYW1lCSJbXiBcdFxcPF1cKyIJY29udGFpbmVkIG5leHRncm91cD12aW1NZW51TmFtZU1vcmUsdmltTWVudU1hcAotc3luIG1hdGNoICAgdmltTWVudVByaW9yaXR5CSJcZFwrXChcLlxkXCtcKSoiCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbU1lbnVOYW1lCi1zeW4gbWF0Y2ggICB2aW1NZW51TmFtZU1vcmUJIlxjXFxcc1x8PHRhYj5cfFxcXC4iCWNvbnRhaW5lZCBuZXh0Z3JvdXA9dmltTWVudU5hbWUsdmltTWVudU5hbWVNb3JlIGNvbnRhaW5zPXZpbU5vdGF0aW9uCi1zeW4gbWF0Y2ggICB2aW1NZW51TW9kICAgIGNvbnRhaW5lZAkiXGM8XChzY3JpcHRcfHNpbGVudFwpXCs+IiAgc2tpcHdoaXRlIGNvbnRhaW5zPXZpbU1hcE1vZEtleSx2aW1NYXBNb2RFcnIgbmV4dGdyb3VwPUB2aW1NZW51TGlzdAotc3luIG1hdGNoICAgdmltTWVudU1hcAkiXHMiCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbU1lbnVSaHMKLXN5biBtYXRjaCAgIHZpbU1lbnVSaHMJIi4qJCIJY29udGFpbmVkIGNvbnRhaW5zPXZpbVN0cmluZyx2aW1Db21tZW50LHZpbUlzQ29tbWFuZAotc3luIG1hdGNoICAgdmltTWVudUJhbmcJIiEiCWNvbnRhaW5lZCBza2lwd2hpdGUgbmV4dGdyb3VwPUB2aW1NZW51TGlzdAorc3luIGNsdXN0ZXIJdmltTWVudUxpc3QgY29udGFpbnM9dmltTWVudUJhbmcsdmltTWVudVByaW9yaXR5LHZpbU1lbnVOYW1lLHZpbU1lbnVNb2QKK3N5biBrZXl3b3JkCXZpbUNvbW1hbmQJYW1bZW51XSBhbltvcmVtZW51XSBhdW5bbWVudV0gY21lW251XSBjbm9yZW1lW251XSBjdW5tZVtudV0gaW1lW251XSBpbm9yZW1lW251XSBpdW5tZVtudV0gbWVbbnVdIG5tZVtudV0gbm5vcmVtZVtudV0gbm9yZW1lW251XSBudW5tZVtudV0gb21lW251XSBvbm9yZW1lW251XSBvdW5tZVtudV0gdW5tZVtudV0gdm1lW251XSB2bm9yZW1lW251XSB2dW5tZVtudV0gc2tpcHdoaXRlIG5leHRncm91cD1AdmltTWVudUxpc3QKK3N5biBtYXRjaAl2aW1NZW51TmFtZQkiW14gXHRcXDxdXCsiCWNvbnRhaW5lZCBuZXh0Z3JvdXA9dmltTWVudU5hbWVNb3JlLHZpbU1lbnVNYXAKK3N5biBtYXRjaAl2aW1NZW51UHJpb3JpdHkJIlxkXCtcKFwuXGRcK1wpKiIJY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltTWVudU5hbWUKK3N5biBtYXRjaAl2aW1NZW51TmFtZU1vcmUJIlxjXFxcc1x8PHRhYj5cfFxcXC4iCWNvbnRhaW5lZCBuZXh0Z3JvdXA9dmltTWVudU5hbWUsdmltTWVudU5hbWVNb3JlIGNvbnRhaW5zPXZpbU5vdGF0aW9uCitzeW4gbWF0Y2gJdmltTWVudU1vZCAgICBjb250YWluZWQJIlxjPFwoc2NyaXB0XHxzaWxlbnRcKVwrPiIgIHNraXB3aGl0ZSBjb250YWlucz12aW1NYXBNb2RLZXksdmltTWFwTW9kRXJyIG5leHRncm91cD1AdmltTWVudUxpc3QKK3N5biBtYXRjaAl2aW1NZW51TWFwCSJccyIJY29udGFpbmVkIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltTWVudVJocworc3luIG1hdGNoCXZpbU1lbnVSaHMJIi4qJCIJY29udGFpbmVkIGNvbnRhaW5zPXZpbVN0cmluZyx2aW1Db21tZW50LHZpbUlzQ29tbWFuZAorc3luIG1hdGNoCXZpbU1lbnVCYW5nCSIhIgljb250YWluZWQgc2tpcHdoaXRlIG5leHRncm91cD1AdmltTWVudUxpc3QKIAogIiBBbmdsZS1CcmFja2V0IE5vdGF0aW9uICh0bnggdG8gTWljaGFlbCBHZWRkZXMpIHt7ezIKICIgPT09PT09PT09PT09PT09PT09PT09PQogc3luIGNhc2UgaWdub3JlCi1zeW4gbWF0Y2ggdmltTm90YXRpb24JIlwoXFxcfDxsdD5cKVw9PFwoW3NjYW1kXS1cKVx7MCw0fXhcPVwoZlxkXHsxLDJ9XHxbXiBcdDpdXHxjclx8bGZcfGxpbmVmZWVkXHxyZXR1cm5cfGtcPWRlbFwlW2V0ZV1cfGJzXHxiYWNrc3BhY2VcfHRhYlx8ZXNjXHxyaWdodFx8bGVmdFx8aGVscFx8dW5kb1x8aW5zZXJ0XHxpbnNcfGtcPWhvbWVcfGtcPWVuZFx8a3BsdXNcfGttaW51c1x8a2RpdmlkZVx8a211bHRpcGx5XHxrZW50ZXJcfHNwYWNlXHxrXD1cKHBhZ2VcKVw9XChcfGRvd25cfHVwXClcKT4iIGNvbnRhaW5zPXZpbUJyYWNrZXQKLXN5biBtYXRjaCB2aW1Ob3RhdGlvbgkiXChcXFx8PGx0PlwpXD08XChbc2NhbTItNF0tXClcezAsNH1cKHJpZ2h0XHxsZWZ0XHxtaWRkbGVcKVwobW91c2VcKVw9XChkcmFnXHxyZWxlYXNlXClcPT4iCWNvbnRhaW5zPXZpbUJyYWNrZXQKLXN5biBtYXRjaCB2aW1Ob3RhdGlvbgkiXChcXFx8PGx0PlwpXD08XChic2xhc2hcfHBsdWdcfHNpZFx8c3BhY2VcfGJhclx8bm9wXHxudWxcfGx0XCk+IgkJY29udGFpbnM9dmltQnJhY2tldAotc3luIG1hdGNoIHZpbU5vdGF0aW9uCSdcKFxcXHw8bHQ+XClcPTxDLVI+WzAtOWEteiIlIzouXC09XSdoZT1lLTEJCQljb250YWlucz12aW1CcmFja2V0Ci1zeW4gbWF0Y2ggdmltTm90YXRpb24JJ1woXFxcfDxsdD5cKVw9PFwlKHEtXClcPVwobGluZVsxMl1cfGNvdW50XHxiYW5nXHxyZWdcfGFyZ3NcfGYtYXJnc1x8bHRcKT4nCWNvbnRhaW5zPXZpbUJyYWNrZXQKLXN5biBtYXRjaCB2aW1Ob3RhdGlvbgkiXChcXFx8PGx0PlwpXD08XChbY2FzXWZpbGVcfGFidWZcfGFtYXRjaFx8Y3dvcmRcfGNXT1JEXHxjbGllbnRcKT4iCQljb250YWlucz12aW1CcmFja2V0Ci1zeW4gbWF0Y2ggdmltQnJhY2tldCBjb250YWluZWQJIltcXDw+XSIKK3N5biBtYXRjaAl2aW1Ob3RhdGlvbgkiXChcXFx8PGx0PlwpXD08XChbc2NhbWRdLVwpXHswLDR9eFw9XChmXGRcezEsMn1cfFteIFx0Ol1cfGNyXHxsZlx8bGluZWZlZWRcfHJldHVyblx8a1w9ZGVsXCVbZXRlXVx8YnNcfGJhY2tzcGFjZVx8dGFiXHxlc2NcfHJpZ2h0XHxsZWZ0XHxoZWxwXHx1bmRvXHxpbnNlcnRcfGluc1x8a1w9aG9tZVx8a1w9ZW5kXHxrcGx1c1x8a21pbnVzXHxrZGl2aWRlXHxrbXVsdGlwbHlcfGtlbnRlclx8c3BhY2VcfGtcPVwocGFnZVwpXD1cKFx8ZG93blx8dXBcKVwpPiIgY29udGFpbnM9dmltQnJhY2tldAorc3luIG1hdGNoCXZpbU5vdGF0aW9uCSJcKFxcXHw8bHQ+XClcPTxcKFtzY2FtMi00XS1cKVx7MCw0fVwocmlnaHRcfGxlZnRcfG1pZGRsZVwpXChtb3VzZVwpXD1cKGRyYWdcfHJlbGVhc2VcKVw9PiIJY29udGFpbnM9dmltQnJhY2tldAorc3luIG1hdGNoCXZpbU5vdGF0aW9uCSJcKFxcXHw8bHQ+XClcPTxcKGJzbGFzaFx8cGx1Z1x8c2lkXHxzcGFjZVx8YmFyXHxub3BcfG51bFx8bHRcKT4iCQljb250YWlucz12aW1CcmFja2V0CitzeW4gbWF0Y2gJdmltTm90YXRpb24JJ1woXFxcfDxsdD5cKVw9PEMtUj5bMC05YS16IiUjOi5cLT1dJ2hlPWUtMQkJCWNvbnRhaW5zPXZpbUJyYWNrZXQKK3N5biBtYXRjaAl2aW1Ob3RhdGlvbgknXChcXFx8PGx0PlwpXD08XCUocS1cKVw9XChsaW5lWzEyXVx8Y291bnRcfGJhbmdcfHJlZ1x8YXJnc1x8Zi1hcmdzXHxsdFwpPicJY29udGFpbnM9dmltQnJhY2tldAorc3luIG1hdGNoCXZpbU5vdGF0aW9uCSJcKFxcXHw8bHQ+XClcPTxcKFtjYXNdZmlsZVx8YWJ1Zlx8YW1hdGNoXHxjd29yZFx8Y1dPUkRcfGNsaWVudFwpPiIJCWNvbnRhaW5zPXZpbUJyYWNrZXQKK3N5biBtYXRjaAl2aW1CcmFja2V0IGNvbnRhaW5lZAkiW1xcPD5dIgogc3luIGNhc2UgbWF0Y2gKIAogIiBVc2VyIEZ1bmN0aW9uIEhpZ2hsaWdodGluZyB7e3syCiAiIChmb2xsb3dpbmcgR2F1dGFtIEl5ZXIncyBzdWdnZXN0aW9uKQogIiA9PT09PT09PT09PT09PT09PT09PT09PT09PQotc3luIG1hdGNoIHZpbUZ1bmMJCSJcJShcJShbZ0dzU106XHw8W3NTXVtpSV1bZERdPlwpXD1cJShbYS16QS1aMC05Xy5dXCtcLlwpKlxJW2EtekEtWjAtOV8uXSpcKVx6ZVxzKigiCQljb250YWlucz12aW1GdW5jTmFtZSx2aW1Vc2VyRnVuYyx2aW1FeGVjdXRlCi1zeW4gbWF0Y2ggdmltVXNlckZ1bmMgY29udGFpbmVkCSJcJShcJShbZ0dzU106XHw8W3NTXVtpSV1bZERdPlwpXD1cJShbYS16QS1aMC05Xy5dXCtcLlwpKlxJW2EtekEtWjAtOV8uXSpcKVx8XDxcdVthLXpBLVowLTkuXSpcPlx8XDxpZlw+Igljb250YWlucz12aW1Ob3RhdGlvbgotc3luIG1hdGNoIHZpbU5vdEZ1bmMJIlw8aWZcPlx8XDxlbFwlW3NlaWZdXD4iCitzeW4gbWF0Y2ggdmltRnVuYwkJIlwlKFwlKFtzU2dHYkJ3V3RUbExdOlx8PFtzU11baUldW2REXT5cKVw9XCUoW2EtekEtWjAtOV8uXVwrXC5cKSpcSVthLXpBLVowLTlfLl0qXClcemVccyooIgkJY29udGFpbnM9dmltRnVuY05hbWUsdmltVXNlckZ1bmMsdmltRXhlY3V0ZQorc3luIG1hdGNoIHZpbVVzZXJGdW5jIGNvbnRhaW5lZAkiXCUoXCUoW3NTZ0diQndXdFRsTF06XHw8W3NTXVtpSV1bZERdPlwpXD1cJShbYS16QS1aMC05Xy5dXCtcLlwpKlxJW2EtekEtWjAtOV8uXSpcKVx8XDxcdVthLXpBLVowLTkuXSpcPlx8XDxpZlw+Igljb250YWlucz12aW1Ob3RhdGlvbgorc3luIG1hdGNoIHZpbU5vdEZ1bmMJIlw8aWZcPlx8XDxlbFwlW3NlaWZdXD5cfFw8cmV0dXJuXD5cfFw8d2hpbGVcPiIKIAogIiBFcnJvcnMgQW5kIFdhcm5pbmdzOiB7e3syCiAiID09PT09PT09PT09PT09PT09PT09CiBpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKLSBzeW4gbWF0Y2ggdmltRWxzZUlmRXJyCSJcPGVsc2Vcc1wraWZcPiIKLSBzeW4gbWF0Y2ggdmltQnVmbnJXYXJuCS9cPGJ1Zm5yXHMqKFxzKlsiJ11cLlsnIl1ccyopLworIHN5biBtYXRjaAl2aW1GdW5jdGlvbkVycm9yCSJcc1x6c1thLXowLTldXGlcey19XHplXHMqKCIJCQljb250YWluZWQgY29udGFpbnM9dmltRnVuY0tleSx2aW1GdW5jQmxhbmsKKyIgc3luIG1hdGNoCXZpbUZ1bmN0aW9uRXJyb3IJIlxzXHpzXCUoPFtzU11baUldW2REXT5cfFtzU2dHYkJ3V3RUbExdOlwpWzAtOV1caVx7LX1cemVccyooIgljb250YWluZWQgY29udGFpbnM9dmltRnVuY0tleSx2aW1GdW5jQmxhbmsKKyBzeW4gbWF0Y2gJdmltRWxzZUlmRXJyCSJcPGVsc2Vcc1wraWZcPiIKKyBzeW4gbWF0Y2gJdmltQnVmbnJXYXJuCS9cPGJ1Zm5yXHMqKFxzKlsiJ11cLlsnIl1ccyopLwogZW5kaWYKIAogIiBOb3JtIHt7ezIKICIgPT09PQotc3luIG1hdGNoIHZpbU5vcm0JCSJcPG5vcm1cJVthbF0hXD0iIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltTm9ybUNtZHMKLXN5biBtYXRjaCB2aW1Ob3JtQ21kcyBjb250YWluZWQJIi4qJCIKK3N5biBtYXRjaAl2aW1Ob3JtCQkiXDxub3JtXCVbYWxdIVw9IiBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbU5vcm1DbWRzCitzeW4gbWF0Y2gJdmltTm9ybUNtZHMgY29udGFpbmVkCSIuKiQiCiAKICIgU3ludGF4IHt7ezIKICI9PT09PT09Ci1zeW4gbWF0Y2ggICB2aW1Hcm91cExpc3QJY29udGFpbmVkCSJAXD1bXiBcdCxdKiIJY29udGFpbnM9dmltR3JvdXBTcGVjaWFsLHZpbVBhdFNlcAotc3luIG1hdGNoICAgdmltR3JvdXBMaXN0CWNvbnRhaW5lZAkiQFw9W14gXHQsXSosIgluZXh0Z3JvdXA9dmltR3JvdXBMaXN0IGNvbnRhaW5zPXZpbUdyb3VwU3BlY2lhbCx2aW1QYXRTZXAKLXN5biBrZXl3b3JkIHZpbUdyb3VwU3BlY2lhbAljb250YWluZWQJQUxMCUFMTEJVVAorc3luIG1hdGNoCXZpbUdyb3VwTGlzdAljb250YWluZWQJIkBcPVteIFx0LF0qIgljb250YWlucz12aW1Hcm91cFNwZWNpYWwsdmltUGF0U2VwCitzeW4gbWF0Y2gJdmltR3JvdXBMaXN0CWNvbnRhaW5lZAkiQFw9W14gXHQsXSosIgluZXh0Z3JvdXA9dmltR3JvdXBMaXN0IGNvbnRhaW5zPXZpbUdyb3VwU3BlY2lhbCx2aW1QYXRTZXAKK3N5biBrZXl3b3JkCXZpbUdyb3VwU3BlY2lhbAljb250YWluZWQJQUxMCUFMTEJVVAlDT05UQUlORUQJVE9QCiBpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKLSBzeW4gbWF0Y2ggICB2aW1TeW5FcnJvcgljb250YWluZWQJIlxpXCsiCi0gc3luIG1hdGNoICAgdmltU3luRXJyb3IJY29udGFpbmVkCSJcaVwrPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAorIHN5biBtYXRjaAl2aW1TeW5FcnJvcgljb250YWluZWQJIlxpXCsiCisgc3luIG1hdGNoCXZpbVN5bkVycm9yCWNvbnRhaW5lZAkiXGlcKz0iCW5leHRncm91cD12aW1Hcm91cExpc3QKIGVuZGlmCi1zeW4gbWF0Y2ggICB2aW1TeW5Db250YWlucwljb250YWluZWQJIlw8Y29udGFpblwoc1x8ZWRpblwpPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAotc3luIG1hdGNoICAgdmltU3luS2V5Q29udGFpbmVkaW4JY29udGFpbmVkCSJcPGNvbnRhaW5lZGluPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAotc3luIG1hdGNoICAgdmltU3luTmV4dGdyb3VwCWNvbnRhaW5lZAkibmV4dGdyb3VwPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAorc3luIG1hdGNoCXZpbVN5bkNvbnRhaW5zCWNvbnRhaW5lZAkiXDxjb250YWluXChzXHxlZGluXCk9IgluZXh0Z3JvdXA9dmltR3JvdXBMaXN0CitzeW4gbWF0Y2gJdmltU3luS2V5Q29udGFpbmVkaW4JY29udGFpbmVkCSJcPGNvbnRhaW5lZGluPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAorc3luIG1hdGNoCXZpbVN5bk5leHRncm91cAljb250YWluZWQJIm5leHRncm91cD0iCW5leHRncm91cD12aW1Hcm91cExpc3QKIAotc3luIG1hdGNoICAgdmltU3ludGF4CSJcPHN5XCVbbnRheF1cPiIJY29udGFpbnM9dmltQ29tbWFuZCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5blR5cGUsdmltQ29tbWVudAotc3luIG1hdGNoICAgdmltQXVTeW50YXgJY29udGFpbmVkCSJccytzeVwlW250YXhdIgljb250YWlucz12aW1Db21tYW5kIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luVHlwZSx2aW1Db21tZW50CitzeW4gbWF0Y2gJdmltU3ludGF4CSJcPHN5XCVbbnRheF1cPiIJY29udGFpbnM9dmltQ29tbWFuZCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5blR5cGUsdmltQ29tbWVudAorc3luIG1hdGNoCXZpbUF1U3ludGF4CWNvbnRhaW5lZAkiXHMrc3lcJVtudGF4XSIJY29udGFpbnM9dmltQ29tbWFuZCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5blR5cGUsdmltQ29tbWVudAogCiAiIFN5bnRheDogY2FzZSB7e3syCi1zeW4ga2V5d29yZCB2aW1TeW5UeXBlCWNvbnRhaW5lZAljYXNlCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luQ2FzZSx2aW1TeW5DYXNlRXJyb3IKK3N5biBrZXl3b3JkCXZpbVN5blR5cGUJY29udGFpbmVkCWNhc2UJc2tpcHdoaXRlIG5leHRncm91cD12aW1TeW5DYXNlLHZpbVN5bkNhc2VFcnJvcgogaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCi0gc3luIG1hdGNoICAgdmltU3luQ2FzZUVycm9yCWNvbnRhaW5lZAkiXGlcKyIKKyBzeW4gbWF0Y2gJdmltU3luQ2FzZUVycm9yCWNvbnRhaW5lZAkiXGlcKyIKIGVuZGlmCi1zeW4ga2V5d29yZCB2aW1TeW5DYXNlCWNvbnRhaW5lZAlpZ25vcmUJbWF0Y2gKK3N5biBrZXl3b3JkCXZpbVN5bkNhc2UJY29udGFpbmVkCWlnbm9yZQltYXRjaAogCiAiIFN5bnRheDogY2xlYXIge3t7Mgotc3luIGtleXdvcmQgdmltU3luVHlwZQljb250YWluZWQJY2xlYXIJc2tpcHdoaXRlIG5leHRncm91cD12aW1Hcm91cExpc3QKK3N5biBrZXl3b3JkCXZpbVN5blR5cGUJY29udGFpbmVkCWNsZWFyCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltR3JvdXBMaXN0CiAKICIgU3ludGF4OiBjbHVzdGVyIHt7ezIKLXN5biBrZXl3b3JkIHZpbVN5blR5cGUJY29udGFpbmVkCWNsdXN0ZXIJc2tpcHdoaXRlIG5leHRncm91cD12aW1DbHVzdGVyTmFtZQotc3luIHJlZ2lvbiAgdmltQ2x1c3Rlck5hbWUJY29udGFpbmVkCW1hdGNoZ3JvdXA9dmltR3JvdXBOYW1lIHN0YXJ0PSJca1wrIiBza2lwPSJcXFxcXHxcXHwiIG1hdGNoZ3JvdXA9dmltU2VwIGVuZD0iJFx8fCIgY29udGFpbnM9dmltR3JvdXBBZGQsdmltR3JvdXBSZW0sdmltU3luQ29udGFpbnMsdmltU3luRXJyb3IKLXN5biBtYXRjaCAgIHZpbUdyb3VwQWRkCWNvbnRhaW5lZAkiYWRkPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAotc3luIG1hdGNoICAgdmltR3JvdXBSZW0JY29udGFpbmVkCSJyZW1vdmU9IgluZXh0Z3JvdXA9dmltR3JvdXBMaXN0CitzeW4ga2V5d29yZAl2aW1TeW5UeXBlCWNvbnRhaW5lZAljbHVzdGVyCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltQ2x1c3Rlck5hbWUKK3N5biByZWdpb24JdmltQ2x1c3Rlck5hbWUJY29udGFpbmVkCW1hdGNoZ3JvdXA9dmltR3JvdXBOYW1lIHN0YXJ0PSJca1wrIiBza2lwPSJcXFxcXHxcXHwiIG1hdGNoZ3JvdXA9dmltU2VwIGVuZD0iJFx8fCIgY29udGFpbnM9dmltR3JvdXBBZGQsdmltR3JvdXBSZW0sdmltU3luQ29udGFpbnMsdmltU3luRXJyb3IKK3N5biBtYXRjaAl2aW1Hcm91cEFkZAljb250YWluZWQJImFkZD0iCW5leHRncm91cD12aW1Hcm91cExpc3QKK3N5biBtYXRjaAl2aW1Hcm91cFJlbQljb250YWluZWQJInJlbW92ZT0iCW5leHRncm91cD12aW1Hcm91cExpc3QKIAogIiBTeW50YXg6IGluY2x1ZGUge3t7Mgotc3luIGtleXdvcmQgdmltU3luVHlwZQljb250YWluZWQJaW5jbHVkZQlza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAorc3luIGtleXdvcmQJdmltU3luVHlwZQljb250YWluZWQJaW5jbHVkZQlza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAogCiAiIFN5bnRheDoga2V5d29yZCB7e3syCi1zeW4gY2x1c3RlciB2aW1TeW5LZXlHcm91cAljb250YWlucz12aW1TeW5OZXh0Z3JvdXAsdmltU3luS2V5T3B0LHZpbVN5bktleUNvbnRhaW5lZGluCi1zeW4ga2V5d29yZCB2aW1TeW5UeXBlCWNvbnRhaW5lZAlrZXl3b3JkCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luS2V5UmVnaW9uCi1zeW4gcmVnaW9uICB2aW1TeW5LZXlSZWdpb24JY29udGFpbmVkIG9uZWxpbmUga2VlcGVuZAltYXRjaGdyb3VwPXZpbUdyb3VwTmFtZSBzdGFydD0iXGtcKyIgc2tpcD0iXFxcXFx8XFx8IiBtYXRjaGdyb3VwPXZpbVNlcCBlbmQ9InxcfCQiIGNvbnRhaW5zPUB2aW1TeW5LZXlHcm91cAotc3luIG1hdGNoICAgdmltU3luS2V5T3B0CWNvbnRhaW5lZAkiXDxcKGNvbmNlYWxcfGNvbnRhaW5lZFx8dHJhbnNwYXJlbnRcfHNraXBlbXB0eVx8c2tpcHdoaXRlXHxza2lwbmxcKVw+Igorc3luIGNsdXN0ZXIJdmltU3luS2V5R3JvdXAJY29udGFpbnM9dmltU3luTmV4dGdyb3VwLHZpbVN5bktleU9wdCx2aW1TeW5LZXlDb250YWluZWRpbgorc3luIGtleXdvcmQJdmltU3luVHlwZQljb250YWluZWQJa2V5d29yZAlza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5bktleVJlZ2lvbgorc3luIHJlZ2lvbgl2aW1TeW5LZXlSZWdpb24JY29udGFpbmVkIG9uZWxpbmUga2VlcGVuZAltYXRjaGdyb3VwPXZpbUdyb3VwTmFtZSBzdGFydD0iXGtcKyIgc2tpcD0iXFxcXFx8XFx8IiBtYXRjaGdyb3VwPXZpbVNlcCBlbmQ9InxcfCQiIGNvbnRhaW5zPUB2aW1TeW5LZXlHcm91cAorc3luIG1hdGNoCXZpbVN5bktleU9wdAljb250YWluZWQJIlw8XChjb25jZWFsXHxjb250YWluZWRcfHRyYW5zcGFyZW50XHxza2lwZW1wdHlcfHNraXB3aGl0ZVx8c2tpcG5sXClcPiIKIAogIiBTeW50YXg6IG1hdGNoIHt7ezIKLXN5biBjbHVzdGVyIHZpbVN5bk10Y2hHcm91cAljb250YWlucz12aW1NdGNoQ29tbWVudCx2aW1TeW5Db250YWlucyx2aW1TeW5FcnJvcix2aW1TeW5NdGNoT3B0LHZpbVN5bk5leHRncm91cCx2aW1TeW5SZWdQYXQsdmltTm90YXRpb24KLXN5biBrZXl3b3JkIHZpbVN5blR5cGUJY29udGFpbmVkCW1hdGNoCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luTWF0Y2hSZWdpb24KLXN5biByZWdpb24gIHZpbVN5bk1hdGNoUmVnaW9uCWNvbnRhaW5lZCBrZWVwZW5kCW1hdGNoZ3JvdXA9dmltR3JvdXBOYW1lIHN0YXJ0PSJca1wrIiBtYXRjaGdyb3VwPXZpbVNlcCBlbmQ9InxcfCQiIGNvbnRhaW5zPUB2aW1TeW5NdGNoR3JvdXAKLXN5biBtYXRjaCAgIHZpbVN5bk10Y2hPcHQJY29udGFpbmVkCSJcPFwoY29uY2VhbFx8dHJhbnNwYXJlbnRcfGNvbnRhaW5lZFx8ZXhjbHVkZW5sXHxza2lwZW1wdHlcfHNraXB3aGl0ZVx8ZGlzcGxheVx8ZXh0ZW5kXHxza2lwbmxcfGZvbGRcKVw+Igorc3luIGNsdXN0ZXIJdmltU3luTXRjaEdyb3VwCWNvbnRhaW5zPXZpbU10Y2hDb21tZW50LHZpbVN5bkNvbnRhaW5zLHZpbVN5bkVycm9yLHZpbVN5bk10Y2hPcHQsdmltU3luTmV4dGdyb3VwLHZpbVN5blJlZ1BhdCx2aW1Ob3RhdGlvbgorc3luIGtleXdvcmQJdmltU3luVHlwZQljb250YWluZWQJbWF0Y2gJc2tpcHdoaXRlIG5leHRncm91cD12aW1TeW5NYXRjaFJlZ2lvbgorc3luIHJlZ2lvbgl2aW1TeW5NYXRjaFJlZ2lvbgljb250YWluZWQga2VlcGVuZAltYXRjaGdyb3VwPXZpbUdyb3VwTmFtZSBzdGFydD0iXGtcKyIgbWF0Y2hncm91cD12aW1TZXAgZW5kPSJ8XHwkIiBjb250YWlucz1AdmltU3luTXRjaEdyb3VwCitzeW4gbWF0Y2gJdmltU3luTXRjaE9wdAljb250YWluZWQJIlw8XChjb25jZWFsXHx0cmFuc3BhcmVudFx8Y29udGFpbmVkXHxleGNsdWRlbmxcfHNraXBlbXB0eVx8c2tpcHdoaXRlXHxkaXNwbGF5XHxleHRlbmRcfHNraXBubFx8Zm9sZFwpXD4iCiBpZiBoYXMoImNvbmNlYWwiKQotIHN5biBtYXRjaCAgIHZpbVN5bk10Y2hPcHQJY29udGFpbmVkCSJcPGNjaGFyPSIJbmV4dGdyb3VwPVZpbVN5bk10Y2hDY2hhcgotIHN5biBtYXRjaCAgIHZpbVN5bk10Y2hDY2hhcgljb250YWluZWQJIi4iCisgc3luIG1hdGNoCXZpbVN5bk10Y2hPcHQJY29udGFpbmVkCSJcPGNjaGFyPSIJbmV4dGdyb3VwPVZpbVN5bk10Y2hDY2hhcgorIHN5biBtYXRjaAl2aW1TeW5NdGNoQ2NoYXIJY29udGFpbmVkCSJcUyIKIGVuZGlmCiAKICIgU3ludGF4OiBvZmYgYW5kIG9uIHt7ezIKLXN5biBrZXl3b3JkIHZpbVN5blR5cGUJY29udGFpbmVkCWVuYWJsZQlsaXN0CW1hbnVhbAlvZmYJb24JcmVzZXQKK3N5biBrZXl3b3JkCXZpbVN5blR5cGUJY29udGFpbmVkCWVuYWJsZQlsaXN0CW1hbnVhbAlvZmYJb24JcmVzZXQKIAogIiBTeW50YXg6IHJlZ2lvbiB7e3syCi1zeW4gY2x1c3RlciB2aW1TeW5SZWdQYXRHcm91cAljb250YWlucz12aW1QYXRTZXAsdmltTm90UGF0U2VwLHZpbVN5blBhdFJhbmdlLHZpbVN5bk5vdFBhdFJhbmdlLHZpbVN1YnN0U3Vic3RyLHZpbVBhdFJlZ2lvbix2aW1QYXRTZXBFcnIsdmltTm90YXRpb24KLXN5biBjbHVzdGVyIHZpbVN5blJlZ0dyb3VwCWNvbnRhaW5zPXZpbVN5bkNvbnRhaW5zLHZpbVN5bk5leHRncm91cCx2aW1TeW5SZWdPcHQsdmltU3luUmVnLHZpbVN5bk10Y2hHcnAKLXN5biBrZXl3b3JkIHZpbVN5blR5cGUJY29udGFpbmVkCXJlZ2lvbglza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5blJlZ2lvbgotc3luIHJlZ2lvbiAgdmltU3luUmVnaW9uCWNvbnRhaW5lZCBrZWVwZW5kCW1hdGNoZ3JvdXA9dmltR3JvdXBOYW1lIHN0YXJ0PSJca1wrIiBza2lwPSJcXFxcXHxcXHwiIGVuZD0ifFx8JCIgY29udGFpbnM9QHZpbVN5blJlZ0dyb3VwCi1zeW4gbWF0Y2ggICB2aW1TeW5SZWdPcHQJY29udGFpbmVkCSJcPFwoY29uY2VhbFwoZW5kc1wpXD1cfHRyYW5zcGFyZW50XHxjb250YWluZWRcfGV4Y2x1ZGVubFx8c2tpcGVtcHR5XHxza2lwd2hpdGVcfGRpc3BsYXlcfGtlZXBlbmRcfG9uZWxpbmVcfGV4dGVuZFx8c2tpcG5sXHxmb2xkXClcPiIKLXN5biBtYXRjaCAgIHZpbVN5blJlZwljb250YWluZWQJIlwoc3RhcnRcfHNraXBcfGVuZFwpPSJoZT1lLTEJbmV4dGdyb3VwPXZpbVN5blJlZ1BhdAotc3luIG1hdGNoICAgdmltU3luTXRjaEdycAljb250YWluZWQJIm1hdGNoZ3JvdXA9IgluZXh0Z3JvdXA9dmltR3JvdXAsdmltSExHcm91cAotc3luIHJlZ2lvbiAgdmltU3luUmVnUGF0CWNvbnRhaW5lZCBleHRlbmQJc3RhcnQ9Ilx6KFstYH4hQCMkJV4mKl89Kzs6JyIsLi8/XVwpIiAgc2tpcD0iXFxcXFx8XFxcejEiICBlbmQ9Ilx6MSIgIGNvbnRhaW5zPUB2aW1TeW5SZWdQYXRHcm91cCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5blBhdE1vZCx2aW1TeW5SZWcKLXN5biBtYXRjaCAgIHZpbVN5blBhdE1vZAljb250YWluZWQJIlwoaHNcfG1zXHxtZVx8aHNcfGhlXHxyc1x8cmVcKT1bc2VdXChbLStdXGRcK1wpXD0iCi1zeW4gbWF0Y2ggICB2aW1TeW5QYXRNb2QJY29udGFpbmVkCSJcKGhzXHxtc1x8bWVcfGhzXHxoZVx8cnNcfHJlXCk9W3NlXVwoWy0rXVxkXCtcKVw9LCIgbmV4dGdyb3VwPXZpbVN5blBhdE1vZAotc3luIG1hdGNoICAgdmltU3luUGF0TW9kCWNvbnRhaW5lZAkibGM9XGRcKyIKLXN5biBtYXRjaCAgIHZpbVN5blBhdE1vZAljb250YWluZWQJImxjPVxkXCssIiBuZXh0Z3JvdXA9dmltU3luUGF0TW9kCi1zeW4gcmVnaW9uICB2aW1TeW5QYXRSYW5nZQljb250YWluZWQJc3RhcnQ9IlxbIglza2lwPSJcXFxcXHxcXF0iICAgZW5kPSJdIgotc3luIG1hdGNoICAgdmltU3luTm90UGF0UmFuZ2UJY29udGFpbmVkCSJcXFxcXHxcXFxbIgotc3luIG1hdGNoICAgdmltTXRjaENvbW1lbnQJY29udGFpbmVkCSciW14iXVwrJCcKK3N5biBjbHVzdGVyCXZpbVN5blJlZ1BhdEdyb3VwCWNvbnRhaW5zPXZpbVBhdFNlcCx2aW1Ob3RQYXRTZXAsdmltU3luUGF0UmFuZ2UsdmltU3luTm90UGF0UmFuZ2UsdmltU3Vic3RTdWJzdHIsdmltUGF0UmVnaW9uLHZpbVBhdFNlcEVycix2aW1Ob3RhdGlvbgorc3luIGNsdXN0ZXIJdmltU3luUmVnR3JvdXAJY29udGFpbnM9dmltU3luQ29udGFpbnMsdmltU3luTmV4dGdyb3VwLHZpbVN5blJlZ09wdCx2aW1TeW5SZWcsdmltU3luTXRjaEdycAorc3luIGtleXdvcmQJdmltU3luVHlwZQljb250YWluZWQJcmVnaW9uCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luUmVnaW9uCitzeW4gcmVnaW9uCXZpbVN5blJlZ2lvbgljb250YWluZWQga2VlcGVuZAltYXRjaGdyb3VwPXZpbUdyb3VwTmFtZSBzdGFydD0iXGtcKyIgc2tpcD0iXFxcXFx8XFx8IiBlbmQ9InxcfCQiIGNvbnRhaW5zPUB2aW1TeW5SZWdHcm91cAorc3luIG1hdGNoCXZpbVN5blJlZ09wdAljb250YWluZWQJIlw8XChjb25jZWFsXChlbmRzXClcPVx8dHJhbnNwYXJlbnRcfGNvbnRhaW5lZFx8ZXhjbHVkZW5sXHxza2lwZW1wdHlcfHNraXB3aGl0ZVx8ZGlzcGxheVx8a2VlcGVuZFx8b25lbGluZVx8ZXh0ZW5kXHxza2lwbmxcfGZvbGRcKVw+Igorc3luIG1hdGNoCXZpbVN5blJlZwljb250YWluZWQJIlwoc3RhcnRcfHNraXBcfGVuZFwpPSJoZT1lLTEJbmV4dGdyb3VwPXZpbVN5blJlZ1BhdAorc3luIG1hdGNoCXZpbVN5bk10Y2hHcnAJY29udGFpbmVkCSJtYXRjaGdyb3VwPSIJbmV4dGdyb3VwPXZpbUdyb3VwLHZpbUhMR3JvdXAKK3N5biByZWdpb24JdmltU3luUmVnUGF0CWNvbnRhaW5lZCBleHRlbmQJc3RhcnQ9Ilx6KFstYH4hQCMkJV4mKl89Kzs6JyIsLi8/XVwpIiAgc2tpcD0iXFxcXFx8XFxcejEiICBlbmQ9Ilx6MSIgIGNvbnRhaW5zPUB2aW1TeW5SZWdQYXRHcm91cCBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbVN5blBhdE1vZCx2aW1TeW5SZWcKK3N5biBtYXRjaAl2aW1TeW5QYXRNb2QJY29udGFpbmVkCSJcKGhzXHxtc1x8bWVcfGhzXHxoZVx8cnNcfHJlXCk9W3NlXVwoWy0rXVxkXCtcKVw9Igorc3luIG1hdGNoCXZpbVN5blBhdE1vZAljb250YWluZWQJIlwoaHNcfG1zXHxtZVx8aHNcfGhlXHxyc1x8cmVcKT1bc2VdXChbLStdXGRcK1wpXD0sIiBuZXh0Z3JvdXA9dmltU3luUGF0TW9kCitzeW4gbWF0Y2gJdmltU3luUGF0TW9kCWNvbnRhaW5lZAkibGM9XGRcKyIKK3N5biBtYXRjaAl2aW1TeW5QYXRNb2QJY29udGFpbmVkCSJsYz1cZFwrLCIgbmV4dGdyb3VwPXZpbVN5blBhdE1vZAorc3luIHJlZ2lvbgl2aW1TeW5QYXRSYW5nZQljb250YWluZWQJc3RhcnQ9IlxbIglza2lwPSJcXFxcXHxcXF0iICAgZW5kPSJdIgorc3luIG1hdGNoCXZpbVN5bk5vdFBhdFJhbmdlCWNvbnRhaW5lZAkiXFxcXFx8XFxcWyIKK3N5biBtYXRjaAl2aW1NdGNoQ29tbWVudAljb250YWluZWQJJyJbXiJdXCskJwogCiAiIFN5bnRheDogc3luYyB7e3syCiAiID09PT09PT09PT09PQogc3luIGtleXdvcmQgdmltU3luVHlwZQljb250YWluZWQJc3luYwlza2lwd2hpdGUJbmV4dGdyb3VwPXZpbVN5bmNDLHZpbVN5bmNMaW5lcyx2aW1TeW5jTWF0Y2gsdmltU3luY0Vycm9yLHZpbVN5bmNMaW5lYnJlYWssdmltU3luY0xpbmVjb250LHZpbVN5bmNSZWdpb24KIGlmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKQotIHN5biBtYXRjaCAgIHZpbVN5bmNFcnJvcgljb250YWluZWQJIlxpXCsiCisgc3luIG1hdGNoCXZpbVN5bmNFcnJvcgljb250YWluZWQJIlxpXCsiCiBlbmRpZgotc3luIGtleXdvcmQgdmltU3luY0MJY29udGFpbmVkCWNjb21tZW50CWNsZWFyCWZyb21zdGFydAotc3luIGtleXdvcmQgdmltU3luY01hdGNoCWNvbnRhaW5lZAltYXRjaAlza2lwd2hpdGUJbmV4dGdyb3VwPXZpbVN5bmNHcm91cE5hbWUKLXN5biBrZXl3b3JkIHZpbVN5bmNSZWdpb24JY29udGFpbmVkCXJlZ2lvbglza2lwd2hpdGUJbmV4dGdyb3VwPXZpbVN5blJlZwotc3luIG1hdGNoICAgdmltU3luY0xpbmVicmVhawljb250YWluZWQJIlw8bGluZWJyZWFrcz0iCXNraXB3aGl0ZQluZXh0Z3JvdXA9dmltTnVtYmVyCi1zeW4ga2V5d29yZCB2aW1TeW5jTGluZWNvbnQJY29udGFpbmVkCWxpbmVjb250CXNraXB3aGl0ZQluZXh0Z3JvdXA9dmltU3luUmVnUGF0Ci1zeW4gbWF0Y2ggICB2aW1TeW5jTGluZXMJY29udGFpbmVkCSJcKG1pblx8bWF4XClcPWxpbmVzPSIJbmV4dGdyb3VwPXZpbU51bWJlcgotc3luIG1hdGNoICAgdmltU3luY0dyb3VwTmFtZQljb250YWluZWQJIlxrXCsiCXNraXB3aGl0ZQluZXh0Z3JvdXA9dmltU3luY0tleQotc3luIG1hdGNoICAgdmltU3luY0tleQljb250YWluZWQJIlw8Z3JvdXB0aGVyZVx8Z3JvdXBoZXJlXD4iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luY0dyb3VwCi1zeW4gbWF0Y2ggICB2aW1TeW5jR3JvdXAJY29udGFpbmVkCSJca1wrIglza2lwd2hpdGUJbmV4dGdyb3VwPXZpbVN5blJlZ1BhdCx2aW1TeW5jTm9uZQotc3luIGtleXdvcmQgdmltU3luY05vbmUJY29udGFpbmVkCU5PTkUKK3N5biBrZXl3b3JkCXZpbVN5bmNDCWNvbnRhaW5lZAljY29tbWVudAljbGVhcglmcm9tc3RhcnQKK3N5biBrZXl3b3JkCXZpbVN5bmNNYXRjaAljb250YWluZWQJbWF0Y2gJc2tpcHdoaXRlCW5leHRncm91cD12aW1TeW5jR3JvdXBOYW1lCitzeW4ga2V5d29yZAl2aW1TeW5jUmVnaW9uCWNvbnRhaW5lZAlyZWdpb24Jc2tpcHdoaXRlCW5leHRncm91cD12aW1TeW5SZWcKK3N5biBtYXRjaAl2aW1TeW5jTGluZWJyZWFrCWNvbnRhaW5lZAkiXDxsaW5lYnJlYWtzPSIJc2tpcHdoaXRlCW5leHRncm91cD12aW1OdW1iZXIKK3N5biBrZXl3b3JkCXZpbVN5bmNMaW5lY29udAljb250YWluZWQJbGluZWNvbnQJc2tpcHdoaXRlCW5leHRncm91cD12aW1TeW5SZWdQYXQKK3N5biBtYXRjaAl2aW1TeW5jTGluZXMJY29udGFpbmVkCSJcKG1pblx8bWF4XClcPWxpbmVzPSIJbmV4dGdyb3VwPXZpbU51bWJlcgorc3luIG1hdGNoCXZpbVN5bmNHcm91cE5hbWUJY29udGFpbmVkCSJca1wrIglza2lwd2hpdGUJbmV4dGdyb3VwPXZpbVN5bmNLZXkKK3N5biBtYXRjaAl2aW1TeW5jS2V5CWNvbnRhaW5lZAkiXDxncm91cHRoZXJlXHxncm91cGhlcmVcPiIJc2tpcHdoaXRlIG5leHRncm91cD12aW1TeW5jR3JvdXAKK3N5biBtYXRjaAl2aW1TeW5jR3JvdXAJY29udGFpbmVkCSJca1wrIglza2lwd2hpdGUJbmV4dGdyb3VwPXZpbVN5blJlZ1BhdCx2aW1TeW5jTm9uZQorc3luIGtleXdvcmQJdmltU3luY05vbmUJY29udGFpbmVkCU5PTkUKIAogIiBBZGRpdGlvbmFsIElzQ29tbWFuZCwgaGVyZSBieSByZWFzb25zIG9mIHByZWNlZGVuY2Uge3t7MgogIiA9PT09PT09PT09PT09PT09PT09PQotc3luIG1hdGNoIHZpbUlzQ29tbWFuZAkiPEJhcj5ccypcYVwrIgl0cmFuc3BhcmVudCBjb250YWlucz12aW1Db21tYW5kLHZpbU5vdGF0aW9uCitzeW4gbWF0Y2gJdmltSXNDb21tYW5kCSI8QmFyPlxzKlxhXCsiCXRyYW5zcGFyZW50IGNvbnRhaW5zPXZpbUNvbW1hbmQsdmltTm90YXRpb24KIAogIiBIaWdobGlnaHRpbmcge3t7MgogIiA9PT09PT09PT09PT0KLXN5biBjbHVzdGVyIHZpbUhpZ2hsaWdodENsdXN0ZXIJY29udGFpbnM9dmltSGlMaW5rLHZpbUhpQ2xlYXIsdmltSGlLZXlMaXN0LHZpbUNvbW1lbnQKLXN5biBtYXRjaCAgIHZpbUhpZ2hsaWdodAkiXDxoaVwlW2dobGlnaHRdXD4iIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltSGlCYW5nLEB2aW1IaWdobGlnaHRDbHVzdGVyCi1zeW4gbWF0Y2ggICB2aW1IaUJhbmcJY29udGFpbmVkCSIhIgkgIHNraXB3aGl0ZSBuZXh0Z3JvdXA9QHZpbUhpZ2hsaWdodENsdXN0ZXIKLQotc3luIG1hdGNoICAgdmltSGlHcm91cAljb250YWluZWQJIlxpXCsiCitzeW4gY2x1c3Rlcgl2aW1IaWdobGlnaHRDbHVzdGVyCQljb250YWlucz12aW1IaUxpbmssdmltSGlDbGVhcix2aW1IaUtleUxpc3QsdmltQ29tbWVudAorc3luIG1hdGNoCXZpbUhpZ2hsaWdodAkiXDxoaVwlW2dobGlnaHRdXD4iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltSGlCYW5nLEB2aW1IaWdobGlnaHRDbHVzdGVyCitzeW4gbWF0Y2gJdmltSGlCYW5nCWNvbnRhaW5lZAkiISIJc2tpcHdoaXRlIG5leHRncm91cD1AdmltSGlnaGxpZ2h0Q2x1c3RlcgorICAgICAgIAkKK3N5biBtYXRjaAl2aW1IaUdyb3VwCWNvbnRhaW5lZAkiXGlcKyIKIHN5biBjYXNlIGlnbm9yZQotc3luIGtleXdvcmQgdmltSGlBdHRyaWIJY29udGFpbmVkCW5vbmUgYm9sZCBpbnZlcnNlIGl0YWxpYyByZXZlcnNlIHN0YW5kb3V0IHVuZGVybGluZSB1bmRlcmN1cmwKLXN5biBrZXl3b3JkIHZpbUZnQmdBdHRyaWIJY29udGFpbmVkCW5vbmUgYmcgYmFja2dyb3VuZCBmZyBmb3JlZ3JvdW5kCitzeW4ga2V5d29yZAl2aW1IaUF0dHJpYgljb250YWluZWQJbm9uZSBib2xkIGludmVyc2UgaXRhbGljIHJldmVyc2Ugc3RhbmRvdXQgdW5kZXJsaW5lIHVuZGVyY3VybAorc3luIGtleXdvcmQJdmltRmdCZ0F0dHJpYgljb250YWluZWQJbm9uZSBiZyBiYWNrZ3JvdW5kIGZnIGZvcmVncm91bmQKIHN5biBjYXNlIG1hdGNoCi1zeW4gbWF0Y2ggICB2aW1IaUF0dHJpYkxpc3QJY29udGFpbmVkCSJcaVwrIgljb250YWlucz12aW1IaUF0dHJpYgotc3luIG1hdGNoICAgdmltSGlBdHRyaWJMaXN0CWNvbnRhaW5lZAkiXGlcKywiaGU9ZS0xCWNvbnRhaW5zPXZpbUhpQXR0cmliIG5leHRncm91cD12aW1IaUF0dHJpYkxpc3QKK3N5biBtYXRjaAl2aW1IaUF0dHJpYkxpc3QJY29udGFpbmVkCSJcaVwrIgljb250YWlucz12aW1IaUF0dHJpYgorc3luIG1hdGNoCXZpbUhpQXR0cmliTGlzdAljb250YWluZWQJIlxpXCssImhlPWUtMQljb250YWlucz12aW1IaUF0dHJpYiBuZXh0Z3JvdXA9dmltSGlBdHRyaWJMaXN0CiBzeW4gY2FzZSBpZ25vcmUKLXN5biBrZXl3b3JkIHZpbUhpQ3Rlcm1Db2xvcgljb250YWluZWQJYmxhY2sgYmx1ZSBicm93biBjeWFuIGRhcmtCbHVlIGRhcmtjeWFuIGRhcmtncmF5IGRhcmtncmVlbiBkYXJrZ3JleSBkYXJrbWFnZW50YSBkYXJrcmVkIGRhcmt5ZWxsb3cgZ3JheSBncmVlbiBncmV5IGxpZ2h0Ymx1ZSBsaWdodGN5YW4gbGlnaHRncmF5IGxpZ2h0Z3JlZW4gbGlnaHRncmV5IGxpZ2h0bWFnZW50YSBsaWdodHJlZCBtYWdlbnRhIHJlZCB3aGl0ZSB5ZWxsb3cKK3N5biBrZXl3b3JkCXZpbUhpQ3Rlcm1Db2xvcgljb250YWluZWQJYmxhY2sgYmx1ZSBicm93biBjeWFuIGRhcmtCbHVlIGRhcmtjeWFuIGRhcmtncmF5IGRhcmtncmVlbiBkYXJrZ3JleSBkYXJrbWFnZW50YSBkYXJrcmVkIGRhcmt5ZWxsb3cgZ3JheSBncmVlbiBncmV5IGxpZ2h0Ymx1ZSBsaWdodGN5YW4gbGlnaHRncmF5IGxpZ2h0Z3JlZW4gbGlnaHRncmV5IGxpZ2h0bWFnZW50YSBsaWdodHJlZCBtYWdlbnRhIHJlZCB3aGl0ZSB5ZWxsb3cKIAogc3luIGNhc2UgbWF0Y2gKLXN5biBtYXRjaCAgIHZpbUhpRm9udG5hbWUJY29udGFpbmVkCSJbYS16QS1aXC0qXVwrIgotc3luIG1hdGNoICAgdmltSGlHdWlGb250bmFtZQljb250YWluZWQJIidbYS16QS1aXC0qIF1cKyciCi1zeW4gbWF0Y2ggICB2aW1IaUd1aVJnYgljb250YWluZWQJIiNceFx7Nn0iCitzeW4gbWF0Y2gJdmltSGlGb250bmFtZQljb250YWluZWQJIlthLXpBLVpcLSpdXCsiCitzeW4gbWF0Y2gJdmltSGlHdWlGb250bmFtZQljb250YWluZWQJIidbYS16QS1aXC0qIF1cKyciCitzeW4gbWF0Y2gJdmltSGlHdWlSZ2IJY29udGFpbmVkCSIjXHhcezZ9IgogaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCi0gc3luIG1hdGNoICAgdmltSGlDdGVybUVycm9yCWNvbnRhaW5lZAkiW14wLTldXGkqIgorIHN5biBtYXRjaAl2aW1IaUN0ZXJtRXJyb3IJY29udGFpbmVkCSJbXjAtOV1caSoiCiBlbmRpZgogCiAiIEhpZ2hsaWdodGluZzogaGkgZ3JvdXAga2V5PWFyZyAuLi4ge3t7Mgotc3luIGNsdXN0ZXIgdmltSGlDbHVzdGVyIGNvbnRhaW5zPXZpbUhpR3JvdXAsdmltSGlUZXJtLHZpbUhpQ1Rlcm0sdmltSGlTdGFydFN0b3AsdmltSGlDdGVybUZnQmcsdmltSGlHdWksdmltSGlHdWlGb250LHZpbUhpR3VpRmdCZyx2aW1IaUtleUVycm9yLHZpbU5vdGF0aW9uCi1zeW4gcmVnaW9uIHZpbUhpS2V5TGlzdAljb250YWluZWQgb25lbGluZSBzdGFydD0iXGlcKyIgc2tpcD0iXFxcXFx8XFx8IiBlbmQ9IiRcfHwiCWNvbnRhaW5zPUB2aW1IaUNsdXN0ZXIKK3N5biBjbHVzdGVyCXZpbUhpQ2x1c3RlciBjb250YWlucz12aW1Hcm91cCx2aW1IaUdyb3VwLHZpbUhpVGVybSx2aW1IaUNUZXJtLHZpbUhpU3RhcnRTdG9wLHZpbUhpQ3Rlcm1GZ0JnLHZpbUhpR3VpLHZpbUhpR3VpRm9udCx2aW1IaUd1aUZnQmcsdmltSGlLZXlFcnJvcix2aW1Ob3RhdGlvbgorc3luIHJlZ2lvbgl2aW1IaUtleUxpc3QJY29udGFpbmVkIG9uZWxpbmUgc3RhcnQ9IlxpXCsiIHNraXA9IlxcXFxcfFxcfCIgZW5kPSIkXHx8Igljb250YWlucz1AdmltSGlDbHVzdGVyCiBpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKLSBzeW4gbWF0Y2ggIHZpbUhpS2V5RXJyb3IJY29udGFpbmVkCSJcaVwrPSJoZT1lLTEKKyBzeW4gbWF0Y2gJdmltSGlLZXlFcnJvcgljb250YWluZWQJIlxpXCs9ImhlPWUtMQogZW5kaWYKLXN5biBtYXRjaCAgdmltSGlUZXJtCWNvbnRhaW5lZAkiXGN0ZXJtPSJoZT1lLTEJCW5leHRncm91cD12aW1IaUF0dHJpYkxpc3QKLXN5biBtYXRjaCAgdmltSGlTdGFydFN0b3AJY29udGFpbmVkCSJcY1woc3RhcnRcfHN0b3BcKT0iaGU9ZS0xCW5leHRncm91cD12aW1IaVRlcm1jYXAsdmltT3B0aW9uCi1zeW4gbWF0Y2ggIHZpbUhpQ1Rlcm0JY29udGFpbmVkCSJcY2N0ZXJtPSJoZT1lLTEJCW5leHRncm91cD12aW1IaUF0dHJpYkxpc3QKLXN5biBtYXRjaCAgdmltSGlDdGVybUZnQmcJY29udGFpbmVkCSJcY2N0ZXJtW2ZiXWc9ImhlPWUtMQluZXh0Z3JvdXA9dmltTnVtYmVyLHZpbUhpQ3Rlcm1Db2xvcix2aW1GZ0JnQXR0cmliLHZpbUhpQ3Rlcm1FcnJvcgotc3luIG1hdGNoICB2aW1IaUd1aQljb250YWluZWQJIlxjZ3VpPSJoZT1lLTEJCW5leHRncm91cD12aW1IaUF0dHJpYkxpc3QKLXN5biBtYXRjaCAgdmltSGlHdWlGb250CWNvbnRhaW5lZAkiXGNmb250PSJoZT1lLTEJCW5leHRncm91cD12aW1IaUZvbnRuYW1lCi1zeW4gbWF0Y2ggIHZpbUhpR3VpRmdCZwljb250YWluZWQJIlxjZ3VpXCUoW2ZiXWdcfHNwXCk9ImhlPWUtMQluZXh0Z3JvdXA9dmltSGlHcm91cCx2aW1IaUd1aUZvbnRuYW1lLHZpbUhpR3VpUmdiLHZpbUZnQmdBdHRyaWIKLXN5biBtYXRjaCAgdmltSGlUZXJtY2FwCWNvbnRhaW5lZAkiXFNcKyIJCWNvbnRhaW5zPXZpbU5vdGF0aW9uCitzeW4gbWF0Y2gJdmltSGlUZXJtCWNvbnRhaW5lZAkiXGN0ZXJtPSJoZT1lLTEJCW5leHRncm91cD12aW1IaUF0dHJpYkxpc3QKK3N5biBtYXRjaAl2aW1IaVN0YXJ0U3RvcAljb250YWluZWQJIlxjXChzdGFydFx8c3RvcFwpPSJoZT1lLTEJbmV4dGdyb3VwPXZpbUhpVGVybWNhcCx2aW1PcHRpb24KK3N5biBtYXRjaAl2aW1IaUNUZXJtCWNvbnRhaW5lZAkiXGNjdGVybT0iaGU9ZS0xCQluZXh0Z3JvdXA9dmltSGlBdHRyaWJMaXN0CitzeW4gbWF0Y2gJdmltSGlDdGVybUZnQmcJY29udGFpbmVkCSJcY2N0ZXJtW2ZiXWc9ImhlPWUtMQluZXh0Z3JvdXA9dmltTnVtYmVyLHZpbUhpQ3Rlcm1Db2xvcix2aW1GZ0JnQXR0cmliLHZpbUhpQ3Rlcm1FcnJvcgorc3luIG1hdGNoCXZpbUhpR3VpCWNvbnRhaW5lZAkiXGNndWk9ImhlPWUtMQkJbmV4dGdyb3VwPXZpbUhpQXR0cmliTGlzdAorc3luIG1hdGNoCXZpbUhpR3VpRm9udAljb250YWluZWQJIlxjZm9udD0iaGU9ZS0xCQluZXh0Z3JvdXA9dmltSGlGb250bmFtZQorc3luIG1hdGNoCXZpbUhpR3VpRmdCZwljb250YWluZWQJIlxjZ3VpXCUoW2ZiXWdcfHNwXCk9ImhlPWUtMQluZXh0Z3JvdXA9dmltSGlHcm91cCx2aW1IaUd1aUZvbnRuYW1lLHZpbUhpR3VpUmdiLHZpbUZnQmdBdHRyaWIKK3N5biBtYXRjaAl2aW1IaVRlcm1jYXAJY29udGFpbmVkCSJcU1wrIgkJY29udGFpbnM9dmltTm90YXRpb24KIAogIiBIaWdobGlnaHQ6IGNsZWFyIHt7ezIKLXN5biBrZXl3b3JkIHZpbUhpQ2xlYXIJY29udGFpbmVkCWNsZWFyCW5leHRncm91cD12aW1IaUdyb3VwCitzeW4ga2V5d29yZAl2aW1IaUNsZWFyCWNvbnRhaW5lZAljbGVhcgluZXh0Z3JvdXA9dmltSGlHcm91cAogCiAiIEhpZ2hsaWdodDogbGluayB7e3syCi1zeW4gcmVnaW9uIHZpbUhpTGluawljb250YWluZWQgb25lbGluZSBtYXRjaGdyb3VwPXZpbUNvbW1hbmQgc3RhcnQ9Ilw8XChkZWZcc1wrXClcPWxpbmtcPlx8XDxkZWZcPiIgZW5kPSIkIgljb250YWlucz12aW1IaUdyb3VwLHZpbUdyb3VwLHZpbUhMR3JvdXAsdmltTm90YXRpb24KK3N5biByZWdpb24JdmltSGlMaW5rCWNvbnRhaW5lZCBvbmVsaW5lIG1hdGNoZ3JvdXA9dmltQ29tbWFuZCBzdGFydD0iXDxcKGRlZlxzXCtcKVw9bGlua1w+XHxcPGRlZlw+IiBlbmQ9IiQiCWNvbnRhaW5zPXZpbUhpR3JvdXAsdmltR3JvdXAsdmltSExHcm91cCx2aW1Ob3RhdGlvbgogCiAiIENvbnRyb2wgQ2hhcmFjdGVycyB7e3syCiAiID09PT09PT09PT09PT09PT09PQotc3luIG1hdGNoIHZpbUN0cmxDaGFyCSJbAS0ICw8tH10iCitzeW4gbWF0Y2gJdmltQ3RybENoYXIJIlsBLQgLDy0fXSIKIAogIiBCZWdpbm5lcnMgLSBQYXR0ZXJucyB0aGF0IGludm9sdmUgXiB7e3syCiAiID09PT09PT09PQotc3luIG1hdGNoICB2aW1MaW5lQ29tbWVudAkrXlsgXHQ6XSoiLiokKwljb250YWlucz1AdmltQ29tbWVudEdyb3VwLHZpbUNvbW1lbnRTdHJpbmcsdmltQ29tbWVudFRpdGxlCi1zeW4gbWF0Y2ggIHZpbUNvbW1lbnRUaXRsZQknIlxzKlwlKFtzU106XHxcaFx3KiNcKVw9XHVcdypcKFxzXCtcdVx3KlwpKjonaHM9cysxCWNvbnRhaW5lZCBjb250YWlucz12aW1Db21tZW50VGl0bGVMZWFkZXIsdmltVG9kbyxAdmltQ29tbWVudEdyb3VwCi1zeW4gbWF0Y2ggIHZpbUNvbnRpbnVlCSJeXHMqXFwiCi1zeW4gcmVnaW9uIHZpbVN0cmluZwlzdGFydD0iXlxzKlxcXHooWyciXVwpIiBza2lwPSdcXFxcXHxcXFx6MScgZW5kPSJcejEiIG9uZWxpbmUga2VlcGVuZCBjb250YWlucz1AdmltU3RyaW5nR3JvdXAsdmltQ29udGludWUKLXN5biBtYXRjaCAgdmltQ29tbWVudFRpdGxlTGVhZGVyCSciXHNcKydtcz1zKzEJY29udGFpbmVkCitzeW4gbWF0Y2gJdmltTGluZUNvbW1lbnQJK15bIFx0Ol0qIi4qJCsJY29udGFpbnM9QHZpbUNvbW1lbnRHcm91cCx2aW1Db21tZW50U3RyaW5nLHZpbUNvbW1lbnRUaXRsZQorc3luIG1hdGNoCXZpbUNvbW1lbnRUaXRsZQknIlxzKlwlKFtzU106XHxcaFx3KiNcKVw9XHVcdypcKFxzXCtcdVx3KlwpKjonaHM9cysxCWNvbnRhaW5lZCBjb250YWlucz12aW1Db21tZW50VGl0bGVMZWFkZXIsdmltVG9kbyxAdmltQ29tbWVudEdyb3VwCitzeW4gbWF0Y2gJdmltQ29udGludWUJIl5ccypcXCIKK3N5biByZWdpb24JdmltU3RyaW5nCXN0YXJ0PSJeXHMqXFxceihbJyJdXCkiIHNraXA9J1xcXFxcfFxcXHoxJyBlbmQ9Ilx6MSIgb25lbGluZSBrZWVwZW5kIGNvbnRhaW5zPUB2aW1TdHJpbmdHcm91cCx2aW1Db250aW51ZQorc3luIG1hdGNoCXZpbUNvbW1lbnRUaXRsZUxlYWRlcgknIlxzXCsnbXM9cysxCWNvbnRhaW5lZAogCiAiIFNlYXJjaGVzIEFuZCBHbG9iYWxzOiB7e3syCiAiID09PT09PT09PT09PT09PT09PT09Ci1zeW4gbWF0Y2ggdmltU2VhcmNoCSdeXHMqWy8/XS4qJwkJY29udGFpbnM9dmltU2VhcmNoRGVsaW0KLXN5biBtYXRjaCB2aW1TZWFyY2hEZWxpbQknXlxzKlx6c1svP11cfFsvP10kJwljb250YWluZWQKLXN5biByZWdpb24gdmltR2xvYmFsCW1hdGNoZ3JvdXA9U3RhdGVtZW50IHN0YXJ0PSdcPGdcJVtsb2JhbF0hXD0vJyBza2lwPSdcXC4nIGVuZD0nLycKLXN5biByZWdpb24gdmltR2xvYmFsCW1hdGNoZ3JvdXA9U3RhdGVtZW50IHN0YXJ0PSdcPHZcJVtnbG9iYWxdIVw9Lycgc2tpcD0nXFwuJyBlbmQ9Jy8nCitzeW4gbWF0Y2gJdmltU2VhcmNoCSdeXHMqWy8/XS4qJwkJY29udGFpbnM9dmltU2VhcmNoRGVsaW0KK3N5biBtYXRjaAl2aW1TZWFyY2hEZWxpbQknXlxzKlx6c1svP11cfFsvP10kJwljb250YWluZWQKK3N5biByZWdpb24JdmltR2xvYmFsCW1hdGNoZ3JvdXA9U3RhdGVtZW50IHN0YXJ0PSdcPGdcJVtsb2JhbF0hXD0vJyBza2lwPSdcXC4nIGVuZD0nLycKK3N5biByZWdpb24JdmltR2xvYmFsCW1hdGNoZ3JvdXA9U3RhdGVtZW50IHN0YXJ0PSdcPHZcJVtnbG9iYWxdIVw9Lycgc2tpcD0nXFwuJyBlbmQ9Jy8nCiAKICIgU2NyaXB0cyAgOiBwZXJsLHJ1YnkgOiBCZW5vaXQgQ2VycmluYSB7e3syCiAiID09PT09PT0gICAgcHl0aG9uLHRjbDogSm9oYW5uZXMgWmVsbG5lcgpAQCAtNTQxLDk0ICs1NDMsMTI3IEBACiBlbmRpZgogCiAiIFstLSBwZXJsIC0tXSB7e3szCi1pZiAoZzp2aW1zeW5fZW1iZWQgPX4gJ3AnICYmIGhhcygicGVybCIpKSAmJiBmaWxlcmVhZGFibGUoZXhwYW5kKCI8c2ZpbGU+OnA6aCIpLiIvcGVybC52aW0iKQorbGV0IHM6cGVybHBhdGg9IGV4cGFuZCgiPHNmaWxlPjpwOmgiKS4iL3BlcmwudmltIgoraWYgIWZpbGVyZWFkYWJsZShzOnBlcmxwYXRoKQorIGxldCBzOnBlcmxwYXRoPSBnbG9icGF0aCgmcnRwLCJzeW50YXgvcGVybC52aW0iKQorZW5kaWYKK2lmIChnOnZpbXN5bl9lbWJlZCA9fiAncCcgJiYgaGFzKCJwZXJsIikpICYmIGZpbGVyZWFkYWJsZShzOnBlcmxwYXRoKQogIHVubGV0ISBiOmN1cnJlbnRfc3ludGF4Ci0gc3luIGluY2x1ZGUgQHZpbVBlcmxTY3JpcHQgPHNmaWxlPjpwOmgvcGVybC52aW0KKyBleGUgInN5biBpbmNsdWRlIEB2aW1QZXJsU2NyaXB0ICIuczpwZXJscGF0aAogIGlmIGV4aXN0cygiZzp2aW1zeW5fZm9sZGluZyIpICYmIGc6dmltc3luX2ZvbGRpbmcgPX4gJ3AnCi0gIHN5biByZWdpb24gdmltUGVybFJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3BlXCVbcmxdXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbVBlcmxTY3JpcHQKLSAgc3luIHJlZ2lvbiB2aW1QZXJsUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcGVcJVtybF1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltUGVybFNjcmlwdAorICBzeW4gcmVnaW9uIHZpbVBlcmxSZWdpb24gZm9sZCBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCWNvbnRhaW5zPUB2aW1QZXJsU2NyaXB0CisgIHN5biByZWdpb24gdmltUGVybFJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3BlXCVbcmxdXHMqPDxccyokKyBlbmQ9K1wuJCsJY29udGFpbnM9QHZpbVBlcmxTY3JpcHQKICBlbHNlCi0gIHN5biByZWdpb24gdmltUGVybFJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUB2aW1QZXJsU2NyaXB0Ci0gIHN5biByZWdpb24gdmltUGVybFJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqJCsgZW5kPStcLiQrIGNvbnRhaW5zPUB2aW1QZXJsU2NyaXB0CisgIHN5biByZWdpb24gdmltUGVybFJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCWNvbnRhaW5zPUB2aW1QZXJsU2NyaXB0CisgIHN5biByZWdpb24gdmltUGVybFJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqJCsgZW5kPStcLiQrCQljb250YWlucz1AdmltUGVybFNjcmlwdAogIGVuZGlmCisgc3luIGNsdXN0ZXIgdmltRnVuY0JvZHlMaXN0CWFkZD12aW1QZXJsUmVnaW9uCiBlbHNlCiAgc3luIHJlZ2lvbiB2aW1FbWJlZEVycm9yIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCiAgc3luIHJlZ2lvbiB2aW1FbWJlZEVycm9yIHN0YXJ0PStwZVwlW3JsXVxzKjw8XHMqJCsgZW5kPStcLiQrCiBlbmRpZgordW5sZXQgczpwZXJscGF0aAogCiAiIFstLSBydWJ5IC0tXSB7e3szCi1pZiAoZzp2aW1zeW5fZW1iZWQgPX4gJ3InICYmIGhhcygicnVieSIpKSAmJiBmaWxlcmVhZGFibGUoZXhwYW5kKCI8c2ZpbGU+OnA6aCIpLiIvcnVieS52aW0iKQorbGV0IHM6cnVieXBhdGg9IGV4cGFuZCgiPHNmaWxlPjpwOmgiKS4iL3J1YnkudmltIgoraWYgIWZpbGVyZWFkYWJsZShzOnJ1YnlwYXRoKQorIGxldCBzOnJ1YnlwYXRoPSBnbG9icGF0aCgmcnRwLCJzeW50YXgvcnVieS52aW0iKQorZW5kaWYKK2lmIChnOnZpbXN5bl9lbWJlZCA9fiAncicgJiYgaGFzKCJydWJ5IikpICYmIGZpbGVyZWFkYWJsZShzOnJ1YnlwYXRoKQogIHVubGV0ISBiOmN1cnJlbnRfc3ludGF4Ci0gc3luIGluY2x1ZGUgQHZpbVJ1YnlTY3JpcHQgPHNmaWxlPjpwOmgvcnVieS52aW0KKyBleGUgInN5biBpbmNsdWRlIEB2aW1SdWJ5U2NyaXB0ICIuczpydWJ5cGF0aAogIGlmIGV4aXN0cygiZzp2aW1zeW5fZm9sZGluZyIpICYmIGc6dmltc3luX2ZvbGRpbmcgPX4gJ3InCi0gIHN5biByZWdpb24gdmltUnVieVJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3J1Ylt5XVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUB2aW1SdWJ5U2NyaXB0CisgIHN5biByZWdpb24gdmltUnVieVJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3J1Ylt5XVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCWNvbnRhaW5zPUB2aW1SdWJ5U2NyaXB0CiAgZWxzZQotICBzeW4gcmVnaW9uIHZpbVJ1YnlSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcnViW3ldXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbVJ1YnlTY3JpcHQKKyAgc3luIHJlZ2lvbiB2aW1SdWJ5UmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3J1Ylt5XVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCWNvbnRhaW5zPUB2aW1SdWJ5U2NyaXB0CiAgZW5kaWYKLSBzeW4gcmVnaW9uIHZpbVJ1YnlSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcnViW3ldXHMqPDxccyokKyBlbmQ9K1wuJCsgY29udGFpbnM9QHZpbVJ1YnlTY3JpcHQKKyBzeW4gcmVnaW9uIHZpbVJ1YnlSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcnViW3ldXHMqPDxccyokKyBlbmQ9K1wuJCsJCWNvbnRhaW5zPUB2aW1SdWJ5U2NyaXB0Cisgc3luIGNsdXN0ZXIgdmltRnVuY0JvZHlMaXN0CWFkZD12aW1SdWJ5UmVnaW9uCiBlbHNlCiAgc3luIHJlZ2lvbiB2aW1FbWJlZEVycm9yIHN0YXJ0PStydWJbeV1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwogIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rcnViW3ldXHMqPDxccyokKyBlbmQ9K1wuJCsKIGVuZGlmCit1bmxldCBzOnJ1YnlwYXRoCiAKICIgWy0tIHB5dGhvbiAtLV0ge3t7MwotaWYgKGc6dmltc3luX2VtYmVkID1+ICdQJyAmJiBoYXMoInB5dGhvbiIpKSAmJiBmaWxlcmVhZGFibGUoZXhwYW5kKCI8c2ZpbGU+OnA6aCIpLiIvcHl0aG9uLnZpbSIpCitsZXQgczpweXRob25wYXRoPSBleHBhbmQoIjxzZmlsZT46cDpoIikuIi9weXRob24udmltIgoraWYgIWZpbGVyZWFkYWJsZShzOnB5dGhvbnBhdGgpCisgbGV0IHM6cHl0aG9ucGF0aD0gZ2xvYnBhdGgoJnJ0cCwic3ludGF4L3B5dGhvbi52aW0iKQorZW5kaWYKK2lmIChnOnZpbXN5bl9lbWJlZCA9fiAnUCcgJiYgaGFzKCJweXRob24iKSkgJiYgZmlsZXJlYWRhYmxlKHM6cHl0aG9ucGF0aCkKICB1bmxldCEgYjpjdXJyZW50X3N5bnRheAotIHN5biBpbmNsdWRlIEB2aW1QeXRob25TY3JpcHQgPHNmaWxlPjpwOmgvcHl0aG9uLnZpbQorIGV4ZSAic3luIGluY2x1ZGUgQHZpbVB5dGhvblNjcmlwdCAiLnM6cHl0aG9ucGF0aAogIGlmIGV4aXN0cygiZzp2aW1zeW5fZm9sZGluZyIpICYmIGc6dmltc3luX2ZvbGRpbmcgPX4gJ1AnCi0gIHN5biByZWdpb24gdmltUHl0aG9uUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcHlcJVt0aG9uXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUB2aW1QeXRob25TY3JpcHQKLSAgc3luIHJlZ2lvbiB2aW1QeXRob25SZWdpb24gZm9sZCBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStweVwlW3Rob25dXHMqPDxccyokKyBlbmQ9K1wuJCsgY29udGFpbnM9QHZpbVB5dGhvblNjcmlwdAorICBzeW4gcmVnaW9uIHZpbVB5dGhvblJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3B5XCVbdGhvbl1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwljb250YWlucz1AdmltUHl0aG9uU2NyaXB0CisgIHN5biByZWdpb24gdmltUHl0aG9uUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcHlcJVt0aG9uXVxzKjw8XHMqJCsgZW5kPStcLiQrCWNvbnRhaW5zPUB2aW1QeXRob25TY3JpcHQKICBlbHNlCi0gIHN5biByZWdpb24gdmltUHl0aG9uUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3B5XCVbdGhvbl1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKyBjb250YWlucz1AdmltUHl0aG9uU2NyaXB0Ci0gIHN5biByZWdpb24gdmltUHl0aG9uUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3B5XCVbdGhvbl1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltUHl0aG9uU2NyaXB0CisgIHN5biByZWdpb24gdmltUHl0aG9uUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3B5XCVbdGhvbl1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwljb250YWlucz1AdmltUHl0aG9uU2NyaXB0CisgIHN5biByZWdpb24gdmltUHl0aG9uUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3B5XCVbdGhvbl1ccyo8PFxzKiQrIGVuZD0rXC4kKwljb250YWlucz1AdmltUHl0aG9uU2NyaXB0CiAgZW5kaWYKKyBzeW4gY2x1c3RlciB2aW1GdW5jQm9keUxpc3QJYWRkPXZpbVB5dGhvblJlZ2lvbgogZWxzZQogIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rcHlcJVt0aG9uXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCiAgc3luIHJlZ2lvbiB2aW1FbWJlZEVycm9yIHN0YXJ0PStweVwlW3Rob25dXHMqPDxccyokKyBlbmQ9K1wuJCsKIGVuZGlmCit1bmxldCBzOnB5dGhvbnBhdGgKIAogIiBbLS0gdGNsIC0tXSB7e3szCiBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKICAiIGFwcGFyZW50bHkgaGFzKCJ0Y2wiKSBoYXMgYmVlbiBoYW5naW5nIHZpbSBvbiBzb21lIHdpbmRvd3Mgc3lzdGVtcyB3aXRoIGN5Z3dpbgotIGxldCB0cnl0Y2w9ICgmc2hlbGwgIX4gJ1w8XCUoYmFzaFw+XHw0W25OXVt0VF1cfFw8enNoXClcPlwlKFwuZXhlXClcPSQnKQorIGxldCBzOnRyeXRjbD0gKCZzaGVsbCAhfiAnXDxcJShiYXNoXD5cfDRbbk5dW3RUXVx8XDx6c2hcKVw+XCUoXC5leGVcKVw9JCcpCiBlbHNlCi0gbGV0IHRyeXRjbD0gMQorIGxldCBzOnRyeXRjbD0gMQogZW5kaWYKLWlmIHRyeXRjbAotIGlmIChnOnZpbXN5bl9lbWJlZCA9fiAndCcgJiYgaGFzKCJ0Y2wiKSkgJiYgZmlsZXJlYWRhYmxlKGV4cGFuZCgiPHNmaWxlPjpwOmgiKS4iL3RjbC52aW0iKQotICB1bmxldCEgYjpjdXJyZW50X3N5bnRheAotICBzeW4gaW5jbHVkZSBAdmltVGNsU2NyaXB0IDxzZmlsZT46cDpoL3RjbC52aW0KLSAgaWYgZXhpc3RzKCJnOnZpbXN5bl9mb2xkaW5nIikgJiYgZzp2aW1zeW5fZm9sZGluZyA9fiAndCcKLSAgIHN5biByZWdpb24gdmltVGNsUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rdGNbbF1cPVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUB2aW1UY2xTY3JpcHQKLSAgIHN5biByZWdpb24gdmltVGNsUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rdGNbbF1cPVxzKjw8XHMqJCsgZW5kPStcLiQrIGNvbnRhaW5zPUB2aW1UY2xTY3JpcHQKLSAgZWxzZQotICAgc3luIHJlZ2lvbiB2aW1UY2xSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rdGNbbF1cPVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUB2aW1UY2xTY3JpcHQKLSAgIHN5biByZWdpb24gdmltVGNsUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltVGNsU2NyaXB0Ci0gIGVuZGlmCitpZiBzOnRyeXRjbAorIGxldCBzOnRjbHBhdGg9IGV4cGFuZCgiPHNmaWxlPjpwOmgiKS4iL3RjbC52aW0iCisgaWYgIWZpbGVyZWFkYWJsZShzOnRjbHBhdGgpCisgIGxldCBzOnRjbHBhdGg9IGdsb2JwYXRoKCZydHAsInN5bnRheC90Y2wudmltIikKICBlbmRpZgorIGlmIChnOnZpbXN5bl9lbWJlZCA9fiAndCcgJiYgaGFzKCJ0Y2wiKSkgJiYgZmlsZXJlYWRhYmxlKHM6dGNscGF0aCkKKyAgdW5sZXQhIGI6Y3VycmVudF9zeW50YXgKKyAgZXhlICJzeW4gaW5jbHVkZSBAdmltVGNsU2NyaXB0ICIuczp0Y2xwYXRoCisgIGlmIGV4aXN0cygiZzp2aW1zeW5fZm9sZGluZyIpICYmIGc6dmltc3luX2ZvbGRpbmcgPX4gJ3QnCisgICBzeW4gcmVnaW9uIHZpbVRjbFJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwljb250YWlucz1AdmltVGNsU2NyaXB0CisgICBzeW4gcmVnaW9uIHZpbVRjbFJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKiQrIGVuZD0rXC4kKwljb250YWlucz1AdmltVGNsU2NyaXB0CisgIGVsc2UKKyAgIHN5biByZWdpb24gdmltVGNsUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwljb250YWlucz1AdmltVGNsU2NyaXB0CisgICBzeW4gcmVnaW9uIHZpbVRjbFJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PSt0Y1tsXVw9XHMqPDxccyokKyBlbmQ9K1wuJCsJCWNvbnRhaW5zPUB2aW1UY2xTY3JpcHQKKyAgZW5kaWYKKyAgc3luIGNsdXN0ZXIgdmltRnVuY0JvZHlMaXN0CWFkZD12aW1UY2xTY3JpcHQKKyBlbHNlCisgIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rdGNbbF1cPVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCisgIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rdGNbbF1cPVxzKjw8XHMqJCsgZW5kPStcLiQrCisgZW5kaWYKKyB1bmxldCBzOnRjbHBhdGgKIGVsc2UKICBzeW4gcmVnaW9uIHZpbUVtYmVkRXJyb3Igc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwogIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rdGNbbF1cPVxzKjw8XHMqJCsgZW5kPStcLiQrCiBlbmRpZgotdW5sZXQgdHJ5dGNsCit1bmxldCBzOnRyeXRjbAogCiAiIFstLSBtenNjaGVtZSAtLV0ge3t7MwotaWYgKGc6dmltc3luX2VtYmVkID1+ICdtJyAmJiBoYXMoIm16c2NoZW1lIikpICYmIGZpbGVyZWFkYWJsZShleHBhbmQoIjxzZmlsZT46cDpoIikuIi9zY2hlbWUudmltIikKK2xldCBzOm16c2NoZW1lcGF0aD0gZXhwYW5kKCI8c2ZpbGU+OnA6aCIpLiIvc2NoZW1lLnZpbSIKK2lmICFmaWxlcmVhZGFibGUoczptenNjaGVtZXBhdGgpCisgbGV0IHM6bXpzY2hlbWVwYXRoPSBnbG9icGF0aCgmcnRwLCJzeW50YXgvc2NoZW1lLnZpbSIpCitlbmRpZgoraWYgKGc6dmltc3luX2VtYmVkID1+ICdtJyAmJiBoYXMoIm16c2NoZW1lIikpICYmIGZpbGVyZWFkYWJsZShzOm16c2NoZW1lcGF0aCkKICB1bmxldCEgYjpjdXJyZW50X3N5bnRheAogIGxldCBpc2tLZWVwPSAmaXNrCi0gc3luIGluY2x1ZGUgQHZpbU16U2NoZW1lU2NyaXB0IDxzZmlsZT46cDpoL3NjaGVtZS52aW0KKyBleGUgInN5biBpbmNsdWRlIEB2aW1NelNjaGVtZVNjcmlwdCAiLnM6bXpzY2hlbWVwYXRoCiAgbGV0ICZpc2s9IGlza0tlZXAKICBpZiBleGlzdHMoImc6dmltc3luX2ZvbGRpbmciKSAmJiBnOnZpbXN5bl9mb2xkaW5nID1+ICdtJwotICBzeW4gcmVnaW9uIHZpbU16U2NoZW1lUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbU16U2NoZW1lU2NyaXB0Ci0gIHN5biByZWdpb24gdmltTXpTY2hlbWVSZWdpb24gZm9sZCBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PSttelwlW3NjaGVtZV1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltTXpTY2hlbWVTY3JpcHQKKyAgc3luIHJlZ2lvbiB2aW1NelNjaGVtZVJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K216XCVbc2NoZW1lXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCWNvbnRhaW5zPUB2aW1NelNjaGVtZVNjcmlwdAorICBzeW4gcmVnaW9uIHZpbU16U2NoZW1lUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccyokKyBlbmQ9K1wuJCsJCWNvbnRhaW5zPUB2aW1NelNjaGVtZVNjcmlwdAogIGVsc2UKLSAgc3luIHJlZ2lvbiB2aW1NelNjaGVtZVJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PSttelwlW3NjaGVtZV1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKyBjb250YWlucz1AdmltTXpTY2hlbWVTY3JpcHQKLSAgc3luIHJlZ2lvbiB2aW1NelNjaGVtZVJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PSttelwlW3NjaGVtZV1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltTXpTY2hlbWVTY3JpcHQKKyAgc3luIHJlZ2lvbiB2aW1NelNjaGVtZVJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PSttelwlW3NjaGVtZV1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKwkJY29udGFpbnM9QHZpbU16U2NoZW1lU2NyaXB0CisgIHN5biByZWdpb24gdmltTXpTY2hlbWVSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccyokKyBlbmQ9K1wuJCsJCWNvbnRhaW5zPUB2aW1NelNjaGVtZVNjcmlwdAogIGVuZGlmCisgc3luIGNsdXN0ZXIgdmltRnVuY0JvZHlMaXN0CWFkZD12aW1NelNjaGVtZVJlZ2lvbgogZWxzZQogIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsKICBzeW4gcmVnaW9uIHZpbUVtYmVkRXJyb3Igc3RhcnQ9K216XCVbc2NoZW1lXVxzKjw8XHMqJCsgZW5kPStcLiQrCiBlbmRpZgordW5sZXQgczptenNjaGVtZXBhdGgKIAogIiBTeW5jaHJvbml6ZSAoc3BlZWQpIHt7ezIKICI9PT09PT09PT09PT0KQEAgLTY0Myw2ICs2NzgsNyBAQAogc3luIHN5bmMgbGluZWNvbnQJIl5cc1wrXFwiCiBzeW4gc3luYyBtYXRjaCB2aW1BdWdyb3VwU3luY0EJZ3JvdXB0aGVyZSBOT05FCSJcPGF1Z1wlW3JvdXBdXD5cc1wrW2VFXVtuTl1bZERdIgogCisiID09PT09PT09PT09PT09PT09PT09CiAiIEhpZ2hsaWdodGluZyBTZXR0aW5ncyB7e3syCiAiID09PT09PT09PT09PT09PT09PT09CiAKQEAgLTcwOSwxNSArNzQ1LDE1IEBACiBoaSBkZWYgbGluayB2aW1NZW51TmFtZU1vcmUJdmltTWVudU5hbWUKIGhpIGRlZiBsaW5rIHZpbU10Y2hDb21tZW50CXZpbUNvbW1lbnQKIGhpIGRlZiBsaW5rIHZpbU5vcm0JdmltQ29tbWFuZAoraGkgZGVmIGxpbmsgdmltTm90RnVuYwl2aW1Db21tYW5kCiBoaSBkZWYgbGluayB2aW1Ob3RQYXRTZXAJdmltU3RyaW5nCi1oaSBkZWYgbGluayB2aW1QYXRTZXBSCXZpbVBhdFNlcAotaGkgZGVmIGxpbmsgdmltUGF0U2VwWgl2aW1QYXRTZXAKIGhpIGRlZiBsaW5rIHZpbVBhdFNlcEVycgl2aW1QYXRTZXAKK2hpIGRlZiBsaW5rIHZpbVBhdFNlcFIJdmltUGF0U2VwCiBoaSBkZWYgbGluayB2aW1QYXRTZXBab25lCXZpbVN0cmluZworaGkgZGVmIGxpbmsgdmltUGF0U2VwWgl2aW1QYXRTZXAKIGhpIGRlZiBsaW5rIHZpbVBsYWluTWFyawl2aW1NYXJrCiBoaSBkZWYgbGluayB2aW1QbGFpblJlZ2lzdGVyCXZpbVJlZ2lzdGVyCiBoaSBkZWYgbGluayB2aW1TZWFyY2gJdmltU3RyaW5nCi1oaSBkZWYgbGluayB2aW1TZWFyY2hEZWxpbQlTdGF0ZW1lbnQKIGhpIGRlZiBsaW5rIHZpbVNldE1vZAl2aW1PcHRpb24KIGhpIGRlZiBsaW5rIHZpbVNldFN0cmluZwl2aW1TdHJpbmcKIGhpIGRlZiBsaW5rIHZpbVNwZWNGaWxlTW9kCXZpbVNwZWNGaWxlCkBAIC03MzgsMTEgKzc3NCwxMSBAQAogaGkgZGVmIGxpbmsgdmltU3luUmVnUGF0CXZpbVN0cmluZwogaGkgZGVmIGxpbmsgdmltU3ludGF4CXZpbUNvbW1hbmQKIGhpIGRlZiBsaW5rIHZpbVN5blR5cGUJdmltU3BlY2lhbAoraGkgZGVmIGxpbmsgdmltVW5tYXAJdmltTWFwCiBoaSBkZWYgbGluayB2aW1Vc2VyQXR0cmJDbXBsdAl2aW1TcGVjaWFsCiBoaSBkZWYgbGluayB2aW1Vc2VyQXR0cmJLZXkJdmltT3B0aW9uCiBoaSBkZWYgbGluayB2aW1Vc2VyQXR0cmIJdmltU3BlY2lhbAogaGkgZGVmIGxpbmsgdmltVXNlckNvbW1hbmQJdmltQ29tbWFuZAotaGkgZGVmIGxpbmsgdmltVXNlckZ1bmMJTm9ybWFsCiAKIGhpIGRlZiBsaW5rIHZpbUF1dG9FdmVudAlUeXBlCiBoaSBkZWYgbGluayB2aW1CcmFja2V0CURlbGltaXRlcgpAQCAtNzU5LDI0ICs3OTUsMjUgQEAKIGhpIGRlZiBsaW5rIHZpbUZ1bmNOYW1lCUZ1bmN0aW9uCiBoaSBkZWYgbGluayB2aW1GdW5jU0lECVNwZWNpYWwKIGhpIGRlZiBsaW5rIHZpbUZ1bmNWYXIJSWRlbnRpZmllcgotaGkgZGVmIGxpbmsgdmltR3JvdXAJVHlwZQogaGkgZGVmIGxpbmsgdmltR3JvdXBTcGVjaWFsCVNwZWNpYWwKLWhpIGRlZiBsaW5rIHZpbUhMTW9kCVByZVByb2MKK2hpIGRlZiBsaW5rIHZpbUdyb3VwCVR5cGUKIGhpIGRlZiBsaW5rIHZpbUhpQXR0cmliCVByZVByb2MKIGhpIGRlZiBsaW5rIHZpbUhpVGVybQlUeXBlCitoaSBkZWYgbGluayB2aW1ITE1vZAlQcmVQcm9jCiBoaSBkZWYgbGluayB2aW1LZXl3b3JkCVN0YXRlbWVudAogaGkgZGVmIGxpbmsgdmltTWFyawlOdW1iZXIKIGhpIGRlZiBsaW5rIHZpbU1lbnVOYW1lCVByZVByb2MKIGhpIGRlZiBsaW5rIHZpbU5vdGF0aW9uCVNwZWNpYWwKLWhpIGRlZiBsaW5rIHZpbU5vdEZ1bmMJdmltQ29tbWFuZAogaGkgZGVmIGxpbmsgdmltTnVtYmVyCU51bWJlcgoraGkgZGVmIGxpbmsgdmltT3BlckVycm9yCUVycm9yCiBoaSBkZWYgbGluayB2aW1PcGVyCU9wZXJhdG9yCiBoaSBkZWYgbGluayB2aW1PcHRpb24JUHJlUHJvYwotaGkgZGVmIGxpbmsgdmltT3BlckVycm9yCUVycm9yCitoaSBkZWYgbGluayB2aW1QYXJlblNlcAlEZWxpbWl0ZXIKIGhpIGRlZiBsaW5rIHZpbVBhdFNlcAlTcGVjaWFsQ2hhcgogaGkgZGVmIGxpbmsgdmltUGF0dGVybglUeXBlCiBoaSBkZWYgbGluayB2aW1SZWdpc3RlcglTcGVjaWFsQ2hhcgogaGkgZGVmIGxpbmsgdmltU2NyaXB0RGVsaW0JQ29tbWVudAoraGkgZGVmIGxpbmsgdmltU2VhcmNoRGVsaW0JU3RhdGVtZW50CiBoaSBkZWYgbGluayB2aW1TZXAJRGVsaW1pdGVyCiBoaSBkZWYgbGluayB2aW1TZXRTZXAJU3RhdGVtZW50CiBoaSBkZWYgbGluayB2aW1TcGVjRmlsZQlJZGVudGlmaWVyCkBAIC03ODYsMTggKzgyMywxOSBAQAogaGkgZGVmIGxpbmsgdmltU3Vic3REZWxpbQlEZWxpbWl0ZXIKIGhpIGRlZiBsaW5rIHZpbVN1YnN0RmxhZ3MJU3BlY2lhbAogaGkgZGVmIGxpbmsgdmltU3Vic3RTdWJzdHIJU3BlY2lhbENoYXIKLWhpIGRlZiBsaW5rIHZpbVN5bkNhc2UJVHlwZQogaGkgZGVmIGxpbmsgdmltU3luQ2FzZUVycm9yCUVycm9yCi1oaSBkZWYgbGluayB2aW1TeW5FcnJvcglFcnJvcgotaGkgZGVmIGxpbmsgdmltU3luT3B0aW9uCVNwZWNpYWwKLWhpIGRlZiBsaW5rIHZpbVN5blJlZwlUeXBlCitoaSBkZWYgbGluayB2aW1TeW5DYXNlCVR5cGUKIGhpIGRlZiBsaW5rIHZpbVN5bmNDCVR5cGUKIGhpIGRlZiBsaW5rIHZpbVN5bmNFcnJvcglFcnJvcgogaGkgZGVmIGxpbmsgdmltU3luY0tleQlUeXBlCiBoaSBkZWYgbGluayB2aW1TeW5jTm9uZQlUeXBlCitoaSBkZWYgbGluayB2aW1TeW5FcnJvcglFcnJvcgoraGkgZGVmIGxpbmsgdmltU3luT3B0aW9uCVNwZWNpYWwKK2hpIGRlZiBsaW5rIHZpbVN5blJlZwlUeXBlCiBoaSBkZWYgbGluayB2aW1Ub2RvCVRvZG8KLWhpIGRlZiBsaW5rIHZpbVVzZXJDbWRFcnJvcglFcnJvcgogaGkgZGVmIGxpbmsgdmltVXNlckF0dHJiQ21wbHRGdW5jCVNwZWNpYWwKK2hpIGRlZiBsaW5rIHZpbVVzZXJDbWRFcnJvcglFcnJvcgoraGkgZGVmIGxpbmsgdmltVXNlckZ1bmMJTm9ybWFsCiBoaSBkZWYgbGluayB2aW1XYXJuCVdhcm5pbmdNc2cKIAogIiBDdXJyZW50IFN5bnRheCBWYXJpYWJsZToge3t7MgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgveGRlZmF1bHRzLnZpbSBiL3J1bnRpbWUvc3ludGF4L3hkZWZhdWx0cy52aW0KaW5kZXggY2QzZmVkNC4uZDdmMTE3MiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgveGRlZmF1bHRzLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC94ZGVmYXVsdHMudmltCkBAIC00LDcgKzQsNyBAQAogIgkJQXV0aG9yIGFuZCBwcmV2aW91cyBtYWludGFpbmVyOgogIgkJR2F1dGFtIEguIE11ZHVudXJpIDxnbXVkdW51ckBpbmZvcm1hdGljYS5jb20+CiAiIExhc3QgQ2hhbmdlOglEaSwgMDkgTWFpIDIwMDYgMjM6MTA6MjMgQ0VTVAotIiAkSWQkCisiICRJZDogeGRlZmF1bHRzLnZpbSx2IDEuMiAyMDA3LzA1LzA1IDE3OjE5OjQwIHZpbWJvc3MgRXhwICQKICIKICIgUkVGRVJFTkNFUzoKICIgICB4cmRiIG1hbnVhbCBwYWdlCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC94bWwudmltIGIvcnVudGltZS9zeW50YXgveG1sLnZpbQppbmRleCA4ZjhlMTU1Li41OGQ2ZGIwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC94bWwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3htbC52aW0KQEAgLTMsOSArMyw5IEBACiAiIE1haW50YWluZXI6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgogIgkJQXV0aG9yIGFuZCBwcmV2aW91cyBtYWludGFpbmVyOgogIgkJUGF1bCBTaWVnbWFubiA8cGF1bHNAZXVyb25ldC5ubD4KLSIgTGFzdCBDaGFuZ2U6CU1pLCAxMyBBcHIgMjAwNSAyMjo0MDowOSBDRVNUCisiIExhc3QgQ2hhbmdlOgkyMDA5LTA3LTEzIDIxOjI2OjU1CiAiIEZpbGVuYW1lczoJKi54bWwKLSIgJElkJAorIiAkSWQ6IHhtbC52aW0sdiAxLjMgMjAwNi8wNC8xMSAyMTozMjowMCB2aW1ib3NzIEV4cCAkCiAKICIgQ09ORklHVVJBVElPTjoKICIgICBzeW50YXggZm9sZGluZyBjYW4gYmUgdHVybmVkIG9uIGJ5CkBAIC0yMTYsNyArMjE2LDcgQEAKICAgICBzeW4gcmVnaW9uICB4bWxDb21tZW50CiAJXCBzdGFydD0rPCErCiAJXCBlbmQ9Kz4rCi0JXCBjb250YWlucz14bWxDb21tZW50UGFydCx4bWxDb21tZW50RXJyb3IKKwlcIGNvbnRhaW5zPXhtbENvbW1lbnRTdGFydCx4bWxDb21tZW50RXJyb3IKIAlcIGV4dGVuZAogCVwgZm9sZAogCkBAIC0yMjgsMTEgKzIyOCwxMiBAQAogICAgIHN5biByZWdpb24gIHhtbENvbW1lbnQKIAlcIHN0YXJ0PSs8ISsKIAlcIGVuZD0rPisKLQlcIGNvbnRhaW5zPXhtbENvbW1lbnRQYXJ0LHhtbENvbW1lbnRFcnJvcgorCVwgY29udGFpbnM9eG1sQ29tbWVudFN0YXJ0LHhtbENvbW1lbnRFcnJvcgogCVwgZXh0ZW5kCiAKIGVuZGlmCiAKK3N5biBtYXRjaCB4bWxDb21tZW50U3RhcnQgICBjb250YWluZWQgIjwhIiBuZXh0Z3JvdXA9eG1sQ29tbWVudFBhcnQKIHN5biBrZXl3b3JkIHhtbFRvZG8gICAgICAgICBjb250YWluZWQgVE9ETyBGSVhNRSBYWFgKIHN5biBtYXRjaCAgIHhtbENvbW1lbnRFcnJvciBjb250YWluZWQgIltePjwhXSIKIHN5biByZWdpb24gIHhtbENvbW1lbnRQYXJ0CkBAIC0zMjAsNiArMzIxLDcgQEAKIAogaGkgZGVmIGxpbmsgeG1sU3RyaW5nCQlTdHJpbmcKIGhpIGRlZiBsaW5rIHhtbENvbW1lbnQJCUNvbW1lbnQKK2hpIGRlZiBsaW5rIHhtbENvbW1lbnRTdGFydAl4bWxDb21tZW50CiBoaSBkZWYgbGluayB4bWxDb21tZW50UGFydAlDb21tZW50CiBoaSBkZWYgbGluayB4bWxDb21tZW50RXJyb3IJRXJyb3IKIGhpIGRlZiBsaW5rIHhtbEVycm9yCQlFcnJvcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgveHF1ZXJ5LnZpbSBiL3J1bnRpbWUvc3ludGF4L3hxdWVyeS52aW0KaW5kZXggNjc1OTNiMi4uZGNiMjY4NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgveHF1ZXJ5LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC94cXVlcnkudmltCkBAIC00LDcgKzQsNyBAQAogIiBMYXN0IENoYW5nZToJbWFyIGp1aSAxMiAxODowNDowNSBDRVNUIDIwMDUKICIgRmlsZW5hbWVzOgkqLnhxCiAiIFVSTDoJCWh0dHA6Ly9qbXZhbmVsLmZyZWUuZnIvdmltL3hxdWVyeS52aW0KLSIgJElkJAorIiAkSWQ6IHhxdWVyeS52aW0sdiAxLjEgMjAwNS8wNy8xOCAyMTo0NDo1NiB2aW1ib3NzIEV4cCAkCiAKICIgUkVGRVJFTkNFUzoKICIgICBbMV0gaHR0cDovL3d3dy53My5vcmcvVFIveHF1ZXJ5LwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgveHNkLnZpbSBiL3J1bnRpbWUvc3ludGF4L3hzZC52aW0KaW5kZXggYzM0MzFmNC4uNWJhNmI0NCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgveHNkLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC94c2QudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KICIgTGFzdCBDaGFuZ2U6CVR1ZSwgMjcgQXByIDIwMDQgMTQ6NTQ6NTkgQ0VTVAogIiBGaWxlbmFtZXM6CSoueHNkCi0iICRJZCQKKyIgJElkOiB4c2QudmltLHYgMS4xIDIwMDQvMDYvMTMgMTg6MjA6NDggdmltYm9zcyBFeHAgJAogCiAiIFJFRkVSRU5DRVM6CiAiICAgWzFdIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0wCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC94c2x0LnZpbSBiL3J1bnRpbWUvc3ludGF4L3hzbHQudmltCmluZGV4IDk4ZGQ4NjkuLjNlMGRmNmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3hzbHQudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3hzbHQudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KICIgTGFzdCBDaGFuZ2U6CVN1biwgMjggT2N0IDIwMDEgMjE6MjI6MjQgKzAxMDAKICIgRmlsZW5hbWVzOgkqLnhzbAotIiAkSWQkCisiICRJZDogeHNsdC52aW0sdiAxLjEgMjAwNC8wNi8xMyAxNTo1MjoxMCB2aW1ib3NzIEV4cCAkCiAKICIgUkVGRVJFTkNFUzoKICIgICBbMV0gaHR0cDovL3d3dy53My5vcmcvVFIveHNsdApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgveWFjYy52aW0gYi9ydW50aW1lL3N5bnRheC95YWNjLnZpbQppbmRleCBkNGJkMDE5Li4xNzk3YjdhIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC95YWNjLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC95YWNjLnZpbQpAQCAtMSw5NSArMSw4NSBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVlhY2MKICIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgotIiBMYXN0IENoYW5nZToJSmFuIDA5LCAyMDA4Ci0iIFZlcnNpb246CTUKKyIgTGFzdCBDaGFuZ2U6CU9jdCAyMSwgMjAwOAorIiBWZXJzaW9uOgk3CiAiIFVSTDoJaHR0cDovL215c2l0ZS52ZXJpem9uLm5ldC9hc3Ryb25hdXQvdmltL2luZGV4Lmh0bWwjdmltbGlua3Nfc3ludGF4CiAiCiAiIE9wdGlvbnM6IHt7ezEKICIgICBnOnlhY2NfdXNlc19jcHAgOiBpZiB0aGlzIHZhcmlhYmxlIGV4aXN0cywgdGhlbiBDKysgaXMgbG9hZGVkIHJhdGhlciB0aGFuIEMKLSIgICBnOnlhY2NfbWlubGluZXMgOiBzZWUgOmhlbHAgOmhlIHN5bi1zeW5jLW1pbmxpbmVzIC0tIGRlZmF1bHQgNTAKLSIgICBnOnlhY2NfbWF4bGluZXMgOiBzZWUgOmhlbHAgOmhlIHN5bi1zeW5jLW1heGxpbmVzIC0tIGRlZmF1bHQgMjAwCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcyB7e3sxCi0iIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCisiIHRoaXMgdmVyc2lvbiBvZiBzeW50YXgveWFjYy52aW0gcmVxdWlyZXMgNi4wIG9yIGxhdGVyCiBpZiB2ZXJzaW9uIDwgNjAwCi0gIHN5bnRheCBjbGVhcgotZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCi0gIGZpbmlzaAorIGZpbmlzaAorZW5kaWYKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgc3ludGF4IGNsZWFyCitlbmRpZgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiAgRm9sZGluZyBTdXBwb3J0IHt7ezEKK2lmIGhhcygiZm9sZGluZyIpCisgY29tISAtbmFyZ3M9KyBIaUZvbGQJPGFyZ3M+IGZvbGQKK2Vsc2UKKyBjb20hIC1uYXJncz0rIEhpRm9sZAk8YXJncz4KIGVuZGlmCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIFJlYWQgdGhlIEMgc3ludGF4IHRvIHN0YXJ0IHdpdGgge3t7MQotaWYgdmVyc2lvbiA+PSA2MDAKLSAgaWYgZXhpc3RzKCJnOnlhY2NfdXNlc19jcHAiKQotICAgIHJ1bnRpbWUhIHN5bnRheC9jcHAudmltCi0gIGVsc2UKLSAgICBydW50aW1lISBzeW50YXgvYy52aW0KLSAgZW5kaWYKLWVsc2VpZiBleGlzdHMoImc6eWFjY191c2VzX2NwcCIpCi0gIHNvIDxzZmlsZT46cDpoL2NwcC52aW0KK2lmIGV4aXN0cygiZzp5YWNjX3VzZXNfY3BwIikKKyBzeW4gaW5jbHVkZSBAeWFjY0NvZGUJPHNmaWxlPjpwOmgvY3BwLnZpbQogZWxzZQotICBzbyA8c2ZpbGU+OnA6aC9jLnZpbQorIHN5biBpbmNsdWRlIEB5YWNjQ29kZQk8c2ZpbGU+OnA6aC9jLnZpbQogZW5kaWYKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgQ2x1c3RlcnMge3t7MQotc3luIGNsdXN0ZXIJeWFjY0FjdGlvbkdyb3VwCWNvbnRhaW5zPXlhY2NEZWxpbSxjSW5QYXJlbixjVG9kbyxjSW5jbHVkZWQseWFjY0RlbGltLHlhY2NDdXJseUVycm9yLHlhY2NVbmlvbkN1cmx5LHlhY2NVbmlvbixjVXNlckxhYmVsLGNPY3RhbFplcm8sY0NwcE91dDIsY0NwcFNraXAsY0VyckluQnJhY2tldCxjRXJySW5QYXJlbixjT2N0YWxFcnJvcixjQ29tbWVudFN0YXJ0RXJyb3IsY1BhcmVuRXJyb3IKLXN5biBjbHVzdGVyCXlhY2NVbmlvbkdyb3VwCWNvbnRhaW5zPXlhY2NLZXksY0NvbW1lbnQseWFjY0N1cmx5LGNUeXBlLGNTdHJ1Y3R1cmUsY1N0b3JhZ2VDbGFzcyx5YWNjVW5pb25DdXJseQorIiAgWWFjYyBDbHVzdGVyczoge3t7MQorc3luIGNsdXN0ZXIgeWFjY0luaXRDbHVzdGVyCWNvbnRhaW5zPXlhY2NLZXkseWFjY0tleUFjdG4seWFjY0Jya3QseWFjY1R5cGUseWFjY1N0cmluZyx5YWNjVW5pb25TdGFydCx5YWNjSGVhZGVyMix5YWNjQ29tbWVudAorc3luIGNsdXN0ZXIgeWFjY1J1bGVzQ2x1c3Rlcgljb250YWlucz15YWNjTm9udGVybWluYWwseWFjY1N0cmluZwogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBZYWNjIHN0dWZmIHt7ezEKLXN5biBtYXRjaAl5YWNjRGVsaW0JIl5ccypbOnw7XSIKLXN5biBtYXRjaAl5YWNjT3BlcgkiQFxkXCsiCi0KLXN5biBtYXRjaAl5YWNjS2V5CSJeXHMqJVwodG9rZW5cfHR5cGVcfGxlZnRcfHJpZ2h0XHxzdGFydFx8aWRlbnRcfG5vbmFzc29jXClcPiIKLXN5biBtYXRjaAl5YWNjS2V5CSJccyVcKHByZWNcfGV4cGVjdFwpXD4iCi1zeW4gbWF0Y2gJeWFjY0tleQkiXCRcKDxbYS16QS1aX11bYS16QS1aXzAtOV0qPlwpXD1bXCQwLTldXCsiCi1zeW4ga2V5d29yZAl5YWNjS2V5QWN0bgl5eWVycm9rIHl5Y2xlYXJpbgotCi1zeW4gbWF0Y2gJeWFjY1VuaW9uU3RhcnQJIl4ldW5pb24iCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXlhY2NVbmlvbgotc3luIHJlZ2lvbgl5YWNjVW5pb24JY29udGFpbmVkIG1hdGNoZ3JvdXA9eWFjY0N1cmx5IHN0YXJ0PSJ7IiBtYXRjaGdyb3VwPXlhY2NDdXJseSBlbmQ9In0iCWNvbnRhaW5zPUB5YWNjVW5pb25Hcm91cAotc3luIHJlZ2lvbgl5YWNjVW5pb25DdXJseQljb250YWluZWQgbWF0Y2hncm91cD15YWNjQ3VybHkgc3RhcnQ9InsiIG1hdGNoZ3JvdXA9eWFjY0N1cmx5IGVuZD0ifSIgY29udGFpbnM9QHlhY2NVbmlvbkdyb3VwCi1zeW4gbWF0Y2gJeWFjY0Jya3QJY29udGFpbmVkICJbPD5dIgotc3luIG1hdGNoCXlhY2NUeXBlCSI8W2EtekEtWl9dW2EtekEtWjAtOV9dKj4iCWNvbnRhaW5zPXlhY2NCcmt0Ci1zeW4gbWF0Y2gJeWFjY0RlZmluaXRpb24JIl5bQS1aYS16XVtBLVphLXowLTlfXSpcX3MqOiIKKyIgIFlhY2MgU2VjdGlvbnM6IHt7ezEKK0hpRm9sZCBzeW4JcmVnaW9uCXlhY2NJbml0CXN0YXJ0PScuJ21zPXMtMSxycz1zLTEJbWF0Y2hncm91cD15YWNjU2VjdGlvblNlcAllbmQ9J14lJSQnbWU9ZS0yLHJlPWUtMgljb250YWlucz1AeWFjY0luaXRDbHVzdGVyCW5leHRncm91cD15YWNjUnVsZXMJc2tpcHdoaXRlIHNraXBlbXB0eSBjb250YWluZWQKK0hpRm9sZCBzeW4JcmVnaW9uCXlhY2NJbml0MiAgICAgIHN0YXJ0PSdcJV4uJ21zPXMtMSxycz1zLTEJbWF0Y2hncm91cD15YWNjU2VjdGlvblNlcAllbmQ9J14lJSQnbWU9ZS0yLHJlPWUtMgljb250YWlucz1AeWFjY0luaXRDbHVzdGVyCW5leHRncm91cD15YWNjUnVsZXMJc2tpcHdoaXRlIHNraXBlbXB0eQorSGlGb2xkIHN5bglyZWdpb24JeWFjY0hlYWRlcjIJbWF0Y2hncm91cD15YWNjU2VwCXN0YXJ0PSJeXHMqXHpzJXsiCWVuZD0iXlxzKiV9IgkJY29udGFpbnM9QHlhY2NDb2RlCW5leHRncm91cD15YWNjSW5pdAlza2lwd2hpdGUgc2tpcGVtcHR5IGNvbnRhaW5lZAorSGlGb2xkIHN5bglyZWdpb24JeWFjY0hlYWRlcgltYXRjaGdyb3VwPXlhY2NTZXAJc3RhcnQ9Il5ccypcenMleyIJZW5kPSJeXHMqJX0iCQljb250YWlucz1AeWFjY0NvZGUJbmV4dGdyb3VwPXlhY2NJbml0CXNraXB3aGl0ZSBza2lwZW1wdHkKK0hpRm9sZCBzeW4JcmVnaW9uCXlhY2NSdWxlcwltYXRjaGdyb3VwPXlhY2NTZWN0aW9uU2VwCXN0YXJ0PSdeJSUkJwkJZW5kPSdeJSUkJ21lPWUtMixyZT1lLTIJY29udGFpbnM9QHlhY2NSdWxlc0NsdXN0ZXIJbmV4dGdyb3VwPXlhY2NFbmRDb2RlCXNraXB3aGl0ZSBza2lwZW1wdHkgY29udGFpbmVkCitIaUZvbGQgc3luCXJlZ2lvbgl5YWNjRW5kQ29kZQltYXRjaGdyb3VwPXlhY2NTZWN0aW9uU2VwCXN0YXJ0PSdeJSUkJwkJZW5kPSdcJSQnCQljb250YWlucz1AeWFjY0NvZGUJY29udGFpbmVkCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIHNwZWNpYWwgWWFjYyBzZXBhcmF0b3JzIHt7ezEKLXN5biBtYXRjaAl5YWNjU2VjdGlvblNlcAkiXlsgXHRdKiUlIgotc3luIG1hdGNoCXlhY2NTZXAJIl5bIFx0XSoleyIKLXN5biBtYXRjaAl5YWNjU2VwCSJeWyBcdF0qJX0iCisiIFlhY2MgQ29tbWFuZHM6IHt7ezEKK3N5bgltYXRjaAl5YWNjRGVsaW0JIls6fF0iCWNvbnRhaW5lZAorc3luCW1hdGNoCXlhY2NPcGVyCSJAXGRcKyIJY29udGFpbmVkCisKK3N5bgltYXRjaAl5YWNjS2V5CSJeXHMqJVwodG9rZW5cfHR5cGVcfGxlZnRcfHJpZ2h0XHxzdGFydFx8aWRlbnRcfG5vbmFzc29jXClcPiIJY29udGFpbmVkCitzeW4JbWF0Y2gJeWFjY0tleQkiXHMlXChwcmVjXHxleHBlY3RcKVw+Igljb250YWluZWQKK3N5bgltYXRjaAl5YWNjS2V5CSJcJFwoPFthLXpBLVpfXVthLXpBLVpfMC05XSo+XClcPVtcJDAtOV1cKyIJY29udGFpbmVkCitzeW4Ja2V5d29yZAl5YWNjS2V5QWN0bgl5eWVycm9rIHl5Y2xlYXJpbgljb250YWluZWQKKworc3luCW1hdGNoCXlhY2NVbmlvblN0YXJ0CSJeJXVuaW9uIglza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD15YWNjVW5pb24JY29udGFpbmVkCitIaUZvbGQgc3luCXJlZ2lvbgl5YWNjVW5pb24JbWF0Y2hncm91cD15YWNjQ3VybHkgc3RhcnQ9InsiIG1hdGNoZ3JvdXA9eWFjY0N1cmx5IGVuZD0ifSIgY29udGFpbnM9QHlhY2NDb2RlCWNvbnRhaW5lZAorc3luCW1hdGNoCXlhY2NCcmt0CSJbPD5dIgljb250YWluZWQKK3N5bgltYXRjaAl5YWNjVHlwZQkiPFthLXpBLVpfXVthLXpBLVowLTlfXSo+Igljb250YWlucz15YWNjQnJrdAljb250YWluZWQKKworSGlGb2xkIHN5bglyZWdpb24JeWFjY05vbnRlcm1pbmFsCXN0YXJ0PSJeXHMqXGFcdypcemVcX3MqXCgvXCpcXy5cey19XCovXClcPVxfcyo6IgltYXRjaGdyb3VwPXlhY2NEZWxpbSBlbmQ9IjsiCW1hdGNoZ3JvdXA9eWFjY1NlY3Rpb25TZXAgZW5kPSdeJSUkJ21lPWUtMixyZT1lLTIgY29udGFpbnM9eWFjY0FjdGlvbix5YWNjRGVsaW0seWFjY1N0cmluZyx5YWNjQ29tbWVudAljb250YWluZWQKK3N5bglyZWdpb24JeWFjY0NvbW1lbnQJc3RhcnQ9Ii9cKiIJZW5kPSJcKi8iCitzeW4JbWF0Y2gJeWFjY1N0cmluZwkiJ1teJ10qJyIJY29udGFpbmVkCisKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgSSdkIHJlYWxseSBsaWtlIHRvIGhpZ2hsaWdodCBqdXN0IHRoZSBvdXRlciB7fS4gIEFueSBzdWdnZXN0aW9ucz8/PyB7e3sxCi1zeW4gbWF0Y2gJeWFjY0N1cmx5RXJyb3IJIlt7fV0iCi1zeW4gcmVnaW9uCXlhY2NBY3Rpb24JbWF0Y2hncm91cD15YWNjQ3VybHkgc3RhcnQ9InsiIGVuZD0ifSIgY29udGFpbnM9QUxMQlVULEB5YWNjQWN0aW9uR3JvdXAKK3N5bgltYXRjaAl5YWNjQ3VybHlFcnJvcgkiW3t9XSIKK0hpRm9sZCBzeW4JcmVnaW9uCXlhY2NBY3Rpb24JbWF0Y2hncm91cD15YWNjQ3VybHkgc3RhcnQ9InsiIGVuZD0ifSIgY29udGFpbnM9QHlhY2NDb2RlCWNvbnRhaW5lZAogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBZYWNjIHN5bmNocm9uaXphdGlvbjoge3t7MQotaWYgZXhpc3RzKCJnOnlhY2NfbWF4bGluZXMiKQotIGV4ZSAic3luIHN5bmMgbWF4bGluZXM9Ii5nOnlhY2NfbWF4bGluZXMKLWVsc2UKLSBzeW4gc3luYyBtYXhsaW5lcz0yMDAKLWVuZGlmCi1pZiBleGlzdHMoImc6eWFjY19taW5saW5lcyIpCi0gZXhlICJzeW4gc3luYyBtaW5saW5lcz0iLmc6eWFjY19taW5saW5lcwotZWxzZQotIHN5biBzeW5jIG1pbmxpbmVzPTUwCi1lbmRpZgorc3luIHN5bmMgZnJvbXN0YXJ0CiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuIHt7ezEKLSIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQotIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAotaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX3lhY2Nfc3luX2luaXRzIikKLSAgaWYgdmVyc2lvbiA8IDUwOAotICAgIGxldCBkaWRfeWFjY2hkbF9zeW5faW5pdHMgPSAxCi0gICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KLSAgZWxzZQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgotICBlbmRpZgoraWYgIWV4aXN0cygiZGlkX3lhY2Nfc3luX2luaXRzIikKKyAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CiAKICAgIiBJbnRlcm5hbCB5YWNjIGhpZ2hsaWdodGluZyBsaW5rcyB7e3syCiAgIEhpTGluayB5YWNjQnJrdAl5YWNjU3RtdApAQCAtOTgsMTMgKzg4LDE1IEBACiAgIEhpTGluayB5YWNjVW5pb25TdGFydAl5YWNjS2V5CiAKICAgIiBFeHRlcm5hbCB5YWNjIGhpZ2hsaWdodGluZyBsaW5rcyB7e3syCisgIEhpTGluayB5YWNjQ29tbWVudAlDb21tZW50CiAgIEhpTGluayB5YWNjQ3VybHkJRGVsaW1pdGVyCiAgIEhpTGluayB5YWNjQ3VybHlFcnJvcglFcnJvcgotICBIaUxpbmsgeWFjY0RlZmluaXRpb24JRnVuY3Rpb24KLSAgSGlMaW5rIHlhY2NEZWxpbQlGdW5jdGlvbgorICBIaUxpbmsgeWFjY05vbnRlcm1pbmFsCUZ1bmN0aW9uCisgIEhpTGluayB5YWNjRGVsaW0JRGVsaW1pdGVyCiAgIEhpTGluayB5YWNjS2V5QWN0bglTcGVjaWFsCiAgIEhpTGluayB5YWNjU2VjdGlvblNlcAlUb2RvCiAgIEhpTGluayB5YWNjU2VwCURlbGltaXRlcgorICBIaUxpbmsgeWFjY1N0cmluZwlTdHJpbmcKICAgSGlMaW5rIHlhY2NTdG10CVN0YXRlbWVudAogICBIaUxpbmsgeWFjY1R5cGUJVHlwZQogCkBAIC0xMTMsNiArMTA1LDEwIEBACiAKICAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiICBDbGVhbnVwOiB7e3sxCitkZWxjb21tYW5kIEhpRm9sZAogbGV0IGI6Y3VycmVudF9zeW50YXggPSAieWFjYyIKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvTWFrZWZpbGUgYi9ydW50aW1lL3R1dG9yL01ha2VmaWxlCmluZGV4IDQ1ZjQ2OGYuLjdmNGRmNzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvTWFrZWZpbGUKKysrIGIvcnVudGltZS90dXRvci9NYWtlZmlsZQpAQCAtNiw5ICs2LDExIEBACiAjIFNpbWlsYXJseSBmb3IgUnVzc2lhbiBhbmQgS29yZWFuCiAKIGFsbDogdHV0b3IudXRmLTggXAorCXR1dG9yLmJqIFwKIAl0dXRvci5jYS51dGYtOCBcCiAJdHV0b3IuZGUudXRmLTggXAogCXR1dG9yLmVsIHR1dG9yLmVsLmNwNzM3IFwKKwl0dXRvci5lbyBcCiAJdHV0b3IuZXMudXRmLTggXAogCXR1dG9yLmZyLnV0Zi04IFwKIAl0dXRvci5ociB0dXRvci5oci5jcDEyNTAgXApAQCAtMTcsNiArMTksOCBAQAogCXR1dG9yLmphLnNqaXMgdHV0b3IuamEuZXVjIFwKIAl0dXRvci5rby5ldWMgXAogCXR1dG9yLm5vLnV0Zi04IFwKKwl0dXRvci5uYiBcCisJdHV0b3IubmIudXRmLTggXAogCXR1dG9yLnJ1IHR1dG9yLnJ1LmNwMTI1MSBcCiAJdHV0b3Iuc3YudXRmLTggXAogCXR1dG9yLnpoLnV0Zi04CkBAIC0yNCw5ICsyOCwxNSBAQAogdHV0b3IudXRmLTg6IHR1dG9yCiAJaWNvbnYgLWYgSVNPLTg4NTktMSAtdCBVVEYtOCB0dXRvciA+IHR1dG9yLnV0Zi04CiAKK3R1dG9yLmJqOiB0dXRvci5iai51dGYtOAorCWljb252IC1mIFVURi04IC10IElTTy04ODU5LTEgdHV0b3IuYmoudXRmLTggPiB0dXRvci5iagorCiB0dXRvci5jYS51dGYtODogdHV0b3IuY2EKIAlpY29udiAtZiBJU08tODg1OS0xIC10IFVURi04IHR1dG9yLmNhID4gdHV0b3IuY2EudXRmLTgKIAordHV0b3IuZW86IHR1dG9yLmVvLnV0Zi04CisJaWNvbnYgLWYgVVRGLTggLXQgSVNPLTg4NTktMyB0dXRvci5lby51dGYtOCA+IHR1dG9yLmVvCisKIHR1dG9yLmRlLnV0Zi04OiB0dXRvci5kZQogCWljb252IC1mIElTTy04ODU5LTEgLXQgVVRGLTggdHV0b3IuZGUgPiB0dXRvci5kZS51dGYtOAogCkBAIC02Niw2ICs3NiwxMyBAQAogdHV0b3Iubm8udXRmLTg6IHR1dG9yLm5vCiAJaWNvbnYgLWYgSVNPLTg4NTktMSAtdCBVVEYtOCB0dXRvci5ubyA+IHR1dG9yLm5vLnV0Zi04CiAKKyMgbmIgaXMgYW4gYWxpYXMgZm9yIG5vCit0dXRvci5uYjogdHV0b3Iubm8KKwljcCB0dXRvci5ubyB0dXRvci5uYgorCit0dXRvci5uYi51dGYtODogdHV0b3Iubm8udXRmLTgKKwljcCB0dXRvci5uby51dGYtOCB0dXRvci5uYi51dGYtOAorCiB0dXRvci5ydTogdHV0b3IucnUudXRmLTgKIAlpY29udiAtZiBVVEYtOCAtdCBLT0k4LVIgdHV0b3IucnUudXRmLTggPiB0dXRvci5ydQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmJqIGIvcnVudGltZS90dXRvci90dXRvci5iagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDJhOGYzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS90dXRvci90dXRvci5iagpAQCAtMCwwICsxLDk4NyBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPSAgICBHIG8gdCBpIGsgYSBtICAgaSBuICAgbiAgIFcgSSBNIE0gLSBTIGMgaCBhIGkgbiBlIHIgICAtICAgRmFzc3VuZyAxLjdEICAgPQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICBEeXIgV2ltbSBpc3QgYXluIGdybyBt5GNodGlncyBCbGF0LCBk9nMgd2FzIG1pdCBheW5uIFf2c24gQmVmZWxoIGF1ZndhcnR0OyB6CisgICB2aWwsICBk5N8gbXluIHMgYWxsc2FuZCAgaW4gYXlubiBTY2hhaW5lciAgd2llIGT2bm4gZGFhZGVyICB1bnRlcmJy5G5nLiAgRGVyCisgICBTY2hhaW5lciBpc3QgeXNvIGF1ZmJhdXQsICBk5N8geXIgaGFsdCBuZXR0eSBkaWUgQmVmZWxoIGFsbHNhbmQgYnJpbmd0LCB3b3N0CisgICBicmF1Y2hzdCwgZOTfc3QgbWl0IGllbSBm/HIgcyBFZXJzdGUgd2lya2xpY2gg9mJicyBhbmZhbmdlbiBrYW5zdC4KKyAgIER1cmNoaGluYXJlY2h0biBrYW5zdCBkaSwgd2VubnN0IHdpbGxzdCwgaW4gYXluZXIgaGFsYmV0biBTdHVuZDsgZPZzIGhhaXNzdCwKKyAgIHdlbm5zdCBkaSBuaXQgZ3Jvb98gbWl0IG4gUHL2YmxuIHVuZCBU/GZ0bG4gYXVmaGFsdHN0LgorCisgICBPQkFDSFQ6CisgICBEaWUgRmF1ZHVuZ2VuLCAgd29zdCBkYWFkZXIgZmluZGRzdCwgIGdhYW5kIGlzdGlnICBzIEd3b3J0IPZuZGVybi4gIET2c3N39mduCisgICBtYWNoc3QgZXluIG4gQvZzdG4gZ2xlaSAgYXluIEFhbXVtIHZvbiBkZXJlciBEYXV0dGljaHQgZGFhZGVyLiAgSGFhc3QgYWxzbmFuCisgICBk9nMgR3dvcnQgZGFhZGVyICBtaXQgbiBCZWZlbGggInZpbXR1dG9yIGJqIiAgYXVzaGVybGFhc3NuLCAgaXN0IHMgZWUgc2Nob29uCisgICBheW4gQWFtdW0uCisgICBNaXIga2FuIHMgIG5pdCBvZnQgZ251ZWcgIHNhZ24sICBk5N8gIGRlciBTY2hhaW5lciBkYWFkZXIgIGlzdGlnICBnYW4gbiDcZWJuCisgICBnaG9lcnQuICBBbHNvIG11ZXNzdCBzY2hvb24gYWF1IGRpZSBCZWZlbGggYXVzZvxlcm4sICB3ZW5uc3QgeXMgZ3NjaGVpZCBsZXItCisgICBuZW4gd2lsbHN0LiBNaXQgbiBM9nNuIHlsbGFpbiBpc3QgcyArbml0IHRhYW4hCisKKyAgIElldHogc2NoYXVzdCBncmFkIG5vbiwgZOTfIGRlaW4gRvZzdHN09mxsdGFzdG4gbml0IGRydWNrdCBpc3Q7IHVuZCBhZnQgZ2Vlc3QKKyAgIGdsZWkgYXlubWFhbCBtaXQgZHlyIGotVGFzdG4gYWJ35HJ0cyAoeXNvIGxhYXVmZnQgZPZzIG72bWxpY2gpLCAgaGluc3QgZOTfc3QKKyAgIGRlIGdhbnR6ZSBMZXR6biAxLjEgYXVmIG4gQmlsZHNjaGlybSBoYWFzdC4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZXR6biAxLjE6IE1JVCBOIE3WUktMIFVNQVlOQU5ERkFSTgorCisqKiAgRHlybWl0c3QgbWl0IG4gTfZya2wgdW1heW5hbmRraW1tc3QsIGRydWNrIGgsIGosIGsgdW5kIGwgd2llIHVudCB6YWlndC4gICoqCisgICAgICAgICAgICBeICAgICAgICAgICAgQXluINZzbHNicnVnZzoKKyAgICAgICAgICAgIGsgICAgICAgICAgICBEZSBUYXN0biAgaCAgaXN0IHdpbnN0ZXIgdW5kICtnZWV0IGFhdSBnYW4gd2luc3Rlci4KKyAgIDwgaCAgICAgICAgICAgICBsID4gICBTICBsICBsZWl0IHplc20gdW5kIHJpY2h0dCBzaSBnYW4gemVzbS4KKyAgICAgICAgICAgIGogICAgICAgICAgICBTICBqICBrYW4gbXluIHdpZSBheW5uIFBmZWlsIGdhbiB1bnQgc2VnaG4uCisgICAgICAgICAgICB2ICAgICAgICAgICAgTWl0IG4gIGsgIGtpbW1zdCBnYW4gbiBLT1BGLiAgICAgICAgICAgIAorICAxLiBJZXR6IHJ1ZWRlcnRzdCBhaW5mYWNoIG1pdCBuIE32cmtsIGF1ZiBuIEJpbGRzY2hpcm0gdW1heW5hbmQsICBoaW5zdCBk5N9zdAorICAgICBkaSBzaWNoZXIgZvxlbHN0LgorICAyLiBIYWx0ICBkIEFiaGluLVRhc3RuIChqKSAgZHJ1Y2t0OyAgYWZ0IHJ1bXBsdCBzICBhaW5mYWNoIHdlaXRlci4gIE5ldHR5IHlzbworICAgICBraW1tc3QgZ2FuIGR5ciBuYWVoc3RuIExldHpuLgorICAgICAKKyAgMy4gV2llIGdzYWl0LCBpZXR6IGJld/Znc3QgZGkgYWxzbyBtaXQgZGVyZXIgVGFzdG4gZ2FuIGR5ciBMZXR6biAxLjIuCisKK05vbiD2YmJzOiBBbGx3ZWlsLCB3ZW5uIGR5ciBuaWVtZXIgZ2FueiB3b2wgaXN0LCB3YXNzdCD2YmJlbm4gZHJ1Y2t0IGhhYXN0LCBhZnQKKyAgICAgICAgICB6aXBmc3QgIDxFU0M+OyAgbmFhY2hlcmQgYmlzdCB3aWRlciBnYW56IGd3b24gaW4gZHlyIEJlZmVsaHMtQXJ0d2Vpcy4KKworICAgICAgCisgICAgICAgICAgTvZibmJlaSBnc2FpdCBraW1tc3QgZ3dvbmVyd2VpbCBhYXUgbWl0IGRlIFBmZWlsdGFzdG5lbiB3ZWl0ZXIuICBBYmVyCisgICAgICAgICAgaGprbCAgc2VpbmQgeiBoYWlzc24gcyBXaW1tLVVyZ3N0YWluOyAgdW5kIGRlICJI9nJ0biIgc2VpbmQgZ2FueiBkeXItCisgICAgICAgICAgZvxyLCBk5N8gbXluIGJlaSArZGVuZSBibGVpYnQuIFBy9mJsdCBzIGFpbmZhY2ggYXVzIQorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gMS4yOiDWTk4gV0lNTSBBVVNTQ0hBTFRUTgorCisKKyAgQUxTTywgRUUgV0VOTlNUINZCQlMgVk9OIERBQSBVTlQgQVVTRtxFUlNULCAgTElTIExJRUJFUiBaRUVSU1QgREUgR0FOVFpFIExFVC0KKyAgWk4hCisKKyAgMS4gRHJ1Y2sgZCA8RVNDPi1UYXN0biwgZHlybWl0c3QgYWF1IGd3ad8gaW4gZHlyIEJlZmVsaHMtQXJ0d2VpcyBiaXN0LgorICAKKyAgMi4gRGVtbWx0ICA6cSEgPEVJTj4uCisgICAgIERhYSBkeXJtaXQgIGJlbmRkc3QgeXMgQmxhdCAgdW5kIHZlcndpcmZmc3QgIGFsbHNzLCAgd2Fzc3Qg9mJiZW5uICBn9m5kZXJ0CisgICAgIGhhYXN0LgorCisgIDMuIEJhbHN0IPZubiBFaW5naWIgc2VnaHN0LCBnaWIgZPYgRmF1ZHVuZyBlaW4sICB3byBkaSB6byBk9m5uIFNjaGFpbmVyIGJydW4tCisgICAgIGdlbiBoYWF0LCBhbHNvICAgIHZpbXR1dG9yIGJqIDxFSU4+LgorCisgIDQuIEFsc28sIHdlbm4gaWV0eiBhbGxzc2Ugc2l0enQsIG5hYWNoZXJkIGb8ZXJzdCBkIFNjaHJpdHQgMSBoaW5zdCAzIGF1cywgbWl0CisgICAgIHdhc3N0IHlzIEJsYXQgdmVybGFhc3N0IHVuZCBhZnQgd2lkZXIgZWluaGlua2ltbXN0LgorCitBbm32cmt1bmc6IE1pdCAgOnEhIDxFSU4+IHZlcndpcmZmc3QgYWxsc3MsIHdhc3N0IGf2bmRlcnQgb2xkZXIgZW50aGVyIGdzY2hyaWJuCisgICAgICAgICAgIGhhYXN0LiBJbiBheW5uINZ0dGx5Y2ggTGV0em5lbiBsZXJuc3QgYWNodCwgd2llc3QgZPZzIGFsbHNzIGluIGF5bmVyCisgICAgICAgICAgIERhdXR0aWNodCBzcGVpY2hlcnRzdC4KKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAxLjM6IEdXT1JUIEJBUkVDSFROIC0gTNZTQ0hOIAorCisgICAgICAgICAKKyAgICAgICAgICoqIERydWNrICB4ICAsIGR5cm1pdHN0IGT2cyBaYWljaGVuIHVudGVyIG4gTfZya2wgbPZzY2hzdC4gKioKKworICAxLiBCZXf2ZyBkaSBtaXQgbiBN9nJrbCBhdWYgZGUgbWl0ICAtLS0+IGFuZ232cmt0ZSBaZWlsIHVudC4KKworICAyLiBabyBuIEZhZWxlciBWZXJi9nNzZXJuICBmYXJzdCBtaXQgbiBN9nJrbCAgbmV0dHkgIGF1ZiBk9nMgWmFpY2hlbiwgIGT2cyB3bworICAgICBnbPZzY2h0IGdob2VydC4KKworICAzLiBEcnVjayBkZSBUYXN0biAgeCAgLCBk5N9zdCBk9nMg/GJlcmZs/HNzaWdlIFphaWNoZW4gbPZzY2hzdC4KKworICA0LiBJZXR6IHR1ZXN0IHNvIGxhbmcgd2VpdGVyIG1pdCAyIGhpbnN0IDQsIGhpbnN0IGTk3yBkeXIgU2F6IHN0aW1tdC4KKworLS0tPiBEZSBLa3V1ZSBzcHJhbmdnIPxiYmVyIG5uIE1hYW5hZC4KKworICA1LiBXZW5uIGlldHogZGUgWmVpbCB2ZXJi9nNzZXJ0IGlzdCwgZ2Vlc3QgZ2FuIGR5ciBMZXR6biAxLjQuIHdlaXRlci4KKworVW5kIGdhbnogd2ljaHRpZzogIER5cndlaWxzdCBk9m5uIFNjaGFpbmVyIGR1cmNoYXJlY2h0c3QsICB2ZXJzdWVjaCBuaXQg9mJiZW5uLAorICAgICAgICAgICAgICAgICAgIGFsbHNzIGF1c3dlbmRpZyB6IGxlcm5lbjsgIG7kbiwgbGVybiBhaW5mYWNoIG1pdCBuIEFud2VuZGRuIQorCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZXR6biAxLjQ6IEdXT1JUIEJBUkVDSFROIC0gRUlORtxFR04KKworCisgICAgICAgICAgICAgICAgICAqKiAgRHJ1Y2sgIGkgICwgZHlybWl0c3Qg9mJicyBlaW5m/GVnc3QuICoqCisKKyAgMS4gQmV39mcg9m5uIE32cmtsIHpvIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCwgd28gbWl0IC0tLT4gYW5nZWV0LgorCisgIDIuIER5cm1pdHN0ICBkZSBlZXJzdGUgWmVpbCAgd2llIGRlIHp3YWl0dGUgbWFjaHN0LCAgYmV39mcg9m5uIE32cmtsICBhdWYgZPZzCisgICAgIGVlcnN0ZSBaYWljaGVuIE5BQUNIIGRlcmVyIFN09mxsLCBkYWEgd28gcyBHd29ydCBlaW5nZvxlZ3Qgd2VyZG4gc29sbHQuCisKKyAgMy4gRHJ1Y2sgIGkgIHVuZCBnaWIgZPZzIGVpbiwgd2FzIGFiZ2VldC4KKworICA0LiBXZW5uIGlld2VpbHMgYXluIEZhZWxlciB2ZXJ3ZWl0ZXJ0IGlzdCwgYWZ0IGRydWNrIDxFU0M+OyB1bmQgZHlybWl0IGtpbW1zdAorICAgICBnYW4gZHlyIEJlZmVsaHNhcnR3ZWlzIHpydWdnLgorICAgICBTbywgdW5kIGlldHogdHVlc3QgYWluZmFjaCB5c28gd2VpdGVyLCBoaW5zdCBk5N8gZHlyIFNheiBzdGltbXQuCisKKy0tLT4gRGFhZGVyIGd0IGRkIPZiYnMgYi4KKy0tLT4gRGFhZGVyIGdlZXQgZGllbmQg9mJicyBhYi4KKworICA1LiBCYWxzdCBtYWluc3QsICBk5N9zdCB5cyBHd29ydC1FaW5m/GVnbiBrYW5zdCwgYWZ0IGdlZXN0IGdhbiBkeXIgTGV0em4gMS41LgorCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZXR6biAxLjU6IEdXT1JUIEJBUkVDSFROIC0gQU5G3EVHTgorCisKKyAgICAgICAgICAgICAgICAgICAgICAqKiBEcnVjayAgQSAgZ2FuIG4gR3dvcnQgQW5m/GVnbi4gKioKKworICAxLiBHZWUgbWl0IG4gTfZya2wgZ2FuIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCwgd28gYXluIC0tLT4gZHlydm9yIGhhYXQuCisgICAgIERhYSBpc3QgcyBnbGVpY2gsIHdvIGduYXVuIGR5ciBN9nJrbCBpbiBkZXJlciBaZWlsIHN0ZWV0LiAgCisKKyAgMi4gRGVtbWx0ICBBICB1bmQgZ2liIGRlIGVudHNwcvZjaGV0biBFcmf2bnR6dW5nZW4gZWluLgorCisgIDMuIFdlbm5zdCAgbWl0IG4gQW5m/GVnbiBm9nJ0aWcgYmlzdCwgIGFmdCBkcnVja3N0IDxFU0M+LCAgZOTfc3Qgd2lkZXIgZXluIGRlCisgICAgIEJlZmVsaHNhcnR3ZWlzIHpydWdna2ltbXN0LgorCisgIDQuIFNvLCAgdW5kIGlldHogZ2Vlc3QgYWZ0IG5vbiBnYW4gZHlyIHp3YWl0dG4gIG1pdCAtLS0+IGFuZ232cmt0biBaZWlsOyAgdW5kCisgICAgIGRhYWRsIG1hY2hzdCB5cyBuZXR0eSB5c28uCisKKy0tLT4gSW4gZGVyZXIgWmVpbCBnZWUgIAorICAgICBJbiBkZXJlciBaZWlsIGdlZXQgYXluIFdlZW5nIGF5biBHd29ydCBhYi4KKy0tLT4gQWF1IGRhYWRlciBzdGVlCisgICAgIEFhdSBkYWFkZXIgc3RlZXQg9mJicyBVbnZvbGxzdPZuZGlncy4gCisKKyAgNS4gV2VubnN0IHMgQW5m/GVnbiB2b24gR3dvcnQgZHJhdWYgaGFhc3QsIG5hYWNoZXJkIGdlZSBnYW4gZHlyIExldHpuIDEuNi4gIAorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAxLjY6IEFZTiBEQVVUVElDSFQgQkFSRUNIVE4KKworCisgICAgICoqIE1pdCAgOndxICBzcGVpY2hlcnRzdCBheW4gRGF1dHRpY2h0IHVuZCB2ZXJsYWFzc3Qg9m5uIFdpbW0gZ2Fuei4gKioKKworICAhISBPQkFDSFQ6ICBFZSB3ZW5uc3QgbWl0IGT2bm4gYWxsbiBkYWEgdW50IHdlaXRlcnR1ZXN0LCBsaXMgemVlcnN0IGRlIGdhbnR6ZQorICAgICBMZXR6biBkdXJjaCEhCisKKyAgMS4gVmVybGFh3yBhbHNvIHMgQmxhdCwgd2llIHMgaW4gZHlyIExldHpuIDEuMi4gaGFpc3N0LCBtaXQgIDpxISAgIQorCisgIDIuIEdpYiBk9iBGYXVkdW5nIGV5biBuIEVpbmdpYiBlaW46ICB2aW0gU2NoYWluZXIgPEVJTj4gLiAndmltJyBydWVmZnQgcyBCbGF0CisgICAgIGF1ZiwgIHVuZCAnU2NoYWluZXInICBoYWlzc3QgZGUgRGF1dHRpY2h0LCAgd29zdCBiYXJlY2h0biAgd2lsbHN0LiAgRHlybWl0CisgICAgIGhhYXN0IGFsc28gYXluIERhdXR0aWNodCwgZPYgd29zdCBiYXJlY2h0biBrYW5zdC4KKworICAzLiBJZXR6ICBm/GVnc3Qg9mJicyBlaW4gb2xkZXIgbPZzY2hzdCD2YmJzLCAgd2llc3QgeXMgaW4gZGUgdm9yaWduZW4gTGV0em5lbgorICAgICBnbGVybnQgaGFhc3QuCisKKyAgNC4gU3BlaWNoZXJ0IGRlIGf2bmRlcnRlIERhdXR0aWNodCB1bmQgdmVybGFh3yD2bm4gV2ltbSBtaXQgIDp3cSAgPEVJTj4gIC4KKworICA1LiBTY2htZWnfIPZubiBXaW1tc2NoYWluZXIgbmV1IGFuIHVuZCBnZWUgZ2FuIGR5ciBmb2xnZXRuIFphbW1lbmZhc3N1bmcuCisKKyAgNi4gQWZ0IGTk33N0ICBkZSBvYmlnbmVuIFNjaHJpdHQgZ2z2c24gdW5kIGvkcHB0IGhhYXN0LCAga2Fuc3QgeXMgZHVyY2hm/GVybi4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gMQorCisKKyAgMS4gRHlyIE32cmtsIHdlcmQgbWl0IGRlIFRhc3RuZW4gaGprbCBvbGRlciBhYXUgbWl0IGRlIFBmZWlsdGFzdG5lbiBnc3RldWVydC4KKyAgICAgICAgICAgICAgaCAod2luc3QpICAgICBqIChhYikgICAgICAgIGsgKGF1ZikgICAgICAgbCAoemVzKQorCisgIDIuIFVtIPZubiBXaW1tIHVtYmIgbiBFaW5naWIgYXVzIHogZ2lubmVuLCBkZW1tbHQ6IHZpbSBEQVVUVElDSFQgPEVJTj4gLgorCisgIDMuIFdpbGxzdCD2bm4gV2ltbSB2ZXJsYWFzc24gdW5kIGFhdSBhbGxzcyB2ZXJ3ZXJmZmVuLCBhZnQgZ2lic3QgZWluOgorICAgICAgICAgICAgICAgIDxFU0M+ICA6cSEgIDxFSU4+IC4KKyAgICAgR2FuIG4gVmVybGFhc3NuIHVuZCBTcGVpY2hlcm4gYWJlciB6aXBmc3QgPEVTQz4gIDp3cSAgPEVJTj4uCisKKyAgNC4gV2lsbHN0IGT2cyBaYWljaGVuIGz2c2NobiwgZGFhIHdvIGR5ciBN9nJrbCBkcmF1ZiBpc3QsIGRlbW1sdHN0ICB4ICAuCisKKyAgNS4gV2lsbHN0IPZiYnMgdm9yIG4gTfZya2wgZWluZ/ZibiwgemlwZnN0ICBpICB1bmQgZHJhZnRlciAgPEVTQz4gIC4KKyAgICAgTWVjaHN0IHlzIGFiZXIgZXluIHMgWmVpbG5lbmQgYW5oaW5o9m5nZW4sIGJlbnV0enQgeXMgICBBICAuCisgICAgIFVuZCBhaW5mYWNoIG5hYWNoIG4gTfZya2wgZvxlZ3N0IHlzIG1pdCAgYSAgZWluICAuCisKK0FubfZya3VuZzogIERydWNrc3QgPEVTQz4sIGtpbW1zdCBleW4gZGUgQmVmZWxoc2FydHdlaXMgenJ1Z2cgb2xkZXIgYnJpY2hzdCBheW4KKyAgICAgICAgICAgIEZhdWR1bmcgYWIsIGT2IHdvIGR5ciBzY2hpZWZnYW5nZW4gaXN0LgorCisgICAgIElldHogdHVlIG1pdCBkeXIgTGV0em4gMiB3ZWl0ZXIuCit+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAyLjEuOiBM1lNIRkFVRFVOR0VOCisKKworICAgICAgICAgICAgICAgICAqKiBEZW1tbHQgIGR3ICAsIGR5cm1pdHN0IGF5biBXb3J0IGz2c2Noc3QgKioKKworICAxLiBEcnVjayAgPEVTQz4sIGR5cm1pdCBzIGFhdSBnd2nfIGlzdCwgZOTfc3QgaW4gZHlyIEJlZmVsaHNhcnR3ZWlzIGJpc3QuCisKKyAgMi4gQmV39mcg9m5uIE32cmtsIHpvIGR5ciBtaXQgLS0tPiBhbmdt9nJrdG4gWmVpbCB1bnQuCisKKyAgMy4gVW5kIGRhYSBnZWVzdCBpZXR6IGF1ZiBuIEFuZmFuZyB2b24gYXlubiBXb3J0LCBk9nMgd28gZ2z2c2NodCBnaG9lcnQuCisKKyAgNC4gWmlwZiAgZHcgICwgZOTfc3QgZPZzIGdhbnR6ZSBXb3J0IGz2c2Noc3QuCisKKyAgTvZibmJlaTogIER5ciBCdWVjaHN0YWJuICBkICBlcnNjaGVpbnQgYXVmIGR5ciBs9nNzdG4gWmVpbCAgdm9uIG4gQmlsZHNjaGlybSwKKyAgICAgICAgICAgIHNvYmFsZHN0IG4gZWluZ2lic3QuIER5ciBXaW1tIHdhcnR0IGlldHogZHJhdWYsIGTk3yD2YmJzIGtpbW10LCBhbC0KKyAgICAgICAgICAgIHNvICBkYWFkZXIgYXluICB3ICAuICBTZWdoc3QgIGZyZWlsaWNoICD2YmJzIEFuZGVydHMgIHdpZSBheW4gIGQgICwKKyAgICAgICAgICAgIG5hYWNoZXJkIGhhYXN0ICD2YmJzIEZhbHNjaHMgIGRlbW1sdC4gIERydWNrIGFmdCAgPEVTQz4gIHVuZCBwcvZibHQKKyAgICAgICAgICAgIHMgbm9uIGF5bm1hYWwuCistLS0+IEF5biDWdHRseWNoIFf2cnRlciBsdXN0aWcgZ2hvZXJuZCBuaXQgRmlzcGVyIGV5biBk9m5uIFNheiBlaW5oaW4uCisKKyAgNS4gxGZlcnQgIGQgU2Nocml0dCAgMyB1bmQgNCwgIGhpbnN0IGTk3yAgZHlyIFNheiBw5HNzdCwgIHVuZCBnZWUgYWZ0IGdhbiBkeXIKKyAgICAgTGV0em4gMi4yLgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDIuMi46IE5PTiBNRUVSRVIgTNZTSEZBVURVTkdFTgorCisKKyAgICAgICAgICAgICoqIEdpYiAgZCQgIGVpbiwgZOTfc3QgaGluc3QgZXluIHMgWmVpbG5lbmQgbPZzY2hzdC4gKioKKworICAxLiBEcnVjayA8RVNDPiAsIGR5cm1pdHN0IGFhdSBnd2nfIGluIGR5ciBCZWZlbGhzYXJ0d2VpcyBiaXN0LgorCisgIDIuIEJld/ZnIPZubiBN9nJrbCBoaW5zdCBleW4gZGUgbWl0IC0tLT4gYW5nbfZya3RlIFplaWwgdW50bi4KKworICAzLiBHZWUgbWl0IG4gTfZya2wgYXVmIHMgRW5kIHZvbiBkeXIgZmFlbGVyZnJlaWVuIFplaWwsIE5BQUNIIG4gZWVyc3RuICAuICAgLgorCisgIDQuIFppcGYgIGQkICAsIGTk33N0IGhpbnN0IGV5biBzIEVuZCB2b24gZHlyIFplaWwgbPZzY2hzdC4KKyAgCistLS0+INZiYmVyIGhhYXQgcyBFbmQgdm9uIGR5ciBaZWlsIGRvcGx0IGVpbmf2Ym4uIGRvcGx0IGVpbmf2Ym4uCisKKworICA1LiBHZWUgd2VpdGVyICBnYW4gZHlyIExldHpuIDIuMywgIGR5cm1pdHN0IHZlcnN0ZWVzdCwgIHdhcyBkYWFkZXIgYWJsYWF1ZmZ0LgorCisKKworCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDIuMzogUEZFTUVSRVIgVU5EIFdPTEVOREVSCisKKworICBWaWwgRmF1ZHVuZ2VuLCAgIHdvIHMgR3dvcnQg9m5kZXJuZCwgc/Z0em5kIHNpIGF1cyBheW5uIFBmZW1lcmVyIHVuZCBheW5uIFdvLQorICBsZW5kIHphbW0uIEJhbCBpIGFsc28g9mJicyBs9nNjaG4gd2lsbCwgc2NocmVpYiBpIGFpbnN0aW5nICBkICB1bmQgYWZ0IHMgIldvLQorICBsZW5kIiwgZPZzIGhhaXNzdCBhbHNvLCAid29sZW5kIiwgIndvaGluIiBk5N8gaSB3aWxsIC0gb2xkZXIgd2FzIGkgaGFsdCBnbmF1bgorICBs9nNjaG4gd2lsbC4KKworCisKKworCisKKyAgRGFhZGVyIGFsc28sIHdhcyBpIHdpZSBs9nNjaG4ga2FuOgorICAgIHcgLSBoaW5zdCBleW4gbiBBbmZhbmcgdm9uIG4gbmFlaHN0biBXb3J0IEFBTkUgZPZubiBzZWluIGVlcnN0cyBaYWljaGVuLgorICAgIGUgLSBnYW4gbiBFbmQgdm9uIG4gaWV0enVuZG4gV29ydCBNSVQgZPZubiBzZWlubiBs9nNzdG4gWmFpY2hlbi4KKyAgICAkIC0gem8gbiBFbmQgdm9uIGR5ciBaZWlsIE1JVCBkZXJlciBpcm4gbPZzc3RuIFphaWNoZW4uCisKKyAgQWxzbyBs9nNjaHQgZGUgVGFzdG5mb2xnICBkZSAgdW1iYiBuIE32cmtsIGhpbnN0IGV5biBzIFdvcnRlbmQuCitBbm32cmt1bmc6ICAgR2liIGkgZ3JhZCAgZPZzIHp3YWl0dGUgWmFpY2hlbiAgeWxsYWluIGVpbiwgIHJ1Y2t0IGhhbHQgZHlyIE32cmtsCisgICAgICAgICAgICAgZW50c3By9mNoZXQgd2VpdGVyLgorCit+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+CisgICAgICAgICAgICAgICAgICAgTGV0em4gMi40OiBNSVQgQVlOTiBa1kxFUiBEIFdPTEVOREVSIMRGRVJOCisKKworICAgICAgKiogR2liIGkgYXluIFphbCB2b3IgYXlubiBXb2xlbmQgZWluLCB3ZXJkIGT2cyBTZWwgaGFsdCB3aWRlcmhvbHQuICoqCisKKyAgMS4gQmV39mcg9m5uIE32cmtsIGdhbiBuIEFuZmFuZyB2b24gZHlyIFplaWwgbWl0IC0tLT4gZHlydm9yIHVudC4KKworICAyLiBaaXBmICAydyAgLCBk5N9zdCBtaXQgbiBN9nJrbCB6d2FpIFf2cnRlciB3ZWl0ZXJnZWVzdC4KKworICAzLiBaaXBmICAzZSAgLCBk5N9zdCBtaXQgbiBN9nJrbCBhdWYgcyBFbmQgdm9uIG4gZHJpdHRuIFdvcnQga2ltbXN0LgorCisgIDQuIFppcGYgIDAgIChheW5uIE51bGxlciksIGTk33N0IGV5biBuIEFuZmFuZyB2b24gZHlyIFplaWwgaGlua2ltbXN0LgorCisgIDUuIFdpZGVyaG9sIGQgU2Nocml0dCAyIHVuZCAzIG1pdCB2ZXJzY2hhaWRuZSBa9mxlci4KKworICAtLS0+IET2cyBpc3QgaWV0eiBncmFkIGF5biBaZWlsIHpvIG4gZHJpbm4gVW1heW5hbmRlcnJ1ZWRlcm4uCisKKyAgNi4gR2VlIHdlaXRlciBnYW4gZHlyIExldHpuIDIuNS4KKworCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICBMZXR6biAyLjU6IERVUkNIIEFZTk4gWtZMRVIgR0xFSSBNRUVSRVIgTNZTQ0hOCisKKworICAgICAgICAgICAgICAqKiBBeW4gWmFsIHZvciBheW5uIFBmZW1lcmVyIORmZXJ0IGT2bm4gdW0gc2VsbiBXZXJkLiAqKgorCisgIEFsc28sIGkgbWVjaHQgbPZzY2huLCAgdW5kIHp3YWFyIPZiYnMgQmVzdGltbXRzLCAgdW5kIGT2cyBzbyB1bmQgc28gb2Z0OiAgRGFhCisgIGR5cnp1ZSBiZW51dHogaSBheW5uIFr2bGVyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCAgWvZsZXIgIFdvbGVuZCAoYWxzbyD2bm4gQmV39md1bmdzc2Nocml0KQorCisgIDEuIEJld/ZnIPZubiBN9nJrbCAgZ2FuIG4gZWVyc3RuIFdvcnQgaW4gR1JPT1NTQlVFQ0hTVEFCTiBpbiBkeXIgbWl0IC0tLT4gYW4tCisgICAgIGdt9nJrdG4gWmVpbC4KKworICAyLiBEZW1tbHQgIGQydyAgLCBkeXJtaXRzdCBkZSBnYW56IGdyb2/fZ3NjaHJpYm5lbiBX9nJ0ZXIgbPZzY2hzdC4KKworICAzLiDEZmVydCAgZCBTY2hyaXR0IDEgdW5kIDIgIG1pdCBk9m5uIGVudHNwcvZjaGV0biBa9mxlciwgIGR5cm1pdHN0IGRlIGRyYXVmLQorICAgICBmb2xnZXRuICBnYW56IGdyb99nc2NocmlibmVuIFf2cnRlciAgbWl0IGF5bmVyIGFpbnppZ25lbiBGYXVkdW5nICBs9nNjaHN0OgorCisKKy0tLT4gIET2IEFCQyBERSBaZWlsIEZHSEkgSksgTE1OIE9QIG1pdCBX9nJ0ZXIgaXN0IFEgUlMgVFVWIGlldHogYmVyaWNodGlndC4KKworCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gMi42OiBBUkVDSFROIEFVRiBaRUlMTgorCisKKyAgICAgICAgICAgICAgICoqIFppcGYgIGRkICAsIHVtIGF5biBnYW50emUgWmVpbCB6IGz2c2Nobi4gKioKKworICBXZWlsIHMgZ3JvIG9mdCB2/HJraW1tdCwgIGTk3yBteW4gZ2FudHplIFplaWxuIGz2c2NodCwgIGthYW1lbmQgc2Nob29uIGQgRW50LQorICB3aWNrbGVyIHZvbiBuIFVyd2ltbSBkYWEgZHJhdWYsICBk5N8gbXluIGFpbmZhY2ggIGRkICBnYW4gZPZubiBad/ZrIHNjaHJlaWJ0LgorCisKKyAgMS4gQmV39mcg9m5uIE32cmtsIGdhbiBkeXIgendhaXR0biBaZWlsIGluIG4gdW50aWduZW4gIkdlZGljaHQiLgorICAyLiBaaXBmICBkZCAgLCAgdW0gZPYgWmVpbCB6IGz2c2Nobi4KKyAgMy4gSWV0eiBiZXf2Z3N0IGRpIGdhbiBkeXIgdmllcnRuIFplaWwuCisgIDQuIFppcGYgIDJkZCAgLCB1bSB6d28gWmVpbG4gem8gbiBM9nNjaG4uCisKKy0tLT4gIDEpICBSb29zbiBzZWluZCByb290OworLS0tPiAgMikgIERydW50ZXIgaXN0IHMgS29vdC4KKy0tLT4gIDMpICBWZWlnZXJsbiBzZWluZCBibGF1LgorLS0tPiAgNCkgIFVtZ3JhYm4gdHVldCBzIGQgU2F1LgorLS0tPiAgNSkgIEQgVXIgc2FpdCBkZSBaZWl0LAorLS0tPiAgNikgIFNhaXQsIGTk3yBzIG1pIGZyZXV0LAorLS0tPiAgNykgIERpcm5kbCwgZGVpbiBHc2NoYXUuCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgIExldHpuIDIuNzogUlVHR0fWTkdJRyBNQUNIRU4gKFJVR0dMTikgCisKKworICAgICAgICAgICAgICoqIFppcGYgIHUgICwgZHlybWl0c3QgZGUgbPZzc3RuIEZhdWR1bmdlbiBydWdnbHRzdCAqKgorICAgICAgICAgICAgICAqKiBvbGRlciAgVSAgLCB1bSBheW4gZ2FudHplIFplaWwgd2lkZXJoZXJ6c3T2bGxuLiAqKgorCisgIDEuIEJld/ZnIPZubiBN9nJrbCAgZ2FuIGR5ciBtaXQgLS0tPiBhbmdt9nJrdG4gWmVpbCB1bnQgIHVuZCBnZWUgZHlybWl0IGF1ZiBuCisgICAgIGVlcnN0biBGYWVsZXIuCisgIDIuIFppcGYgIHggICwgZOTfc3QgZPZzIGVlcnN0ZSB6IHZpbGUgWmFpY2hlbiBs9nNjaHN0LgorICAzLiBJZXR6IGRlbW1sdCAgdSAgLCBkeXJtaXRzdCBkZSBs9nNzdGUgRmF1ZHVuZyBydWdnbHRzdC4KKyAgNC4gSWV0eiBiZWj2YiAgYWxsc2FuZCBGYWVsZXIgIGF1ZiBkeXIgWmVpbCAgbWl0IGR5ciBIaWxmICB2b24gbiBCZWZlbGggIHggIC4KKyAgNS4gQWZ0IGdpYnN0IGF5biAgVSAgKGdyb2/fKSBlaW4sICBk5N9zdCBkZSBaZWlsIHdpZGVyIHlzbyBoaW5icmluZ3N0LCAgd2llIHMKKyAgICAgZ3f2c24gaXN0LgorICA2LiBTbywgIHVuZCBpZXR6ICBkZW1tbHRzdCAgc28gb2Z0ICB1ICAsIGhpbnN0IGTk33N0IHMgIFUgIHVuZCBkZSBhbmRlcm4gRmF1LQorICAgICBkdW5nZW4gcnVnZ2f2bmdpZyBnbWFjaHQgaGFhc3QuCisgIDcuIFVuZCBpZXR6ZXQgd2lkZXJ1bSAgc2NocmVpYnN0ICBzbyBvZnQgIDxTVFJHPnIgICwgaGluc3QgZOTfc3QgIGFsbHNhbmQgQmUtCisgICAgIGZlbGggd2lkZXJoZXJnc3T2bGx0LCB6IGhhaXNzbiBhbGxzc2UgcnVnZy1ncnVnZ2x0IGhhYXN0ICAoYWxzbyBkIFJ1Z2dn9m4tCisgICAgIGdpZ21hY2h1bmdlbiBydWdnZ/ZuZ2lnIGdtYWNodCkuCistLS0+IEJlZXJpY2h0aWcgZCBGYWVsbGVyIHZvb24gZGVocmVyIFplaWlsICB1bmQgc3R09mxsIHMgbWl0dCBuIFJ1Z2dydWdnbG4gd2ktCisgICAgIGRlciBoZXIuCisgIDguIERpZSBGYXVkdW5nZW4gc2VpbmQgZ3JvIHdpY2h0aWc7IHP2IGhlbGZmZW5kIGFpbm4gbuRycmlzY2ggd2VpdGVyLgorICAgICBJZXR6IGdlZSB3ZWl0ZXIgZ2FuIGR5ciBaYW1tZW5mYXNzdW5nIHZvbiBkeXIgTGV0em4gMi4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gMgorCisKKyAgMS4gVW0gdm9uIG4gTfZya2wgYXVzIGhpbnN0IGV5biBzIG5hZWhzdGUgV29ydCB6byBuIEz2c2NobiwgemlwZjogIGR3CisgIDIuIFVtIHVtYmIgbiBN9nJrbCBoaW5zdCBleW4gcyBFbmQgdm9uIGR5ciBaZWlsIHpvIG4gTPZzY2huLCBkZW1tbHQgIGQkCisgIDMuIER5cm1pdHN0IGF5biBnYW50emUgWmVpbCBs9nNjaHN0LCBnaWIgZWluOiAgZGQKKyAgNC4gTWVjaHN0IGF5biBCZXf2Z3VuZywgYXluICJXb2xlbmQiLCD2ZnRlcnMsICBzdPZsbCBkZSBlbnRzcHL2Y2hldGUgWmFsIGR5ci0KKyAgICAgdm9yOiAgM2R3ICBvbGRlciBhYXU6ICBkM3cKKyAgNS4gRHlyIFBmdWVnIGb8ciBheW4g1m5kZXJ1bmdzZmF1ZHVuZyBsYXV0dCB5c286CisgICAgICAgICAgICAgICBQZmVtZXJlciAgIFtaYWxdICAgQmV39md1bmdzc2Nocml0IChXb2xlbmQpCisgICAgIFVuZCBk9nMgaGFpc3N0OgorICAgICAgRHlyIFBGRU1FUkVSIGdpYnQgYW4sIFdBUyB0YWFuIGdob2VydCwg9mJiZW5uICAgZCAgID0gIGz2c2NobiAou2RlbGV0ZaspLgorICAgICAgW1pBTF0gLSBBeW4gWmFsIEtBTiBteW4gYW5n9mJuLCB3ZW5uIG15biBoYWx0IGF5biBXb2xlbmQg9mZ0ZXIgaGFibiB3aWxsLgorICAgICAgUyBXT0xFTkQsICBhbHNvIGR5ciBTY2hyaXQgV09ISU4sIGJlc2FndCwgIGF1ZiB3YXMgaSBhdXNoaW4gd2lsbCwgIPZiYmVubgorICAgICAgYXVmIGF5biBXb3J0ICggIHcgICksIHMgRW5kIHZvbiBkeXIgWmVpbCAoICAkICApIHVuZCBzbyB3ZWl0ZXIuCisKKyAgNi4gROTfc3QgZXluIG4gQW5mYW5nIHZvbiBkeXIgWmVpbCBoaW5raW1tc3QsIHNjaHJlaWIgYXlubiBOdWxsZXI6ICAwCisKKyAgNy4gVW0g9mJicyBWb3JpZ3Mgd2lkZXIgeiBydWdnbG4sIGdpYiBlaW46ICAgICAgICAgICAgICAgIHUgKGtsYWluIGFsc28pCisgICAgIFVtIGFsbHNhbmQg1m5kZXJ1bmdlbiBpbiBheW5lciBaZWlsIHogcnVnZ2xuLCBoYWFzdDogICBVIChhbHNvIGdyb2/fKQorICAgICBVbSAicnVnZy16LXJ1Z2dsbiIsIGFsc28gYWxsc3Mgd2lkZXIgaGVyenN09mxsbiwgemlwZjogPFNUUkc+ciAgIAorCit+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAzLjE6IEFORtxFR04gKLtwdXSrKSAKKworCisgICAgICoqIFppcGYgIHAgICwgZHlybWl0c3Qg9mJicyBnbmV0dHkgR2z2c2NodHMgbmFhY2ggbiBN9nJrbCBhbmb8ZWdzdC4gKioKKworICAxLiBCZXf2ZyD2bm4gTfZya2wgZ2FuIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCBtaXQgICAtLS0+ICAgZHlydm9yLgorCisgIDIuIFppcGYgIGRkICAsIHVtIHNlbGUgWmVpbCB6IGz2c2NobiAgdW5kIGR5cm1pdCAgaW4gYXlubiBXaW1tLSJSb3N0ZXIiICB6byBuCisgICAgIHNwZWljaGVybi4KKworICAzLiBCZXf2ZyD2bm4gTfZya2wgZ2FuIGR5ciBaZWlsIGMpLCAg3EJFUiBkZXJlciwgZGFhIHdvIGRlIGds9nNjaHRlIFplaWwgZWluLQorICAgICBoaW5rZW1tZW4gc29sbHQuCisKKyAgNC4gU28sICB1bmQgaWV0eiBnaWJzdCBhaW5mYWNoICBwICBlaW4sICB1bmQgc2Nob29uIGhhYXN0IGT2IFplaWwgdW50ZXIgZGVyZXIKKyAgICAgbWl0IG4gTfZya2wgZHJpbm4uCisgIDUuIMRmZXJ0ICBkIFNjaHJpdHQgMiBoaW5zdCA0LCAgaGluc3QgZOTfc3QgIGFsbHNhbmQgWmVpbG4gIHlzbyBuYWFjaHluYXluYW5kCisgICAgIGhhYXN0LCB3aWUgcyBoaW5naG9lcm5kLgorCistLS0+IGQpIEthbnN0IGR1IGT2cyBhYXU/CistLS0+IGIpIFZlaWdlcmxuIHNlaW5kIGJsYXUuCistLS0+IGMpIEJlZGFjaHRuIGthbiBteW4gbGVybmVuLgorLS0tPiBhKSBSb29zbiBzZWluZCByb290Lgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDMuMjogRVJT1lRaTiAou3JlcGxhY2WrKQorCisKKyAgICAgICoqIFppcGYgIHJ4ICAsIHVtIGT2cyBaYWljaGVuIHVudGVyIG4gTfZya2wgZHVyY2ggIHggIHogZXJz9nR6bi4gKioKKworICAxLiBCZXf2ZyD2bm4gTfZya2wgem8gZHlyIGVlcnN0biB1bnRpZ25lbiBaZWlsIG1pdCAgIC0tLT4gICBkeXJ2b3IuCisKKyAgMi4gQmV39mcg9m5uIE32cmtsLCBoaW5zdCBk5N8geXIgYXVmIG4gZWVyc3RuIEZhZWxlciBzdGVldC4KKworICAzLiBaaXBmICByICB1bmQgZHJhZnRlciBk9nMgWmFpY2hlbiwgd28gZHlyZvxyIGRhYSBoaW5naG9lcnQuCisKKyAgNC4gV2lkZXJob2wgZCBTY2hyaXR0IDIgdW5kIDMsICBoaW5zdCBk5N9zdCBkZSBlZXJzdGUgWmVpbCAgZ21hZd8gZHlyIHp3YWl0dG4KKyAgICAgYmVyaWNodGlndCBoYWFzdDoKKy0tLT4gIFdpZSBk9iBaZWl0IGVpbmdvYm4gd3VyZCwgd3VyZG5kIGFpbmlrZSBmYWxzY2hlIFphc3RuZW4gemlwZnQhCistLS0+ICBXaWUgZPYgWmVpbCBlaW5n9mJuIHd1cmQsIHd1cmRuZCBhaW5pZ2UgZmFsc2NoZSBUYXN0bmVuIHppcGZ0IQorCisgIDUuIElldHogdHVlIG1pdCBkeXIgTGV0em4gMy4zIHdlaXRlci4KKworQW5t9nJrdW5nOiBWZXJnad8gbml0IGRyYXVmLCBk5N9zdCBtaXQgbiBBbndlbmRkbiBsZXJuZW4gc29sbHRzdCB1bmQgbml0IPZiYmVubgorICAgICAgICAgICBtaXQgbiBBdXN3ZW5kaWdsZXJuZW4hCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAzLjM6INZOREVSTiAou2NoYW5nZaspCisKKworICAgICAgICAgICAgICAqKiBVbSBoaW5zdCBleW4gcyBXb3J0ZW5kIHog9m5kZXJuLCB6aXBmICBjZSAgLiAqKgorCisgIDEuIEdlZSBtaXQgbiBN9nJrbCBhdWYgZGUgZWVyc3RlIG1pdCAtLS0+IGFuZ232cmt0ZSBaZWlsLgorCisgIDIuIElldHogZmFyc3QgbmV0dHkgYXVmIHMgICJzIiAgdm9uIFdzdHdyIGhpbi4KKworICAzLiBaaXBmICBjZSAgZWluIHVuZCBhZnQgZCBXb3J0YmVyaWNodGlndW5nLCBkYWFkZXIgYWxzbyAg9nJ0ZXIgIC4KKworICA0LiBEcnVjayA8RVNDPiB1bmQgYmV39mcg9m5uIE32cmtsIGdhbiBuIG5hZWhzdG4gWmFpY2hlbiwgIHdvIGf2bmRlcnQgZ2hvZXJ0LgorCisgIDUuIMRmZXJ0ICBkIFNjaHJpdHQgMyB1bmQgNCwgIGhpbnN0IGTk3yAgZHlyIGVlcnN0ZSBTYXogIHdpZSBkeXIgendhaXR0ZSBpc3QuCisKKy0tLT4gQWluaWdlIFdzdHdyIHZvbiBkZXJlciBabHd3IGdoaG5uZCBtaXQgbiDWbmRlcm4tUGZlbWVyZXIgZ2FhdXUuCistLS0+IEFpbmlnZSBX9nJ0ZXIgdm9uIGRlcmVyIFplaWwgZ2hvZXJuZCBtaXQgbiDWbmRlcm4tUGZlbWVyZXIgZ/ZuZGVydC4KKworY2UgIGz2c2NodCBhbHNvIHMgV29ydCB1bmQgc2NobGFhdWZmdCBkaSBleW4gZCBFaW5nYWFiLUFydHdlaXMuCisKKworCit+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+CisgICAgICAgICAgICAgICAgICBMZXR6biAzLjQuOiBOT04gTUVFUkVSINZOREVSVU5HRU4gUEZFTEZTICBjCisKKworICAgKiogRCBM9nNoZmF1ZHVuZyAgYyAgYXJlY2h0dCBtaXQgZGUgbvZtbGljaG5lbiBXb2xlbmRlciB3aWUgZPYgbWl0ICBkICAqKgorCisgIDEuIER5ciDWbmRlci1QZmVtZXJlciBhcmVjaHR0IGFubGVpY2ggd2llIGQgTPZzaGZhdWR1bmcgbWl0ICAgZCAgLCAgdW5kIHp3YWFyCisgICAgIHlzbzoKKyAgICAgICAgIGMgICAgW1phbF0gICBCZXf2Z3VuZ3NzY2hyaXR0IChXb2xlbmQpCisKKyAgMi4gRCBXb2xlbmRlciAgc2VpbmQgIGRlIGdsZWljaG4sICD2YmJlbm4gIHcgIGb8ciBXb3J0IHVuZCAgJCBm/HIgcyBaZWlsbmVuZC4KKworCisgIDMuIEJld/ZnIGRpIHpvIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCBtaXQgLS0tPiAuCisKKyAgNC4gSWV0eiBnZWVzdCBhdWYgZPZubiBlZXJzdG4gRmFlbGVyLgorCisgIDUuIFppcGYgIGMkICAsIGdpYiD2bm4gUmVzdCB2b24gZHlyIFplaWwgd2llIGluIGR5ciB6d2FpdHRuIGVpbiB1bmQgZHJ1Y2sgYWZ0CisgICAgIDxFU0M+LgorLS0tPiBTIEVuZCB2b24gZGVyZXIgWmVpbCBzb2xsdCBhbiBkZSB6d2FpdHRlIGRhYWRlciBhbmdsaWNoZW4gd2VyZG4uCistLS0+IFMgRW5kIHZvbiBkZXJlciBaZWlsIHNvbGx0IG1pdCBuIEJlZmVsaCAgYyQgIGJlcmljaHRpZ3Qgd2VyZG4uCisKK0RlbmsgYWxsd2VpbCBkcmFuLCAgZOTfc3QgaWVkZXJ6ZWl0ICBtaXQgZHlyIFJ1Z2d0YXN0biBGYWVsZXIgYXVzYvZzc2VybiBrYW5zdC4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gMworCisKKyAgMS4gVW0gYXluICB2b3JoZXIgZ2z2c2NodHMgR3dvcnQgIGFuemb8ZWduLCAgemlwZiAgcCAgLiAgRGFhIGR5cm1pdCAgd2VyZCBk9nMKKyAgICAgZ2FudHplIEd3b3J0ICBOQUFDSCBuIE32cmtsICBhbmdm/GVndC4gIFdlbm4gcyBheW4gZ2FudHplIFplaWwgIGd39nNuIGlzdCwKKyAgICAgd2VyZCBk9iBzZWwgYWxzIGRlIFplaWwgdW50ZXJoYWxiIG4gTfZya2wgZWluZ2b8ZWd0LgorCisgIDIuIFVtIGT2cyBaYWljaGVuICB1bnRlciBuIE32cmtsLCAgYWxzbyB3byBkeXIgTfZya2wgaXN0LCAgeiBlcnP2dHpuLCB6aXBmICByCisgICAgIHVuZCBhZnQgZPZzIFphaWNoZW4sIHdvc3QgZGFhZGwgaGFibiB3aWxsc3QuCisKKyAgMy4gRHlyINZuZGVydW5nc3BmZW1lcmVyICggYyA9ILtjaGFuZ2WrKSBsYWFzc3QgYWlubiB1bWJiIG4gTfZya2wgaGluc3QgZXluIHMKKyAgICAgRW5kIHZvbiBuIFdvbGVuZCD2bmRlcm4uIFppcGYgIGNlICAsIGR5cm1pdHN0IHVtYmIgbiBN9nJrbCBoaW5zdCBleW4gcyBFbmQKKyAgICAgdm9uIG4gV29ydCD2bmRlcnRzdCwgdW5kICBjJCAgaGluc3QgZXluIHMgRW5kIHZvbiBkeXIgWmVpbC4KKworICA0LiBG/HIgZCDWbmRlcnVuZyBsYXV0dCBkeXIgUGZ1ZWc6CisKKyAgICAgYyAgIFtaYWxdICAgV29sZW5kCisKK0lldHogdHVlIG1pdCBkeXIgbmFlaHN0biBMZXR6biB3ZWl0ZXIuCisKKworCit+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+CisgICAgICAgICAgICAgICAgIExldHpuIDQuMTogTdZSS0xTVNZMTFVORyBVTkQgREFVVFRJQ0hUREFSU1RBTkQKKworKiogRGVtbWx0IDxTVFJHPmcsIGTk33N0IPZubiBCZWZhbmQgdW5kIERhcnN0YW5kIHZvbiBkeXIgRGF1dHRpY2h0IGFuemFpZ3N0LiAqKgorICAqKiBaaXBmICBHICAsIGR5cm1pdHN0IGF1ZiBheW4gYmVzdGltbXRlIFplaWwgaW4gZHlyIERhdXR0aWNodCBoaW5raW1tc3QuICoqCisKK0FubfZya3VuZzogTGlzIGT2IGdhbnR6ZSBMZXR6biBkYWFkZXIgZHVyY2gsIGVlIHdlbm5zdCBpZXdpZ24g9mJicyB1bnRlcm5pbW1zdCEKKworICAxLiBEcnVjayAgPFNUUkc+ZyAgLiAgQXVmIGT2cyBoaW4gZXJzY2hlaW50IGF1ZiBkZXJlciBTZWl0dCBnYW56IHVudCBheW4gRGFyLQorICAgICBzdGFuZHNtZWxkdW5nICBtaXQgbiBEYXV0dGljaHRuYW0gIHVuZCBuIEJlZmFuZCAgaW5uZXJoYWxiICBkeXIgRGF1dHRpY2h0LgorICAgICBN9nJrIGR5ciBkZSBaZWlsbm51bW1lciBm/HIgbiBTY2hyaXQgMy4KKworQW5t9nJrdW5nOiAgTfxnbGljaGVyd2VpcyAgc2VnaHN0IGFhdSD2bm4gTfZya2xiZWZhbmQgIGluIG4gemVzbWVuIHVudGVybiBCaWxkLQorICAgICAgICAgICAgc2NoaXJt9mdnLiBBZnQgaXN0IHMgIkxpbmRsIiAou3J1bGVyqykgZWluZ3N09mxsdDsgc2NoYXUgZHlyenVlIG1pdAorICAgICAgICAgICAgbiBCZWZlbGggICA6aGVscCAncnVsZXInICAgbmFhY2guCisgIDIuIERydWNrICBHICAsIHVtIGFuIHMgRW5kIHZvbiBkeXIgRGF1dHRpY2h0IHoga2VtbWVuLgorICAgICBnZyAgZ2lic3QgZWluLCBk5N9zdCBnYW4gbiBBbmZhbmcgdm9uIGR5ciBEYXV0dGljaHQgYXVmaGlua2ltbXN0LgorCisgIDMuIEdpYiBkIE51bW1lciB2b24gZGVyZXIgWmVpbCBlaW4sIGRhYSB3b3N0IHZvcmhlciB3YXJzdCwgIHVuZCBhZnQgbm9uICBHICAuCisgICAgIET2cyBicmluZ3QgZGkgenJ1Z2cgZ2FuIHNlbGVyIFplaWwsICBkYWEgd29zdCBzdHVlbmRkc3QsICB3aWVzdCBk9nMgZWVyc3RlCisgICAgIE1hYWwgPFNUUkc+ZyBnYWRydWNrc3QuCisKKyAgNC4gV2VubnN0IGRpIHNpY2hlciBnbnVlZyBm/GVsc3QsIGFmdCBm/GVyIGQgU2Nocml0dCAxIGhpbnN0IDMgYXVzLgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZXR6biA0LjI6IERZUiBCRUZFTEggWk8gTiBTVUVDSEVOIAorICAgICAgICAgICAgICAgCisKKyAgKiogWmlwZiAgLyAgdW5kIGR5cm5hYWNoIGF5bm4gQXVzZHJ1aywgdW0gc2VsYmlnbmVuIHpvIG4gU3VlY2hlbi4gKioKKworICAxLiBEdSBnaWJzdCBhbHNvIGluIGR5ciBCZWZlbGhzYXJ0d2VpcyBzIFphaWNoZW4gIC8gIGVpbi4gRPZzIHNlbCB3aWUgYWF1IGR5cgorICAgICBN9nJrbCBlcnNjaGVpbmVuZCBkcmF1ZiB1bnQgYXVmIG4gU2NoaXJtLCBuZXR0eSB3aWUgYmVpIGR5ciBGYXVkdW5nICA6ICAuCisKKyAgMi4gSWV0eiB6aXBmICdGYWVlbGVyJyA8RUlOPi4gTmV0dHkgdW0gZPZzICdGYWVlbGVyJyB3aWxsc3QgaWV0eiBzdWVjaGVuLgorCisgIDMuIFdpbGxzdCB1bSBnbmF1biBk9m5uIEF1c2RydWsgd2VpdGVyc3VlY2hlbiwgemlwZiBhaW5mYWNoICBuICAod2llILtuZXh0qykuCisgICAgIFdpbGxzdCBoaW56cnVnZyBzdWVjaGVuLCBhZnQgZ2lic3QgIE4gIGVpbi4KKworICA0LiBVbSB2b24gSGF1cyBhdXMgenJ1Z2dhdXMgeiBzdWVjaGVuLCBuaW1tICA/ICBzdGF0dCAgLyAgaGVyLgorCisgIDUuIER5cm1pdHN0IHdpZGVyIGRhYSBoaW5raW1tc3QsIHdvc3QgaGVya2VtbWVuIGJpc3QsIGRydWNrIDxTVFJHPm8sICB1bmQgZPZzCisgICAgIPZmdGVyLCAgd2VubnN0IHdlaXRlciB6cnVnZyB3aWxsc3QuICBNaXQgPFNUUkc+aSB3aWRlcnVtICBraW1tc3Qgdm9yd+RydHMuCisKKy0tLT4gIEF5bm4gRmFlbGVyIHNjaHJlaWJ0IG15biBuaXQgIkZhZWVsZXIiOyBGYWVlbGVyIGlzdCBheW4gRmFlbGVyCisKK0FubfZya3VuZzogIFdlbm4gZCBTdWVjaCBzIERhdXR0aWNodGVuZCBkeXJyYWljaHQgaGFhdCwgZ2VldCBzIGV5biBuIEFuZmFuZyB3aS0KKyAgICAgICAgICAgIGRlciB3ZWl0ZXIgZHlybWl0LCAgbWVuIFNhY2ggIGR5ciBTY2hhbHR0ZXIgJ3dyYXBzY2FuJyB35HIgYXVmIGF1cy4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNC4zOiBERSBH1kdOS0xBTU1FUk4gRklOREROCisKKworICAgKiogWmlwZiAgJSAgLCB1bSBkZSBlbnRzcHL2Y2hldGUgS2xhbW1lciAgKSAgLCAgXSAgb2xkZXIgIH0gIHogZmluZGRuLiAqKgorCisgIDEuIFP2dHog9m5uIE32cmtsICBhdWYgaWV3aWduIGFpbmUgIHZvbiBkZW5lIGRyZWkgS2xhbW1lcm4gICggICwgIFsgIG9sZGVyICB7CisgICAgIGluIGR5ciB1bnRpZ25lbiBaZWlsLCB3byBtaXQgLS0tPiBhbmdt9nJrdCBpc3QuCisKKyAgMi4gSWV0emV0IHppcGYgcyBaYWljaGVuICAlICAuCisKKyAgMy4gRHlyIE32cmtsIGdlZXQgaWV0eiBhdWYgZGUgcORzc2V0ZSBzY2hsaWVzc2V0ZSBLbGFtbWVyLgorCisgIDQuIElldHogZGVtbWx0ICAlICAsIHVuZCBkeXJtaXQga2ltbXN0IGdhbiBkeXIg9mZmbmVyZXRuIEtsYW1tZXIgenJ1Z2cuCisKKyAgNS4gU/Z0eiD2bm4gTfZya2wgYXVmIGF5biBhbmRlcm5lIEtsYW1tZXIgdm9uICAgKHtbXX0pICAgdW5kIHBy9mJsdCAgICUgIGF1cy4KKworLS0tPiBE9nMgKCBpc3QgIGJsb2/fIGF5biBQb2NoemVpbCAoIG1pdCBbIHZlcnNjaGFpZG5lIF0geyBLbGFtbWVybiB9IGRyaW5uLiApKQorCitBbm32cmt1bmc6ICBVbSBk9iBN/GdsaWNoa2VpdCBnYWFzdCBic3VuZGVycyBmcm9vIHNlaW4sICB3ZW5uc3QgYXlubWFhbCBpbiBheW5uCisgICAgICAgICAgICBTcGFpY2hnd29ydCB2ZXJ6d2VpZmx0IGF5biBmYWVsZXRlIEf2Z25rbGFtbWVyIHN1ZWNoc3QhCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICBMZXR6biA0LjQ6IEQgRVJT1lRaVU5HU0ZBVURVTkcgKLtzdWJzdGl0dXRlqykKKworCisgICAgICAgICoqIFppcGYgIDpzL2FsdC9uZXUvZyAgLCB1bSAnYWx0JyBkdXJjaCAnbmV1JyB6byBuIEVyc/Z0em4uICoqCisKKyAgMS4gR2VlIG1pdCBuIE32cmtsIHpvIGR5ciB1bnQgc3RlZWhldG4gbWl0IC0tLT4gYW5nbfZya3RuIFplaWwuCisKKyAgMi4gWmlwZiAgOnMvZGVlL2RlIDxFSU4+ICAuIERlciBCZWZlbGggZXJz9nR6dCBhbHNuYW4gZ3JhZCBk9nMgK2VlcnN0ZSAiZGVlIiwKKyAgICAgd28gdvxya2ltbXQuCisKKyAgMy4gSWV0eiBwcvZibHQgcyBtaXQgIDpzL2RlZS9kZS9nICAuIET2cyB6dWVz9nR6bGljaGUgIGcgICgiUGZsb2siICBuZW5udCBteW4KKyAgICAg9mJicyBT9mxjaGVycykgYmV3aXJrdCwgZOTfIGFsbHNzLCB3YXMgZHlybWl0IGtlbm56YWljaG5ldCBpc3QsICBpbm5lcmhhbGIKKyAgICAgdm9uIGR5ciBhaW5uIFplaWwgZXJz9nR6dCB3ZXJkLgorCistLS0+IERlZSBzY2hvZW5zdGUgWmVpdCwgZOTfIG15biBkZWUgQmz8ZW1sbiBhbnNjaGF1dCwgaXN0IGRlZSBzY2hvZW5lIExhbi0KKyAgICAgZ2Vzc3plaXQuCisgIDQuIFVtIGlldHogIGFsbHNhbmQgU3VlY2hiZWdyaWZmICBpbm5lcmhhbGIgdm9uIHp3byBaZWlsbiAgem8gbiDWbmRlcm4sICB6aXBmCisgICAgIDojLCNzL2FsdC9uZXUvZyAgLCAgd29iZWkgIyBpZXdlaWxzIGb8ciBkZSBlZXJzdGUgdW5kIGz2c3N0ZSBaZWlsIHZvbiBk9m5uCisgICAgIFBmcmFpY2ggc3RlZXQuCisgICAgIDolcy9hbHQvbmV1L2cgIHppcGZzdCwgZOTfc3QgZCBW/HJrZW1tZW4gaW4gZHlyIGdhbnR6biBEYXV0dGljaHQg9m5kZXJ0c3QuCisgICAgICAgIE1pdCAgOiVzL2FsdC9uZXUvZ2MgIGZpbmRkc3QgYWxsc2FuZCBW/HJrZW1tZW4gaW4gZHlyIGdzYW10biBEYXV0dGljaHQ7CisgICAgIGRhYSB3ZXJzdCBhYmVyIHplZXJzdCBub24gZ2ZyYWFndCwgb2JzdCB5cyBlcnP2dHpuIHdpbGxzdCBvbGRlciBuaXR5Lgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIFpBTU1FTkZBU1NVTkcgVk9OIERZUiBMRVRaTiA0CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgMS4gPFNUUkc+ZyAgIHphaWd0IGT2bm4gaWV0enVuZG4gRGF1dHRpY2h0YmVmYW5kICB1bmQg9m5uIERhcnN0YW5kIGR5cnZvbiBhbi4KKyAgICAgICAgICAgRyAgYnJpbmd0IGRpIGFuIHMgRW5kIHZvbiBkeXIgRGF1dHRpY2h0LgorICAgICA8WmFsPiBHICBicmluZ3QgZGkgZ2FuIGR5ciBlbnRzcHL2Y2hldG4gWmVpbG5udW1tZXIuCisgICAgICAgICAgZ2cgIGJyaW5ndCBkaSB6byBkeXIgZWVyc3RuIFplaWwuCisgICAgICAgICAgCisgIDIuIEQgRWluZ2FhYiB2b24gIC8gIG1pdCBheW5uIEF1c2RydWsgc3VlY2h0IFbcUlNITElORyB1bSBk9m5uIEF1c2RydWsuCisgICAgIEdpYnN0ICA/ICB1bmQgYXlubiBTdWVjaGJlZ3JpZiBlaW4sIHN1ZWNodCBzIHVtIGT2bm4gxFJTSExJTkcuCisgICAgIFppcGYgbmFhY2ggYXluZXIgU3VlY2ggIG4gIDsgIG5hYWNoZXJkIHdlcmQgaW4gZGUgZ2xlaWNoZSBSaWNodHVuZyB3ZWl0ZXItCisgICAgIGdzdWVjaHQuIE1pdCAgTiBnZWV0IHMgdW1rZWVydGVyIHdlaXRlci4KKyAgICAgPFNUUkc+byBicmluZ3QgZGkgem8g9mx0ZXJuZSBCZWbkbmRkIHpydWdnLCA8U1RSRz5pIHpvIG5ldWVybmUuCisKKyAgMy4gRCBFaW5nYWFiIHZvbiAgJSAsIHdlbm4gZHlyIE32cmtsIGF1ZiBhaW5lciB2b24gZGVuZSBLbGFtbWVybiBzdGVldDogICAoe1sKKyAgICAgKV19ICAsIGJyaW5ndCBkaSB6byBkeXIgR/ZnbmtsYW1tZXIuCisKKyAgNC4gVW0gZPZzIGVlcnN0ZSBW/HJrZW1tZW4gIHZvbiAiYWx0IiAgaW4gYXluZXIgWmVpbCAgZHVyY2ggIm5ldSIgIHogZXJz9nR6biwKKyAgICAgemlwZiAgIDpzL2FsdC9uZXUgICAuCisgICAgIFVtIGFsbHNhbmQgaW4gYXluZXIgWmVpbCB6IGVyc/Z0em4sIHppcGYgICA6cy9hbHQvbmV1L2cgICAuCisgICAgIE1lY2hzdCBhbGxzcyBpbiB6d28gWmVpbG4gZXJz9nR6biwgZGVtbWx0IHpvIG4gQmVpc3BpbCAgOjUsNnMvYWx0L25ldS9nICAuCisgICAgIE1lY2hzdCBhbGxzcyBpbiBkeXIgZ2FudHpuIERhdXR0aWNodCBlcnP2dHpuLCBnaWIgZWluOiAgIDolcy9hbHQvbmV1L2cgICAuCisgICAgIFdpbGxzdCBheW4gaWVkcyBNYWFsIGJzdGFldGxuLCBo9m5nICdjJyB3aWUgu2NvbmZpcm2rIGhpbnQgYW5oaW4uCit+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+CisgICAgICAgICAgICBMZXR6biA1LjE6IFpXSVNDSE5EUklOTiBBWU5OIEFVU1NFUklHTkVOIEJFRkVMSCBBVVNG3EVSTiAKKyAgICAgICAgICAgIAorCisgICoqIFdpbGxzdCBheW4gR2bk32ZhdWR1bmcgYXVzZvxlcm4sIGdpYiBhaW5mYWNoIGT2IHNlbCBuYWFjaCAgIDohICAgZWluLiAqKgorIAorICAxLiBaaXBmICBk9m5uIGJla2FubnRuIEJlZmVsaCAgIDogICwgIGR5cm1pdHN0ICBtaXQgbiBN9nJrbCAgYXVmIG4gQmlsZHNjaGlybQorICAgICBnYW56IGFiaGluIGtpbW1zdC4gRHJhdWZoaW4ga2Fuc3QgYXlubiBnd29uZW4gR2bk32JlZmVsaCBlaW5n9mJuLgorCisgIDIuIFplZXJzdCAga2ltbXQgYWJlciBub24gYXluIFJ1ZWZ6YWljaGVuICAgISAgIC4gIFVuZCBpZXR6IGhhYXN0IGRlIE38Z2xpY2gtCisgICAgIGtlaXQsIGF5biBiZWxpZWJpZ2UgYXVzc2VyaWdlIEdm5N9mYXVkdW5nIGF1c3pm/GVybi4KKworICAzLiBBbHMgQmVpc3BpbCB6aXBmICAgOiFscyA8RUlOPiAgOyB1bmQgc2Nob29uIGhhYXN0IGF5biBBdWZsaXN0dW5nIHZvbiBkZWlubgorICAgICBWZXJ6YWljaG5pc3MsICBuZXR0eSAgd2llIHdlbm5zdCAgZ2FueiBnd29uICBpbiBuIEVpbmdpYiB35HJzdC4gIEdlZXQgICBscworICAgICBhdXMgaWV3aWduIGF5bm4gR3J1bmQgbml0LCBhZnQgcHL2Ymx0IHMgbWl0ICA6IWRpciA8RUlOPiAgLgorCitBbHNvIG5vbiBheW5tYWFsOiBNaXQgZPZubiBBbmdhbmcga2FuIGF5biBpZWRlIGJlbGllYmlnZSBhdXNzZXJpZ2UgRmF1ZHVuZyBhdXMtCisgICAgICAgICAgICAgICAgICBnZvxlcnQgd2VyZG4sIGFhdSBtaXQgQXVlcndlcmRkLgorCitVbmQgd29sZ232cmt0OiAgICBBbGxzYW5kIEJlZmVsaCwgd28gbWl0ICA6ICBhbmdlZW5kLCAgbfxlc3NlbmQgbWl0IDxFSU4+IGJzdPYtCisgICAgICAgICAgICAgICAgICB0aWd0IHdlcmRuLiBE9nMgZHlyc2FnbiBteXIgdvxyYmHfIG5pZW1lci4KKworCit+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+CisgICAgICAgICAgIExldHpuIDUuMjogTk9OIE1FRVJFUiBEUtxCRVIsIFdJRSBNWU4gREFVVFRJQ0hUTiBTQ0hSRUlCVAorCisKKyAgICAgICoqIFVtIPZiYnMgR/ZuZGVydHMgbmV1IHogc3BlaWNoZXJuLCB6aXBmIDp3IE5FVUVSX0RBVVRUSUNIVE5BTS4gKioKKworICAxLiBaaXBmICA6IWRpciAgIG9sZGVyICA6IWxzICAsICBk5N9zdCBkeXIgYXluIEF1Zmxpc3R1bmcgdm9uIGRlaW5uIFZlcnphaWNoLQorICAgICBuaXNzIGF1c2hlcmxhYXNzdC4gIETk33N0IGR5cm5hYWNoIDxFSU4+IGVpbmf2Ym4gbXVlc3N0LCB3YWlzc3QgZWUgc2Nob29uLgorCisgIDIuIFN1ZWNoIGR5ciBheW5uIERhdXR0aWNodG5hbSBhdXMsIGT2bm4gd28gcyBub24gbml0IGdlaXQsIPZiYmVubiBQT0NILgorCisgIDMuIElldHogZGVtbWx0OiAgOncgUE9DSCAgIChhbHNvIG1pdCBQT0NIIGFscyBk9m5uIG5ldWVuIERhdXR0aWNodG5hbSkuCisKKyAgNC4gRPZzIHNwZWljaGVydCBpZXR6IGRlIGdhbnR6ZSBEYXV0dGljaHQsIGFsc28g9m5uIFdpbW1zY2hhaW5lciwgIHVudGVyIGT2bm4KKyAgICAgTmFtIFBPQ0guIET2cyBrYW5zdCBsZWljaHQg/GJlcnBy/GVmZmVuLCBpbmRlbSBk5N9zdCBhaW5mYWNoICA6IWxzICAgb2xkZXIKKyAgICAgOiFkaXIgIHppcGZzdCB1bmQgZHlybWl0IGRlaW5uIFZlcnphaWNobmlzc2luaGFsdCBzZWdoc3QuCisKK0FubfZya3VuZzogIFN0aWdzdCBpZXR6IGF1cyBuIFdpbW0gYXVzIHVuZCBn5G5uc3QgbiBhZnQgd2lkZXIgbWl0ICAgdmltIFBPQ0ggICwKKyAgICAgICAgICAgIG5hYWNoZXJkIHfkciBk9iBEYXV0dGljaHQgYXluIGduYXVuZSBBYW11bSB2b24gbiBTY2hhaW5lciBkeXJzZWxibiwKKyAgICAgICAgICAgIHdpZXN0IG4gZ3NwZWljaGVydCBoYWFzdC4KKworICA1LiBJZXR6IHZlcndlaXRlcnQgZPYgRGF1dHRpY2h0IC0gZmFsbHNzdCBzIEZlbnN0bCBoYWFzdCAtICwgbWl0ICAgOiFkZWwgUE9DSAorICAgICBiZXppZWh1bmdzd2VpcyBiZWkgYXlubiBBaW5zbGdlYuR1IG1pdCAgIDohcm0gUE9DSCAgIC4KK35+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+fn4KKyAgICAgICAgICAgIExldHpuIDUuMzogQVlOTiBUQUlMIFZPTiBOIEdXT1JUIFpPIE4gU1BFSUNIRVJOIEFVU1dBTE4KKworKiogVW0gYXlubiBUYWlsIHZvbiBkeXIgRGF1dHRpY2h0IHogc3BlaWNoZXJuLCB6aXBmICB2IFtXb2xlbmRdIDp3IERBVVRUSUNIVCAqKgorCisgIDEuIFJ1Y2sg9m5uIE32cmtsIGF1ZiBuZXR0eSBk9iBaZWlsIGRhYWRlci4KKworICAyLiBEZW1tbHQgIHYgIHVuZCBnZWUgbWl0IG4gTfZya2wgIGF1ZiBk9m5uIGb8bWZ0biBBdWZsaXN0dW5nc3B1bnQgdW50ZXQuICBEdQorICAgICBzZWdoc3QgZ2xlaSwgZOTfIHMgR3dvcnQgdvxyaGVyZ2j2YnQgZXJzY2hlaW50LgorCisgIDMuIERydWNrIHMgWmFpY2hlbiAgOiAgLiBHYW56IHVudCBhdWYgbiBCaWxkc2NoaXJtIGVyc2NoZWludCAgOic8LCc+ICAuCisKKyAgNC4gWmlwZiAgdyBQT0NIICAsIHdvYmVpIHMgZPZubiBEYXV0dGljaHRuYW0gUE9DSCAgbm9uIG5pdCBnZWl0LiAgVmVyZ3dp3yBkaSwKKyAgICAgZOTfc3QgZPZzICA6JzwsJz53IFBPQ0ggYWF1ICtzZWdoc3QsIGVlIHdlbm5zdCA8RUlOPiBkcnVja3N0LgorCisgIDUuIER5ciBXaW1tIHNjaHJlaWJ0IGRlIGF1c2d3YWx0biBaZWlsICBleW4gZGUgRGF1dHRpY2h0IFBPQ0ggZWluaGluLiAgQmVudXR6CisgICAgIDohZGlyICBvbGRlciAgOiFscyAgLCAgZOTfc3QgZPZzIPxiZXJwcvxlZmZzdC4gTPZzaCBzIGZlaW4gbml0IPZiYmVubiEgTWlyCisgICAgIGJyYXVjaGVuZCBzIG72bWxpY2ggZvxyIGRlIG5hZWhzdGUgTGV0em4uCisKK0FubfZya3VuZzogIERydWNrdCBteW4gIHYgICwgZ2lubnQgZCBTaWNodGlzY2gtQXVzd2FsLiBEdSBrYW5zdCBtaXQgbiBN9nJrbCB1bS0KKyAgICAgICAgICAgIGF5bmFuZGZhcm4sICB1bSBkIEF1c3dhbCAgeiB2ZXL2bmRlcm4uICBEcmFmdGVyIGthbiBteW4gbWl0IHluIGF5bm4KKyAgICAgICAgICAgIFBmZW1lcmVyICBtaXQgZPZubiBHd29ydCAg9mJicyBtYWNoZW4uICBabyBuIEJlaXNwaWwgbPZzY2h0ICBkICBk9nMKKyAgICAgICAgICAgIEd3b3J0Lgorfn5+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+fgorICAgICAgICAgICAgICAgTGV0em4gNS40OiBFSU5M1lNOIFVORCBaQU1NRU5G3EVSTiBWT04gREFVVFRJQ0hUTiAgIAorCisKKyAgICAqKiBVbSD2bm4gSW5oYWx0IHZvbiBheW5lciBEYXV0dGljaHQgZWluemz2c24sIHppcGYgIDpyIERBVVRUSUNIVE5BTSAgKioKKworICAxLiBT9nR6IPZubiBN9nJrbCD8YmVyIGT2IFplaWwgZGFhZGVyLgorCitPQkFDSFQ6ICBBZnQgZOTfc3Qg9m5uIFNjaHJpdCAyICBhdXNnZvxlcnQgaGFhc3QsICBzZWdoc3QgYXVmIGF5bm1hYWwgIPZiYnMgYXVzCisgICAgICAgICBkeXIgTGV0em4gNS4zLiAgQmV39mcgZGkgbmFhY2hlcmQgd2lkZXIgYWJ35HJ0cywgZHlybWl0c3QgZPYgTGV0em4gd2ktCisgICAgICAgICBkZXJmaW5kZHN0LgorICAyLiBJZXR6ICBsaXMgIGRlaW4gRGF1dHRpY2h0ICBQT0NIIGVpbiwgIGluZGVtIGTk33N0IGQgRmF1ZHVuZyAgIDpyIFBPQ0ggYXVzLQorICAgICBm/GVyc3QsICB3b2JlaSB3aWUgZ3NhaXQgUE9DSCAgZvxyIGT2bm4gIHZvbiBkaXIgIGF1c2dzdWVjaHRuIERhdXR0aWNodG5hbQorICAgICBzdGVldC4gRGUgZWluZ2z2c25lIERhdXR0aWNodCB3ZXJkIHVudGVyaGFsYiBkeXIgTfZya2x6ZWlsIGVpbmdm/GVndC4KKworICAzLiBVbSB6byBuINxiZXJwcvxlZmZlbiwgIG9iIGRlIERhdXR0aWNodCAgYWF1IGd3ad8gZWluZ2z2c24gaXN0LCAgZ2VlIHpydWdnOworICAgICB1bmQgZHUgc2VnaHN0LCAgZOTfIHMgaWV0eiB6d28gQXVzZvZydGlndW5nZW4gIHZvbiBkeXIgTGV0em4gNS4zLiBnZWl0LCAgcworICAgICBVcm5pc3MgdW5kIGRlIGVpbmdm/GVndGUgRGF1dHRpY2h0ZmFzc3VuZy4KKworQW5t9nJrdW5nOiAgRHUga2Fuc3QgYWF1ICBkIEF1c2dhYWIgdm9uIGF5bm4gQXVzc2VyaWdiZWZlbGggZWlubPZzbi4gIFpvIG4gQmVpLQorICAgICAgICAgICAgc3BpbCBsaXN0ICAgOnIgIWxzICBkIEF1c2dhYWIgdm9uIGR5ciBGYXVkdW5nICBscyAgIGVpbiB1bmQgZvxlZ3QgcworICAgICAgICAgICAgdW50ZXJoYWxiIG4gTfZya2wgZWluLgorCit+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgWkFNTUVORkFTU1VORyBWT04gRFlSIExFVFpOIDUKKworCisgIDEuIDohRkFVRFVORyBm/GVydCBheW5uIGF1c3NlcmlnbmVuIEJlZmVsaCBhdXMuCisKKyAgICAgIERhYWRlciBheW4g1nR0bHljaCBnd+RuZGR0ZSBCZWlzcGlsZXI6CisgICAgICAoRmVuc3RsKSAgICAgICAgICAgICAgKEFpbnNsIC0gTGVpbnNsKQorICAgICAgOiFkaXIgICAgICAgICAgICAgICAgIDohbHMgICAgICAgICAgICAgICAgLSBsaXN0dCBzIFZlcnphaWNobmlzcyBhdWYuCisgICAgICA6IWRlbCBEQVVUVElDSFQgICAgICAgOiFybSBEQVVUVElDSFQgICAgICAtIHZlcndlaXRlcnQgc2VsZSBEYXV0dGljaHQuCisKKyAgMi4gOncgREFVVFRJQ0hUICBzcGVpY2hlcnQgZGUgaWV0enVuZGUgV2ltbWRhdXR0aWNodCAgdW50ZXIgZPZubiBiZXNhZ3RuIE5hbS4KKworICAzLiB2ICBXT0xFTkQgIDp3IERBVVRUSUNIVE5BTSAgIHNjaHJlaWJ0IGRlIHNpY2h0aXNjaCBhdXNnd2FsdG4gWmVpbG4gIGV5biBkZQorICAgICBEYXV0dGljaHQgbWl0IHNlbG4gTmFtLgorCisgIDQuIDpyIERBVVRUSUNIVE5BTSAgbGFkdCBzZWxlIERhdXR0aWNodCAgdW5kIGb8ZWd0IHMgIHVudGVyaGFsYiBuIE32cmtsYmVmYW5kCisgICAgIGVpbi4KKworICA1LiA6ciAhZGlyICAgbGlzdCBkIEF1c2dhYWIgIHZvbiBkeXIgRmF1ZHVuZyAgIGRpciAgIHVuZCBm/GVndCBzICB1bnRlcmhhbGIgbgorICAgICBN9nJrbGJlZmFuZCBlaW4uCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNi4xOiBaRUlMINZGRk5FTiAou29wZW6rKQorCisKKyAgICAgICAgKiogWmlwZiBvLCB1bSBheW4gWmVpbCB1bnRlcmhhbGIgbiBN9nJrbCB6IPZmZm5lbiB1bmQgZXluIGQgKioKKyAgICAgICAgICAgICAgICAgICAgICAgICoqIEVpbmb8ZWdhcnR3ZWlzIHoga2VtbWVuLiAqKgorCisgIDEuIEJld/ZnIPZubiBN9nJrbCB6byBkeXIgZWVyc3RuIG1pdCAtLS0+IGFuZ232cmt0biBaZWlsIHVudC4KKworICAyLiBaaXBmIG8gKGtsYWluKSwgIHVtIGF5biBaZWlsICBVTlRFUkhBTEIgbiBN9nJrbCB6IPZmZm5lbiAgdW5kIG1pdCBkeXIgRWluLQorICAgICBm/GVnYXJ0d2VpcyB3ZWl0ZXJ6dHVlbi4KKworICAzLiBJZXR6IHppcGYgYXluIFdlZW5nIGF5biBHd29ydCB1bmQgZHJ1Y2sgPEVTQz4sICB1bSBkIEVpbmb8ZWdhcnR3ZWlzIHogdmVyLQorICAgICBsYWFzc24uCistLS0+IE1pdCAgbyAgd2VyZCBkeXIgTfZya2wgYXVmIGRlIG9mZmVuZSBaZWlsIGluIGR5ciBFaW5m/GVnYXJ0d2VpcyBnc/Z0enQuCisKKyAgNC4gVW0gYXluIFplaWwgT0JFUkhBTEIgbiBN9nJrbCBhdWZ6bWFjaGVuLCAgZ2liIGFpbmZhY2ggYXlubiBncm9vc3NzIE8gc3RhdHQKKyAgICAgeW4gYXlubiBrbGFpbmVuIGVpbi4gVmVyc3VlY2ggZPZzIGF1ZiBkeXIgdW50aWduZW4gWmVpbC4KKworLS0tPiDWZmZuZXQgYXluIFplaWwg/GJlciBkZXJlciBkYWFkZXIgbWl0ICBPICAsICB3ZW5uIGR5ciBN9nJrbCBhdWYgZGVyZXIgWmVpbAorICAgICBpc3QuCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDYuMjogR1dPUlQgQU5G3EVHTiAou2FwcGVuZKspCisKKworICAgICAgICAgICAgICAgICoqIFppcGYgIGEgICwgdW0g9mJicyBOQUFDSCBuIE32cmtsIGVpbnpm/GVnbi4gKioKKworICAxLiBCZXf2ZyD2bm4gTfZya2wgZ2FuIG4gQW5mYW5nIHZvbiBkeXIgZWVyc3RuINxlYnVuZ3N6ZWlsIG1pdCAtLS0+IHVudC4KKworICAyLiBEcnVjayAgZSAgLCBoaW5zdCBk5N8gZHlyIE32cmtsIGFuIG4gRW5kIHZvbiAgWmVpICBzdGVldC4KKworICAzLiBaaXBmIGF5biBrbGFpbnMgIGEgICwgdW0g9mJicyBOQUFDSCBuIE32cmtsIGFuemb8ZWduLgorCisgIDQuIFZlcmf2bnR6IGT2cyBXb3J0IHdpZSBpbiBkeXIgWmVpbCBkcnVudGVyLiAgRHJ1Y2sgPEVTQz4sIHVtIGQgU2NocmVpYi1BcnQtCisgICAgIHdlaXMgeiB2ZXJsYWFzc24uCisKKyAgNS4gQmV39mcgZGkgbWl0ICBlICAgem8gbiBuYWVoc3RuIHVuZ2FudHpuIFdvcnQgIHVuZCB3aWRlcmhvbCBkIFNjaHJpdHQgMyB1bmQKKyAgICAgNC4KKworLS0tPiBE9iBaZSBiaWV0dCBheW4gR2z2Z24gLCBheW4gR3dvcnQgaW4gYXluZXIgWmVpbCBhbnpm/C4KKy0tLT4gRPYgWmVpbCBiaWV0dCBheW4gR2z2Z25ldCwgYXluIEd3b3J0IGluIGF5bmVyIFplaWwgYW56ZvxlZ24uCisKK0FubfZya3VuZzogICBhICAsICBpICB1bmQgIEEgIGJyaW5nZW5kIGFpbm4gZ2xlaWNoZXJtYWHfbiBleW4gZCBFaW5m/GVnYXJ0d2VpczsKKyAgICAgICAgICAgICBkeXIgYWluemlnZSBVbnRlcnNjaGFpZCBpc3QsIFdPIG1pdCBuIEVpbmb8ZWduIGFuZ2Zhbmd0IHdlcmQuCit+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+CisgICAgICAgICAgICAgIExldHpuIDYuMzogQVlOIEFOREVSTkUgV0VJUyBaTyBOIEVSU9ZUWk4gKLtyZXBsYWNlqykKKworCisgKiogRGVtbWx0IGF5biBncm9vc3NzICBSICAsIHVtIG1lZXJlciBhbHMgd2llIGdyYWQgYWluIFphaWNoZW4geiBlcnP2dHpuLiAqKgorCisgIDEuIEJld/ZnIPZubiBN9nJrbCB6byBkeXIgZWVyc3RuIHVudGlnbmVuLCBtaXQgLS0tPiBhbmdt9nJrdG4gWmVpbC4KKyAgICAgR2VlIG1pdCBuIE32cmtsIGdhbiBuIEFuZmFuZyB2b24gbiBlZXJzdG4gIHh4eCAgLgorCisgIDIuIElldHogZHJ1Y2sgIFIgICB1bmQgemlwZiBzZWxlIFphbCwgIHdvIGRydW50ZXIgIGluIGR5ciB6d2FpdHRuIFplaWwgc3RlZXQsCisgICAgIHlzbyBk5N8gZGUgc2VsIHMgeHh4IGVyc/Z0enQuCisKKyAgMy4gRHJ1Y2sgPEVTQz4gLCAgdW0gZCBFcnP2dHp1bmdzYXJ0d2VpcyAgeiB2ZXJsYWFzc24uICBEdSBnc3Bhbm5zdCwgIGTk3yBkeXIKKyAgICAgUmVzdCB2b24gZHlyIFplaWwgdW52ZXL2bmRlcnQgYmxlaWJ0LgorCisgIDQuIMRmZXJ0IGRpZSBTY2hyaXR0LCB1bSBk9nMg/GJlcmJsaWJuZSB4eHggeiBlcnP2dHpuLgorCistLS0+IFMgWnVuZGRuIHZvbiAxMjMgem8geHh4IGVyZ2lidCB4eHguCistLS0+IFMgWnVuZGRuIHZvbiAxMjMgem8gNDU2IGVyZ2lidCA1NzkuCisKK0FubfZya3VuZzogRCBFcnP2dHp1bmdzYXJ0d2VpcyBpc3Qgd2llIGQgRWluZvxlZ2FydHdlaXMsICBhYmVyIGF5biBpZWRzIGVpbmRlbS0KKyAgICAgICAgICAgbWx0ZSBaYWljaGVuIGz2c2NodCBheW4gdm9yaGFuZGRucy4KKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDYuNDogR1dPUlQgQUFNRU4gVU5EIEVJTkbcRUdOCisKKyAqKiBCZW51dHog9m5uIFBmZW1lcmVyICB5ICAsIHVtIPZiYnMgeiBhYW1lbiwgdW5kICBwICAsIHVtIPZiYnMgZWluemb8ZWduLiAqKgorCisgIDEuIEdlZSB6byBkeXIgbWl0ICAtLS0+ICBhbmdt9nJrdG4gWmVpbCB1bnQgIHVuZCBz9nR6IPZubiBN9nJrbCAgaGludGVyICJhKSIuCisKKyAgMi4gR2lubiBkIFNpY2h0aXNjaC1BcnR3ZWlzIG1pdCAgIHYgICB1bmQgYmV39mcg9m5uIE32cmtsIGduYXVuIHZvciAiZWVyc3RlIi4KKyAgCisgIDMuIFppcGYgIHkgICwgdW0gZPZubiB2/HJoZXJnaPZidG4gVGFpbCB6IGFhbWVuLgorCisgIDQuIEJld/ZnIPZubiBN9nJrbCBnYW4gbiBFbmQgdm9uIGR5ciBuYWVoc3RuIFplaWw6ICBqJAorCisgIDUuIERlbW1sdCAgcCAgLCB1bSBk9nMgR3dvcnQgZWluemb8ZWduLCB1bmQgYWZ0OiAgYSB6d2FpdHRlIDxFU0M+ICAuCisKKyAgNi4gQmVudXR6IGQgU2ljaHRpc2NoYXJ0d2VpcywgdW0gIiBFaW50cmFnLiIgYXVzendhbG4sICBhYW0gcyBwZmVsZnMgIHksICBiZS0KKyAgICAgd/ZnIGRpIGdhbiBuIEVuZCB2b24gZHlyIG5hZWhzdG4gWmVpbCBtaXQgIGokICAgdW5kIGb8ZWcgcyBHd29ydCBkb3J0biBtaXQKKyAgICAgcCAgYW4uCisKKy0tLT4gIGEpIGT2cyBpc3QgZHlyIGVlcnN0ZSBFaW50cmFnLgorICAgICAgYikKKworQW5t9nJrdW5nOiBEdSBrYW5zdCAgeSAgYWF1IGFscyBQZmVtZXJlciB2ZXJ3ZW5kZG47ICB5dyAgYWFtdCBhaW4gV29ydC4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDYuNTogU0NIQUxUVEVSIFPWVFpOCisKKyoqIFP2dHogYXlubiBTY2hhbHR0ZXIgeXNvLCAgZOTfIGF5biBTdWVjaCBvbGRlciBFcnP2dHp1bmcgR3Jvb98tIHVuZCBLbGFpbi0gKioKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKiBzY2hyZWlidW5nIPxiZXJnZWV0LiAqKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAxLiBTdWVjaCB1bSAn/GJlcmdlZSIsIGluZGVtIGTk33N0ICAgL/xiZXJnZWUgICBlaW5naWJzdC4KKyAgICAgV2lkZXJob2wgZCBTdWVjaCBheW4g1nR0bHljaCBNYWFsLCBpbmRlbSBk5N9zdCBkZSBUYXN0biAgbiAgZHJ1Y2tzdC4KKworICAyLiBT9nR6IGRlIFp3aXNsIC0g9m5uIFNjaGFsdHRlciAtICdpYycgKLtpZ25vcmUgY2FzZaspLCBpbmRlbSBk5N9zdCAgOnNldCBpYworICAgICBlaW5naWJzdC4KKyAgMy4gSWV0eiBzdWVjaCB3aWRlciB1bSAn/GJlcmdlZScgdW5kIHR1ZSBhYXUgd2lkZXIgbWl0ICBuICB3ZWl0ZXIuICBEYWEgZmFsbHQKKyAgICAgZHlyIGF1ZiwgZOTfIGlldHog9mJiZW5uIGFhdSAg3GJlcmdlZSAgdW5kICDcQkVSR0VFICBoZXJnZWV0LgorCisgIDQuIFP2dHogZGUgWndpc2xuICdobHNlYXJjaCcgdW5kICdpbmNzZWFyY2gnIHBmZWxmczogICA6c2V0IGhscyBpcworCisgIDUuIFdpZGVyaG9sIGQgU3VlY2ggdW5kIGJvYmFjaHQsIHdhcyBpZXR6IGdzY2hpZWdodDogICAv/GJlcmdlZSA8RUlOPgorCisgIDYuIETk33N0IGdyb2/fIHVuZCBrbGFpbiB3aWRlciBnd29uIHVudGVyc2NoZWlkc3QsIHppcGY6ICAgOnNldCBub2ljCisKK0FubfZya3VuZzogIE1lY2hzdCBkZSBUcvZmZmVyIG5pZW1lciB2/HJoZXJnaPZidCBzZWdobiwgIGdpYiBlaW46ICAgOm5vaGxzZWFyY2gKK0FubfZya3VuZzogIFNvbGx0IGtsYWluL2dyb2/fIGJlaSBheW5lciBhaW56aWduZW4gU3VlY2ggd3Vyc3Qgc2VpbiwgIGJlbnV0eiAgXGMKKyAgICAgICAgICAgIGluIG4gU3VlY2hhdXNkcnVrOiAgIC/8YmVyZ2VlXGMgPEVJTj4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gNgorCisgIDEuIFppcGYgIG8gICwgIHVtIGF5biBaZWlsICBVTlRFUkhBTEIgbiBN9nJrbCB6IPZmZm5lbiB1bmQgZCBFaW5m/GVnYXJ0d2VpcyB6CisgICAgICAgICAgICAgICAgIGdpbm5lbi4KKyAgICAgWmlwZiAgTyAgLCAgdW0gYXluIFplaWwgT0JFUkhBTEIgbiBN9nJrbCB6IPZmZm5lbi4KKworICAyLiBaaXBmICBhICAsICB1bSBOQUFDSCBuIE32cmtsIGF5biBHd29ydCBlaW56ZvxlZ24uCisgICAgIFppcGYgIEEgICwgIHVtIGF5biBHd29ydCBuYWFjaCBuIFplaWxuZW5kIGFuemb8ZWduLgorCisgIDMuIEQgRmF1ZHVuZyAgZSAgYnJpbmd0IGRpIGdhbiBuIEVuZCB2b24gYXlubiBXb3J0LgorCisgIDQuIER5ciBQZmVtZXJlciAgeSAgKLt5YW5rqykgYWFtdCD2YmJzLCAgcCAgKLtwdXSrKSBm/GVndCBk9nMgZWluLgorCisgIDUuIEF5biBncm9vc3NzICBSICBnZWV0IGV5biBkIEVyc/Z0enVuZ3NhcnR3ZWlzLCAgaGluc3QgZOTfIG15biA8RVNDPiBkcnVja3QuCisKKyAgNi4gRCBFaW5nYWFiIHZvbiAiOnNldCB4eHgiICBz9nR6dCBkZSBad2lzbCAieHh4Ii4gIEF5biDWdHRseWNoIFp3aXNsbiBzZWluZDoKKyAgICAgJ2ljJyAnaWdub3JlY2FzZScgICBHcm9v3y9rbGFpbiB3dXJzdCBiZWkgYXluZXIgU3VlY2gKKyAgICAgJ2lzJyAnaW5jc2VhcmNoJyAgICBaYWlnIGFhdSBzY2hvb24gYXluIFRhaWz8YmVyYWluc3RpbW11bmcKKyAgICAgJ2hscycgJ2hsc2VhcmNoJyAgICBI9mIgYWxsc2FuZCBw5HNzZXRuIEF1c2Ry/GNrIHb8cmhlcgorICAgICBEeXIgU2NoYWx0dGVybmFtIGthbiBpbiBkeXIgS3Vyei0gb2xkZXIgTGFuZ2Zvcm0gYW5n9mJuIHdlcmRuLgorCisgIDcuIFN09mxsIHluIGF5bmVyIFp3aXNsICJubyIgdm9yYW4sIGTk33N0IHlzIGFic2NoYWx0dHN0OiAgIDpzZXQgbm9pYworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDcuMTogQVlOIEhJTEZHV09SVCBBVUZSVUVGRkVOCisKKworICAgICAgICAgICAgKiogTnV0eiBk9nMgZWluYmF1dGUgSGlsZmdlYuR1LCBkZSAiQmV0cmlic2FubGFpdHR1bmciICoqCisKKyAgRXluIG4gV2ltbSAgaXN0IGF5biBhdXNm/GVybGljaGUgIkdlYnJhdWNoc2Fud2Vpc3VuZyIgIGVpbmJhdXQuICBG/HIgcyBFZXJzdGUKKyAgcHL2Ymx0IGFpbmZhY2ggYWlucyB2b24gZGVuZSBkcmV1IGF1czoKKyAgICAtIERydWNrIGQgPEhJTEY+LVRhc3RuLCB3ZW5uc3Qg9mJiZW5uIGFpbmUgaGFhc3QuCisgICAgLSBEcnVjayBkZSBUYXN0biA8RjE+LCBmYWxsc3N0IHlzIGhhYXN0LgorICAgIC0gWmlwZiAgIDpoZWxwIDxFSU4+CisKKyAgTGlzIGRpIGV5biBzIEhpbGZmZW5zdGVyIGVpbiwgZHlybWl0c3QgZHJhdWZraW1tc3QsIHdpZSBk9nMgbWl0IGR5ciBIaWxmIGdlZXQuCisgIERlbW1sdCAgPFNUUkc+dyB3ICAsIHVtIHZvbiBhaW5uIEZlbnN0ZXIgem8gbiBhbmRlcm4gem8gbiBTcHJpbmdlbi4KKyAgRGVtbWx0ICAgOnEgPEVJTj4gICwgdW0gcyBIaWxmZmVuc3RlciB6byBuIFNjaGxpZXNzbi4KKworICBEdSBrYW5zdCB6byBzbyBndWV0IHdpZSBhbGxzc2FuZCBheW4gSGlsZiBmaW5kZG4sICBpbmRlbSBk5N9zdCB5biBkeXIgRmF1ZHVuZworICA6aGVscCAgIGF5bm4gQXVlcndlcmQgbmFhY2hzdPZsbHN0IHVuZCBpc3RpZyA8RUlOPiBuaXQgdmVyZ2lzc3QuICBQcvZibHQgZPZzOgorCisgICAgIDpoZWxwIHcKKyAgICAgOmhlbHAgY19DVFJMLUQKKyAgICAgOmhlbHAgaW5zZXJ0LWluZGV4CisgICAgIDpoZWxwIHVzZXItbWFudWFsCit+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+CisgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDcuMjogRVJTVNZMTCBBWU4gR0lOLVNDSFJJUEYKKworCisgICAgICAgICAgICAqKiBNdXR6IPZubiBXaW1tIG1pdCBkZSBlaW5iYXV0biBGYWVoaWdrZWl0biBhdWYgKioKKworICBEeXIgV2ltbSBiZXNpdHp0IGF5biBX9nNuIFNjaORmdHVuZ2VuLCAgd28g/GJlciBuIFVyd2ltbSBhdXNoaW5nZWVuZCwgYWJlciBkZQorICBtZWVyZXJuIGR5cnZvbiAgc2VpbmQgaW4gZHlyIFZvcmdhYWIgYXVzZ3NjaGFsdHQuICBEeXJtaXRzdCBtZWVyZXIgYXVzIG4gV2ltbQorICBhdXNoZXJob2xzdCwgZXJzdPZsbHN0IGF5biAidmltcmMiLURhdXR0aWNodC4KKworICAxLiBM9mcgYXluICJ2aW1yYyItRGF1dHRpY2h0IGFuOyAgZPZzIGdlZXQgIGllIG5hYWNoIEJldHJpYnNnZWLkdSAgdmVyc2NoaWRuOgorICAgICA6ZSB+Ly52aW1yYyAgICAgZvxyIHMgQWluc2wKKyAgICAgOmUgJFZJTS9fdmltcmMgIGJlaSBuIEZlbnN0bAorCisgIDIuIElldHogbGlzIPZubiBJbmhhbHQgdm9uIGR5ciBCZWlzcGlsLSJ2aW1yYyItRGF1dHRpY2h0IGVpbjoKKyAgICAgOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKworICAzLiBTcGVpY2hlcnQgZGUgRGF1dHRpY2h0IG1pdDoKKyAgICAgOncKKworICA0LiBCZWkgbiBuYWVoc3RuIEdpbiB2b24gbiBXaW1tICBpc3QgYWZ0IGQgRvxlZ251c3N2/HJoZXJo9mJ1bmcgIHp1ZWdzY2hhbHR0LgorICAgICBEdSBrYW5zdCBkeXIgYWxsc3MgIGV5biBk9iBEYXV0dGljaHQgIGVpbmhpbnNjaHJlaWJuLCAgd2Fzc3QgYnN05G5kaWcgaGFibgorICAgICB3aWxsc3QuIE1lZXJlciBkeXJ6dWUgZXJmYXJzdCB1bnRlcjogICA6aGVscCB2aW1yYy1pbnRybworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNy4zOiBWRVJH1k5UWk4KKworCisgICAgICAgICAgICAgICAqKiBCZWZlbGhzemVpbG52ZXJn9m50enVuZyBtaXQgPFNUUkc+ZCB1bmQgPFRBQj4gKioKKworICAxLiBWZXJnd2nfIGRpLCBk5N8gZHlyIFdpbW0gbml0IGF1ZiBuIFVyd2ltbS0iR2xhaXMiIGZhcnQ6ICAgOnNldCBub2NwCisKKyAgMi4gU2NoYXVnIG5hYWNoLCB39mxjaGVybmUgRGF1dHRpY2h0biBk5N8gcyBpbiBuIFZlcnphaWNobmlzcyBnZWl0OiAgIDohbHMKKyAgICAgb2xkZXIgICA6IWRpcgorICAzLiBaaXBmIPZubiBBbmZhbmcgdm9uIGF5bmVyIEZhdWR1bmc6ICAgOmUKKworICA0LiBEcnVjayAgPFNUUkc+ZCAgLCAgdW5kIGR5ciBXaW1tIHphaWd0IGF5biBMaXN0biB2b24gRmF1ZHVuZ2VuLCAgd28gbWl0ICJlIgorICAgICBhbmdlZW5kLgorICA1LiBEcnVjayAgPFRBQj4gICwgIHVuZCBkeXIgV2ltbSB2ZXJ2b2xsc3T2bmRpZ3QgIPZubiBGYXVkdW5nc25hbSB6byAiOmVkaXQiLgorCisgIDYuIEb8ZWcgIGF5biBMYWVyemFpY2hlbiAgdW5kIPZubiBBbmZhbmcgIHZvbiBheW5lciAgYmVzdGVlaGV0biBEYXV0dGljaHQgYW46CisgICAgIDplZGl0IERBVQorCisgIDcuIERydWNrIDxUQUI+LiAgRHlyIFdpbW0gdmVyZ/ZudHp0IPZubiBOYW0sICBk9nMgaGFpc3N0LCAgd2VubiB5ciBhaW5kZXV0dGlnCisgICAgIGlzdC4KK0FubfZya3VuZzogIEQgVmVyZ/ZudHp1bmcgIGdlaXQgcyBm/HIgYXlubiBIYXVmZmVuIEZhdWR1bmdlbi4gIFZlcnN1ZWNoIGFpbmZhY2gKKyAgICAgICAgICAgPFNUUkc+ZCAgdW5kICA8VEFCPi4gIEJzdW5kZXJzIG78dHpsaWNoIGlzdCBk9nMgYmVpICAgOmhlbHAgIC4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gNworCisKKyAgMS4gWmlwZiAgOmhlbHAgICBvbGRlciBkcnVjayA8RjE+IG9sZGVyIDxISUxGPiwgIHVtIGF5biBIaWxmZmVuc3RlciB6IPZmZm5lbi4KKworICAyLiBaaXBmICA6aGVscCBGQVVEVU5HICAsIHVtIGF1ZiBheW4gSGlsZiBnYW4gYXlubiBCZWZlbGggeiBrZW1tZW4uCisKKyAgMy4gWmlwZiAgPFNUUkc+dyB3ICAsIHVtIHpvIG4gYW5kZXJuIEZlbnN0ZXIgeiBzcHJpbmdlbi4KKworICA0LiBaaXBmICA6cSAgLCB1bSBzIEhpbGZmZW5zdGVyIHogc2NobGllc3NuLgorCisgIDUuIEVyc3T2bGwgYXluIHZpbXJjLUdpbnNjaHJpcGYgIHp1ZXIgU2ljaGVydW5nIHZvbiBkZWluZSBN9nR6bmVpbnN09mxsdW5nZW4uCisKKyAgNi4gRHJ1Y2sgPFNUUkc+ZCwgYWZ0IGTk33N0IG5hYWNoICA6ICBtaXQgYXluZXIgRmF1ZHVuZyBhbmdmYW5ndCBoYWFzdCwgIGR5ci0KKyAgICAgbWl0c3QgbfxnbGljaGUgVmVyZ/ZudHp1bmdlbiBhbnphaWd0IGtyaWVnc3QuCisgICAgIERydWNrIDxUQUI+IGb8ciBhaW4gVmVydm9sbHN09m5kaWd1bmcgeWxsYWluLgorCisKKworCisKKworfn5+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+fgorCisgIET2cyB35HIgaWV0emV0IHMgRW5kIHZvbiBuIFdpbW1zY2hhaW5lci4gIEdhbmdlbiBpc3QgcyBkYWEgZHJ1bSwgIGF5bm4ga3VydHpuCisgIHVuZCBi/G5kaWduZW4g3GJlcmJsaWsg/GJlciBzIEJsYXQgIFdJTU0geiBsaWZlcm4sICBuZXR0eSB2aWwgZ251ZWcsICBk5N8gbXluCisgIGb8ciBzIEVlcnN0ZSAgd2lya2xpY2gg9mJicyAgZHlybWl0IGFuZmFuZ2VuIGthbi4gIER5cm1pdCBpc3QgcyBhYmVyIGF1ZiBrYWluCisgIFdlaXRuIG5vbiBuaXQgdGFhbjsgIGR5ciBXaW1tIGhhYXQgc2Nob29uIG5vbiB2aWwgbWVlcmVyICBhdWYgTGFnZXIuICBMaXMgYWxzCisgIE5hZWhzdHMgYXlubWFhbCBzIEJlbnV0emVyaGFuZGJ1ZWNoOiAgIDpoZWxwIHVzZXItbWFudWFsICAgLgorCisgIFpvIG4gV2VpdGVybPZzbiB1bmQgV2VpdGVybGVybmVuIHf2ciBk9nMgQnVlY2ggZGFhZGVyIHpvIG4gRW1wZmVsaGVuOgorICAgIFZpbSAtIFZpIEltcHJvdmVkIC0gdm9uIG4gT1VBTExJTkUgU3RldmUKKyAgICBWZXJsYWFnOiBOZXcgUmlkZXJzCisgIET2cyBpc3QgZPZzIGVlcnN0ZSBCdWVjaCwgd28gZ2FueiB5biBuIFdpbW0gZ3dpZG10IGlzdCwgbmV0dHkgZPZzIEdyZWNodGUgZvxyCisgIEFuZvZuZ2VyLiBFcyBoYWF0IGF5biBX9nNuIEJlaXNwaWxlciB1bmQgYWF1IEJpbGRlciBkcmlubi4KKyAgU2VlIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCisKKyAgRPZzIGZvbGdldGUgQnVlY2ggIGlzdCBzY2hvb24g9mx0ZXIgdW5kIG1lZXJlciAg/GJlciBuIFVyd2ltbSAgYWxzIHdpZSD8YmVyIG4KKyAgV2ltbSwgIGFiZXIgYWF1IHpvIG4gRW1wZmVsaGVuOiAgIFRleHRiZWFyYmVpdHVuZyBtaXQgZGVtIHZpLUVkaXRvciAtIHZvbiBkeXIKKyAgTEFNQiBMaW5kYSB1bmQgbiBST0JCSU5TIEFybm9sZCAgLSAgVmVybGFhZyBPJ1JlaWxseSAgLSBCdWVjaGxhaXR0emFsIChJU0JOKToKKyAgMzg5NzIxMTI2MgorICBJbiBk9m5uIEJ1ZWNoICBrYW4gbXluIGZhc3QgYWxsc3MgZmluZGRuLCAgd2FzIG15biBtaXQgbiBVcndpbW0gYW5nZWVuIG1lY2h0LgorICBEZSBz9nh0ZSBBdXNnYWFiIGVudGhhbHR0IGFhdSBzY2hvb24g9mJicyD8YmVyIG4gV2ltbS4KKyAgQWxzIGlldHp1bmRlIEJlenVnbmlzcyAgZvxyIGQgRmFzc3VuZyAgNi4yICB1bmQgYXluIHBmcmVuZ2UgRWluZvxlcnVuZyAgZGllbnQKKyAgZPZzIGZvbGdldGUgQnVlY2g6CisgICAgdmltIGdlLXBhY2t0ICB2b24gbiBXT0JTVCBSZWluaGFyZAorICAgIG1pdHAtVmVybGFhZywgQnVlY2hsYWl0dHphbCAzLTgyNjYtMTQyNS05CisgIFRyb3R6IGR5ciByZWNodCBwZnJlbmdlbiBEYXJzdPZsbHVuZyAgaXN0IHMgZHVyY2ggc2VpbmUgdmlsbiBu/HR6bGljaG5lbiBCZWktCisgIHNwaWxlciBhYXUgZvxyIEVpbnN0ZWlnZXIgZ3JhZCBncmVjaHQuICBQcm9iaGFldXBzdGVyIHVuZCBkZSBCZWlzcGlsc2NocmlwZmVyCisgIHNlaW5kIHplc2lnIHpvIG4gS3JpZWduOyBzZWUgaHR0cDovL2ljY2YtaG9sbGFuZC5vcmcvY2xpY2s1Lmh0bWwKKworICBWZXJmYXNzdCBoYWJuZCBk9m5uIFNjaGFpbmVyIGR5ciBQSUVSQ0UgTWljaGFlbCBDLiB1bmQgV0FSRSBSb2JlcnQgSy4gdm9uIGR5cgorICBLb2xyYWFkZXIgS25hcHBuc2NodWVsIChDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMpLiBFciBiZXJ1ZXQgYXVmIEVudHf8cmZmLCB3bworICBkeXIgU01JVEggQ2hhcmxlcyAgdm9uIGR5ciAgS29scmFhZGVyIEFsbHNjaHVlbCAgKENvbG9yYWRvIFN0YXRlICBVbml2ZXJzaXR5KQorICB6dWVyIFZlcmb8ZWd1bmcgZ3N09mxsdCBoYWF0LiBHdW5kcG9zdDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorICBG/HIgbiBXaW1tIGhhYXQgbiBkeXIgTU9PTEVOQUFSIEJyYW0gYmFyZWNodHQuCisgIERlIGJhaXJpc2NoZSDcYmVyc/Z0enVuZyBzdGFtbXQgdm9uIG4gSEVMTCBTZXBwIDIwMDkuIFNlaW4gR3VuZHBvc3RicuRjaHQgaXN0CisgIHN0dXJtaWJ1bmRAdC1vbmxpbmUuZGUgCisKK35+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+fn4KKyAgCisKKyAKKworCisKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuYmoudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLmJqLnV0Zi04Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwYzNhZGUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmJqLnV0Zi04CkBAIC0wLDAgKzEsOTg3IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9ICAgIEcgbyB0IGkgayBhIG0gICBpIG4gICBuICAgVyBJIE0gTSAtIFMgYyBoIGEgaSBuIGUgciAgIC0gICBGYXNzdW5nIDEuN0QgICA9Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgIER5ciBXaW1tIGlzdCBheW4gZ3JvIG3DpGNodGlncyBCbGF0LCBkw7ZzIHdhcyBtaXQgYXlubiBXw7ZzbiBCZWZlbGggYXVmd2FydHQ7IHoKKyAgIHZpbCwgIGTDpMOfIG15biBzIGFsbHNhbmQgIGluIGF5bm4gU2NoYWluZXIgIHdpZSBkw7ZubiBkYWFkZXIgIHVudGVyYnLDpG5nLiAgRGVyCisgICBTY2hhaW5lciBpc3QgeXNvIGF1ZmJhdXQsICBkw6TDnyB5ciBoYWx0IG5ldHR5IGRpZSBCZWZlbGggYWxsc2FuZCBicmluZ3QsIHdvc3QKKyAgIGJyYXVjaHN0LCBkw6TDn3N0IG1pdCBpZW0gZsO8ciBzIEVlcnN0ZSB3aXJrbGljaCDDtmJicyBhbmZhbmdlbiBrYW5zdC4KKyAgIER1cmNoaGluYXJlY2h0biBrYW5zdCBkaSwgd2VubnN0IHdpbGxzdCwgaW4gYXluZXIgaGFsYmV0biBTdHVuZDsgZMO2cyBoYWlzc3QsCisgICB3ZW5uc3QgZGkgbml0IGdyb2/DnyBtaXQgbiBQcsO2YmxuIHVuZCBUw7xmdGxuIGF1ZmhhbHRzdC4KKworICAgT0JBQ0hUOgorICAgRGllIEZhdWR1bmdlbiwgIHdvc3QgZGFhZGVyIGZpbmRkc3QsICBnYWFuZCBpc3RpZyAgcyBHd29ydCDDtm5kZXJuLiAgRMO2c3N3w7ZnbgorICAgbWFjaHN0IGV5biBuIELDtnN0biBnbGVpICBheW4gQWFtdW0gdm9uIGRlcmVyIERhdXR0aWNodCBkYWFkZXIuICBIYWFzdCBhbHNuYW4KKyAgIGTDtnMgR3dvcnQgZGFhZGVyICBtaXQgbiBCZWZlbGggInZpbXR1dG9yIGJqIiAgYXVzaGVybGFhc3NuLCAgaXN0IHMgZWUgc2Nob29uCisgICBheW4gQWFtdW0uCisgICBNaXIga2FuIHMgIG5pdCBvZnQgZ251ZWcgIHNhZ24sICBkw6TDnyAgZGVyIFNjaGFpbmVyIGRhYWRlciAgaXN0aWcgIGdhbiBuIMOcZWJuCisgICBnaG9lcnQuICBBbHNvIG11ZXNzdCBzY2hvb24gYWF1IGRpZSBCZWZlbGggYXVzZsO8ZXJuLCAgd2VubnN0IHlzIGdzY2hlaWQgbGVyLQorICAgbmVuIHdpbGxzdC4gTWl0IG4gTMO2c24geWxsYWluIGlzdCBzICtuaXQgdGFhbiEKKworICAgSWV0eiBzY2hhdXN0IGdyYWQgbm9uLCBkw6TDnyBkZWluIEbDtnN0c3TDtmxsdGFzdG4gbml0IGRydWNrdCBpc3Q7IHVuZCBhZnQgZ2Vlc3QKKyAgIGdsZWkgYXlubWFhbCBtaXQgZHlyIGotVGFzdG4gYWJ3w6RydHMgKHlzbyBsYWF1ZmZ0IGTDtnMgbsO2bWxpY2gpLCAgaGluc3QgZMOkw59zdAorICAgZGUgZ2FudHplIExldHpuIDEuMSBhdWYgbiBCaWxkc2NoaXJtIGhhYXN0Lgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDEuMTogTUlUIE4gTcOWUktMIFVNQVlOQU5ERkFSTgorCisqKiAgRHlybWl0c3QgbWl0IG4gTcO2cmtsIHVtYXluYW5ka2ltbXN0LCBkcnVjayBoLCBqLCBrIHVuZCBsIHdpZSB1bnQgemFpZ3QuICAqKgorICAgICAgICAgICAgXiAgICAgICAgICAgIEF5biDDlnNsc2JydWdnOgorICAgICAgICAgICAgayAgICAgICAgICAgIERlIFRhc3RuICBoICBpc3Qgd2luc3RlciB1bmQgK2dlZXQgYWF1IGdhbiB3aW5zdGVyLgorICAgPCBoICAgICAgICAgICAgIGwgPiAgIFMgIGwgIGxlaXQgemVzbSB1bmQgcmljaHR0IHNpIGdhbiB6ZXNtLgorICAgICAgICAgICAgaiAgICAgICAgICAgIFMgIGogIGthbiBteW4gd2llIGF5bm4gUGZlaWwgZ2FuIHVudCBzZWdobi4KKyAgICAgICAgICAgIHYgICAgICAgICAgICBNaXQgbiAgayAga2ltbXN0IGdhbiBuIEtPUEYuICAgICAgICAgICAgCisgIDEuIElldHogcnVlZGVydHN0IGFpbmZhY2ggbWl0IG4gTcO2cmtsIGF1ZiBuIEJpbGRzY2hpcm0gdW1heW5hbmQsICBoaW5zdCBkw6TDn3N0CisgICAgIGRpIHNpY2hlciBmw7xlbHN0LgorICAyLiBIYWx0ICBkIEFiaGluLVRhc3RuIChqKSAgZHJ1Y2t0OyAgYWZ0IHJ1bXBsdCBzICBhaW5mYWNoIHdlaXRlci4gIE5ldHR5IHlzbworICAgICBraW1tc3QgZ2FuIGR5ciBuYWVoc3RuIExldHpuLgorICAgICAKKyAgMy4gV2llIGdzYWl0LCBpZXR6IGJld8O2Z3N0IGRpIGFsc28gbWl0IGRlcmVyIFRhc3RuIGdhbiBkeXIgTGV0em4gMS4yLgorCitOb24gw7ZiYnM6IEFsbHdlaWwsIHdlbm4gZHlyIG5pZW1lciBnYW56IHdvbCBpc3QsIHdhc3N0IMO2YmJlbm4gZHJ1Y2t0IGhhYXN0LCBhZnQKKyAgICAgICAgICB6aXBmc3QgIDxFU0M+OyAgbmFhY2hlcmQgYmlzdCB3aWRlciBnYW56IGd3b24gaW4gZHlyIEJlZmVsaHMtQXJ0d2Vpcy4KKworICAgICAgCisgICAgICAgICAgTsO2Ym5iZWkgZ3NhaXQga2ltbXN0IGd3b25lcndlaWwgYWF1IG1pdCBkZSBQZmVpbHRhc3RuZW4gd2VpdGVyLiAgQWJlcgorICAgICAgICAgIGhqa2wgIHNlaW5kIHogaGFpc3NuIHMgV2ltbS1VcmdzdGFpbjsgIHVuZCBkZSAiSMO2cnRuIiBzZWluZCBnYW56IGR5ci0KKyAgICAgICAgICBmw7xyLCBkw6TDnyBteW4gYmVpICtkZW5lIGJsZWlidC4gUHLDtmJsdCBzIGFpbmZhY2ggYXVzIQorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gMS4yOiDDlk5OIFdJTU0gQVVTU0NIQUxUVE4KKworCisgIEFMU08sIEVFIFdFTk5TVCDDlkJCUyBWT04gREFBIFVOVCBBVVNGw5xFUlNULCAgTElTIExJRUJFUiBaRUVSU1QgREUgR0FOVFpFIExFVC0KKyAgWk4hCisKKyAgMS4gRHJ1Y2sgZCA8RVNDPi1UYXN0biwgZHlybWl0c3QgYWF1IGd3acOfIGluIGR5ciBCZWZlbGhzLUFydHdlaXMgYmlzdC4KKyAgCisgIDIuIERlbW1sdCAgOnEhIDxFSU4+LgorICAgICBEYWEgZHlybWl0ICBiZW5kZHN0IHlzIEJsYXQgIHVuZCB2ZXJ3aXJmZnN0ICBhbGxzcywgIHdhc3N0IMO2YmJlbm4gIGfDtm5kZXJ0CisgICAgIGhhYXN0LgorCisgIDMuIEJhbHN0IMO2bm4gRWluZ2liIHNlZ2hzdCwgZ2liIGTDtiBGYXVkdW5nIGVpbiwgIHdvIGRpIHpvIGTDtm5uIFNjaGFpbmVyIGJydW4tCisgICAgIGdlbiBoYWF0LCBhbHNvICAgIHZpbXR1dG9yIGJqIDxFSU4+LgorCisgIDQuIEFsc28sIHdlbm4gaWV0eiBhbGxzc2Ugc2l0enQsIG5hYWNoZXJkIGbDvGVyc3QgZCBTY2hyaXR0IDEgaGluc3QgMyBhdXMsIG1pdAorICAgICB3YXNzdCB5cyBCbGF0IHZlcmxhYXNzdCB1bmQgYWZ0IHdpZGVyIGVpbmhpbmtpbW1zdC4KKworQW5tw7Zya3VuZzogTWl0ICA6cSEgPEVJTj4gdmVyd2lyZmZzdCBhbGxzcywgd2Fzc3QgZ8O2bmRlcnQgb2xkZXIgZW50aGVyIGdzY2hyaWJuCisgICAgICAgICAgIGhhYXN0LiBJbiBheW5uIMOWdHRseWNoIExldHpuZW4gbGVybnN0IGFjaHQsIHdpZXN0IGTDtnMgYWxsc3MgaW4gYXluZXIKKyAgICAgICAgICAgRGF1dHRpY2h0IHNwZWljaGVydHN0LgorCit+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+CisgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDEuMzogR1dPUlQgQkFSRUNIVE4gLSBMw5ZTQ0hOIAorCisgICAgICAgICAKKyAgICAgICAgICoqIERydWNrICB4ICAsIGR5cm1pdHN0IGTDtnMgWmFpY2hlbiB1bnRlciBuIE3DtnJrbCBsw7ZzY2hzdC4gKioKKworICAxLiBCZXfDtmcgZGkgbWl0IG4gTcO2cmtsIGF1ZiBkZSBtaXQgIC0tLT4gYW5nbcO2cmt0ZSBaZWlsIHVudC4KKworICAyLiBabyBuIEZhZWxlciBWZXJiw7Zzc2VybiAgZmFyc3QgbWl0IG4gTcO2cmtsICBuZXR0eSAgYXVmIGTDtnMgWmFpY2hlbiwgIGTDtnMgd28KKyAgICAgZ2zDtnNjaHQgZ2hvZXJ0LgorCisgIDMuIERydWNrIGRlIFRhc3RuICB4ICAsIGTDpMOfc3QgZMO2cyDDvGJlcmZsw7xzc2lnZSBaYWljaGVuIGzDtnNjaHN0LgorCisgIDQuIElldHogdHVlc3Qgc28gbGFuZyB3ZWl0ZXIgbWl0IDIgaGluc3QgNCwgaGluc3QgZMOkw58gZHlyIFNheiBzdGltbXQuCisKKy0tLT4gRGUgS2t1dWUgc3ByYW5nZyDDvGJiZXIgbm4gTWFhbmFkLgorCisgIDUuIFdlbm4gaWV0eiBkZSBaZWlsIHZlcmLDtnNzZXJ0IGlzdCwgZ2Vlc3QgZ2FuIGR5ciBMZXR6biAxLjQuIHdlaXRlci4KKworVW5kIGdhbnogd2ljaHRpZzogIER5cndlaWxzdCBkw7ZubiBTY2hhaW5lciBkdXJjaGFyZWNodHN0LCAgdmVyc3VlY2ggbml0IMO2YmJlbm4sCisgICAgICAgICAgICAgICAgICAgYWxsc3MgYXVzd2VuZGlnIHogbGVybmVuOyAgbsOkbiwgbGVybiBhaW5mYWNoIG1pdCBuIEFud2VuZGRuIQorCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZXR6biAxLjQ6IEdXT1JUIEJBUkVDSFROIC0gRUlORsOcRUdOCisKKworICAgICAgICAgICAgICAgICAgKiogIERydWNrICBpICAsIGR5cm1pdHN0IMO2YmJzIGVpbmbDvGVnc3QuICoqCisKKyAgMS4gQmV3w7ZnIMO2bm4gTcO2cmtsIHpvIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCwgd28gbWl0IC0tLT4gYW5nZWV0LgorCisgIDIuIER5cm1pdHN0ICBkZSBlZXJzdGUgWmVpbCAgd2llIGRlIHp3YWl0dGUgbWFjaHN0LCAgYmV3w7ZnIMO2bm4gTcO2cmtsICBhdWYgZMO2cworICAgICBlZXJzdGUgWmFpY2hlbiBOQUFDSCBkZXJlciBTdMO2bGwsIGRhYSB3byBzIEd3b3J0IGVpbmdmw7xlZ3Qgd2VyZG4gc29sbHQuCisKKyAgMy4gRHJ1Y2sgIGkgIHVuZCBnaWIgZMO2cyBlaW4sIHdhcyBhYmdlZXQuCisKKyAgNC4gV2VubiBpZXdlaWxzIGF5biBGYWVsZXIgdmVyd2VpdGVydCBpc3QsIGFmdCBkcnVjayA8RVNDPjsgdW5kIGR5cm1pdCBraW1tc3QKKyAgICAgZ2FuIGR5ciBCZWZlbGhzYXJ0d2VpcyB6cnVnZy4KKyAgICAgU28sIHVuZCBpZXR6IHR1ZXN0IGFpbmZhY2ggeXNvIHdlaXRlciwgaGluc3QgZMOkw58gZHlyIFNheiBzdGltbXQuCisKKy0tLT4gRGFhZGVyIGd0IGRkIMO2YmJzIGIuCistLS0+IERhYWRlciBnZWV0IGRpZW5kIMO2YmJzIGFiLgorCisgIDUuIEJhbHN0IG1haW5zdCwgIGTDpMOfc3QgeXMgR3dvcnQtRWluZsO8ZWduIGthbnN0LCBhZnQgZ2Vlc3QgZ2FuIGR5ciBMZXR6biAxLjUuCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDEuNTogR1dPUlQgQkFSRUNIVE4gLSBBTkbDnEVHTgorCisKKyAgICAgICAgICAgICAgICAgICAgICAqKiBEcnVjayAgQSAgZ2FuIG4gR3dvcnQgQW5mw7xlZ24uICoqCisKKyAgMS4gR2VlIG1pdCBuIE3DtnJrbCBnYW4gZHlyIGVlcnN0biB1bnRpZ25lbiBaZWlsLCB3byBheW4gLS0tPiBkeXJ2b3IgaGFhdC4KKyAgICAgRGFhIGlzdCBzIGdsZWljaCwgd28gZ25hdW4gZHlyIE3DtnJrbCBpbiBkZXJlciBaZWlsIHN0ZWV0LiAgCisKKyAgMi4gRGVtbWx0ICBBICB1bmQgZ2liIGRlIGVudHNwcsO2Y2hldG4gRXJnw7ZudHp1bmdlbiBlaW4uCisKKyAgMy4gV2VubnN0ICBtaXQgbiBBbmbDvGVnbiBmw7ZydGlnIGJpc3QsICBhZnQgZHJ1Y2tzdCA8RVNDPiwgIGTDpMOfc3Qgd2lkZXIgZXluIGRlCisgICAgIEJlZmVsaHNhcnR3ZWlzIHpydWdna2ltbXN0LgorCisgIDQuIFNvLCAgdW5kIGlldHogZ2Vlc3QgYWZ0IG5vbiBnYW4gZHlyIHp3YWl0dG4gIG1pdCAtLS0+IGFuZ23DtnJrdG4gWmVpbDsgIHVuZAorICAgICBkYWFkbCBtYWNoc3QgeXMgbmV0dHkgeXNvLgorCistLS0+IEluIGRlcmVyIFplaWwgZ2VlICAKKyAgICAgSW4gZGVyZXIgWmVpbCBnZWV0IGF5biBXZWVuZyBheW4gR3dvcnQgYWIuCistLS0+IEFhdSBkYWFkZXIgc3RlZQorICAgICBBYXUgZGFhZGVyIHN0ZWV0IMO2YmJzIFVudm9sbHN0w7ZuZGlncy4gCisKKyAgNS4gV2VubnN0IHMgQW5mw7xlZ24gdm9uIEd3b3J0IGRyYXVmIGhhYXN0LCBuYWFjaGVyZCBnZWUgZ2FuIGR5ciBMZXR6biAxLjYuICAKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gMS42OiBBWU4gREFVVFRJQ0hUIEJBUkVDSFROCisKKworICAgICAqKiBNaXQgIDp3cSAgc3BlaWNoZXJ0c3QgYXluIERhdXR0aWNodCB1bmQgdmVybGFhc3N0IMO2bm4gV2ltbSBnYW56LiAqKgorCisgICEhIE9CQUNIVDogIEVlIHdlbm5zdCBtaXQgZMO2bm4gYWxsbiBkYWEgdW50IHdlaXRlcnR1ZXN0LCBsaXMgemVlcnN0IGRlIGdhbnR6ZQorICAgICBMZXR6biBkdXJjaCEhCisKKyAgMS4gVmVybGFhw58gYWxzbyBzIEJsYXQsIHdpZSBzIGluIGR5ciBMZXR6biAxLjIuIGhhaXNzdCwgbWl0ICA6cSEgICEKKworICAyLiBHaWIgZMO2IEZhdWR1bmcgZXluIG4gRWluZ2liIGVpbjogIHZpbSBTY2hhaW5lciA8RUlOPiAuICd2aW0nIHJ1ZWZmdCBzIEJsYXQKKyAgICAgYXVmLCAgdW5kICdTY2hhaW5lcicgIGhhaXNzdCBkZSBEYXV0dGljaHQsICB3b3N0IGJhcmVjaHRuICB3aWxsc3QuICBEeXJtaXQKKyAgICAgaGFhc3QgYWxzbyBheW4gRGF1dHRpY2h0LCBkw7Ygd29zdCBiYXJlY2h0biBrYW5zdC4KKworICAzLiBJZXR6ICBmw7xlZ3N0IMO2YmJzIGVpbiBvbGRlciBsw7ZzY2hzdCDDtmJicywgIHdpZXN0IHlzIGluIGRlIHZvcmlnbmVuIExldHpuZW4KKyAgICAgZ2xlcm50IGhhYXN0LgorCisgIDQuIFNwZWljaGVydCBkZSBnw7ZuZGVydGUgRGF1dHRpY2h0IHVuZCB2ZXJsYWHDnyDDtm5uIFdpbW0gbWl0ICA6d3EgIDxFSU4+ICAuCisKKyAgNS4gU2NobWVpw58gw7ZubiBXaW1tc2NoYWluZXIgbmV1IGFuIHVuZCBnZWUgZ2FuIGR5ciBmb2xnZXRuIFphbW1lbmZhc3N1bmcuCisKKyAgNi4gQWZ0IGTDpMOfc3QgIGRlIG9iaWduZW4gU2Nocml0dCBnbMO2c24gdW5kIGvDpHBwdCBoYWFzdCwgIGthbnN0IHlzIGR1cmNoZsO8ZXJuLgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIFpBTU1FTkZBU1NVTkcgVk9OIERZUiBMRVRaTiAxCisKKworICAxLiBEeXIgTcO2cmtsIHdlcmQgbWl0IGRlIFRhc3RuZW4gaGprbCBvbGRlciBhYXUgbWl0IGRlIFBmZWlsdGFzdG5lbiBnc3RldWVydC4KKyAgICAgICAgICAgICAgaCAod2luc3QpICAgICBqIChhYikgICAgICAgIGsgKGF1ZikgICAgICAgbCAoemVzKQorCisgIDIuIFVtIMO2bm4gV2ltbSB1bWJiIG4gRWluZ2liIGF1cyB6IGdpbm5lbiwgZGVtbWx0OiB2aW0gREFVVFRJQ0hUIDxFSU4+IC4KKworICAzLiBXaWxsc3Qgw7ZubiBXaW1tIHZlcmxhYXNzbiB1bmQgYWF1IGFsbHNzIHZlcndlcmZmZW4sIGFmdCBnaWJzdCBlaW46CisgICAgICAgICAgICAgICAgPEVTQz4gIDpxISAgPEVJTj4gLgorICAgICBHYW4gbiBWZXJsYWFzc24gdW5kIFNwZWljaGVybiBhYmVyIHppcGZzdCA8RVNDPiAgOndxICA8RUlOPi4KKworICA0LiBXaWxsc3QgZMO2cyBaYWljaGVuIGzDtnNjaG4sIGRhYSB3byBkeXIgTcO2cmtsIGRyYXVmIGlzdCwgZGVtbWx0c3QgIHggIC4KKworICA1LiBXaWxsc3Qgw7ZiYnMgdm9yIG4gTcO2cmtsIGVpbmfDtmJuLCB6aXBmc3QgIGkgIHVuZCBkcmFmdGVyICA8RVNDPiAgLgorICAgICBNZWNoc3QgeXMgYWJlciBleW4gcyBaZWlsbmVuZCBhbmhpbmjDtm5nZW4sIGJlbnV0enQgeXMgICBBICAuCisgICAgIFVuZCBhaW5mYWNoIG5hYWNoIG4gTcO2cmtsIGbDvGVnc3QgeXMgbWl0ICBhICBlaW4gIC4KKworQW5tw7Zya3VuZzogIERydWNrc3QgPEVTQz4sIGtpbW1zdCBleW4gZGUgQmVmZWxoc2FydHdlaXMgenJ1Z2cgb2xkZXIgYnJpY2hzdCBheW4KKyAgICAgICAgICAgIEZhdWR1bmcgYWIsIGTDtiB3byBkeXIgc2NoaWVmZ2FuZ2VuIGlzdC4KKworICAgICBJZXR6IHR1ZSBtaXQgZHlyIExldHpuIDIgd2VpdGVyLgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gMi4xLjogTMOWU0hGQVVEVU5HRU4KKworCisgICAgICAgICAgICAgICAgICoqIERlbW1sdCAgZHcgICwgZHlybWl0c3QgYXluIFdvcnQgbMO2c2Noc3QgKioKKworICAxLiBEcnVjayAgPEVTQz4sIGR5cm1pdCBzIGFhdSBnd2nDnyBpc3QsIGTDpMOfc3QgaW4gZHlyIEJlZmVsaHNhcnR3ZWlzIGJpc3QuCisKKyAgMi4gQmV3w7ZnIMO2bm4gTcO2cmtsIHpvIGR5ciBtaXQgLS0tPiBhbmdtw7Zya3RuIFplaWwgdW50LgorCisgIDMuIFVuZCBkYWEgZ2Vlc3QgaWV0eiBhdWYgbiBBbmZhbmcgdm9uIGF5bm4gV29ydCwgZMO2cyB3byBnbMO2c2NodCBnaG9lcnQuCisKKyAgNC4gWmlwZiAgZHcgICwgZMOkw59zdCBkw7ZzIGdhbnR6ZSBXb3J0IGzDtnNjaHN0LgorCisgIE7DtmJuYmVpOiAgRHlyIEJ1ZWNoc3RhYm4gIGQgIGVyc2NoZWludCBhdWYgZHlyIGzDtnNzdG4gWmVpbCAgdm9uIG4gQmlsZHNjaGlybSwKKyAgICAgICAgICAgIHNvYmFsZHN0IG4gZWluZ2lic3QuIER5ciBXaW1tIHdhcnR0IGlldHogZHJhdWYsIGTDpMOfIMO2YmJzIGtpbW10LCBhbC0KKyAgICAgICAgICAgIHNvICBkYWFkZXIgYXluICB3ICAuICBTZWdoc3QgIGZyZWlsaWNoICDDtmJicyBBbmRlcnRzICB3aWUgYXluICBkICAsCisgICAgICAgICAgICBuYWFjaGVyZCBoYWFzdCAgw7ZiYnMgRmFsc2NocyAgZGVtbWx0LiAgRHJ1Y2sgYWZ0ICA8RVNDPiAgdW5kIHByw7ZibHQKKyAgICAgICAgICAgIHMgbm9uIGF5bm1hYWwuCistLS0+IEF5biDDlnR0bHljaCBXw7ZydGVyIGx1c3RpZyBnaG9lcm5kIG5pdCBGaXNwZXIgZXluIGTDtm5uIFNheiBlaW5oaW4uCisKKyAgNS4gw4RmZXJ0ICBkIFNjaHJpdHQgIDMgdW5kIDQsICBoaW5zdCBkw6TDnyAgZHlyIFNheiBww6Rzc3QsICB1bmQgZ2VlIGFmdCBnYW4gZHlyCisgICAgIExldHpuIDIuMi4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZXR6biAyLjIuOiBOT04gTUVFUkVSIEzDllNIRkFVRFVOR0VOCisKKworICAgICAgICAgICAgKiogR2liICBkJCAgZWluLCBkw6TDn3N0IGhpbnN0IGV5biBzIFplaWxuZW5kIGzDtnNjaHN0LiAqKgorCisgIDEuIERydWNrIDxFU0M+ICwgZHlybWl0c3QgYWF1IGd3acOfIGluIGR5ciBCZWZlbGhzYXJ0d2VpcyBiaXN0LgorCisgIDIuIEJld8O2ZyDDtm5uIE3DtnJrbCBoaW5zdCBleW4gZGUgbWl0IC0tLT4gYW5nbcO2cmt0ZSBaZWlsIHVudG4uCisKKyAgMy4gR2VlIG1pdCBuIE3DtnJrbCBhdWYgcyBFbmQgdm9uIGR5ciBmYWVsZXJmcmVpZW4gWmVpbCwgTkFBQ0ggbiBlZXJzdG4gIC4gICAuCisKKyAgNC4gWmlwZiAgZCQgICwgZMOkw59zdCBoaW5zdCBleW4gcyBFbmQgdm9uIGR5ciBaZWlsIGzDtnNjaHN0LgorICAKKy0tLT4gw5ZiYmVyIGhhYXQgcyBFbmQgdm9uIGR5ciBaZWlsIGRvcGx0IGVpbmfDtmJuLiBkb3BsdCBlaW5nw7Zibi4KKworCisgIDUuIEdlZSB3ZWl0ZXIgIGdhbiBkeXIgTGV0em4gMi4zLCAgZHlybWl0c3QgdmVyc3RlZXN0LCAgd2FzIGRhYWRlciBhYmxhYXVmZnQuCisKKworCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gMi4zOiBQRkVNRVJFUiBVTkQgV09MRU5ERVIKKworCisgIFZpbCBGYXVkdW5nZW4sICAgd28gcyBHd29ydCDDtm5kZXJuZCwgc8O2dHpuZCBzaSBhdXMgYXlubiBQZmVtZXJlciB1bmQgYXlubiBXby0KKyAgbGVuZCB6YW1tLiBCYWwgaSBhbHNvIMO2YmJzIGzDtnNjaG4gd2lsbCwgc2NocmVpYiBpIGFpbnN0aW5nICBkICB1bmQgYWZ0IHMgIldvLQorICBsZW5kIiwgZMO2cyBoYWlzc3QgYWxzbywgIndvbGVuZCIsICJ3b2hpbiIgZMOkw58gaSB3aWxsIC0gb2xkZXIgd2FzIGkgaGFsdCBnbmF1bgorICBsw7ZzY2huIHdpbGwuCisKKworCisKKworCisgIERhYWRlciBhbHNvLCB3YXMgaSB3aWUgbMO2c2NobiBrYW46CisgICAgdyAtIGhpbnN0IGV5biBuIEFuZmFuZyB2b24gbiBuYWVoc3RuIFdvcnQgQUFORSBkw7ZubiBzZWluIGVlcnN0cyBaYWljaGVuLgorICAgIGUgLSBnYW4gbiBFbmQgdm9uIG4gaWV0enVuZG4gV29ydCBNSVQgZMO2bm4gc2Vpbm4gbMO2c3N0biBaYWljaGVuLgorICAgICQgLSB6byBuIEVuZCB2b24gZHlyIFplaWwgTUlUIGRlcmVyIGlybiBsw7Zzc3RuIFphaWNoZW4uCisKKyAgQWxzbyBsw7ZzY2h0IGRlIFRhc3RuZm9sZyAgZGUgIHVtYmIgbiBNw7Zya2wgaGluc3QgZXluIHMgV29ydGVuZC4KK0FubcO2cmt1bmc6ICAgR2liIGkgZ3JhZCAgZMO2cyB6d2FpdHRlIFphaWNoZW4gIHlsbGFpbiBlaW4sICBydWNrdCBoYWx0IGR5ciBNw7Zya2wKKyAgICAgICAgICAgICBlbnRzcHLDtmNoZXQgd2VpdGVyLgorCit+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+CisgICAgICAgICAgICAgICAgICAgTGV0em4gMi40OiBNSVQgQVlOTiBaw5ZMRVIgRCBXT0xFTkRFUiDDhEZFUk4KKworCisgICAgICAqKiBHaWIgaSBheW4gWmFsIHZvciBheW5uIFdvbGVuZCBlaW4sIHdlcmQgZMO2cyBTZWwgaGFsdCB3aWRlcmhvbHQuICoqCisKKyAgMS4gQmV3w7ZnIMO2bm4gTcO2cmtsIGdhbiBuIEFuZmFuZyB2b24gZHlyIFplaWwgbWl0IC0tLT4gZHlydm9yIHVudC4KKworICAyLiBaaXBmICAydyAgLCBkw6TDn3N0IG1pdCBuIE3DtnJrbCB6d2FpIFfDtnJ0ZXIgd2VpdGVyZ2Vlc3QuCisKKyAgMy4gWmlwZiAgM2UgICwgZMOkw59zdCBtaXQgbiBNw7Zya2wgYXVmIHMgRW5kIHZvbiBuIGRyaXR0biBXb3J0IGtpbW1zdC4KKworICA0LiBaaXBmICAwICAoYXlubiBOdWxsZXIpLCBkw6TDn3N0IGV5biBuIEFuZmFuZyB2b24gZHlyIFplaWwgaGlua2ltbXN0LgorCisgIDUuIFdpZGVyaG9sIGQgU2Nocml0dCAyIHVuZCAzIG1pdCB2ZXJzY2hhaWRuZSBaw7ZsZXIuCisKKyAgLS0tPiBEw7ZzIGlzdCBpZXR6IGdyYWQgYXluIFplaWwgem8gbiBkcmlubiBVbWF5bmFuZGVycnVlZGVybi4KKworICA2LiBHZWUgd2VpdGVyIGdhbiBkeXIgTGV0em4gMi41LgorCisKKworCit+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+CisgICAgICAgICAgICAgICAgIExldHpuIDIuNTogRFVSQ0ggQVlOTiBaw5ZMRVIgR0xFSSBNRUVSRVIgTMOWU0NITgorCisKKyAgICAgICAgICAgICAgKiogQXluIFphbCB2b3IgYXlubiBQZmVtZXJlciDDpGZlcnQgZMO2bm4gdW0gc2VsbiBXZXJkLiAqKgorCisgIEFsc28sIGkgbWVjaHQgbMO2c2NobiwgIHVuZCB6d2FhciDDtmJicyBCZXN0aW1tdHMsICB1bmQgZMO2cyBzbyB1bmQgc28gb2Z0OiAgRGFhCisgIGR5cnp1ZSBiZW51dHogaSBheW5uIFrDtmxlcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgIFrDtmxlciAgV29sZW5kIChhbHNvIMO2bm4gQmV3w7ZndW5nc3NjaHJpdCkKKworICAxLiBCZXfDtmcgw7ZubiBNw7Zya2wgIGdhbiBuIGVlcnN0biBXb3J0IGluIEdST09TU0JVRUNIU1RBQk4gaW4gZHlyIG1pdCAtLS0+IGFuLQorICAgICBnbcO2cmt0biBaZWlsLgorCisgIDIuIERlbW1sdCAgZDJ3ICAsIGR5cm1pdHN0IGRlIGdhbnogZ3Jvb8OfZ3NjaHJpYm5lbiBXw7ZydGVyIGzDtnNjaHN0LgorCisgIDMuIMOEZmVydCAgZCBTY2hyaXR0IDEgdW5kIDIgIG1pdCBkw7ZubiBlbnRzcHLDtmNoZXRuIFrDtmxlciwgIGR5cm1pdHN0IGRlIGRyYXVmLQorICAgICBmb2xnZXRuICBnYW56IGdyb8OfZ3NjaHJpYm5lbiBXw7ZydGVyICBtaXQgYXluZXIgYWluemlnbmVuIEZhdWR1bmcgIGzDtnNjaHN0OgorCisKKy0tLT4gIETDtiBBQkMgREUgWmVpbCBGR0hJIEpLIExNTiBPUCBtaXQgV8O2cnRlciBpc3QgUSBSUyBUVVYgaWV0eiBiZXJpY2h0aWd0LgorCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAyLjY6IEFSRUNIVE4gQVVGIFpFSUxOCisKKworICAgICAgICAgICAgICAgKiogWmlwZiAgZGQgICwgdW0gYXluIGdhbnR6ZSBaZWlsIHogbMO2c2Nobi4gKioKKworICBXZWlsIHMgZ3JvIG9mdCB2w7xya2ltbXQsICBkw6TDnyBteW4gZ2FudHplIFplaWxuIGzDtnNjaHQsICBrYWFtZW5kIHNjaG9vbiBkIEVudC0KKyAgd2lja2xlciB2b24gbiBVcndpbW0gZGFhIGRyYXVmLCAgZMOkw58gbXluIGFpbmZhY2ggIGRkICBnYW4gZMO2bm4gWnfDtmsgc2NocmVpYnQuCisKKworICAxLiBCZXfDtmcgw7ZubiBNw7Zya2wgZ2FuIGR5ciB6d2FpdHRuIFplaWwgaW4gbiB1bnRpZ25lbiAiR2VkaWNodCIuCisgIDIuIFppcGYgIGRkICAsICB1bSBkw7YgWmVpbCB6IGzDtnNjaG4uCisgIDMuIElldHogYmV3w7Znc3QgZGkgZ2FuIGR5ciB2aWVydG4gWmVpbC4KKyAgNC4gWmlwZiAgMmRkICAsIHVtIHp3byBaZWlsbiB6byBuIEzDtnNjaG4uCisKKy0tLT4gIDEpICBSb29zbiBzZWluZCByb290OworLS0tPiAgMikgIERydW50ZXIgaXN0IHMgS29vdC4KKy0tLT4gIDMpICBWZWlnZXJsbiBzZWluZCBibGF1LgorLS0tPiAgNCkgIFVtZ3JhYm4gdHVldCBzIGQgU2F1LgorLS0tPiAgNSkgIEQgVXIgc2FpdCBkZSBaZWl0LAorLS0tPiAgNikgIFNhaXQsIGTDpMOfIHMgbWkgZnJldXQsCistLS0+ICA3KSAgRGlybmRsLCBkZWluIEdzY2hhdS4KKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgTGV0em4gMi43OiBSVUdHR8OWTkdJRyBNQUNIRU4gKFJVR0dMTikgCisKKworICAgICAgICAgICAgICoqIFppcGYgIHUgICwgZHlybWl0c3QgZGUgbMO2c3N0biBGYXVkdW5nZW4gcnVnZ2x0c3QgKioKKyAgICAgICAgICAgICAgKiogb2xkZXIgIFUgICwgdW0gYXluIGdhbnR6ZSBaZWlsIHdpZGVyaGVyenN0w7ZsbG4uICoqCisKKyAgMS4gQmV3w7ZnIMO2bm4gTcO2cmtsICBnYW4gZHlyIG1pdCAtLS0+IGFuZ23DtnJrdG4gWmVpbCB1bnQgIHVuZCBnZWUgZHlybWl0IGF1ZiBuCisgICAgIGVlcnN0biBGYWVsZXIuCisgIDIuIFppcGYgIHggICwgZMOkw59zdCBkw7ZzIGVlcnN0ZSB6IHZpbGUgWmFpY2hlbiBsw7ZzY2hzdC4KKyAgMy4gSWV0eiBkZW1tbHQgIHUgICwgZHlybWl0c3QgZGUgbMO2c3N0ZSBGYXVkdW5nIHJ1Z2dsdHN0LgorICA0LiBJZXR6IGJlaMO2YiAgYWxsc2FuZCBGYWVsZXIgIGF1ZiBkeXIgWmVpbCAgbWl0IGR5ciBIaWxmICB2b24gbiBCZWZlbGggIHggIC4KKyAgNS4gQWZ0IGdpYnN0IGF5biAgVSAgKGdyb2/DnykgZWluLCAgZMOkw59zdCBkZSBaZWlsIHdpZGVyIHlzbyBoaW5icmluZ3N0LCAgd2llIHMKKyAgICAgZ3fDtnNuIGlzdC4KKyAgNi4gU28sICB1bmQgaWV0eiAgZGVtbWx0c3QgIHNvIG9mdCAgdSAgLCBoaW5zdCBkw6TDn3N0IHMgIFUgIHVuZCBkZSBhbmRlcm4gRmF1LQorICAgICBkdW5nZW4gcnVnZ2fDtm5naWcgZ21hY2h0IGhhYXN0LgorICA3LiBVbmQgaWV0emV0IHdpZGVydW0gIHNjaHJlaWJzdCAgc28gb2Z0ICA8U1RSRz5yICAsIGhpbnN0IGTDpMOfc3QgIGFsbHNhbmQgQmUtCisgICAgIGZlbGggd2lkZXJoZXJnc3TDtmxsdCwgeiBoYWlzc24gYWxsc3NlIHJ1Z2ctZ3J1Z2dsdCBoYWFzdCAgKGFsc28gZCBSdWdnZ8O2bi0KKyAgICAgZ2lnbWFjaHVuZ2VuIHJ1Z2dnw7ZuZ2lnIGdtYWNodCkuCistLS0+IEJlZXJpY2h0aWcgZCBGYWVsbGVyIHZvb24gZGVocmVyIFplaWlsICB1bmQgc3R0w7ZsbCBzIG1pdHQgbiBSdWdncnVnZ2xuIHdpLQorICAgICBkZXIgaGVyLgorICA4LiBEaWUgRmF1ZHVuZ2VuIHNlaW5kIGdybyB3aWNodGlnOyBzw7YgaGVsZmZlbmQgYWlubiBuw6RycmlzY2ggd2VpdGVyLgorICAgICBJZXR6IGdlZSB3ZWl0ZXIgZ2FuIGR5ciBaYW1tZW5mYXNzdW5nIHZvbiBkeXIgTGV0em4gMi4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gMgorCisKKyAgMS4gVW0gdm9uIG4gTcO2cmtsIGF1cyBoaW5zdCBleW4gcyBuYWVoc3RlIFdvcnQgem8gbiBMw7ZzY2huLCB6aXBmOiAgZHcKKyAgMi4gVW0gdW1iYiBuIE3DtnJrbCBoaW5zdCBleW4gcyBFbmQgdm9uIGR5ciBaZWlsIHpvIG4gTMO2c2NobiwgZGVtbWx0ICBkJAorICAzLiBEeXJtaXRzdCBheW4gZ2FudHplIFplaWwgbMO2c2Noc3QsIGdpYiBlaW46ICBkZAorICA0LiBNZWNoc3QgYXluIEJld8O2Z3VuZywgYXluICJXb2xlbmQiLCDDtmZ0ZXJzLCAgc3TDtmxsIGRlIGVudHNwcsO2Y2hldGUgWmFsIGR5ci0KKyAgICAgdm9yOiAgM2R3ICBvbGRlciBhYXU6ICBkM3cKKyAgNS4gRHlyIFBmdWVnIGbDvHIgYXluIMOWbmRlcnVuZ3NmYXVkdW5nIGxhdXR0IHlzbzoKKyAgICAgICAgICAgICAgIFBmZW1lcmVyICAgW1phbF0gICBCZXfDtmd1bmdzc2Nocml0IChXb2xlbmQpCisgICAgIFVuZCBkw7ZzIGhhaXNzdDoKKyAgICAgIER5ciBQRkVNRVJFUiBnaWJ0IGFuLCBXQVMgdGFhbiBnaG9lcnQsIMO2YmJlbm4gICBkICAgPSAgbMO2c2NobiAowrtkZWxldGXCqykuCisgICAgICBbWkFMXSAtIEF5biBaYWwgS0FOIG15biBhbmfDtmJuLCB3ZW5uIG15biBoYWx0IGF5biBXb2xlbmQgw7ZmdGVyIGhhYm4gd2lsbC4KKyAgICAgIFMgV09MRU5ELCAgYWxzbyBkeXIgU2Nocml0IFdPSElOLCBiZXNhZ3QsICBhdWYgd2FzIGkgYXVzaGluIHdpbGwsICDDtmJiZW5uCisgICAgICBhdWYgYXluIFdvcnQgKCAgdyAgKSwgcyBFbmQgdm9uIGR5ciBaZWlsICggICQgICkgdW5kIHNvIHdlaXRlci4KKworICA2LiBEw6TDn3N0IGV5biBuIEFuZmFuZyB2b24gZHlyIFplaWwgaGlua2ltbXN0LCBzY2hyZWliIGF5bm4gTnVsbGVyOiAgMAorCisgIDcuIFVtIMO2YmJzIFZvcmlncyB3aWRlciB6IHJ1Z2dsbiwgZ2liIGVpbjogICAgICAgICAgICAgICAgdSAoa2xhaW4gYWxzbykKKyAgICAgVW0gYWxsc2FuZCDDlm5kZXJ1bmdlbiBpbiBheW5lciBaZWlsIHogcnVnZ2xuLCBoYWFzdDogICBVIChhbHNvIGdyb2/DnykKKyAgICAgVW0gInJ1Z2ctei1ydWdnbG4iLCBhbHNvIGFsbHNzIHdpZGVyIGhlcnpzdMO2bGxuLCB6aXBmOiA8U1RSRz5yICAgCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDMuMTogQU5Gw5xFR04gKMK7cHV0wqspIAorCisKKyAgICAgKiogWmlwZiAgcCAgLCBkeXJtaXRzdCDDtmJicyBnbmV0dHkgR2zDtnNjaHRzIG5hYWNoIG4gTcO2cmtsIGFuZsO8ZWdzdC4gKioKKworICAxLiBCZXfDtmcgw7ZubiBNw7Zya2wgZ2FuIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCBtaXQgICAtLS0+ICAgZHlydm9yLgorCisgIDIuIFppcGYgIGRkICAsIHVtIHNlbGUgWmVpbCB6IGzDtnNjaG4gIHVuZCBkeXJtaXQgIGluIGF5bm4gV2ltbS0iUm9zdGVyIiAgem8gbgorICAgICBzcGVpY2hlcm4uCisKKyAgMy4gQmV3w7ZnIMO2bm4gTcO2cmtsIGdhbiBkeXIgWmVpbCBjKSwgIMOcQkVSIGRlcmVyLCBkYWEgd28gZGUgZ2zDtnNjaHRlIFplaWwgZWluLQorICAgICBoaW5rZW1tZW4gc29sbHQuCisKKyAgNC4gU28sICB1bmQgaWV0eiBnaWJzdCBhaW5mYWNoICBwICBlaW4sICB1bmQgc2Nob29uIGhhYXN0IGTDtiBaZWlsIHVudGVyIGRlcmVyCisgICAgIG1pdCBuIE3DtnJrbCBkcmlubi4KKyAgNS4gw4RmZXJ0ICBkIFNjaHJpdHQgMiBoaW5zdCA0LCAgaGluc3QgZMOkw59zdCAgYWxsc2FuZCBaZWlsbiAgeXNvIG5hYWNoeW5heW5hbmQKKyAgICAgaGFhc3QsIHdpZSBzIGhpbmdob2VybmQuCisKKy0tLT4gZCkgS2Fuc3QgZHUgZMO2cyBhYXU/CistLS0+IGIpIFZlaWdlcmxuIHNlaW5kIGJsYXUuCistLS0+IGMpIEJlZGFjaHRuIGthbiBteW4gbGVybmVuLgorLS0tPiBhKSBSb29zbiBzZWluZCByb290Lgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDMuMjogRVJTw5ZUWk4gKMK7cmVwbGFjZcKrKQorCisKKyAgICAgICoqIFppcGYgIHJ4ICAsIHVtIGTDtnMgWmFpY2hlbiB1bnRlciBuIE3DtnJrbCBkdXJjaCAgeCAgeiBlcnPDtnR6bi4gKioKKworICAxLiBCZXfDtmcgw7ZubiBNw7Zya2wgem8gZHlyIGVlcnN0biB1bnRpZ25lbiBaZWlsIG1pdCAgIC0tLT4gICBkeXJ2b3IuCisKKyAgMi4gQmV3w7ZnIMO2bm4gTcO2cmtsLCBoaW5zdCBkw6TDnyB5ciBhdWYgbiBlZXJzdG4gRmFlbGVyIHN0ZWV0LgorCisgIDMuIFppcGYgIHIgIHVuZCBkcmFmdGVyIGTDtnMgWmFpY2hlbiwgd28gZHlyZsO8ciBkYWEgaGluZ2hvZXJ0LgorCisgIDQuIFdpZGVyaG9sIGQgU2Nocml0dCAyIHVuZCAzLCAgaGluc3QgZMOkw59zdCBkZSBlZXJzdGUgWmVpbCAgZ21hZcOfIGR5ciB6d2FpdHRuCisgICAgIGJlcmljaHRpZ3QgaGFhc3Q6CistLS0+ICBXaWUgZMO2IFplaXQgZWluZ29ibiB3dXJkLCB3dXJkbmQgYWluaWtlIGZhbHNjaGUgWmFzdG5lbiB6aXBmdCEKKy0tLT4gIFdpZSBkw7YgWmVpbCBlaW5nw7ZibiB3dXJkLCB3dXJkbmQgYWluaWdlIGZhbHNjaGUgVGFzdG5lbiB6aXBmdCEKKworICA1LiBJZXR6IHR1ZSBtaXQgZHlyIExldHpuIDMuMyB3ZWl0ZXIuCisKK0FubcO2cmt1bmc6IFZlcmdpw58gbml0IGRyYXVmLCBkw6TDn3N0IG1pdCBuIEFud2VuZGRuIGxlcm5lbiBzb2xsdHN0IHVuZCBuaXQgw7ZiYmVubgorICAgICAgICAgICBtaXQgbiBBdXN3ZW5kaWdsZXJuZW4hCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICBMZXR6biAzLjM6IMOWTkRFUk4gKMK7Y2hhbmdlwqspCisKKworICAgICAgICAgICAgICAqKiBVbSBoaW5zdCBleW4gcyBXb3J0ZW5kIHogw7ZuZGVybiwgemlwZiAgY2UgIC4gKioKKworICAxLiBHZWUgbWl0IG4gTcO2cmtsIGF1ZiBkZSBlZXJzdGUgbWl0IC0tLT4gYW5nbcO2cmt0ZSBaZWlsLgorCisgIDIuIElldHogZmFyc3QgbmV0dHkgYXVmIHMgICJzIiAgdm9uIFdzdHdyIGhpbi4KKworICAzLiBaaXBmICBjZSAgZWluIHVuZCBhZnQgZCBXb3J0YmVyaWNodGlndW5nLCBkYWFkZXIgYWxzbyAgw7ZydGVyICAuCisKKyAgNC4gRHJ1Y2sgPEVTQz4gdW5kIGJld8O2ZyDDtm5uIE3DtnJrbCBnYW4gbiBuYWVoc3RuIFphaWNoZW4sICB3byBnw7ZuZGVydCBnaG9lcnQuCisKKyAgNS4gw4RmZXJ0ICBkIFNjaHJpdHQgMyB1bmQgNCwgIGhpbnN0IGTDpMOfICBkeXIgZWVyc3RlIFNheiAgd2llIGR5ciB6d2FpdHRlIGlzdC4KKworLS0tPiBBaW5pZ2UgV3N0d3Igdm9uIGRlcmVyIFpsd3cgZ2hobm5kIG1pdCBuIMOWbmRlcm4tUGZlbWVyZXIgZ2FhdXUuCistLS0+IEFpbmlnZSBXw7ZydGVyIHZvbiBkZXJlciBaZWlsIGdob2VybmQgbWl0IG4gw5ZuZGVybi1QZmVtZXJlciBnw7ZuZGVydC4KKworY2UgIGzDtnNjaHQgYWxzbyBzIFdvcnQgdW5kIHNjaGxhYXVmZnQgZGkgZXluIGQgRWluZ2FhYi1BcnR3ZWlzLgorCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgTGV0em4gMy40LjogTk9OIE1FRVJFUiDDlk5ERVJVTkdFTiBQRkVMRlMgIGMKKworCisgICAqKiBEIEzDtnNoZmF1ZHVuZyAgYyAgYXJlY2h0dCBtaXQgZGUgbsO2bWxpY2huZW4gV29sZW5kZXIgd2llIGTDtiBtaXQgIGQgICoqCisKKyAgMS4gRHlyIMOWbmRlci1QZmVtZXJlciBhcmVjaHR0IGFubGVpY2ggd2llIGQgTMO2c2hmYXVkdW5nIG1pdCAgIGQgICwgIHVuZCB6d2FhcgorICAgICB5c286CisgICAgICAgICBjICAgIFtaYWxdICAgQmV3w7ZndW5nc3NjaHJpdHQgKFdvbGVuZCkKKworICAyLiBEIFdvbGVuZGVyICBzZWluZCAgZGUgZ2xlaWNobiwgIMO2YmJlbm4gIHcgIGbDvHIgV29ydCB1bmQgICQgZsO8ciBzIFplaWxuZW5kLgorCisKKyAgMy4gQmV3w7ZnIGRpIHpvIGR5ciBlZXJzdG4gdW50aWduZW4gWmVpbCBtaXQgLS0tPiAuCisKKyAgNC4gSWV0eiBnZWVzdCBhdWYgZMO2bm4gZWVyc3RuIEZhZWxlci4KKworICA1LiBaaXBmICBjJCAgLCBnaWIgw7ZubiBSZXN0IHZvbiBkeXIgWmVpbCB3aWUgaW4gZHlyIHp3YWl0dG4gZWluIHVuZCBkcnVjayBhZnQKKyAgICAgPEVTQz4uCistLS0+IFMgRW5kIHZvbiBkZXJlciBaZWlsIHNvbGx0IGFuIGRlIHp3YWl0dGUgZGFhZGVyIGFuZ2xpY2hlbiB3ZXJkbi4KKy0tLT4gUyBFbmQgdm9uIGRlcmVyIFplaWwgc29sbHQgbWl0IG4gQmVmZWxoICBjJCAgYmVyaWNodGlndCB3ZXJkbi4KKworRGVuayBhbGx3ZWlsIGRyYW4sICBkw6TDn3N0IGllZGVyemVpdCAgbWl0IGR5ciBSdWdndGFzdG4gRmFlbGVyIGF1c2LDtnNzZXJuIGthbnN0Lgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIFpBTU1FTkZBU1NVTkcgVk9OIERZUiBMRVRaTiAzCisKKworICAxLiBVbSBheW4gIHZvcmhlciBnbMO2c2NodHMgR3dvcnQgIGFuembDvGVnbiwgIHppcGYgIHAgIC4gIERhYSBkeXJtaXQgIHdlcmQgZMO2cworICAgICBnYW50emUgR3dvcnQgIE5BQUNIIG4gTcO2cmtsICBhbmdmw7xlZ3QuICBXZW5uIHMgYXluIGdhbnR6ZSBaZWlsICBnd8O2c24gaXN0LAorICAgICB3ZXJkIGTDtiBzZWwgYWxzIGRlIFplaWwgdW50ZXJoYWxiIG4gTcO2cmtsIGVpbmdmw7xlZ3QuCisKKyAgMi4gVW0gZMO2cyBaYWljaGVuICB1bnRlciBuIE3DtnJrbCwgIGFsc28gd28gZHlyIE3DtnJrbCBpc3QsICB6IGVyc8O2dHpuLCB6aXBmICByCisgICAgIHVuZCBhZnQgZMO2cyBaYWljaGVuLCB3b3N0IGRhYWRsIGhhYm4gd2lsbHN0LgorCisgIDMuIER5ciDDlm5kZXJ1bmdzcGZlbWVyZXIgKCBjID0gwrtjaGFuZ2XCqykgbGFhc3N0IGFpbm4gdW1iYiBuIE3DtnJrbCBoaW5zdCBleW4gcworICAgICBFbmQgdm9uIG4gV29sZW5kIMO2bmRlcm4uIFppcGYgIGNlICAsIGR5cm1pdHN0IHVtYmIgbiBNw7Zya2wgaGluc3QgZXluIHMgRW5kCisgICAgIHZvbiBuIFdvcnQgw7ZuZGVydHN0LCB1bmQgIGMkICBoaW5zdCBleW4gcyBFbmQgdm9uIGR5ciBaZWlsLgorCisgIDQuIEbDvHIgZCDDlm5kZXJ1bmcgbGF1dHQgZHlyIFBmdWVnOgorCisgICAgIGMgICBbWmFsXSAgIFdvbGVuZAorCitJZXR6IHR1ZSBtaXQgZHlyIG5hZWhzdG4gTGV0em4gd2VpdGVyLgorCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICBMZXR6biA0LjE6IE3DllJLTFNUw5ZMTFVORyBVTkQgREFVVFRJQ0hUREFSU1RBTkQKKworKiogRGVtbWx0IDxTVFJHPmcsIGTDpMOfc3Qgw7ZubiBCZWZhbmQgdW5kIERhcnN0YW5kIHZvbiBkeXIgRGF1dHRpY2h0IGFuemFpZ3N0LiAqKgorICAqKiBaaXBmICBHICAsIGR5cm1pdHN0IGF1ZiBheW4gYmVzdGltbXRlIFplaWwgaW4gZHlyIERhdXR0aWNodCBoaW5raW1tc3QuICoqCisKK0FubcO2cmt1bmc6IExpcyBkw7YgZ2FudHplIExldHpuIGRhYWRlciBkdXJjaCwgZWUgd2VubnN0IGlld2lnbiDDtmJicyB1bnRlcm5pbW1zdCEKKworICAxLiBEcnVjayAgPFNUUkc+ZyAgLiAgQXVmIGTDtnMgaGluIGVyc2NoZWludCBhdWYgZGVyZXIgU2VpdHQgZ2FueiB1bnQgYXluIERhci0KKyAgICAgc3RhbmRzbWVsZHVuZyAgbWl0IG4gRGF1dHRpY2h0bmFtICB1bmQgbiBCZWZhbmQgIGlubmVyaGFsYiAgZHlyIERhdXR0aWNodC4KKyAgICAgTcO2cmsgZHlyIGRlIFplaWxubnVtbWVyIGbDvHIgbiBTY2hyaXQgMy4KKworQW5tw7Zya3VuZzogIE3DvGdsaWNoZXJ3ZWlzICBzZWdoc3QgYWF1IMO2bm4gTcO2cmtsYmVmYW5kICBpbiBuIHplc21lbiB1bnRlcm4gQmlsZC0KKyAgICAgICAgICAgIHNjaGlybcO2Z2cuIEFmdCBpc3QgcyAiTGluZGwiICjCu3J1bGVywqspIGVpbmdzdMO2bGx0OyBzY2hhdSBkeXJ6dWUgbWl0CisgICAgICAgICAgICBuIEJlZmVsaCAgIDpoZWxwICdydWxlcicgICBuYWFjaC4KKyAgMi4gRHJ1Y2sgIEcgICwgdW0gYW4gcyBFbmQgdm9uIGR5ciBEYXV0dGljaHQgeiBrZW1tZW4uCisgICAgIGdnICBnaWJzdCBlaW4sIGTDpMOfc3QgZ2FuIG4gQW5mYW5nIHZvbiBkeXIgRGF1dHRpY2h0IGF1ZmhpbmtpbW1zdC4KKworICAzLiBHaWIgZCBOdW1tZXIgdm9uIGRlcmVyIFplaWwgZWluLCBkYWEgd29zdCB2b3JoZXIgd2Fyc3QsICB1bmQgYWZ0IG5vbiAgRyAgLgorICAgICBEw7ZzIGJyaW5ndCBkaSB6cnVnZyBnYW4gc2VsZXIgWmVpbCwgIGRhYSB3b3N0IHN0dWVuZGRzdCwgIHdpZXN0IGTDtnMgZWVyc3RlCisgICAgIE1hYWwgPFNUUkc+ZyBnYWRydWNrc3QuCisKKyAgNC4gV2VubnN0IGRpIHNpY2hlciBnbnVlZyBmw7xlbHN0LCBhZnQgZsO8ZXIgZCBTY2hyaXR0IDEgaGluc3QgMyBhdXMuCit+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+CisgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDQuMjogRFlSIEJFRkVMSCBaTyBOIFNVRUNIRU4gCisgICAgICAgICAgICAgICAKKworICAqKiBaaXBmICAvICB1bmQgZHlybmFhY2ggYXlubiBBdXNkcnVrLCB1bSBzZWxiaWduZW4gem8gbiBTdWVjaGVuLiAqKgorCisgIDEuIER1IGdpYnN0IGFsc28gaW4gZHlyIEJlZmVsaHNhcnR3ZWlzIHMgWmFpY2hlbiAgLyAgZWluLiBEw7ZzIHNlbCB3aWUgYWF1IGR5cgorICAgICBNw7Zya2wgZXJzY2hlaW5lbmQgZHJhdWYgdW50IGF1ZiBuIFNjaGlybSwgbmV0dHkgd2llIGJlaSBkeXIgRmF1ZHVuZyAgOiAgLgorCisgIDIuIElldHogemlwZiAnRmFlZWxlcicgPEVJTj4uIE5ldHR5IHVtIGTDtnMgJ0ZhZWVsZXInIHdpbGxzdCBpZXR6IHN1ZWNoZW4uCisKKyAgMy4gV2lsbHN0IHVtIGduYXVuIGTDtm5uIEF1c2RydWsgd2VpdGVyc3VlY2hlbiwgemlwZiBhaW5mYWNoICBuICAod2llIMK7bmV4dMKrKS4KKyAgICAgV2lsbHN0IGhpbnpydWdnIHN1ZWNoZW4sIGFmdCBnaWJzdCAgTiAgZWluLgorCisgIDQuIFVtIHZvbiBIYXVzIGF1cyB6cnVnZ2F1cyB6IHN1ZWNoZW4sIG5pbW0gID8gIHN0YXR0ICAvICBoZXIuCisKKyAgNS4gRHlybWl0c3Qgd2lkZXIgZGFhIGhpbmtpbW1zdCwgd29zdCBoZXJrZW1tZW4gYmlzdCwgZHJ1Y2sgPFNUUkc+bywgIHVuZCBkw7ZzCisgICAgIMO2ZnRlciwgIHdlbm5zdCB3ZWl0ZXIgenJ1Z2cgd2lsbHN0LiAgTWl0IDxTVFJHPmkgd2lkZXJ1bSAga2ltbXN0IHZvcnfDpHJ0cy4KKworLS0tPiAgQXlubiBGYWVsZXIgc2NocmVpYnQgbXluIG5pdCAiRmFlZWxlciI7IEZhZWVsZXIgaXN0IGF5biBGYWVsZXIKKworQW5tw7Zya3VuZzogIFdlbm4gZCBTdWVjaCBzIERhdXR0aWNodGVuZCBkeXJyYWljaHQgaGFhdCwgZ2VldCBzIGV5biBuIEFuZmFuZyB3aS0KKyAgICAgICAgICAgIGRlciB3ZWl0ZXIgZHlybWl0LCAgbWVuIFNhY2ggIGR5ciBTY2hhbHR0ZXIgJ3dyYXBzY2FuJyB3w6RyIGF1ZiBhdXMuCit+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+CisgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDQuMzogREUgR8OWR05LTEFNTUVSTiBGSU5ERE4KKworCisgICAqKiBaaXBmICAlICAsIHVtIGRlIGVudHNwcsO2Y2hldGUgS2xhbW1lciAgKSAgLCAgXSAgb2xkZXIgIH0gIHogZmluZGRuLiAqKgorCisgIDEuIFPDtnR6IMO2bm4gTcO2cmtsICBhdWYgaWV3aWduIGFpbmUgIHZvbiBkZW5lIGRyZWkgS2xhbW1lcm4gICggICwgIFsgIG9sZGVyICB7CisgICAgIGluIGR5ciB1bnRpZ25lbiBaZWlsLCB3byBtaXQgLS0tPiBhbmdtw7Zya3QgaXN0LgorCisgIDIuIElldHpldCB6aXBmIHMgWmFpY2hlbiAgJSAgLgorCisgIDMuIER5ciBNw7Zya2wgZ2VldCBpZXR6IGF1ZiBkZSBww6Rzc2V0ZSBzY2hsaWVzc2V0ZSBLbGFtbWVyLgorCisgIDQuIElldHogZGVtbWx0ICAlICAsIHVuZCBkeXJtaXQga2ltbXN0IGdhbiBkeXIgw7ZmZm5lcmV0biBLbGFtbWVyIHpydWdnLgorCisgIDUuIFPDtnR6IMO2bm4gTcO2cmtsIGF1ZiBheW4gYW5kZXJuZSBLbGFtbWVyIHZvbiAgICh7W119KSAgIHVuZCBwcsO2Ymx0ICAgJSAgYXVzLgorCistLS0+IETDtnMgKCBpc3QgIGJsb2/DnyBheW4gUG9jaHplaWwgKCBtaXQgWyB2ZXJzY2hhaWRuZSBdIHsgS2xhbW1lcm4gfSBkcmlubi4gKSkKKworQW5tw7Zya3VuZzogIFVtIGTDtiBNw7xnbGljaGtlaXQgZ2Fhc3QgYnN1bmRlcnMgZnJvbyBzZWluLCAgd2VubnN0IGF5bm1hYWwgaW4gYXlubgorICAgICAgICAgICAgU3BhaWNoZ3dvcnQgdmVyendlaWZsdCBheW4gZmFlbGV0ZSBHw7ZnbmtsYW1tZXIgc3VlY2hzdCEKKworCit+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+CisgICAgICAgICAgICAgICAgIExldHpuIDQuNDogRCBFUlPDllRaVU5HU0ZBVURVTkcgKMK7c3Vic3RpdHV0ZcKrKQorCisKKyAgICAgICAgKiogWmlwZiAgOnMvYWx0L25ldS9nICAsIHVtICdhbHQnIGR1cmNoICduZXUnIHpvIG4gRXJzw7Z0em4uICoqCisKKyAgMS4gR2VlIG1pdCBuIE3DtnJrbCB6byBkeXIgdW50IHN0ZWVoZXRuIG1pdCAtLS0+IGFuZ23DtnJrdG4gWmVpbC4KKworICAyLiBaaXBmICA6cy9kZWUvZGUgPEVJTj4gIC4gRGVyIEJlZmVsaCBlcnPDtnR6dCBhbHNuYW4gZ3JhZCBkw7ZzICtlZXJzdGUgImRlZSIsCisgICAgIHdvIHbDvHJraW1tdC4KKworICAzLiBJZXR6IHByw7ZibHQgcyBtaXQgIDpzL2RlZS9kZS9nICAuIETDtnMgenVlc8O2dHpsaWNoZSAgZyAgKCJQZmxvayIgIG5lbm50IG15bgorICAgICDDtmJicyBTw7ZsY2hlcnMpIGJld2lya3QsIGTDpMOfIGFsbHNzLCB3YXMgZHlybWl0IGtlbm56YWljaG5ldCBpc3QsICBpbm5lcmhhbGIKKyAgICAgdm9uIGR5ciBhaW5uIFplaWwgZXJzw7Z0enQgd2VyZC4KKworLS0tPiBEZWUgc2Nob2Vuc3RlIFplaXQsIGTDpMOfIG15biBkZWUgQmzDvGVtbG4gYW5zY2hhdXQsIGlzdCBkZWUgc2Nob2VuZSBMYW4tCisgICAgIGdlc3N6ZWl0LgorICA0LiBVbSBpZXR6ICBhbGxzYW5kIFN1ZWNoYmVncmlmZiAgaW5uZXJoYWxiIHZvbiB6d28gWmVpbG4gIHpvIG4gw5ZuZGVybiwgIHppcGYKKyAgICAgOiMsI3MvYWx0L25ldS9nICAsICB3b2JlaSAjIGlld2VpbHMgZsO8ciBkZSBlZXJzdGUgdW5kIGzDtnNzdGUgWmVpbCB2b24gZMO2bm4KKyAgICAgUGZyYWljaCBzdGVldC4KKyAgICAgOiVzL2FsdC9uZXUvZyAgemlwZnN0LCBkw6TDn3N0IGQgVsO8cmtlbW1lbiBpbiBkeXIgZ2FudHpuIERhdXR0aWNodCDDtm5kZXJ0c3QuCisgICAgICAgIE1pdCAgOiVzL2FsdC9uZXUvZ2MgIGZpbmRkc3QgYWxsc2FuZCBWw7xya2VtbWVuIGluIGR5ciBnc2FtdG4gRGF1dHRpY2h0OworICAgICBkYWEgd2Vyc3QgYWJlciB6ZWVyc3Qgbm9uIGdmcmFhZ3QsIG9ic3QgeXMgZXJzw7Z0em4gd2lsbHN0IG9sZGVyIG5pdHkuCit+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgWkFNTUVORkFTU1VORyBWT04gRFlSIExFVFpOIDQKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAxLiA8U1RSRz5nICAgemFpZ3QgZMO2bm4gaWV0enVuZG4gRGF1dHRpY2h0YmVmYW5kICB1bmQgw7ZubiBEYXJzdGFuZCBkeXJ2b24gYW4uCisgICAgICAgICAgIEcgIGJyaW5ndCBkaSBhbiBzIEVuZCB2b24gZHlyIERhdXR0aWNodC4KKyAgICAgPFphbD4gRyAgYnJpbmd0IGRpIGdhbiBkeXIgZW50c3Byw7ZjaGV0biBaZWlsbm51bW1lci4KKyAgICAgICAgICBnZyAgYnJpbmd0IGRpIHpvIGR5ciBlZXJzdG4gWmVpbC4KKyAgICAgICAgICAKKyAgMi4gRCBFaW5nYWFiIHZvbiAgLyAgbWl0IGF5bm4gQXVzZHJ1ayBzdWVjaHQgVsOcUlNITElORyB1bSBkw7ZubiBBdXNkcnVrLgorICAgICBHaWJzdCAgPyAgdW5kIGF5bm4gU3VlY2hiZWdyaWYgZWluLCBzdWVjaHQgcyB1bSBkw7ZubiDDhFJTSExJTkcuCisgICAgIFppcGYgbmFhY2ggYXluZXIgU3VlY2ggIG4gIDsgIG5hYWNoZXJkIHdlcmQgaW4gZGUgZ2xlaWNoZSBSaWNodHVuZyB3ZWl0ZXItCisgICAgIGdzdWVjaHQuIE1pdCAgTiBnZWV0IHMgdW1rZWVydGVyIHdlaXRlci4KKyAgICAgPFNUUkc+byBicmluZ3QgZGkgem8gw7ZsdGVybmUgQmVmw6RuZGQgenJ1Z2csIDxTVFJHPmkgem8gbmV1ZXJuZS4KKworICAzLiBEIEVpbmdhYWIgdm9uICAlICwgd2VubiBkeXIgTcO2cmtsIGF1ZiBhaW5lciB2b24gZGVuZSBLbGFtbWVybiBzdGVldDogICAoe1sKKyAgICAgKV19ICAsIGJyaW5ndCBkaSB6byBkeXIgR8O2Z25rbGFtbWVyLgorCisgIDQuIFVtIGTDtnMgZWVyc3RlIFbDvHJrZW1tZW4gIHZvbiAiYWx0IiAgaW4gYXluZXIgWmVpbCAgZHVyY2ggIm5ldSIgIHogZXJzw7Z0em4sCisgICAgIHppcGYgICA6cy9hbHQvbmV1ICAgLgorICAgICBVbSBhbGxzYW5kIGluIGF5bmVyIFplaWwgeiBlcnPDtnR6biwgemlwZiAgIDpzL2FsdC9uZXUvZyAgIC4KKyAgICAgTWVjaHN0IGFsbHNzIGluIHp3byBaZWlsbiBlcnPDtnR6biwgZGVtbWx0IHpvIG4gQmVpc3BpbCAgOjUsNnMvYWx0L25ldS9nICAuCisgICAgIE1lY2hzdCBhbGxzcyBpbiBkeXIgZ2FudHpuIERhdXR0aWNodCBlcnPDtnR6biwgZ2liIGVpbjogICA6JXMvYWx0L25ldS9nICAgLgorICAgICBXaWxsc3QgYXluIGllZHMgTWFhbCBic3RhZXRsbiwgaMO2bmcgJ2MnIHdpZSDCu2NvbmZpcm3CqyBoaW50IGFuaGluLgorfn5+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+fgorICAgICAgICAgICAgTGV0em4gNS4xOiBaV0lTQ0hORFJJTk4gQVlOTiBBVVNTRVJJR05FTiBCRUZFTEggQVVTRsOcRVJOIAorICAgICAgICAgICAgCisKKyAgKiogV2lsbHN0IGF5biBHZsOkw59mYXVkdW5nIGF1c2bDvGVybiwgZ2liIGFpbmZhY2ggZMO2IHNlbCBuYWFjaCAgIDohICAgZWluLiAqKgorIAorICAxLiBaaXBmICBkw7ZubiBiZWthbm50biBCZWZlbGggICA6ICAsICBkeXJtaXRzdCAgbWl0IG4gTcO2cmtsICBhdWYgbiBCaWxkc2NoaXJtCisgICAgIGdhbnogYWJoaW4ga2ltbXN0LiBEcmF1ZmhpbiBrYW5zdCBheW5uIGd3b25lbiBHZsOkw59iZWZlbGggZWluZ8O2Ym4uCisKKyAgMi4gWmVlcnN0ICBraW1tdCBhYmVyIG5vbiBheW4gUnVlZnphaWNoZW4gICAhICAgLiAgVW5kIGlldHogaGFhc3QgZGUgTcO8Z2xpY2gtCisgICAgIGtlaXQsIGF5biBiZWxpZWJpZ2UgYXVzc2VyaWdlIEdmw6TDn2ZhdWR1bmcgYXVzembDvGVybi4KKworICAzLiBBbHMgQmVpc3BpbCB6aXBmICAgOiFscyA8RUlOPiAgOyB1bmQgc2Nob29uIGhhYXN0IGF5biBBdWZsaXN0dW5nIHZvbiBkZWlubgorICAgICBWZXJ6YWljaG5pc3MsICBuZXR0eSAgd2llIHdlbm5zdCAgZ2FueiBnd29uICBpbiBuIEVpbmdpYiB3w6Ryc3QuICBHZWV0ICAgbHMKKyAgICAgYXVzIGlld2lnbiBheW5uIEdydW5kIG5pdCwgYWZ0IHByw7ZibHQgcyBtaXQgIDohZGlyIDxFSU4+ICAuCisKK0Fsc28gbm9uIGF5bm1hYWw6IE1pdCBkw7ZubiBBbmdhbmcga2FuIGF5biBpZWRlIGJlbGllYmlnZSBhdXNzZXJpZ2UgRmF1ZHVuZyBhdXMtCisgICAgICAgICAgICAgICAgICBnZsO8ZXJ0IHdlcmRuLCBhYXUgbWl0IEF1ZXJ3ZXJkZC4KKworVW5kIHdvbGdtw7Zya3Q6ICAgIEFsbHNhbmQgQmVmZWxoLCB3byBtaXQgIDogIGFuZ2VlbmQsICBtw7xlc3NlbmQgbWl0IDxFSU4+IGJzdMO2LQorICAgICAgICAgICAgICAgICAgdGlndCB3ZXJkbi4gRMO2cyBkeXJzYWduIG15ciB2w7xyYmHDnyBuaWVtZXIuCisKKworfn5+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+fgorICAgICAgICAgICBMZXR6biA1LjI6IE5PTiBNRUVSRVIgRFLDnEJFUiwgV0lFIE1ZTiBEQVVUVElDSFROIFNDSFJFSUJUCisKKworICAgICAgKiogVW0gw7ZiYnMgR8O2bmRlcnRzIG5ldSB6IHNwZWljaGVybiwgemlwZiA6dyBORVVFUl9EQVVUVElDSFROQU0uICoqCisKKyAgMS4gWmlwZiAgOiFkaXIgICBvbGRlciAgOiFscyAgLCAgZMOkw59zdCBkeXIgYXluIEF1Zmxpc3R1bmcgdm9uIGRlaW5uIFZlcnphaWNoLQorICAgICBuaXNzIGF1c2hlcmxhYXNzdC4gIETDpMOfc3QgZHlybmFhY2ggPEVJTj4gZWluZ8O2Ym4gbXVlc3N0LCB3YWlzc3QgZWUgc2Nob29uLgorCisgIDIuIFN1ZWNoIGR5ciBheW5uIERhdXR0aWNodG5hbSBhdXMsIGTDtm5uIHdvIHMgbm9uIG5pdCBnZWl0LCDDtmJiZW5uIFBPQ0guCisKKyAgMy4gSWV0eiBkZW1tbHQ6ICA6dyBQT0NIICAgKGFsc28gbWl0IFBPQ0ggYWxzIGTDtm5uIG5ldWVuIERhdXR0aWNodG5hbSkuCisKKyAgNC4gRMO2cyBzcGVpY2hlcnQgaWV0eiBkZSBnYW50emUgRGF1dHRpY2h0LCBhbHNvIMO2bm4gV2ltbXNjaGFpbmVyLCAgdW50ZXIgZMO2bm4KKyAgICAgTmFtIFBPQ0guIETDtnMga2Fuc3QgbGVpY2h0IMO8YmVycHLDvGVmZmVuLCBpbmRlbSBkw6TDn3N0IGFpbmZhY2ggIDohbHMgICBvbGRlcgorICAgICA6IWRpciAgemlwZnN0IHVuZCBkeXJtaXQgZGVpbm4gVmVyemFpY2huaXNzaW5oYWx0IHNlZ2hzdC4KKworQW5tw7Zya3VuZzogIFN0aWdzdCBpZXR6IGF1cyBuIFdpbW0gYXVzIHVuZCBnw6RubnN0IG4gYWZ0IHdpZGVyIG1pdCAgIHZpbSBQT0NIICAsCisgICAgICAgICAgICBuYWFjaGVyZCB3w6RyIGTDtiBEYXV0dGljaHQgYXluIGduYXVuZSBBYW11bSB2b24gbiBTY2hhaW5lciBkeXJzZWxibiwKKyAgICAgICAgICAgIHdpZXN0IG4gZ3NwZWljaGVydCBoYWFzdC4KKworICA1LiBJZXR6IHZlcndlaXRlcnQgZMO2IERhdXR0aWNodCAtIGZhbGxzc3QgcyBGZW5zdGwgaGFhc3QgLSAsIG1pdCAgIDohZGVsIFBPQ0gKKyAgICAgYmV6aWVodW5nc3dlaXMgYmVpIGF5bm4gQWluc2xnZWLDpHUgbWl0ICAgOiFybSBQT0NIICAgLgorfn5+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+fgorICAgICAgICAgICAgTGV0em4gNS4zOiBBWU5OIFRBSUwgVk9OIE4gR1dPUlQgWk8gTiBTUEVJQ0hFUk4gQVVTV0FMTgorCisqKiBVbSBheW5uIFRhaWwgdm9uIGR5ciBEYXV0dGljaHQgeiBzcGVpY2hlcm4sIHppcGYgIHYgW1dvbGVuZF0gOncgREFVVFRJQ0hUICoqCisKKyAgMS4gUnVjayDDtm5uIE3DtnJrbCBhdWYgbmV0dHkgZMO2IFplaWwgZGFhZGVyLgorCisgIDIuIERlbW1sdCAgdiAgdW5kIGdlZSBtaXQgbiBNw7Zya2wgIGF1ZiBkw7ZubiBmw7xtZnRuIEF1Zmxpc3R1bmdzcHVudCB1bnRldC4gIER1CisgICAgIHNlZ2hzdCBnbGVpLCBkw6TDnyBzIEd3b3J0IHbDvHJoZXJnaMO2YnQgZXJzY2hlaW50LgorCisgIDMuIERydWNrIHMgWmFpY2hlbiAgOiAgLiBHYW56IHVudCBhdWYgbiBCaWxkc2NoaXJtIGVyc2NoZWludCAgOic8LCc+ICAuCisKKyAgNC4gWmlwZiAgdyBQT0NIICAsIHdvYmVpIHMgZMO2bm4gRGF1dHRpY2h0bmFtIFBPQ0ggIG5vbiBuaXQgZ2VpdC4gIFZlcmd3acOfIGRpLAorICAgICBkw6TDn3N0IGTDtnMgIDonPCwnPncgUE9DSCBhYXUgK3NlZ2hzdCwgZWUgd2VubnN0IDxFSU4+IGRydWNrc3QuCisKKyAgNS4gRHlyIFdpbW0gc2NocmVpYnQgZGUgYXVzZ3dhbHRuIFplaWwgIGV5biBkZSBEYXV0dGljaHQgUE9DSCBlaW5oaW4uICBCZW51dHoKKyAgICAgOiFkaXIgIG9sZGVyICA6IWxzICAsICBkw6TDn3N0IGTDtnMgw7xiZXJwcsO8ZWZmc3QuIEzDtnNoIHMgZmVpbiBuaXQgw7ZiYmVubiEgTWlyCisgICAgIGJyYXVjaGVuZCBzIG7Dtm1saWNoIGbDvHIgZGUgbmFlaHN0ZSBMZXR6bi4KKworQW5tw7Zya3VuZzogIERydWNrdCBteW4gIHYgICwgZ2lubnQgZCBTaWNodGlzY2gtQXVzd2FsLiBEdSBrYW5zdCBtaXQgbiBNw7Zya2wgdW0tCisgICAgICAgICAgICBheW5hbmRmYXJuLCAgdW0gZCBBdXN3YWwgIHogdmVyw7ZuZGVybi4gIERyYWZ0ZXIga2FuIG15biBtaXQgeW4gYXlubgorICAgICAgICAgICAgUGZlbWVyZXIgIG1pdCBkw7ZubiBHd29ydCAgw7ZiYnMgbWFjaGVuLiAgWm8gbiBCZWlzcGlsIGzDtnNjaHQgIGQgIGTDtnMKKyAgICAgICAgICAgIEd3b3J0Lgorfn5+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+fgorICAgICAgICAgICAgICAgTGV0em4gNS40OiBFSU5Mw5ZTTiBVTkQgWkFNTUVORsOcRVJOIFZPTiBEQVVUVElDSFROICAgCisKKworICAgICoqIFVtIMO2bm4gSW5oYWx0IHZvbiBheW5lciBEYXV0dGljaHQgZWluemzDtnNuLCB6aXBmICA6ciBEQVVUVElDSFROQU0gICoqCisKKyAgMS4gU8O2dHogw7ZubiBNw7Zya2wgw7xiZXIgZMO2IFplaWwgZGFhZGVyLgorCitPQkFDSFQ6ICBBZnQgZMOkw59zdCDDtm5uIFNjaHJpdCAyICBhdXNnZsO8ZXJ0IGhhYXN0LCAgc2VnaHN0IGF1ZiBheW5tYWFsICDDtmJicyBhdXMKKyAgICAgICAgIGR5ciBMZXR6biA1LjMuICBCZXfDtmcgZGkgbmFhY2hlcmQgd2lkZXIgYWJ3w6RydHMsIGR5cm1pdHN0IGTDtiBMZXR6biB3aS0KKyAgICAgICAgIGRlcmZpbmRkc3QuCisgIDIuIElldHogIGxpcyAgZGVpbiBEYXV0dGljaHQgIFBPQ0ggZWluLCAgaW5kZW0gZMOkw59zdCBkIEZhdWR1bmcgICA6ciBQT0NIIGF1cy0KKyAgICAgZsO8ZXJzdCwgIHdvYmVpIHdpZSBnc2FpdCBQT0NIICBmw7xyIGTDtm5uICB2b24gZGlyICBhdXNnc3VlY2h0biBEYXV0dGljaHRuYW0KKyAgICAgc3RlZXQuIERlIGVpbmdsw7ZzbmUgRGF1dHRpY2h0IHdlcmQgdW50ZXJoYWxiIGR5ciBNw7Zya2x6ZWlsIGVpbmdmw7xlZ3QuCisKKyAgMy4gVW0gem8gbiDDnGJlcnByw7xlZmZlbiwgIG9iIGRlIERhdXR0aWNodCAgYWF1IGd3acOfIGVpbmdsw7ZzbiBpc3QsICBnZWUgenJ1Z2c7CisgICAgIHVuZCBkdSBzZWdoc3QsICBkw6TDnyBzIGlldHogendvIEF1c2bDtnJ0aWd1bmdlbiAgdm9uIGR5ciBMZXR6biA1LjMuIGdlaXQsICBzCisgICAgIFVybmlzcyB1bmQgZGUgZWluZ2bDvGVndGUgRGF1dHRpY2h0ZmFzc3VuZy4KKworQW5tw7Zya3VuZzogIER1IGthbnN0IGFhdSAgZCBBdXNnYWFiIHZvbiBheW5uIEF1c3NlcmlnYmVmZWxoIGVpbmzDtnNuLiAgWm8gbiBCZWktCisgICAgICAgICAgICBzcGlsIGxpc3QgICA6ciAhbHMgIGQgQXVzZ2FhYiB2b24gZHlyIEZhdWR1bmcgIGxzICAgZWluIHVuZCBmw7xlZ3QgcworICAgICAgICAgICAgdW50ZXJoYWxiIG4gTcO2cmtsIGVpbi4KKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIFpBTU1FTkZBU1NVTkcgVk9OIERZUiBMRVRaTiA1CisKKworICAxLiA6IUZBVURVTkcgZsO8ZXJ0IGF5bm4gYXVzc2VyaWduZW4gQmVmZWxoIGF1cy4KKworICAgICAgRGFhZGVyIGF5biDDlnR0bHljaCBnd8OkbmRkdGUgQmVpc3BpbGVyOgorICAgICAgKEZlbnN0bCkgICAgICAgICAgICAgIChBaW5zbCAtIExlaW5zbCkKKyAgICAgIDohZGlyICAgICAgICAgICAgICAgICA6IWxzICAgICAgICAgICAgICAgIC0gbGlzdHQgcyBWZXJ6YWljaG5pc3MgYXVmLgorICAgICAgOiFkZWwgREFVVFRJQ0hUICAgICAgIDohcm0gREFVVFRJQ0hUICAgICAgLSB2ZXJ3ZWl0ZXJ0IHNlbGUgRGF1dHRpY2h0LgorCisgIDIuIDp3IERBVVRUSUNIVCAgc3BlaWNoZXJ0IGRlIGlldHp1bmRlIFdpbW1kYXV0dGljaHQgIHVudGVyIGTDtm5uIGJlc2FndG4gTmFtLgorCisgIDMuIHYgIFdPTEVORCAgOncgREFVVFRJQ0hUTkFNICAgc2NocmVpYnQgZGUgc2ljaHRpc2NoIGF1c2d3YWx0biBaZWlsbiAgZXluIGRlCisgICAgIERhdXR0aWNodCBtaXQgc2VsbiBOYW0uCisKKyAgNC4gOnIgREFVVFRJQ0hUTkFNICBsYWR0IHNlbGUgRGF1dHRpY2h0ICB1bmQgZsO8ZWd0IHMgIHVudGVyaGFsYiBuIE3DtnJrbGJlZmFuZAorICAgICBlaW4uCisKKyAgNS4gOnIgIWRpciAgIGxpc3QgZCBBdXNnYWFiICB2b24gZHlyIEZhdWR1bmcgICBkaXIgICB1bmQgZsO8ZWd0IHMgIHVudGVyaGFsYiBuCisgICAgIE3DtnJrbGJlZmFuZCBlaW4uCisKKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNi4xOiBaRUlMIMOWRkZORU4gKMK7b3BlbsKrKQorCisKKyAgICAgICAgKiogWmlwZiBvLCB1bSBheW4gWmVpbCB1bnRlcmhhbGIgbiBNw7Zya2wgeiDDtmZmbmVuIHVuZCBleW4gZCAqKgorICAgICAgICAgICAgICAgICAgICAgICAgKiogRWluZsO8ZWdhcnR3ZWlzIHoga2VtbWVuLiAqKgorCisgIDEuIEJld8O2ZyDDtm5uIE3DtnJrbCB6byBkeXIgZWVyc3RuIG1pdCAtLS0+IGFuZ23DtnJrdG4gWmVpbCB1bnQuCisKKyAgMi4gWmlwZiBvIChrbGFpbiksICB1bSBheW4gWmVpbCAgVU5URVJIQUxCIG4gTcO2cmtsIHogw7ZmZm5lbiAgdW5kIG1pdCBkeXIgRWluLQorICAgICBmw7xlZ2FydHdlaXMgd2VpdGVyenR1ZW4uCisKKyAgMy4gSWV0eiB6aXBmIGF5biBXZWVuZyBheW4gR3dvcnQgdW5kIGRydWNrIDxFU0M+LCAgdW0gZCBFaW5mw7xlZ2FydHdlaXMgeiB2ZXItCisgICAgIGxhYXNzbi4KKy0tLT4gTWl0ICBvICB3ZXJkIGR5ciBNw7Zya2wgYXVmIGRlIG9mZmVuZSBaZWlsIGluIGR5ciBFaW5mw7xlZ2FydHdlaXMgZ3PDtnR6dC4KKworICA0LiBVbSBheW4gWmVpbCBPQkVSSEFMQiBuIE3DtnJrbCBhdWZ6bWFjaGVuLCAgZ2liIGFpbmZhY2ggYXlubiBncm9vc3NzIE8gc3RhdHQKKyAgICAgeW4gYXlubiBrbGFpbmVuIGVpbi4gVmVyc3VlY2ggZMO2cyBhdWYgZHlyIHVudGlnbmVuIFplaWwuCisKKy0tLT4gw5ZmZm5ldCBheW4gWmVpbCDDvGJlciBkZXJlciBkYWFkZXIgbWl0ICBPICAsICB3ZW5uIGR5ciBNw7Zya2wgYXVmIGRlcmVyIFplaWwKKyAgICAgaXN0LgorCisKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZXR6biA2LjI6IEdXT1JUIEFORsOcRUdOICjCu2FwcGVuZMKrKQorCisKKyAgICAgICAgICAgICAgICAqKiBaaXBmICBhICAsIHVtIMO2YmJzIE5BQUNIIG4gTcO2cmtsIGVpbnpmw7xlZ24uICoqCisKKyAgMS4gQmV3w7ZnIMO2bm4gTcO2cmtsIGdhbiBuIEFuZmFuZyB2b24gZHlyIGVlcnN0biDDnGVidW5nc3plaWwgbWl0IC0tLT4gdW50LgorCisgIDIuIERydWNrICBlICAsIGhpbnN0IGTDpMOfIGR5ciBNw7Zya2wgYW4gbiBFbmQgdm9uICBaZWkgIHN0ZWV0LgorCisgIDMuIFppcGYgYXluIGtsYWlucyAgYSAgLCB1bSDDtmJicyBOQUFDSCBuIE3DtnJrbCBhbnpmw7xlZ24uCisKKyAgNC4gVmVyZ8O2bnR6IGTDtnMgV29ydCB3aWUgaW4gZHlyIFplaWwgZHJ1bnRlci4gIERydWNrIDxFU0M+LCB1bSBkIFNjaHJlaWItQXJ0LQorICAgICB3ZWlzIHogdmVybGFhc3NuLgorCisgIDUuIEJld8O2ZyBkaSBtaXQgIGUgICB6byBuIG5hZWhzdG4gdW5nYW50em4gV29ydCAgdW5kIHdpZGVyaG9sIGQgU2Nocml0dCAzIHVuZAorICAgICA0LgorCistLS0+IETDtiBaZSBiaWV0dCBheW4gR2zDtmduICwgYXluIEd3b3J0IGluIGF5bmVyIFplaWwgYW56ZsO8LgorLS0tPiBEw7YgWmVpbCBiaWV0dCBheW4gR2zDtmduZXQsIGF5biBHd29ydCBpbiBheW5lciBaZWlsIGFuembDvGVnbi4KKworQW5tw7Zya3VuZzogICBhICAsICBpICB1bmQgIEEgIGJyaW5nZW5kIGFpbm4gZ2xlaWNoZXJtYWHDn24gZXluIGQgRWluZsO8ZWdhcnR3ZWlzOworICAgICAgICAgICAgIGR5ciBhaW56aWdlIFVudGVyc2NoYWlkIGlzdCwgV08gbWl0IG4gRWluZsO8ZWduIGFuZ2Zhbmd0IHdlcmQuCit+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+CisgICAgICAgICAgICAgIExldHpuIDYuMzogQVlOIEFOREVSTkUgV0VJUyBaTyBOIEVSU8OWVFpOICjCu3JlcGxhY2XCqykKKworCisgKiogRGVtbWx0IGF5biBncm9vc3NzICBSICAsIHVtIG1lZXJlciBhbHMgd2llIGdyYWQgYWluIFphaWNoZW4geiBlcnPDtnR6bi4gKioKKworICAxLiBCZXfDtmcgw7ZubiBNw7Zya2wgem8gZHlyIGVlcnN0biB1bnRpZ25lbiwgbWl0IC0tLT4gYW5nbcO2cmt0biBaZWlsLgorICAgICBHZWUgbWl0IG4gTcO2cmtsIGdhbiBuIEFuZmFuZyB2b24gbiBlZXJzdG4gIHh4eCAgLgorCisgIDIuIElldHogZHJ1Y2sgIFIgICB1bmQgemlwZiBzZWxlIFphbCwgIHdvIGRydW50ZXIgIGluIGR5ciB6d2FpdHRuIFplaWwgc3RlZXQsCisgICAgIHlzbyBkw6TDnyBkZSBzZWwgcyB4eHggZXJzw7Z0enQuCisKKyAgMy4gRHJ1Y2sgPEVTQz4gLCAgdW0gZCBFcnPDtnR6dW5nc2FydHdlaXMgIHogdmVybGFhc3NuLiAgRHUgZ3NwYW5uc3QsICBkw6TDnyBkeXIKKyAgICAgUmVzdCB2b24gZHlyIFplaWwgdW52ZXLDtm5kZXJ0IGJsZWlidC4KKworICA0LiDDhGZlcnQgZGllIFNjaHJpdHQsIHVtIGTDtnMgw7xiZXJibGlibmUgeHh4IHogZXJzw7Z0em4uCisKKy0tLT4gUyBadW5kZG4gdm9uIDEyMyB6byB4eHggZXJnaWJ0IHh4eC4KKy0tLT4gUyBadW5kZG4gdm9uIDEyMyB6byA0NTYgZXJnaWJ0IDU3OS4KKworQW5tw7Zya3VuZzogRCBFcnPDtnR6dW5nc2FydHdlaXMgaXN0IHdpZSBkIEVpbmbDvGVnYXJ0d2VpcywgIGFiZXIgYXluIGllZHMgZWluZGVtLQorICAgICAgICAgICBtbHRlIFphaWNoZW4gbMO2c2NodCBheW4gdm9yaGFuZGRucy4KKworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgIExldHpuIDYuNDogR1dPUlQgQUFNRU4gVU5EIEVJTkbDnEVHTgorCisgKiogQmVudXR6IMO2bm4gUGZlbWVyZXIgIHkgICwgdW0gw7ZiYnMgeiBhYW1lbiwgdW5kICBwICAsIHVtIMO2YmJzIGVpbnpmw7xlZ24uICoqCisKKyAgMS4gR2VlIHpvIGR5ciBtaXQgIC0tLT4gIGFuZ23DtnJrdG4gWmVpbCB1bnQgIHVuZCBzw7Z0eiDDtm5uIE3DtnJrbCAgaGludGVyICJhKSIuCisKKyAgMi4gR2lubiBkIFNpY2h0aXNjaC1BcnR3ZWlzIG1pdCAgIHYgICB1bmQgYmV3w7ZnIMO2bm4gTcO2cmtsIGduYXVuIHZvciAiZWVyc3RlIi4KKyAgCisgIDMuIFppcGYgIHkgICwgdW0gZMO2bm4gdsO8cmhlcmdow7ZidG4gVGFpbCB6IGFhbWVuLgorCisgIDQuIEJld8O2ZyDDtm5uIE3DtnJrbCBnYW4gbiBFbmQgdm9uIGR5ciBuYWVoc3RuIFplaWw6ICBqJAorCisgIDUuIERlbW1sdCAgcCAgLCB1bSBkw7ZzIEd3b3J0IGVpbnpmw7xlZ24sIHVuZCBhZnQ6ICBhIHp3YWl0dGUgPEVTQz4gIC4KKworICA2LiBCZW51dHogZCBTaWNodGlzY2hhcnR3ZWlzLCB1bSAiIEVpbnRyYWcuIiBhdXN6d2FsbiwgIGFhbSBzIHBmZWxmcyAgeSwgIGJlLQorICAgICB3w7ZnIGRpIGdhbiBuIEVuZCB2b24gZHlyIG5hZWhzdG4gWmVpbCBtaXQgIGokICAgdW5kIGbDvGVnIHMgR3dvcnQgZG9ydG4gbWl0CisgICAgIHAgIGFuLgorCistLS0+ICBhKSBkw7ZzIGlzdCBkeXIgZWVyc3RlIEVpbnRyYWcuCisgICAgICBiKQorCitBbm3DtnJrdW5nOiBEdSBrYW5zdCAgeSAgYWF1IGFscyBQZmVtZXJlciB2ZXJ3ZW5kZG47ICB5dyAgYWFtdCBhaW4gV29ydC4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExldHpuIDYuNTogU0NIQUxUVEVSIFPDllRaTgorCisqKiBTw7Z0eiBheW5uIFNjaGFsdHRlciB5c28sICBkw6TDnyBheW4gU3VlY2ggb2xkZXIgRXJzw7Z0enVuZyBHcm9vw58tIHVuZCBLbGFpbi0gKioKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKiBzY2hyZWlidW5nIMO8YmVyZ2VldC4gKioKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgMS4gU3VlY2ggdW0gJ8O8YmVyZ2VlIiwgaW5kZW0gZMOkw59zdCAgIC/DvGJlcmdlZSAgIGVpbmdpYnN0LgorICAgICBXaWRlcmhvbCBkIFN1ZWNoIGF5biDDlnR0bHljaCBNYWFsLCBpbmRlbSBkw6TDn3N0IGRlIFRhc3RuICBuICBkcnVja3N0LgorCisgIDIuIFPDtnR6IGRlIFp3aXNsIC0gw7ZubiBTY2hhbHR0ZXIgLSAnaWMnICjCu2lnbm9yZSBjYXNlwqspLCBpbmRlbSBkw6TDn3N0ICA6c2V0IGljCisgICAgIGVpbmdpYnN0LgorICAzLiBJZXR6IHN1ZWNoIHdpZGVyIHVtICfDvGJlcmdlZScgdW5kIHR1ZSBhYXUgd2lkZXIgbWl0ICBuICB3ZWl0ZXIuICBEYWEgZmFsbHQKKyAgICAgZHlyIGF1ZiwgZMOkw58gaWV0eiDDtmJiZW5uIGFhdSAgw5xiZXJnZWUgIHVuZCAgw5xCRVJHRUUgIGhlcmdlZXQuCisKKyAgNC4gU8O2dHogZGUgWndpc2xuICdobHNlYXJjaCcgdW5kICdpbmNzZWFyY2gnIHBmZWxmczogICA6c2V0IGhscyBpcworCisgIDUuIFdpZGVyaG9sIGQgU3VlY2ggdW5kIGJvYmFjaHQsIHdhcyBpZXR6IGdzY2hpZWdodDogICAvw7xiZXJnZWUgPEVJTj4KKworICA2LiBEw6TDn3N0IGdyb2/DnyB1bmQga2xhaW4gd2lkZXIgZ3dvbiB1bnRlcnNjaGVpZHN0LCB6aXBmOiAgIDpzZXQgbm9pYworCitBbm3DtnJrdW5nOiAgTWVjaHN0IGRlIFRyw7ZmZmVyIG5pZW1lciB2w7xyaGVyZ2jDtmJ0IHNlZ2huLCAgZ2liIGVpbjogICA6bm9obHNlYXJjaAorQW5tw7Zya3VuZzogIFNvbGx0IGtsYWluL2dyb2/DnyBiZWkgYXluZXIgYWluemlnbmVuIFN1ZWNoIHd1cnN0IHNlaW4sICBiZW51dHogIFxjCisgICAgICAgICAgICBpbiBuIFN1ZWNoYXVzZHJ1azogICAvw7xiZXJnZWVcYyA8RUlOPgorfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIFpBTU1FTkZBU1NVTkcgVk9OIERZUiBMRVRaTiA2CisKKyAgMS4gWmlwZiAgbyAgLCAgdW0gYXluIFplaWwgIFVOVEVSSEFMQiBuIE3DtnJrbCB6IMO2ZmZuZW4gdW5kIGQgRWluZsO8ZWdhcnR3ZWlzIHoKKyAgICAgICAgICAgICAgICAgZ2lubmVuLgorICAgICBaaXBmICBPICAsICB1bSBheW4gWmVpbCBPQkVSSEFMQiBuIE3DtnJrbCB6IMO2ZmZuZW4uCisKKyAgMi4gWmlwZiAgYSAgLCAgdW0gTkFBQ0ggbiBNw7Zya2wgYXluIEd3b3J0IGVpbnpmw7xlZ24uCisgICAgIFppcGYgIEEgICwgIHVtIGF5biBHd29ydCBuYWFjaCBuIFplaWxuZW5kIGFuembDvGVnbi4KKworICAzLiBEIEZhdWR1bmcgIGUgIGJyaW5ndCBkaSBnYW4gbiBFbmQgdm9uIGF5bm4gV29ydC4KKworICA0LiBEeXIgUGZlbWVyZXIgIHkgICjCu3lhbmvCqykgYWFtdCDDtmJicywgIHAgICjCu3B1dMKrKSBmw7xlZ3QgZMO2cyBlaW4uCisKKyAgNS4gQXluIGdyb29zc3MgIFIgIGdlZXQgZXluIGQgRXJzw7Z0enVuZ3NhcnR3ZWlzLCAgaGluc3QgZMOkw58gbXluIDxFU0M+IGRydWNrdC4KKworICA2LiBEIEVpbmdhYWIgdm9uICI6c2V0IHh4eCIgIHPDtnR6dCBkZSBad2lzbCAieHh4Ii4gIEF5biDDlnR0bHljaCBad2lzbG4gc2VpbmQ6CisgICAgICdpYycgJ2lnbm9yZWNhc2UnICAgR3Jvb8OfL2tsYWluIHd1cnN0IGJlaSBheW5lciBTdWVjaAorICAgICAnaXMnICdpbmNzZWFyY2gnICAgIFphaWcgYWF1IHNjaG9vbiBheW4gVGFpbMO8YmVyYWluc3RpbW11bmcKKyAgICAgJ2hscycgJ2hsc2VhcmNoJyAgICBIw7ZiIGFsbHNhbmQgcMOkc3NldG4gQXVzZHLDvGNrIHbDvHJoZXIKKyAgICAgRHlyIFNjaGFsdHRlcm5hbSBrYW4gaW4gZHlyIEt1cnotIG9sZGVyIExhbmdmb3JtIGFuZ8O2Ym4gd2VyZG4uCisKKyAgNy4gU3TDtmxsIHluIGF5bmVyIFp3aXNsICJubyIgdm9yYW4sIGTDpMOfc3QgeXMgYWJzY2hhbHR0c3Q6ICAgOnNldCBub2ljCit+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+CisgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNy4xOiBBWU4gSElMRkdXT1JUIEFVRlJVRUZGRU4KKworCisgICAgICAgICAgICAqKiBOdXR6IGTDtnMgZWluYmF1dGUgSGlsZmdlYsOkdSwgZGUgIkJldHJpYnNhbmxhaXR0dW5nIiAqKgorCisgIEV5biBuIFdpbW0gIGlzdCBheW4gYXVzZsO8ZXJsaWNoZSAiR2VicmF1Y2hzYW53ZWlzdW5nIiAgZWluYmF1dC4gIEbDvHIgcyBFZXJzdGUKKyAgcHLDtmJsdCBhaW5mYWNoIGFpbnMgdm9uIGRlbmUgZHJldSBhdXM6CisgICAgLSBEcnVjayBkIDxISUxGPi1UYXN0biwgd2VubnN0IMO2YmJlbm4gYWluZSBoYWFzdC4KKyAgICAtIERydWNrIGRlIFRhc3RuIDxGMT4sIGZhbGxzc3QgeXMgaGFhc3QuCisgICAgLSBaaXBmICAgOmhlbHAgPEVJTj4KKworICBMaXMgZGkgZXluIHMgSGlsZmZlbnN0ZXIgZWluLCBkeXJtaXRzdCBkcmF1ZmtpbW1zdCwgd2llIGTDtnMgbWl0IGR5ciBIaWxmIGdlZXQuCisgIERlbW1sdCAgPFNUUkc+dyB3ICAsIHVtIHZvbiBhaW5uIEZlbnN0ZXIgem8gbiBhbmRlcm4gem8gbiBTcHJpbmdlbi4KKyAgRGVtbWx0ICAgOnEgPEVJTj4gICwgdW0gcyBIaWxmZmVuc3RlciB6byBuIFNjaGxpZXNzbi4KKworICBEdSBrYW5zdCB6byBzbyBndWV0IHdpZSBhbGxzc2FuZCBheW4gSGlsZiBmaW5kZG4sICBpbmRlbSBkw6TDn3N0IHluIGR5ciBGYXVkdW5nCisgIDpoZWxwICAgYXlubiBBdWVyd2VyZCBuYWFjaHN0w7ZsbHN0IHVuZCBpc3RpZyA8RUlOPiBuaXQgdmVyZ2lzc3QuICBQcsO2Ymx0IGTDtnM6CisKKyAgICAgOmhlbHAgdworICAgICA6aGVscCBjX0NUUkwtRAorICAgICA6aGVscCBpbnNlcnQtaW5kZXgKKyAgICAgOmhlbHAgdXNlci1tYW51YWwKK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNy4yOiBFUlNUw5ZMTCBBWU4gR0lOLVNDSFJJUEYKKworCisgICAgICAgICAgICAqKiBNdXR6IMO2bm4gV2ltbSBtaXQgZGUgZWluYmF1dG4gRmFlaGlna2VpdG4gYXVmICoqCisKKyAgRHlyIFdpbW0gYmVzaXR6dCBheW4gV8O2c24gU2Now6RmdHVuZ2VuLCAgd28gw7xiZXIgbiBVcndpbW0gYXVzaGluZ2VlbmQsIGFiZXIgZGUKKyAgbWVlcmVybiBkeXJ2b24gIHNlaW5kIGluIGR5ciBWb3JnYWFiIGF1c2dzY2hhbHR0LiAgRHlybWl0c3QgbWVlcmVyIGF1cyBuIFdpbW0KKyAgYXVzaGVyaG9sc3QsIGVyc3TDtmxsc3QgYXluICJ2aW1yYyItRGF1dHRpY2h0LgorCisgIDEuIEzDtmcgYXluICJ2aW1yYyItRGF1dHRpY2h0IGFuOyAgZMO2cyBnZWV0ICBpZSBuYWFjaCBCZXRyaWJzZ2Viw6R1ICB2ZXJzY2hpZG46CisgICAgIDplIH4vLnZpbXJjICAgICBmw7xyIHMgQWluc2wKKyAgICAgOmUgJFZJTS9fdmltcmMgIGJlaSBuIEZlbnN0bAorCisgIDIuIElldHogbGlzIMO2bm4gSW5oYWx0IHZvbiBkeXIgQmVpc3BpbC0idmltcmMiLURhdXR0aWNodCBlaW46CisgICAgIDpyICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCisKKyAgMy4gU3BlaWNoZXJ0IGRlIERhdXR0aWNodCBtaXQ6CisgICAgIDp3CisKKyAgNC4gQmVpIG4gbmFlaHN0biBHaW4gdm9uIG4gV2ltbSAgaXN0IGFmdCBkIEbDvGVnbnVzc3bDvHJoZXJow7ZidW5nICB6dWVnc2NoYWx0dC4KKyAgICAgRHUga2Fuc3QgZHlyIGFsbHNzICBleW4gZMO2IERhdXR0aWNodCAgZWluaGluc2NocmVpYm4sICB3YXNzdCBic3TDpG5kaWcgaGFibgorICAgICB3aWxsc3QuIE1lZXJlciBkeXJ6dWUgZXJmYXJzdCB1bnRlcjogICA6aGVscCB2aW1yYy1pbnRybworfn5+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV0em4gNy4zOiBWRVJHw5ZOVFpOCisKKworICAgICAgICAgICAgICAgKiogQmVmZWxoc3plaWxudmVyZ8O2bnR6dW5nIG1pdCA8U1RSRz5kIHVuZCA8VEFCPiAqKgorCisgIDEuIFZlcmd3acOfIGRpLCBkw6TDnyBkeXIgV2ltbSBuaXQgYXVmIG4gVXJ3aW1tLSJHbGFpcyIgZmFydDogICA6c2V0IG5vY3AKKworICAyLiBTY2hhdWcgbmFhY2gsIHfDtmxjaGVybmUgRGF1dHRpY2h0biBkw6TDnyBzIGluIG4gVmVyemFpY2huaXNzIGdlaXQ6ICAgOiFscworICAgICBvbGRlciAgIDohZGlyCisgIDMuIFppcGYgw7ZubiBBbmZhbmcgdm9uIGF5bmVyIEZhdWR1bmc6ICAgOmUKKworICA0LiBEcnVjayAgPFNUUkc+ZCAgLCAgdW5kIGR5ciBXaW1tIHphaWd0IGF5biBMaXN0biB2b24gRmF1ZHVuZ2VuLCAgd28gbWl0ICJlIgorICAgICBhbmdlZW5kLgorICA1LiBEcnVjayAgPFRBQj4gICwgIHVuZCBkeXIgV2ltbSB2ZXJ2b2xsc3TDtm5kaWd0ICDDtm5uIEZhdWR1bmdzbmFtIHpvICI6ZWRpdCIuCisKKyAgNi4gRsO8ZWcgIGF5biBMYWVyemFpY2hlbiAgdW5kIMO2bm4gQW5mYW5nICB2b24gYXluZXIgIGJlc3RlZWhldG4gRGF1dHRpY2h0IGFuOgorICAgICA6ZWRpdCBEQVUKKworICA3LiBEcnVjayA8VEFCPi4gIER5ciBXaW1tIHZlcmfDtm50enQgw7ZubiBOYW0sICBkw7ZzIGhhaXNzdCwgIHdlbm4geXIgYWluZGV1dHRpZworICAgICBpc3QuCitBbm3DtnJrdW5nOiAgRCBWZXJnw7ZudHp1bmcgIGdlaXQgcyBmw7xyIGF5bm4gSGF1ZmZlbiBGYXVkdW5nZW4uICBWZXJzdWVjaCBhaW5mYWNoCisgICAgICAgICAgIDxTVFJHPmQgIHVuZCAgPFRBQj4uICBCc3VuZGVycyBuw7x0emxpY2ggaXN0IGTDtnMgYmVpICAgOmhlbHAgIC4KK35+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBaQU1NRU5GQVNTVU5HIFZPTiBEWVIgTEVUWk4gNworCisKKyAgMS4gWmlwZiAgOmhlbHAgICBvbGRlciBkcnVjayA8RjE+IG9sZGVyIDxISUxGPiwgIHVtIGF5biBIaWxmZmVuc3RlciB6IMO2ZmZuZW4uCisKKyAgMi4gWmlwZiAgOmhlbHAgRkFVRFVORyAgLCB1bSBhdWYgYXluIEhpbGYgZ2FuIGF5bm4gQmVmZWxoIHoga2VtbWVuLgorCisgIDMuIFppcGYgIDxTVFJHPncgdyAgLCB1bSB6byBuIGFuZGVybiBGZW5zdGVyIHogc3ByaW5nZW4uCisKKyAgNC4gWmlwZiAgOnEgICwgdW0gcyBIaWxmZmVuc3RlciB6IHNjaGxpZXNzbi4KKworICA1LiBFcnN0w7ZsbCBheW4gdmltcmMtR2luc2NocmlwZiAgenVlciBTaWNoZXJ1bmcgdm9uIGRlaW5lIE3DtnR6bmVpbnN0w7ZsbHVuZ2VuLgorCisgIDYuIERydWNrIDxTVFJHPmQsIGFmdCBkw6TDn3N0IG5hYWNoICA6ICBtaXQgYXluZXIgRmF1ZHVuZyBhbmdmYW5ndCBoYWFzdCwgIGR5ci0KKyAgICAgbWl0c3QgbcO8Z2xpY2hlIFZlcmfDtm50enVuZ2VuIGFuemFpZ3Qga3JpZWdzdC4KKyAgICAgRHJ1Y2sgPFRBQj4gZsO8ciBhaW4gVmVydm9sbHN0w7ZuZGlndW5nIHlsbGFpbi4KKworCisKKworCisKK35+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+fn4KKworICBEw7ZzIHfDpHIgaWV0emV0IHMgRW5kIHZvbiBuIFdpbW1zY2hhaW5lci4gIEdhbmdlbiBpc3QgcyBkYWEgZHJ1bSwgIGF5bm4ga3VydHpuCisgIHVuZCBiw7xuZGlnbmVuIMOcYmVyYmxpayDDvGJlciBzIEJsYXQgIFdJTU0geiBsaWZlcm4sICBuZXR0eSB2aWwgZ251ZWcsICBkw6TDnyBteW4KKyAgZsO8ciBzIEVlcnN0ZSAgd2lya2xpY2ggw7ZiYnMgIGR5cm1pdCBhbmZhbmdlbiBrYW4uICBEeXJtaXQgaXN0IHMgYWJlciBhdWYga2FpbgorICBXZWl0biBub24gbml0IHRhYW47ICBkeXIgV2ltbSBoYWF0IHNjaG9vbiBub24gdmlsIG1lZXJlciAgYXVmIExhZ2VyLiAgTGlzIGFscworICBOYWVoc3RzIGF5bm1hYWwgcyBCZW51dHplcmhhbmRidWVjaDogICA6aGVscCB1c2VyLW1hbnVhbCAgIC4KKworICBabyBuIFdlaXRlcmzDtnNuIHVuZCBXZWl0ZXJsZXJuZW4gd8O2ciBkw7ZzIEJ1ZWNoIGRhYWRlciB6byBuIEVtcGZlbGhlbjoKKyAgICBWaW0gLSBWaSBJbXByb3ZlZCAtIHZvbiBuIE9VQUxMSU5FIFN0ZXZlCisgICAgVmVybGFhZzogTmV3IFJpZGVycworICBEw7ZzIGlzdCBkw7ZzIGVlcnN0ZSBCdWVjaCwgd28gZ2FueiB5biBuIFdpbW0gZ3dpZG10IGlzdCwgbmV0dHkgZMO2cyBHcmVjaHRlIGbDvHIKKyAgQW5mw7ZuZ2VyLiBFcyBoYWF0IGF5biBXw7ZzbiBCZWlzcGlsZXIgdW5kIGFhdSBCaWxkZXIgZHJpbm4uCisgIFNlZSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAorCisgIETDtnMgZm9sZ2V0ZSBCdWVjaCAgaXN0IHNjaG9vbiDDtmx0ZXIgdW5kIG1lZXJlciAgw7xiZXIgbiBVcndpbW0gIGFscyB3aWUgw7xiZXIgbgorICBXaW1tLCAgYWJlciBhYXUgem8gbiBFbXBmZWxoZW46ICAgVGV4dGJlYXJiZWl0dW5nIG1pdCBkZW0gdmktRWRpdG9yIC0gdm9uIGR5cgorICBMQU1CIExpbmRhIHVuZCBuIFJPQkJJTlMgQXJub2xkICAtICBWZXJsYWFnIE8nUmVpbGx5ICAtIEJ1ZWNobGFpdHR6YWwgKElTQk4pOgorICAzODk3MjExMjYyCisgIEluIGTDtm5uIEJ1ZWNoICBrYW4gbXluIGZhc3QgYWxsc3MgZmluZGRuLCAgd2FzIG15biBtaXQgbiBVcndpbW0gYW5nZWVuIG1lY2h0LgorICBEZSBzw7Z4dGUgQXVzZ2FhYiBlbnRoYWx0dCBhYXUgc2Nob29uIMO2YmJzIMO8YmVyIG4gV2ltbS4KKyAgQWxzIGlldHp1bmRlIEJlenVnbmlzcyAgZsO8ciBkIEZhc3N1bmcgIDYuMiAgdW5kIGF5biBwZnJlbmdlIEVpbmbDvGVydW5nICBkaWVudAorICBkw7ZzIGZvbGdldGUgQnVlY2g6CisgICAgdmltIGdlLXBhY2t0ICB2b24gbiBXT0JTVCBSZWluaGFyZAorICAgIG1pdHAtVmVybGFhZywgQnVlY2hsYWl0dHphbCAzLTgyNjYtMTQyNS05CisgIFRyb3R6IGR5ciByZWNodCBwZnJlbmdlbiBEYXJzdMO2bGx1bmcgIGlzdCBzIGR1cmNoIHNlaW5lIHZpbG4gbsO8dHpsaWNobmVuIEJlaS0KKyAgc3BpbGVyIGFhdSBmw7xyIEVpbnN0ZWlnZXIgZ3JhZCBncmVjaHQuICBQcm9iaGFldXBzdGVyIHVuZCBkZSBCZWlzcGlsc2NocmlwZmVyCisgIHNlaW5kIHplc2lnIHpvIG4gS3JpZWduOyBzZWUgaHR0cDovL2ljY2YtaG9sbGFuZC5vcmcvY2xpY2s1Lmh0bWwKKworICBWZXJmYXNzdCBoYWJuZCBkw7ZubiBTY2hhaW5lciBkeXIgUElFUkNFIE1pY2hhZWwgQy4gdW5kIFdBUkUgUm9iZXJ0IEsuIHZvbiBkeXIKKyAgS29scmFhZGVyIEtuYXBwbnNjaHVlbCAoQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzKS4gRXIgYmVydWV0IGF1ZiBFbnR3w7xyZmYsIHdvCisgIGR5ciBTTUlUSCBDaGFybGVzICB2b24gZHlyICBLb2xyYWFkZXIgQWxsc2NodWVsICAoQ29sb3JhZG8gU3RhdGUgIFVuaXZlcnNpdHkpCisgIHp1ZXIgVmVyZsO8ZWd1bmcgZ3N0w7ZsbHQgaGFhdC4gR3VuZHBvc3Q6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKyAgRsO8ciBuIFdpbW0gaGFhdCBuIGR5ciBNT09MRU5BQVIgQnJhbSBiYXJlY2h0dC4KKyAgRGUgYmFpcmlzY2hlIMOcYmVyc8O2dHp1bmcgc3RhbW10IHZvbiBuIEhFTEwgU2VwcCAyMDA5LiBTZWluIEd1bmRwb3N0YnLDpGNodCBpc3QKKyAgc3R1cm1pYnVuZEB0LW9ubGluZS5kZSAKKworfn5+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+fgorICAKKworIAorCisKKwpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5lbyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFjMDY4OQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZW8KQEAgLTAsMCArMSw5ODkgQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPSAgQiBvIG4gdiBlIG4gbyBuICBhbCAgbGEgIEkgbiBzIHQgciB1IGkgbCBvICBkZSAgViBJIE0gIC0gIFZlcnNpbyAxLjcuZW8uMiA9Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgVmltIGVzdGFzIHRyZSBwb3RlbmNhIHJlZGFrdGlsbywga2l1IGhhdmFzIG11bHRham4ga29tYW5kb2puLCB0cm8gZGEgaWxpCisgICBwb3Ig5mlvbiBrbGFyaWdpIGVuIGluc3RydWlsbyBraWVsIOZpIHRpdS4gxmkgdGl1IGluc3RydWlsbyBlc3RhcworICAgZmFzb25pdGEgcG9yIHByaXNrcmliaSBzdWZp5mFqbiBrb21hbmRvam4sIHBvciBrZSB2aSBrYXBhYmx1IHV6aSBWaW0KKyAgIGt1biBzdWZp5mEgZmFjaWxlY28uCisKKyAgIExhIHRlbXBvIGJlem9uYXRhIHBvciBwbGVudW1pIGxhIGt1cnNvbiBlc3RhcyAyNS0zMCBtaW51dG9qLCBrYWogZGVwZW5kYXMKKyAgIGRlIGtpb20gZGEgdGVtcG8gZXN0YXMgdXphdGEgcG9yIGVrc3BlcmltZW50aS4KKworICAgQVRFTlRVOgorICAgTGEga29tYW5kb2ogZW4gbGEgbGVjaW9ub2og/mFu+G9zIGxhIHRla3N0b24uIEtvcGl1IHRpdW4g5mkgZG9zaWVyb24KKyAgIHBvciBla3plcmNpIHZpbiAoc2UgdmkgbGFu5mlzICJ2aW10dXRvciIsIHRpYW0gZXN0YXMgamFtIGtvcGlvKS4KKworICAgR3JhdmFzIG1lbW9yaSwga2Ug5mkgdGl1IGluc3RydWlsbyBlc3RhcyBvcmdhbml6YXRhIHBvciBpbnN0cnVpIHBlcgorICAgbGEgdXpvLiBUaW8gc2lnbmlmYXMsIGtlIHZpIGRldmFzIHBsZW51bWkgbGEga29tYW5kb2puIHBvciBib25lIGxlcm5pCisgICBpbGluLiBTZSB2aSBudXIgbGVnYXMgbGEgdGVrc3RvbiwgdmkgZm9yZ2Vzb3MgbGEga29tYW5kb2puIQorCisgICBOdW4sIGNlcnRpZ3UsIGtlIGxhIG1hanVza2xhIGJhc2t1bG8gTkUgZXN0YXMgZW4gcmX4aW1vIG1hanVza2xhLAorICAga2FqIHByZW11IGxhIGtsYXZvbiAgaiAgc3VmaeZlIGRhIGZvam9qIHBvciBtb3ZpIGxhIGt1cnNvcm9uLCBrYWogcG9yCisgICBrZSBsYSBsZWNpb25vIDEuMSBwbGVuaWd1IGxhIGVrcmFub24uCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMS4xOiAgTU9WSSBMQSBLVVJTT1JPTgorCisKKyAgKiogUG9yIG1vdmkgbGEga3Vyc29yb24sIHByZW11IGxhIGgsaixrLGwga2xhdm9qbiBraWVsIG1vbnRyaXRlLiAqKgorICAgICAgICAgXgorICAgICAgICAgayAgICAgICAgS29uc2lsbzogTGEga2xhdm8gaCBlc3RhcyBsYSBwbGVqIGxpdmEga2FqIG1vdmFzIGxpdmVuLgorICAgPCBoICAgICAgIGwgPiAgICAgICAgICAgTGEga2xhdm8gbCBlc3RhcyBsYSBwbGVqIGRla3N0cmEga2FqIG1vdmFzIGRla3N0cmVuLgorICAgICAgICAgaiAgICAgICAgICAgICAgICAgTGEga2xhdm8gaiBhc3Bla3RhcyBraWVsIG1hbHN1cHJlbmEgc2Fnby4KKyAgICAgICAgIHYKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiBzdXIgbGEgZWtyYW5vIPhpcyBraWFtIHZpIHNlbnRhcyB2aW4ga29tZm9ydGEuCisKKyAgMi4gUHJlbXUgbGEga2xhdm9uIChqKSD4aXMga2lhbSD4aSByaXBldGFzLgorICAgICBWaSBudW4gc2NpYXMsIGtpZWwgbW92afhpIGFsIGxhIHNla3ZhbnRhIGxlY2lvbm8KKworICAzLiBVemFudGUgbGEgbWFsc3VwcmVuYW4ga2xhdm9uLCBtb3Zp+HUgYWwgbGEgbGVjaW9ubyAxLjIuCisKK1JJTUFSS086IFNlIHZpIGR1YmFzIHByaSB0aW8sIGtpb24gdmkgcHJlbWlzLCBwcmVtdSA8RVNLPiBwb3IgcmVpcmkgYWwKKyAgICAgICAgIGxhIG5vcm1hbGEgcmX4aW1vLiBUaWFtIHJlcHJlbXUgbGEgZGV6aXJhdGFuIGtvbWFuZG9uLgorCitSSU1BUktPOiBMYSBrbGF2b2ogZGUgbGEga3Vyc29ybyBkZXZ1cyBhbmth/SBmdW5rY2lpLiBTZWQgdXphbnRlIGhqa2wsCisgICAgICAgICB2aSBrYXBhYmxvcyBtb3Zp+GkgcGxpIHJhcGlkZSBwb3N0IGtpYW0gdmkga3V0aW1p+G9zLgorCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMS4yOiAgRUxJUkkgRUwgVklNCisKKworICAhISBSSU1BUktPOiBBbnRh/SBvbCBwbGVudW1pIGl1am4gc3ViYWpuIHBh/m9qbiBham4sIGxlZ3UgbGEgdHV0YW4gbGVjaW9ub24hIQorCisgIDEuIFByZW11IGxhIGtsYXZvbiA8RVNLPiAocG9yIGNlcnRpZ2ksIGtlIHZpIGVzdGFzIGVuIG5vcm1hbGEgcmX4aW1vKS4KKworICAyLiBUYWpwdTogICAgICAgOnEhIDxFbmVua2xhdm8+LgorICAgICBUaW8gZWxpcmFzIGVsIGxhIHJla2Rha3RpbG8sIFNFTiBrb25zZXJ2aSBsYSD+YW74b2puLCBraXVqbiB2aSBmYXJpcy4KKworICAzLiBLaWFtIHZpIHZpZGFzIGxhIP5lbGludml0b24sIHRhanB1IGxhIGtvbWFuZG9uIGtpdW4gdmkgdXppcyBwb3IgZW5pcmkKKyAgICAgZW4g5mkgdGl1IGluc3RydWlsby4gVGlvIGVzdHVzOiAgIHZpbXR1dG9yIDxFbmVua2xhdm8+CisKKyAgNC4gU2UgdmkgbWVtb3JpcyB0aXVqbiBwYf5vam4ga2FqIHNlbnRhcyB2aW4gbWVtZmlkYSwgcGxlbnVtdSBsYSBwYf5vam4KKyAgICAgMSD4aXMgMyBwb3IgZWxpcmkga2FqIHJlZW5pcmkgbGEgcmVkYWt0aWxvbi4KKworUklNQVJLTzogOnEhIDxFbmVua2xhdm8+IGVsaXJhcyBzZW4ga29uc2VydmkgbGEg/mFu+G9qbiwga2l1am4gdmkgZmFyaXMuCisgICAgICAgICBQb3N0IGtlbGthaiBsZWNpb25vaiwgdmkgbGVybm9zIGtpZWwga29uc2VydmkgbGEg/mFu+G9qbiBhbCBkb3NpZXJvLgorCisgIDUuIE1vdnUgbGEga3Vyc29yb24gc3ViZW4g+GlzIGxhIGxlY2lvbm8gMS4zLgorCit+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+fn4KKyAgICAgICAgICAgICAgICAgICBMZWNpb25vIDEuMzogIFJFREFLVE8gREUgVEVLU1RPIC0gRk9SVkneTworCisKKyAgICAgICAgICAgICAqKiBQcmVtdSAgeCAgcG9yIGZvcnZp/mkgbGEgc2lnbm9uIHN1YiBsYSBrdXJzb3JvLiAqKgorCisgIDEuIE1vdnUgbGEga3Vyc29yb24gYWwgbGEgc3ViYSBsaW5pbyBtYXJraXRhIHBlciAtLS0+LgorCisgIDIuIFBvciBrb3Jla3RpIGxhIGVyYXJvam4sIG1vdnUgbGEga3Vyc29yb24g+GlzIGtpYW0g+GkgZXN0YXMgc3VyIGxhCisgICAgIGZvcnZp/mVuZGEgc2lnbm8uCisKKyAgMy4gUHJlbXUgbGEga2xhdm9uICB4ICBwb3IgZm9ydmn+aSBsYSBuZWRlemlyYXRhbiBzaWdub24uCisKKyAgNC4gUmlwZXR1IHBh/m9qbiAyIPhpcyA0IPhpcyBraWFtIGxhIGZyYXpvIGVzdGFzIPh1c3RhLgorCisKKy0tLT4gTGEgYm9vdmlubm8gc2FhbHRpc3Mgc3N1ciBsYWEgbHV1bm8uCisKKyAgNS4gUG9zdCBraWFtIGxhIGxpbmlvIGVzdGFzIPh1c3RhLCBpcnUgYWwgbGEgbGVjaW9ubyAxLjQKKworUklNQVJLTzogVHJhaXJhbnRlIGxhIGluc3RydWlsb24sIG5lIHByb3Z1IG1lbW9yaSwgbGVybnUgcGVyIGxhIHV6by4KKworCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDEuNDogIFJFREFLVE8gREUgVEVLU1RPIC0gRU5NRVRPCisKKworICAgICAgICAgICAgICAgICAgICAgICoqIFByZW11ICBpICBwb3IgZW5tZXRpIHRla3N0b24uICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSB1bnVhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KKworICAyLiBQb3IgaWdpIGxhIHVudWFuIGxpbmlvbiBzYW1hIGtpZWwgbGEgZHVhLCBtb3Z1IGxhIGt1cnNvcm9uIHN1ciBsYSB1bnVhbgorICAgICBzaWdub24gcG9zdCBraWUgbGEgdGVrc3RvIGVzdGFzIGVubWV0ZW5kYS4KKworICAzLiBQcmVtdSAgaSAga2FqIHRhanB1IGxhIGJlem9uYXRham4gYWxkb25vam4uCisKKyAgNC4gUHJlbXUgPEVTSz4ga2lhbSBsYSBlcmFyb2ogZXN0YXMga29yZWt0aXRhaiBwb3IgcmVpcmkgYWwgbGEgbm9ybWFsYQorICAgICByZfhpbW8uIFJpcGV0dSBsYSBwYf5vam4gMiD4aXMgNCBwb3Iga29yZWt0aSBsYSBmcmF6b24uCisKKy0tLT4gTWFuayBlbiDmaSBsaW5pby4KKy0tLT4gTWFua2FzIHRla3N0b24gZW4g5mkgdGl1IGxpbmlvLgorCisgIDUuIEtpYW0gdmkgc2VudGFzIHZpbiBrb21mb3J0YSBwcmkgZW5tZXRvIGRlIHRla3N0bywgbW92afh1IGFsIGxhCisgICAgIGxlY2lvbm8gMS41LgorCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICBMZWNpb25vIDEuNTogIFJFREFLVE8gREUgVEVLU1RPIC0gUE9TVEFMRE9OTworCisKKyAgICAgICAgICAgICAgICAgICAgKiogUHJlbXUgIEEgIHBvciBwb3N0YWxkb25pIHRla3N0b24uICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSB1bnVhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KKyAgICAgTmUgZ3JhdmFzIHN1ciBraXUgc2lnbm8gZXN0YXMgbGEga3Vyc29yby4KKworICAyLiBQcmVtdSBtYWp1c2tsYW4gIEEgIGthaiB0YWpwdSBsYSBiZXpvbmF0YWpuIGFsZG9ub2puLgorCisgIDMuIFBvc3Qga2lhbSBsYSB0ZWtzdG8gZXN0YXMgYWxkb25pdGEsIHByZW11IDxFU0s+IHBvciByZWlyaSBhbCBsYSBub3JtYWxhCisgICAgIHJl+Gltby4KKworICA0LiBNb3Z1IGxhIGt1cnNvcm9uIGFsIGxhIGR1YSBsaW5pbyBtYXJraXRhIHBlciAtLS0+IGthaiByaXBldHUgbGEKKyAgICAgcGH+b2puIDIga2FqIDMgcG9yIGtvcmVrdGkgbGEgZnJhem9uLgorCistLS0+IE1hbmthcyB0ZWtzdG8gZWwgdGkKKyAgICAgTWFua2FzIHRla3N0byBlbCB0aXUgbGluaW8uCistLS0+IE1hbmthcyBhbmth/SB0ZWtzCisgICAgIE1hbmthcyBhbmth/SB0ZWtzdG8g5mkgdGllLgorCisgIDUgS2lhbSB2aSBzZW50YXMgdmluIGtvbWZvcnRhIHByaSBwb3N0YWxkb25vIGRlIHRla3N0bywgbW92afh1IGFsIGxhCisgICAgbGVjaW9ubyAxLjYKKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDEuNjogIFJFREFLVEkgRE9TSUVST04KKworICAgICAgICAgICAgICAgICoqIFV6dSAgOndxICBwb3Iga29uc2VydmkgZG9zaWVyb24ga2FqIGVsaXJpLiAqKgorCisgICEhIFJJTUFSS086IEFudGH9IG9sIHBsZW51bWkgaXVuIHN1YmFuIHBh/m9uIGFqbiwgbGVndSBsYSB0dXRhbiBsZWNpb25vbiEhCisKKyAgMS4gRWxpcnUgZWwgbGEgaW5zdHJ1aWxvIGtpZWwgdmkgZmFyaXMgZW4gbGEgbGVjaW9ubyAxLjI6ICA6cSEKKworICAyLiDGZSBsYSD+ZWxpbnZpdG8sIHRhanB1IOZpIHRpdW4ga29tYW5kb246ICB2aW0gdHV0b3IgPEVuZW5rbGF2bz4KKyAgICAgJ3ZpbScgZXN0YXMgbGEga29tYW5kbyBwb3IgbGFu5mkgbGEgcmVkYWt0aWxvbiBWaW0sICd0dXRvcicgZXN0YXMgbGEKKyAgICAgZG9zaWVybm9tbyBkZSBsYSBkb3NpZXJvLCBraXVuIHZpIHZvbGFzIHJlZGFrdGkuICBVenUgZG9zaWVyb24sIGtpdQorICAgICD+YW74ZWJsYXMuCisKKyAgMy4gRW5tZXR1IGthaiBmb3J2af51IHRla3N0b24sIGtpZWwgdmkgbGVybmlzIGVuIGxhIGFudGH9YWogbGVjaW9ub2ouCisKKyAgNC4gS29uc2VydnUgbGEgZG9zaWVyb24ga3VuIP5hbvhvaiBrYWogZWxpcnUgZWwgVmltIHBlcjogIDp3cSAgPEVuZW5rbGF2bz4KKworICA1LiBSZWxhbuZ1IGxhIGluc3RydWlsb24gdmltdHV0b3Iga2FqIG1vdmn4dSBzdWJlbiBhbCBsYSBzZWt2YW50YSByZXN1bW8uCisKKyAgNi4gUG9zdCBraWFtIHZpIGxlZ2lzIGxhIHN1cHJham4gcGH+b2puLCBrYWoga29tcHJlbmlzIGlsaW46IGZhcnUgaWxpbi4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAxIFJFU1VNTworCisKKyAgMS4gTGEga3Vyc29ybyBtb3Zp+GFzIGH9IHBlciBsYSBzYWdva2xhdm9qLCBh/SBwZXIgbGEga2xhdm9qIGhqa2wuCisgICAgICAgIGggKGxpdmVuKSAgICAgaiAoc3ViZW4pICAgICAgayAoc3VwcmVuKSAgICAgbCAoZGVrc3RyZW4pCisKKyAgMi4gUG9yIGxhbuZpIFZpbSBlbCBsYSD+ZWxpbnZpdG8sIHRhanB1OiAgdmltIERPU0lFUk5PTU8gPEVuZW5rbGF2bz4KKworICAzLiBQb3IgZWxpcmkgZWwgVmltLCB0YWpwdTogIDxFU0s+ICA6cSEgPEVuZW5rbGF2bz4gIHBvciByZXppZ25pIGxhIP5hbvhvam4KKworICA0LiBQb3IgZm9ydmn+aSBsYSBzaWdub2puIOZlIGxhIHBvemljaW8gZGUgbGEga3Vyc29ybywgdGFqcHU6ICB4CisKKyAgNS4gUG9yIGVubWV0aSBh/SBwb3N0YWxkb25pIHRla3N0b24sIHRhanB1OgorICAgICAgICAgIGkgIHRhanB1IGVubWV0ZW5kYW4gdGVrc3RvbiAgICAgICAgPEVTSz4KKyAgICAgICAgICAgICBlbm1ldGFzIHRla3N0b24gYW50Yf0gbGEga3Vyc29ybworCisgICAgICAgICAgQSAgdGFqcHUgbGEgcG9zdGFsZG9uZW5kYW4gdGVrc3RvbiA8RVNLPgorICAgICAgICAgICAgIHBvc3RhbGRvbmFzIHBvc3QgbGEga3Vyc29ybworCitSSU1BUktPOiBQcmVtbyBkZSA8RVNLPiBpcmFzIGFsIGxhIG5vcm1hbGEgcmX4aW1vLCBh/SByZXppZ25hcyBsYQorICAgICAgICAgbmVkZXppcmF0YW4gYf0gcGFydGUgcGxlbnVtaXRhIGtvbWFuZG8uCisKK051biBkYf1yaWd1IGFsIGxhIGxlY2lvbm8gMi4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMi4xOiBLT01BTkRPSiBERSBGT1JWSd5PCisKKworICAgICAgICAgICAgICAgICAgICAgICoqIFRhanB1ICBkdyAgcG9yIGZvcnZp/mkgdm9ydG9uLiAqKgorCisgIDEuIFByZW11ICA8RVNLPiAgcG9yIGNlcnRpZ2ksIGtlIHZpIGVzdGFzIGVuIG5vcm1hbGEgcmX4aW1vLgorCisgIDIuIE1vdnUgbGEga3Vyc29yb24gYWwgbGEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KKworICAzLiBNb3Z1IGxhIGt1cnNvcm9uIGFsIGxhIGtvbWVuY28gZGUgdm9ydG8sIGtpdSBmb3J2af5lbmRhcy4KKworICA0LiBUYWpwdSAgIGR3ICAgcG9yIGZvcnZp/mkgbGEgdm9ydG9uLgorCisgIFJJTUFSS086IExhIGxpdGVybyAgZCAgYXBlcm9zIGVuIGxhIGxhc3RhIGxpbmlvIHN1ciBsYSBla3Jhbm8ga2lhbSB2aQorICAgICAgICAgICB0YWpwYXMg+GluLiBWaW0gYXRlbmRhcyD4aXMga2lhbSB2aSB0YWpwYXMgIHcgLiAgU2UgdmkgdmlkYXMKKyAgICAgICAgICAgYWxpYW4gc2lnbm9uIG9sICBkICB2aSB0YWpwaXMgaW9uIG1pc2U7IHByZW11ICA8RVNLPiAga2FqCisgICAgICAgICAgIHJla29tZW5jdS4KKworLS0tPiBFc3RhcyBpdWogdm9ydG9qIGtpdWogWmFtZW5ob2YgbmUgZGV2dXMgZXN0aSBha3V6YXRpdm8gZW4g5mkgdGl1IGZyYXpvLgorCisgIDUuIFJpcGV0dSBwYf5vam4gMyBrYWogNCD4aXMga2lhbSBsYSBmcmF6byBlc3RhcyD4dXN0YSBrYWogbW92afh1IGFsIGxhCisgICAgIGxlY2lvbm8gMi4yLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAyLjI6IFBMSUFKIEtPTUFORE9KIERFIEZPUlZJ3k8KKworCisgICAgICAgICAgICAgICAqKiBUYWpwdSAgZCQgIHBvciBmb3J2af5pIGxhIGZpbm9uIGRlIGxhIGxpbmlvLiAqKgorCisgIDEuIFByZW11ICA8RVNLPiAgcG9yIGNlcnRpZ2ksIGtlIHZpIGVzdGFzIGVuIG5vcm1hbGEgcmX4aW1vLgorCisgIDIuIE1vdnUgbGEga3Vyc29yb24gc3VyIGxhIHN1YmFuIGxpbmlvbiBtYXJraXRhIHBlciAtLS0+LgorCisgIDMuIE1vdnUgbGEga3Vyc29yb24g5mUgbGEgZmlubyBkZSBsYSD4dXN0YSBsaW5pbyAoUE9TVCBsYSB1bnVhIC4gKS4KKworICA0LiBUYWpwdSAgIGQkICAgcG9yIGZvcml2/mkg+GlzIGxhIGZpbm8gZGUgbGEgbGluaW8uCisKKy0tLT4gSXUgdGFqcGlzIGxhIGZpbm9uIGRlIOZpIHRpdSBsaW5pbyBkdWZvamUuIGZpbm8gZGUg5mkgdGl1IGxpbmlvIGR1Zm9qZS4KKworCisgIDUuIE1vdmn4dSBhbCBsYSBsZWNpb25vIDIuMyBwb3Iga29tcHJlbmkga2lvIG9rYXphcy4KKworCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAyLjM6IFBSSSBPUEVSQVRPUk9KIEtBSiBNT1ZPSgorCisKKyAgTXVsdGFqIGtvbWFuZG9qLCBraXVqIP5hbvhhcyBsYSB0ZWtzdG9uLCBlc3RhcyBmYXJpdGFqIGRlIG9wZXJhdG9ybyBrYWoKKyAgbW92by4gTGEgZm9ybWF0byBkZSBrb21hbmRvIGRlIGZvcnZp/m8gcGVyIGxhIG9wZXJhdG9ybyBkZSBmb3J2af5vICBkCisgIGVzdGFzIGtpZWwgc2VrdmFzOgorCisgICAgICAgZCAgIG1vdm8KKworICBLaWU6CisgICAgZCAgICAgIC0gZXN0YXMgbGEgb3BlcmF0b3JvIGRlIG1vdm8KKyAgICBtb3ZvICAgLSBlc3RhcyB0aW8sIHByaSBraW8gbGEgb3BlcmF0b3JvIG9wZXJhY2lvcyAobGlzdGlnaXRhIHN1YmUpCisKKyAgTWFsbG9uZ2EgbGlzdG8gZGUgbW92b2o6CisgICAgdyAtIPhpcyBsYSBrb21lbmNvIGRlIGxhIHNla3ZhbnRhIHZvcnRvLCBrcm9tIPhpYSB1bnVhIHNpZ25vLgorICAgIGUgLSD4aXMgbGEgZmlubyBkZSBsYSBudW5hIHZvcnRvLCBrcm9tIGxhIGxhc3RhIHNpZ25vLgorICAgICQgLSD4aXMgbGEgZmlubyBkZSBsYSBsaW5pbywga3JvbSBsYSBsYXN0YSBzaWduby4KKworICBEbyB0YWpwbyBkZSAgICdkZScgICBmb3J2af5vcyBla2RlIGxhIGt1cnNvcm8g+GlzIGxhIGZpbm8gZGUgbGEgdm9ydG8uCisKK1JJTUFSS086IFByZW1vIGRlIG51ciBsYSBtb3ZvIGVuIE5vcm1hbGEgcmX4aW1vIHNlbiBvcGVyYXRvcm8gbW92b3MKKyAgICAgICAgIGxhIGt1cnNvcm9uIGtpZWwgc3BlY2lmaXRlLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDIuNDogVVpJIE5PTUJST04gUE9SIE1PVk8KKworICAgICAgICAgICAgICoqIFRhanBvIGRlIG5vbWJybyBhbnRh/SBtb3ZvIHJpcGV0YXMg+GluIGxh/WZvamUuICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiDmZSBsYSBrb21lbmNvIGRlIGxhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KKworICAyLiBUYWpwdSAgMncgIHBvciBtb3ZpIGxhIGt1cnNvcm9uIGplIGR1IHZvcnRvaiBhbnRh/WVuLgorCisgIDMuIFRhanB1ICAzZSAgcG9yIG1vdmkgbGEga3Vyc29yb24g5mUgbGEgZmlubyBkZSBsYSB0cmlhIHZvcnRvIGFudGH9ZW4uCisKKyAgNC4gVGFqcHUgIDAgIChudWwpIHBvciBtb3Zp+Gkg5mUgbGEga29tZW5jbyBkZSBsYSBsaW5pby4KKworCisgIDUuIFJpcGV0dSBwYf5vam4gMiD4aXMgMyBrdW4gbWFsc2FtYWogbm9tYnJvai4KKworLS0tPiBUaW8gZXN0YXMgbnVyIGxpbmlvIGt1biB2b3J0b2osIGtpZSB2aSBwb3ZhcyBtb3Zp+GkuCisKKyAgNi4gTW92afh1IGFsIGxhIGxlY2lvbm8gMi41LgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDIuNTogVVpJIE5PTUJST04gUE9SIEZPUlZJ3kkgUExJCisKKworICAgICAgICAgICAgKiogVGFqcG8gZGUgbm9tYnJvIGt1biBvcGVyYXRvcm8gcmlwZXRhcyD4aW4gbGH9Zm9qZS4gKioKKworICBFbiBsYSBrb21iaW5hvG8gZGUgbGEgb3BlcmF0b3JvIGRlIGZvcnZp/m8sIGthaiBtb3ZvIGtpZWwgbWVuY2lpdGEKKyAg5mktc3VwcmUsIGVibGFzIGFsZG9uaSBub21icm9uIGFudGH9IGxhIG1vdm8gcG9yIHBsaSBmb3J2af5pOgorICAgICAgICBkICBub21icm8gICBtb3ZvCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiDmZSBsYSB1bnVhIE1BSlVTS0xBIHZvcnRvIGVuIGxhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4uCisKKyAgMi4gVGFqcHUgIGQydyAgcG9yIGZvcnZp/mkgbGEgZHUgTUFKVVNLTEFKTiB2b3J0b2puCisKKyAgMy4gUmlwZXR1IHBh/m9qbiAxIPhpcyAyIHBlciBtYWxzYW1hIG5vbWJybyBwb3IgZm9ydmn+aSBsYSBzaW5zZWt2YWpuCisgICAgIE1BSlVTS0xBSk4gdm9ydG9qbiBwZXIgdW51IGtvbWFuZG8KKworLS0tPiBUaXUgQUIgQ0RFIGxpbmlvIEZHSEkgSksgTE1OIE9QIGRlIHZvcnRvaiBlc3RhcyBRIFJTIFRVViBwdXJpZ2l0YS4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAyLjY6IE9QRVJBQ0lJIFNVUiBMSU5JT0oKKworCisgICAgICAgICAgICAgICAgICAgKiogVGFqcHUgIGRkICBwb3IgZm9ydmn+aSB0dXRhbiBsaW5pb24uICoqCisKKyAgUHJvIGxhIG9mdGVjbyBkZSBmb3J2af5vIGRlIHR1dGEgbGluaW8sIGxhIHZlcmtpc3RvIGRlIFZpIGRlY2lkaXMsIGtlCisgIGVzdHVzIHBsaSBmYWNpbGUgc2ltcGxlIHRhanBpIGR1IGQtb2puICBwb3IgZm9ydmn+aSBsaW5pb24uCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiBzdXIgbGEgZHVhbiBsaW5pb24gZW4gbGEgc3ViYSBmcmF6by4KKyAgMi4gVGFqcHUgIGRkICBwb3IgZm9ydmn+aSBsYSBsaW5pb24uCisgIDMuIE51biBtb3Zp+HUgYWwgbGEga3ZhcmEgbGluaW8uCisgIDQuIFRhanB1ICAgMmRkICAgcG9yIGZvcnZp/mkgZHUgbGluaW9qbi4KKworLS0tPiAxKSAgUm96b2ogZXN0YXMgcnX4YWosCistLS0+IDIpICDebGltbyBlc3RhcyBhbXV6YSwKKy0tLT4gMykgIFZpb2xvaiBlc3RhcyBibHVhaiwKKy0tLT4gNCkgIE1pIGhhdmFzIGH9dG9uLAorLS0tPiA1KSAgSG9ybG/4b2ogZGlyYXMga2lvbWEgaG9ybyBlc3RhcywKKy0tLT4gNikgIFN1a2VybyBlc3RhcyBkb2zmYSwKKy0tLT4gNykgIEthaiB0aWVsIHZpIGVzdGFzLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDIuNzogTEEgS09NQU5ETyBERSBNQUxGQVJPCisKKworICoqIFByZW11IHUgcG9yIG1hbGZhcmkgbGEgbGFzdGFqbiBrb21hbmRvam4sIFUgcG9yIHJpcGFyaSBsYSB0dXRhbiBsaW5pb24uICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiDmZSBsYSBzdWJhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4ga2FqIG1ldHUg+GluIHN1cgorICAgICBsYSB1bnVhbiBlcmFyb24uCisgIDIuIFRhanB1ICB4ICBwb3IgZm9ydmn+aSBsYSB1bnVhbiBuZWRlemlyYXRhbiBzaWdub24uCisgIDMuIE51biB0YWpwdSAgdSAgcG9yIG1hbGZhcmkgbGEgbGFzdGFuIHBsZW51bWl0YW4ga29tYW5kb24uCisgIDQuIMZpLWZvamUsIHJpcGFydSDmaXVqbiBlcmFyb2puIGVuIGxhIGxpbmlvIGthaiD4aWEgb3JpZ2luYWxhIHN0YXRvLgorICA1LiBOdW4gdGFqcHUgbWFqdXNrbGFuICBVICBwb3IgaWdpIGxhIGxpbmlvbiBhbCD4aWEgYW50Yf1hIHN0YXRvLgorICA2LiBOdW4gdGFqcHUgIHUgIGtlbGtmb2plIHBvciBtYWxmYXJpIGxhICBVICBrYWogYW50Yf1ham4ga29tYW5kb2puLgorICA3LiBOdW4gdGFqcHUgQ1RSTC1SIChwcmVtYW50ZSBsYSBDVFJMIGtsYXZvbiBkdW0gdmkgcHJlbWFzIFIpIGtlbGtmb2plCisgICAgIHBvciByZWZhcmkgbGEga29tYW5kb2puIChtYWxmYXJpIGxhIG1hbGZhcm9qbikuCisKKy0tLT4gS29vcmVrdGlpIGxhIGVyYXJvam4gc3VyIHRpdXUg5mkgbGluaWlvIGthaiByZW1ldHR1IGlsbGxpbiBwZXIgbWFsZmFyby4KKworICA4LiBUaXVqIGVzdGFzIHRyZSB1dGlsYWoga29tYW5kb2ouICBOdW4gbW92afh1IGFsIGxhIGxlY2lvbm8gMiBSRVNVTU8uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMiBSRVNVTU8KKworCisgIDEuIFBvciBmb3J2af5pIGVrZGUgbGEga3Vyc29ybyD4aXMgbGEgc2VrdmFudGEgdm9ydG8sIHRhanB1OiAgICBkdworICAyLiBQb3IgZm9ydmn+aSBla2RlIGxhIGt1cnNvcm8g+GlzIGxhIGZpbm8gZGUgbGEgbGluaW8sIHRhanB1OiAgZCQKKyAgMy4gUG9yIGZvcnZp/mkgdHV0YW4gbGluaW9uLCB0YWpwdTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRkCisKKyAgNC4gUG9yIHJpcGV0aSBtb3ZvbiwgYW50Yf1tZXR1IG5vbWJyb246ICAgICAgICAgICAgICAgICAgICAgICAgIDJ3CisgIDUuIExhIGZvcm1hdG8gZGUg/mFu+GEga29tYW5kbyBlc3RhczoKKyAgICAgICAgICAgb3BlcmF0b3JvICAgW25vbWJyb10gICBtb3ZvCisKKyAgICAga2llOgorICAgICAgIG9wZXJhdG9ybyAtIGVzdGFzIHRpbywga2lvIGZhcmVuZGFzLCBraWVsICBkICBwb3IgZm9ydmn+aQorICAgICAgIFtub21icm9dICAtIGVzdGFzIG9wY2lhIG5vbWJybyBwb3IgcmlwZXRpIGxhIG1vdm9uCisgICAgICAgbW92byAgICAgIC0gbW92YXMgc3VyIGxhIHRla3N0byBwb3Igb3BlcmFjaWksIGtpZWwgZWt6ZW1wbGUgIHcgKHZvcnRvKSwKKyAgICAgICAgICAgICAgICAgICAkICj4aXMgZmlubyBkZSBsaW5pbyksIGt0cC4KKworICA2LiBQb3IgbW92afhpIGFsIGxhIGtvbWVuY28gZGUgbGEgbGluaW8sIHV6dSBudWw6ICAwCisKKyAgNy4gUG9yIG1hbGZhcmkgYW50Yf1ham4gYWdvam4sIHRhanB1OiAgICAgICAgICAgICAgIHUgKG1pbnVza2xhIHUpCisgICAgIFBvciBtYWxmYXJpIOZpdWpuIP5hbvhvam4gc3VyIGxhIGxpbmlvLCB0YWpwdTogICBVIChtYWp1c2tsYSBVKQorICAgICBQb3IgcmVmYXJpIGxhIG1hbGZhcm9qbiwgdGFqcHU6ICAgICAgICAgICAgICAgICAgQ1RSTC1SCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAzLjEgTEEgS09NQU5ETyBERSBNRVRPCisKKworICAgICoqIFRhanB1ICBwICBwb3IgbWV0aSB0ZWtzdG9uIGZvcnZp/ml0YW4gYW50Yf1lIHBvc3QgbGEga3Vyc29yby4gKioKKworICAxLiBNb3Z1IGxhIGt1cnNvcm9uIOZlIGxhIHVudWEgLS0tPiBzdWJhIGxpbmlvLgorCisgIDIuIFRhanB1ICBkZCAgcG9yIGZvcnZp/mkgbGEgbGluaW9uIGthaiBrb25zZXJ2aSD4aW4gZW5lIGRlIHJl+GlzdHJvIGRlIFZpbS4KKworICAzLiBNb3Z1IGxhIGt1cnNvcm9uIOZlIGxhIGxpbmlvIGMpLCBTVVBFUiBraWUgbGEgZm9ydmn+aXRhIGxpbmlvIGRldnVzIGVzdGkuCisKKyAgNC4gVGFqcHUgIHAgIHBvciBtZXRpIGxhIGxpbmlvbiBzdWIgbGEga3Vyc29yb24uCisKKyAgNS4gUmlwZXR1IGxhIHBh/m9qbiAyIPhpcyA0IHBvciBtZXRpIOZpdWpuIGxpbmlvam4gZW4gbGEg+HVzdGEgb3Jkby4KKworLS0tPiBkKSDGdSBhbmth/SB2aSBwb3ZhcyBsZXJuaT8KKy0tLT4gYikgVmlvbG9qIGVzdGFzIGJsdWFqLAorLS0tPiBjKSBJbnRlbGlnZW50ZWNvIGxlcm5lYmxhcywKKy0tLT4gYSkgUm96b2ogZXN0YXMgcnX4YWosCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDMuMiBMQSBLT01BTkRPIERFIEFOU1RBVEHdSUdPCisKKworICAgICAgICoqIFRhanB1ICByeCAgcG9yIGFuc3RhdGH9aWdpIGxhIHNpZ25vbiDmZSBsYSBrdXJzb3JvIHBlciAgeCAuICoqCisKKworICAxLiBNb3Z1IGxhIGt1cnNvcm9uIOZlIGxhIHVudWEgc3ViYSBsaW5pbyBtYXJraXRhIHBlciAtLS0+LgorCisgIDIuIE1vdnUgbGEga3Vyc29yb24g+GlzIGxhIHVudWEgZXJhcm8uCisKKyAgMy4gVGFqcHUgIHIgIGthaiBsYSBzaWdub24sIGtpdSBkZXZ1cyBlc3RpIHRpZS4KKworICA0LiBSaXBldHUgcGH+b2puIDIga2FqIDMg+GlzIGtpYW0gbGEgdW51YSBsaW5pbyBlZ2FsYXMgbGEgZHVhbi4KKworLS0tPiBLaWVtIHRpdSBsYW5pbyBlc3RpcyB0YWpwaXRhLCBpdSBwcmFtaXMgbGEgbmH4dWZ0YWpuIGtsb3Zvam4hCistLS0+IEtpYW0gdGl1IGxpbmlvIGVzdGlzIHRhanBpdGEsIGl1IHByZW1pcyBsYSBuZfh1c3Rham4ga2xhdm9qbiEKKworICA1LiBOdW4gbW92afh1IGFsIGxhIGxlY2lvbm8gMy4zLgorCitSaW1hcmtvOiBNZW1vcnUsIGtlIHZpIGRldnVzIGxlcm5pIHBlciB1em8sIGthaiBuZSBwZXIgbWVtb3JhZG8uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMy4zIExBIE9QRVJBVE9STyBERSDeQU7YTworCisKKyAgICAgICAgICAgICAgKiogUG9yIP5hbvhpIPhpcyBsYSBmaW5vIGRlIGxhIHZvcnRvLCB0YWpwdSAgY2UgLiAqKgorCisgIDEuIE1vdnUgbGEga3Vyc29yb24g5mUgbGEgdW51YSBzdWJhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4uCisKKyAgMi4gTWV0dSBsYSBrdXJzb3JvbiBzdXIgbGEgIGQgIGVuICBsZHV6dworCisgIDMuIFRhanB1ICBjZSAga2FqIGxhIPh1c3RhbiB2b3J0b24gKGVuIHRpdSDmaSBrYXpvLCB0YWpwdSBpbmlvICkuCisKKyAgNC4gUHJlbXUgPEVTSz4ga2FqIG1vdmn4dSBhbCBsYSBzZWt2YW50YSBzaWdubywga2l1IGJlem9uYXMg/mFu+G9uLgorCisgIDUuIFJpcGV0dSBsYSBwYf5vam4gMyBrYWogNCD4aXMga2lhbSBsYSB1bnVhIGZyYXpvIGVnYWxhcyBsYSBkdWFuLgorCistLS0+IFRpdSBsZHV6dyBoYXZhcyBrZWxrYWpuIHZvcnRvam4sIGtpaWkgYmV6YXMg/mFu+G9uIHBlciBsYSD+YW74b290by4KKy0tLT4gVGl1IGxpbmlvIGhhdmFzIGtlbGtham4gdm9ydG9qbiwga2l1aiBiZXpvbmFzIP5hbvhvbiBwZXIgbGEg/mFu+G9wZXJhdG9yby4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDMuNCBQTElBSiDeQU7YT0ogUEVSIGMKKworCisgICAgICAgKiogTGEgb3BlcmF0b3JvIGRlIP5hbvhvIHV6ZWJsYXMga3VuIGxhIHNhbWEgbW92byBraWVsIGZvcnZp/m8uICoqCisKKyAgMS4gTGEgb3BlcmF0b3JvIGRlIP5hbvhvIGZ1bmtjaWFzIHNhbW1hbmllcmUga2llbCBmb3J2af5vLiBMYSBmb3JtYXRvIGVzdGFzOgorCisgICAgICAgYyAgICBbbm9tYnJvXSAgIG1vdm8KKworICAyLiBMYSBtb3ZvaiBlc3RhcyBzYW1haiwga2llbCBla3plbXBsZSAgIHcgKHZvcnRvKSBrYWogJCAoZmlubyBkZSBsaW5pbykuCisKKyAgMy4gTW92afh1IOZlIGxhIHVudWEgc3ViYSBsaW5pbyBtYXJraXRhIHBlciAtLS0+LgorCisgIDQuIE1vdnUgbGEga3Vyc29yb24gYWwgbGEgdW51YSBlcmFyby4KKworICA1LiBUYWpwdSAgYyQgIGthaiB0YWpwdSBsYSByZXN0b24gZGUgbGEgbGluaW8ga2llbCBsYSBkdWEga2FqIHByZW11IDxFU0s+LgorCistLS0+IExhIGZpbm8gZGUg5mkgdGl1IGxpbmlvIGJlem9uYXMgaGVscG9uIHBvciBpZ2kg+GluIHNhbWUga2llbCBsYSBkdWEuCistLS0+IExhIGZpbm8gZGUg5mkgdGl1IGxpbmlvIGJlem9uYXMga29yZWt0b2puIHBlciB1em8gZGUgbGEga29tYW5kbyAgYyQKKworUklNQVJLTzogIFZpIHBvdmFzIHV6aSBsYSBrbGF2b24gUmV0cm9wYf5vIHBvciBrb3Jla3RpIGVyYXJvam4gZHVtIHZpIHRhanBhcy4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAzIFJFU1VNTworCisKKyAgMS4gUG9yIHJlbWV0aSB0ZWtzdG9uLCBraXVuIHZpILx1cyBmb3J2af5pcywgdGFqcHUgIHAuIFRpbyBtZXRhcyBsYQorICAgICBmb3J2af5pdGFuIHRla3N0b24gUE9TVCBsYSBrdXJzb3JvIChzZSBsaW5pbyBlc3RpcyBmb3J2af5pdGEsIPhpCisgICAgIGlyb3MgZW4gbGEgbGluaW9uIHN1YiBsYSBrdXJzb3JvKS4KKworICAyLiBQb3IgYW5zdGF0Yf1pZ2kgbGEgc2lnbm9uIHN1YiBsYSBrdXJzb3JvLCB0YWpwdSAgciAga2FqIHRpYW0gbGEgc2lnbm9uCisgICAgIGtpb24gdmkgZGV6aXJhcyBoYXZpIHRpZS4KKworICAzLiBMYSBvcGVyYXRvcm8gZGUg/mFu+G8gZWJsaWdhcyBhbCB2aSD+YW74aSBla2RlIGxhIGt1cnNvcm8sIPhpcyBraWUKKyAgICAgbGEgbW92byBpcmFzLiAgRWt6LiB0YWpwdSAgY2UgIHBvciD+YW74aSBla2RlIGxhIGt1cnNvcm8g+GlzIGxhIGZpbm8KKyAgICAgZGUgbGEgdm9ydG8sICBjJCAgcG9yIP5hbvhpIPhpcyBsYSBmaW5vIGRlIGxhIGxpbmlvLgorCisgIDQuIExhIGZvcm1hdG8gZGUg/mFu+G8gZXN0YXM6CisKKyAgICAgICAgIGMgICAgW25vbWJyb10gICBtb3ZvCisKK051biBkYf1yaWd1IGFsIGxhIHNla3ZhbnRhIGxlY2lvbm8uCisKKworfn5+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+CisgICAgICAgICAgICAgIExlY2lvbm8gNC4xOiBQT1pJQ0lPIERFIEtVUlNPUk8gS0FKIFNUQVRPIERFIERPU0lFUk8KKworCisgICoqIFRhanB1IENUUkwtRyBwb3IgbW9udHJpIHZpYW4gcG96aWNpb24gZW4gbGEgZG9zaWVybyBrYWogbGEgZG9zaWVyc3RhdG9uLgorICAgICBUYWpwdSAgRyAgcG9yIG1vdmn4aSBhbCBsaW5pbyBlbiBsYSBkb3NpZXJvLiAqKgorCisgIFJJTUFSS086IExlZ3UgbGEgdHV0YW4gbGVjaW9ub24gYW50Yf0gb2wgcGxlbnVtaSBpdW4gcGH+b24gYWpuISEKKworICAxLiBQcmVtdSBsYSBrbGF2b24gQ3RybCBrYWogcHJlbXUgIGcgLiBPbmkgbm9tYXMgdGlvbiBDVFJMLUcuCisgICAgIE1lc2H4byBhcGVyb3Mg5mUgbGEgc3ViYSBwYXJ0byBkZSBsYSBwYfhvIGt1biBsYSBkb3NpZXJub21vIGthaiBsYQorICAgICBwb3ppY2lvIGVuIGxhIGRvc2llcm8uIE1lbW9ydSBsYSBudW1lcm9uIGRlIGxhIGxpbmlvIHBvciBwYf5vIDMuCisKKyAgUklNQVJLTzogVmkgZWJsZSB2aWRhcyBsYSBwb3ppY2lvbiBkZSBsYSBrdXJzb3JvIOZlIGxhIHN1YmEgZGVrc3RyYQorICAgICAgICAgICBhbmd1bG8gZGUgbGEgZWtyYW5vLiBUaW8gb2themFzIGtpYW0gbGEgYWdvcmRvICdydWxlcicgZXN0YXMKKyAgICAgICAgICAg/mFsdGl0YSAodmlkdSAgOmhlbHAgJ3J1bGVyJykKKworICAyLiBQcmVtdSAgRyAgcG9yIG1vdmn4aSDmZSBsYSBzdWJvIGRlIGxhIGRvc2llcm8uCisgICAgIFRhanB1IGdnICBwb3IgbW92afhpIOZlIGxhIGtvbWVuY28gZGUgbGEgZG9zaWVyby4KKworICAzLiBUYWpwdSBsYSBudW1lcm9uIGRlIGxhIGxpbmlvIGtpZSB2aSBlc3RpcyBrYWogcG9zdGUgRyAuICBUaW8gcmVtb3ZvcworICAgICB2aW4gYWwgbGEgbGluaW8sIGtpZSB2aSBlc3RpcyBraWFtIHZpIHVudWUgcHJlbWlzIENUUkwtRy4KKworICA0LiBTZSB2aSBzZW50YXMgdmluIGtvbWZvcnRhLCBwbGVudW11IHBh/m9qbiAxIPhpcyAzLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyA0LjIgTEEgS09NQU5ETyBERSBTRVLGTworCisKKyAgICAgICAgICAgICAqKiBUYWpwdSAgLyAga2FqIHBvc3RlIGZyYXpvbiBwb3Igc2Vy5mkgbGEgZnJhem9uLiAqKgorCisgIDEuIEVuIG5vcm1hbGEgcmX4aW1vLCB0YWpwdSBsYSAgLyAgc2lnbm9uLiAgUmltYXJrdSwga2Ug+Gkga2FqIGxhIGt1cnNvcm8KKyAgICAgYXBlcmFzIOZlIGxhIHN1YmEgcGFydG8gZGUgbGEgZWtyYW5vIGtpZWwgcG9yIGxhICA6ICBrb21hbmRvLgorCisgIDIuIE51biB0YWpwdSAnZXJyYXJybycgPEVuZW5rbGF2bz4uCisgICAgIFRpbyBlc3RhcyBsYSB2b3J0bywga2lvbiB2aSB2b2xhcyBzZXLmaS4KKworICAzLiBQb3Igc2Vy5mkgbGEgc2FtYW4gZnJhem9uIGRlbm92ZSwgc2ltcGxlIHRhanB1ICBuIC4KKyAgICAgUG9yIHNlcuZpIGxhIHNhbWFuIGZyYXpvbiBkZW5vdmUgZW4gbGEgcmV0cm9kaXJla3RvLCB0YWpwdSAgTiAuCisKKyAgNC4gUG9yIHNlcuZpIGZyYXpvbiBlbiBsYSByZXRyb2RpcmVrdG8sIHV6dSAgPyAgYW5zdGF0Yf0gIC8gLgorCisgIDUuIFBvciByZWlyaSB0aWVuLCBlbCBraWUgdmkgdmVuaXMsIHByZW11ICBDVFJMLU8gKFByZW11IEN0cmwga2FqIG8KKyAgICAgbGl0ZXJvbiBvKS4gIFJpcGV0dSBwb3IgcGxpIHJldHJvaXJpLiAgQ1RSTC1JIGlyYXMgYW50Yf1lbi4KKworLS0tPiAiZXJyYXJybyIgbmUgZXN0YXMgbWFuaWVybyBwb3IgbGl0ZXJ1bWkgZXJhcm87IGVycmFycm8gZXN0YXMgZXJhcm8uCisKK1JJTUFSS086IEtpYW0gbGEgc2Vy5m8gYXRpbmdhcyBsYSBmaW5vbiBkZSBsYSBkb3NpZXJvLCD4aSBkYf1yYXMg5mUgbGEKKyAgICAgICAgIGtvbWVuY28sIGtyb20gc2UgbGEgYWdvcmRvICd3cmFwc2NhbicgZXN0YXMgbWFs/mFsdGl0YS4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNC4zIFNFUsZPIERFIEtPTkdSVUFKIEtSQU1QT0oKKworCisgICAgICAgICAgICAgICAgICoqIFRhanB1ICAlICBwb3IgdHJvdmkga29uZ3J1YW4gKSwgXSBh/SAgfSAqKgorCisgIDEuIFBvemljaXUgbGEga3Vyc29yb24gc3VyIGl1biAoLCBbIGH9IHsgZW4gbGEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KKworICAyLiBOdW4gdGFqcHUgbGEgICUgIHNpZ25vbi4KKworICAzLiBMYSBrdXJzb3JvIG1vdmn4YXMgYWwgbGEga29uZ3J1YSBrcmFtcG8uCisKKyAgNC4gVGFqcHUgICUgIHBvciBtb3ZpIGxhIGt1cnNvcm9uIGFsIGxhIGFsaWEga29uZ3J1YSBrcmFtcG8uCisKKyAgNS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSBhbGlhICgsICksIFssIF0sIHssIH0ga2FqIG9ic2VydnUgdGlvbiwKKyAgICAga2lvbiAgJSAgZmFyYXMuCisKKy0tLT4gxmkgdGl1ICggZXN0YXMgdGVzdGEgbGluaW8ga3VuICgtb2osIFstb2osIF0tb2oga2FqIHstb2osIH0tb2ogZW4g+GkuICkpCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDQuNCBMQSBLT01BTkRPIERFIEFOU1RBVEH9SUdPCisKKworICAgICAqKiBUYWpwdSAgOnMvbWFsbm92YS9ub3ZhL2cgIHBvciBhbnN0YXRh/WlnaSAnbm92YScgcGVyICdtYWxub3ZhJy4gKioKKworICAxLiBNb3Z1IGxhIGt1cnNvcm9uIGFsIGxhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KKworICAyLiBUYWpwdSAgOnMvbGFhL2xhIDxFbmVua2xhdm8+IC4gIFJpbWFya3UsIGtlIGxhIGtvbWFuZG8g/mFu+GFzIG51ciBsYQorICAgICB1bnVhbiBva2F6YbxvbiBkZSAibGFhIiBlbiBsYSBsaW5pby4KKworICAzLiBOdW4gdGFqcHUgIDpzL2xhYS9sYS9nIC4gIEFsZG9ubyBkZSAgZyAgb3BjaW8gc2lnbmlmYXMgbWFsbG9rYW4KKyAgICAgYW5zdGF0Yf1pZ29uIGVuIGxhIGxpbmlvLiDYaSD+YW74YXMg5ml1am4gb2themG8b2puIGRlICJsYWEiIGVuIGxhCisgICAgIGxpbmlvLgorCistLS0+IGxhYSBwbGVqIGJvbmEgdGVtcG8gcG9yIHZpZGkgZmxvcm9qbiBlc3RhcyBlbiBsYWEgcHJpbnRlbXBvLgorCisgIDQuIFBvciD+YW74aSDmaXVqbiBva2F6Ybxvam4gZGUgaXUg5mVuYSBzaWdubyBpbnRlciBkdSBsaW5pb2osCisgICAgIHRhanB1ICAgIDojLCNzL21hbG5vdmEvbm92YS9nICAga2llICMsIyBlc3RhcyBsYSBudW1lcm9qIGRlIGxpbmlvaiBkZSBsYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVydmFsbyBkZSBsYSBsaW5pb2oga2llIGxhIGFuc3RhdGH9aWdvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2them9zLgorICAgICBUYWpwdSAgICA6JXMvbWFsbm92YS9ub3ZhL2cgICAgIHBvciD+YW74aSDmaXVqbiBva2F6Ybxvam4gZW4gbGEgdHV0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvc2llcm8uCisgICAgIFRhanB1ICAgIDpzL21hbG5vdmEvbm92YS9nYyAgICAgcG9yIHRyb3ZpIOZpdWpuIG9rYXphvG9qbiBlbiBsYSB0dXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9zaWVybywga3VuIGludml0aWxvIOZ1IGFuc3RhdGH9aWdpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYf0gbmUuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNCBSRVNVTU8KKworICAxLiBDVFJMLUcgIHZpZGlnYXMgdmlhbiBwb3ppY2lvbiBlbiBsYSBkb3NpZXJvIGthaiBsYSBzdGF0b24gZGUgbGEgZG9zaWVyby4KKyAgICAgICAgICAgIEcgIG1vdmFzIGxhIGt1cnNvcm9uIGFsIGxhIGZpbm8gZGUgbGEgZG9zaWVyby4KKyAgICAgbnVtZXJvIEcgIG1vdmFzIGxhIGt1cnNvcm9uIGFsIG51bWVybyBkZSB0aXUgbGluaW8uCisgICAgICAgICAgIGdnICBtb3ZhcyBsYSBrdXJzb3JvbiBhbCBsYSB1bnVhIGxpbmlvLgorCisgIDIuIFRhanBvIGRlICAvICBrYWogZnJhem9uIHNlcuZhcyBsYSBmcmF6b24gYW50Yf1lbi4KKyAgICAgVGFqcG8gZGUgID8gIGthaiBmcmF6b24gc2Vy5mFzIGxhIGZyYXpvbiBtYWxhbnRh/WVuLgorICAgICBQb3N0IHNlcuZvLCB0YWpwdSBuIHBvciB0cm92aSBsYSBzZWt2YW50YW4gb2themG8b24gZW4gbGEgc2FtYSBkaXJla3RvIGH9CisgICAgIE4gcG9yIHNlcuZpIGVuIGxhIG1hbGEgZGlyZWt0by4KKyAgICAgQ1RSTC1PIG1vdmFzIHZpbiBhbCBsYSBhbnRh/WFqIHBvemljaW9qLCBDVFJMLUkgYWwgbGEgbm92YWogcG96aWNpb2ouCisKKyAgMy4gVGFqcG8gZGUgICUgIGtpYW0gbGEga3Vyc29ybyBlc3RhcyBzdXIgKCwpLFssXSx7IGH9IH0gbW92afhhcyBhbCD4aWEKKyAgICAga29uZ3J1by4KKworICA0LiBQb3IgYW5zdGF0Yf1pZ2kgJ25vdmEnIGVuIGxhIHVudWEgJ21hbG5vdmEnIGVuIGxpbmlvIDpzL21hbG5vdmEvbm92YQorICAgICBQb3IgYW5zdGF0Yf1pZ2kgJ25vdmEnIGVuIOZpdWogJ21hbG5vdmEnLW9qIGVuIGxpbmlvIDpzL21hbG5vdmEvbm92YS9nCisgICAgIFBvciBhbnN0YXRh/WlnaSBmcmF6b24gaW50ZXIgZHUgIy1haiBsaW5pb2ogICAgICAgICAgOiMsI3MvbWFsbm92YS9ub3ZhL2cKKyAgICAgUG9yIGFuc3RhdGH9aWdpIOZpdWpuIG9rYXphvG9qbiBlbiBsYSBkb3NpZXJvICAgICAgICA6JXMvbWFsbm92YS9ub3ZhL2cKKyAgICAgUG9yIGRlbWFuZGkga29uZmlybW9uIOZpdS1mb2plLCBhbGRvbnUgJ2MnICAgICAgICAgICA6JXMvbWFsbm92YS9ub3ZhL2djCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgTGVjaW9ubyA1LjEgS0lFTCBQTEVOVU1JIEVLU1RFUkFOIEtPTUFORE9OCisKKworICAgICAqKiBUYWpwdSAgOiEgIHNla3ZhdGEgZGUgZWtzdGVyYSBrb21hbmRvIHBvciBwbGVudW1pIGxhIGtvbWFuZG9uLiAqKgorCisgIDEuIFRhanB1IGxhIGtvbmF0YW4ga29tYW5kb24gIDogIHBvciBwb3ppY2lpIGxhIGt1cnNvcm9uIOZlIGxhIHN1YmEgcGFydG8KKyAgICAgZGUgbGEgZWtyYW5vLiBUaW8gZWJsaWdhcyB0YWpwYWRvbiBkZSBrb21hbmRvIGVuIGtvbWFuZGEgbGluaW8uCisKKyAgMi4gTnVuIHRhanB1IGxhICAhICAoa3Jpc2lnbm8pIHNpZ25vbi4gVGlvIGVibGlnYXMgYWwgdmkgcGxlbnVtaSBpdW4KKyAgICAgZWtzdGVyYW4g/mVsYW4ga29tYW5kb24gYWpuLgorCisgIDMuIEVremVtcGxlLCB0YWpwdSAgbHMgIHBvc3QgISBrYWogdGFqcHUgPEVuZW5rbGF2bz4uIFRpbyBsaXN0aWdvcyBsYQorICAgICBlbmhhdm9uIGRlIGxhIGRvc2llcnVqbywgc2FtZSBraWVsIHNlIHZpIGVzdGlzIGVuIP5lbGEgaW52aXRvLgorICAgICBB/SB1enUgIDohZGlyICBzZSBscyBuZSBmdW5rY2lhcy4KKworUklNQVJLTzogRWJsYXMgcGxlbnVtaSBpdW4gZWtzdGVyYW4ga29tYW5kb24gYWpuIHRpYW1hbmllcmUsIGFua2H9IGt1bgorICAgICAgICAgYXJndW1lbnRvai4KKworUklNQVJLTzogxml1aiAgOiAga29tYW5kb2ogZGV2YXMgZmluafhpIHBlciB0YWpwbyBkZSA8RW5lbmtsYXZvPgorICAgICAgICAgRWtkZSBudW4sIG5pIG5lIHBsdSBtZW5jaW9zIHRpb24uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNS4yIFBMSSBQUkkgS09OU0VSVk8gREUgRE9TSUVSTworCisKKyAgICoqIFBvciBrb25zZXJ2aSBsYSBmYXJpdGFqbiD+YW74b2puIGVuIGxhIHRla3N0bywgdGFqcHUgIDp3IERPU0lFUk5PTU8uICoqCisKKyAgMS4gVGFqcHUgICFkaXIgIGH9ICAhbHMgIHBvciBha2lyaSBsaXN0b24gZGUgdmlhIGRvc2llcnVqby4KKyAgICAgVmkgamFtIHNjaWFzLCBrZSB2aSBkZXZhcyB0YWpwaSA8RW5lbmtsYXZvPiBwb3N0IHRpby4KKworICAyLiBFbGVrdHUgZG9zaWVyb24sIGtpdSBuZSBqYW0gZWt6aXN0YXMsIGtpZWwgZWt6ZW1wbGUgVEVTVE8uCisKKyAgMy4gTnVuIHRhanB1OiAgIDp3IFRFU1RPICAgKGtpZSBURVNUTyBlc3RhcyBsYSBlbGVrdGl0YSBkb3NpZXJub21vKQorCisgIDQuIFRpbyBrb25zZXJ2YXMgbGEgdHV0YW4gZG9zaWVyb24gKGluc3RydWlsb24gZGUgVmltKSBrdW4gbGEgbm9tbyBURVNUTy4KKyAgICAgUG9yIGtvbnRyb2xpIHRpb24sIHRhanB1ICAgOiFkaXIgICBh/SAgICFscyAgIGRlbm92ZSBwb3IgdmlkaWdpIHZpYW4KKyAgICAgZG9zaWVydWpvbi4KKworUklNQVJLTzogU2Ugdmkgdm9sdXMgZWxpcmkgZWwgVmltIGthaiByZXN0YXJ0aWdpIPhpbiBkZW5vdmUgcGVyICB2aW0gVEVTVE8sCisgICAgICAgICBsYSBkb3NpZXJvIGVzdHVzIHByZWNpemUgc2FtZSBraWVsIGtvcGlvIGRlIGxhIGluc3RydWlsbyBraWFtIHZpCisgICAgICAgICBrb25zZXJ2aXMg+GluLgorCisgIDUuIE51biBmb3J2af51IGxhIGRvc2llcm9uIHRhanBhbnRlIChNUy1ET1MpOiAgICAgOiFkZWwgVEVTVE8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYf0gKFVOSUtTTyk6ICAgICA6IXJtIFRFU1RPCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNS4zIEFQQVJUSUdJIEtPTlNFUlZFTkRBTiBURVNUT04KKworCisgICAgKiogUG9yIGtvbnNlcnZpIHBhcnRvbiBkZSBsYSBkb3NpZXJvLCB0YWpwdSAgIHYgIG1vdm8gIDp3IERPU0lFUk5PTU8gKioKKworICAxLiBNb3Z1IGxhIGt1cnNvcm9uIGFsIHRpdSBsaW5pby4KKworICAyLiBQcmVtdSAgdiAga2FqIG1vdnUgbGEga3Vyc29yb24gYWwgbGEga3ZpbmEgc3ViYSBlcm8uICBSaW1hcmt1LCBrZSBsYQorICAgICB0ZWtzdG8gZW1mYXpp+GFzLgorCisgIDMuIFByZW11IGxhICA6ICBzaWdub24uICDGZSBsYSBmaW5vIGRlIGxhIGVrcmFubyAgOic8LCc+ICBhcGVyb3MuCisKKyAgNC4gVGFqcHUgIHcgVEVTVE8gICwga2llIFRFU1RPIGVzdGFzIGRvc2llcm5vbW8sIGtpdSBuZSBqYW0gZWt6aXN0YXMuCisgICAgIEtvbnRyb2x1LCBrZSB2aSB2aWRhcyAgOic8LCc+dyBURVNUTyAgYW50Yf0gcHJlbWkgPEVuZW5rbGF2bz4uCisKKyAgNS4gVmltIGtvbnNlcnZvcyBsYSBhcGFydGlnaXRham4gbGluaW9qbiBhbCBsYSBkb3NpZXJvIFRFU1RPLiAgVXp1ICA6ZGlyCisgICAgIGH9ICA6IWxzICBwb3IgdmlkaWdpIPhpbi4gIE5lIGZvcnZp/nUg+GluLiAgTmkgdXpvcyD4aW4gZW4gbGEgc2VrdmFudGEKKyAgICAgbGVjaW9uby4KKworUklNQVJLTzogUHJlbW8gZGUgIHYgIGtvbWVuY2FzIFZpZHVtYW4gYXBhcnRpZ29uLiAgVmkgcG92YXMgbW92aSBsYSBrdXJzb3JvbgorICAgICAgICAgcG9yIHBsaWdyYW5kaWdpIGH9IG1hbHBsaWdyYW5kaWdpIGxhIGFwYXJ0aWdvbi4gVGlhbSB2aSBwb3ZhcyB1emkKKyAgICAgICAgIG9wZXJhdG9yb24gcG9yIHBsZW51bWkgaW9uIGt1biBsYSB0ZWtzdG8uICBFa3plbXBsZSwgIGQgIGZvcnZp/mFzCisgICAgICAgICBsYSB0ZWtzdG9uLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNS40IEFLSVJJIEtBSiBLVU5GQU5ESSBET1NJRVJPSk4KKworCisgICAgICAgICAqKiBQb3IgZW5tZXRpIGxhIGVuaGF2b24gZGUgZG9zaWVybywgdGFqcHUgIDpyIERPU0lFUk5PTU9OICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiC8dXMgc3VwZXIg5mkgdGl1IGxpbmlvLgorCitSSU1BUktPOiBQb3N0IHBsZW51bW8gZGUgcGH+byAyLCB2aSB2aWRvcyB0ZWtzdG9uIGVsIGxhIGxlY2lvbm8gNS4zLiAgVGlhbQorICAgICAgICAgbW92afh1IFNVQkVOIHBvciB2aWRpIHRpdW4gbGVjaW9ub24gZGVub3ZlLgorCisgIDIuIE51biBha2lydSB2aWFuIGRvc2llcm9uIFRFU1RPIHV6YW50ZSBsYSBrb21hbmRvbiAgIDpyIFRFU1RPICAga2llIFRFU1RPCisgICAgIGVzdGFzIGxhIG5vbW8gZGUgbGEgZG9zaWVybywga2l1biB2aSB1emlzLgorICAgICBMYSBkb3NpZXJvLCBraW9uIHZpIGFraXJhcywgZXN0YXMgbWV0aXRhIHN1YiBsYSBsaW5pbyBkZSBsYSBrdXJzb3JvLgorCisgIDMuIFBvciBrb250cm9saSwg5nUgbGEgZG9zaWVybyBha2lyafhpcywgcmV0cm9tb3Z1IGxhIGt1cnNvcm9uIGthaiByaW1hcmt1LAorICAgICBrZSBlc3RhcyBudW4gZHUga29waW9qIGRlIGxhIGxlY2lvbm8gNS4zLCBsYSBvcmlnaW5hbGEga2FqIGxhIHZlcnNpbyBtZW0KKyAgICAgZGUgbGEgZG9zaWVyby4KKworUklNQVJLTzogVmkgbnVuIHBvdmFzIGxlZ2kgbGEgZWxpcm9uIGRlIGVrc3RlcmEga29tYW5kby4gRWt6ZW1wbGUsCisgICAgICAgIDpyICFscyAgbGVnYXMgbGEgZWxpcm9uIGRlIGxhIGtvbWFuZG8gbHMga2FqIG1ldGFzIPhpbiBzdWIgbGEKKyAgICAgICAga3Vyc29yb24uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNSBSRVNVTU8KKworCisgIDEuICA6IWtvbWFuZG8gIHBsZW51bWFzIGVrc3RlcmFuIGtvbWFuZG9uLgorCisgICAgICBJdWogdXRpbGFqIGVremVtcGxvaiBlc3RhczoKKyAgICAgICAgKE1TLURPUykgICAgICAgICAgIChVTklLU08pCisgICAgICAgICA6IWRpciAgICAgICAgICAgICAgOiFscyAgICAgICAgICAgIC0gbGlzdGlnYXMgZG9zaWVydWpvbgorICAgICAgICAgOiFkZWwgRE9TSUVSTk9NTyAgIDohcm0gRE9TSUVSTk9NTyAtIGZvcnZp/mFzIGxhIGRvc2llcm9uIERPU0lFUk5PTU8KKworICAyLiAgOncgRE9TSUVSTk9NTyAga29uc2VydmFzIGxhIG51bmFuIGRvc2llcm9uIGRlIFZpbSBhbCBkaXNrbyBrdW4gbGEKKyAgICAgIG5vbW8gRE9TSUVSTk9NTy4KKworICAzLiAgdiAgbW92byAgOncgRE9TSUVSTk9NTyAga29uc2VydmFzIGxhIFZpZHVtYW4gYXBhcnRpZ29uIGRlIGxpbmlvaiBlbgorICAgICAgZG9zaWVybyBET1NJRVJOT01PLgorCisgIDQuIDpyIERPU0lFUk5PTU8gIGFraXJhcyBsYSBkb3NpZXJvbiBET1NJRVJOT01PIGVsIGxhIGRpc2tvIGthaiBtZXRhcworICAgICD4aW4gc3ViIGxhIHBvemljaW9uIGRlIGxhIGt1cnNvcm8uCisKKyAgNS4gOnIgIWRpciAgbGVnYXMgbGEgZWxpZ29uIGRlIGxhIGtvbWFuZG8gZGlyIGthaiBtZXRhcyD4aW4gc3ViIGxhCisgICAgIHBvemljaW9uIGRlIGxhIGt1cnNvcm8uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNi4xIExBIEtPTUFORE8gREUgTUFMRkVSTU8KKworCisgICoqIFRhanB1IG8gcG9yIG1hbGZlcm1pIGxpbmlvbiBzdWIgbGEga3Vyc29ybyBrYWogZW5pcmkgRW5tZXRhbiByZfhpbW9uLiAqKgorCisgIDEuIE1vdnUgbGEga3Vyc29yb24gYWwgbGEgc3ViYSBsaW5pbyBtYXJraXRhIHBlciAtLS0+LgorCisgIDIuIFRhanB1IGxhIG1pbnVza2xhbiBsaXRlcm9uICBvICBwb3IgbWFsZmVybWkgbGluaW9uIFNVQiBsYSBrdXJzb3JvIGthagorICAgICBlbmlyaSBsYSBFbm1ldGFuIHJl+Gltb24uCisKKyAgMy4gTnVuIHRhanB1IHRla3N0b24ga2FqIHByZW11IDxFU0s+IHBvciBlbGlyaSBsYSBFbm1ldGFuIHJl+Gltb24uCisKKy0tLT4gUG9zdCB0YWpwbyBkZSAgbyAgbGEga3Vyc29ybyBtb3Zp+GFzIGFsIGxhIG1hbGZlcm1hdGEgbGluaW8gZW4KKyAgICAgRW5tZXRhIHJl+Gltby4KKworICA0LiBQb3IgbWFsZmVybWkgbGluaW9uIFNVUEVSIGxhIGt1cnNvcm8sIG51ciB0YWpwdSBtYWp1c2tsYW4gIE8gICwKKyAgICAgYW5zdGF0Yf0gbWludXNrbGFuICBvLiAgUHJvdnUgdGlvbiBwZXIgbGEgc3ViYSBsaW5pby4KKworLS0tPiBNYWxmZXJtdSBsaW5pb24gU1VQRVIgdGl1IHRhanBhbnRlIE8gZHVtIGxhIGt1cnNvcm8gZXN0YXMgc3VyIHRpdSBsaW5pby4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDYuMiBMQSBLT01BTkRPIERFIFBPU1RBTERPTk8KKworCisgICAgICAgICAgICAgICAgICAqKiBUYWpwdSAgYSAgcG9yIGVubWV0aSBQT1NUIGxhIGt1cnNvcm8uICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiDmZSBsYSBrb21lbmNvIGRlIGxhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4uCisKKyAgMi4gUHJlbXUgIGUgIPhpcyBraWFtIGxhIGt1cnNvcm8gZXN0YXMg5mUgbGEgZmlubyBkZSAgbGkuCisKKyAgMy4gVGFqcHUgIGEgIChtaW51c2tsZSkgcG9yIGFsZG9uaSB0ZWtzdG9uIFBPU1QgbGEga3Vyc29yby4KKworICA0LiBLb21wbGV0aWd1IGxhIHZvcnRvbiBzYW1lIGtpZWwgbGEgbGluaW8gc3ViIPhpLiAgUHJlbXUgPEVTSz4gcG9yCisgICAgIGVsaXJpIGxhIEVubWV0YW4gcmX4aW1vbi4KKworICA1LiBVenUgIGUgIHBvciBtb3Zp+GkgYWwgbGEgc2VrdmFudGEgbmVrb21wbGV0YSB2b3J0byBrYWogcmlwZXR1CisgICAgIHBh/m9qbiAzIGthaiA0LgorCistLS0+IMZpIHRpdSBsaW4gZWJsaWdvcyB2aW4gZWt6IHZpbiBwb3N0YWwgdGVrc3RvbiBhbCBsaW5pby4KKy0tLT4gxmkgdGl1IGxpbmlvIGVibGlnb3MgdmluIGVremVyY2kgdmluIHBvc3RhbGRvbmkgdGVrc3RvbiBhbCBsaW5pby4KKworUklNQVJLTzogxml1ICBhLCBpIGthaiBBICBpcmFzIGFsIGxhIHNhbWEgRW5tZXRhIHJl+GltbywgbGEgbnVyYSBtYWxzYW1vCisgICAgICAgICBlc3RhcyB0aWUsIGtpZSBsYSBzaWdub2ogZXN0YXMgZW5tZXRpdGFqLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDYuMyBBTElBIE1BTklFUk8gUE9SIEFOU1RBVEHdSUdJCisKKworICAgICAgICAgICoqIFRhanB1IG1hanVza2xhbiAgUiAgcG9yIGFuc3RhdGH9aWdpIHBsaSBvbCB1bnUgc2lnbm8uICoqCisKKyAgMS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSB1bnVhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4gIE1vdnUgbGEKKyAgICAga3Vyc29yb24gYWwgbGEga29tZW5jbyBkZSBsYSB1bnVhICB4eHggLgorCisgIDIuIE51biBwcmVtdSAgUiAga2FqIHRhanB1IGxhIG5vbWJyb24gc3ViIPhpIGVuIGxhIGR1YSBsaW5pbywgcG9yIGtlIPhpCisgICAgIGFuc3RhdGH9aWd1IGxhIHh4eCAuCisKKyAgMy4gUHJlbXUgPEVTSz4gcG9yIGZvcmlyaSBsYSBBbnN0YXRh/WlnYW4gcmX4aW1vbi4gUmltYXJrdSwga2UgbGEgY2V0ZXJhCisgICAgIHBhcnRvIGRlIGxhIGxpbmlvIHJlc3RhcyBuZf5hbvhhdGEuCisKKyAgNC4gUmlwZXR1IGxhIHBh/m9qbiBwb3IgYW5zdGF0Yf1pZ2kgbGEgcmVzdGFudGFqbiB4eHguCisKKy0tLT4gQWxkb25vIGRlIDEyMyBhbCB4eHggZG9uYXMgYWwgdmkgeHh4LgorLS0tPiBBbGRvbm8gZGUgMTIzIGFsIDQ1NiBkb25hcyBhbCB2aSA1NzkuCisKK1JJTUFSS086IEFuc3RhdGH9aWdhIHJl+GltbyBlc3RhcyBzYW1lIGtpZWwgRW5tZXRhIHJl+Gltbywgc2VkIOZpdSBzaWdubworICAgICAgICAgdGFqcGl0YSBmb3J2af5hcyBla3ppc3RhbiBzaWdub24uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyA2LjQgS09QSUkgS0FKIEFMR0xVSSBURUtTVE9OCisKKworICAgICAqKiBVenUgbGEgIHkgIG9wZXJhdG9yb24gcG9yIGtvcGlpIHRla3N0b24sIGthaiAgcCAgcG9yIGFsZ2x1aSD4aW4gKioKKworCisgIDEuIElydSBhbCBsYSBsaW5pbyBtYXJraXRhIHBlciAtLS0+IHN1YmUga2FqIHBvemljaXUgbGEga3Vyc29yb24gcG9zdCAiYSkiLgorCisgIDIuIEtvbWVuY3UgbGEgVmlkdW1hbiByZfhpbW9uIHBlciAgdiAga2FqIG1vdnUgbGEga3Vyc29yb24gvHVzIGFudGH9ICJ1bnVhIi4KKworICAzLiBUYWpwdSAgeSAgcG9yIGtvcGlpIGxhIGVtZmF6aXRhbiB0ZWtzdG9uLgorCisgIDQuIE1vdnUgbGEga3Vyc29yb24g5mUgbGEgZmlubyBkZSBsYSBsaW5pbzogIGokCisKKyAgNS4gVGFqcHUgIHAgIHBvciBhbGdsdWkgbGEgdGVrc3Rvbi4gIFRpYW0gdGFqcHU6ICBhIGR1YSA8RVNLPiAuCisKKyAgNi4gVXp1IFZpZHVtYW4gcmX4aW1vbiBwb3IgYXBhcnRpZ2kgIiBlcm8uIiwga29waXUg+GluIHBlciAgeSAsIG1vdmn4dQorICAgICDmZSBsYSBmaW5vIGRlIGxhIHNla3ZhbnRhIGxpbmlvIHBlciAgaiQgIGthaiBhbGdsdXUgbGEgdGVrc3RvbiB0aWUKKyAgICAgcGVyICBwIC4KKworLS0tPiBhKSB0aW8gZXN0YXMgbGEgdW51YSBlcm8uCisgICAgIGIpCisKK1JJTUFSS086IHZpIHBvdmFzIGFua2H9IHV6aSAgeSAga2llbCBvcGVyYXRvcm87ICB5dyAga29waWFzIHVudSB2b3J0b24uCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDYuNSBBR09SREkgT1BDSU9OCisKKworICAgICAgICAgKiogQWdvcmR1IG9wY2lvbiBwb3Iga2Ugc2Vy5m8gYf0gYW5zdGF0Yf1pZ28gaWdub3J1IHVza2xlY29uICoqCisKKyAgMS4gU2Vy5nUgJ2lnbm9yaScgcGVyIHRhanBvIGRlIC9pZ25vcmkgPEVuZW5rbGF2bz4KKyAgICAgUmlwZXR1IHBsdXJmb2plIHByZW1hbnRlICBuIC4KKworICAyLiDeYWx0dSBsYSBvcGNpb24gJ2ljJyAoaWdub3JpIHVza2xlY29uKSBwZXI6ICAgOnNldCBpYworCisgIDMuIE51biBzZXLmdSAnaWdub3JpJyBkZW5vdmUgcHJlbWFudGUgIG4KKyAgICAgUmltYXJrdSwga2UgSWdub3JpIGthaiBJR05PUkkgZXN0YXMgbnVuIHRyb3ZlYmxhcy4KKworICA0LiDeYWx0dSBsYSBvcGNpb2puICdobHNlYXJjaCcga2FqICdpbmNzZWFyY2gnOiAgIDpzZXQgaGxzIGlzCisKKyAgNS4gTnVuIHJldGFqcHUgbGEgc2Vy5mFuIGtvbWFuZG9uIGthaiB2aWR1IGtpbyBva2F6YXM6ICAvaWdub3JlIDxFbmVua2xhdm8+CisKKyAgNi4gUG9yIG1hbP5hbHRpIGlnbm9yb24gZGUgdXNrbGVjbzogIDpzZXQgbm9pYworCitSSU1BUktPOiBQb3IgZm9yaWdpIGVtZmF6b24gZGUga29uZ3J1bywgdGFqcHU6ICAgOm5vaGxzZWFyY2gKK1JJTUFSS086IFNlIHZpIGRlemlyYXMgaWdub3JpIHVza2xlY29uIHBvciBudXIgdW51IHNlcuZhIGtvbWFuZG8sIHV6dSAgXGMKKyAgICAgICAgIGVuIGxhIGZyYXpvOiAgL2lnbm9yZVxjICA8RW5lbmtsYXZvPgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDYgUkVTVU1PCisKKyAgMS4gVGFqcHUgIG8gIHBvciBtYWxmZXJtaSBsaW5pb24gU1VCIGxhIGt1cnNvcm8ga2FqIGVraSBlbiBFbm1ldGEgcmX4aW1vLgorICAxLiBUYWpwdSAgTyAgcG9yIG1hbGZlcm1pIGxpbmlvbiBTVVBFUiBsYSBrdXJzb3JvLgorCisgIDIuIFRhanB1ICBhICBwb3IgZW5tZXRpIHRla3N0b24gUE9TVCBsYSBrdXJzb3JvLgorICAgICBUYWpwdSAgQSAgcG9yIGVubWV0aSB0ZWtzdG9uIHBvc3QgbGEgZmlubyBkZSBsYSBsaW5pby4KKworICAzLiBMYSAgZSAga29tYW5kbyBtb3ZhcyBsYSBrdXJzb3JvbiBhbCBsYSBmaW5vIGRlIHZvcnRvLgorCisgIDQuIGxhICB5ICBvcGVyYXRvcm8ga29waWFzIHRla3N0b24sICBwICBhbGdsdWFzIPhpbi4KKworICA1LiBUYWpwbyBkZSBtYWp1c2tsYSAgUiAgZW5pcmFzIGxhIEFuc3RhdGH9aWdhbiByZfhpbW9uIPhpcyBraWFtCisgICAgIDxFU0s+IGVzdGFzIHByZW1pdGEuCisKKyAgNi4gVGFqcG8gZGUgIjpzZXQgeHh4IiD+YWx0YXMgbGEgb3BjaW9uICJ4eHgiLiAgSXVqIG9wY2lvaiBlc3RhczoKKyAgICAgICAgJ2ljJyAnaWdub3JlY2FzZScgICAgIGlnbm9yaSB1c2tsZWNvbiBkdW0gc2Vy5m8KKyAgICAgICAgJ2lzJyAnaW5jc2VhcmNoJyAgICAgIG1vbnRydSBwYXJ0YW4ga29uZ3J1b24gZHVtIHNlcuZvCisgICAgICAgICdobHMnICdobHNlYXJjaCcgICAgICBlbWZhemFzIOZpdWpuIGtvbmdydWFqbiBmcmF6b2puCisgICAgIFZpIHBvdmFzIHV6aSBh/SBsYSBsb25nYW4sIGH9IGxhIG1hbGxvbmdhbiBub21vbiBkZSBvcGNpby4KKworICA3LiBBbnRh/WFsZG9udSAibm8iIHBvciBtYWz+YWx0aSBsYSBvcGNpb246ICA6c2V0IG5vaWMKKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDcuMSBBS0lSSSBIRUxQT04KKworCisgICAgICAgICAgICAgICAgICAgICAgICAgICoqIFV6dSBsYSBoZWxwYW4gc2lzdGVtb24gKioKKworICBWaW0gaGF2YXMgYW1wbGVrc2FuIGhlbHBhbiBzaXN0ZW1vbi4gUG9yIGtvbWVuY2n4aSwgcHJvdnUgdW51IGVsIGxhIHRpdWoKKyAgdHJpOgorICAgICAgICAtIHByZW11IGxhIGtsYXZvbiA8SEVMUE8+IChzZSB2aSBoYXZhcyD4aW4pCisgICAgICAgIC0gcHJlbXUgbGEga2xhdm9uIDxGMT4gKHNlIHZpIGhhdmFzIPhpbikKKyAgICAgICAgLSB0YWpwdSAgIDpoZWxwIDxFbmVua2xhdm8+CisKKyAgTGVndSBsYSB0ZWtzdG9uIGVuIGxhIGhlbHBmZW5lc3RybyBwb3IgdHJvdmkga2llbCBoZWxwbyBmdW5rY2lhcy4KKyAgVGFqcHUgIENUUkwtVyBDVFJMLVcgICAgICBwb3Igc2FsdGkgZGUgdW51IGZlbmVzdHJvIGFsIGxhIGFsaWEuCisgIFRhanB1ICAgIDpxIDxFbmVua2xhdm8+ICAgcG9yIGZlcm1pIGxhIGhlbHBhbiBmZW5lc3Ryb24uCisKKyAgVmkgcG92YXMgdHJvdmkgaGVscG9uIHByaSBpbyBham4gYWxkb25hbnRlIGFyZ3VtZW50b24gYWwgbGEga29tYW5kbworICAiOmhlbHAiLiAgUHJvdnUgdGl1am4gKG5lIGZvcmdlc3UgcHJlbWkgPEVuZW5rbGF2bz4pOgorCisgICAgICAgIDpoZWxwIHcKKyAgICAgICAgOmhlbHAgY19DVFJMLUQKKyAgICAgICAgOmhlbHAgaW5zZXJ0LWluZGV4CisgICAgICAgIDpoZWxwIHVzZXItbWFudWFsCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNy4yIEtSRUkgU1RBUlRBTiBTS1JJUFRPTgorCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAqKiBFYmxpZ3Uga2FwYWJsb2puIGRlIFZpbSAqKgorCisgIFZpbSBoYXZhcyBtdWx0ZSBwbGkgZGEga2FwYWJsb2ogb2wgVmksIHNlZCBsYSBwbGVqIG11bHRhaiBlc3RhcyBkZWZh/Wx0ZQorICBtYWz+YWx0aXRhai4gIFBvciBla3V6aSBsYSBrYXBhYmxvam4sIHZpIGRldmFzIGtyZWkgZG9zaWVyb24gInZpbXJjLgorCisgIDEuIEVrcmVkYWt0dSBsYSBkb3NpZXJvbiAidmltcmMiLiAgVGlvIGRlcGVuZGFzIGRlIHZpYSBzaXN0ZW1vOgorICAgICAgOmUgfi8udmltcmMgICAgICAgICAgcG9yIFVuaWtzbworICAgICAgOmUgJFZJTS9fdmltcmMgICAgICAgcG9yIE1TLVZpbmRvem8KKworICAyLiBOdW4gbGVndSBsYSBlbmhhdm9uIGRlIGxhIGVremVtcGxhICJ2aW1yYyIKKyAgICAgIDpyICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCisKKyAgMy4gS29uc2VydnUgbGEgZG9zaWVyb24gcGVyOgorICAgICAgOncKKworICBMYSBzZWt2YW50YW4gZm9qb24sIGtpYW0gdmkgbGFu5mFzIFZpbSwg+GkgdXpvcyBzaW50YWtzYW4gZW1mYXpvbi4KKyAgVmkgcG92YXMgYWxkb25pIOZpdWpuIHZpYWpuIHByZWZlcmF0YWpuIGFnb3Jkb2puIGFsIHRpdSBkb3NpZXJvICJ2aW1yYyIuCisgIFBvciBwbGkgZGEgaW5mb3Jtb2osIHRhanB1ICA6aGVscCB2aW1yYy1pbnRybworCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDcuMyBLT01QTEVUSUdPCisKKworICAgICAgICAgICAgICoqIEtvbXBsZXRpZ28gZGUga29tYW5kYSBsaW5pbyBwZXIgQ1RSTC1EIGthaiA8VEFCPiAqKgorCisgIDEuIENlcnRpZ3Uga2UgVmltIGVzdGFzIGVuIGtvbmdydWEgcmX4aW1vOiAgOnNldCBub2NwCisKKyAgMi4gUmlnYXJkdSB0aXVqbiBkb3NpZXJvam4sIGtpdWogZWt6aXN0YXMgZW4gbGEgZG9zaWVydWpvOiAgOiFscyAgYf0gIDohZGlyCisKKyAgMy4gVGFqcHUgbGEga29tZW5jb24gZGUga29tYW5kbzogIDplCisKKyAgNC4gUHJlbXUgIENUUkwtRCAga2FqIFZpbSBtb250cm9zIGxpc3RvbiBkZSBrb21hbmRvaiwga2l1aiBrb21lbmNhcyBwZXIgImUiLgorCisgIDUuIFByZW11IDxUQUI+ICBrYWogVmltIGtvbXBsZXRpZ29zIGxhIG5vbW9uIGRlIGxhIGtvbWFuZG8gYWwgIjplZGl0Ii4KKworICA2LiBOdW4gYWxkb251IHNwYWNldG9uIGthaiBsYSBrb21lbmNvbiBkZSBla3ppc3RhbnRhIG5vbW86ICA6ZWRpdCBET1NJCisKKyAgNy4gUHJlbXUgPFRBQj4uICBWaW0ga29tcGxldGlnb3MgbGEgbm9tb24gKHNlIPhpIGVzdGFzIHVuaWthKQorCitSSU1BUktPOiBLb21wbGV0aWdvIGZ1bmtjaWFzIHBvciBtdWx0YWoga29tYW5kb2ouIE51ciBwcm92dSBwcmVtaSBDVFJMLUQga2FqCisgICAgICAgICA8VEFCPi4gIEVzdGFzIGFwYXJ0ZSB1dGlsYSBwb3IgIDpoZWxwIC4KKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gNyBSRVNVTU8KKworCisgIDEuIFRhanB1ICA6aGVscCAgYf0gcHJlbXUgPEYxPiBh/SA8SGVscG8+ICBwb3IgbWFsZmVybWkgaGVscGFuIGZlbmVzdHJvbi4KKworICAyLiBUYWpwdSAgOmhlbHAga21kICBwb3IgdHJvdmkgaGVscG9uIHByaSAga21kLgorCisgIDMuIFRhanB1ICBDVFJMLVcgQ1RSTC1XICBwb3Igc2FsdGkgYWwgYWxpYSBmZW5lc3Ryby4KKworICA0LiBUYWpwdSAgOnEgIHRvIGZlcm1pIGxhIGhlbHBhbiBmZW5lc3Ryb24uCisKKyAgNS4gS3JldSBrb21lbmNhbiBza3JpcHRvbiB2aW1yYyBwb3Iga29uc2Vydmkgdmlham4gYWdvcmRvam4uCisKKyAgNi4gS2lhbSB2aSB0YWpwYXMgIDogIGtvbWFuZG9uLCBwcmVtdSBDVFJMLUQgcG9yIHZpZGkg5ml1am4ga29tcGxldGVibG9qbi4KKyAgICAgUHJlbXUgPFRBQj4gcG9yIHV6aSB1bnUga29tcGxldGlnb24uCisKKworfn5+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+CisKKyAgVGlvIGtvbmtsdWRhcyBsYSBpbnN0cnVpbG9uIGRlIFZpbS4gINhpIGNlbGlzIGRvbmkgbWFsbG9uZ2FuIHN1cGVycmlnYXJkb24KKyAgZGUgbGEgcmVkYWt0aWxvIFZpbSwgbnVyIHRpbyBraW8gc3VmaeZhcyBwb3IgZWJsaWdpIGFsIHZpIGZhY2lsYW4gdXpvbiBkZQorICBsYSByZWRha3RpbG8uIEVzdGFzIG5lcHJlIG5la29tcGxldGEsIOZhciBWaW0gaGF2YXMgbXVsdGFqbiBtdWx0YWpuIHBsaWFqbgorICBrb21hbmRvam4uIExlZ3UgbGEgbWFubGlicm9uOiAiOmhlbHAgdXNlci1tYW51YWwiLgorCisgIFRpdSBpbnN0cnVpbG8gZXN0aXMgdmVya2l0YSBkZSBNaWNoYWVsIEMuIFBpZXJjZSBrYWogUm9iZXJ0IEsuIFdhcmUsCisgIGVsIGxhIEtvbG9yYWRpYSBMZXJuZWpvIGRlIE1pbmVqb2ogKENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcykgdXphbnRlCisgIGlkZW9qbiBwcm92aXppdGFqbiBkZSBDaGFybGVzIFNtaXRoIGVsIGxhIFN0YXRhIFVuaXZlcnNpdGF0byBkZSBLb2xvcmFkaW8KKyAgKENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkpCisKKyAgUmV0cG/+dG86IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKworICBNb2RpZml0YSBwb3IgVmltIGRlIEJyYW0gTW9vbGVuYWFyLgorCisgIFRyYWR1a2l0YSBlbiBFc3BlcmFudG8gZGUgRG9taW5pcXVlIFBlbGzpLCAyMDA4LTA0LTAxCisgIFJldHBv/nRvOiBkb21pbmlxdWUucGVsbGVAZ21haWwuY29tCisgIExhc3RhIP5hbvhvOiAyMDA5LTAyLTAxCisKK35+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+fgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5lby51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZW8udXRmLTgKaW5kZXggOGY2N2IyMC4uNWFkYWQzOSAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5lby51dGYtOAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmVvLnV0Zi04CkBAIC0xLDUgKzEsNSBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci09ICAgQiBvIG4gdiBlIG4gbyBuICBhbCAgbGEgIEkgbiBzIHQgciB1IGkgbCBvICBkZSAgViBJIE0gIC0gIFZlcnNpbyAxLjAuZW8gID0KKz0gIEIgbyBuIHYgZSBuIG8gbiAgYWwgIGxhICBJIG4gcyB0IHIgdSBpIGwgbyAgZGUgIFYgSSBNICAtICBWZXJzaW8gMS43LmVvLjIgPQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKICAgIFZpbSBlc3RhcyB0cmUgcG90ZW5jYSByZWRha3RpbG8sIGtpdSBoYXZhcyBtdWx0YWpuIGtvbWFuZG9qbiwgdHJvIGRhIGlsaQpAQCAtNTQsMTUgKzU0LDE1IEBACiAgIDEuIFByZW11IGxhIGtsYXZvbiA8RVNLPiAocG9yIGNlcnRpZ2ksIGtlIHZpIGVzdGFzIGVuIG5vcm1hbGEgcmXEnWltbykuCiAKICAgMi4gVGFqcHU6ICAgICAgIDpxISA8RW5lbmtsYXZvPi4KLSAgICAgVGlvIGVsaXJhcyBlbCBsYSByZWtkYWt0aWxvLCBTRU4ga29uc2VydmkgbGEgxZ1hbsSdb2puLCBraW9uIHZpIGZhcmlzLgorICAgICBUaW8gZWxpcmFzIGVsIGxhIHJla2Rha3RpbG8sIFNFTiBrb25zZXJ2aSBsYSDFnWFuxJ1vam4sIGtpdWpuIHZpIGZhcmlzLgogCi0gIDMuIEtpYW0gdmkgdmlkYXMgbGEgxZ1lbGludml0b24sIHRhanB1IGxhIGtvbWFuZG9uIGtpdW4gdmkgdXppcyBwb3IgZW5pcmkgCisgIDMuIEtpYW0gdmkgdmlkYXMgbGEgxZ1lbGludml0b24sIHRhanB1IGxhIGtvbWFuZG9uIGtpdW4gdmkgdXppcyBwb3IgZW5pcmkKICAgICAgZW4gxIlpIHRpdSBpbnN0cnVpbG8uIFRpbyBlc3R1czogICB2aW10dXRvciA8RW5lbmtsYXZvPgogCiAgIDQuIFNlIHZpIG1lbW9yaXMgdGl1am4gcGHFnW9qbiBrYWogc2VudGFzIHZpbiBtZW1maWRhLCBwbGVudW11IGxhIHBhxZ1vam4KICAgICAgMSDEnWlzIDMgcG9yIGVsaXJpIGthaiByZWVuaXJpIGxhIHJlZGFrdGlsb24uCiAKLVJJTUFSS086IDpxISA8RW5lbmtsYXZvPiBlbGlyYXMgc2VuIGtvbnNlcnZpIGxhIMWdYW7EnW9qbiBraW9uIHZpIGZhcmlzLiAKK1JJTUFSS086IDpxISA8RW5lbmtsYXZvPiBlbGlyYXMgc2VuIGtvbnNlcnZpIGxhIMWdYW7EnW9qbiwga2l1am4gdmkgZmFyaXMuCiAgICAgICAgICBQb3N0IGtlbGthaiBsZWNpb25vaiwgdmkgbGVybm9zIGtpZWwga29uc2VydmkgbGEgxZ1hbsSdb2puIGFsIGRvc2llcm8uCiAKICAgNS4gTW92dSBsYSBrdXJzb3JvbiBzdWJlbiDEnWlzIGxhIGxlY2lvbm8gMS4zLgpAQCAtNzksNyArNzksNyBAQAogICAgICBmb3J2acWdZW5kYSBzaWduby4KIAogICAzLiBQcmVtdSBsYSBrbGF2b24gIHggIHBvciBmb3J2acWdaSBsYSBuZWRlemlyYXRhbiBzaWdub24uCi0gCisKICAgNC4gUmlwZXR1IHBhxZ1vam4gMiDEnWlzIDQgxJ1pcyBraWFtIGxhIGZyYXpvIGVzdGFzIMSddXN0YS4KIAogCkBAIC05OSw3ICs5OSw3IEBACiAKICAgMS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSB1bnVhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KIAotICAyLiBQb3IgaWdpIGxhIHVudWFuIGxpbmlvbiBzYW1hIG9sIGxhIGR1YSwgbW92dSBsYSBrdXJzb3JvbiBzdXIgbGEgdW51YW4KKyAgMi4gUG9yIGlnaSBsYSB1bnVhbiBsaW5pb24gc2FtYSBraWVsIGxhIGR1YSwgbW92dSBsYSBrdXJzb3JvbiBzdXIgbGEgdW51YW4KICAgICAgc2lnbm9uIHBvc3Qga2llIGxhIHRla3N0byBlc3RhcyBlbm1ldGVuZGEuCiAKICAgMy4gUHJlbXUgIGkgIGthaiB0YWpwdSBsYSBiZXpvbmF0YWpuIGFsZG9ub2puLgpAQCAtMTI0LDEyICsxMjQsMTIgQEAKICAgMS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSB1bnVhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KICAgICAgTmUgZ3JhdmFzIHN1ciBraXUgc2lnbm8gZXN0YXMgbGEga3Vyc29yby4KIAotICAyLiBQcmVtdSAgQSAga2FqIHRhanB1IGxhIGJlem9uYXRham4gYWxkb25vam4uCisgIDIuIFByZW11IG1hanVza2xhbiAgQSAga2FqIHRhanB1IGxhIGJlem9uYXRham4gYWxkb25vam4uCiAKICAgMy4gUG9zdCBraWFtIGxhIHRla3N0byBlc3RhcyBhbGRvbml0YSwgcHJlbXUgPEVTSz4gcG9yIHJlaXJpIGFsIGxhIG5vcm1hbGEKICAgICAgcmXEnWltby4KIAotICA0LiBNb3Z1IGxhIGt1cnNvcm9uIGFsIGxhIGR1YSBsaW5pbyBtYXJraXRhIHBlciAtLS0+IGthaiByaXBldHUgbGEgCisgIDQuIE1vdnUgbGEga3Vyc29yb24gYWwgbGEgZHVhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4ga2FqIHJpcGV0dSBsYQogICAgICBwYcWdb2puIDIga2FqIDMgcG9yIGtvcmVrdGkgbGEgZnJhem9uLgogCiAtLS0+IE1hbmthcyB0ZWtzdG8gZWwgdGkKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiAgIDMuIEVubWV0dSBrYWogZm9ydmnFnXUgdGVrc3Rvbiwga2llbCB2aSBsZXJuaXMgZW4gbGEgYW50YcWtYWogbGVjaW9ub2ouCiAKLSAgNC4gS29uc2VydnUgbGEgZG9zaWVyb24ga3VuIMWdYW7EnW9qIGthaiBlbGlydSBlbCBWaW0gcGVyOiAgOnF3ICA8RW5lbmtsYXZvPgorICA0LiBLb25zZXJ2dSBsYSBkb3NpZXJvbiBrdW4gxZ1hbsSdb2oga2FqIGVsaXJ1IGVsIFZpbSBwZXI6ICA6d3EgIDxFbmVua2xhdm8+CiAKICAgNS4gUmVsYW7EiXUgbGEgaW5zdHJ1aWxvbiB2aW10dXRvciBrYWogbW92acSddSBzdWJlbiBhbCBsYSBzZWt2YW50YSByZXN1bW8uCiAKQEAgLTE2Nyw2ICsxNjcsNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMSBSRVNVTU8KIAorCiAgIDEuIExhIGt1cnNvcm8gbW92acSdYXMgYcWtIHBlciBsYSBzYWdva2xhdm9qLCBhxa0gcGVyIGxhIGtsYXZvaiBoamtsLgogICAgICAgICBoIChsaXZlbikgICAgIGogKHN1YmVuKSAgICAgIGsgKHN1cHJlbikgICAgIGwgKGRla3N0cmVuKQogCkBAIC0yMTcsNiArMjE4LDcgQEAKIH5+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+fgogICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAyLjI6IFBMSUFKIEtPTUFORE9KIERFIEZPUlZJxZxPCiAKKwogICAgICAgICAgICAgICAgKiogVGFqcHUgIGQkICBwb3IgZm9ydmnFnWkgbGEgZmlub24gZGUgbGEgbGluaW8uICoqCiAKICAgMS4gUHJlbXUgIDxFU0s+ICBwb3IgY2VydGlnaSwga2UgdmkgZXN0YXMgZW4gbm9ybWFsYSByZcSdaW1vLgpAQCAtMjQ5LDcgKzI1MSw3IEBACiAgICAgbW92byAgIC0gZXN0YXMgdGlvLCBwcmkga2lvIGxhIG9wZXJhdG9ybyBvcGVyYWNpb3MgKGxpc3RpZ2l0YSBzdWJlKQogCiAgIE1hbGxvbmdhIGxpc3RvIGRlIG1vdm9qOgotICAgIHcgLSDEnWlzIGxhIGtvbWVuY28gZGUgbGEgc2VrdmFudGEgdm9ydG8sIGtyb20gxJ1pYW4gdW51YW4gc2lnbm9uLgorICAgIHcgLSDEnWlzIGxhIGtvbWVuY28gZGUgbGEgc2VrdmFudGEgdm9ydG8sIGtyb20gxJ1pYSB1bnVhIHNpZ25vLgogICAgIGUgLSDEnWlzIGxhIGZpbm8gZGUgbGEgbnVuYSB2b3J0bywga3JvbSBsYSBsYXN0YSBzaWduby4KICAgICAkIC0gxJ1pcyBsYSBmaW5vIGRlIGxhIGxpbmlvLCBrcm9tIGxhIGxhc3RhIHNpZ25vLgogCkBAIC0yODMsNiArMjg1LDcgQEAKIH5+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+fgogICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDIuNTogVVpJIE5PTUJST04gUE9SIEZPUlZJxZxJIFBMSQogCisKICAgICAgICAgICAgICoqIFRhanBvIGRlIG5vbWJybyBrdW4gb3BlcmF0b3JvIHJpcGV0YXMgxJ1pbiBsYcWtZm9qZS4gKioKIAogICBFbiBsYSBrb21iaW5hxLVvIGRlIGxhIG9wZXJhdG9ybyBkZSBmb3J2acWdbywga2FqIG1vdm8ga2llbCBtZW5jaWl0YQpAQCAtMzAyLDYgKzMwNSw3IEBACiB+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+fn4KICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAyLjY6IE9QRVJBQ0lJIFNVUiBMSU5JT0oKIAorCiAgICAgICAgICAgICAgICAgICAgKiogVGFqcHUgIGRkICBwb3IgZm9ydmnFnWkgdHV0YW4gbGluaW9uLiAqKgogCiAgIFBybyBsYSBvZnRlY28gZGUgZm9ydmnFnW8gZGUgdHV0YSBsaW5pbywgbGEgdmVya2lzdG8gZGUgVmkgZGVjaWRpcywga2UKQEAgLTMyNCw2ICszMjgsNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMi43OiBMQSBLT01BTkRPIERFIE1BTEZBUk8KIAorCiAgKiogUHJlbXUgdSBwb3IgbWFsZmFyaSBsYSBsYXN0YWpuIGtvbWFuZG9qbiwgVSBwb3IgcmlwYXJpIGxhIHR1dGFuIGxpbmlvbi4gKioKIAogICAxLiBNb3Z1IGxhIGt1cnNvcm9uIMSJZSBsYSBzdWJhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4ga2FqIG1ldHUgxJ1pbiBzdXIKQEAgLTM0NCw2ICszNDksNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMiBSRVNVTU8KIAorCiAgIDEuIFBvciBmb3J2acWdaSBla2RlIGxhIGt1cnNvcm8gxJ1pcyBsYSBzZWt2YW50YSB2b3J0bywgdGFqcHU6ICAgIGR3CiAgIDIuIFBvciBmb3J2acWdaSBla2RlIGxhIGt1cnNvcm8gxJ1pcyBsYSBmaW5vIGRlIGxhIGxpbmlvLCB0YWpwdTogIGQkCiAgIDMuIFBvciBmb3J2acWdaSB0dXRhbiBsaW5pb24sIHRhanB1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGQKQEAgLTM2OCw2ICszNzQsNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAzLjEgTEEgS09NQU5ETyBERSBNRVRPCiAKKwogICAgICoqIFRhanB1ICBwICBwb3IgbWV0aSB0ZWtzdG9uIGZvcnZpxZ1pdGFuIGFudGHFrWUgcG9zdCBsYSBrdXJzb3JvLiAqKgogCiAgIDEuIE1vdnUgbGEga3Vyc29yb24gxIllIGxhIHVudWEgLS0tPiBzdWJhIGxpbmlvLgpAQCAtMzg5LDYgKzM5Niw3IEBACiB+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+fn4KICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMy4yIExBIEtPTUFORE8gREUgQU5TVEFUQcWsSUdPCiAKKwogICAgICAgICoqIFRhanB1ICByeCAgcG9yIGFuc3RhdGHFrWlnaSBsYSBzaWdub24gxIllIGxhIGt1cnNvcm8gcGVyICB4IC4gKioKIAogCkBAIC00MDIsNyArNDEwLDcgQEAKIAogLS0tPiBLaWVtIHRpdSBsYW5pbyBlc3RpcyB0YWpwaXRhLCBpdSBwcmFtaXMgbGEgbmHEnXVmdGFqbiBrbG92b2puIQogLS0tPiBLaWFtIHRpdSBsaW5pbyBlc3RpcyB0YWpwaXRhLCBpdSBwcmVtaXMgbGEgbmXEnXVzdGFqbiBrbGF2b2puIQotICAKKwogICA1LiBOdW4gbW92acSddSBhbCBsYSBsZWNpb25vIDMuMy4KIAogUmltYXJrbzogTWVtb3J1LCBrZSB2aSBkZXZ1cyBsZXJuaSBwZXIgdXpvLCBrYWogbmUgcGVyIG1lbW9yYWRvLgpAQCAtNDExLDYgKzQxOSw3IEBACiB+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+fn4KICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAzLjMgTEEgT1BFUkFUT1JPIERFIMWcQU7EnE8KIAorCiAgICAgICAgICAgICAgICoqIFBvciDFnWFuxJ1pIMSdaXMgbGEgZmlubyBkZSBsYSB2b3J0bywgdGFqcHUgIGNlIC4gKioKIAogICAxLiBNb3Z1IGxhIGt1cnNvcm9uIMSJZSBsYSB1bnVhIHN1YmEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KQEAgLTQzMCw3ICs0MzksOCBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyAzLjQgUExJQUogxZxBTsScT0ogUEVSIGMKIAotICAgICAgICAqKiBMYSBvcGVyYXRvcm8gZGUgxZ1hbsSdbyB1emVibGFzIGt1biBsYSBzYW1hIG1vdm8gb2wgZm9ydmnFnW8uICoqCisKKyAgICAgICAqKiBMYSBvcGVyYXRvcm8gZGUgxZ1hbsSdbyB1emVibGFzIGt1biBsYSBzYW1hIG1vdm8ga2llbCBmb3J2acWdby4gKioKIAogICAxLiBMYSBvcGVyYXRvcm8gZGUgxZ1hbsSdbyBmdW5rY2lhcyBzYW1tYW5pZXJlIGtpZWwgZm9ydmnFnW8uIExhIGZvcm1hdG8gZXN0YXM6CiAKQEAgLTQ1Myw2ICs0NjMsNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlY2lvbm8gMyBSRVNVTU8KIAorCiAgIDEuIFBvciByZW1ldGkgdGVrc3Rvbiwga2l1biB2aSDEtXVzIGZvcnZpxZ1pcywgdGFqcHUgIHAuIFRpbyBtZXRhcyBsYQogICAgICBmb3J2acWdaXRhbiB0ZWtzdG9uIFBPU1QgbGEga3Vyc29ybyAoc2UgbGluaW8gZXN0aXMgZm9ydmnFnWl0YSwgxJ1pCiAgICAgIGlyb3MgZW4gbGEgbGluaW9uIHN1YiBsYSBrdXJzb3JvKS4KQEAgLTQ3NCw2ICs0ODUsNyBAQAogfn5+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+CiAgICAgICAgICAgICAgIExlY2lvbm8gNC4xOiBQT1pJQ0lPIERFIEtVUlNPUk8gS0FKIFNUQVRPIERFIERPU0lFUk8KIAorCiAgICoqIFRhanB1IENUUkwtRyBwb3IgbW9udHJpIHZpYW4gcG96aWNpb24gZW4gbGEgZG9zaWVybyBrYWogbGEgZG9zaWVyc3RhdG9uLgogICAgICBUYWpwdSAgRyAgcG9yIG1vdmnEnWkgYWwgbGluaW8gZW4gbGEgZG9zaWVyby4gKioKIApAQCAtNDgzLDcgKzQ5NSw3IEBACiAgICAgIE1lc2HEnW8gYXBlcm9zIMSJZSBsYSBzdWJhIHBhcnRvIGRlIGxhIHBhxJ1vIGt1biBsYSBkb3NpZXJub21vIGthaiBsYQogICAgICBwb3ppY2lvIGVuIGxhIGRvc2llcm8uIE1lbW9ydSBsYSBudW1lcm9uIGRlIGxhIGxpbmlvIHBvciBwYcWdbyAzLgogCi0gIFJJTUFSS086IFZpIGVibGUgdmlkYXMgbGEgcG96aWNpb24gZGUgbGEga3Vyc29ybyDEiWUgbGEgc3ViYSBkZWtzdHJhIAorICBSSU1BUktPOiBWaSBlYmxlIHZpZGFzIGxhIHBvemljaW9uIGRlIGxhIGt1cnNvcm8gxIllIGxhIHN1YmEgZGVrc3RyYQogICAgICAgICAgICBhbmd1bG8gZGUgbGEgZWtyYW5vLiBUaW8gb2themFzIGtpYW0gbGEgYWdvcmRvICdydWxlcicgZXN0YXMKICAgICAgICAgICAgxZ1hbHRpdGEgKHZpZHUgIDpoZWxwICdydWxlcicpCiAKQEAgLTQ5OSw2ICs1MTEsNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDQuMiBMQSBLT01BTkRPIERFIFNFUsSITwogCisKICAgICAgICAgICAgICAqKiBUYWpwdSAgLyAga2FqIHBvc3RlIGZyYXpvbiBwb3Igc2VyxIlpIGxhIGZyYXpvbi4gKioKIAogICAxLiBFbiBub3JtYWxhIHJlxJ1pbW8sIHRhanB1IGxhICAvICBzaWdub24uICBSaW1hcmt1LCBrZSDEnWkga2FqIGxhIGt1cnNvcm8KQEAgLTUyNCw3ICs1MzcsOCBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDQuMyBTRVLEiE8gREUgS09OR1JVQUogS1JBTVBPSgogCi0gICAgICAgICAgICAgICAgICoqIFRhanB1ICAlICBwb3IgdHJvdmkga29uZ3J1YW4gKSwgWyBhxa0gIH0gKioKKworICAgICAgICAgICAgICAgICAqKiBUYWpwdSAgJSAgcG9yIHRyb3ZpIGtvbmdydWFuICksIF0gYcWtICB9ICoqCiAKICAgMS4gUG96aWNpdSBsYSBrdXJzb3JvbiBzdXIgaXVuICgsIFsgYcWtIHsgZW4gbGEgbGluaW8gbWFya2l0YSBwZXIgLS0tPi4KIApAQCAtNTQ4LDcgKzU2Miw3IEBACiAKICAgMS4gTW92dSBsYSBrdXJzb3JvbiBhbCBsYSBzdWJhIGxpbmlvIG1hcmtpdGEgcGVyIC0tLT4uCiAKLSAgMi4gVGFqcHUgIDpzL2xhYS9sYSA8RW5lbmtsYXZvPiAuICBSaW1hcmt1LCBrZSBsYSBrb21hbmRvIMWdYW7EnWFzIG51ciBsYSAKKyAgMi4gVGFqcHUgIDpzL2xhYS9sYSA8RW5lbmtsYXZvPiAuICBSaW1hcmt1LCBrZSBsYSBrb21hbmRvIMWdYW7EnWFzIG51ciBsYQogICAgICB1bnVhbiBva2F6YcS1b24gZGUgImxhYSIgZW4gbGEgbGluaW8uCiAKICAgMy4gTnVuIHRhanB1ICA6cy9sYWEvbGEvZyAuICBBbGRvbm8gZGUgIGcgIG9wY2lvIHNpZ25pZmFzIG1hbGxva2FuCkBAIC01NzMsNyArNTg3LDcgQEAKIAogICAxLiBDVFJMLUcgIHZpZGlnYXMgdmlhbiBwb3ppY2lvbiBlbiBsYSBkb3NpZXJvIGthaiBsYSBzdGF0b24gZGUgbGEgZG9zaWVyby4KICAgICAgICAgICAgIEcgIG1vdmFzIGxhIGt1cnNvcm9uIGFsIGxhIGZpbm8gZGUgbGEgZG9zaWVyby4KLSAgICAgbnVtZXJvIEcgIG1vdmFzIGxhIGt1cnNvcm9uIGFsIHRpdSBudW1lcm8gZGUgbGluaW8uCisgICAgIG51bWVybyBHICBtb3ZhcyBsYSBrdXJzb3JvbiBhbCBudW1lcm8gZGUgdGl1IGxpbmlvLgogICAgICAgICAgICBnZyAgbW92YXMgbGEga3Vyc29yb24gYWwgbGEgdW51YSBsaW5pby4KIAogICAyLiBUYWpwbyBkZSAgLyAga2FqIGZyYXpvbiBzZXLEiWFzIGxhIGZyYXpvbiBhbnRhxa1lbi4KQEAgLTU5NSw2ICs2MDksNyBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyA1LjEgS0lFTCBQTEVOVU1JIEVLU1RFUkFOIEtPTUFORE9OCiAKKwogICAgICAqKiBUYWpwdSAgOiEgIHNla3ZhdGEgZGUgZWtzdGVyYSBrb21hbmRvIHBvciBwbGVudW1pIGxhIGtvbWFuZG9uLiAqKgogCiAgIDEuIFRhanB1IGxhIGtvbmF0YW4ga29tYW5kb24gIDogIHBvciBwb3ppY2lpIGxhIGt1cnNvcm9uIMSJZSBsYSBzdWJhIHBhcnRvCkBAIC02MDMsNyArNjE4LDcgQEAKICAgMi4gTnVuIHRhanB1IGxhICAhICAoa3Jpc2lnbm8pIHNpZ25vbi4gVGlvIGVibGlnYXMgYWwgdmkgcGxlbnVtaSBpdW4KICAgICAgZWtzdGVyYW4gxZ1lbGFuIGtvbWFuZG9uIGFqbi4KIAotICAzLiBFa3plbXBsZSwgdGFqcHUgIGxzICBwb3N0ICEga2FqIHRhanB1IDxFbmVua2xhdm8+LiBUaW8gbGlzdGlnb3MgbGEgCisgIDMuIEVremVtcGxlLCB0YWpwdSAgbHMgIHBvc3QgISBrYWogdGFqcHUgPEVuZW5rbGF2bz4uIFRpbyBsaXN0aWdvcyBsYQogICAgICBlbmhhdm9uIGRlIGxhIGRvc2llcnVqbywgc2FtZSBraWVsIHNlIHZpIGVzdGlzIGVuIMWdZWxhIGludml0by4KICAgICAgQcWtIHV6dSAgOiFkaXIgIHNlIGxzIG5lIGZ1bmtjaWFzLgogCkBAIC02MTcsNiArNjMyLDcgQEAKIH5+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+fgogICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDUuMiBQTEkgUFJJIEtPTlNFUlZPIERFIERPU0lFUk8KIAorCiAgICAqKiBQb3Iga29uc2VydmkgbGEgZmFyaXRham4gxZ1hbsSdb2puIGVuIGxhIHRla3N0bywgdGFqcHUgIDp3IERPU0lFUk5PTU8uICoqCiAKICAgMS4gVGFqcHUgICFkaXIgIGHFrSAgIWxzICBwb3IgYWtpcmkgbGlzdG9uIGRlIHZpYSBkb3NpZXJ1am8uCkBAIC02MjYsNyArNjQyLDcgQEAKIAogICAzLiBOdW4gdGFqcHU6ICAgOncgVEVTVE8gICAoa2llIFRFU1RPIGVzdGFzIGxhIGVsZWt0aXRhIGRvc2llcm5vbW8pCiAKLSAgNC4gVGlvIGtvbnNlcnZhcyBsYSB0dXRhbiBkb3NpZXJvbiAoaW5zdHJ1aWxvIGRlIFZpbSkgcGVyIGxhIG5vbW8gVEVTVE8uCisgIDQuIFRpbyBrb25zZXJ2YXMgbGEgdHV0YW4gZG9zaWVyb24gKGluc3RydWlsb24gZGUgVmltKSBrdW4gbGEgbm9tbyBURVNUTy4KICAgICAgUG9yIGtvbnRyb2xpIHRpb24sIHRhanB1ICAgOiFkaXIgICBhxa0gICAhbHMgICBkZW5vdmUgcG9yIHZpZGlnaSB2aWFuCiAgICAgIGRvc2llcnVqb24uCiAKQEAgLTY0MSwxMSArNjU3LDEyIEBACiB+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+fn4KICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyA1LjMgQVBBUlRJR0kgS09OU0VSVkVOREFOIFRFU1RPTgogCisKICAgICAqKiBQb3Iga29uc2VydmkgcGFydG9uIGRlIGxhIGRvc2llcm8sIHRhanB1ICAgdiAgbW92byAgOncgRE9TSUVSTk9NTyAqKgogCiAgIDEuIE1vdnUgbGEga3Vyc29yb24gYWwgdGl1IGxpbmlvLgotICAKLSAgMi4gUHJlbXUgIHYgIGthaiBtb3Z1IGxhIGt1cnNvcm9uIGFsIGxhIGt2aW5hIHN1YmEgZXJvLiAgUmltYXJrdSwga2UgbGEgCisKKyAgMi4gUHJlbXUgIHYgIGthaiBtb3Z1IGxhIGt1cnNvcm9uIGFsIGxhIGt2aW5hIHN1YmEgZXJvLiAgUmltYXJrdSwga2UgbGEKICAgICAgdGVrc3RvIGVtZmF6acSdYXMuCiAKICAgMy4gUHJlbXUgbGEgIDogIHNpZ25vbi4gIMSIZSBsYSBmaW5vIGRlIGxhIGVrcmFubyAgOic8LCc+ICBhcGVyb3MuCkBAIC02NTQsMTAgKzY3MSwxMCBAQAogICAgICBLb250cm9sdSwga2UgdmkgdmlkYXMgIDonPCwnPncgVEVTVE8gIGFudGHFrSBwcmVtaSA8RW5lbmtsYXZvPi4KIAogICA1LiBWaW0ga29uc2Vydm9zIGxhIGFwYXJ0aWdpdGFqbiBsaW5pb2puIGFsIGxhIGRvc2llcm8gVEVTVE8uICBVenUgIDpkaXIKLSAgICAgYcWtICA6IWxzICBwb3IgdmlkaWdpIMSdaW4uICBOZSBqYW0gZm9ydmnFnXUgxJ1pbi4gIE5pIHV6b3MgxJ1pbiBlbiBsYQotICAgICBzZWt2YW50YSBsZWNpb25vLgorICAgICBhxa0gIDohbHMgIHBvciB2aWRpZ2kgxJ1pbi4gIE5lIGZvcnZpxZ11IMSdaW4uICBOaSB1em9zIMSdaW4gZW4gbGEgc2VrdmFudGEKKyAgICAgbGVjaW9uby4KIAotUklNQVJLTzogUFJFTU8gREUgIHYgIGtvbWVuY2FzIFZpZHVtYW4gYXBhcnRpZ29uLiAgVmkgcG92YXMgbW92aSBsYSBrdXJzb3JvbgorUklNQVJLTzogUHJlbW8gZGUgIHYgIGtvbWVuY2FzIFZpZHVtYW4gYXBhcnRpZ29uLiAgVmkgcG92YXMgbW92aSBsYSBrdXJzb3JvbgogICAgICAgICAgcG9yIHBsaWdyYW5kaWdpIGHFrSBtYWxwbGlncmFuZGlnaSBsYSBhcGFydGlnb24uIFRpYW0gdmkgcG92YXMgdXppCiAgICAgICAgICBvcGVyYXRvcm9uIHBvciBwbGVudW1pIGlvbiBrdW4gbGEgdGVrc3RvLiAgRWt6ZW1wbGUsICBkICBmb3J2acWdYXMKICAgICAgICAgIGxhIHRla3N0b24uCkBAIC02ODIsNyArNjk5LDcgQEAKICAgICAga2UgZXN0YXMgbnVuIGR1IGtvcGlvaiBkZSBsYSBsZWNpb25vIDUuMywgbGEgb3JpZ2luYWxhIGthaiBsYSB2ZXJzaW8gbWVtCiAgICAgIGRlIGxhIGRvc2llcm8uCiAKLVJJTUFSS086IFZpIG51biBwb3ZhcyBsZWdpIGxhIGVsaXJvbiBkZSBla3N0ZXJhIGtvbWFuZG8uIEVremVtcGxlLCAKK1JJTUFSS086IFZpIG51biBwb3ZhcyBsZWdpIGxhIGVsaXJvbiBkZSBla3N0ZXJhIGtvbWFuZG8uIEVremVtcGxlLAogICAgICAgICA6ciAhbHMgIGxlZ2FzIGxhIGVsaXJvbiBkZSBsYSBrb21hbmRvIGxzIGthaiBtZXRhcyDEnWluIHN1YiBsYQogICAgICAgICBrdXJzb3Jvbi4KIApAQCAtNzAxLDcgKzcxOCw3IEBACiAgIDIuICA6dyBET1NJRVJOT01PICBrb25zZXJ2YXMgbGEgbnVuYW4gZG9zaWVyb24gZGUgVmltIGFsIGRpc2tvIGt1biBsYQogICAgICAgbm9tbyBET1NJRVJOT01PLgogCi0gIDMuICB2ICBtb3ZvICA6dyBET1NJRVJOT01PICBrb25zZXJ2YXMgbGEgVmlkdW1hbiBhcGFydGlnbyBkZSBsaW5pb2ogZW4KKyAgMy4gIHYgIG1vdm8gIDp3IERPU0lFUk5PTU8gIGtvbnNlcnZhcyBsYSBWaWR1bWFuIGFwYXJ0aWdvbiBkZSBsaW5pb2ogZW4KICAgICAgIGRvc2llcm8gRE9TSUVSTk9NTy4KIAogICA0LiA6ciBET1NJRVJOT01PICBha2lyYXMgbGEgZG9zaWVyb24gRE9TSUVSTk9NTyBlbCBsYSBkaXNrbyBrYWogbWV0YXMKQEAgLTc0OCw3ICs3NjUsNyBAQAogICA0LiBLb21wbGV0aWd1IGxhIHZvcnRvbiBzYW1lIGtpZWwgbGEgbGluaW8gc3ViIMSdaS4gIFByZW11IDxFU0s+IHBvcgogICAgICBlbGlyaSBsYSBFbm1ldGFuIHJlxJ1pbW9uLgogCi0gIDUuIFV6dSAgZSAgcG9yIG1vdmnEnWkgYWwgbGEgc2VrdmFudGEgbmVrb21wbGV0YSB2b3J0byBrYWogcmlwZXR1ICAgCisgIDUuIFV6dSAgZSAgcG9yIG1vdmnEnWkgYWwgbGEgc2VrdmFudGEgbmVrb21wbGV0YSB2b3J0byBrYWogcmlwZXR1CiAgICAgIHBhxZ1vam4gMyBrYWogNC4KIAogLS0tPiDEiGkgdGl1IGxpbiBlYmxpZ29zIHZpbiBla3ogdmluIHBvc3RhbCB0ZWtzdG9uIGFsIGxpbmlvLgpAQCAtODA0LDcgKzgyMSw3IEBACiAgICAgIHBlciAgcCAuCiAKIC0tLT4gYSkgdGlvIGVzdGFzIGxhIHVudWEgZXJvLgotICAgICBiKSAKKyAgICAgYikKIAogUklNQVJLTzogdmkgcG92YXMgYW5rYcWtIHV6aSAgeSAga2llbCBvcGVyYXRvcm87ICB5dyAga29waWFzIHVudSB2b3J0b24uCiAKQEAgLTgxMiw3ICs4MjksOCBAQAogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDYuNSBBR09SREkgT1BDSU9OCiAKLSAgICAgICAgICoqIEFnb3JkdSBvcGNpb24gcG9yIGtlIHNlcsSJbyBhxa0gYW5zdGF0YcWtZ28gaWdub3J1IHVza2xlY29uICoqCisKKyAgICAgICAgICoqIEFnb3JkdSBvcGNpb24gcG9yIGtlIHNlcsSJbyBhxa0gYW5zdGF0YcWtaWdvIGlnbm9ydSB1c2tsZWNvbiAqKgogCiAgIDEuIFNlcsSJdSAnaWdub3JpJyBwZXIgdGFqcG8gZGUgL2lnbm9yaSA8RW5lbmtsYXZvPgogICAgICBSaXBldHUgcGx1cmZvamUgcHJlbWFudGUgIG4gLgpAQCAtODU3LDkgKzg3NSwxMSBAQAogCiAgIDcuIEFudGHFrWFsZG9udSAibm8iIHBvciBtYWzFnWFsdGkgbGEgb3BjaW9uOiAgOnNldCBub2ljCiAKKwogfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVjaW9ubyA3LjEgQUtJUkkgSEVMUE9OCiAKKwogICAgICAgICAgICAgICAgICAgICAgICAgICAqKiBVenUgbGEgaGVscGFuIHNpc3RlbW9uICoqCiAKICAgVmltIGhhdmFzIGFtcGxla3NhbiBoZWxwYW4gc2lzdGVtb24uIFBvciBrb21lbmNpxJ1pLCBwcm92dSB1bnUgZWwgbGEgdGl1agpAQCAtODg0LDIyICs5MDQsMjMgQEAKIH5+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+fgogICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDcuMiBLUkVJIFNUQVJUQU4gU0tSSVBUT04KIAotICAgICAgICAgICAgICAgICAgICAgICAgICAqKiBFYmxpZ3UgZWJsZWNvam4gZGUgVmltICoqCiAKLSAgVmltIGhhdmFzIG11bHRlIHBsaSBkYSBlYmxlY29qIG9sIFZpLCBzZWQgbGEgcGxlaiBtdWx0YWogZXN0YXMgZGVmYcWtbHRlCi0gIG1hbMWdYWx0aXRhai4gIFBvciBla3V6aSBsYSBlYmxlY29qbiwgdmkgZGV2YXMga3JlaSBkb3NpZXJvbiAidmltcmMuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiogRWJsaWd1IGthcGFibG9qbiBkZSBWaW0gKioKKworICBWaW0gaGF2YXMgbXVsdGUgcGxpIGRhIGthcGFibG9qIG9sIFZpLCBzZWQgbGEgcGxlaiBtdWx0YWogZXN0YXMgZGVmYcWtbHRlCisgIG1hbMWdYWx0aXRhai4gIFBvciBla3V6aSBsYSBrYXBhYmxvam4sIHZpIGRldmFzIGtyZWkgZG9zaWVyb24gInZpbXJjLgogCiAgIDEuIEVrcmVkYWt0dSBsYSBkb3NpZXJvbiAidmltcmMiLiAgVGlvIGRlcGVuZGFzIGRlIHZpYSBzaXN0ZW1vOgogICAgICAgOmUgfi8udmltcmMgICAgICAgICAgcG9yIFVuaWtzbwogICAgICAgOmUgJFZJTS9fdmltcmMgICAgICAgcG9yIE1TLVZpbmRvem8KIAotICAyLiBOdW4gbGVndSBsYSBlbmhhdm9uIGRlIGxhIGVremVtcGxhICJ2aW1yYyIgCisgIDIuIE51biBsZWd1IGxhIGVuaGF2b24gZGUgbGEgZWt6ZW1wbGEgInZpbXJjIgogICAgICAgOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KIAogICAzLiBLb25zZXJ2dSBsYSBkb3NpZXJvbiBwZXI6CiAgICAgICA6dwogCi0gIExhIHNla3ZhbnRhIGZvam8sIGtpYW0gdmkgbGFuxIlhcyBWaW0sIMSdaSB1em9zIHNpbnRha3NhbiBlbWZhem9uLgorICBMYSBzZWt2YW50YW4gZm9qb24sIGtpYW0gdmkgbGFuxIlhcyBWaW0sIMSdaSB1em9zIHNpbnRha3NhbiBlbWZhem9uLgogICBWaSBwb3ZhcyBhbGRvbmkgxIlpdWpuIHZpYWpuIHByZWZlcmF0YWpuIGFnb3Jkb2puIGFsIHRpdSBkb3NpZXJvICJ2aW1yYyIuCiAgIFBvciBwbGkgZGEgaW5mb3Jtb2osIHRhanB1ICA6aGVscCB2aW1yYy1pbnRybwogCkBAIC05MDcsNiArOTI4LDcgQEAKIH5+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+fgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWNpb25vIDcuMyBLT01QTEVUSUdPCiAKKwogICAgICAgICAgICAgICoqIEtvbXBsZXRpZ28gZGUga29tYW5kYSBsaW5pbyBwZXIgQ1RSTC1EIGthaiA8VEFCPiAqKgogCiAgIDEuIENlcnRpZ3Uga2UgVmltIGVzdGFzIGVuIGtvbmdydWEgcmXEnWltbzogIDpzZXQgbm9jcApAQCAtOTYyLDYgKzk4NCw2IEBACiAKICAgVHJhZHVraXRhIGVuIEVzcGVyYW50byBkZSBEb21pbmlxdWUgUGVsbMOpLCAyMDA4LTA0LTAxCiAgIFJldHBvxZ10bzogZG9taW5pcXVlLnBlbGxlQGdtYWlsLmNvbQotICBMYXN0YSDFnWFuxJ1vOiAyMDA4LTA0LTAyCisgIExhc3RhIMWdYW7EnW86IDIwMDktMDItMDEKIAogfn5+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+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVzIGIvcnVudGltZS90dXRvci90dXRvci5lcwppbmRleCBiYmRiMTNkLi5iZmI0MmU0IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVzCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZXMKQEAgLTExNyw3ICsxMTcsNyBAQAogCQkJICAgIFJFU1VNRU4gREUgTEEgTEVDQ0nTTiAxCiAKIAotICAxLiBFbCBjdXJzb3Igc2UgbXVldmUgdXRpbGl6YW1kbyBsYXMgdGVjbGFzIGRlIGxhcyBmbGVjaGFzIG8gbGFzIHRlY2xhcyBoamtsLgorICAxLiBFbCBjdXJzb3Igc2UgbXVldmUgdXRpbGl6YW5kbyBsYXMgdGVjbGFzIGRlIGxhcyBmbGVjaGFzIG8gbGFzIHRlY2xhcyBoamtsLgogCSBoIChpenF1aWVyZGEpCSAgIGogKGFiYWpvKQkgIGsgKGFycmliYSkJICBsIChkZXJlY2hhKQogCiAgIDIuIFBhcmEgYWNjZWRlciBhIFZpbSAoZGVzZGUgZWwgc+1tYm9sbyBkZWwgc2lzdGVtYSAlKSBlc2NyaWJhOgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5lcy51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZXMudXRmLTgKaW5kZXggNzQ5NTYxOS4uODRkYjhmZCAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5lcy51dGYtOAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmVzLnV0Zi04CkBAIC0xMTcsNyArMTE3LDcgQEAKIAkJCSAgICBSRVNVTUVOIERFIExBIExFQ0NJw5NOIDEKIAogCi0gIDEuIEVsIGN1cnNvciBzZSBtdWV2ZSB1dGlsaXphbWRvIGxhcyB0ZWNsYXMgZGUgbGFzIGZsZWNoYXMgbyBsYXMgdGVjbGFzIGhqa2wuCisgIDEuIEVsIGN1cnNvciBzZSBtdWV2ZSB1dGlsaXphbmRvIGxhcyB0ZWNsYXMgZGUgbGFzIGZsZWNoYXMgbyBsYXMgdGVjbGFzIGhqa2wuCiAJIGggKGl6cXVpZXJkYSkJICAgaiAoYWJham8pCSAgayAoYXJyaWJhKQkgIGwgKGRlcmVjaGEpCiAKICAgMi4gUGFyYSBhY2NlZGVyIGEgVmltIChkZXNkZSBlbCBzw61tYm9sbyBkZWwgc2lzdGVtYSAlKSBlc2NyaWJhOgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5mciBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIKaW5kZXggYmM1NjY4OS4uZTMyMTc1NCAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5mcgorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmZyCkBAIC0xLDUgKzEsNSBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotPSBCIGkgZSBuIHYgZSBuIHUgZSAgZGFucyBsZSAgVCB1IHQgbyByIGkgZSBsICBkZSAgViBJIE0gIC0gIFZlcnNpb24gMS41LmZyLjIgPQorPSBCIGkgZSBuIHYgZSBuIHUgZSAgZGFucyBsZSAgVCB1IHQgbyByIGkgZSBsICBkZSAgViBJIE0gIC0gIFZlcnNpb24gMS43LmZyLjEgPQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAgICAgIFZpbSBlc3QgdW4g6WRpdGV1ciB0cuhzIHB1aXNzYW50IHF1aSBhIHRyb3AgZGUgY29tbWFuZGVzIHBvdXIgcG91dm9pcgpAQCAtNyw5MyArNywxMDAgQEAKICAgICAgZOljcmlyZSBzdWZmaXNhbW1lbnQgYWZpbiBkZSB2b3VzIHBlcm1ldHRyZSBkJ3V0aWxpc2VyIHNpbXBsZW1lbnQgVmltLgogCiAgICAgIExlIHRlbXBzIHJlcXVpcyBwb3VyIHN1aXZyZSBjZSBjb3VycyBlc3QgZCdlbnZpcm9uIDI1IOAgMzAgbWludXRlcywgc2Vsb24KLSAgICAgbGUgdGVtcHMgcXVlIHZvdXMgcGFzc2VyZXog4CBleHDpcmltZW50ZXIuICBMZXMgY29tbWFuZGVzIHV0aWxpc+llcyBkYW5zCi0gICAgIGxlcyBsZedvbnMgbW9kaWZpZXJvbnQgbGUgdGV4dGUuIEZhaXRlcyB1bmUgY29waWUgZGUgY2UgZmljaGllciBhZmluIGRlCi0gICAgIHZvdXMgZW50cmHubmVyIGRlc3N1cyAoc2kgdm91cyBhdmV6IGxhbmPpICJ2aW10dXRvciIgY2VjaSBlc3QgZOlq4CB1bmUKLSAgICAgY29waWUpLgorICAgICBsZSB0ZW1wcyBxdWUgdm91cyBwYXNzZXJleiDgIGV4cOlyaW1lbnRlci4KKworICAgICBBVFRFTlRJT04gOgorICAgICBMZXMgY29tbWFuZGVzIHV0aWxpc+llcyBkYW5zIGxlcyBsZedvbnMgbW9kaWZpZXJvbnQgbGUgdGV4dGUuIEZhaXRlcyB1bmUKKyAgICAgY29waWUgZGUgY2UgZmljaGllciBhZmluIGRlIHZvdXMgZW50cmHubmVyIGRlc3N1cyAoc2kgdm91cyBhdmV6IGxhbmPpCisgICAgICJ2aW10dXRvciIgY2VjaSBlc3QgZOlq4CB1bmUgY29waWUpLgogCiAgICAgIElsIGVzdCBpbXBvcnRhbnQgZGUgZ2FyZGVyIGVuIHTqdGUgcXVlIGNlIGNvdXJzIGVzdCBjb27ndSBwb3VyIGFwcHJlbmRyZQotICAgICBwYXIgbGEgcHJhdGlxdWUuICBDZWxhIHNpZ25pZmllIHF1ZSB2b3VzIGRldmV6IGV46WN1dGVyIGxlcyBjb21tYW5kZXMKLSAgICAgcG91ciBsZXMgYXBwcmVuZHJlIGNvcnJlY3RlbWVudC4gIFNpIHZvdXMgdm91cyBjb250ZW50ZXogZGUgbGlyZSBsZQotICAgICB0ZXh0ZSwgdm91cyBvdWJsaWVyZXogbGVzIGNvbW1hbmRlcyAhCisgICAgIHBhciBsYSBwcmF0aXF1ZS4gQ2VsYSBzaWduaWZpZSBxdWUgdm91cyBkZXZleiBleOljdXRlciBsZXMgY29tbWFuZGVzCisgICAgIHBvdXIgbGVzIGFwcHJlbmRyZSBjb3JyZWN0ZW1lbnQuIFNpIHZvdXMgdm91cyBjb250ZW50ZXogZGUgbGlyZSBsZSB0ZXh0ZSwKKyAgICAgdm91cyBvdWJsaWVyZXogbGVzIGNvbW1hbmRlcyAhCiAKLSAgICAgTWFpbnRlbmFudCwgdulyaWZpZXogcXVlIHZvdHJlIGNsYXZpZXIgbidlc3QgUEFTIHZlcm91aWxs6SBlbiBtYWp1c2N1bGVzLAotICAgICBldCBhcHB1eWV6IGxhIHRvdWNoZSAgaiAgbGUgbm9tYnJlIGRlIGZvaXMgc3VmZmlzYW50IHBvdXIgcXVlIGxhIGxl529uCi0gICAgIDEuMSByZW1wbGlzc2UgY29tcGzodGVtZW50IGwn6WNyYW4uCisgICAgIE1haW50ZW5hbnQsIHbpcmlmaWV6IHF1ZSB2b3RyZSBjbGF2aWVyIG4nZXN0IFBBUyB2ZXJyb3VpbGzpIGVuCisgICAgIG1hanVzY3VsZXMsIGV0IGFwcHV5ZXogbGEgdG91Y2hlICBqICBsZSBub21icmUgZGUgZm9pcyBzdWZmaXNhbnQgcG91cgorICAgICBxdWUgbGEgTGXnb24gMS4xIHJlbXBsaXNzZSBjb21wbOh0ZW1lbnQgbCfpY3Jhbi4KKworCiB+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+fn4KLQkJICAgICAgTGXnb24gMS4xIDogRMlQTEFDRU1FTlQgRFUgQ1VSU0VVUgorICAgICAgICAgICAgICAgICAgICAgIExl529uIDEuMSA6IETJUExBQ0VNRU5UIERVIENVUlNFVVIKIAogCiAgICoqIFBvdXIgZOlwbGFjZXIgbGUgY3Vyc2V1ciwgYXBwdXlleiBsZXMgdG91Y2hlcyBoLGosayxsIGNvbW1lIGluZGlxdekuICoqCi0JICAgIF4KLQkgICAgawkgICAgIEFzdHVjZTogIExhIHRvdWNoZSBoIGVzdCDgIGdhdWNoZSBldCBk6XBsYWNlIOAgZ2F1Y2hlLgotICAgICAgPCBoICAgICAgbCA+CSAgICAgIExhIHRvdWNoZSBsIGVzdCDgIGRyb2l0ZSBldCBk6XBsYWNlIOAgZHJvaXRlLgotCSAgIGoJCSAgICAgIExhIHRvdWNoZSBqIHJlc3NlbWJsZSDgIHVuZSBmbOhjaGUgdmVycyBsZSBiYXMuCi0JICAgdgorICAgICAgICAgIF4KKyAgICAgICAgICBrICAgICAgICBBc3R1Y2UgOiAgTGEgdG91Y2hlIGggZXN0IOAgZ2F1Y2hlIGV0IGTpcGxhY2Ug4CBnYXVjaGUuCisgICAgPCBoICAgICAgIGwgPiAgICAgICAgICAgIExhIHRvdWNoZSBsIGVzdCDgIGRyb2l0ZSBldCBk6XBsYWNlIOAgZHJvaXRlLgorICAgICAgICAgIGogICAgICAgICAgICAgICAgICBMYSB0b3VjaGUgaiByZXNzZW1ibGUg4CB1bmUgZmzoY2hlIHZlcnMgbGUgYmFzLgorICAgICAgICAgIHYKICAgMS4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbCfpY3JhbiBqdXNxdSfgIHZvdXMgc2VudGlyIOAgbCdhaXNlLgogCiAgIDIuIE1haW50ZW5leiBsYSB0b3VjaGUgQmFzIChqKSBlbmZvbmPpZSBqdXNxdSfgIGNlIHF1J2VsbGUgc2Ugculw6HRlLgotLS0tPiBNYWludGVuYW50IHZvdXMg6nRlcyBjYXBhYmxlIGRlIHZvdXMgZOlwbGFjZXIganVzcXUn4CBsYSBsZedvbiBzdWl2YW50ZS4KKyAgICAgTWFpbnRlbmFudCB2b3VzIOp0ZXMgY2FwYWJsZSBkZSB2b3VzIGTpcGxhY2VyIGp1c3F1J+AgbGEgbGXnb24gc3VpdmFudGUuCiAKICAgMy4gRW4gdXRpbGlzYW50IGxhIHRvdWNoZSBCYXMsIGFsbGV6IOAgbGEgTGXnb24gMS4yLgogCi1Ob3RlOiBTaSBqYW1haXMgdm91cyBkb3V0ZXogZGUgY2UgcXVlIHZvdXMgdmVuZXogZGUgdGFwZXIsIGFwcHV5ZXogPMljaGFwPgotICAgICAgcG91ciByZXZlbmlyIGVuIG1vZGUgTm9ybWFsLiBQdWlzIHJldGFwZXogbGEgY29tbWFuZGUgcXVlIHZvdXMgdm91bGllei4KK05PVEUgOiBTaSBqYW1haXMgdm91cyBkb3V0ZXogZGUgY2UgcXVlIHZvdXMgdmVuZXogZGUgdGFwZXIsIGFwcHV5ZXogPMljaGFwPgorICAgICAgIHBvdXIgcmV2ZW5pciBlbiBtb2RlIE5vcm1hbC4gUHVpcyByZXRhcGV6IGxhIGNvbW1hbmRlIHF1ZSB2b3VzIHZvdWxpZXouCiAKLU5vdGU6IExlcyB0b3VjaGVzIGZs6WNo6WVzIGRldnJhaWVudCDpZ2FsZW1lbnQgZm9uY3Rpb25uZXIuIE1haXMgZW4gdXRpbGlzYW50Ci0gICAgICBoamtsIHZvdXMgcG91cnJleiB2b3VzIGTpcGxhY2VyIGJlYXVjb3VwIHBsdXMgcmFwaWRlbWVudCwgdW5lIGZvaXMgcXVlCi0gICAgICB2b3VzIGF1cmV6IHByaXMgbCdoYWJpdHVkZS4KK05PVEUgOiBMZXMgdG91Y2hlcyBmbOljaOllcyBkZXZyYWllbnQg6WdhbGVtZW50IGZvbmN0aW9ubmVyLiBNYWlzIGVuIHV0aWxpc2FudAorICAgICAgIGhqa2wgdm91cyBwb3VycmV6IHZvdXMgZOlwbGFjZXIgYmVhdWNvdXAgcGx1cyByYXBpZGVtZW50LCB1bmUgZm9pcyBxdWUKKyAgICAgICB2b3VzIGF1cmV6IHByaXMgbCdoYWJpdHVkZS4KKworCiB+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+fn4KLQkJICAgICBMZedvbiAxLjIgOiBFTlRSyUUgRVQgU09SVElFIERFIFZJTQorICAgICAgICAgICAgICAgICAgICAgTGXnb24gMS4yIDogU09SVElSIERFIFZJTQogCiAKLSAhISBOT1RFOiBBdmFudCBkJ2VmZmVjdHVlciBsZXMg6XRhcGVzIGNpLWRlc3NvdXMsIGxpc2V6IHRvdXRlIGNldHRlIGxl529uICEhCisgISEgTk9URSA6IEF2YW50IGQnZWZmZWN0dWVyIGxlcyDpdGFwZXMgY2ktZGVzc291cywgbGlzZXogdG91dGUgY2V0dGUgbGXnb24gISEKIAotICAxLiBBcHB1eWV6IGxhIHRvdWNoZQk8yWNoYXA+ICAocG91ciDqdHJlIHP7ciBkJ+p0cmUgZW4gbW9kZSBOb3JtYWwpLgorICAxLiBBcHB1eWV6IGxhIHRvdWNoZSAgPMljaGFwPiAgKHBvdXIg6nRyZSBz+3IgZCfqdHJlIGVuIG1vZGUgTm9ybWFsKS4KIAotICAyLiBUYXBlejoJCQk6cSEgPEVudHLpZT4KKyAgMi4gVGFwZXogOiAgOnEhIDxFbnRy6WU+CisgICAgIENlY2kgcXVpdHRlIGwn6WRpdGV1ciBTQU5TIGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBxdWUgdm91cyBhdmV6CisgICAgIGZhaXRzLgogCi0tLS0+IENlY2kgcXVpdHRlIGwn6WRpdGV1ciBTQU5TIHNhdXZlciBsZXMgY2hhbmdlbWVudHMgcXVlIHZvdXMgYXZleiBmYWl0cy4KLSAgICAgU2kgdm91cyB2b3VsZXogZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzIGV0IHNvcnRpciwgdGFwZXo6Ci0JCQkJOndxIDxFbnRy6WU+Ci0KLSAgMy4gTG9yc3F1ZSBsJ2ludml0ZSBkdSAnc2hlbGwnIHZvdXMgc2VyYSBwculzZW506WUsIHRhcGV6IGxhIGNvbW1hbmRlIHF1aQotICAgICB2b3VzIGEgYW1lbukgZGFucyBjZSB0dXRvcmllbC4gIENlbGEgcG91cnJhaXQg6nRyZTogICAgdmltdHV0b3IgPEVudHLpZT4KLSAgICAgTm9ybWFsZW1lbnQsIHZvdXMgdXRpbGlzZXJpZXo6CQkJICAgIHZpbSB0dXRvciA8RW50cullPgotCi0tLS0+ICd2aW0nIGxhbmNlIGwn6WRpdGV1ciwgJ3R1dG9yJyBlc3QgbGUgZmljaGllciBxdWUgdm91cyBzb3VoYWl0ZXog6WRpdGVyLgorICAzLiBMb3JzcXVlIGwnaW52aXRlIGR1IHNoZWxsIHZvdXMgc2VyYSBwculzZW506WUsIHRhcGV6IGxhIGNvbW1hbmRlIHF1aQorICAgICB2b3VzIGEgbWVu6SBkYW5zIGNlIHR1dG9yaWVsLiBDZWxhIHBvdXJyYWl0IOp0cmUgOiAgICB2aW10dXRvciA8RW50cullPgogCiAgIDQuIFNpIHZvdXMgYXZleiBt6W1vcmlz6SBjZXMg6XRhcGVzIGV0IOp0ZXMgY29uZmlhbnQsIGVmZmVjdHVleiBsZXMg6XRhcGVzCi0gICAgIDEg4CAzIHBvdXIgc29ydGlyIHB1aXMgcmVudHJlciBkYW5zIGwn6WRpdGV1ci4gIETpcGxhY2V6IGVuc3VpdGUgbGUKLSAgICAgIGN1cnNldXIganVzcXUn4CBsYSBMZedvbiAxLjMuCisgICAgIDEg4CAzIHBvdXIgc29ydGlyIHB1aXMgcmVudHJlciBkYW5zIGwn6WRpdGV1ci4KKworTk9URSA6ICA6cSEgPEVudHLpZT4gYW5udWxlIHRvdXMgbGUgY2hhbmdlbWVudHMgcXVlIHZvdXMgYXZleiBmYWl0LiBEYW5zCisgICAgICAgICBxdWVscXVlcyBsZedvbnMsIHZvdXMgYXBwcmVuZHJleiDgIGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cy4KKworICA1LiBE6XBsYWNleiBsZSBjdXJzZXVyIOAgbGEgTGXnb24gMS4zLgorCisKIH5+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+fgotCQkgIExl529uIDEuMyA6IMlESVRJT04gREUgVEVYVEUgLSBFRkZBQ0VNRU5UCisgICAgICAgICAgICAgICAgICBMZedvbiAxLjMgOiDJRElUSU9OIERFIFRFWFRFIC0gRUZGQUNFTUVOVAogCiAKLSAqKiBFbiBtb2RlIE5vcm1hbCwgYXBwdXlleiAgeAlwb3VyIGVmZmFjZXIgbGUgY2FyYWN06HJlIHNvdXMgbGUgY3Vyc2V1ci4gKioKKyAgICAgICAgICoqIEFwcHV5ZXogICB4ICAgcG91ciBlZmZhY2VyIGxlIGNhcmFjdOhyZSBzb3VzIGxlIGN1cnNldXIuICoqCiAKICAgMS4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgbWFycXXpZSAtLS0+IGNpLWRlc3NvdXMuCiAKICAgMi4gUG91ciBjb3JyaWdlciBsZXMgZXJyZXVycywgZOlwbGFjZXogbGUgY3Vyc2V1ciBqdXNxdSfgIGNlIHF1J2lsIHNvaXQKICAgICAgc3VyIHVuIGNhcmFjdOhyZSDgIGVmZmFjZXIuCiAKLSAgMy4gQXBwdXlleiBsYSB0b3VjaGUJeCAgcG91ciBlZmZhY2VyIGxlIGNhcmFjdOhyZSByZWRvbmRhbnQuCisgIDMuIEFwcHV5ZXogbGEgdG91Y2hlICB4ICBwb3VyIGVmZmFjZXIgbGUgY2FyYWN06HJlIHJlZG9uZGFudC4KIAogICA0LiBS6XDpdGV6IGxlcyDpdGFwZXMgMiDgIDQganVzcXUn4CBjZSBxdWUgbGEgcGhyYXNlIHNvaXQgY29ycmVjdGUuCiAKIC0tLT4gTGEgdnZhY2hlIOAgc2F1dOnpIGF1LWRkZXNzdXMgZGRlIGxhIGx1dW5lLgogCi0gIDUuIE1haW50ZW5hbnQgcXVlIGxhIGxpZ25lIGVzdCBjb3JyZWN0ZSwgcGFzc2V6IOAgbGEgbGXnb24gMS40LgorICA1LiBNYWludGVuYW50IHF1ZSBsYSBsaWduZSBlc3QgY29ycmVjdGUsIHBhc3NleiDgIGxhIExl529uIDEuNC4KIAotTk9URTogRW4gYXZhbudhbnQgZGFucyBjZSBjb3Vycywgbidlc3NheWV6IHBhcyBkZSBt6W1vcmlzZXIsIGFwcHJlbmV6IHBhcgotICAgICAgbGEgcHJhdGlxdWUuCitOT1RFIDogRW4gYXZhbudhbnQgZGFucyBjZSBjb3Vycywgbidlc3NheWV6IHBhcyBkZSBt6W1vcmlzZXIsIGFwcHJlbmV6IHBhcgorICAgICAgIGxhIHByYXRpcXVlLgogCiAKIH5+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+fgotCQkgICBMZedvbiAxLjQgOiDJRElUSU9OIERFIFRFWFRFIC0gSU5TRVJUSU9OCisgICAgICAgICAgICAgICAgICAgIExl529uIDEuNCA6IMlESVRJT04gREUgVEVYVEUgLSBJTlNFUlRJT04KIAogCi0JICAgKiogRW4gbW9kZSBOb3JtYWwsIGFwcHV5ZXogIGkgIHBvdXIgaW5z6XJlciBkdSB0ZXh0ZS4gKioKKyAgICAgICAgICAgICAgICAgICAgKiogQXBwdXlleiAgaSAgcG91ciBpbnPpcmVyIGR1IHRleHRlLiAqKgogCiAgIDEuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgogCkBAIC0xMDgsMzggKzExNSw5NCBAQAogLS0tPiBJbCBtbnFlIGNhcmFjdOhyZXMgY2V0dGUgLgogLS0tPiBJbCBtYW5xdWUgZGVzIGNhcmFjdOhyZXMgZGFucyBjZXR0ZSBsaWduZS4KIAotICA1LiBVbmUgZm9pcyBxdWUgdm91cyDqdGVzIOAgbCdhaXNlIGF2ZWMgbCdpbnNlcnRpb24gZGUgdGV4dGUsIGFsbGV6IGF1Ci0gICAgIHLpc3Vt6SBjaS1kZXNzb3VzLgorICA1LiBVbmUgZm9pcyBxdWUgdm91cyDqdGVzIOAgbCdhaXNlIGF2ZWMgbCdpbnNlcnRpb24gZGUgdGV4dGUsIGFsbGV6IOAgbGEKKyAgICAgTGXnb24gMS41LgogCiAKIH5+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+fgotCQkJICAgICBSyVNVTckgREUgTEEgTEXHT04gMQorICAgICAgICAgICAgICAgICAgICAgTGXnb24gMS41IDogyURJVElPTiBERSBURVhURSAtIEFKT1VURVIKKworCisgICAgICAgICAgICAgICAgICAgICoqIEFwcHV5ZXogIEEgIHBvdXIgYWpvdXRlciBkdSB0ZXh0LiAqKgorCisgIDEuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIHByZW1p6HJlIGxpZ25lIGNpLWRlc3NvdXMgbWFycXXpZSAtLS0+LgorICAgICBQZXUgaW1wb3J0ZSBzdXIgcXVlbCBjYXJhY3TocmUgc2UgdHJvdXZlIGxlIGN1cnNldXIgc3VyIGNldHRlIGxpZ25lLgorCisgIDIuIEFwcHV5ZXogIEEgIGV0IHRhcGV6IGxlcyBham91dHMgbuljZXNzYWlyZXMuCisKKyAgMy4gUXVhbmQgbGUgdGV4dGUgYSDpdOkgYWpvdXTpLCBhcHB1eWV6IDzJY2hhcD4gcG91ciByZXZlbmlyIGVuIG1vZGUKKyAgICAgTm9ybWFsLgorCisgIDQuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIHNlY29uZGUgbGlnbmUgbWFycXXpZSAtLS0+IGV0IHLpcOl0ZXogbGVzCisgICAgIOl0YXBlcyAyIGV0IDMgcG91ciBjb3JyaWdlciBsYSBwaHJhc2UuCisKKy0tLT4gSWwgbWFucXVlIGR1IHRleHRlIOAgcGFydGlyIGRlIGNldAorICAgICBJbCBtYW5xdWUgZHUgdGV4dGUg4CBwYXJ0aXIgZGUgY2V0dGUgbGlnbmUuCistLS0+IElsIG1hbnF1ZSBhdXNzaSBkdSB0ZQorICAgICBJbCBtYW5xdWUgYXVzc2kgZHUgdGV4dGUgaWNpLgorCisgIDUuIFF1YW5kIHZvdXMgdm91cyBzZW50ZXogc3VmZmlzYW1tZW50IOAgbCdhaXNlIHBvdXIgYWpvdXRlciBkdSB0ZXh0ZSwKKyAgICAgYWxsZXog4CBsYSBMZedvbiAxLjYuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgTGXnb24gMS42IDogyURJVEVSIFVOIEZJQ0hJRVIKKworCisgICAgICAgICAgKiogVXRpbGlzZXogIDp3cSAgcG91ciBlbnJlZ2lzdHJlciB1biBmaWNoaWVyIGV0IHNvcnRpci4gKioKKworISEgTk9URSA6IExpc2V6IHRvdXRlIGxhIGxl529uIGF2YW50IGQnZXjpY3V0ZXIgbGVzIGluc3RydWN0aW9ucyBjaS1kZXNzb3VzICEhCisKKyAgMS4gU29ydGV6IGRlIGNlIHR1dG9yaWVsIGNvbW1lIHZvdXMgbCdhdmV6IGZhaXQgZGFucyBsYSBMZedvbiAxLjIgOiAgOnEhCisgICAgIE91LCBzaSB2b3VzIGF2ZXogYWNj6HMg4CB1biBhdXRyZSB0ZXJtaW5hbCwgZXjpY3V0ZXogeSBsZXMgYWN0aW9ucworICAgICBxdWkgc3VpdmVudC4KKworICAyLiDAIGwnaW52aXRlIGR1IHNoZWxsLCB0YXBleiBjZXR0ZSBjb21tYW5kZSA6ICB2aW0gdHV0b3IgPEVudHLpZT4KKyAgICAgJ3ZpbScgZXN0IGxhIGNvbW1hbmRlIHBvdXIgZOltYXJyZXIgbCfpZGl0ZXVyIFZpbSwgJ3R1dG9yJyBlc3QgbGUKKyAgICAgbm9tIGR1IGZpY2hpZXIgcXVlIHZvdXMgc291aGFpdGV6IOlkaXRlci4gVXRpbGlzZXogdW4gZmljaGllciBxdWkgcGV1dAorICAgICDqdHJlIG1vZGlmaekuCisKKyAgMy4gSW5z6XJleiBldCBlZmZhY2V6IGR1IHRleHRlIGNvbW1lIHZvdXMgbCdhdmV6IGFwcHJpcyBkYW5zIGxlcyBsZedvbnMKKyAgICAgcHLpY+lkZW50ZXMuCisKKyAgNC4gRW5yZWdpc3RyZXogbGUgZmljaGllciBhdmVjIGxlcyBjaGFuZ2VtZW50cyBldCBzb3J0ZXogZGUgVmltIGF2ZWMgOgorICAgICAgIDp3cSA8RW50cullPgorCisgIDUuIFNpIHZvdXMgYXZleiBxdWl0dOkgdmltdHV0b3Ig4CBsJ+l0YXBlIDEsIHJlY29tbWVuY2V6IHZpbXR1dG9yIGV0CisgICAgIGTpcGxhY2V6LXZvdXMgZW4gYmFzIHZlcnMgbGUgculzdW3pIHN1aXZhbnQuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLJU1VNySBERSBMQSBMRcdPTiAxCisKIAogICAxLiBMZSBjdXJzZXVyIHNlIGTpcGxhY2UgYXZlYyBsZXMgdG91Y2hlcyBmbOljaOllcyBvdSBsZXMgdG91Y2hlcyBoamtsLgotCSBoIChnYXVjaGUpCWogKGJhcykgICAgICAgIGsgKGhhdXQpICAgICAgIGwgKGRyb2l0ZSkKKyAgICAgICAgICAgaCAoZ2F1Y2hlKSAgICAgIGogKGJhcykgICAgICBrIChoYXV0KSAgICAgIGwgKGRyb2l0ZSkKIAotICAyLiBQb3VyIGVudHJlciBkYW5zIFZpbSAo4CBsJ2ludml0ZSAlKSB0YXBlejogIHZpbSBGSUNISUVSIDxFbnRy6WU+CisgIDIuIFBvdXIgZOltYXJyZXIgVmltIOAgbCdpbnZpdGUgZHUgc2hlbGwgdGFwZXogOiAgdmltIEZJQ0hJRVIgPEVudHLpZT4KIAotICAzLiBQb3VyIHF1aXR0ZXIgVmltIHRhcGV6OiAgPMljaGFwPiA6cSEgPEVudHLpZT4gIHBvdXIgcGVyZHJlIHRvdXMgbGVzCi0JCQkJCQkgICAgY2hhbmdlbWVudHMuCi0JCSAgIE9VIHRhcGV6OiAgPMljaGFwPiA6d3EgPEVudHLpZT4gIHBvdXIgZW5yZWdpc3RyZXIgbGVzCi0JCQkJCQkgICAgY2hhbmdlbWVudHMuCisgIDMuIFBvdXIgcXVpdHRlciBWaW0gdGFwZXogOiAgPMljaGFwPiA6cSEgPEVudHLpZT4gIHBvdXIgcGVyZHJlIHRvdXMgbGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZW1lbnRzLgorICAgICAgICAgICAgICAgICAgIE9VIHRhcGV6IDogIDzJY2hhcD4gOndxIDxFbnRy6WU+ICBwb3VyIGVucmVnaXN0cmVyIGxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VtZW50cy4KIAotICA0LiBQb3VyIGVmZmFjZXIgdW4gY2FyYWN06HJlIHNvdXMgbGUgY3Vyc2V1ciBlbiBtb2RlIE5vcm1hbCB0YXBlejogIHgKKyAgNC4gUG91ciBlZmZhY2VyIHVuIGNhcmFjdOhyZSBzb3VzIGxlIGN1cnNldXIgdGFwZXogOiAgeAogCi0gIDUuIFBvdXIgaW5z6XJlciBkdSB0ZXh0ZSBhdSBuaXZlYXUgZHUgY3Vyc2V1ciBlbiBtb2RlIE5vcm1hbCB0YXBlejoKLQkgaSAgIHRhcGV6IGxlIHRleHRlICAgPMljaGFwPgorICA1LiBQb3VyIGluc+lyZXIgb3UgYWpvdXRlciBkdSB0ZXh0ZSB0YXBleiA6CisgICAgICAgICBpICAgdGFwZXogbGUgdGV4dGUg4CBpbnPpcmVyIGF2YW50IGxlIGN1cnNldXIgICA8yWNoYXA+CisgICAgICAgICBBICAgdGFwZXogbGUgdGV4dGUg4CBham91dGVyIGFwcuhzIGxlIGN1cnNldXIgICA8yWNoYXA+CiAKLU5PVEU6IEFwcHV5ZXIgIDzJY2hhcD4Jdm91cyBwbGFjZSBlbiBtb2RlIE5vcm1hbCBvdSBhbm51bGUgdW5lIGNvbW1hbmRlCi0gICAgICBwYXJ0aWVsbGVtZW50IHRhcOllIGRvbnQgdm91cyBuZSB2b3VkcmlleiBwbHVzLgorTk9URSA6IEFwcHV5ZXIgIDzJY2hhcD4gIHZvdXMgcGxhY2UgZW4gbW9kZSBOb3JtYWwgb3UgYW5udWxlIHVuZSBjb21tYW5kZQorICAgICAgIHBhcnRpZWxsZW1lbnQgdGFw6WUgZG9udCB2b3VzIG5lIHZvdWxleiBwbHVzLgogCi1QYXNzZXogbWFpbnRlbmFudCDgIGxhIExl529uIDIuCitQYXNzZXogbWFpbnRlbmFudCDgIGxhIGxl529uIDIuCisKIAogfn5+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+Ci0JCQkgICBMZedvbiAyLjEgOiBFRkZBQ0VNRU5UUworICAgICAgICAgICAgICAgICAgICAgICBMZedvbiAyLjEgOiBDT01NQU5ERVMgRCdFRkZBQ0VNRU5UCiAKIAotCSAgICAqKiBUYXBleiAgZHcgIHBvdXIgZWZmYWNlciBqdXNxdSfgIGxhIGZpbiBkJ3VuIG1vdC4gKioKKyAgICAgICAgICAgICAgICAgICAgICoqIFRhcGV6ICBkdyAgcG91ciBlZmZhY2VyIHVuIG1vdC4gKioKIAogICAxLiBBcHB1eWV6ICA8yWNoYXA+ICBwb3VyIOp0cmUgc/tyIGQn6nRyZSBlbiBtb2RlIE5vcm1hbC4KIApAQCAtMTQ3LDkxICsyMTAsMTM5IEBACiAKICAgMy4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGxlIGTpYnV0IGQndW4gbW90IHF1aSBhIGJlc29pbiBkJ+p0cmUgZWZmYWPpLgogCi0gIDQuIFRhcGV6ICBkdwlwb3VyIGZhaXJlIGRpc3BhcmHudHJlIGNlIG1vdC4KKyAgNC4gVGFwZXogIGR3ICBwb3VyIGZhaXJlIGRpc3BhcmHudHJlIGNlIG1vdC4KIAotTk9URTogTGVzIGxldHRyZXMgIGR3ICBhcHBhcmHudHJvbnQgc3VyIGxhIGRlcm5p6HJlIGxpZ25lIGRlIGwn6WNyYW4gbG9ycyBkZQotICAgICAgdm90cmUgZnJhcHBlLiBTaSB2b3VzIGF2ZXogbWFsIHRhcOkgcXVlbHF1ZSBjaG9zZSwgYXBwdXlleiA8yWNoYXA+IGV0Ci0gICAgICByZWNvbW1lbmNlei4KK05PVEUgOiBMYSBsZXR0cmUgIGQgIGFwcGFyYe50cmEgc3VyIGxhIGRlcm5p6HJlIGxpZ25lIGRlIGwn6WNyYW4gbG9ycyBkZQorICAgICAgIHZvdHJlIGZyYXBwZS4gVmltIGF0dGVuZCBxdWUgdm91cyB0YXBpZXogIHcgLiBTaSB2b3VzIHZveWV6IHVuIGF1dHJlCisgICAgICAgY2FyYWN06HJlIHF1ZSAgZCAgdm91cyBhdmV6IHRhcOkgYXV0cmUgY2hvc2UgOyBhcHB1eWV6IDzJY2hhcD4gZXQKKyAgICAgICByZWNvbW1lbmNlei4KIAogLS0tPiBJbCB5IGEgcXVlbHF1ZXMgZHL0bGUgbW90cyBxdWkgbidvbnQgcmllbiDgIGZhaXJlIHBhcGllciBzdXIgY2V0dGUgbGlnbmUuCiAKICAgNS4gUulw6XRleiBsZXMg6XRhcGVzIDMgZXQgNCBqdXNxdSfgIGNlIHF1ZSBsYSBwaHJhc2Ugc29pdCBjb3JyZWN0ZSBldCBhbGxlegogICAgICDgIGxhIExl529uIDIuMi4KIAorCiB+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+fn4KLQkJCUxl529uIDIuMiA6IFBMVVMgRCdFRkZBQ0VNRU5UUworICAgICAgICAgICAgICAgICAgTGXnb24gMi4yIDogUExVUyBERSBDT01NQU5ERVMgRCdFRkZBQ0VNRU5UUwogCiAKLQkgICoqIFRhcGV6ICBkJAlwb3VyIGVmZmFjZXIganVzcXUn4CBsYSBmaW4gZGUgbGEgbGlnbmUuICoqCisgICAgICAgICAgKiogVGFwZXogIGQkICBwb3VyIGVmZmFjZXIganVzcXUn4CBsYSBmaW4gZGUgbGEgbGlnbmUuICoqCiAKICAgMS4gQXBwdXlleiAgPMljaGFwPiAgcG91ciDqdHJlIHP7ciBkJ+p0cmUgZW4gbW9kZSBOb3JtYWwuCiAKICAgMi4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgbWFycXXpZSAtLS0+IGNpLWRlc3NvdXMuCiAKLSAgMy4gROlwbGFjZXogbGUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBjb3JyZWN0ZSBkZSBsYSBsaWduZQotICAgICAoQVBSyFMgbGUgcHJlbWllciAuICkuCisgIDMuIETpcGxhY2V6IGxlIGN1cnNldXIganVzcXUn4CBsYSBmaW4gZGUgbGEgbGlnbmUgY29ycmVjdGUgKEFQUshTIGxlCisgICAgIHByZW1pZXIgLiApLgogCi0gIDQuIFRhcGV6ICBkJAlwb3VyIGVmZmFjZXIganVzcXUn4CBsYSBmaW4gZGUgbGEgbGlnbmUuCisgIDQuIFRhcGV6ICBkJCAgcG91ciBlZmZhY2VyIGp1c3F1J+AgbGEgZmluIGRlIGxhIGxpZ25lLgogCiAtLS0+IFF1ZWxxdSd1biBhIHRhcOkgbGEgZmluIGRlIGNldHRlIGxpZ25lIGRldXggZm9pcy4gY2V0dGUgbGlnbmUgZGV1eCBmb2lzLgogCiAgIDUuIEFsbGV6IOAgbGEgTGXnb24gMi4zIHBvdXIgY29tcHJlbmRyZSBjZSBxdWkgc2UgcGFzc2UuCiAKIAorfn5+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+CisgICAgICAgICAgICAgTGXnb24gMi4zIDogwCBQUk9QT1MgREVTIE9QyVJBVEVVUlMgRVQgREVTIE1PVVZFTUVOVFMKIAogCisgIFBsdXNpZXVycyBjb21tYW5kZXMgcXVpIGNoYW5nZW50IGxlIHRleHRlIHNvbnQgY29uc3RpdHXpZXMgZCd1biBvcOlyYXRldXIKKyAgZXQgZCd1biBtb3V2ZW1lbnQuIExlIGZvcm1hdCBwb3VyIHVuZSBjb21tYW5kZSBkJ2VmZmFjZW1lbnQgYXZlYyBsJ29w6XJhdGV1cgorICBkICBkJ2VmZmFjZW1lbnQgZXN0IGxlIHN1aXZhbnQgOgorCisgICAgICAgIGQgICBtb3V2ZW1lbnQKKworICBP+SA6CisgICAgZCAgICAgICAgIC0gZXN0IGwnb3DpcmF0ZXVyIGQnZWZmYWNlbWVudAorICAgIG1vdXZlbWVudCAtIGVzdCBsZSBtb3V2ZW1lbnQgc3VyIGxlcXVlbCBhZ2l0IGwnb3DpcmF0ZXVyIChsaXN06XMKKyAgICAgICAgICAgICAgICBjaS1kZXNzb3VzKQorCisgIFVuZSBjb3VydGUgbGlzdGUgZGUgbW91dmVtZW50cyA6CisgICAgdyAtIGp1c3F1J2F1IGTpYnV0IGR1IHByb2NoYWluIG1vdCwgZW4gRVhDTFVBTlQgc29uIHByZW1pZXIgY2FyYWN06HJlLgorICAgIGUgLSBqdXNxdSfgIGxhIGZpbiBkdSBtb3QgY291cmFudCwgZW4gRVhDTFVBTlQgc29uIGRlbmllciBjYXJhY3TocmUuCisgICAgJCAtIGp1c3F1J+AgbGEgZmluIGRlIGxhIGxpZ25lLCBlbiBJTkNMVUFOVCBzb24gZGVybmllciBjYXJhY3TocmUuCisKKyAgQWluc2ksIHRhcGVyICBkZSAgdmEgZWZmYWNlciBkZXB1aXMgbGUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkdSBtb3QuCisKK05PVEUgOiBMZSBzZXVsIGFwcHVpIGQndW4gbW91dmVtZW50IGVuIG1vZGUgTm9ybWFsLCBzYW5zIGNvbW1hbmRlLCBk6XBsYWNlIGxlCisgICAgICAgY3Vyc2V1ciBjb21tZSBpbmRpcXXpLgorCiAKIH5+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+fgotCQkgICBMZedvbiAyLjMgOiBERVMgQ09NTUFOREVTIEVUIERFUyBPQkpFVFMKKyAgICAgICAgICAgIExl529uIDIuNCA6IFVUSUxJU0VSIFVOIFFVQU5USUZJQ0FURVVSIEFWRUMgVU4gTU9VVkVNRU5UCiAKIAotICBMZSBmb3JtYXQgZGUgbGEgY29tbWFuZGUgZCdlZmZhY2VtZW50ICBkICBlc3QgbGUgc3VpdmFudDoKKyAgICAgICAqKiBUYXBlciB1biBub21icmUgYXZhbnQgdW4gbW91dmVtZW50IGxlIHLpcOh0ZSBhdXRhbnQgZGUgZm9pcy4gKioKIAotCSBbbm9tYnJlXSAgZCAgb2JqZXQJICAgT1UJICAgICBkCVtub21icmVdICBvYmpldAotICBv+ToKLSAgICBub21icmUgLSBlc3QgY29tYmllbiBkZSBmb2lzIGV46WN1dGVyIGxhIGNvbW1hbmRlIChvcHRpb25uZWwsIGTpZmF1dDogMSkuCi0gICAgZCAtIGVzdCBsYSBjb21tYW5kZSBkJ2VmZmFjZW1lbnQuCi0gICAgb2JqZXQgLSBlc3QgY2Ugc3VyIHF1b2kgbGEgY29tbWFuZGUgdmEgb3DpcmVyIChsaXN0ZSBjaS1kZXNzb3VzKS4KKyAgMS4gROlwbGFjZXogbGUgY3Vyc2V1ciBhdSBk6WJ1dCBkZSBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KIAotICBVbmUgY291cnRlIGxpc3RlIGQnb2JqZXRzOgotICAgIHcgLSBkdSBjdXJzZXVyIGp1c3F1J+AgbGEgZmluIGR1IG1vdCwgeSBjb21wcmlzIGwnZXNwYWNlIHF1aSBzdWl0LgotICAgIGUgLSBkdSBjdXJzZXVyIGp1c3F1J+AgbGEgZmluIGR1IG1vdCwgU0FOUyBsJ2VzcGFjZSBxdWkgc3VpdC4KLSAgICAkIC0gZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkZSBsYSBsaWduZS4KKyAgMi4gVGFwZXogIDJ3ICBwb3VyIGTpcGxhY2VyIGxlIGN1cnNldXIgZGUgMiBtb3RzIHZlcnMgbCdhdmFudC4KIAotTk9URTogUG91ciBsZXMgYXZlbnR1cmV1eCwgbGUgc2V1bCBhcHB1aSBkJyBvYmpldCAgZW4gbW9kZSBOb3JtYWwsIHNhbnMKLSAgICAgIGNvbW1hbmRlLCBk6XBsYWNlIGxlIGN1cnNldXIgY29tbWUgaW5kaXF16SBkYW5zIGxhIGxpc3RlIGRlcyBvYmpldHMuCisgIDMuIFRhcGV6ICAzZSAgcG91ciBk6XBsYWNlciBsZSBjdXJzZXVyIOAgbGEgZmluIGR1IHRyb2lzaehtZSBtb3QgdmVycworICAgICBsJ2F2YW50LgogCisgIDQuIFRhcGV6ICAwICAoeulybykgcG91ciBk6XBsYWNlciBhdSBk6WJ1dCBkZSBsYSBsaWduZS4KIAorICA1LiBS6XDpdGV6IGxlcyDpdGFwZXMgMiBldCAzIGF2ZWMgZGVzIHF1YW50aWZpY2F0ZXVycyBkaWZm6XJlbnRzLgorCistLS0+IENlY2kgZXN0IGp1c3RlIHVuZSBsaWduZSBhdmVjIGRlcyBtb3RzIG/5IHZvdXMgcG91dmV6IHZvdXMgZOlwbGFjZXIuCisKKyAgNi4gROlwbGFjZXotdm91cyDgIGxhIExl529uIDIuNS4KIAogCiB+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+fn4KLQkJIExl529uIDIuNCA6IFVORSBFWENFUFRJT04gwCAnQ09NTUFOREUtT0JKRVQnCisgICAgICAgICAgICBMZedvbiAyLjUgOiBVVElMSVNFUiBVTiBRVUFOVElGSUNBVEVVUiBQT1VSIEVGRkFDRVIgUExVUwogCi0JICAgICAgKiogVGFwZXoJZGQgIHBvdXIgZWZmYWNlciB1bmUgbGlnbmUgY29tcGzodGUuICoqCisKKyAgICAgICAqKiBUYXBlciB1biBub21icmUgYXZlYyB1biBvcOlyYXRldXIgbGUgculw6HRlIGF1dGFudCBkZSBmb2lzLiAqKgorCisgIE91dHJlIGxhIGNvbWJpbmFpc29uIGRlIGwnb3DpcmF0ZXVyIGQnZWZmYWNlbWVudCBhdmVjIHVuIGTpcGxhY2VtZW50CisgIG1lbnRpb25u6SBjaS1kZXNzdXMsIHZvdXMgcG91dmV6IGluc+lyZXIgdW4gbm9tYnJlIChxdWFudGlmaWNhdGV1cikKKyAgcG91ciBlZmZhY2V6IGVuY29yZSBwbHVzIDoKKyAgICAgICBkICAgbm9tYnJlICAgZOlwbGFjZW1lbnQKKworICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHZlcnMgbGUgcHJlbWllciBtb3QgZW4gTUFKVVNDVUxFUyBkYW5zIGxhIGxpZ25lCisgICAgIG1hcnF16WUgLS0tPi4KKworICAyLiBUYXBleiAgZDJ3ICBwb3VyIGVmZmFjZXIgbGVzIGRldXggbW90cyBlbiBNQUpVU0NVTEVTLgorCisgIDMuIFLpcOl0ZXogbGVzIOl0YXBlcyAxIGV0IDIgYXZlYyBkZXMgcXVhbnRpZmljYXRldXJzIGRpZmbpcmVudHMgcG91cgorICAgICBlZmZhY2VyIGxlcyBtb3RzIHN1aXZhbnRzIGVuIE1BSlVTQ1VMRVMg4CBsJ2FpZGUgZCd1bmUgY29tbWFuZGUuCisKKy0tLT4gQ2V0dGUgQUJDIERFIGxpZ25lIEZHSEkgSksgTE1OIE9QIGRlIG1vdHMgZXN0IFEgUlMgVFVWIG5ldHRveellLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZedvbiAyLjYgOiBPUMlSRVogU1VSIERFUyBMSUdORVMKKworCisgICAgICAgICAgICAgICoqIFRhcGV6ICAgZGQgICBwb3VyIGVmZmFjZXIgdW5lIGxpZ25lIGNvbXBs6HRlLiAqKgogCiAgIFZ1IGxlIG5vbWJyZSBkZSBmb2lzIG/5IGwnb24gZWZmYWNlIGRlcyBsaWduZXMgY29tcGzodGVzLCBsZXMgY29uY2VwdGV1cnMKLSAgZGUgVmkgb250IGTpY2lk6SBxdSdpbCBzZXJhaXQgcGx1cyBmYWNpbGUgZGUgdGFwZXIgc2ltcGxlbWVudCBkZXV4IGQg4CBsYQotICBzdWl0ZSBwb3VyIGVmZmFjZXIgdW5lIGxpZ25lLgorICBkZSBWaSBvbnQgZOljaWTpIHF1J2lsIHNlcmFpdCBwbHVzIGZhY2lsZSBkZSB0YXBlciBzaW1wbGVtZW50IGRldXggIGQKKyAgcG91ciBlZmZhY2VyIHVuZSBsaWduZS4KIAogICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgc2Vjb25kZSBsaWduZSBkZSBsYSBwaHJhc2UgY2ktZGVzc291cy4KLSAgMi4gVGFwZXogIGRkCXBvdXIgZWZmYWNlciBsYSBsaWduZS4KKyAgMi4gVGFwZXogIGRkICBwb3VyIGVmZmFjZXIgbGEgbGlnbmUuCiAgIDMuIE1haW50ZW5hbnQgYWxsZXog4CBsYSBxdWF0cmnobWUgbGlnbmUuCi0gIDQuIFRhcGV6ICAyZGQgIChyYXBwZWxlei12b3VzLCBub21icmUtY29tbWFuZGUtb2JqZXQpIHBvdXIgZWZmYWNlciBsZXMKLSAgICAgZGV1eCBsaWduZXMuCisgIDQuIFRhcGV6ICAgMmRkICAgcG91ciBlZmZhY2VyIGRldXggbGlnbmVzLgogCi0gICAgICAxKSAgTGVzIHJvc2VzIHNvbnQgcm91Z2VzLAotICAgICAgMikgIExhIGJvdWUgYydlc3QgZHL0bGUsCi0gICAgICAzKSAgTGVzIHZpb2xldHRlcyBzb250IGJsZXVlcywKLSAgICAgIDQpICBKJ2FpIHVuZSB2b2l0dXJlLAotICAgICAgNSkgIExlcyBob3Jsb2dlcyBkb25uZW50IGwnaGV1cmUsCi0gICAgICA2KSAgTGUgc3VjcmUgZXN0IGRvdXgKLSAgICAgIDcpICBUb3V0IGNvbW1lIHZvdXMuCistLS0+ICAxKSAgTGVzIHJvc2VzIHNvbnQgcm91Z2VzLAorLS0tPiAgMikgIExhIGJvdWUgYydlc3QgZHL0bGUsCistLS0+ICAzKSAgTGVzIHZpb2xldHRlcyBzb250IGJsZXVlcywKKy0tLT4gIDQpICBKJ2FpIHVuZSB2b2l0dXJlLAorLS0tPiAgNSkgIExlcyBob3Jsb2dlcyBkb25uZW50IGwnaGV1cmUsCistLS0+ICA2KSAgTGUgc3VjcmUgZXN0IGRvdXgKKy0tLT4gIDcpICBUb3V0IGNvbW1lIHZvdXMuCisKIAogfn5+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+Ci0JCQkgICAgTGXnb24gMi41IDogTCdBTk5VTEFUSU9OCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGXnb24gMi43IDogTCdBTk5VTEFUSU9OCiAKLQkgICAgKiogVGFwZXogIHUgIHBvdXIgYW5udWxlciBsZXMgZGVybmnocmVzIGNvbW1hbmRlcy4gKioKLQkgICAgICAgKiogVGFwZXogIFUgIHBvdXIgculjdXDpcmVyIHRvdXRlIHVuZSBsaWduZS4gKioKKworICAgICAgICAgICAgKiogVGFwZXogIHUgIHBvdXIgYW5udWxlciBsZXMgZGVybmnocmVzIGNvbW1hbmRlcy4gKioKKyAgICAgICAgICAgICAgICoqIFRhcGV6ICBVICBwb3VyIHLpY3Vw6XJlciB0b3V0ZSB1bmUgbGlnbmUuICoqCiAKICAgMS4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgbWFycXXpZSAtLS0+IGNpLWRlc3NvdXMgZXQgcGxhY2V6LWxlIHN1cgogICAgICBsYSBwcmVtaehyZSBlcnJldXIuCkBAIC0yMzksMTAgKzM1MCwxMCBAQAogICAzLiBQdWlzIHRhcGV6ICB1ICBwb3VyIGFubnVsZXIgbGEgZGVybmnocmUgY29tbWFuZGUgZXjpY3V06WUuCiAgIDQuIENldHRlIGZvaXMsIGNvcnJpZ2V6IHRvdXRlcyBsZXMgZXJyZXVycyBkZSBsYSBsaWduZSBhdmVjIGxhIGNvbW1hbmRlICB4IC4KICAgNS4gUHVpcyB0YXBleiB1biAgVSAgbWFqdXNjdWxlIHBvdXIgcmVtZXR0cmUgbGEgbGlnbmUgZGFucyBzb24g6XRhdCBpbml0aWFsLgotICA2LiBQdWlzIHRhcGV6ICB1ICBkZXV4LXRyb2lzIGZvaXMgcG91ciBhbm51bGVyIGxlICBVCWV0IGxlcyBjb21tYW5kZXMKKyAgNi4gUHVpcyB0YXBleiAgdSAgZGV1eC10cm9pcyBmb2lzIHBvdXIgYW5udWxlciBsZSAgVSAgZXQgbGVzIGNvbW1hbmRlcwogICAgICBwculj6WRlbnRlcy4KLSAgNy4gTWFpbnRlbmFudCB0YXBleiAgQ3RybC1SICAobWFpbnRlbmV6IGxhIHRvdWNoZSBDdHJsIGVuZm9uY+llIHBlbmRhbnQgcXVlCi0gICAgIHZvdXMgYXBwdXlleiBzdXIgUikgZGV1eC10cm9pcyBmb2lzIHBvdXIgcmVmYWlyZSBsZXMgY29tbWFuZGVzIChhbm51bGVyCisgIDcuIE1haW50ZW5hbnQgdGFwZXogIENUUkwtUiAgKG1haW50ZW5leiBsYSB0b3VjaGUgQ1RSTCBlbmZvbmPpZSBwZW5kYW50IHF1ZQorICAgICB2b3VzIGFwcHV5ZXogUikgZGV1eC10cm9pcyBmb2lzIHBvdXIgcmVmYWlyZSBsZXMgY29tbWFuZGVzIChhbm51bGVyCiAgICAgIGxlcyBhbm51bGF0aW9ucykuCiAKIC0tLT4gQ29vcnJpZ2V6IGxlcyBlcnJldXJzIHN1dXIgY2NldHRlIGxpZ25lIGV0IHJlZW1ldHRlei1sZXMgYXZ2ZWMgJ2FubnVsZXInLgpAQCAtMjUwLDU3ICszNjEsNjQgQEAKICAgOC4gQ2Ugc29udCBkZXMgY29tbWFuZGVzIHRy6HMgdXRpbGVzLiBNYWludGVuYW50LCBhbGxleiBhdSBy6XN1bekgZGUgbGEKICAgICAgTGXnb24gMi4KIAotfn5+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+Ci0JCQkgICAgIFLJU1VNySBERSBMQSBMRcdPTiAyCi0KLQotICAxLiBQb3VyIGVmZmFjZXIgZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkJ3VuIG1vdCB0YXBlejoJZHcKLQotICAyLiBQb3VyIGVmZmFjZXIgZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkJ3VuZSBsaWduZSB0YXBlejoJZCQKLQotICAzLiBQb3VyIGVmZmFjZXIgdG91dGUgdW5lIGxpZ25lIHRhcGV6OiAgZGQKLQotICA0LiBMZSBmb3JtYXQgZCd1bmUgY29tbWFuZGUgZW4gbW9kZSBOb3JtYWwgZXN0OgotCi0gICAgICAgW25vbWJyZV0gIGNvbW1hbmRlICBvYmpldCAgICAgT1UgICAgIGNvbW1hbmRlICBbbm9tYnJlXQlvYmpldAotICAgICBv+ToKLSAgICAgICBub21icmUgLSBlc3QgY29tYmllbiBkZSBmb2lzIHLpcOl0ZXIgbGEgY29tbWFuZGUKLSAgICAgICBjb21tYW5kZSAtIGVzdCBjZSBxdSdpbCBmYXV0IGZhaXJlLCBwYXIgZXhlbXBsZQlkICBwb3VyIGVmZmFjZXIKLSAgICAgICBvYmpldCAtIGVzdCBjZSBzdXIgcXVvaSBsYSBjb21tYW5kZSBkZXZyYWl0IGFnaXIsIHBhciBleGVtcGxlIHcgKG1vdCksCi0JICAgICAgICQgKGp1c3F1J+AgbGEgZmluIGRlIGxhIGxpZ25lKSwgZXRjLgotCi0gIDUuIFBvdXIgYW5udWxlciBkZXMgYWN0aW9ucyBwculj6WRlbnRlcywgdGFwZXo6CSAgICAgdQkodSBtaW51c2N1bGUpCi0gICAgIFBvdXIgYW5udWxlciB0b3VzIGxlcyBjaGFuZ2VtZW50cyBzdXIgdW5lIGxpZ25lIHRhcGV6OiAgVQkoVSBtYWp1c2N1bGUpCi0gICAgIFBvdXIgYW5udWxlciBsJ2FubnVsYXRpb24gdGFwZXo6CQkJICAgICBDdHJsLVIKIAogfn5+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+Ci0JCQkgICAgIExl529uIDMuMSA6IExFIENPTExBR0UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUslTVU3JIERFIExBIExFx09OIDIKIAogCi0gICAqKiBUYXBleiAgcAlwb3VyIHBsYWNlciBhcHLocyBsZSBjdXJzZXVyIGNlIHF1aSB2aWVudCBkJ+p0cmUgZWZmYWPpLiAqKgorICAxLiBQb3VyIGVmZmFjZXIgZHUgY3Vyc2V1ciBqdXNxdSdhdSBtb3Qgc3VpdmFudCB0YXBleiA6ICAgICAgICAgZHcKIAotICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnocmUgbGlnbmUgZHUgInBv6G1lIiBjaS1kZXNzb3VzLgorICAyLiBQb3VyIGVmZmFjZXIgZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkJ3VuZSBsaWduZSB0YXBleiA6ICAgZCQKIAotICAyLiBUYXBleiAgZGQJcG91ciBlZmZhY2VyIGxhIGxpZ25lIGV0IGxhIHBsYWNlciBkYW5zIGxlIHRhbXBvbiBkZSBWaW0uCisgIDMuIFBvdXIgZWZmYWNlciB0b3V0ZSB1bmUgbGlnbmUgdGFwZXogOiAgICAgICAgICAgICAgICAgICAgICAgICBkZAogCi0gIDMuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIHF1aSBQUslDyERFIGwnZW5kcm9pdCBv+SB2b3VzIHZvdWxlegotICAgICByZW1ldHRyZSBsYSBsaWduZSBlZmZhY+llLgorICA0LiBQb3VyIHLpcOl0ZXIgdW4gZOlwbGFjZW1lbnQgYWpvdXRleiB1biBxdWFudGlmaWNhdGV1ciA6ICAgICAgMncKIAotICA0LiBFbiBtb2RlIE5vcm1hbCwgdGFwZXogIHAgIHBvdXIgcmVtZXR0cmUgbGEgbGlnbmUuCisgIDUuIExlIGZvcm1hdCBkJ3VuZSBjb21tYW5kZSBkZSBjaGFuZ2VtZW50IGVzdCA6CisKKyAgICAgICBvcOlyYXRldXIgICBbbm9tYnJlXSAgIGTpcGxhY2VtZW50CisKKyAgICAgT/kgOgorICAgICAgIG9w6XJhdGV1ciAgIC0gZXN0IGNlIHF1J2lsIGZhdXQgZmFpcmUsIGNvbW1lICBkICBwb3VyIGVmZmFjZXIuCisgICAgICAgW25vbWJyZV0gICAgLSB1biBxdWFudGlmaWNhdGV1ciBvcHRpb25uZWwgcG91ciBy6XDpdGVyIGxlIGTpcGxhY2VtZW50LgorICAgICAgIGTpcGxhY2VtZW50IC0gZOlwbGFjZSBsZSBsb25nIGR1IHRleHRlIOAgb3DpcmVyLCB0ZWwgcXVlICB3ICAobW90KSwKKyAgICAgICAgICAgICAgICAgICAgICQgKGp1c3F1J+AgbGEgZmluIGRlIGxpZ25lKSwgZXRjLgorCisgIDYuIFBvdXIgc2UgZOlwbGFjZXIgYXUgZOlidXQgZGUgbGlnbmUsIHV0aWxpc2V6IHVuIHrpcm8gOiAgMAorCisgIDUuIFBvdXIgYW5udWxlciBkZXMgYWN0aW9ucyBwculj6WRlbnRlcywgdGFwZXogOiAgICAgICAgICAgIHUgKHUgbWludXNjdWxlKQorICAgICBQb3VyIGFubnVsZXIgdG91cyBsZXMgY2hhbmdlbWVudHMgc3VyIHVuZSBsaWduZSB0YXBleiA6ICBVIChVIG1hanVzY3VsZSkKKyAgICAgUG91ciBhbm51bGVyIGwnYW5udWxhdGlvbiB0YXBleiA6ICAgICAgICAgICAgICAgICAgICAgICAgQ1RSTC1SCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExl529uIDMuMSA6IExFIENPTExBR0UKKworCisgICAqKiBUYXBleiAgcCAgcG91ciBwbGFjZXIgYXBy6HMgbGUgY3Vyc2V1ciBjZSBxdWkgdmllbnQgZCfqdHJlIGVmZmFj6S4gKioKKworICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnocmUgbGlnbmUgY2ktZGVzc291cyBtYXJxdellIC0tLT4uCisKKyAgMi4gVGFwZXogIGRkICBwb3VyIGVmZmFjZXIgbGEgbGlnbmUgZXQgbGEgcGxhY2VyIGRhbnMgdW4gcmVnaXN0cmUgZGUgVmltLgorCisgIDMuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIGMpIGF1IGRlc3N1cyBv+SB2b3VzIHZvdWxleiByZW1ldHRyZSBsYQorICAgICBsaWduZSBlZmZhY+llLgorCisgIDQuIEVuIG1vZGUgTm9ybWFsLCB0YXBleiAgIHAgICBwb3VyIHJlbWV0dHJlIGxhIGxpZ25lIGVuIGRlc3NvdXMgZHUgY3Vyc2V1ci4KIAogICA1LiBS6XDpdGV6IGxlcyDpdGFwZXMgMiDgIDQgcG91ciBtZXR0cmUgdG91dGVzIGxlcyBsaWduZXMgZGFucyBsZSBib24gb3JkcmUuCiAKLSAgICAgZCkgRXQgdm91cywgcXUnYXBwcmVuZXotdm91cyA/Ci0gICAgIGIpIExlcyB2aW9sZXR0ZXMgc29udCBibGV1ZXMsCi0gICAgIGMpIEwnaW50ZWxsaWdlbmNlIHMnYXBwcmVuZCwKLSAgICAgYSkgTGVzIHJvc2VzIHNvbnQgcm91Z2VzLAorLS0tPiBkKSBFdCB2b3VzLCBxdSdhcHByZW5lei12b3VzID8KKy0tLT4gYikgTGVzIHZpb2xldHRlcyBzb250IGJsZXVlcywKKy0tLT4gYykgTCdpbnRlbGxpZ2VuY2UgcydhcHByZW5kLAorLS0tPiBhKSBMZXMgcm9zZXMgc29udCByb3VnZXMsCiAKIAogfn5+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+Ci0JCQkgTGXnb24gMy4yIDogTEUgUkVNUExBQ0VNRU5UCisgICAgICAgICAgICAgICAgICAgIExl529uIDMuMiA6IExBIENPTU1BTkRFIERFIFJFTVBMQUNFTUVOVAogCiAKLSAqKiBUYXBleiAgciAgZXQgdW4gY2FyYWN06HJlIHBvdXIgcmVtcGxhY2VyIGxlIGNhcmFjdOhyZSBzb3VzIGxlIGN1cnNldXIuICoqCisgICAgICoqIFRhcGV6ICByeCAgcG91ciByZW1wbGFjZXIgdW4gY2FyYWN06HJlIHNvdXMgbGUgY3Vyc2V1ciBwYXIgIHggLiAqKgogCiAgIDEuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgogCkBAIC0zMDgsMzEgKzQyNiwzMiBAQAogCiAgIDMuIFRhcGV6ICByICBzdWl2aSBkdSBjYXJhY3TocmUgcXVpIGRvaXQgY29ycmlnZXIgbCdlcnJldXIuCiAKLSAgNC4gUulw6XRleiBsZXMg6XRhcGVzIDIgZXQgMyBqdXNxdSfgIGNlIHF1ZSBsYSBwcmVtaehyZSBsaWduZSBzb2l0IGNvcnJlY3RlLgorICA0LiBS6XDpdGV6IGxlcyDpdGFwZXMgMiBldCAzIGp1c3F1J+AgY2UgcXVlIGxhIHByZW1p6HJlIGxpZ25lIHNvaXQg6WdhbGUKKyAgICAg4CBsYSBzZWNvbmRlLgogCiAtLS0+ICBRdWFuZCBjZXR0ZSBsaWduZSBhIOl06SBzYXV2aWUsIHF1ZWxxdSd1biBhIGxhaXQgZGVzIGZhdW5lcyBkZSBmcmFwcGUgIQogLS0tPiAgUXVhbmQgY2V0dGUgbGlnbmUgYSDpdOkgc2Fpc2llLCBxdWVscXUndW4gYSBmYWl0IGRlcyBmYXV0ZXMgZGUgZnJhcHBlICEKIAogICA1LiBNYWludGVuYW50LCBhbGxleiDgIGxhIExl529uIDMuMy4KIAotTk9URTogTidvdWJsaWV6IHBhcyBxdWUgdm91cyBkZXZyaWV6IGFwcHJlbmRyZSBwYXIgbGEgcHJhdGlxdWUsIHBhcyBwYXIKLSAgICAgIG3pbW9yaXNhdGlvbi4KK05PVEUgOiBOJ291YmxpZXogcGFzIHF1ZSB2b3VzIGRldnJpZXogYXBwcmVuZHJlIHBhciBsYSBwcmF0aXF1ZSwgcGFzIHBhcgorICAgICAgIG3pbW9yaXNhdGlvbi4KIAogCiB+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+fn4KLQkJCSAgTGXnb24gMy4zIDogTEUgQ0hBTkdFTUVOVAorICAgICAgICAgICAgICAgICAgICAgTGXnb24gMy4zIDogTCdPUMlSQVRFVVIgREUgQ0hBTkdFTUVOVAogCiAKLQkgICAgKiogUG91ciBjaGFuZ2VyIHRvdXQgb3UgcGFydGllIGQndW4gbW90LCB0YXBleiAgY3cgLioqCisgICAgICAgICAgICAqKiBQb3VyIGNoYW5nZXIganVzcXUn4CBsYSBmaW4gZCd1biBtb3QsIHRhcGV6ICBjZSAuKioKIAogICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtaehyZSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KIAotICAyLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGUgdSBkZSBsdWhrby4KKyAgMi4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGxlICB1ICBkZSBsdWhrby4KIAotICAzLiBUYXBleiAgY3cJZXQgY29ycmlnZXogbGUgbW90IChkYW5zIG5vdHJlIGNhcywgdGFwZXogICdpZ25lJy4pCisgIDMuIFRhcGV6ICBjZSAgZXQgY29ycmlnZXogbGUgbW90IChkYW5zIG5vdHJlIGNhcywgdGFwZXogICdpZ25lJy4pCiAKLSAgNC4gQXBwdXlleiA8yWNoYXA+IGV0IHBsYWNlei12b3VzIHN1ciBsJ2VycmV1ciBzdWl2YW50ZSAobGUgcHJlbWllcgotICAgICBjYXJhY3TocmUgcXVpIGRvaXQg6nRyZSBjaGFuZ+kpLgorICA0LiBBcHB1eWV6IDzJY2hhcD4gZXQgcGxhY2V6LXZvdXMgc3VyIGxlIHByb2NoYWluIGNhcmFjdOhyZSBxdWkgZG9pdAorICAgICDqdHJlIGNoYW5n6SkuCiAKICAgNS4gUulw6XRleiBsZXMg6XRhcGVzIDMgZXQgNCBqdXNxdSfgIGNlIHF1ZSBsYSBwcmVtaehyZSBwaHJhc2Ugc29pdAogICAgICBpZGVudGlxdWUg4CBsYSBzZWNvbmRlLgpAQCAtMzQwLDE3MSArNDU5LDE4OSBAQAogLS0tPiBDZXR0ZSBsdWhrbyBjb250aWVudCBxdWVscXVlcyBteXFhIHF1aSBvbnQgcmljbmUgZCfqdHJlIGNoYW50dWZpcC4KIC0tLT4gQ2V0dGUgbGlnbmUgY29udGllbnQgcXVlbHF1ZXMgbW90cyBxdWkgb250IGJlc29pbiBkJ+p0cmUgY2hhbmfpcy4KIAotTm90ZXogcXVlICBjdyAgZWZmYWNlIGxlIG1vdCBldCB2b3VzIHBsYWNlIGVuc3VpdGUgZW4gbW9kZSBJbnNlcnRpb24uCitOb3RleiBxdWUgIGNlICBlZmZhY2UgbGUgbW90IGV0IHZvdXMgcGxhY2UgZW5zdWl0ZSBlbiBtb2RlIEluc2VydGlvbi4KKwogCiB+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+fn4KLQkJICAgIExl529uIDMuNCA6IFBMVVMgREUgQ0hBTkdFTUVOVFMgQVZFQyBjCisgICAgICAgICAgICAgICAgICAgIExl529uIDMuNCA6IFBMVVMgREUgQ0hBTkdFTUVOVFMgQVZFQyBjCiAKIAotICAgICoqIExlIGNoYW5nZW1lbnQgZm9uY3Rpb25uZSBhdmVjIGxlcyBt6m1lcyBvYmpldHMgcXVlIGwnZWZmYWNlbWVudC4gKioKKyAgICAqKiBMJ29w6XJhdGV1ciBkZSBjaGFuZ2VtZW50IGZvbmN0aW9ubmUgYXZlYyBsZXMgbeptZXMgZOlwbGFjZW1lbnRzCisgICAgICAgcXVlIGwnZWZmYWNlbWVudC4gKioKIAotICAxLiBMZSBjaGFuZ2VtZW50IGZvbmN0aW9ubmUgZGUgbGEgbeptZSBtYW5p6HJlIHF1ZSBsJ2VmZmFjZW1lbnQuCi0gICAgIExlIGZvcm1hdCBlc3Q6CisgIDEuIEwnb3DpcmF0ZXVyIGRlIGNoYW5nZW1lbnQgZm9uY3Rpb25uZSBkZSBsYSBt6m1lIG1hbmnocmUgcXVlCisgICAgIGwnZWZmYWNlbWVudC4gTGUgZm9ybWF0IGVzdCA6CiAKLQkgW25vbWJyZV0gIGMgIG9iamV0CSAgIE9VCSAgICAgYwlbbm9tYnJlXSAgb2JqZXQKKyAgICAgICAgIGMgICBbbm9tYnJlXSAgIGTpcGxhY2VtZW50CiAKLSAgMi4gTGVzIG9iamV0cyBzb250IOlnYWxlbWVudCBsZXMgbeptZXM6ICB3IChtb3QpLCAkIChmaW4gZGUgbGlnbmUpLCBldGMuCisgIDIuIExlcyBk6XBsYWNlbWVudHMgc29udCBpZGVudGlxdWVzIDogIHcgKG1vdCkgZXQgICQgKGZpbiBkZSBsaWduZSkuCiAKLSAgMy4gROlwbGFjZXotdm91cyDgIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgorICAzLiBE6XBsYWNlei12b3VzIHN1ciBsYSBwcmVtaehyZSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KIAogICA0LiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnocmUgZXJyZXVyLgogCi0gIDUuIFRhcGV6ICBjJAlwb3VyIGNoYW5nZXIgbGEgZmluIGRlIGxhIGxpZ25lLCByZW5kZXotbOAgaWRlbnRpcXVlIOAgbGEKLSAgICAgc2Vjb25kZSBsaWduZSwgcHVpcyB0YXBleiA8yWNoYXA+LgorICA1LiBUYXBleiAgYyQgIGV0IHRhcGV6IGxlIHJlc3RlIGRlIGxhIGxpZ25lIGFmaW4gcXUnZWxsZSBzb2l0IGlkZW50aXF1ZQorICAgICDgIGxhIHNlY29uZGUgbGlnbmUsIHB1aXMgdGFwZXogPMljaGFwPi4KIAogLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDqdHJlIHJlbmR1ZSBpZGVudGlxdWUg4CBsYSBzZWNvbmRlLgotLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDqdHJlIGNvcnJpZ+llIGF2ZWMgbGEgY29tbWFuZGUJYyQgLgorLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDqdHJlIGNvcnJpZ+llIGF2ZWMgbGEgY29tbWFuZGUgIGMkIC4KKworTk9URSA6ICBWb3VzIHBvdXZleiB1dGlsaXNleiBsYSB0b3VjaGUgUmV0b3VyIEFycmnocmUgcG91ciBjb3JyaWdlciBsZXMKKyAgICAgICAgZXJyZXVycyBsb3JzcXVlIHZvdXMgdGFwZXouCisKIAogfn5+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+Ci0JCQkgICAgIFLJU1VNySBERSBMQSBMRcdPTiAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLJU1VNySBERSBMQSBMRcdPTiAzCiAKIAotICAxLiBQb3VyIHJlbWV0dHJlIGR1IHRleHRlIHF1aSB2aWVudCBkJ+p0cmUgZWZmYWPpLCB0YXBleiAgcCAuIENlbGEgUGxhY2UgbGUKKyAgMS4gUG91ciByZW1ldHRyZSBsZSB0ZXh0ZSBxdWkgYSBk6WrgIOl06SBlZmZhY+ksIHRhcGV6ICBwIC4gQ2VsYSBQbGFjZSBsZQogICAgICB0ZXh0ZSBlZmZhY+kgQVBSyFMgbGUgY3Vyc2V1ciAoc2kgdW5lIGxpZ25lIGNvbXBs6HRlIGEg6XTpIGVmZmFj6WUsIGVsbGUKICAgICAgc2VyYSBwbGFj6WUgc291cyBsYSBsaWduZSBkdSBjdXJzZXVyKS4KIAogICAyLiBQb3VyIHJlbXBsYWNlciBsZSBjYXJhY3TocmUgc291cyBsZSBjdXJzZXVyLCB0YXBleiAgciAgc3VpdmkgZHUgY2FyYWN06HJlCiAgICAgIHF1aSByZW1wbGFjZXJhIGwnb3JpZ2luYWwuCiAKLSAgMy4gTGUgY2hhbmdlbWVudCB2b3VzIHBlcm1ldCBkZSBjaGFuZ2VyIGwnb2JqZXQgc3DpY2lmaeksIGR1IGN1cnNldXIganVzcXUn4AotICAgICBsYSBmaW4gZGUgbCdvYmpldC4gUGFyIGV4ZW1wbGUsIHRhcGV6ICBjdwlwb3VyIGNoYW5nZXIgZHUgY3Vyc2V1cgotICAgICBqdXNxdSfgIGxhIGZpbiBkdSBtb3QsICBjJCAgcG91ciBjaGFuZ2VyIGp1c3F1J+AgbGEgZmluIGQndW5lIGxpZ25lLgorICAzLiBMJ29w6XJhdGV1ciBkZSBjaGFuZ2VtZW50IHZvdXMgcGVybWV0IGRlIGNoYW5nZXIgZGVwdWlzIGxhIHBvc2l0aW9uIGR1CisgICAgIGN1cnNldXIganVzcXUnb/kgbGUgZOlwbGFjZW1lbnQgdm91cyBhbehuZS4gUGFyIGV4ZW1wbGUsIHRhcGV6ICBjZQorICAgICBwb3VyIGNoYW5nZXIgZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkdSBtb3QsICBjJCAgcG91ciBjaGFuZ2VyIGp1c3F1J+AKKyAgICAgbGEgZmluIGQndW5lIGxpZ25lLgogCi0gIDQuIExlIGZvcm1hdCBwb3VyIGxlIGNoYW5nZW1lbnQgZXN0OgorICA0LiBMZSBmb3JtYXQgcG91ciBsZSBjaGFuZ2VtZW50IGVzdCA6CiAKLQkgW25vbWJyZV0gIGMgIG9iamV0CSAgIE9VCSAgICAgYwlbbm9tYnJlXSAgb2JqZXQKKyAgICAgICAgIGMgICBbbm9tYnJlXSAgIGTpcGxhY2VtZW50CiAKIFBhc3NleiBtYWludGVuYW50IOAgbGEgbGXnb24gc3VpdmFudGUuCiAKIAotCiB+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+fn4KLQkJICAgTGXnb24gNC4xIDogUE9TSVRJT04gRVQgyVRBVCBEVSBGSUNISUVSCisgICAgICAgICAgICAgICBMZedvbiA0LjEgOiBQT1NJVElPTiBEVSBDVVJTRVVSIEVUIMlUQVQgRFUgRklDSElFUgogCiAKLSAgKiogVGFwZXogQ3RybC1HIHBvdXIgYWZmaWNoZXIgdm90cmUgcG9zaXRpb24gZGFucyBsZSBmaWNoaWVyIGV0IHNvbiDpdGF0LgotICAgICBVdGlsaXNleiBNYWotRyBwb3VyIHZvdXMgcmVuZHJlIOAgdW5lIGxpZ25lIGRvbm7pZSBkdSBmaWNoaWVyLiAqKgorICAqKiBUYXBleiBDVFJMLUcgcG91ciBhZmZpY2hlciB2b3RyZSBwb3NpdGlvbiBkYW5zIGxlIGZpY2hpZXIgZXQgc29uIOl0YXQuCisgICAgIFRhcGV6ICBHICBwb3VyIHZvdXMgcmVuZHJlIOAgdW5lIGxpZ25lIGRvbm7pZSBkdSBmaWNoaWVyLiAqKgogCi0gIE5vdGU6IExpc2V6IHRvdXRlIGNldHRlIGxl529uIGF2YW50IGQnZWZmZWN0dWVyIGwndW5lIGRlcyDpdGFwZXMgIQorTk9URSA6IExpc2V6IHRvdXRlIGNldHRlIGxl529uIGF2YW50IGQnZWZmZWN0dWVyIGwndW5lIGRlcyDpdGFwZXMgISEKIAotICAxLiBNYWludGVuZXogZW5mb25j6WUgbGEgdG91Y2hlIEN0cmwgZXQgYXBwdXlleiBzdXIgIEcgLiAgVW5lIGxpZ25lIGQn6XRhdAotICAgICB2YSBhcHBhcmHudHJlIGVuIGJhcyBkZSBsJ+ljcmFuIGF2ZWMgbGUgbm9tIGR1IGZpY2hpZXIgZXQgbGUgbnVt6XJvIGRlIGxhCi0gICAgIGxpZ25lIG/5IHZvdXMg6nRlcy4gIE5vdGV6IGNlIG51belybywgaWwgc2VydmlyYSBsb3JzIGRlIGwn6XRhcGUgMy4KKyAgMS4gTWFpbnRlbmV6IGVuZm9uY+llIGxhIHRvdWNoZSBDVFJMIGV0IGFwcHV5ZXogc3VyICBnIC4gT24gYXBwZWxsZSBjZWxhCisgICAgIENUUkwtRy4gVW5lIGxpZ25lIGQn6XRhdCB2YSBhcHBhcmHudHJlIGVuIGJhcyBkZSBsJ+ljcmFuIGF2ZWMgbGUgbm9tCisgICAgIGR1IGZpY2hpZXIgZXQgbGUgbnVt6XJvIGRlIGxhIGxpZ25lIG/5IHZvdXMg6nRlcy4gTm90ZXogY2UgbnVt6XJvLCBpbAorICAgICBzZXJ2aXJhIGxvcnMgZGUgbCfpdGFwZSAzLgogCi0gIDIuIFRhcGV6ICBHICBtYWp1c2N1bGUgKE1hai1HKSBwb3VyIHZvdXMgcmVuZHJlIOAgbGEgZmluIGR1IGZpY2hpZXIuCitOT1RFIDogVm91cyBwb3V2ZXogcGV1dC3qdHJlIHZvaXIgbGUgY3Vyc2V1ciBlbiBiYXMg4CBkcm9pdGUgZGUgbCfpY3Jhbi4KKyAgICAgICBDZWNpIGFycml2ZSBxdWFuZCBsJ29wdGlvbiAncnVsZXInIGVzdCBhY3RpdullICh2b2lyICA6aGVscCAncnVsZXInKQogCi0gIDMuIFRhcGV6IGxlIG51belybyBkZSBsYSBsaWduZSBv+SB2b3VzIOl0aWV6IHN1aXZpIGRlIE1hai1HLglDZWxhIHZvdXMKLSAgICAgcmFt6G5lcmEg4CBsYSBsaWduZSBv+SB2b3VzIOl0aWV6IGF1IGTpcGFydC4KLSAgICAgKExvcnNxdWUgdm91cyB0YXBleiBsZXMgY2hpZmZyZXMsIGlscyBuJ2FwcGFyYWlzc2VudCBQQVMg4CBsJ+ljcmFuKS4KKyAgMi4gVGFwZXogIEcgICBwb3VyIHZvdXMgZOlwbGFjZXIg4CBsYSBmaW4gZHUgZmljaGllci4KKyAgICAgVGFwZXogIGdnICBwb3VyIHZvdXMgZOlwbGFjZXIgYXUgZOlidXQgZHUgZmljaGllci4KKworICAzLiBUYXBleiBsZSBudW3pcm8gZGUgbGEgbGlnbmUgb/kgdm91cyDpdGlleiBzdWl2aSBkZSAgIEcgLiBDZWxhIHZvdXMKKyAgICAgcmFt6G5lcmEg4CBsYSBsaWduZSBv+SB2b3VzIOl0aWV6IGF1IGTpcGFydCBxdWFuZCB2b3VzIGF2aWV6IGFwcHV56QorICAgICBDVFJMLUcuCiAKICAgNC4gU2kgdm91cyB2b3VzIHNlbnRleiBwcup0IOAgZmFpcmUgY2VjaSwgZWZmZWN0dWV6IGxlcyDpdGFwZXMgMSDgIDMuCiAKIAotCiB+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+fn4KLQkJCSAgICBMZedvbiA0LjIgOiBMQSBSRUNIRVJDSEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZedvbiA0LjIgOiBMQSBSRUNIRVJDSEUKIAogCi0JICAqKiBUYXBleiAgLyAgc3VpdmkgZCd1biB0ZXh0ZSBwb3VyIHJlY2hlcmNoZXIgY2UgdGV4dGUuICoqCisgICAgICAgICAgKiogVGFwZXogIC8gIHN1aXZpIGQndW4gdGV4dGUgcG91ciByZWNoZXJjaGVyIGNlIHRleHRlLiAqKgogCiAgIDEuIFRhcGV6IGxlIGNhcmFjdOhyZSAgLyAgZW4gbW9kZSBOb3JtYWwuIE5vdGV6IHF1ZSBjZWx1aS1jaSBldCBsZSBjdXJzZXVyCiAgICAgIGFwcGFyYWlzc2VudCBlbiBiYXMgZGUgbCfpY3JhbiwgY29tbWUgbG9yc3F1ZSBsJ29uIHV0aWxpc2UgIDogLgogCi0gIDIuIFB1aXMgdGFwZXogJ2VycnJldXVyJyA8RW50cullPi4gIEMnZXN0IGxlIG1vdCBxdWUgdm91cyB2b3VsZXogcmVjaGVyY2hlci4KKyAgMi4gUHVpcyB0YXBleiAnZXJycmV1dXInIDxFbnRy6WU+LiBDJ2VzdCBsZSBtb3QgcXVlIHZvdXMgdm91bGV6IHJlY2hlcmNoZXIuCiAKLSAgMy4gUG91ciByZWNoZXJjaGVyIOAgbm91dmVhdSBsZSBt6m1lIHRleHRlLCB0YXBleiBzaW1wbGVtZW50CW4gLgotICAgICBQb3VyIHJlY2hlcmNoZXIgbGUgbeptZSB0ZXh0ZSBkYW5zIGxhIGRpcmVjdGlvbiBvcHBvc+llLCB0YXBleiAgTWFqLU4gLgorICAzLiBQb3VyIHJlY2hlcmNoZXIg4CBub3V2ZWF1IGxlIG3qbWUgdGV4dGUsIHRhcGV6IHNpbXBsZW1lbnQgIG4gLgorICAgICBQb3VyIHJlY2hlcmNoZXIgbGUgbeptZSB0ZXh0ZSBkYW5zIGxhIGRpcmVjdGlvbiBvcHBvc+llLCB0YXBleiAgTiAuCiAKLSAgNC4gU2kgdm91cyB2b3VsZXogcmVjaGVyY2hlciB1biB0ZXh0ZSB2ZXJzIGxlIGhhdXQgZHUgZmljaGllciwgdXRpbGlzZXogID8KLSAgICAg4CBsYSBwbGFjZSBkZSAgLyAuCisgIDQuIFBvdXIgcmVjaGVyY2hlciB1bmUgcGhyYXNlIGRhbnMgbGEgZGlyZWN0aW9uIG9wcG9z6WUsIHV0aWxpc2V6ICA/CisgICAgIGF1IGxpZXUgZGUgIC8gLgogCi0tLS0+IGVycmV1ciBuZSBzJ+ljcml0IHBhcyAiZXJycmV1dXIiOyBlcnJyZXV1ciBlc3QgdW5lIGVycmV1ci4KKy0tLT4gZXJyZXVyIG5lIHMn6WNyaXQgcGFzICJlcnJyZXV1ciIgOyBlcnJyZXV1ciBlc3QgdW5lIGVycmV1ci4KIAotTm90ZTogUXVhbmQgbGEgcmVjaGVyY2hlIGF0dGVpbnQgbGEgZmluIGR1IGZpY2hpZXIsIGVsbGUgcmVwcmVuZCBhdSBk6WJ1dC4KLQorTk9URSA6IFF1YW5kIGxhIHJlY2hlcmNoZSBhdHRlaW50IGxhIGZpbiBkdSBmaWNoaWVyLCBlbGxlIHJlcHJlbmQgYXUgZOlidXQKKyAgICAgICBzYXVmIHNpIGwnb3B0aW9uICd3cmFwc2NhbicgZXN0IGTpYWN0aXbpZS4KIAogCiB+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+fn4KLQkgICAgTGXnb24gNC4zIDogUkVDSEVSQ0hFIERFUyBQQVJFTlRIyFNFUyBDT1JSRVNQT05EQU5URVMKKyAgICAgICAgICAgIExl529uIDQuMyA6IFJFQ0hFUkNIRSBERVMgUEFSRU5USMhTRVMgQ09SUkVTUE9OREFOVEVTCiAKIAotCSAgICoqIFRhcGV6ICAlCXBvdXIgdHJvdXZlciBkZXMgKSwgXSBvdSB9IGNvcnJlc3BvbmRhbnRzLiAqKgorICAgICAgICAgICAqKiBUYXBleiAgJSAgcG91ciB0cm91dmVyIGRlcyApLCBdIG91IH0gY29ycmVzcG9uZGFudHMuICoqCiAKICAgMS4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGwndW4gZGVzICgsIFsgb3UgeyBkZSBsYSBsaWduZSBtYXJxdellIC0tLT4KICAgICAgY2ktZGVzc291cy4KIAogICAyLiBQdWlzIHRhcGV6IGxlIGNhcmFjdOhyZSAgJSAuCiAKLSAgMy4gTGUgY3Vyc2V1ciBkZXZyYWl0IHNlIHBsYWNlciBzdXIgbGEgcGFyZW50aOhzZSBjb3JyZXNwb25kYW50ZS4KKyAgMy4gTGUgY3Vyc2V1ciBzZSBk6XBsYWNlcmEgc3VyIGxhIHBhcmVudGjoc2Ugb3V0IGNyb2NoZXQgY29ycmVzcG9uZGFudC4KIAotICA0LiBUYXBleiAgJSAgcG91ciByZXBsYWNlciBsZSBjdXJzZXVyIHN1ciBsJ2F1dHJlIHBhcmVudGjoc2UuCisgIDQuIFRhcGV6ICAlICBwb3VyIHJlcGxhY2VyIGxlIGN1cnNldXIgc3VyIGxhIHBhcmVudGjoc2Ugb3UgY3JvY2hldAorICAgICBjb3JyZXNwb25kYW50LgorCisgIDUuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIHVuIGF1dHJlICgsKSxbLF0seyBvdSB9IGV0IHJlZ2FyZGV6IGNlIHF1ZQorICAgICBmYWl0ICAlIC4KIAogLS0tPiBWb2ljaSAoIHVuZSBsaWduZSBkZSB0ZXN0IGNvbnRlbmFudCBkZXMgKCwgZGVzIFsgXSBldCBkZXMgeyB9ICkpLgogCi1Ob3RlOiBDZXR0ZSBmb25jdGlvbm5hbGl06SBlc3QgdHLocyB1dGlsZSBsb3JzIGR1IGTpYm9nYWdlIGQndW4gcHJvZ3JhbW1lIHF1aQotICAgICAgY29udGllbnQgZGVzIHBhcmVudGjoc2VzIGTpc+lxdWlsaWJy6WVzICEKLQotCitOT1RFIDogQ2V0dGUgZm9uY3Rpb25uYWxpdOkgZXN0IHRy6HMgdXRpbGUgbG9ycyBkdSBk6WJvZ2FnZSBkJ3VuIHByb2dyYW1tZSBxdWkKKyAgICAgICBjb250aWVudCBkZXMgcGFyZW50aOhzZXMgZOlz6XF1aWxpYnLpZXMgIQogCiAKIH5+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+fgotCSAgICAgICBMZedvbiA0LjQgOiBVTkUgTUFOSchSRSBERSBDT1JSSUdFUiBMRVMgRVJSRVVSUworICAgICAgICAgICAgICAgICAgICBMZedvbiA0LjQgOiBMQSBDT01NQU5ERSBERSBTVUJTVElUVVRJT04KIAogCi0gICoqIFRhcGV6ICA6cy9hbmNpZW4vbm91dmVhdS9nICBwb3VyIHJlbXBsYWNlciAnYW5jaWVuJyBwYXIgJ25vdXZlYXUnLiAgKioKKyAgICAqKiBUYXBleiAgOnMvYW5jaWVuL25vdXZlYXUvZyAgcG91ciByZW1wbGFjZXIgJ2FuY2llbicgcGFyICdub3V2ZWF1Jy4gKioKIAogICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KIAogICAyLiBUYXBleiAgOnMvbGVlL2xlIDxFbnRy6WU+IC4gTm90ZXogcXVlIGNldHRlIGNvbW1hbmRlIGNoYW5nZSBzZXVsZW1lbnQgbGEKLSAgICAgcHJlbWnocmUgb2NjdXJlbmNlIHN1ciBsYSBsaWduZS4KKyAgICAgcHJlbWnocmUgb2NjdXJyZW5jZSBkZSAibGVlIiBkYW5zIGxhIGxpZ25lLgogCi0gIDMuIFB1aXMgdGFwZXogIDpzL2xlZS9sZS9nICBxdWkgb3Jkb25uZSBkZSBmYWlyZSB1bmUgc3Vic3RpdHV0aW9uIGdsb2JhbGUKLSAgICAgc3VyIGxhIGxpZ25lLiBDZWxhIGNoYW5nZSB0b3V0ZXMgbGVzIG9jY3VyZW5jZXMgc3VyIGxhIGxpZ25lCisgIDMuIFB1aXMgdGFwZXogIDpzL2xlZS9sZS9nIC4gTCdham91dCBkdSBkcmFwZWF1ICBnICBvcmRvbm5lIGRlIGZhaXJlIHVuZQorICAgICBzdWJzdGl0dXRpb24gZ2xvYmFsZSBzdXIgbGEgbGlnbmUsIGV0IGNoYW5nZSB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRlCisgICAgICJsZWUiIHN1ciBsYSBsaWduZS4KIAotLS0tPiBsZWUgbWVpbGxldXIgbW9tZW50IHBvdXIgcmVnYXJkZXIgbGVlcyBmbGV1cnMgZXN0IHBlbmRhbnQgbGVlIFByaW50ZW1wcy4KKy0tLT4gbGVlIG1laWxsZXVyIG1vbWVudCBwb3VyIHJlZ2FyZGVyIGxlZXMgZmxldXJzIGVzdCBwZW5kYW50IGxlZSBwcmludGVtcHMuCiAKLSAgNC4gUG91ciBjaGFuZ2VyIHRvdXRlcyBsZXMgb2NjdXJlbmNlcyBkJ3VuIHRleHRlLCBlbnRyZSBkZXV4IGxpZ25lcywKLSAgICAgdGFwZXogIDojLCNzL2FuY2llbi9ub3V2ZWF1L2cgIG/5ICMsIyBzb250IGxlcyBudW3pcm9zIGRlcyBkZXV4IGxpZ25lcy4KLSAgICAgVGFwZXogIDolcy9hbmNpZW4vbm91dmVhdS9nICAgIHBvdXIgY2hhbmdlciBjaGFxdWUgb2NjdXJlbmNlIGRhbnMgdG91dAotCQkJCSAgICBsZSBmaWNoaWVyLgorICA0LiBQb3VyIGNoYW5nZXIgdG91dGVzIGxlcyBvY2N1cnJlbmNlcyBkJ3VuIHRleHRlLCBlbnRyZSBkZXV4IGxpZ25lcywKKyAgICAgdGFwZXogIDojLCNzL2FuY2llbi9ub3V2ZWF1L2cgIG/5ICMsIyBzb250IGxlcyBudW3pcm9zIGRlIGxpZ25lcyBkZSBsYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZ2Ugb/kgbGEgc3Vic3RpdHV0aW9uIGRvaXQg6nRyZSBmYWl0ZS4KKyAgICAgVGFwZXogIDolcy9hbmNpZW4vbm91dmVhdS9nICAgIHBvdXIgY2hhbmdlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRhbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdXQgbGUgZmljaGllci4KKyAgICAgVGFwZXogIDolcy9hbmNpZW4vbm91dmVhdS9nYyAgIHBvdXIgdHJvdXZlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRhbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdXQgbGUgZmljaGllciBhdmVjIHVuZSBpbnZpdGUgcG91cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlybWVyIG91IGluZmlybWVyIGNoYXF1ZSBzdWJzdGl0dXRpb24uCiAKIAogCiB+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+fn4KLQkJCSAgICAgUslTVU3JIERFIExBIExFx09OIDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUslTVU3JIERFIExBIExFx09OIDQKIAogCi0gIDEuIEN0cmwtRyAgYWZmaWNoZSB2b3RyZSBwb3NpdGlvbiBkYW5zIGxlIGZpY2hpZXIgZXQgbCfpdGF0IGRlIGNlbHVpLWNpLgotICAgICBNYWotRyAgdm91cyBwbGFjZSDgIGxhIGZpbiBkdSBmaWNoaWVyLiBVbiBudW3pcm8gZGUgbGlnbmUgc3VpdmkgZGUgTWFqLUcKLSAgICAgdm91cyBwbGFjZSDgIGNldHRlIGxpZ25lLgorICAxLiBDVFJMLUcgICAgICAgYWZmaWNoZSBsYSBwb3NpdGlvbiBkYW5zIGxlIGZpY2hpZXIgZXQgbCfpdGF0IGRlIGNlbHVpLWNpLgorICAgICAgICAgICAgICAgRyAgZOlwbGFjZSDgIGxhIGZpbiBkdSBmaWNoaWVyLgorICAgICBub21icmUgICAgRyAgZOlwbGFjZSBhdSBudW3pcm8gZGUgbGlnbmUuCisgICAgICAgICAgICAgIGdnICBk6XBsYWNlIOAgbGEgcHJlbWnocmUgbGlnbmUuCiAKICAgMi4gVGFwZXIgIC8gIHN1aXZpIGQndW4gdGV4dGUgcmVjaGVyY2hlIGNlIHRleHRlIHZlcnMgbCdBVkFOVC4KICAgICAgVGFwZXIgID8gIHN1aXZpIGQndW4gdGV4dGUgcmVjaGVyY2hlIGNlIHRleHRlIHZlcnMgbCdBUlJJyFJFLgotICAgICBBcHLocyB1bmUgcmVjaGVyY2hlIHRhcGV6CW4gIHBvdXIgdHJvdXZlciBsJ29jY3VyZW5jZSBzdWl2YW50ZSBkYW5zIGxhCi0gICAgIG3qbWUgZGlyZWN0aW9uIG91CU1hai1OICBwb3VyIHJlY2hlcmNoZXIgZGFucyBsYSBkaXJlY3Rpb24gb3Bwb3PpZS4KKyAgICAgQXBy6HMgdW5lIHJlY2hlcmNoZSB0YXBleiAgbiAgcG91ciB0cm91dmVyIGwnb2NjdXJyZW5jZSBzdWl2YW50ZSBkYW5zIGxhCisgICAgIG3qbWUgZGlyZWN0aW9uIG91ICBNYWotTiAgcG91ciByZWNoZXJjaGVyIGRhbnMgbGEgZGlyZWN0aW9uIG9wcG9z6WUuCiAKICAgMy4gVGFwZXIgICUgIGxvcnNxdWUgbGUgY3Vyc2V1ciBlc3Qgc3VyICAoLCApLCBbLCBdLCB7IG91IH0gIGTpcGxhY2UKICAgICAgY2VsdWktY2kgc3VyIGxlIGNhcmFjdOhyZSBjb3JyZXNwb25kYW50LgogCi0gIDQuIFBvdXIgcmVtcGxhY2VyIGxlIHByZW1pZXIgYWEgcGFyIGJiIHN1ciB1bmUgbGlnbmUgdGFwZXoJIDpzL2FhL2JiCi0gICAgIFBvdXIgcmVtcGxhY2VyIHRvdXMgbGVzIGFhIHBhciBiYiBzdXIgdW5lIGxpZ25lIHRhcGV6CSA6cy9hYS9iYi9nCi0gICAgIFBvdXIgcmVtcGxhY2VyIGR1IHRleHRlIGVudHJlIGRldXggbnVt6XJvcyBkZSBsaWduZSB0YXBlegkgOiMsI3MvYWEvYmIvZwotICAgICBQb3VyIHJlbXBsYWNlciB0b3V0ZXMgbGVzIG9jY3VyZW5jZXMgZGFucyBsZSBmaWNoaWVyIHRhcGV6ICA6JXMvYWEvYmIvZwotICAgICBQb3VyIGRlbWFuZGVyIHVuZSBjb25maXJtYXRpb24g4CBjaGFxdWUgZm9pcyBham91dGV6ICdjJwkgOiVzL2FhL2JiL2djCisgIDQuIFBvdXIgcmVtcGxhY2VyIGxlIHByZW1pZXIgYWEgcGFyIGJiIHN1ciB1bmUgbGlnbmUgdGFwZXogICAgIDpzL2FhL2JiCisgICAgIFBvdXIgcmVtcGxhY2VyIHRvdXMgbGVzIGFhIHBhciBiYiBzdXIgdW5lIGxpZ25lIHRhcGV6ICAgICAgIDpzL2FhL2JiL2cKKyAgICAgUG91ciByZW1wbGFjZXIgZHUgdGV4dGUgZW50cmUgZGV1eCBudW3pcm9zIGRlIGxpZ25lIHRhcGV6ICAgOiMsI3MvYWEvYmIvZworICAgICBQb3VyIHJlbXBsYWNlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRhbnMgbGUgZmljaGllciB0YXBleiA6JXMvYWEvYmIvZworICAgICBQb3VyIGRlbWFuZGVyIHVuZSBjb25maXJtYXRpb24g4CBjaGFxdWUgZm9pcyBham91dGV6ICdjJyAgICA6JXMvYWEvYmIvZ2MKIAogCiB+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+fn4KLQkgICAgICBMZedvbiA1LjEgOiBDT01NRU5UIEVYyUNVVEVSIFVORSBDT01NQU5ERSBFWFRFUk5FCisgICAgICAgICAgICAgIExl529uIDUuMSA6IENPTU1FTlQgRVjJQ1VURVIgVU5FIENPTU1BTkRFIEVYVEVSTkUKIAogCiAgKiogVGFwZXogIDohICBzdWl2aSBkJ3VuZSBjb21tYW5kZSBleHRlcm5lIHBvdXIgZXjpY3V0ZXIgY2V0dGUgY29tbWFuZGUuICoqCkBAIC01MTYsMjk0ICs2NTMsMzg2IEBACiAgICAgIG4naW1wb3J0ZSBxdWVsbGUgY29tbWFuZGUgdmFsaWRlIHBvdXIgdm90cmUgaW50ZXJwcul0ZXVyIChzaGVsbCkuCiAKICAgMy4gUGFyIGV4ZW1wbGUsIHRhcGV6ICBscyAgYXBy6HMgbGUgICEgIGV0IGFwcHV5ZXogPEVudHLpZT4uIENlY2kgYWZmaWNoZXJhCi0gICAgIGxhIGxpc3RlIGRlcyBmaWNoaWVycyBkdSBkb3NzaWVyIGNvdXJhbnQsIGNvbW1lIHNpIHZvdXMgYXZpZXogdGFw6SBsYQotICAgICBjb21tYW5kZSDgIGwnaW52aXRlIGR1IHNoZWxsLiBVdGlsaXNleiAgOiFkaXIgIHNpCTohbHMgIG5lIG1hcmNoZSBwYXMuCisgICAgIGxhIGxpc3RlIGRlcyBmaWNoaWVycyBkdSBy6XBlcnRvaXJlIGNvdXJhbnQsIGNvbW1lIHNpIHZvdXMgYXZpZXogdGFw6SBsYQorICAgICBjb21tYW5kZSDgIGwnaW52aXRlIGR1IHNoZWxsLiBVdGlsaXNleiAgOiFkaXIgIHNpICA6IWxzICBuZSBtYXJjaGUgcGFzLgogCi1Ob3RlOiAgSWwgZXN0IHBvc3NpYmxlIGQnZXjpY3V0ZXIgbidpbXBvcnRlIHF1ZWxsZSBjb21tYW5kZSBleHRlcm5lIGRlIGNldHRlCi0gICAgICAgbWFuaehyZS4KK05PVEUgOiAgSWwgZXN0IHBvc3NpYmxlIGQnZXjpY3V0ZXIgbidpbXBvcnRlIHF1ZWxsZSBjb21tYW5kZSBleHRlcm5lIGRlIGNldHRlCisgICAgICAgIG1hbmnocmUsIGF2ZWMgb3Ugc2FucyBhcmd1bWVudC4KIAotTm90ZTogIFRvdXRlcyBsZXMgY29tbWFuZGVzICA6ICBkb2l2ZW50IGZpbmlyIHBhciBsYSBmcmFwcGUgZGUgPEVudHLpZT4uCi0KK05PVEUgOiAgVG91dGVzIGxlcyBjb21tYW5kZXMgIDogIGRvaXZlbnQgZmluaXIgcGFyIGxhIGZyYXBwZSBkZSA8RW50cullPi4KKyAgICAgICAgwCBwYXJ0aXIgZGUgbWFpbnRlbmFudCwgbm91cyBuZSBsZSBtZW50aW9ubmVyb25zIHBsdXMuCiAKIAogfn5+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+Ci0JIExl529uIDUuMiA6IFBMVVMgREUgRMlUQUlMUyBTVVIgTCdFTlJFR0lTVFJFTUVOVCBERSBGSUNISUVSUworICAgICAgICAgTGXnb24gNS4yIDogUExVUyBERSBEyVRBSUxTIFNVUiBMJ0VOUkVHSVNUUkVNRU5UIERFIEZJQ0hJRVJTCiAKIAotICoqIFBvdXIgZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzIGZhaXRzIGF1IGZpY2hpZXIsIHRhcGV6ICA6dyBGSUNISUVSIC4gKioKKyAqKiBQb3VyIGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBmYWl0cyBhdSB0ZXh0ZSwgdGFwZXogIDp3IEZJQ0hJRVIgLiAqKgogCi0gIDEuIFRhcGV6ICA6IWRpciAgb3UgIDohbHMgIHBvdXIgYXZvaXIgbGEgbGlzdGUgZGVzIGZpY2hpZXJzIGR1IGRvc3NpZXIKLSAgICAgY291cmFudC4gVm91cyBzYXZleiBk6WrgIHF1J2lsIGZhdXQgYXBwdXllciA8RW50cullPiBhcHLocyBjZWxhLgorICAxLiBUYXBleiAgOiFkaXIgIG91ICA6IWxzICBwb3VyIGF2b2lyIGxhIGxpc3RlIGRlcyBmaWNoaWVycyBkYW5zIGxlCisgICAgIHLpcGVydG9pcmUgY291cmFudC4gVm91cyBzYXZleiBk6WrgIHF1J2lsIGZhdXQgYXBwdXllciA8RW50cullPiBhcHLocworICAgICBjZWxhLgogCiAgIDIuIENob2lzaXNzZXogdW4gbm9tIGRlIGZpY2hpZXIgcXVpIG4nZXhpc3RlIHBhcyBlbmNvcmUsIHBhciBleGVtcGxlIFRFU1QuCiAKICAgMy4gUHVpcyB0YXBleiAgOncgVEVTVCAgKG/5IFRFU1QgZXN0IGxlIG5vbSBxdWUgdm91cyBhdmV6IGNob2lzaSkuCiAKLSAgNC4gQ2VsYSBzYXV2ZWdhcmRlIHRvdXQgbGUgZmljaGllciAoVHV0b3JpZWwgVmltKSBzb3VzIGxlIG5vbSBURVNULgotICAgICBQb3VyIGxlIHbpcmlmaWVyLCB0YXBleiAgOiFkaXIgIHBvdXIgcmV2aXN1YWxpc2VyIGxlIGNvbnRlbnUgZHUgZG9zc2llci4KKyAgNC4gQ2VsYSBlbnJlZ2lzdHJlIHRvdXQgbGUgZmljaGllciAoVHV0b3JpZWwgVmltKSBzb3VzIGxlIG5vbSBURVNULgorICAgICBQb3VyIGxlIHbpcmlmaWVyLCB0YXBleiAgOiFkaXIgIG91ICA6IWxzICBkZSBub3V2ZWF1IHBvdXIgcmV2aXN1YWxpc2VyCisgICAgIHZvdHJlIHLpcGVydG9pcmUuCiAKLU5vdGV6IHF1ZSBzaSB2b3VzIHF1aXR0ZXogVmltIGV0IHkgcmV0b3VybmV6IGF2ZWMgbGUgZmljaGllciBURVNULCBjZWx1aS1jaQotc2VyYSB1bmUgY29waWUgZXhhY3RlIGR1IGNvdXJzIGF1IG1vbWVudCBv+SB2b3VzIGwnYXZleiBzYXV26S4KK05PVEUgOiBTaSB2b3VzIHF1aXR0ZXogVmltIGV0IGxlIHJlZOltYXJyZXogZGUgbm91dmVhdSBhdmVjIGxlIGZpY2hpZXIgVEVTVCwKKyAgICAgICBjZWx1aS1jaSBzZXJhIHVuZSBjb3BpZSBleGFjdGUgZGUgY2UgY291cnMgYXUgbW9tZW50IG/5IHZvdXMgbCdhdmV6CisgICAgICAgZW5yZWdpc3Ry6S4KIAotICA1LiBNYWludGVuYW50LCBlZmZhY2V6IGxlIGZpY2hpZXIgZW4gdGFwYW50IChNUy1ET1MpOiAgICA6IWRlbCBURVNUCi0JCQkJCSAgIG91IChVbml4KToJICAgOiFybSBURVNUCisgIDUuIE1haW50ZW5hbnQsIGVmZmFjZXogbGUgZmljaGllciBlbiB0YXBhbnQgKE1TLURPUykgOiAgIDohZGVsIFRFU1QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdSAoVW5peCkgOiAgICAgOiFybSBURVNUCiAKIAogfn5+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+Ci0JCSAgICBMZedvbiA1LjMgOiBVTiBFTlJFR0lTVFJFTUVOVCBTyUxFQ1RJRgorICAgICAgICAgICAgICAgICAgTGXnb24gNS4zIDogU8lMRUNUSU9OIERVIFRFWFRFIMAgRU5SRUdJU1RSRVIKIAogCi0gICAgICoqIFBvdXIgZW5yZWdpc3RyZXIgdW5lIHBvcnRpb24gZGUgZmljaGllciwgdGFwZXoJOiMsI3cgRklDSElFUiAqKgorICAgICAgICAgICAgICAgICAgKiogUG91ciBlbnJlZ2lzdHJlciB1bmUgcG9ydGlvbiBkdSBmaWNoaWVyLAorICAgICAgICAgICAgICAgICAgICAgIHRhcGV6IDogICB2ICBk6XBsYWNlbWVudCAgOncgRklDSElFUiAgKioKIAotICAxLiBUYXBleiDgIG5vdXZlYXUgIDohZGlyICBvdSAgOiFscyAgcG91ciB2aXN1YWxpc2VyIGxlIGNvbnRlbnUgZHUgZG9zc2llcgotICAgICBjb3VyYW50IGV0IGNob2lzaXNzZXogdW4gbm9tIGRlIGZpY2hpZXIsIHRlbCBxdWUgVEVTVC4KKyAgMS4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgY2V0dGUgbGlnbmUuCiAKLSAgMi4gROlwbGFjZXogbGUgY3Vyc2V1ciBqdXNxdSdlbiBoYXV0IGRlIGNldHRlIHBhZ2UgZXQgdGFwZXogIEN0cmwtRyAgcG91cgotICAgICBjb25uYe50cmUgbGUgbnVt6XJvIGRlIGNldHRlIGxpZ25lLiBOT1RFWiBDRSBOVU3JUk8gIQorICAyLiBBcHB1eWV6ICB2ICBldCBk6XBsYWNleiBsZSBjdXJzZXVyIHZlcnMgbGEgY2lucXVp6G1lIGxpZ25lIHBsdXMgYmFzLgorICAgICBSZW1hcnF1ZXogcXVlIGxlIHRleHRlIGVzdCBlbiBzdXJicmlsbGFuY2UuCiAKLSAgMy4gUHVpcyByZW5kZXotdm91cyBhdSBiYXMgZGUgY2V0dGUgcGFnZSBldCB0YXBleiDgIG5vdXZlYXUgIEN0cmwtRyAuCi0gICAgIE5PVEVaIMlHQUxFTUVOVCBDRSBOVU3JUk8gIQorICAzLiBBcHB1eWV6ICA6ICAuIEVuIGJhcyBkZSBsJ+ljcmFuICA6JzwsJz4gdmEgYXBwYXJh7nRyZS4KIAotICA0LiBQb3VyIGVucmVnaXN0cmVyIFNFVUxFTUVOVCB1bmUgcG9ydGlvbiBkJ3VuIGZpY2hpZXIsIHRhcGV6ICA6IywjdyBURVNUCi0gICAgIG/5ICMsIyBzb250IGxlcyBkZXV4IG51belyb3MgcXVlIHZvdXMgYXZleiBub3TpcyAoaGF1dCxiYXMpIGV0IFRFU1QgZXN0Ci0gICAgIGxlIG5vbSBkdSBmaWNoaWVyLgorICA0LiBUYXBleiAgIHcgVEVTVCAgLCBv+SBURVNUIGVzdCB1biBub20gZGUgZmljaGllciBxdWkgbidleGlzdGUgcGFzLgorICAgICBW6XJpZmlleiBxdWUgdm91cyB2b3lleiAgOic8LCc+dyBURVNUICBhdmFudCBkZSBkJ2FwcHV5ZXIgc3VyIEVudHLpZS4KIAotICA1LiBVbmUgZm9pcyBlbmNvcmUsIHbpcmlmaWV6IGxhIHBy6XNlbmNlIGR1IGZpY2hpZXIgYXZlYyAgOiFkaXIgIG1haXMgTkUKLSAgICAgTCdFRkZBQ0VaIFBBUy4KKyAgNS4gVmltIHZhIGVucmVnaXN0cmVyIGxlcyBsaWduZXMgc+lsZWN0aW9ubullcyBkYW5zIGxlIGZpY2hpZXIgVEVTVC4KKyAgICAgVXRpbGlzZXogIDohZGlyICBvdSAgIWxzIHBvdXIgbGUgdm9pci4gTmUgbCdlZmZhY2V6IHBhcyBlbmNvcmUgIQorICAgICBOb3VzIGFsbG9ucyBsJ3V0aWxpc2VyIGRhbnMgbGEgbGXnb24gc3VpdmFudGUuCisKK05PVEUgOiBMJ2FwcHVpIGRlICB2ICBk6W1hcnJlIGxhIHPpbGVjdGlvbiBWaXN1ZWxsZS4gVm91cyBwb3V2ZXogZOlwbGFjZXIgbGUKKyAgICAgICBjdXJzZXVyIHBvdXIgYWdyYW5kaXIgb3Ugcul0culjaXIgbGEgc+lsZWN0aW9uLiBQdWlzIHZvdXMgcG91dmV6CisgICAgICAgdXRpbGlzZXIgdW4gb3DpcmF0ZXVyIHBvdXIgZmFpcmUgcXVlbHF1ZSBjaG9zZSBzdXIgbGUgdGV4dGUuIFBhcgorICAgICAgIGV4ZW1wbGUsICBkICBlZmZhY2UgbGUgdGV4dGUuCiAKIAogfn5+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+Ci0JCSBMZedvbiA1LjQgOiBSyUNVUMlSQVRJT04gRVQgRlVTSU9OIERFIEZJQ0hJRVJTCisgICAgICAgICAgICAgICAgIExl529uIDUuNCA6IFLJQ1VQyVJBVElPTiBFVCBGVVNJT04gREUgRklDSElFUlMKIAogCi0JKiogUG91ciBpbnPpcmVyIGxlIGNvbnRlbnUgZCd1biBmaWNoaWVyLCB0YXBlegk6ciBGSUNISUVSICoqCisgICAgICAgICoqIFBvdXIgaW5z6XJlciBsZSBjb250ZW51IGQndW4gZmljaGllciwgdGFwZXogIDpyIEZJQ0hJRVIgKioKIAotICAxLiBUYXBleiAgOiFkaXIgIHBvdXIgdulyaWZpZXIgcXVlIHZvdHJlIGZpY2hpZXIgVEVTVCBlc3QgZW5jb3JlIGzgLgorICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBqdXN0ZSBhdSBkZXNzdXMgZGUgY2V0dGUgbGlnbmUuCiAKLSAgMi4gUGxhY2V6IGxlIGN1cnNldXIgZW4gaGF1dCBkZSBjZXR0ZSBwYWdlLgorTk9URSA6ICBBcHLocyBhdm9pciBleOljdXTpIGwn6XRhcGUgMiB2b3VzIHZlcnJleiBkdSB0ZXh0ZSBkZSBsYSBMZedvbiA1LjMuCisgICAgICAgIFB1aXMgZOlwbGFjZXogdm91cyB2ZXJzIGxlIGJhcyBwb3VyIHZvaXIgY2V0dGUgbGXnb24g4CBub3V2ZWF1LgogCi1OT1RFOiAgQXBy6HMgYXZvaXIgc3VpdmkgbCfpdGFwZSAzIHZvdXMgdmVycmV6IOAgbCfpY3JhbiBsYSBMZedvbiA1LjMuCi0gICAgICAgROlwbGFjZXotdm91cyB2ZXJzIGxlIGJhcyBqdXNxdSfgIHJldmVuaXIg4CBjZXR0ZSBsZedvbi4KLQotICAzLiBNYWludGVuYW50IHLpY3Vw6XJleiB2b3RyZSBmaWNoaWVyIFRFU1QgZW4gdXRpbGlzYW50IGxhIGNvbW1hbmRlICA6ciBURVNUCisgIDIuIE1haW50ZW5hbnQgculjdXDpcmV6IHZvdHJlIGZpY2hpZXIgVEVTVCBlbiB1dGlsaXNhbnQgbGEgY29tbWFuZGUgIDpyIFRFU1QKICAgICAgb/kgVEVTVCBlc3QgbGUgbm9tIGRlIHZvdHJlIGZpY2hpZXIuCi0KLU5PVEU6ICBMZSBmaWNoaWVyIHF1ZSB2b3VzIHLpY3Vw6XJleiBlc3QgcGxhY+kgbOAgb/kgc2UgdHJvdXZlIGxlIGN1cnNldXIuCisgICAgIExlIGZpY2hpZXIgcXVlIHZvdXMgculjdXDpcmV6IGVzdCBwbGFj6SBhdSBkZXNzb3VzIGRlIGxhIGxpZ25lIGR1IGN1cnNldXIuCiAKICAgNC4gUG91ciB26XJpZmllciBxdWUgbGUgZmljaGllciBhIGJpZW4g6XTpIGluc+ly6SwgcmVtb250ZXogZXQgdulyaWZpZXoKICAgICAgcXUnaWwgeSBhIG1haW50ZW5hbnQgZGV1eCBjb3BpZXMgZGUgbGEgTGXnb24gNS4zLCBsJ29yaWdpbmFsZSBldCBjZWxsZQogICAgICBjb250ZW51ZSBkYW5zIGxlIGZpY2hpZXIuCiAKLQotfn5+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+Ci0JCQkgICAgIFLJU1VNySBERSBMQSBMRcdPTiA1Ci0KLQotICAxLiAgOiFjb21tYW5kZSAgZXjpY3V0ZSB1bmUgY29tbWFuZGUgZXh0ZXJuZS4KLQotICAgICAgUXVlbHF1ZXMgZXhlbXBsZXMgcHJhdGlxdWVzOgotCShNUy1ET1MpCShVbml4KQotCSA6IWRpcgkJIDohbHMJCSBhZmZpY2hlIGxlIGNvbnRlbnUgZHUgZG9zc2llciBjb3VyYW50LgotCSA6IWRlbCBGSUNISUVSICAgOiFybSBGSUNISUVSICAgIGVmZmFjZSBGSUNISUVSLgotCi0gIDIuICA6dyBGSUNISUVSICBlbnJlZ2lzdHJlIGxlIGZpY2hpZXIgVmltIGNvdXJhbnQgc3VyIGxlIGRpc3F1ZSBhdmVjIHBvdXIKLQkJICBub20gRklDSElFUi4KLQotICAzLiAgOiMsI3cgRklDSElFUiAgZW5yZWdpc3RyZSBsZXMgbGlnbmVzICMg4CAjIGRhbnMgbGUgZmljaGllciBGSUNISUVSLgotCi0gIDQuICA6ciBGSUNISUVSICBy6WN1cOhyZSBsZSBmaWNoaWVyIEZJQ0hJRVIgZXQgbCdpbnPocmUgZGFucyBsZSBmaWNoaWVyCi0JCSAgY291cmFudCDgIHBhcnRpciBkZSBsYSBwb3NpdGlvbiBkdSBjdXJzZXVyLgotCi0KLQorTk9URSA6ICBWb3VzIHBvdXZleiBhdXNzaSBsaXJlIGxhIHNvcnRpZSBkJ3VuZSBjb21tYW5kZSBleHRlcm5lLiBQYXIgZXhlbXBsZSwKKyAgICAgICAgOnIgIWxzICBsaXQgbGEgc29ydGllIGRlIGxhIGNvbW1hbmRlIGxzIGV0IGxhIHBsYWNlIHNvdXMgbGEgbGlnbmUgZHUKKyAgICAgICAgY3Vyc2V1ci4KIAogCiB+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+fn4KLQkJCSAgICBMZedvbiA2LjEgOiBMJ09VVkVSVFVSRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSyVNVTckgREUgTEEgTEXHT04gNQorCisKKyAgMS4gOiFjb21tYW5kZSAgZXjpY3V0ZSB1bmUgY29tbWFuZGUgZXh0ZXJuZS4KKworICAgICBRdWVscXVlcyBleGVtcGxlcyBwcmF0aXF1ZXMgOgorICAgICAgKE1TLURPUykgICAgICAgIChVbml4KQorICAgICAgIDohZGlyICAgICAgICAgICA6IWxzICAgICAgICAgIGFmZmljaGUgbGUgY29udGVudSBkdSBy6XBlcnRvaXJlIGNvdXJhbnQuCisgICAgICAgOiFkZWwgRklDSElFUiAgIDohcm0gRklDSElFUiAgZWZmYWNlIEZJQ0hJRVIuCisKKyAgMi4gOncgRklDSElFUiAgZW5yZWdpc3RyZSBsZSBmaWNoaWVyIFZpbSBjb3VyYW50IHN1ciBsZSBkaXNxdWUgYXZlYyBwb3VyCisgICAgICAgICAgICAgICAgICBub20gRklDSElFUi4KKworICAzLiB2ICBk6XBsYWNlbWVudCAgOncgRklDSElFUiBzYXV2ZWdhcmRlIGxlcyBsaWduZXMgZGUgbGEgc+lsZWN0aW9uIFZpc3VlbGxlCisgICAgIGRhbnMgbGUgZmljaGllciBGSUNISUVSLgorCisgIDQuIDpyIEZJQ0hJRVIgIHLpY3Vw6HJlIGxlIGNvbnRlbnUgZHUgZmljaGllciBGSUNISUVSIGV0IGwnaW5z6HJlIHNvdXMgbGEKKyAgICAgcG9zaXRpb24gZHUgY3Vyc2V1ci4KKworICA1LiA6ciAhZGlyICBsaXQgbGEgc29ydGllIGRlIGxhIGNvbW1hbmRlIGRpciBldCBsJ2luc+hyZSBzb3VzIGxhIHBvc2l0aW9uCisgICAgIGR1IGN1cnNldXIuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgTGXnb24gNi4xIDogTEEgQ09NTUFOREUgRCdPVVZFUlRVUkUKIAogCiAqKiBUYXBleiAgbyAgcG91ciBvdXZyaXIgdW5lIGxpZ25lIHNvdXMgbGUgY3Vyc2V1ciBldCB5IGFsbGVyIGVuIEluc2VydGlvbi4gKioKIAogICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KIAotICAyLiBUYXBleiAgbyAgKG1pbnVzY3VsZSkgcG91ciBvdXZyaXIgdW5lIGxpZ25lIFNPVVMgbGUgY3Vyc2V1ciBldCB2b3VzIHkKLSAgICAgcGxhY2VyIGVuIG1vZGUgSW5zZXJ0aW9uLgorICAyLiBUYXBleiBsYSBsZXR0cmUgICBvICAgbWludXNjdWxlIHBvdXIgb3V2cmlyIHVuZSBsaWduZSBTT1VTIGxlIGN1cnNldXIgZXQKKyAgICAgdm91cyB5IHBsYWNlciBlbiBtb2RlIEluc2VydGlvbi4KIAotICAzLiBQdWlzIHJlY29waWV6IGxhIGxpZ25lIG1hcnF16WUgLS0tPiBldCBhcHB1eWV6IHN1ciA8yWNoYXA+IHBvdXIgcXVpdHRlcgotICAgICBsZSBtb2RlIEluc2VydGlvbi4KKyAgMy4gUHVpcyB0YXBleiBkdSB0ZXh0ZSBldCBhcHB1eWV6IDzJY2hhcD4gcG91ciBzb3J0aXIgZHUgbW9kZSBJbnNlcnRpb24uCiAKLS0tLT4gRW4gdGFwYW50CW8gIGxlIGN1cnNldXIgc2UgbWV0IHN1ciBsYSBsaWduZSBvdXZlcnRlLCBlbiBtb2RlIEluc2VydGlvbi4KKy0tLT4gRW4gdGFwYW50ICBvICBsZSBjdXJzZXVyIHNlIG1ldCBzdXIgbGEgbGlnbmUgb3V2ZXJ0ZSwgZW4gbW9kZSBJbnNlcnRpb24uCiAKICAgNC4gUG91ciBvdXZyaXIgdW5lIGxpZ25lIGF1IERFU1NVUyBkdSBjdXJzZXVyLCB0YXBleiBzaW1wbGVtZW50IHVuICBPCiAgICAgIG1hanVzY3VsZSwgcGx1dPR0IHF1J3VuICBvICBtaW51c2N1bGUuIEZhaXRlcyB1biBlc3NhaSBzdXIgbGEgbGlnbmUKICAgICAgY2ktZGVzc291cy4KLU91dnJleiB1bmUgbGlnbmUgY2ktZGVzc3VzIGVuIHRhcGFudCBNQUotTyBsb3JzcXVlIGxlIGN1cnNldXIgZXN0IGljaS4KIAotCi0KLX5+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+fgotCQkJICAgICAgTGXnb24gNi4yIDogTCdBSk9VVAotCi0KLQkgICAgKiogVGFwZXogIGEgIHBvdXIgaW5z6XJlciBkdSB0ZXh0ZSBBUFLIUyBsZSBjdXJzZXVyLiAqKgotCi0gIDEuIFBsYWNleiBsZSBjdXJzZXVyIOAgbGEgZmluIGRlIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzCi0gICAgIGVuIHRhcGFudAkkICBlbiBtb2RlIE5vcm1hbC4KLQotICAyLiBUYXBleiB1biAgYSAgKG1pbnVzY3VsZSkgcG91ciBham91dGVyIGR1IHRleHRlIEFQUshTIGxlIGNhcmFjdOhyZSBzaXR16QotICAgICBzb3VzIGxlIGN1cnNldXIuICggQSAgbWFqdXNjdWxlIGFqb3V0ZSBkdSB0ZXh0ZSDgIGxhIGZpbiBkZSBsYSBsaWduZSkuCi0KLU5vdGU6IENlY2kg6XZpdGUgZGUgdGFwZXIgIGkgLCBsZSBkZXJuaWVyIGNhcmFjdOhyZSwgbGUgdGV4dGUg4CBpbnPpcmVyLAotICAgICAgPMljaGFwPiwgY3Vyc2V1ci3gLWRyb2l0ZSwgZXQgZmluYWxlbWVudAl4ICwganVzdGUgcG91ciBham91dGVyIGR1Ci0gICAgICB0ZXh0ZSDgIGxhIGZpbiBkJ3VuZSBsaWduZSAhCi0KLSAgMy4gTWFpbnRlbmFudCwgY29tcGzpdGV6IGxhIHByZW1p6HJlIGxpZ25lLiBOb3RleiDpZ2FsZW1lbnQgcXVlIGwnYWpvdXQgZXN0Ci0gICAgIGlkZW50aXF1ZSBhdSBtb2RlIEluc2VydGlvbiwgaG9ybWlzIGxhIHBvc2l0aW9uIG/5IGxlIHRleHRlIGVzdCBpbnPpcukuCi0KLS0tLT4gQ2V0dGUgbGlnbmUgdm91cyBwZXJtZXQgZGUgcHJhdGlxdWVyCi0tLS0+IENldHRlIGxpZ25lIHZvdXMgcGVybWV0IGRlIHByYXRpcXVlciBsJ2Fqb3V0IGRlIHRleHRlIGVuIGZpbiBkZSBsaWduZS4KKy0tLT4gT3V2cmV6IHVuZSBsaWduZSBjaS1kZXNzdXMgZW4gdGFwYW50IE8gbG9yc3F1ZSBsZSBjdXJzZXVyIGVzdCBpY2kuCiAKIAogfn5+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+Ci0JCUxl529uIDYuMyA6IFVORSBBVVRSRSBWRVJTSU9OIERVIFJFTVBMQUNFTUVOVAorICAgICAgICAgICAgICAgICAgICAgICAgTGXnb24gNi4yIDogTEEgQ09NTUFOREUgRCdBSk9VVAorCisKKyAgICAgICAgICAgICoqIFRhcGV6ICBhICBwb3VyIGluc+lyZXIgZHUgdGV4dGUgQVBSyFMgbGUgY3Vyc2V1ci4gKioKKworICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBhdSBk6WJ1dCBkZSBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KKworICAyLiBBcHB1eWV6ICBlICBqdXNxdSfgIGNlIHF1ZSBsZSBjdXJzZXVyIHNvaXQgc3VyIGxhIGZpbiBkZSAgbGkgLgorCisgIDMuIEFwcHV5ZXogIGEgIChtaW51c2N1bGUpIHBvdXIgYWpvdXRlciBkdSB0ZXh0ZSBBUFLIUyBsZSBjdXJzZXVyLgorCisgIDQuIENvbXBs6XRleiBsZSBtb3QgY29tbWUgZGFucyBsYSBsaWduZSBkZXNzb3VzLiBBcHB1eWV6IDzJY2hhcD4gcG91cgorICAgICBzb3J0aXIgZHUgbW9kZSBJbnNlcnRpb24uCisKKyAgNS4gVXRpbGlzZXogIGUgIHBvdXIgdm91cyBk6XBsYWNlciB2ZXJzIGxlIG1vdCBpbmNvbXBsZXQgc3VpdmFudCBldAorICAgICBy6XDpdGV6IGxlcyDpdGFwZXMgMyBldCA0LgorCistLS0+IENldHRlIGxpIHZvdXMgcGVybSBkZSBwcmF0aXEgbCdham91dCBkZSB0IGRhbnMgdW5lIGxpZ25lLgorLS0tPiBDZXR0ZSBsaWduZSB2b3VzIHBlcm1ldCBkZSBwcmF0aXF1ZXIgbCdham91dCBkZSB0ZXh0ZSBkYW5zIHVuZSBsaWduZS4KKworTk9URSA6ICBhLCBpLCBBIHZvbnQgdG91cyBkYW5zIGxlIG3qbWUgbW9kZSBJbnNlcnRpb24sIGxhIHNldWxlIGRpZmbpcmVuY2UKKyAgICAgICAgZXN0IGwnZW5kcm9pdCBv+SBsZXMgY2FyYWN06HJlcyBzb250IGluc+ly6XMuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgTGXnb24gNi4zIDogVU5FIEFVVFJFIE1BTknIUkUgREUgUkVNUExBQ0VSCiAKIAogICAgICAgICoqIFRhcGV6IHVuICBSICBtYWp1c2N1bGUgcG91ciByZW1wbGFjZXIgcGx1cyBkJ3VuIGNhcmFjdOhyZS4gKioKIAogICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtaehyZSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KKyAgICAgROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGUgZOlidXQgZHUgcHJlbWllciB4eHggLgogCi0gIDIuIFBsYWNleiBsZSBjdXJzZXVyIGF1IGTpYnV0IGR1IHByZW1pZXIgbW90IHF1aSBkaWZm6HJlIGRlIGxhIHNlY29uZGUgbGlnbmUKLSAgICAgbWFycXXpZSAtLS0+IChsZSBtb3QgJ2NlbGxlJykuCisgIDIuIEFwcHV5ZXogbWFpbnRlbmFudCAgUiAgZXQgdGFwZXogbGUgbm9tYnJlIGRlc3NvdXMgZGFucyBsYSBkZXV4aehtZSBsaWduZSwKKyAgICAgZGUgbWFuaehyZSDgIHJlbXBsYWNlciBsZSB4eHggLgogCi0gIDMuIFB1aXMgdGFwZXogIFIgIGV0IHJlbXBsYWNleiBsZSByZXN0ZSBkdSB0ZXh0ZSBkZSBsYSBwcmVtaehyZSBsaWduZSBlbgotICAgICB0YXBhbnQgcGFyIGRlc3N1cyBjZWx1aS1jaSwgZGUgbWFuaehyZSDgIHJlbmRyZSBsYSBwcmVtaehyZSBsaWduZQotICAgICBpZGVudGlxdWUg4CBsYSBzZWNvbmRlLgorICAzLiBBcHB1eWV6IDzJY2hhcD4gcG91ciBxdWl0dGVyIGxlIG1vZGUgUmVtcGxhY2VtZW50LiBOb3RleiBxdWUgbGUgcmVzdGUgZGUKKyAgICAgbGEgbGlnbmUgZGVtZXVyZSBpbmNoYW5n6S4KIAotLS0tPiBQb3VyIHJlbmRyZSBjZXR0ZSBsaWduZSBpZGVudGlxdWUg4CBjZWxsZSBkdSBkZXNzb3VzIHV0aWxpc2V6IGxlIGNsYXZpZXIuCi0tLS0+IFBvdXIgcmVuZHJlIGNldHRlIGxpZ25lIGlkZW50aXF1ZSDgIGxhIHNlY29uZGUsIHRhcGV6IFIgZXQgbGEgY29ycmVjdGlvbi4KKyAgNC4gUulw6XRleiBsZXMg6XRhcGVzIHBvdXIgcmVtcGxhY2VyIGxlcyB4eHggcmVzdGFudHMuCiAKLSAgNC4gTm90ZXogcXVlIGxvcnNxdWUgdm91cyBhcHB1eWV6IDzJY2hhcD4sIGxlIHRleHRlIHF1aSBuJ2EgcGFzIGVuY29yZSDpdOkKLSAgICAgcmVtcGxhY+kgcmVzdGUuCiAKKy0tLT4gTCdham91dCBkZSAxMjMg4CB4eHggZG9ubmUgeHh4LgorLS0tPiBMJ2Fqb3V0IGRlIDEyMyDgIDQ1NiBkb25uZSA1NzkuCisKK05PVEUgOiBMZSBtb2RlIFJlbXBsYWNlbWVudCBlc3QgY29tbWUgbGUgbW9kZSBJbnNlcnRpb24sIG1haXMgdG91cyBsZXMKKyAgICAgICBjYXJhY3TocmVzIHRhcOlzIGVmZmFjZW50IHVuIGNhcmFjdOhyZSBleGlzdGFudC4KIAogCiB+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+fn4KLQkJICAgICAgIExl529uIDYuNCA6IFLJR0xBR0UgREVTIE9QVElPTlMKKyAgICAgICAgICAgICAgICAgICAgIExl529uIDYuNCA6IENPUElFUiBFVCBDT0xMRVIgRFUgVEVYVEUKIAogCi0gICoqIFLpZ2xvbnMgdW5lIG9wdGlvbiBhZmluIHF1ZSBsYSByZWNoZXJjaGUgZXQgbGEgc3Vic3RpdHV0aW9uIGlnbm9yZW50IGxhCi0gICAgIGNhc3NlIGRlcyBjYXJhY3TocmVzLiAqKgorICAgKiogVXRpbGlzZXogbCdvcOlyYXRldXIgIHkgIHBvdXIgY29waWVyIGR1IHRleHRlIGV0ICBwICBwb3VyIGxlIGNvbGxlciAqKgogCi0gIDEuIFJlY2hlcmNoZXogJ2lnbm9yZScgZW4gdGFwYW50ICAvaWdub3JlIC4KKyAgMS4gQWxsZXog4CBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cyBldCBwbGFjZXogbGUgY3Vyc2V1ciBhcHLocyAiYSkiLgorCisgIDIuIETpbWFycmV6IGxlIG1vZGUgVmlzdWVsIGF2ZWMgIHYgIGV0IGTpcGxhY2V6IGxlIGN1cnNldXIganVzdGUgZGV2YW50CisgICAgICJwcmVtaWVyIi4KKworICAzLiBUYXBleiAgeSAgcG91ciBjb3BpZXIgbGUgdGV4dGUgZW4gc3VyYnJpbGxhbmNlLgorCisgIDQuIETpcGxhY2V6IGxhIGN1cnNldXIg4CBsYSBmaW4gZGUgbGEgbGlnbmUgc3VpdmFudGUgOiAgIGokCisKKyAgNS4gVGFwZXogIHAgIHBvdXIgY29sbGVyIGxlIHRleHRlLiBQdWlzIHRhcGV6IDogIHVuIHNlY29uZCA8yWNoYXA+IC4KKworICA2LiBVdGlsaXNleiBsZSBtb2RlIFZpc3VlbCBwb3VyIHPpbGVjdGlvbm5lciAi6WzpbWVudCIsIGNvcGlleiBsZSBhdmVjICB5ICAsCisgICAgIGTpcGxhY2V6IHZvdXMg4CBsYSBmaW4gZGUgbGEgbGlnbmUgc3VpdmFudCBhdmVjICBqJCAgZXQgY29sbGV6IGxlIHRleHRlCisgICAgIOAgY2V0IGVuZHJvaXQgYXZlYyAgcCAuCisKKy0tLT4gIGEpIGNlY2kgZXN0IGxlIHByZW1pZXIg6WzpbWVudC4KKyAgICAgIGIpCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZedvbiA2LjQgOiBSyUdMQUdFIERFUyBPUFRJT05TCisKKworICAgICoqIFLpZ2xvbnMgdW5lIG9wdGlvbiBhZmluIHF1ZSBsYSByZWNoZXJjaGUgZXQgbGEgc3Vic3RpdHV0aW9uIGlnbm9yZSBsYQorICAgICAgIGNhc3NlIGRlcyBjYXJhY3TocmVzLiAqKgorCisgIDEuIFJlY2hlcmNoZXogJ2lnbm9yZScgZW4gdGFwYW50IDogICAvaWdub3JlIDxFbnRy6WU+CiAgICAgIFLpcOl0ZXogY2VjaSBwbHVzaWV1cnMgZm9pcyBlbiB1dGlsaXNhbnQgbGEgdG91Y2hlICBuIC4KIAotICAyLiBBY3RpdmV6IGwnb3B0aW9uICdpYycgKElnbm9yZXIgY2Fzc2UpIGVuIHRhcGFudCAgOnNldCBpYyAuCisgIDIuIEFjdGl2ZXogbCdvcHRpb24gJ2ljJyAoaWdub3JlciBjYXNzZSkgZW4gdGFwYW50ICA6c2V0IGljIC4KIAotICAzLiBQdWlzIHBvdXJzdWl2ZXogdm90cmUgcmVjaGVyY2hlIGVuIHV0aWxpc2FudCAgbiAuCi0gICAgIFLpcOl0ZXogY2V0dGUgcmVjaGVyY2hlIHBsdXNpZXVycyBmb2lzIGF2ZWMgbGEgdG91Y2hlICBuIC4KKyAgMy4gUHVpcyBjaGVyY2hleiAnaWdub3JlJyBkZSBub3V2ZWF1IGVuIHV0aWxpc2FudCAgbiAuCisgICAgIFJlbWFycXVleiBxdWUgSWdub3JlIGV0IElHTk9SRSBzb250IG1haW50ZW5hbnQgYXVzc2kgdHJvdXbpcy4KIAogICA0LiBBY3RpdmV6IGxlcyBvcHRpb25zICdobHNlYXJjaCcgZXQgJ2luY3NlYXJjaCcgYXZlYyAgOnNldCBobHMgaXMgLgogCiAgIDUuIFB1aXMgcmVjb21tZW5jZXogdW5lIHJlY2hlcmNoZSwgZXQgZmFpdGVzIGJpZW4gYXR0ZW50aW9uIOAgY2UgcXVpIHNlCi0gICAgIHByb2R1aXQ6ICAvaWdub3JlIC4KKyAgICAgcHJvZHVpdCA6ICAvaWdub3JlIDxFbnRy6WU+CiAKLSAgNi4gUG91ciBpbnRlcnJvbXByZSBsYSBtaXNlIGVuIHN1cmJyaWxsYW5jZSBkZXMgculzdWx0YXRzLCB0YXBlejoKLSAgICAgOm5vaGxzZWFyY2gKKyAgNi4gUG91ciBk6XNhY3RpdmVyICdpZ25vcmVyIGNhc3NlJywgZW50cmV6IDogIDpzZXQgbm9pYwogCi1+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+fn4KLQkJCSAgICAgUslTVU3JIERFIExBIExFx09OIDYKK05PVEUgOiBQb3VyIGVubGV2ZXIgbGEgc3VyYnJpbGxhbmNlIGRlcyBy6XN1bHRhdHMsIGVudHJleiA6ICAgOm5vaGxzZWFyY2gKIAotCi0gIDEuIFRhcGVyICBvICBvdXZyZSB1bmUgbGlnbmUgU09VUyBsZSBjdXJzZXVyIGV0IHkgcGxhY2UgY2VsdWktY2kgZW4gbW9kZQotICAgICBJbnNlcnRpb24uIFRhcGVyIHVuICBPICBtYWp1c2N1bGUgb3V2cmUgdW5lIGxpZ25lIGF1IERFU1NVUyBkZSBsYSBsaWduZQotICAgICBv+SBzZSB0cm91dmUgbGUgY3Vyc2V1ci4KLQotICAyLiBUYXBleiB1biAgYSAgcG91ciBpbnPpcmVyIGR1IHRleHRlIEFQUshTIGxlIGNhcmFjdOhyZSBv+SBzZSB0cm91dmUgbGUKLSAgICAgY3Vyc2V1ci4gVGFwZXIgdW4JQSAgbWFqdXNjdWxlIGFqb3V0ZSBkdSB0ZXh0ZSBhdXRvbWF0aXF1ZW1lbnQg4CBsYSBmaW4KLSAgICAgZGUgbGEgbGlnbmUuCi0KLSAgMy4gVGFwZXIgdW4gIFIgIG1hanVzY3VsZSBhY3RpdmUgbGUgbW9kZSBSZW1wbGFjZW1lbnQganVzcXUn4CBjZSBxdWUgbGEKLSAgICAgdG91Y2hlICA8yWNoYXA+ICBzb2l0IGFwcHV56WUgcG91ciBlbiBzb3J0aXIuCi0KLSAgNC4gVGFwZXIgIDpzZXQgeHh4ICBhY3RpdmUgbCdvcHRpb24gJ3h4eCcuCi0KLQotCi0KLQorTk9URSA6IFNpIHZvdXMgdm91bGV6IGlnbm9yZXIgbGEgY2Fzc2UgdW5pcXVlbWVudCBwb3VyIHVuZSByZWNoZXJjaGUsIHV0aWxpc2V6CisgICAgICAgXGMgIGRhbnMgbGEgcGhyYXNlIDogICAvaWdub3JlXGMgIDxFbnRy6WU+CiAKIAogfn5+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+Ci0JCSAgICAgTGXnb24gNyA6IEFDQ8lERVIgwCBMJ0FJREUgRU4gTElHTkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUslTVU3JIERFIExBIExFx09OIDYKIAotCQkgICoqIFV0aWxpc2VyIGxlIHN5c3TobWUgZCdhaWRlIGVuIGxpZ25lLiAqKgogCi0gIFZpbSBhIHVuIHN5c3TobWUgY29tcGxldCBkJ2FpZGUgZW4gbGlnbmUuICBQb3VyIHkgYWNj6WRlciwgZXNzYXlleiBsJ3VuZSBkZQotICBjZXMgdHJvaXMgbel0aG9kZXM6Ci0JLSBhcHB1eWV6IGxhIHRvdWNoZSA8SGVscD4gKHNpIHZvdXMgZW4gYXZleiB1bmUpCi0JLSBhcHB1eWV6IGxhIHRvdWNoZSA8RjE+IChzaSB2b3VzIGVuIGF2ZXogdW5lKQotCS0gdGFwZXogIDpoZWxwIDxFbnRy6WU+CisgIDEuIFRhcGVyICBvICBvdXZyZSB1bmUgbGlnbmUgU09VUyBsZSBjdXJzZXVyIGV0IGTpbWFycmUgbGUgbW9kZSBJbnNlcnRpb24uCisgICAgIFRhcGVyICBPICBvdXZyZSB1bmUgbGlnbmUgYXUgREVTU1VTIGR1IGN1cnNldXIuCiAKLSAgVGFwZXogIDpxIDxFbnRy6WU+ICBwb3VyIGZlcm1lciBsYSBmZW7qdHJlIGQnYWlkZS4KKyAgMi4gVGFwZXIgIGEgIHBvdXIgaW5z6XJlciBkdSB0ZXh0ZSBBUFLIUyBsZSBjdXJzZXVyLgorICAgICBUYXBlciAgQSAgcG91ciBpbnPpcmVyIGR1IHRleHRlIGFwcuhzIGxhIGZpbiBkZSBsaWduZS4KKworICAzLiBUYXBlciAgZSAgZOlwbGFjZSDgIGxhIGZpbiBkdSBtb3QuCisKKyAgNC4gVGFwZXIgIHkgIGNvcGllIGR1IHRleHRlLCAgcCAgbGUgY29sbGUuCisKKyAgNS4gVGFwZXIgIFIgIG1hanVzY3VsZSBhY3RpdmUgbGUgbW9kZSBSZW1wbGFjZW1lbnQganVzcXUn4CBjZSBxdScgPMljaGFwPgorICAgICBzb2l0IGFwcHV56S4KKworICA2LiBUYXBlciAgIjpzZXQgeHh4IiAgYWN0aXZlIGwnb3B0aW9uICJ4eHgiLiBRdWVscXVlcyBvcHRpb25zIHNvbnQgOgorICAgICAgICAnaWMnICAnaW5nbm9yZWNhc2UnIHBvdXIgaWdub3JlciBsYSBjYXNzZSBsb3JzIGRlcyByZWNoZXJjaGVzLgorICAgICAgICAnaXMnICAnaW5jc2VhcmNoJyAgIHBvdXIgbW9udHJlciBsZXMgYXBwYXJpZW1lbnRzIHBhcnRpZWxzLgorICAgICAgICAnaGxzJyAnaGxzZWFyY2gnICAgIHBvdXIgbWV0dHJlIGVuIHN1cmJyaWxsYW5jZSBsZXMgYXBwYXJpZW1lbnRzLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIExl529uIDcuMSA6IE9CVEVOSVIgREUgTCdBSURFCisKKworICAgICAgICAgICAgICAgICAgKiogVXRpbGlzZXIgbGUgc3lzdOhtZSBkJ2FpZGUgZW4gbGlnbmUuICoqCisKKyAgVmltIGEgdW4gc3lzdOhtZSBjb21wbGV0IGQnYWlkZSBlbiBsaWduZS4gUG91ciB5IGFjY+lkZXIsIGVzc2F5ZXogbCd1bmUgZGUKKyAgY2VzIHRyb2lzIG3pdGhvZGVzIDoKKyAgICAgICAgLSBhcHB1eWV6IGxhIHRvdWNoZSA8SGVscD4gKHNpIHZvdXMgZW4gYXZleiB1bmUpCisgICAgICAgIC0gYXBwdXlleiBsYSB0b3VjaGUgPEYxPiAoc2kgdm91cyBlbiBhdmV6IHVuZSkKKyAgICAgICAgLSB0YXBleiAgOmhlbHAgPEVudHLpZT4KKworCisgIExpc2V6IGxlIHRleHRlIGRhbnMgbGEgZmVu6nRyZSBkJ2FpZGUgcG91ciBzYXZvaXIgY29tbWVudCBmb25jdGlvbm5lIGwnYWlkZS4KKyAgVGFwZXogIENUUkwtVyBDVFJMLVcgICBwb3VyIHNhdXRlciBkJ3VuZSBmZW7qdHJlIOAgbCdhdXRyZS4KKyAgVGFwZXogIDpxIDxFbnRy6WU+ICAgICBwb3VyIGZlcm1lciBsYSBmZW7qdHJlIGQnYWlkZS4KIAogICBWb3VzIHBvdXZleiBhY2PpZGVyIOAgbCdhaWRlIHN1ciDgIHBldSBwcuhzIG4naW1wb3J0ZSBxdWVsIHN1amV0IGVuIGRvbm5hbnQKICAgZGVzIGFyZ3VtZW50cyDgIGxhIGNvbW1hbmRlICA6aGVscCAuIEVzc2F5ZXogcGFyIGV4ZW1wbGUgKG4nb3VibGlleiBwYXMKLSAgZCdhcHB1eWVyIHN1ciA8RW50cullPik6CisgIGQnYXBwdXllciBzdXIgPEVudHLpZT4pIDoKIAotCTpoZWxwIHcKLQk6aGVscCBjXzxUCi0JOmhlbHAgaW5zZXJ0LWluZGV4Ci0JOmhlbHAgdXNlci1tYW51YWwKKyAgICAgICAgOmhlbHAgdworICAgICAgICA6aGVscCBjX0NUUkwtRAorICAgICAgICA6aGVscCBjXzxUCisgICAgICAgIDpoZWxwIGluc2VydC1pbmRleAorICAgICAgICA6aGVscCB1c2VyLW1hbnVhbAogCiAKIH5+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+fgotCQkgICAgTGXnb24gOCA6IENSyUVSIFVOIFNDUklQVCBERSBEyU1BUlJBR0UKKyAgICAgICAgICAgICAgICAgICAgTGXnb24gNy4yIDogQ1LJRVIgVU4gU0NSSVBUIERFIETJTUFSUkFHRQogCi0JCSAgKiogQWN0aXZlciBsZXMgZm9uY3Rpb25uYWxpdOlzIGRlIFZpbS4gKioKKyAgICAgICAgICAgICAgICAgICAqKiBBY3RpdmVyIGxlcyBmb25jdGlvbm5hbGl06XMgZGUgVmltLiAqKgogCiAgIFZpbSBhIGJlYXVjb3VwIHBsdXMgZGUgZm9uY3Rpb25uYWxpdOlzIHF1ZSBWaSwgbWFpcyBsYSBwbHVwYXJ0IGRlIGNlbGxlcy1jaQotICBzb250IGTpc2FjdGl26WVzIHBhciBk6WZhdXQuICBQb3VyIGNvbW1lbmNlciDgIGxlcyB1dGlsaXNlciwgdm91cyBkZXZlegorICBzb250IGTpc2FjdGl26WVzIHBhciBk6WZhdXQuIFBvdXIgY29tbWVuY2VyIOAgbGVzIHV0aWxpc2VyLCB2b3VzIGRldmV6CiAgIGNy6WVyIHVuIGZpY2hpZXIgInZpbXJjIi4KIAotICAxLiBDb21tZW5jZXog4CDpZGl0ZXIgbGUgZmljaGllciAidmltcmMiLiBDZWNpIGTpcGVuZCBkZSB2b3RyZSBzeXN06G1lOgotCTplZGl0IH4vLnZpbXJjCQkJcG91ciBVbml4Ci0JOmVkaXQgJFZJTS9fdmltcmMJCXBvdXIgTVMtV2luZG93cworICAxLiBDb21tZW5jZXog4CDpZGl0ZXIgbGUgZmljaGllciAidmltcmMiLiBDZWNpIGTpcGVuZCBkZSB2b3RyZSBzeXN06G1lIDoKKyAgICAgICAgOmVkaXQgfi8udmltcmMgICAgICAgICBwb3VyIFVuaXgKKyAgICAgICAgOmVkaXQgJFZJTS9fdmltcmMgICAgICBwb3VyIE1TLVdpbmRvd3MKIAotICAyLiBJbnTpZ3JleiBtYWludGVuYW50IGxlIHRleHRlIGR1IGZpY2hpZXIgInZpbXJjIiBkJ2V4ZW1wbGU6Ci0JOnJlYWQgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKyAgMi4gTGlzZXogbWFpbnRlbmFudCBsZSBmaWNoaWVyIGQnZXhlbXBsZSAidmltcmMiIDoKKyAgICAgICAgOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KIAotICAzLiBFbnJlZ2lzdHJleiBsZSBmaWNoaWVyIGF2ZWM6Ci0JOndyaXRlCisgIDMuIEVucmVnaXN0cmV6IGxlIGZpY2hpZXIgYXZlYyA6CisgICAgICAgIDp3CiAKLSAgTGEgcHJvY2hhaW5lIGZvaXMgcXVlIHZvdXMgZOltYXJyZXJleiBWaW0sIGxlIHN1cmxpZ25hZ2Ugc3ludGFjdGlxdWUgc2VyYQotICBhY3RpdukuIFZvdXMgcG91dmV6IGFqb3V0ZXIgdG91cyB2b3MgculnbGFnZXMgcHLpZuly6XMgZGFucyBjZSBmaWNoaWVyLgorICBMYSBwcm9jaGFpbmUgZm9pcyBxdWUgdm91cyBk6W1hcnJlcmV6IFZpbSwgbGEgY29sb3JhdGlvbiBzeW50YXhpcXVlIHNlcmEKKyAgYWN0aXbpZS4gVm91cyBwb3V2ZXogYWpvdXRlciB0b3VzIHZvcyBy6WdsYWdlcyBwculm6XLpcyBkYW5zIGNlIGZpY2hpZXIKKyAgInZpbXJjIi4gUG91ciBwbHVzIGQnaW5mb3JtYXRpb25zLCB0YXBleiAgOmhlbHAgdmltcmMtaW50cm8KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZedvbiA3LjMgOiBDT01QTMhURU1FTlQKKworCisgICAgICAgICAgKiogQ29tcGzodGVtZW50IGRlIGxpZ25lIGRlIGNvbW1hbmRlIGF2ZWMgQ1RSTC1EIGV0IDxUQUI+ICoqCisKKyAgMS4gTWV0dGV6IFZpbSBzb2l0IGVuIG1vZGUgbm9uIGNvbXBhdGlibGUgOiAgIHNldCBub2NwCisKKyAgMi4gUmVnYXJkZXogcXVlbHMgZmljaGllcnMgZXhpc3RlbnQgZGFucyBsZSBy6XBlcnRvaXJlIDogICFscyAgb3UgICFkaXIKKworICAzLiBUYXBleiBsZSBk6WJ1dCBkJ3VuZSBjb21tYW5kZSA6ICAgOmUKKworICA0LiBBcHB1eWV6ICBDVFJMLUQgIGV0IFZpbSBhZmZpY2hlcmEgdW5lIGxpc3RlIGRlIGNvbW1hbmRlcyBxdWkgY29tbWVuY2VudAorICAgICBwYXIgImUiLgorCisgIDUuIEFwcHV5ZXogIDxUQUI+ICBldCBWaW0gY29tcGzpdGVyYSBsZSBub20gZGUgbGEgY29tbWFuZGUgOiAgIjplZGl0IgorCisgIDYuIEFqb3V0ZXogbWFpbnRlbmFudCB1biBlc3BhY2UgZXQgbGUgZOlidXQgZCd1biBmaWNoaWVyIGV4aXN0YW50IDoKKyAgICAgOmVkaXQgIEZJQworCisgIDcgIEFwcHV5ZXogIDxUQUI+LiBWaW0gdmEgY29tcGzpdGVyIGxlIG5vbSAocydpbCBlc3QgdW5pcXVlKS4KKworTk9URSA6IExlIGNvbXBs6HRlbWVudCBmb25jdGlvbm5lIHBvdXIgZGUgbm9tYnJldXNlIGNvbW1hbmRlcy4gRXNzYXllegorICAgICAgIGQnYXBwdXllciBDVFJMLUQgZXQgPFRBQj4uIEMnZXN0IHV0aWxlIGVuIHBhcnRpY3VsaWVyIHBvdXIgIDpoZWxwIC4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLJU1VNySBERSBMQSBMRcdPTiA3CisKKworICAxLiBUYXBleiAgOmhlbHAgIG91IGFwcHV5ZXogPEYxPiBvdSA8QWlkZT4gcG91ciBvdXZyaXIgbGEgZmVu6nRyZSBkJ2FpZGUuCisKKyAgMi4gVGFwZXogIDpoZWxwIGNtZCAgcG91ciB0cm91dmVyIGwnYWlkZSBzdXIgIGNtZCAuCisKKyAgMy4gVGFwZXogIENUUkwtVyBDVFJMLVcgIHBvdXIgc2F1dGVyIOAgdW5lIGF1dHJlIGZlbup0cmUuCisKKyAgNC4gVGFwZXogIDpxICBwb3VyIGZlcm1lciBsYSBmZW7qdHJlIGQnYWlkZS4KKworICA1LiBDculleiB1biBzY3JpcHQgZGUgZOltYXJyYWdlIHZpbXJjIHBvdXIgY29uc2VydmVyIHZvcyBy6WdsYWdlcyBwculm6XLpcy4KKworICA2LiBRdWFuZCB2b3VzIHRhcGV6IHVuZSBjb21tYW5kZSAgOiAgYXBwdXlleiBDVFJMLUQgcG91ciB2b2lyIGxlcworICAgICBjb21wbOh0ZW1lbnRzIHBvc3NpYmxlcy4gQXBwdXlleiA8VEFCPiBwb3VyIHV0aWxpc2VyIHVuIGNvbXBs6HRlbWVudC4KIAogCiB+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+fn4KIAotICBDZWNpIGNvbmNsdXQgbGUgVHV0b3JpZWwgVmltLiAgTGUgYnV0IOl0YWl0IGRlIHZvdXMgZG9ubmVyIHVuIGJyZWYgYXBlcud1IGRlCisgIENlY2kgY29uY2x1dCBsZSBUdXRvcmllbCBWaW0uIExlIGJ1dCDpdGFpdCBkZSB2b3VzIGRvbm5lciB1biBicmVmIGFwZXLndSBkZQogICBsJ+lkaXRldXIgVmltLCBqdXN0ZSBhc3NleiBwb3VyIHZvdXMgcGVybWV0dHJlIGQndXRpbGlzZXIgbCfpZGl0ZXVyCi0gIHJlbGF0aXZlbWVudCBmYWNpbGVtZW50LiAgSWwgZXN0IGxvaW4gZCfqdHJlIGNvbXBsZXQsIHZ1IHF1ZSBWaW0gYSBiZWF1Y291cAotICBiZWF1Y291cCBwbHVzIGRlIGNvbW1hbmRlcy4gIFVuIE1hbnVlbCBkZSBsJ3V0aWxpc2F0ZXVyIGVzdCBkaXNwb25pYmxlIGVuCi0gIGFuZ2xhaXM6ICA6aGVscCB1c2VyLW1hbnVhbCAuCisgIHJlbGF0aXZlbWVudCBmYWNpbGVtZW50LiBJbCBlc3QgbG9pbiBkJ+p0cmUgY29tcGxldCwgdnUgcXVlIFZpbSBhIGJlYXVjb3VwCisgIGJlYXVjb3VwIHBsdXMgZGUgY29tbWFuZGVzLiBVbiBNYW51ZWwgZGUgbCd1dGlsaXNhdGV1ciBlc3QgZGlzcG9uaWJsZSBlbgorICBhbmdsYWlzIDogIDpoZWxwIHVzZXItbWFudWFsIC4KIAogICBQb3VyIGNvbnRpbnVlciDgIGTpY291dnJpciBldCDgIGFwcHJlbmRyZSBWaW0sIGlsIGV4aXN0ZSB1biBsaXZyZSB0cmFkdWl0IGVuCiAgIGZyYW7nYWlzLiBJbCBwYXJsZSBwbHVzIGRlIFZpIHF1ZSBkZSBWaW0sIG1haXMgcG91cnJhIHZvdXMg6nRyZSB1dGlsZS4KLQlMJ+lkaXRldXIgVmkgLSBDb2xsZWN0aW9uIFBy6WNpcyBldCBjb25jaXMgLSBwYXIgQXJub2xkIFJvYmJpbnMKLQnJZGl0ZXVyOiBPJ1JlaWxseSBGcmFuY2UKLQlJU0JOOiAyLTg0MTc3LTEwMi00CisgICAgICAgIEwn6WRpdGV1ciBWaSAtIENvbGxlY3Rpb24gUHLpY2lzIGV0IGNvbmNpcyAtIHBhciBBcm5vbGQgUm9iYmlucworICAgICAgICDJZGl0ZXVyIDogTydSZWlsbHkgRnJhbmNlCisgICAgICAgIElTQk4gOiAyLTg0MTc3LTEwMi00CiAKICAgRGV1eCBsaXZyZXMgZW4gYW5nbGFpcyBzb250IOlnYWxlbWVudCBtZW50aW9ubulzIGRhbnMgbGEgdmVyc2lvbiBvcmlnaW5hbGUKICAgZGUgY2UgdHV0b3JpZWwsIGRvbnQgdW4gcXVpIHRyYWl0ZSBzcOljaWZpcXVlbWVudCBkZSBWaW0uIE1lcmNpIGRlIHZvdXMgeQotICBy6WbpcmVyIHNpIHZvdXMg6nRlcyBpbnTpcmVzc+kuCisgIHLpZulyZXIgc2kgdm91cyDqdGVzIGludOlyZXNz6XMuCiAKICAgQ2UgdHV0b3JpZWwgYSDpdOkg6WNyaXQgcGFyIE1pY2hhZWwgQy4gUGllcmNlIGV0IFJvYmVydCBLLiBXYXJlIGRlIGwnyWNvbGUKICAgZGVzIE1pbmVzIGR1IENvbG9yYWRvIGV0IHJlcHJlbmQgZGVzIGlk6WVzIGZvdXJuaWVzIHBhciBDaGFybGVzIFNtaXRoLAotICBVbml2ZXJzdOkgZCfJdGF0IGR1IENvbG9yYWRvLiAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCisgIFVuaXZlcnNpdOkgZCfJdGF0IGR1IENvbG9yYWRvLiBFLW1haWwgOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCiAKICAgTW9kaWZp6SBwb3VyIFZpbSBwYXIgQnJhbSBNb29sZW5hci4KLQogICBUcmFkdWl0IGVuIEZyYW7nYWlzIHBhciBBZHJpZW4gQmVhdSwgZW4gYXZyaWwgMjAwMS4KLSAgRS1tYWlsOgl2ZXJzaW9uLmZyYW5jYWlzZUBmcmVlLmZyCi0gIExhc3QgQ2hhbmdlOgkyMDAzIE1heSAyOQorICBEZXJuaehyZXMgbWlzZXMg4CBqb3VyIHBhciBEb21pbmlxdWUgUGVsbOkuCisKKyAgRS1tYWlsIDogICAgICBkb21pbmlxdWUucGVsbGVAZ21haWwuY29tCisgIExhc3QgQ2hhbmdlIDogMjAwOCBOb3YgMjMKIH5+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+fgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5mci51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIudXRmLTgKaW5kZXggNWFiMTRjZC4uMWIwMTUxMCAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5mci51dGYtOAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmZyLnV0Zi04CkBAIC0xLDUgKzEsNSBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotPSBCIGkgZSBuIHYgZSBuIHUgZSAgZGFucyBsZSAgVCB1IHQgbyByIGkgZSBsICBkZSAgViBJIE0gIC0gIFZlcnNpb24gMS41LmZyLjIgPQorPSBCIGkgZSBuIHYgZSBuIHUgZSAgZGFucyBsZSAgVCB1IHQgbyByIGkgZSBsICBkZSAgViBJIE0gIC0gIFZlcnNpb24gMS43LmZyLjEgPQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAgICAgIFZpbSBlc3QgdW4gw6lkaXRldXIgdHLDqHMgcHVpc3NhbnQgcXVpIGEgdHJvcCBkZSBjb21tYW5kZXMgcG91ciBwb3V2b2lyCkBAIC03LDkzICs3LDEwMCBAQAogICAgICBkw6ljcmlyZSBzdWZmaXNhbW1lbnQgYWZpbiBkZSB2b3VzIHBlcm1ldHRyZSBkJ3V0aWxpc2VyIHNpbXBsZW1lbnQgVmltLgogCiAgICAgIExlIHRlbXBzIHJlcXVpcyBwb3VyIHN1aXZyZSBjZSBjb3VycyBlc3QgZCdlbnZpcm9uIDI1IMOgIDMwIG1pbnV0ZXMsIHNlbG9uCi0gICAgIGxlIHRlbXBzIHF1ZSB2b3VzIHBhc3NlcmV6IMOgIGV4cMOpcmltZW50ZXIuICBMZXMgY29tbWFuZGVzIHV0aWxpc8OpZXMgZGFucwotICAgICBsZXMgbGXDp29ucyBtb2RpZmllcm9udCBsZSB0ZXh0ZS4gRmFpdGVzIHVuZSBjb3BpZSBkZSBjZSBmaWNoaWVyIGFmaW4gZGUKLSAgICAgdm91cyBlbnRyYcOubmVyIGRlc3N1cyAoc2kgdm91cyBhdmV6IGxhbmPDqSAidmltdHV0b3IiIGNlY2kgZXN0IGTDqWrDoCB1bmUKLSAgICAgY29waWUpLgorICAgICBsZSB0ZW1wcyBxdWUgdm91cyBwYXNzZXJleiDDoCBleHDDqXJpbWVudGVyLgorCisgICAgIEFUVEVOVElPTiA6CisgICAgIExlcyBjb21tYW5kZXMgdXRpbGlzw6llcyBkYW5zIGxlcyBsZcOnb25zIG1vZGlmaWVyb250IGxlIHRleHRlLiBGYWl0ZXMgdW5lCisgICAgIGNvcGllIGRlIGNlIGZpY2hpZXIgYWZpbiBkZSB2b3VzIGVudHJhw65uZXIgZGVzc3VzIChzaSB2b3VzIGF2ZXogbGFuY8OpCisgICAgICJ2aW10dXRvciIgY2VjaSBlc3QgZMOpasOgIHVuZSBjb3BpZSkuCiAKICAgICAgSWwgZXN0IGltcG9ydGFudCBkZSBnYXJkZXIgZW4gdMOqdGUgcXVlIGNlIGNvdXJzIGVzdCBjb27Dp3UgcG91ciBhcHByZW5kcmUKLSAgICAgcGFyIGxhIHByYXRpcXVlLiAgQ2VsYSBzaWduaWZpZSBxdWUgdm91cyBkZXZleiBleMOpY3V0ZXIgbGVzIGNvbW1hbmRlcwotICAgICBwb3VyIGxlcyBhcHByZW5kcmUgY29ycmVjdGVtZW50LiAgU2kgdm91cyB2b3VzIGNvbnRlbnRleiBkZSBsaXJlIGxlCi0gICAgIHRleHRlLCB2b3VzIG91YmxpZXJleiBsZXMgY29tbWFuZGVzICEKKyAgICAgcGFyIGxhIHByYXRpcXVlLiBDZWxhIHNpZ25pZmllIHF1ZSB2b3VzIGRldmV6IGV4w6ljdXRlciBsZXMgY29tbWFuZGVzCisgICAgIHBvdXIgbGVzIGFwcHJlbmRyZSBjb3JyZWN0ZW1lbnQuIFNpIHZvdXMgdm91cyBjb250ZW50ZXogZGUgbGlyZSBsZSB0ZXh0ZSwKKyAgICAgdm91cyBvdWJsaWVyZXogbGVzIGNvbW1hbmRlcyAhCiAKLSAgICAgTWFpbnRlbmFudCwgdsOpcmlmaWV6IHF1ZSB2b3RyZSBjbGF2aWVyIG4nZXN0IFBBUyB2ZXJvdWlsbMOpIGVuIG1hanVzY3VsZXMsCi0gICAgIGV0IGFwcHV5ZXogbGEgdG91Y2hlICBqICBsZSBub21icmUgZGUgZm9pcyBzdWZmaXNhbnQgcG91ciBxdWUgbGEgbGXDp29uCi0gICAgIDEuMSByZW1wbGlzc2UgY29tcGzDqHRlbWVudCBsJ8OpY3Jhbi4KKyAgICAgTWFpbnRlbmFudCwgdsOpcmlmaWV6IHF1ZSB2b3RyZSBjbGF2aWVyIG4nZXN0IFBBUyB2ZXJyb3VpbGzDqSBlbgorICAgICBtYWp1c2N1bGVzLCBldCBhcHB1eWV6IGxhIHRvdWNoZSAgaiAgbGUgbm9tYnJlIGRlIGZvaXMgc3VmZmlzYW50IHBvdXIKKyAgICAgcXVlIGxhIExlw6dvbiAxLjEgcmVtcGxpc3NlIGNvbXBsw6h0ZW1lbnQgbCfDqWNyYW4uCisKKwogfn5+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+Ci0JCSAgICAgIExlw6dvbiAxLjEgOiBEw4lQTEFDRU1FTlQgRFUgQ1VSU0VVUgorICAgICAgICAgICAgICAgICAgICAgIExlw6dvbiAxLjEgOiBEw4lQTEFDRU1FTlQgRFUgQ1VSU0VVUgogCiAKICAgKiogUG91ciBkw6lwbGFjZXIgbGUgY3Vyc2V1ciwgYXBwdXlleiBsZXMgdG91Y2hlcyBoLGosayxsIGNvbW1lIGluZGlxdcOpLiAqKgotCSAgICBeCi0JICAgIGsJICAgICBBc3R1Y2U6ICBMYSB0b3VjaGUgaCBlc3Qgw6AgZ2F1Y2hlIGV0IGTDqXBsYWNlIMOgIGdhdWNoZS4KLSAgICAgIDwgaCAgICAgIGwgPgkgICAgICBMYSB0b3VjaGUgbCBlc3Qgw6AgZHJvaXRlIGV0IGTDqXBsYWNlIMOgIGRyb2l0ZS4KLQkgICBqCQkgICAgICBMYSB0b3VjaGUgaiByZXNzZW1ibGUgw6AgdW5lIGZsw6hjaGUgdmVycyBsZSBiYXMuCi0JICAgdgorICAgICAgICAgIF4KKyAgICAgICAgICBrICAgICAgICBBc3R1Y2UgOiAgTGEgdG91Y2hlIGggZXN0IMOgIGdhdWNoZSBldCBkw6lwbGFjZSDDoCBnYXVjaGUuCisgICAgPCBoICAgICAgIGwgPiAgICAgICAgICAgIExhIHRvdWNoZSBsIGVzdCDDoCBkcm9pdGUgZXQgZMOpcGxhY2Ugw6AgZHJvaXRlLgorICAgICAgICAgIGogICAgICAgICAgICAgICAgICBMYSB0b3VjaGUgaiByZXNzZW1ibGUgw6AgdW5lIGZsw6hjaGUgdmVycyBsZSBiYXMuCisgICAgICAgICAgdgogICAxLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbCfDqWNyYW4ganVzcXUnw6Agdm91cyBzZW50aXIgw6AgbCdhaXNlLgogCiAgIDIuIE1haW50ZW5leiBsYSB0b3VjaGUgQmFzIChqKSBlbmZvbmPDqWUganVzcXUnw6AgY2UgcXUnZWxsZSBzZSByw6lww6h0ZS4KLS0tLT4gTWFpbnRlbmFudCB2b3VzIMOqdGVzIGNhcGFibGUgZGUgdm91cyBkw6lwbGFjZXIganVzcXUnw6AgbGEgbGXDp29uIHN1aXZhbnRlLgorICAgICBNYWludGVuYW50IHZvdXMgw6p0ZXMgY2FwYWJsZSBkZSB2b3VzIGTDqXBsYWNlciBqdXNxdSfDoCBsYSBsZcOnb24gc3VpdmFudGUuCiAKICAgMy4gRW4gdXRpbGlzYW50IGxhIHRvdWNoZSBCYXMsIGFsbGV6IMOgIGxhIExlw6dvbiAxLjIuCiAKLU5vdGU6IFNpIGphbWFpcyB2b3VzIGRvdXRleiBkZSBjZSBxdWUgdm91cyB2ZW5leiBkZSB0YXBlciwgYXBwdXlleiA8w4ljaGFwPgotICAgICAgcG91ciByZXZlbmlyIGVuIG1vZGUgTm9ybWFsLiBQdWlzIHJldGFwZXogbGEgY29tbWFuZGUgcXVlIHZvdXMgdm91bGllei4KK05PVEUgOiBTaSBqYW1haXMgdm91cyBkb3V0ZXogZGUgY2UgcXVlIHZvdXMgdmVuZXogZGUgdGFwZXIsIGFwcHV5ZXogPMOJY2hhcD4KKyAgICAgICBwb3VyIHJldmVuaXIgZW4gbW9kZSBOb3JtYWwuIFB1aXMgcmV0YXBleiBsYSBjb21tYW5kZSBxdWUgdm91cyB2b3VsaWV6LgogCi1Ob3RlOiBMZXMgdG91Y2hlcyBmbMOpY2jDqWVzIGRldnJhaWVudCDDqWdhbGVtZW50IGZvbmN0aW9ubmVyLiBNYWlzIGVuIHV0aWxpc2FudAotICAgICAgaGprbCB2b3VzIHBvdXJyZXogdm91cyBkw6lwbGFjZXIgYmVhdWNvdXAgcGx1cyByYXBpZGVtZW50LCB1bmUgZm9pcyBxdWUKLSAgICAgIHZvdXMgYXVyZXogcHJpcyBsJ2hhYml0dWRlLgorTk9URSA6IExlcyB0b3VjaGVzIGZsw6ljaMOpZXMgZGV2cmFpZW50IMOpZ2FsZW1lbnQgZm9uY3Rpb25uZXIuIE1haXMgZW4gdXRpbGlzYW50CisgICAgICAgaGprbCB2b3VzIHBvdXJyZXogdm91cyBkw6lwbGFjZXIgYmVhdWNvdXAgcGx1cyByYXBpZGVtZW50LCB1bmUgZm9pcyBxdWUKKyAgICAgICB2b3VzIGF1cmV6IHByaXMgbCdoYWJpdHVkZS4KKworCiB+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+fn4KLQkJICAgICBMZcOnb24gMS4yIDogRU5UUsOJRSBFVCBTT1JUSUUgREUgVklNCisgICAgICAgICAgICAgICAgICAgICBMZcOnb24gMS4yIDogU09SVElSIERFIFZJTQogCiAKLSAhISBOT1RFOiBBdmFudCBkJ2VmZmVjdHVlciBsZXMgw6l0YXBlcyBjaS1kZXNzb3VzLCBsaXNleiB0b3V0ZSBjZXR0ZSBsZcOnb24gISEKKyAhISBOT1RFIDogQXZhbnQgZCdlZmZlY3R1ZXIgbGVzIMOpdGFwZXMgY2ktZGVzc291cywgbGlzZXogdG91dGUgY2V0dGUgbGXDp29uICEhCiAKLSAgMS4gQXBwdXlleiBsYSB0b3VjaGUJPMOJY2hhcD4gIChwb3VyIMOqdHJlIHPDu3IgZCfDqnRyZSBlbiBtb2RlIE5vcm1hbCkuCisgIDEuIEFwcHV5ZXogbGEgdG91Y2hlICA8w4ljaGFwPiAgKHBvdXIgw6p0cmUgc8O7ciBkJ8OqdHJlIGVuIG1vZGUgTm9ybWFsKS4KIAotICAyLiBUYXBlejoJCQk6cSEgPEVudHLDqWU+CisgIDIuIFRhcGV6IDogIDpxISA8RW50csOpZT4KKyAgICAgQ2VjaSBxdWl0dGUgbCfDqWRpdGV1ciBTQU5TIGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBxdWUgdm91cyBhdmV6CisgICAgIGZhaXRzLgogCi0tLS0+IENlY2kgcXVpdHRlIGwnw6lkaXRldXIgU0FOUyBzYXV2ZXIgbGVzIGNoYW5nZW1lbnRzIHF1ZSB2b3VzIGF2ZXogZmFpdHMuCi0gICAgIFNpIHZvdXMgdm91bGV6IGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBldCBzb3J0aXIsIHRhcGV6OgotCQkJCTp3cSA8RW50csOpZT4KLQotICAzLiBMb3JzcXVlIGwnaW52aXRlIGR1ICdzaGVsbCcgdm91cyBzZXJhIHByw6lzZW50w6llLCB0YXBleiBsYSBjb21tYW5kZSBxdWkKLSAgICAgdm91cyBhIGFtZW7DqSBkYW5zIGNlIHR1dG9yaWVsLiAgQ2VsYSBwb3VycmFpdCDDqnRyZTogICAgdmltdHV0b3IgPEVudHLDqWU+Ci0gICAgIE5vcm1hbGVtZW50LCB2b3VzIHV0aWxpc2VyaWV6OgkJCSAgICB2aW0gdHV0b3IgPEVudHLDqWU+Ci0KLS0tLT4gJ3ZpbScgbGFuY2UgbCfDqWRpdGV1ciwgJ3R1dG9yJyBlc3QgbGUgZmljaGllciBxdWUgdm91cyBzb3VoYWl0ZXogw6lkaXRlci4KKyAgMy4gTG9yc3F1ZSBsJ2ludml0ZSBkdSBzaGVsbCB2b3VzIHNlcmEgcHLDqXNlbnTDqWUsIHRhcGV6IGxhIGNvbW1hbmRlIHF1aQorICAgICB2b3VzIGEgbWVuw6kgZGFucyBjZSB0dXRvcmllbC4gQ2VsYSBwb3VycmFpdCDDqnRyZSA6ICAgIHZpbXR1dG9yIDxFbnRyw6llPgogCiAgIDQuIFNpIHZvdXMgYXZleiBtw6ltb3Jpc8OpIGNlcyDDqXRhcGVzIGV0IMOqdGVzIGNvbmZpYW50LCBlZmZlY3R1ZXogbGVzIMOpdGFwZXMKLSAgICAgMSDDoCAzIHBvdXIgc29ydGlyIHB1aXMgcmVudHJlciBkYW5zIGwnw6lkaXRldXIuICBEw6lwbGFjZXogZW5zdWl0ZSBsZQotICAgICAgY3Vyc2V1ciBqdXNxdSfDoCBsYSBMZcOnb24gMS4zLgorICAgICAxIMOgIDMgcG91ciBzb3J0aXIgcHVpcyByZW50cmVyIGRhbnMgbCfDqWRpdGV1ci4KKworTk9URSA6ICA6cSEgPEVudHLDqWU+IGFubnVsZSB0b3VzIGxlIGNoYW5nZW1lbnRzIHF1ZSB2b3VzIGF2ZXogZmFpdC4gRGFucworICAgICAgICAgcXVlbHF1ZXMgbGXDp29ucywgdm91cyBhcHByZW5kcmV6IMOgIGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cy4KKworICA1LiBEw6lwbGFjZXogbGUgY3Vyc2V1ciDDoCBsYSBMZcOnb24gMS4zLgorCisKIH5+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+fgotCQkgIExlw6dvbiAxLjMgOiDDiURJVElPTiBERSBURVhURSAtIEVGRkFDRU1FTlQKKyAgICAgICAgICAgICAgICAgIExlw6dvbiAxLjMgOiDDiURJVElPTiBERSBURVhURSAtIEVGRkFDRU1FTlQKIAogCi0gKiogRW4gbW9kZSBOb3JtYWwsIGFwcHV5ZXogIHgJcG91ciBlZmZhY2VyIGxlIGNhcmFjdMOocmUgc291cyBsZSBjdXJzZXVyLiAqKgorICAgICAgICAgKiogQXBwdXlleiAgIHggICBwb3VyIGVmZmFjZXIgbGUgY2FyYWN0w6hyZSBzb3VzIGxlIGN1cnNldXIuICoqCiAKICAgMS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIG1hcnF1w6llIC0tLT4gY2ktZGVzc291cy4KIAogICAyLiBQb3VyIGNvcnJpZ2VyIGxlcyBlcnJldXJzLCBkw6lwbGFjZXogbGUgY3Vyc2V1ciBqdXNxdSfDoCBjZSBxdSdpbCBzb2l0CiAgICAgIHN1ciB1biBjYXJhY3TDqHJlIMOgIGVmZmFjZXIuCiAKLSAgMy4gQXBwdXlleiBsYSB0b3VjaGUJeCAgcG91ciBlZmZhY2VyIGxlIGNhcmFjdMOocmUgcmVkb25kYW50LgorICAzLiBBcHB1eWV6IGxhIHRvdWNoZSAgeCAgcG91ciBlZmZhY2VyIGxlIGNhcmFjdMOocmUgcmVkb25kYW50LgogCiAgIDQuIFLDqXDDqXRleiBsZXMgw6l0YXBlcyAyIMOgIDQganVzcXUnw6AgY2UgcXVlIGxhIHBocmFzZSBzb2l0IGNvcnJlY3RlLgogCiAtLS0+IExhIHZ2YWNoZSDDoCBzYXV0w6nDqSBhdS1kZGVzc3VzIGRkZSBsYSBsdXVuZS4KIAotICA1LiBNYWludGVuYW50IHF1ZSBsYSBsaWduZSBlc3QgY29ycmVjdGUsIHBhc3NleiDDoCBsYSBsZcOnb24gMS40LgorICA1LiBNYWludGVuYW50IHF1ZSBsYSBsaWduZSBlc3QgY29ycmVjdGUsIHBhc3NleiDDoCBsYSBMZcOnb24gMS40LgogCi1OT1RFOiBFbiBhdmFuw6dhbnQgZGFucyBjZSBjb3Vycywgbidlc3NheWV6IHBhcyBkZSBtw6ltb3Jpc2VyLCBhcHByZW5leiBwYXIKLSAgICAgIGxhIHByYXRpcXVlLgorTk9URSA6IEVuIGF2YW7Dp2FudCBkYW5zIGNlIGNvdXJzLCBuJ2Vzc2F5ZXogcGFzIGRlIG3DqW1vcmlzZXIsIGFwcHJlbmV6IHBhcgorICAgICAgIGxhIHByYXRpcXVlLgogCiAKIH5+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+fgotCQkgICBMZcOnb24gMS40IDogw4lESVRJT04gREUgVEVYVEUgLSBJTlNFUlRJT04KKyAgICAgICAgICAgICAgICAgICAgTGXDp29uIDEuNCA6IMOJRElUSU9OIERFIFRFWFRFIC0gSU5TRVJUSU9OCiAKIAotCSAgICoqIEVuIG1vZGUgTm9ybWFsLCBhcHB1eWV6ICBpICBwb3VyIGluc8OpcmVyIGR1IHRleHRlLiAqKgorICAgICAgICAgICAgICAgICAgICAqKiBBcHB1eWV6ICBpICBwb3VyIGluc8OpcmVyIGR1IHRleHRlLiAqKgogCiAgIDEuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtacOocmUgbGlnbmUgbWFycXXDqWUgLS0tPiBjaS1kZXNzb3VzLgogCkBAIC0xMDgsMzggKzExNSw5NCBAQAogLS0tPiBJbCBtbnFlIGNhcmFjdMOocmVzIGNldHRlIC4KIC0tLT4gSWwgbWFucXVlIGRlcyBjYXJhY3TDqHJlcyBkYW5zIGNldHRlIGxpZ25lLgogCi0gIDUuIFVuZSBmb2lzIHF1ZSB2b3VzIMOqdGVzIMOgIGwnYWlzZSBhdmVjIGwnaW5zZXJ0aW9uIGRlIHRleHRlLCBhbGxleiBhdQotICAgICByw6lzdW3DqSBjaS1kZXNzb3VzLgorICA1LiBVbmUgZm9pcyBxdWUgdm91cyDDqnRlcyDDoCBsJ2Fpc2UgYXZlYyBsJ2luc2VydGlvbiBkZSB0ZXh0ZSwgYWxsZXogw6AgbGEKKyAgICAgTGXDp29uIDEuNS4KIAogCiB+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+fn4KLQkJCSAgICAgUsOJU1VNw4kgREUgTEEgTEXDh09OIDEKKyAgICAgICAgICAgICAgICAgICAgIExlw6dvbiAxLjUgOiDDiURJVElPTiBERSBURVhURSAtIEFKT1VURVIKKworCisgICAgICAgICAgICAgICAgICAgICoqIEFwcHV5ZXogIEEgIHBvdXIgYWpvdXRlciBkdSB0ZXh0LiAqKgorCisgIDEuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtacOocmUgbGlnbmUgY2ktZGVzc291cyBtYXJxdcOpZSAtLS0+LgorICAgICBQZXUgaW1wb3J0ZSBzdXIgcXVlbCBjYXJhY3TDqHJlIHNlIHRyb3V2ZSBsZSBjdXJzZXVyIHN1ciBjZXR0ZSBsaWduZS4KKworICAyLiBBcHB1eWV6ICBBICBldCB0YXBleiBsZXMgYWpvdXRzIG7DqWNlc3NhaXJlcy4KKworICAzLiBRdWFuZCBsZSB0ZXh0ZSBhIMOpdMOpIGFqb3V0w6ksIGFwcHV5ZXogPMOJY2hhcD4gcG91ciByZXZlbmlyIGVuIG1vZGUKKyAgICAgTm9ybWFsLgorCisgIDQuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBzZWNvbmRlIGxpZ25lIG1hcnF1w6llIC0tLT4gZXQgcsOpcMOpdGV6IGxlcworICAgICDDqXRhcGVzIDIgZXQgMyBwb3VyIGNvcnJpZ2VyIGxhIHBocmFzZS4KKworLS0tPiBJbCBtYW5xdWUgZHUgdGV4dGUgw6AgcGFydGlyIGRlIGNldAorICAgICBJbCBtYW5xdWUgZHUgdGV4dGUgw6AgcGFydGlyIGRlIGNldHRlIGxpZ25lLgorLS0tPiBJbCBtYW5xdWUgYXVzc2kgZHUgdGUKKyAgICAgSWwgbWFucXVlIGF1c3NpIGR1IHRleHRlIGljaS4KKworICA1LiBRdWFuZCB2b3VzIHZvdXMgc2VudGV6IHN1ZmZpc2FtbWVudCDDoCBsJ2Fpc2UgcG91ciBham91dGVyIGR1IHRleHRlLAorICAgICBhbGxleiDDoCBsYSBMZcOnb24gMS42LgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIExlw6dvbiAxLjYgOiDDiURJVEVSIFVOIEZJQ0hJRVIKKworCisgICAgICAgICAgKiogVXRpbGlzZXogIDp3cSAgcG91ciBlbnJlZ2lzdHJlciB1biBmaWNoaWVyIGV0IHNvcnRpci4gKioKKworISEgTk9URSA6IExpc2V6IHRvdXRlIGxhIGxlw6dvbiBhdmFudCBkJ2V4w6ljdXRlciBsZXMgaW5zdHJ1Y3Rpb25zIGNpLWRlc3NvdXMgISEKKworICAxLiBTb3J0ZXogZGUgY2UgdHV0b3JpZWwgY29tbWUgdm91cyBsJ2F2ZXogZmFpdCBkYW5zIGxhIExlw6dvbiAxLjIgOiAgOnEhCisgICAgIE91LCBzaSB2b3VzIGF2ZXogYWNjw6hzIMOgIHVuIGF1dHJlIHRlcm1pbmFsLCBleMOpY3V0ZXogeSBsZXMgYWN0aW9ucworICAgICBxdWkgc3VpdmVudC4KKworICAyLiDDgCBsJ2ludml0ZSBkdSBzaGVsbCwgdGFwZXogY2V0dGUgY29tbWFuZGUgOiAgdmltIHR1dG9yIDxFbnRyw6llPgorICAgICAndmltJyBlc3QgbGEgY29tbWFuZGUgcG91ciBkw6ltYXJyZXIgbCfDqWRpdGV1ciBWaW0sICd0dXRvcicgZXN0IGxlCisgICAgIG5vbSBkdSBmaWNoaWVyIHF1ZSB2b3VzIHNvdWhhaXRleiDDqWRpdGVyLiBVdGlsaXNleiB1biBmaWNoaWVyIHF1aSBwZXV0CisgICAgIMOqdHJlIG1vZGlmacOpLgorCisgIDMuIEluc8OpcmV6IGV0IGVmZmFjZXogZHUgdGV4dGUgY29tbWUgdm91cyBsJ2F2ZXogYXBwcmlzIGRhbnMgbGVzIGxlw6dvbnMKKyAgICAgcHLDqWPDqWRlbnRlcy4KKworICA0LiBFbnJlZ2lzdHJleiBsZSBmaWNoaWVyIGF2ZWMgbGVzIGNoYW5nZW1lbnRzIGV0IHNvcnRleiBkZSBWaW0gYXZlYyA6CisgICAgICAgOndxIDxFbnRyw6llPgorCisgIDUuIFNpIHZvdXMgYXZleiBxdWl0dMOpIHZpbXR1dG9yIMOgIGwnw6l0YXBlIDEsIHJlY29tbWVuY2V6IHZpbXR1dG9yIGV0CisgICAgIGTDqXBsYWNlei12b3VzIGVuIGJhcyB2ZXJzIGxlIHLDqXN1bcOpIHN1aXZhbnQuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiAxCisKIAogICAxLiBMZSBjdXJzZXVyIHNlIGTDqXBsYWNlIGF2ZWMgbGVzIHRvdWNoZXMgZmzDqWNow6llcyBvdSBsZXMgdG91Y2hlcyBoamtsLgotCSBoIChnYXVjaGUpCWogKGJhcykgICAgICAgIGsgKGhhdXQpICAgICAgIGwgKGRyb2l0ZSkKKyAgICAgICAgICAgaCAoZ2F1Y2hlKSAgICAgIGogKGJhcykgICAgICBrIChoYXV0KSAgICAgIGwgKGRyb2l0ZSkKIAotICAyLiBQb3VyIGVudHJlciBkYW5zIFZpbSAow6AgbCdpbnZpdGUgJSkgdGFwZXo6ICB2aW0gRklDSElFUiA8RW50csOpZT4KKyAgMi4gUG91ciBkw6ltYXJyZXIgVmltIMOgIGwnaW52aXRlIGR1IHNoZWxsIHRhcGV6IDogIHZpbSBGSUNISUVSIDxFbnRyw6llPgogCi0gIDMuIFBvdXIgcXVpdHRlciBWaW0gdGFwZXo6ICA8w4ljaGFwPiA6cSEgPEVudHLDqWU+ICBwb3VyIHBlcmRyZSB0b3VzIGxlcwotCQkJCQkJICAgIGNoYW5nZW1lbnRzLgotCQkgICBPVSB0YXBlejogIDzDiWNoYXA+IDp3cSA8RW50csOpZT4gIHBvdXIgZW5yZWdpc3RyZXIgbGVzCi0JCQkJCQkgICAgY2hhbmdlbWVudHMuCisgIDMuIFBvdXIgcXVpdHRlciBWaW0gdGFwZXogOiAgPMOJY2hhcD4gOnEhIDxFbnRyw6llPiAgcG91ciBwZXJkcmUgdG91cyBsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlbWVudHMuCisgICAgICAgICAgICAgICAgICAgT1UgdGFwZXogOiAgPMOJY2hhcD4gOndxIDxFbnRyw6llPiAgcG91ciBlbnJlZ2lzdHJlciBsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlbWVudHMuCiAKLSAgNC4gUG91ciBlZmZhY2VyIHVuIGNhcmFjdMOocmUgc291cyBsZSBjdXJzZXVyIGVuIG1vZGUgTm9ybWFsIHRhcGV6OiAgeAorICA0LiBQb3VyIGVmZmFjZXIgdW4gY2FyYWN0w6hyZSBzb3VzIGxlIGN1cnNldXIgdGFwZXogOiAgeAogCi0gIDUuIFBvdXIgaW5zw6lyZXIgZHUgdGV4dGUgYXUgbml2ZWF1IGR1IGN1cnNldXIgZW4gbW9kZSBOb3JtYWwgdGFwZXo6Ci0JIGkgICB0YXBleiBsZSB0ZXh0ZSAgIDzDiWNoYXA+CisgIDUuIFBvdXIgaW5zw6lyZXIgb3UgYWpvdXRlciBkdSB0ZXh0ZSB0YXBleiA6CisgICAgICAgICBpICAgdGFwZXogbGUgdGV4dGUgw6AgaW5zw6lyZXIgYXZhbnQgbGUgY3Vyc2V1ciAgIDzDiWNoYXA+CisgICAgICAgICBBICAgdGFwZXogbGUgdGV4dGUgw6AgYWpvdXRlciBhcHLDqHMgbGUgY3Vyc2V1ciAgIDzDiWNoYXA+CiAKLU5PVEU6IEFwcHV5ZXIgIDzDiWNoYXA+CXZvdXMgcGxhY2UgZW4gbW9kZSBOb3JtYWwgb3UgYW5udWxlIHVuZSBjb21tYW5kZQotICAgICAgcGFydGllbGxlbWVudCB0YXDDqWUgZG9udCB2b3VzIG5lIHZvdWRyaWV6IHBsdXMuCitOT1RFIDogQXBwdXllciAgPMOJY2hhcD4gIHZvdXMgcGxhY2UgZW4gbW9kZSBOb3JtYWwgb3UgYW5udWxlIHVuZSBjb21tYW5kZQorICAgICAgIHBhcnRpZWxsZW1lbnQgdGFww6llIGRvbnQgdm91cyBuZSB2b3VsZXogcGx1cy4KIAotUGFzc2V6IG1haW50ZW5hbnQgw6AgbGEgTGXDp29uIDIuCitQYXNzZXogbWFpbnRlbmFudCDDoCBsYSBsZcOnb24gMi4KKwogCiB+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+fn4KLQkJCSAgIExlw6dvbiAyLjEgOiBFRkZBQ0VNRU5UUworICAgICAgICAgICAgICAgICAgICAgICBMZcOnb24gMi4xIDogQ09NTUFOREVTIEQnRUZGQUNFTUVOVAogCiAKLQkgICAgKiogVGFwZXogIGR3ICBwb3VyIGVmZmFjZXIganVzcXUnw6AgbGEgZmluIGQndW4gbW90LiAqKgorICAgICAgICAgICAgICAgICAgICAgKiogVGFwZXogIGR3ICBwb3VyIGVmZmFjZXIgdW4gbW90LiAqKgogCiAgIDEuIEFwcHV5ZXogIDzDiWNoYXA+ICBwb3VyIMOqdHJlIHPDu3IgZCfDqnRyZSBlbiBtb2RlIE5vcm1hbC4KIApAQCAtMTQ3LDkxICsyMTAsMTM5IEBACiAKICAgMy4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGxlIGTDqWJ1dCBkJ3VuIG1vdCBxdWkgYSBiZXNvaW4gZCfDqnRyZSBlZmZhY8OpLgogCi0gIDQuIFRhcGV6ICBkdwlwb3VyIGZhaXJlIGRpc3BhcmHDrnRyZSBjZSBtb3QuCisgIDQuIFRhcGV6ICBkdyAgcG91ciBmYWlyZSBkaXNwYXJhw650cmUgY2UgbW90LgogCi1OT1RFOiBMZXMgbGV0dHJlcyAgZHcgIGFwcGFyYcOudHJvbnQgc3VyIGxhIGRlcm5pw6hyZSBsaWduZSBkZSBsJ8OpY3JhbiBsb3JzIGRlCi0gICAgICB2b3RyZSBmcmFwcGUuIFNpIHZvdXMgYXZleiBtYWwgdGFww6kgcXVlbHF1ZSBjaG9zZSwgYXBwdXlleiA8w4ljaGFwPiBldAotICAgICAgcmVjb21tZW5jZXouCitOT1RFIDogTGEgbGV0dHJlICBkICBhcHBhcmHDrnRyYSBzdXIgbGEgZGVybmnDqHJlIGxpZ25lIGRlIGwnw6ljcmFuIGxvcnMgZGUKKyAgICAgICB2b3RyZSBmcmFwcGUuIFZpbSBhdHRlbmQgcXVlIHZvdXMgdGFwaWV6ICB3IC4gU2kgdm91cyB2b3lleiB1biBhdXRyZQorICAgICAgIGNhcmFjdMOocmUgcXVlICBkICB2b3VzIGF2ZXogdGFww6kgYXV0cmUgY2hvc2UgOyBhcHB1eWV6IDzDiWNoYXA+IGV0CisgICAgICAgcmVjb21tZW5jZXouCiAKIC0tLT4gSWwgeSBhIHF1ZWxxdWVzIGRyw7RsZSBtb3RzIHF1aSBuJ29udCByaWVuIMOgIGZhaXJlIHBhcGllciBzdXIgY2V0dGUgbGlnbmUuCiAKICAgNS4gUsOpcMOpdGV6IGxlcyDDqXRhcGVzIDMgZXQgNCBqdXNxdSfDoCBjZSBxdWUgbGEgcGhyYXNlIHNvaXQgY29ycmVjdGUgZXQgYWxsZXoKICAgICAgw6AgbGEgTGXDp29uIDIuMi4KIAorCiB+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+fn4KLQkJCUxlw6dvbiAyLjIgOiBQTFVTIEQnRUZGQUNFTUVOVFMKKyAgICAgICAgICAgICAgICAgIExlw6dvbiAyLjIgOiBQTFVTIERFIENPTU1BTkRFUyBEJ0VGRkFDRU1FTlRTCiAKIAotCSAgKiogVGFwZXogIGQkCXBvdXIgZWZmYWNlciBqdXNxdSfDoCBsYSBmaW4gZGUgbGEgbGlnbmUuICoqCisgICAgICAgICAgKiogVGFwZXogIGQkICBwb3VyIGVmZmFjZXIganVzcXUnw6AgbGEgZmluIGRlIGxhIGxpZ25lLiAqKgogCiAgIDEuIEFwcHV5ZXogIDzDiWNoYXA+ICBwb3VyIMOqdHJlIHPDu3IgZCfDqnRyZSBlbiBtb2RlIE5vcm1hbC4KIAogICAyLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgbWFycXXDqWUgLS0tPiBjaS1kZXNzb3VzLgogCi0gIDMuIETDqXBsYWNleiBsZSBjdXJzZXVyIGp1c3F1J8OgIGxhIGZpbiBjb3JyZWN0ZSBkZSBsYSBsaWduZQotICAgICAoQVBSw4hTIGxlIHByZW1pZXIgLiApLgorICAzLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBqdXNxdSfDoCBsYSBmaW4gZGUgbGEgbGlnbmUgY29ycmVjdGUgKEFQUsOIUyBsZQorICAgICBwcmVtaWVyIC4gKS4KIAotICA0LiBUYXBleiAgZCQJcG91ciBlZmZhY2VyIGp1c3F1J8OgIGxhIGZpbiBkZSBsYSBsaWduZS4KKyAgNC4gVGFwZXogIGQkICBwb3VyIGVmZmFjZXIganVzcXUnw6AgbGEgZmluIGRlIGxhIGxpZ25lLgogCiAtLS0+IFF1ZWxxdSd1biBhIHRhcMOpIGxhIGZpbiBkZSBjZXR0ZSBsaWduZSBkZXV4IGZvaXMuIGNldHRlIGxpZ25lIGRldXggZm9pcy4KIAogICA1LiBBbGxleiDDoCBsYSBMZcOnb24gMi4zIHBvdXIgY29tcHJlbmRyZSBjZSBxdWkgc2UgcGFzc2UuCiAKIAorfn5+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+CisgICAgICAgICAgICAgTGXDp29uIDIuMyA6IMOAIFBST1BPUyBERVMgT1DDiVJBVEVVUlMgRVQgREVTIE1PVVZFTUVOVFMKIAogCisgIFBsdXNpZXVycyBjb21tYW5kZXMgcXVpIGNoYW5nZW50IGxlIHRleHRlIHNvbnQgY29uc3RpdHXDqWVzIGQndW4gb3DDqXJhdGV1cgorICBldCBkJ3VuIG1vdXZlbWVudC4gTGUgZm9ybWF0IHBvdXIgdW5lIGNvbW1hbmRlIGQnZWZmYWNlbWVudCBhdmVjIGwnb3DDqXJhdGV1cgorICBkICBkJ2VmZmFjZW1lbnQgZXN0IGxlIHN1aXZhbnQgOgorCisgICAgICAgIGQgICBtb3V2ZW1lbnQKKworICBPw7kgOgorICAgIGQgICAgICAgICAtIGVzdCBsJ29ww6lyYXRldXIgZCdlZmZhY2VtZW50CisgICAgbW91dmVtZW50IC0gZXN0IGxlIG1vdXZlbWVudCBzdXIgbGVxdWVsIGFnaXQgbCdvcMOpcmF0ZXVyIChsaXN0w6lzCisgICAgICAgICAgICAgICAgY2ktZGVzc291cykKKworICBVbmUgY291cnRlIGxpc3RlIGRlIG1vdXZlbWVudHMgOgorICAgIHcgLSBqdXNxdSdhdSBkw6lidXQgZHUgcHJvY2hhaW4gbW90LCBlbiBFWENMVUFOVCBzb24gcHJlbWllciBjYXJhY3TDqHJlLgorICAgIGUgLSBqdXNxdSfDoCBsYSBmaW4gZHUgbW90IGNvdXJhbnQsIGVuIEVYQ0xVQU5UIHNvbiBkZW5pZXIgY2FyYWN0w6hyZS4KKyAgICAkIC0ganVzcXUnw6AgbGEgZmluIGRlIGxhIGxpZ25lLCBlbiBJTkNMVUFOVCBzb24gZGVybmllciBjYXJhY3TDqHJlLgorCisgIEFpbnNpLCB0YXBlciAgZGUgIHZhIGVmZmFjZXIgZGVwdWlzIGxlIGN1cnNldXIganVzcXUnw6AgbGEgZmluIGR1IG1vdC4KKworTk9URSA6IExlIHNldWwgYXBwdWkgZCd1biBtb3V2ZW1lbnQgZW4gbW9kZSBOb3JtYWwsIHNhbnMgY29tbWFuZGUsIGTDqXBsYWNlIGxlCisgICAgICAgY3Vyc2V1ciBjb21tZSBpbmRpcXXDqS4KKwogCiB+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+fn4KLQkJICAgTGXDp29uIDIuMyA6IERFUyBDT01NQU5ERVMgRVQgREVTIE9CSkVUUworICAgICAgICAgICAgTGXDp29uIDIuNCA6IFVUSUxJU0VSIFVOIFFVQU5USUZJQ0FURVVSIEFWRUMgVU4gTU9VVkVNRU5UCiAKIAotICBMZSBmb3JtYXQgZGUgbGEgY29tbWFuZGUgZCdlZmZhY2VtZW50ICBkICBlc3QgbGUgc3VpdmFudDoKKyAgICAgICAqKiBUYXBlciB1biBub21icmUgYXZhbnQgdW4gbW91dmVtZW50IGxlIHLDqXDDqHRlIGF1dGFudCBkZSBmb2lzLiAqKgogCi0JIFtub21icmVdICBkICBvYmpldAkgICBPVQkgICAgIGQJW25vbWJyZV0gIG9iamV0Ci0gIG/DuToKLSAgICBub21icmUgLSBlc3QgY29tYmllbiBkZSBmb2lzIGV4w6ljdXRlciBsYSBjb21tYW5kZSAob3B0aW9ubmVsLCBkw6lmYXV0OiAxKS4KLSAgICBkIC0gZXN0IGxhIGNvbW1hbmRlIGQnZWZmYWNlbWVudC4KLSAgICBvYmpldCAtIGVzdCBjZSBzdXIgcXVvaSBsYSBjb21tYW5kZSB2YSBvcMOpcmVyIChsaXN0ZSBjaS1kZXNzb3VzKS4KKyAgMS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgYXUgZMOpYnV0IGRlIGxhIGxpZ25lIG1hcnF1w6llIC0tLT4gY2ktZGVzc291cy4KIAotICBVbmUgY291cnRlIGxpc3RlIGQnb2JqZXRzOgotICAgIHcgLSBkdSBjdXJzZXVyIGp1c3F1J8OgIGxhIGZpbiBkdSBtb3QsIHkgY29tcHJpcyBsJ2VzcGFjZSBxdWkgc3VpdC4KLSAgICBlIC0gZHUgY3Vyc2V1ciBqdXNxdSfDoCBsYSBmaW4gZHUgbW90LCBTQU5TIGwnZXNwYWNlIHF1aSBzdWl0LgotICAgICQgLSBkdSBjdXJzZXVyIGp1c3F1J8OgIGxhIGZpbiBkZSBsYSBsaWduZS4KKyAgMi4gVGFwZXogIDJ3ICBwb3VyIGTDqXBsYWNlciBsZSBjdXJzZXVyIGRlIDIgbW90cyB2ZXJzIGwnYXZhbnQuCiAKLU5PVEU6IFBvdXIgbGVzIGF2ZW50dXJldXgsIGxlIHNldWwgYXBwdWkgZCcgb2JqZXQgIGVuIG1vZGUgTm9ybWFsLCBzYW5zCi0gICAgICBjb21tYW5kZSwgZMOpcGxhY2UgbGUgY3Vyc2V1ciBjb21tZSBpbmRpcXXDqSBkYW5zIGxhIGxpc3RlIGRlcyBvYmpldHMuCisgIDMuIFRhcGV6ICAzZSAgcG91ciBkw6lwbGFjZXIgbGUgY3Vyc2V1ciDDoCBsYSBmaW4gZHUgdHJvaXNpw6htZSBtb3QgdmVycworICAgICBsJ2F2YW50LgogCisgIDQuIFRhcGV6ICAwICAoesOpcm8pIHBvdXIgZMOpcGxhY2VyIGF1IGTDqWJ1dCBkZSBsYSBsaWduZS4KIAorICA1LiBSw6lww6l0ZXogbGVzIMOpdGFwZXMgMiBldCAzIGF2ZWMgZGVzIHF1YW50aWZpY2F0ZXVycyBkaWZmw6lyZW50cy4KKworLS0tPiBDZWNpIGVzdCBqdXN0ZSB1bmUgbGlnbmUgYXZlYyBkZXMgbW90cyBvw7kgdm91cyBwb3V2ZXogdm91cyBkw6lwbGFjZXIuCisKKyAgNi4gRMOpcGxhY2V6LXZvdXMgw6AgbGEgTGXDp29uIDIuNS4KIAogCiB+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+fn4KLQkJIExlw6dvbiAyLjQgOiBVTkUgRVhDRVBUSU9OIMOAICdDT01NQU5ERS1PQkpFVCcKKyAgICAgICAgICAgIExlw6dvbiAyLjUgOiBVVElMSVNFUiBVTiBRVUFOVElGSUNBVEVVUiBQT1VSIEVGRkFDRVIgUExVUwogCi0JICAgICAgKiogVGFwZXoJZGQgIHBvdXIgZWZmYWNlciB1bmUgbGlnbmUgY29tcGzDqHRlLiAqKgorCisgICAgICAgKiogVGFwZXIgdW4gbm9tYnJlIGF2ZWMgdW4gb3DDqXJhdGV1ciBsZSByw6lww6h0ZSBhdXRhbnQgZGUgZm9pcy4gKioKKworICBPdXRyZSBsYSBjb21iaW5haXNvbiBkZSBsJ29ww6lyYXRldXIgZCdlZmZhY2VtZW50IGF2ZWMgdW4gZMOpcGxhY2VtZW50CisgIG1lbnRpb25uw6kgY2ktZGVzc3VzLCB2b3VzIHBvdXZleiBpbnPDqXJlciB1biBub21icmUgKHF1YW50aWZpY2F0ZXVyKQorICBwb3VyIGVmZmFjZXogZW5jb3JlIHBsdXMgOgorICAgICAgIGQgICBub21icmUgICBkw6lwbGFjZW1lbnQKKworICAxLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciB2ZXJzIGxlIHByZW1pZXIgbW90IGVuIE1BSlVTQ1VMRVMgZGFucyBsYSBsaWduZQorICAgICBtYXJxdcOpZSAtLS0+LgorCisgIDIuIFRhcGV6ICBkMncgIHBvdXIgZWZmYWNlciBsZXMgZGV1eCBtb3RzIGVuIE1BSlVTQ1VMRVMuCisKKyAgMy4gUsOpcMOpdGV6IGxlcyDDqXRhcGVzIDEgZXQgMiBhdmVjIGRlcyBxdWFudGlmaWNhdGV1cnMgZGlmZsOpcmVudHMgcG91cgorICAgICBlZmZhY2VyIGxlcyBtb3RzIHN1aXZhbnRzIGVuIE1BSlVTQ1VMRVMgw6AgbCdhaWRlIGQndW5lIGNvbW1hbmRlLgorCistLS0+IENldHRlIEFCQyBERSBsaWduZSBGR0hJIEpLIExNTiBPUCBkZSBtb3RzIGVzdCBRIFJTIFRVViBuZXR0b3nDqWUuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgICAgIExlw6dvbiAyLjYgOiBPUMOJUkVaIFNVUiBERVMgTElHTkVTCisKKworICAgICAgICAgICAgICAqKiBUYXBleiAgIGRkICAgcG91ciBlZmZhY2VyIHVuZSBsaWduZSBjb21wbMOodGUuICoqCiAKICAgVnUgbGUgbm9tYnJlIGRlIGZvaXMgb8O5IGwnb24gZWZmYWNlIGRlcyBsaWduZXMgY29tcGzDqHRlcywgbGVzIGNvbmNlcHRldXJzCi0gIGRlIFZpIG9udCBkw6ljaWTDqSBxdSdpbCBzZXJhaXQgcGx1cyBmYWNpbGUgZGUgdGFwZXIgc2ltcGxlbWVudCBkZXV4IGQgw6AgbGEKLSAgc3VpdGUgcG91ciBlZmZhY2VyIHVuZSBsaWduZS4KKyAgZGUgVmkgb250IGTDqWNpZMOpIHF1J2lsIHNlcmFpdCBwbHVzIGZhY2lsZSBkZSB0YXBlciBzaW1wbGVtZW50IGRldXggIGQKKyAgcG91ciBlZmZhY2VyIHVuZSBsaWduZS4KIAogICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgc2Vjb25kZSBsaWduZSBkZSBsYSBwaHJhc2UgY2ktZGVzc291cy4KLSAgMi4gVGFwZXogIGRkCXBvdXIgZWZmYWNlciBsYSBsaWduZS4KKyAgMi4gVGFwZXogIGRkICBwb3VyIGVmZmFjZXIgbGEgbGlnbmUuCiAgIDMuIE1haW50ZW5hbnQgYWxsZXogw6AgbGEgcXVhdHJpw6htZSBsaWduZS4KLSAgNC4gVGFwZXogIDJkZCAgKHJhcHBlbGV6LXZvdXMsIG5vbWJyZS1jb21tYW5kZS1vYmpldCkgcG91ciBlZmZhY2VyIGxlcwotICAgICBkZXV4IGxpZ25lcy4KKyAgNC4gVGFwZXogICAyZGQgICBwb3VyIGVmZmFjZXIgZGV1eCBsaWduZXMuCiAKLSAgICAgIDEpICBMZXMgcm9zZXMgc29udCByb3VnZXMsCi0gICAgICAyKSAgTGEgYm91ZSBjJ2VzdCBkcsO0bGUsCi0gICAgICAzKSAgTGVzIHZpb2xldHRlcyBzb250IGJsZXVlcywKLSAgICAgIDQpICBKJ2FpIHVuZSB2b2l0dXJlLAotICAgICAgNSkgIExlcyBob3Jsb2dlcyBkb25uZW50IGwnaGV1cmUsCi0gICAgICA2KSAgTGUgc3VjcmUgZXN0IGRvdXgKLSAgICAgIDcpICBUb3V0IGNvbW1lIHZvdXMuCistLS0+ICAxKSAgTGVzIHJvc2VzIHNvbnQgcm91Z2VzLAorLS0tPiAgMikgIExhIGJvdWUgYydlc3QgZHLDtGxlLAorLS0tPiAgMykgIExlcyB2aW9sZXR0ZXMgc29udCBibGV1ZXMsCistLS0+ICA0KSAgSidhaSB1bmUgdm9pdHVyZSwKKy0tLT4gIDUpICBMZXMgaG9ybG9nZXMgZG9ubmVudCBsJ2hldXJlLAorLS0tPiAgNikgIExlIHN1Y3JlIGVzdCBkb3V4CistLS0+ICA3KSAgVG91dCBjb21tZSB2b3VzLgorCiAKIH5+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+fgotCQkJICAgIExlw6dvbiAyLjUgOiBMJ0FOTlVMQVRJT04KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZcOnb24gMi43IDogTCdBTk5VTEFUSU9OCiAKLQkgICAgKiogVGFwZXogIHUgIHBvdXIgYW5udWxlciBsZXMgZGVybmnDqHJlcyBjb21tYW5kZXMuICoqCi0JICAgICAgICoqIFRhcGV6ICBVICBwb3VyIHLDqWN1cMOpcmVyIHRvdXRlIHVuZSBsaWduZS4gKioKKworICAgICAgICAgICAgKiogVGFwZXogIHUgIHBvdXIgYW5udWxlciBsZXMgZGVybmnDqHJlcyBjb21tYW5kZXMuICoqCisgICAgICAgICAgICAgICAqKiBUYXBleiAgVSAgcG91ciByw6ljdXDDqXJlciB0b3V0ZSB1bmUgbGlnbmUuICoqCiAKICAgMS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIG1hcnF1w6llIC0tLT4gY2ktZGVzc291cyBldCBwbGFjZXotbGUgc3VyCiAgICAgIGxhIHByZW1pw6hyZSBlcnJldXIuCkBAIC0yMzksMTAgKzM1MCwxMCBAQAogICAzLiBQdWlzIHRhcGV6ICB1ICBwb3VyIGFubnVsZXIgbGEgZGVybmnDqHJlIGNvbW1hbmRlIGV4w6ljdXTDqWUuCiAgIDQuIENldHRlIGZvaXMsIGNvcnJpZ2V6IHRvdXRlcyBsZXMgZXJyZXVycyBkZSBsYSBsaWduZSBhdmVjIGxhIGNvbW1hbmRlICB4IC4KICAgNS4gUHVpcyB0YXBleiB1biAgVSAgbWFqdXNjdWxlIHBvdXIgcmVtZXR0cmUgbGEgbGlnbmUgZGFucyBzb24gw6l0YXQgaW5pdGlhbC4KLSAgNi4gUHVpcyB0YXBleiAgdSAgZGV1eC10cm9pcyBmb2lzIHBvdXIgYW5udWxlciBsZSAgVQlldCBsZXMgY29tbWFuZGVzCisgIDYuIFB1aXMgdGFwZXogIHUgIGRldXgtdHJvaXMgZm9pcyBwb3VyIGFubnVsZXIgbGUgIFUgIGV0IGxlcyBjb21tYW5kZXMKICAgICAgcHLDqWPDqWRlbnRlcy4KLSAgNy4gTWFpbnRlbmFudCB0YXBleiAgQ3RybC1SICAobWFpbnRlbmV6IGxhIHRvdWNoZSBDdHJsIGVuZm9uY8OpZSBwZW5kYW50IHF1ZQotICAgICB2b3VzIGFwcHV5ZXogc3VyIFIpIGRldXgtdHJvaXMgZm9pcyBwb3VyIHJlZmFpcmUgbGVzIGNvbW1hbmRlcyAoYW5udWxlcgorICA3LiBNYWludGVuYW50IHRhcGV6ICBDVFJMLVIgIChtYWludGVuZXogbGEgdG91Y2hlIENUUkwgZW5mb25jw6llIHBlbmRhbnQgcXVlCisgICAgIHZvdXMgYXBwdXlleiBSKSBkZXV4LXRyb2lzIGZvaXMgcG91ciByZWZhaXJlIGxlcyBjb21tYW5kZXMgKGFubnVsZXIKICAgICAgbGVzIGFubnVsYXRpb25zKS4KIAogLS0tPiBDb29ycmlnZXogbGVzIGVycmV1cnMgc3V1ciBjY2V0dGUgbGlnbmUgZXQgcmVlbWV0dGV6LWxlcyBhdnZlYyAnYW5udWxlcicuCkBAIC0yNTAsNTcgKzM2MSw2NCBAQAogICA4LiBDZSBzb250IGRlcyBjb21tYW5kZXMgdHLDqHMgdXRpbGVzLiBNYWludGVuYW50LCBhbGxleiBhdSByw6lzdW3DqSBkZSBsYQogICAgICBMZcOnb24gMi4KIAotfn5+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+Ci0JCQkgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiAyCi0KLQotICAxLiBQb3VyIGVmZmFjZXIgZHUgY3Vyc2V1ciBqdXNxdSfDoCBsYSBmaW4gZCd1biBtb3QgdGFwZXo6CWR3Ci0KLSAgMi4gUG91ciBlZmZhY2VyIGR1IGN1cnNldXIganVzcXUnw6AgbGEgZmluIGQndW5lIGxpZ25lIHRhcGV6OglkJAotCi0gIDMuIFBvdXIgZWZmYWNlciB0b3V0ZSB1bmUgbGlnbmUgdGFwZXo6ICBkZAotCi0gIDQuIExlIGZvcm1hdCBkJ3VuZSBjb21tYW5kZSBlbiBtb2RlIE5vcm1hbCBlc3Q6Ci0KLSAgICAgICBbbm9tYnJlXSAgY29tbWFuZGUgIG9iamV0ICAgICBPVSAgICAgY29tbWFuZGUgIFtub21icmVdCW9iamV0Ci0gICAgIG/DuToKLSAgICAgICBub21icmUgLSBlc3QgY29tYmllbiBkZSBmb2lzIHLDqXDDqXRlciBsYSBjb21tYW5kZQotICAgICAgIGNvbW1hbmRlIC0gZXN0IGNlIHF1J2lsIGZhdXQgZmFpcmUsIHBhciBleGVtcGxlCWQgIHBvdXIgZWZmYWNlcgotICAgICAgIG9iamV0IC0gZXN0IGNlIHN1ciBxdW9pIGxhIGNvbW1hbmRlIGRldnJhaXQgYWdpciwgcGFyIGV4ZW1wbGUgdyAobW90KSwKLQkgICAgICAgJCAoanVzcXUnw6AgbGEgZmluIGRlIGxhIGxpZ25lKSwgZXRjLgotCi0gIDUuIFBvdXIgYW5udWxlciBkZXMgYWN0aW9ucyBwcsOpY8OpZGVudGVzLCB0YXBlejoJICAgICB1CSh1IG1pbnVzY3VsZSkKLSAgICAgUG91ciBhbm51bGVyIHRvdXMgbGVzIGNoYW5nZW1lbnRzIHN1ciB1bmUgbGlnbmUgdGFwZXo6ICBVCShVIG1hanVzY3VsZSkKLSAgICAgUG91ciBhbm51bGVyIGwnYW5udWxhdGlvbiB0YXBlejoJCQkgICAgIEN0cmwtUgogCiB+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+fn4KLQkJCSAgICAgTGXDp29uIDMuMSA6IExFIENPTExBR0UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUsOJU1VNw4kgREUgTEEgTEXDh09OIDIKIAogCi0gICAqKiBUYXBleiAgcAlwb3VyIHBsYWNlciBhcHLDqHMgbGUgY3Vyc2V1ciBjZSBxdWkgdmllbnQgZCfDqnRyZSBlZmZhY8OpLiAqKgorICAxLiBQb3VyIGVmZmFjZXIgZHUgY3Vyc2V1ciBqdXNxdSdhdSBtb3Qgc3VpdmFudCB0YXBleiA6ICAgICAgICAgZHcKIAotICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnDqHJlIGxpZ25lIGR1ICJwb8OobWUiIGNpLWRlc3NvdXMuCisgIDIuIFBvdXIgZWZmYWNlciBkdSBjdXJzZXVyIGp1c3F1J8OgIGxhIGZpbiBkJ3VuZSBsaWduZSB0YXBleiA6ICAgZCQKIAotICAyLiBUYXBleiAgZGQJcG91ciBlZmZhY2VyIGxhIGxpZ25lIGV0IGxhIHBsYWNlciBkYW5zIGxlIHRhbXBvbiBkZSBWaW0uCisgIDMuIFBvdXIgZWZmYWNlciB0b3V0ZSB1bmUgbGlnbmUgdGFwZXogOiAgICAgICAgICAgICAgICAgICAgICAgICBkZAogCi0gIDMuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBxdWkgUFLDiUPDiERFIGwnZW5kcm9pdCBvw7kgdm91cyB2b3VsZXoKLSAgICAgcmVtZXR0cmUgbGEgbGlnbmUgZWZmYWPDqWUuCisgIDQuIFBvdXIgcsOpcMOpdGVyIHVuIGTDqXBsYWNlbWVudCBham91dGV6IHVuIHF1YW50aWZpY2F0ZXVyIDogICAgICAydwogCi0gIDQuIEVuIG1vZGUgTm9ybWFsLCB0YXBleiAgcCAgcG91ciByZW1ldHRyZSBsYSBsaWduZS4KKyAgNS4gTGUgZm9ybWF0IGQndW5lIGNvbW1hbmRlIGRlIGNoYW5nZW1lbnQgZXN0IDoKKworICAgICAgIG9ww6lyYXRldXIgICBbbm9tYnJlXSAgIGTDqXBsYWNlbWVudAorCisgICAgIE/DuSA6CisgICAgICAgb3DDqXJhdGV1ciAgIC0gZXN0IGNlIHF1J2lsIGZhdXQgZmFpcmUsIGNvbW1lICBkICBwb3VyIGVmZmFjZXIuCisgICAgICAgW25vbWJyZV0gICAgLSB1biBxdWFudGlmaWNhdGV1ciBvcHRpb25uZWwgcG91ciByw6lww6l0ZXIgbGUgZMOpcGxhY2VtZW50LgorICAgICAgIGTDqXBsYWNlbWVudCAtIGTDqXBsYWNlIGxlIGxvbmcgZHUgdGV4dGUgw6Agb3DDqXJlciwgdGVsIHF1ZSAgdyAgKG1vdCksCisgICAgICAgICAgICAgICAgICAgICAkIChqdXNxdSfDoCBsYSBmaW4gZGUgbGlnbmUpLCBldGMuCisKKyAgNi4gUG91ciBzZSBkw6lwbGFjZXIgYXUgZMOpYnV0IGRlIGxpZ25lLCB1dGlsaXNleiB1biB6w6lybyA6ICAwCisKKyAgNS4gUG91ciBhbm51bGVyIGRlcyBhY3Rpb25zIHByw6ljw6lkZW50ZXMsIHRhcGV6IDogICAgICAgICAgICB1ICh1IG1pbnVzY3VsZSkKKyAgICAgUG91ciBhbm51bGVyIHRvdXMgbGVzIGNoYW5nZW1lbnRzIHN1ciB1bmUgbGlnbmUgdGFwZXogOiAgVSAoVSBtYWp1c2N1bGUpCisgICAgIFBvdXIgYW5udWxlciBsJ2FubnVsYXRpb24gdGFwZXogOiAgICAgICAgICAgICAgICAgICAgICAgIENUUkwtUgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZcOnb24gMy4xIDogTEUgQ09MTEFHRQorCisKKyAgICoqIFRhcGV6ICBwICBwb3VyIHBsYWNlciBhcHLDqHMgbGUgY3Vyc2V1ciBjZSBxdWkgdmllbnQgZCfDqnRyZSBlZmZhY8OpLiAqKgorCisgIDEuIFBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtacOocmUgbGlnbmUgY2ktZGVzc291cyBtYXJxdcOpZSAtLS0+LgorCisgIDIuIFRhcGV6ICBkZCAgcG91ciBlZmZhY2VyIGxhIGxpZ25lIGV0IGxhIHBsYWNlciBkYW5zIHVuIHJlZ2lzdHJlIGRlIFZpbS4KKworICAzLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgYykgYXUgZGVzc3VzIG/DuSB2b3VzIHZvdWxleiByZW1ldHRyZSBsYQorICAgICBsaWduZSBlZmZhY8OpZS4KKworICA0LiBFbiBtb2RlIE5vcm1hbCwgdGFwZXogICBwICAgcG91ciByZW1ldHRyZSBsYSBsaWduZSBlbiBkZXNzb3VzIGR1IGN1cnNldXIuCiAKICAgNS4gUsOpcMOpdGV6IGxlcyDDqXRhcGVzIDIgw6AgNCBwb3VyIG1ldHRyZSB0b3V0ZXMgbGVzIGxpZ25lcyBkYW5zIGxlIGJvbiBvcmRyZS4KIAotICAgICBkKSBFdCB2b3VzLCBxdSdhcHByZW5lei12b3VzID8KLSAgICAgYikgTGVzIHZpb2xldHRlcyBzb250IGJsZXVlcywKLSAgICAgYykgTCdpbnRlbGxpZ2VuY2UgcydhcHByZW5kLAotICAgICBhKSBMZXMgcm9zZXMgc29udCByb3VnZXMsCistLS0+IGQpIEV0IHZvdXMsIHF1J2FwcHJlbmV6LXZvdXMgPworLS0tPiBiKSBMZXMgdmlvbGV0dGVzIHNvbnQgYmxldWVzLAorLS0tPiBjKSBMJ2ludGVsbGlnZW5jZSBzJ2FwcHJlbmQsCistLS0+IGEpIExlcyByb3NlcyBzb250IHJvdWdlcywKIAogCiB+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+fn4KLQkJCSBMZcOnb24gMy4yIDogTEUgUkVNUExBQ0VNRU5UCisgICAgICAgICAgICAgICAgICAgIExlw6dvbiAzLjIgOiBMQSBDT01NQU5ERSBERSBSRU1QTEFDRU1FTlQKIAogCi0gKiogVGFwZXogIHIgIGV0IHVuIGNhcmFjdMOocmUgcG91ciByZW1wbGFjZXIgbGUgY2FyYWN0w6hyZSBzb3VzIGxlIGN1cnNldXIuICoqCisgICAgICoqIFRhcGV6ICByeCAgcG91ciByZW1wbGFjZXIgdW4gY2FyYWN0w6hyZSBzb3VzIGxlIGN1cnNldXIgcGFyICB4IC4gKioKIAogICAxLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnDqHJlIGxpZ25lIG1hcnF1w6llIC0tLT4gY2ktZGVzc291cy4KIApAQCAtMzA4LDMxICs0MjYsMzIgQEAKIAogICAzLiBUYXBleiAgciAgc3VpdmkgZHUgY2FyYWN0w6hyZSBxdWkgZG9pdCBjb3JyaWdlciBsJ2VycmV1ci4KIAotICA0LiBSw6lww6l0ZXogbGVzIMOpdGFwZXMgMiBldCAzIGp1c3F1J8OgIGNlIHF1ZSBsYSBwcmVtacOocmUgbGlnbmUgc29pdCBjb3JyZWN0ZS4KKyAgNC4gUsOpcMOpdGV6IGxlcyDDqXRhcGVzIDIgZXQgMyBqdXNxdSfDoCBjZSBxdWUgbGEgcHJlbWnDqHJlIGxpZ25lIHNvaXQgw6lnYWxlCisgICAgIMOgIGxhIHNlY29uZGUuCiAKIC0tLT4gIFF1YW5kIGNldHRlIGxpZ25lIGEgw6l0w6kgc2F1dmllLCBxdWVscXUndW4gYSBsYWl0IGRlcyBmYXVuZXMgZGUgZnJhcHBlICEKIC0tLT4gIFF1YW5kIGNldHRlIGxpZ25lIGEgw6l0w6kgc2Fpc2llLCBxdWVscXUndW4gYSBmYWl0IGRlcyBmYXV0ZXMgZGUgZnJhcHBlICEKIAogICA1LiBNYWludGVuYW50LCBhbGxleiDDoCBsYSBMZcOnb24gMy4zLgogCi1OT1RFOiBOJ291YmxpZXogcGFzIHF1ZSB2b3VzIGRldnJpZXogYXBwcmVuZHJlIHBhciBsYSBwcmF0aXF1ZSwgcGFzIHBhcgotICAgICAgbcOpbW9yaXNhdGlvbi4KK05PVEUgOiBOJ291YmxpZXogcGFzIHF1ZSB2b3VzIGRldnJpZXogYXBwcmVuZHJlIHBhciBsYSBwcmF0aXF1ZSwgcGFzIHBhcgorICAgICAgIG3DqW1vcmlzYXRpb24uCiAKIAogfn5+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+Ci0JCQkgIExlw6dvbiAzLjMgOiBMRSBDSEFOR0VNRU5UCisgICAgICAgICAgICAgICAgICAgICBMZcOnb24gMy4zIDogTCdPUMOJUkFURVVSIERFIENIQU5HRU1FTlQKIAogCi0JICAgICoqIFBvdXIgY2hhbmdlciB0b3V0IG91IHBhcnRpZSBkJ3VuIG1vdCwgdGFwZXogIGN3IC4qKgorICAgICAgICAgICAgKiogUG91ciBjaGFuZ2VyIGp1c3F1J8OgIGxhIGZpbiBkJ3VuIG1vdCwgdGFwZXogIGNlIC4qKgogCiAgIDEuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtacOocmUgbGlnbmUgbWFycXXDqWUgLS0tPiBjaS1kZXNzb3VzLgogCi0gIDIuIFBsYWNleiBsZSBjdXJzZXVyIHN1ciBsZSB1IGRlIGx1aGtvLgorICAyLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGUgIHUgIGRlIGx1aGtvLgogCi0gIDMuIFRhcGV6ICBjdwlldCBjb3JyaWdleiBsZSBtb3QgKGRhbnMgbm90cmUgY2FzLCB0YXBleiAgJ2lnbmUnLikKKyAgMy4gVGFwZXogIGNlICBldCBjb3JyaWdleiBsZSBtb3QgKGRhbnMgbm90cmUgY2FzLCB0YXBleiAgJ2lnbmUnLikKIAotICA0LiBBcHB1eWV6IDzDiWNoYXA+IGV0IHBsYWNlei12b3VzIHN1ciBsJ2VycmV1ciBzdWl2YW50ZSAobGUgcHJlbWllcgotICAgICBjYXJhY3TDqHJlIHF1aSBkb2l0IMOqdHJlIGNoYW5nw6kpLgorICA0LiBBcHB1eWV6IDzDiWNoYXA+IGV0IHBsYWNlei12b3VzIHN1ciBsZSBwcm9jaGFpbiBjYXJhY3TDqHJlIHF1aSBkb2l0CisgICAgIMOqdHJlIGNoYW5nw6kpLgogCiAgIDUuIFLDqXDDqXRleiBsZXMgw6l0YXBlcyAzIGV0IDQganVzcXUnw6AgY2UgcXVlIGxhIHByZW1pw6hyZSBwaHJhc2Ugc29pdAogICAgICBpZGVudGlxdWUgw6AgbGEgc2Vjb25kZS4KQEAgLTM0MCwxNzEgKzQ1OSwxODkgQEAKIC0tLT4gQ2V0dGUgbHVoa28gY29udGllbnQgcXVlbHF1ZXMgbXlxYSBxdWkgb250IHJpY25lIGQnw6p0cmUgY2hhbnR1ZmlwLgogLS0tPiBDZXR0ZSBsaWduZSBjb250aWVudCBxdWVscXVlcyBtb3RzIHF1aSBvbnQgYmVzb2luIGQnw6p0cmUgY2hhbmfDqXMuCiAKLU5vdGV6IHF1ZSAgY3cgIGVmZmFjZSBsZSBtb3QgZXQgdm91cyBwbGFjZSBlbnN1aXRlIGVuIG1vZGUgSW5zZXJ0aW9uLgorTm90ZXogcXVlICBjZSAgZWZmYWNlIGxlIG1vdCBldCB2b3VzIHBsYWNlIGVuc3VpdGUgZW4gbW9kZSBJbnNlcnRpb24uCisKIAogfn5+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+Ci0JCSAgICBMZcOnb24gMy40IDogUExVUyBERSBDSEFOR0VNRU5UUyBBVkVDIGMKKyAgICAgICAgICAgICAgICAgICAgTGXDp29uIDMuNCA6IFBMVVMgREUgQ0hBTkdFTUVOVFMgQVZFQyBjCiAKIAotICAgICoqIExlIGNoYW5nZW1lbnQgZm9uY3Rpb25uZSBhdmVjIGxlcyBtw6ptZXMgb2JqZXRzIHF1ZSBsJ2VmZmFjZW1lbnQuICoqCisgICAgKiogTCdvcMOpcmF0ZXVyIGRlIGNoYW5nZW1lbnQgZm9uY3Rpb25uZSBhdmVjIGxlcyBtw6ptZXMgZMOpcGxhY2VtZW50cworICAgICAgIHF1ZSBsJ2VmZmFjZW1lbnQuICoqCiAKLSAgMS4gTGUgY2hhbmdlbWVudCBmb25jdGlvbm5lIGRlIGxhIG3Dqm1lIG1hbmnDqHJlIHF1ZSBsJ2VmZmFjZW1lbnQuCi0gICAgIExlIGZvcm1hdCBlc3Q6CisgIDEuIEwnb3DDqXJhdGV1ciBkZSBjaGFuZ2VtZW50IGZvbmN0aW9ubmUgZGUgbGEgbcOqbWUgbWFuacOocmUgcXVlCisgICAgIGwnZWZmYWNlbWVudC4gTGUgZm9ybWF0IGVzdCA6CiAKLQkgW25vbWJyZV0gIGMgIG9iamV0CSAgIE9VCSAgICAgYwlbbm9tYnJlXSAgb2JqZXQKKyAgICAgICAgIGMgICBbbm9tYnJlXSAgIGTDqXBsYWNlbWVudAogCi0gIDIuIExlcyBvYmpldHMgc29udCDDqWdhbGVtZW50IGxlcyBtw6ptZXM6ICB3IChtb3QpLCAkIChmaW4gZGUgbGlnbmUpLCBldGMuCisgIDIuIExlcyBkw6lwbGFjZW1lbnRzIHNvbnQgaWRlbnRpcXVlcyA6ICB3IChtb3QpIGV0ICAkIChmaW4gZGUgbGlnbmUpLgogCi0gIDMuIETDqXBsYWNlei12b3VzIMOgIGxhIHByZW1pw6hyZSBsaWduZSBtYXJxdcOpZSAtLS0+IGNpLWRlc3NvdXMuCisgIDMuIETDqXBsYWNlei12b3VzIHN1ciBsYSBwcmVtacOocmUgbGlnbmUgbWFycXXDqWUgLS0tPiBjaS1kZXNzb3VzLgogCiAgIDQuIFBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtacOocmUgZXJyZXVyLgogCi0gIDUuIFRhcGV6ICBjJAlwb3VyIGNoYW5nZXIgbGEgZmluIGRlIGxhIGxpZ25lLCByZW5kZXotbMOgIGlkZW50aXF1ZSDDoCBsYQotICAgICBzZWNvbmRlIGxpZ25lLCBwdWlzIHRhcGV6IDzDiWNoYXA+LgorICA1LiBUYXBleiAgYyQgIGV0IHRhcGV6IGxlIHJlc3RlIGRlIGxhIGxpZ25lIGFmaW4gcXUnZWxsZSBzb2l0IGlkZW50aXF1ZQorICAgICDDoCBsYSBzZWNvbmRlIGxpZ25lLCBwdWlzIHRhcGV6IDzDiWNoYXA+LgogCiAtLS0+IExhIGZpbiBkZSBjZXR0ZSBsaWduZSBkb2l0IMOqdHJlIHJlbmR1ZSBpZGVudGlxdWUgw6AgbGEgc2Vjb25kZS4KLS0tLT4gTGEgZmluIGRlIGNldHRlIGxpZ25lIGRvaXQgw6p0cmUgY29ycmlnw6llIGF2ZWMgbGEgY29tbWFuZGUJYyQgLgorLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDDqnRyZSBjb3JyaWfDqWUgYXZlYyBsYSBjb21tYW5kZSAgYyQgLgorCitOT1RFIDogIFZvdXMgcG91dmV6IHV0aWxpc2V6IGxhIHRvdWNoZSBSZXRvdXIgQXJyacOocmUgcG91ciBjb3JyaWdlciBsZXMKKyAgICAgICAgZXJyZXVycyBsb3JzcXVlIHZvdXMgdGFwZXouCisKIAogfn5+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+Ci0JCQkgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiAzCiAKIAotICAxLiBQb3VyIHJlbWV0dHJlIGR1IHRleHRlIHF1aSB2aWVudCBkJ8OqdHJlIGVmZmFjw6ksIHRhcGV6ICBwIC4gQ2VsYSBQbGFjZSBsZQorICAxLiBQb3VyIHJlbWV0dHJlIGxlIHRleHRlIHF1aSBhIGTDqWrDoCDDqXTDqSBlZmZhY8OpLCB0YXBleiAgcCAuIENlbGEgUGxhY2UgbGUKICAgICAgdGV4dGUgZWZmYWPDqSBBUFLDiFMgbGUgY3Vyc2V1ciAoc2kgdW5lIGxpZ25lIGNvbXBsw6h0ZSBhIMOpdMOpIGVmZmFjw6llLCBlbGxlCiAgICAgIHNlcmEgcGxhY8OpZSBzb3VzIGxhIGxpZ25lIGR1IGN1cnNldXIpLgogCiAgIDIuIFBvdXIgcmVtcGxhY2VyIGxlIGNhcmFjdMOocmUgc291cyBsZSBjdXJzZXVyLCB0YXBleiAgciAgc3VpdmkgZHUgY2FyYWN0w6hyZQogICAgICBxdWkgcmVtcGxhY2VyYSBsJ29yaWdpbmFsLgogCi0gIDMuIExlIGNoYW5nZW1lbnQgdm91cyBwZXJtZXQgZGUgY2hhbmdlciBsJ29iamV0IHNww6ljaWZpw6ksIGR1IGN1cnNldXIganVzcXUnw6AKLSAgICAgbGEgZmluIGRlIGwnb2JqZXQuIFBhciBleGVtcGxlLCB0YXBleiAgY3cJcG91ciBjaGFuZ2VyIGR1IGN1cnNldXIKLSAgICAganVzcXUnw6AgbGEgZmluIGR1IG1vdCwgIGMkICBwb3VyIGNoYW5nZXIganVzcXUnw6AgbGEgZmluIGQndW5lIGxpZ25lLgorICAzLiBMJ29ww6lyYXRldXIgZGUgY2hhbmdlbWVudCB2b3VzIHBlcm1ldCBkZSBjaGFuZ2VyIGRlcHVpcyBsYSBwb3NpdGlvbiBkdQorICAgICBjdXJzZXVyIGp1c3F1J2/DuSBsZSBkw6lwbGFjZW1lbnQgdm91cyBhbcOobmUuIFBhciBleGVtcGxlLCB0YXBleiAgY2UKKyAgICAgcG91ciBjaGFuZ2VyIGR1IGN1cnNldXIganVzcXUnw6AgbGEgZmluIGR1IG1vdCwgIGMkICBwb3VyIGNoYW5nZXIganVzcXUnw6AKKyAgICAgbGEgZmluIGQndW5lIGxpZ25lLgogCi0gIDQuIExlIGZvcm1hdCBwb3VyIGxlIGNoYW5nZW1lbnQgZXN0OgorICA0LiBMZSBmb3JtYXQgcG91ciBsZSBjaGFuZ2VtZW50IGVzdCA6CiAKLQkgW25vbWJyZV0gIGMgIG9iamV0CSAgIE9VCSAgICAgYwlbbm9tYnJlXSAgb2JqZXQKKyAgICAgICAgIGMgICBbbm9tYnJlXSAgIGTDqXBsYWNlbWVudAogCiBQYXNzZXogbWFpbnRlbmFudCDDoCBsYSBsZcOnb24gc3VpdmFudGUuCiAKIAotCiB+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+fn4KLQkJICAgTGXDp29uIDQuMSA6IFBPU0lUSU9OIEVUIMOJVEFUIERVIEZJQ0hJRVIKKyAgICAgICAgICAgICAgIExlw6dvbiA0LjEgOiBQT1NJVElPTiBEVSBDVVJTRVVSIEVUIMOJVEFUIERVIEZJQ0hJRVIKIAogCi0gICoqIFRhcGV6IEN0cmwtRyBwb3VyIGFmZmljaGVyIHZvdHJlIHBvc2l0aW9uIGRhbnMgbGUgZmljaGllciBldCBzb24gw6l0YXQuCi0gICAgIFV0aWxpc2V6IE1hai1HIHBvdXIgdm91cyByZW5kcmUgw6AgdW5lIGxpZ25lIGRvbm7DqWUgZHUgZmljaGllci4gKioKKyAgKiogVGFwZXogQ1RSTC1HIHBvdXIgYWZmaWNoZXIgdm90cmUgcG9zaXRpb24gZGFucyBsZSBmaWNoaWVyIGV0IHNvbiDDqXRhdC4KKyAgICAgVGFwZXogIEcgIHBvdXIgdm91cyByZW5kcmUgw6AgdW5lIGxpZ25lIGRvbm7DqWUgZHUgZmljaGllci4gKioKIAotICBOb3RlOiBMaXNleiB0b3V0ZSBjZXR0ZSBsZcOnb24gYXZhbnQgZCdlZmZlY3R1ZXIgbCd1bmUgZGVzIMOpdGFwZXMgIQorTk9URSA6IExpc2V6IHRvdXRlIGNldHRlIGxlw6dvbiBhdmFudCBkJ2VmZmVjdHVlciBsJ3VuZSBkZXMgw6l0YXBlcyAhIQogCi0gIDEuIE1haW50ZW5leiBlbmZvbmPDqWUgbGEgdG91Y2hlIEN0cmwgZXQgYXBwdXlleiBzdXIgIEcgLiAgVW5lIGxpZ25lIGQnw6l0YXQKLSAgICAgdmEgYXBwYXJhw650cmUgZW4gYmFzIGRlIGwnw6ljcmFuIGF2ZWMgbGUgbm9tIGR1IGZpY2hpZXIgZXQgbGUgbnVtw6lybyBkZSBsYQotICAgICBsaWduZSBvw7kgdm91cyDDqnRlcy4gIE5vdGV6IGNlIG51bcOpcm8sIGlsIHNlcnZpcmEgbG9ycyBkZSBsJ8OpdGFwZSAzLgorICAxLiBNYWludGVuZXogZW5mb25jw6llIGxhIHRvdWNoZSBDVFJMIGV0IGFwcHV5ZXogc3VyICBnIC4gT24gYXBwZWxsZSBjZWxhCisgICAgIENUUkwtRy4gVW5lIGxpZ25lIGQnw6l0YXQgdmEgYXBwYXJhw650cmUgZW4gYmFzIGRlIGwnw6ljcmFuIGF2ZWMgbGUgbm9tCisgICAgIGR1IGZpY2hpZXIgZXQgbGUgbnVtw6lybyBkZSBsYSBsaWduZSBvw7kgdm91cyDDqnRlcy4gTm90ZXogY2UgbnVtw6lybywgaWwKKyAgICAgc2VydmlyYSBsb3JzIGRlIGwnw6l0YXBlIDMuCiAKLSAgMi4gVGFwZXogIEcgIG1hanVzY3VsZSAoTWFqLUcpIHBvdXIgdm91cyByZW5kcmUgw6AgbGEgZmluIGR1IGZpY2hpZXIuCitOT1RFIDogVm91cyBwb3V2ZXogcGV1dC3DqnRyZSB2b2lyIGxlIGN1cnNldXIgZW4gYmFzIMOgIGRyb2l0ZSBkZSBsJ8OpY3Jhbi4KKyAgICAgICBDZWNpIGFycml2ZSBxdWFuZCBsJ29wdGlvbiAncnVsZXInIGVzdCBhY3RpdsOpZSAodm9pciAgOmhlbHAgJ3J1bGVyJykKIAotICAzLiBUYXBleiBsZSBudW3DqXJvIGRlIGxhIGxpZ25lIG/DuSB2b3VzIMOpdGlleiBzdWl2aSBkZSBNYWotRy4JQ2VsYSB2b3VzCi0gICAgIHJhbcOobmVyYSDDoCBsYSBsaWduZSBvw7kgdm91cyDDqXRpZXogYXUgZMOpcGFydC4KLSAgICAgKExvcnNxdWUgdm91cyB0YXBleiBsZXMgY2hpZmZyZXMsIGlscyBuJ2FwcGFyYWlzc2VudCBQQVMgw6AgbCfDqWNyYW4pLgorICAyLiBUYXBleiAgRyAgIHBvdXIgdm91cyBkw6lwbGFjZXIgw6AgbGEgZmluIGR1IGZpY2hpZXIuCisgICAgIFRhcGV6ICBnZyAgcG91ciB2b3VzIGTDqXBsYWNlciBhdSBkw6lidXQgZHUgZmljaGllci4KKworICAzLiBUYXBleiBsZSBudW3DqXJvIGRlIGxhIGxpZ25lIG/DuSB2b3VzIMOpdGlleiBzdWl2aSBkZSAgIEcgLiBDZWxhIHZvdXMKKyAgICAgcmFtw6huZXJhIMOgIGxhIGxpZ25lIG/DuSB2b3VzIMOpdGlleiBhdSBkw6lwYXJ0IHF1YW5kIHZvdXMgYXZpZXogYXBwdXnDqQorICAgICBDVFJMLUcuCiAKICAgNC4gU2kgdm91cyB2b3VzIHNlbnRleiBwcsOqdCDDoCBmYWlyZSBjZWNpLCBlZmZlY3R1ZXogbGVzIMOpdGFwZXMgMSDDoCAzLgogCiAKLQogfn5+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+Ci0JCQkgICAgTGXDp29uIDQuMiA6IExBIFJFQ0hFUkNIRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlw6dvbiA0LjIgOiBMQSBSRUNIRVJDSEUKIAogCi0JICAqKiBUYXBleiAgLyAgc3VpdmkgZCd1biB0ZXh0ZSBwb3VyIHJlY2hlcmNoZXIgY2UgdGV4dGUuICoqCisgICAgICAgICAgKiogVGFwZXogIC8gIHN1aXZpIGQndW4gdGV4dGUgcG91ciByZWNoZXJjaGVyIGNlIHRleHRlLiAqKgogCiAgIDEuIFRhcGV6IGxlIGNhcmFjdMOocmUgIC8gIGVuIG1vZGUgTm9ybWFsLiBOb3RleiBxdWUgY2VsdWktY2kgZXQgbGUgY3Vyc2V1cgogICAgICBhcHBhcmFpc3NlbnQgZW4gYmFzIGRlIGwnw6ljcmFuLCBjb21tZSBsb3JzcXVlIGwnb24gdXRpbGlzZSAgOiAuCiAKLSAgMi4gUHVpcyB0YXBleiAnZXJycmV1dXInIDxFbnRyw6llPi4gIEMnZXN0IGxlIG1vdCBxdWUgdm91cyB2b3VsZXogcmVjaGVyY2hlci4KKyAgMi4gUHVpcyB0YXBleiAnZXJycmV1dXInIDxFbnRyw6llPi4gQydlc3QgbGUgbW90IHF1ZSB2b3VzIHZvdWxleiByZWNoZXJjaGVyLgogCi0gIDMuIFBvdXIgcmVjaGVyY2hlciDDoCBub3V2ZWF1IGxlIG3Dqm1lIHRleHRlLCB0YXBleiBzaW1wbGVtZW50CW4gLgotICAgICBQb3VyIHJlY2hlcmNoZXIgbGUgbcOqbWUgdGV4dGUgZGFucyBsYSBkaXJlY3Rpb24gb3Bwb3PDqWUsIHRhcGV6ICBNYWotTiAuCisgIDMuIFBvdXIgcmVjaGVyY2hlciDDoCBub3V2ZWF1IGxlIG3Dqm1lIHRleHRlLCB0YXBleiBzaW1wbGVtZW50ICBuIC4KKyAgICAgUG91ciByZWNoZXJjaGVyIGxlIG3Dqm1lIHRleHRlIGRhbnMgbGEgZGlyZWN0aW9uIG9wcG9zw6llLCB0YXBleiAgTiAuCiAKLSAgNC4gU2kgdm91cyB2b3VsZXogcmVjaGVyY2hlciB1biB0ZXh0ZSB2ZXJzIGxlIGhhdXQgZHUgZmljaGllciwgdXRpbGlzZXogID8KLSAgICAgw6AgbGEgcGxhY2UgZGUgIC8gLgorICA0LiBQb3VyIHJlY2hlcmNoZXIgdW5lIHBocmFzZSBkYW5zIGxhIGRpcmVjdGlvbiBvcHBvc8OpZSwgdXRpbGlzZXogID8KKyAgICAgYXUgbGlldSBkZSAgLyAuCiAKLS0tLT4gZXJyZXVyIG5lIHMnw6ljcml0IHBhcyAiZXJycmV1dXIiOyBlcnJyZXV1ciBlc3QgdW5lIGVycmV1ci4KKy0tLT4gZXJyZXVyIG5lIHMnw6ljcml0IHBhcyAiZXJycmV1dXIiIDsgZXJycmV1dXIgZXN0IHVuZSBlcnJldXIuCiAKLU5vdGU6IFF1YW5kIGxhIHJlY2hlcmNoZSBhdHRlaW50IGxhIGZpbiBkdSBmaWNoaWVyLCBlbGxlIHJlcHJlbmQgYXUgZMOpYnV0LgotCitOT1RFIDogUXVhbmQgbGEgcmVjaGVyY2hlIGF0dGVpbnQgbGEgZmluIGR1IGZpY2hpZXIsIGVsbGUgcmVwcmVuZCBhdSBkw6lidXQKKyAgICAgICBzYXVmIHNpIGwnb3B0aW9uICd3cmFwc2NhbicgZXN0IGTDqWFjdGl2w6llLgogCiAKIH5+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+fgotCSAgICBMZcOnb24gNC4zIDogUkVDSEVSQ0hFIERFUyBQQVJFTlRIw4hTRVMgQ09SUkVTUE9OREFOVEVTCisgICAgICAgICAgICBMZcOnb24gNC4zIDogUkVDSEVSQ0hFIERFUyBQQVJFTlRIw4hTRVMgQ09SUkVTUE9OREFOVEVTCiAKIAotCSAgICoqIFRhcGV6ICAlCXBvdXIgdHJvdXZlciBkZXMgKSwgXSBvdSB9IGNvcnJlc3BvbmRhbnRzLiAqKgorICAgICAgICAgICAqKiBUYXBleiAgJSAgcG91ciB0cm91dmVyIGRlcyApLCBdIG91IH0gY29ycmVzcG9uZGFudHMuICoqCiAKICAgMS4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGwndW4gZGVzICgsIFsgb3UgeyBkZSBsYSBsaWduZSBtYXJxdcOpZSAtLS0+CiAgICAgIGNpLWRlc3NvdXMuCiAKICAgMi4gUHVpcyB0YXBleiBsZSBjYXJhY3TDqHJlICAlIC4KIAotICAzLiBMZSBjdXJzZXVyIGRldnJhaXQgc2UgcGxhY2VyIHN1ciBsYSBwYXJlbnRow6hzZSBjb3JyZXNwb25kYW50ZS4KKyAgMy4gTGUgY3Vyc2V1ciBzZSBkw6lwbGFjZXJhIHN1ciBsYSBwYXJlbnRow6hzZSBvdXQgY3JvY2hldCBjb3JyZXNwb25kYW50LgogCi0gIDQuIFRhcGV6ICAlICBwb3VyIHJlcGxhY2VyIGxlIGN1cnNldXIgc3VyIGwnYXV0cmUgcGFyZW50aMOoc2UuCisgIDQuIFRhcGV6ICAlICBwb3VyIHJlcGxhY2VyIGxlIGN1cnNldXIgc3VyIGxhIHBhcmVudGjDqHNlIG91IGNyb2NoZXQKKyAgICAgY29ycmVzcG9uZGFudC4KKworICA1LiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgdW4gYXV0cmUgKCwpLFssXSx7IG91IH0gZXQgcmVnYXJkZXogY2UgcXVlCisgICAgIGZhaXQgICUgLgogCiAtLS0+IFZvaWNpICggdW5lIGxpZ25lIGRlIHRlc3QgY29udGVuYW50IGRlcyAoLCBkZXMgWyBdIGV0IGRlcyB7IH0gKSkuCiAKLU5vdGU6IENldHRlIGZvbmN0aW9ubmFsaXTDqSBlc3QgdHLDqHMgdXRpbGUgbG9ycyBkdSBkw6lib2dhZ2UgZCd1biBwcm9ncmFtbWUgcXVpCi0gICAgICBjb250aWVudCBkZXMgcGFyZW50aMOoc2VzIGTDqXPDqXF1aWxpYnLDqWVzICEKLQotCitOT1RFIDogQ2V0dGUgZm9uY3Rpb25uYWxpdMOpIGVzdCB0csOocyB1dGlsZSBsb3JzIGR1IGTDqWJvZ2FnZSBkJ3VuIHByb2dyYW1tZSBxdWkKKyAgICAgICBjb250aWVudCBkZXMgcGFyZW50aMOoc2VzIGTDqXPDqXF1aWxpYnLDqWVzICEKIAogCiB+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+fn4KLQkgICAgICAgTGXDp29uIDQuNCA6IFVORSBNQU5Jw4hSRSBERSBDT1JSSUdFUiBMRVMgRVJSRVVSUworICAgICAgICAgICAgICAgICAgICBMZcOnb24gNC40IDogTEEgQ09NTUFOREUgREUgU1VCU1RJVFVUSU9OCiAKIAotICAqKiBUYXBleiAgOnMvYW5jaWVuL25vdXZlYXUvZyAgcG91ciByZW1wbGFjZXIgJ2FuY2llbicgcGFyICdub3V2ZWF1Jy4gICoqCisgICAgKiogVGFwZXogIDpzL2FuY2llbi9ub3V2ZWF1L2cgIHBvdXIgcmVtcGxhY2VyICdhbmNpZW4nIHBhciAnbm91dmVhdScuICoqCiAKICAgMS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIG1hcnF1w6llIC0tLT4gY2ktZGVzc291cy4KIAogICAyLiBUYXBleiAgOnMvbGVlL2xlIDxFbnRyw6llPiAuIE5vdGV6IHF1ZSBjZXR0ZSBjb21tYW5kZSBjaGFuZ2Ugc2V1bGVtZW50IGxhCi0gICAgIHByZW1pw6hyZSBvY2N1cmVuY2Ugc3VyIGxhIGxpZ25lLgorICAgICBwcmVtacOocmUgb2NjdXJyZW5jZSBkZSAibGVlIiBkYW5zIGxhIGxpZ25lLgogCi0gIDMuIFB1aXMgdGFwZXogIDpzL2xlZS9sZS9nICBxdWkgb3Jkb25uZSBkZSBmYWlyZSB1bmUgc3Vic3RpdHV0aW9uIGdsb2JhbGUKLSAgICAgc3VyIGxhIGxpZ25lLiBDZWxhIGNoYW5nZSB0b3V0ZXMgbGVzIG9jY3VyZW5jZXMgc3VyIGxhIGxpZ25lCisgIDMuIFB1aXMgdGFwZXogIDpzL2xlZS9sZS9nIC4gTCdham91dCBkdSBkcmFwZWF1ICBnICBvcmRvbm5lIGRlIGZhaXJlIHVuZQorICAgICBzdWJzdGl0dXRpb24gZ2xvYmFsZSBzdXIgbGEgbGlnbmUsIGV0IGNoYW5nZSB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRlCisgICAgICJsZWUiIHN1ciBsYSBsaWduZS4KIAotLS0tPiBsZWUgbWVpbGxldXIgbW9tZW50IHBvdXIgcmVnYXJkZXIgbGVlcyBmbGV1cnMgZXN0IHBlbmRhbnQgbGVlIFByaW50ZW1wcy4KKy0tLT4gbGVlIG1laWxsZXVyIG1vbWVudCBwb3VyIHJlZ2FyZGVyIGxlZXMgZmxldXJzIGVzdCBwZW5kYW50IGxlZSBwcmludGVtcHMuCiAKLSAgNC4gUG91ciBjaGFuZ2VyIHRvdXRlcyBsZXMgb2NjdXJlbmNlcyBkJ3VuIHRleHRlLCBlbnRyZSBkZXV4IGxpZ25lcywKLSAgICAgdGFwZXogIDojLCNzL2FuY2llbi9ub3V2ZWF1L2cgIG/DuSAjLCMgc29udCBsZXMgbnVtw6lyb3MgZGVzIGRldXggbGlnbmVzLgotICAgICBUYXBleiAgOiVzL2FuY2llbi9ub3V2ZWF1L2cgICAgcG91ciBjaGFuZ2VyIGNoYXF1ZSBvY2N1cmVuY2UgZGFucyB0b3V0Ci0JCQkJICAgIGxlIGZpY2hpZXIuCisgIDQuIFBvdXIgY2hhbmdlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGQndW4gdGV4dGUsIGVudHJlIGRldXggbGlnbmVzLAorICAgICB0YXBleiAgOiMsI3MvYW5jaWVuL25vdXZlYXUvZyAgb8O5ICMsIyBzb250IGxlcyBudW3DqXJvcyBkZSBsaWduZXMgZGUgbGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWdlIG/DuSBsYSBzdWJzdGl0dXRpb24gZG9pdCDDqnRyZSBmYWl0ZS4KKyAgICAgVGFwZXogIDolcy9hbmNpZW4vbm91dmVhdS9nICAgIHBvdXIgY2hhbmdlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRhbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdXQgbGUgZmljaGllci4KKyAgICAgVGFwZXogIDolcy9hbmNpZW4vbm91dmVhdS9nYyAgIHBvdXIgdHJvdXZlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRhbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdXQgbGUgZmljaGllciBhdmVjIHVuZSBpbnZpdGUgcG91cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlybWVyIG91IGluZmlybWVyIGNoYXF1ZSBzdWJzdGl0dXRpb24uCiAKIAogCiB+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+fn4KLQkJCSAgICAgUsOJU1VNw4kgREUgTEEgTEXDh09OIDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUsOJU1VNw4kgREUgTEEgTEXDh09OIDQKIAogCi0gIDEuIEN0cmwtRyAgYWZmaWNoZSB2b3RyZSBwb3NpdGlvbiBkYW5zIGxlIGZpY2hpZXIgZXQgbCfDqXRhdCBkZSBjZWx1aS1jaS4KLSAgICAgTWFqLUcgIHZvdXMgcGxhY2Ugw6AgbGEgZmluIGR1IGZpY2hpZXIuIFVuIG51bcOpcm8gZGUgbGlnbmUgc3VpdmkgZGUgTWFqLUcKLSAgICAgdm91cyBwbGFjZSDDoCBjZXR0ZSBsaWduZS4KKyAgMS4gQ1RSTC1HICAgICAgIGFmZmljaGUgbGEgcG9zaXRpb24gZGFucyBsZSBmaWNoaWVyIGV0IGwnw6l0YXQgZGUgY2VsdWktY2kuCisgICAgICAgICAgICAgICBHICBkw6lwbGFjZSDDoCBsYSBmaW4gZHUgZmljaGllci4KKyAgICAgbm9tYnJlICAgIEcgIGTDqXBsYWNlIGF1IG51bcOpcm8gZGUgbGlnbmUuCisgICAgICAgICAgICAgIGdnICBkw6lwbGFjZSDDoCBsYSBwcmVtacOocmUgbGlnbmUuCiAKICAgMi4gVGFwZXIgIC8gIHN1aXZpIGQndW4gdGV4dGUgcmVjaGVyY2hlIGNlIHRleHRlIHZlcnMgbCdBVkFOVC4KICAgICAgVGFwZXIgID8gIHN1aXZpIGQndW4gdGV4dGUgcmVjaGVyY2hlIGNlIHRleHRlIHZlcnMgbCdBUlJJw4hSRS4KLSAgICAgQXByw6hzIHVuZSByZWNoZXJjaGUgdGFwZXoJbiAgcG91ciB0cm91dmVyIGwnb2NjdXJlbmNlIHN1aXZhbnRlIGRhbnMgbGEKLSAgICAgbcOqbWUgZGlyZWN0aW9uIG91CU1hai1OICBwb3VyIHJlY2hlcmNoZXIgZGFucyBsYSBkaXJlY3Rpb24gb3Bwb3PDqWUuCisgICAgIEFwcsOocyB1bmUgcmVjaGVyY2hlIHRhcGV6ICBuICBwb3VyIHRyb3V2ZXIgbCdvY2N1cnJlbmNlIHN1aXZhbnRlIGRhbnMgbGEKKyAgICAgbcOqbWUgZGlyZWN0aW9uIG91ICBNYWotTiAgcG91ciByZWNoZXJjaGVyIGRhbnMgbGEgZGlyZWN0aW9uIG9wcG9zw6llLgogCiAgIDMuIFRhcGVyICAlICBsb3JzcXVlIGxlIGN1cnNldXIgZXN0IHN1ciAgKCwgKSwgWywgXSwgeyBvdSB9ICBkw6lwbGFjZQogICAgICBjZWx1aS1jaSBzdXIgbGUgY2FyYWN0w6hyZSBjb3JyZXNwb25kYW50LgogCi0gIDQuIFBvdXIgcmVtcGxhY2VyIGxlIHByZW1pZXIgYWEgcGFyIGJiIHN1ciB1bmUgbGlnbmUgdGFwZXoJIDpzL2FhL2JiCi0gICAgIFBvdXIgcmVtcGxhY2VyIHRvdXMgbGVzIGFhIHBhciBiYiBzdXIgdW5lIGxpZ25lIHRhcGV6CSA6cy9hYS9iYi9nCi0gICAgIFBvdXIgcmVtcGxhY2VyIGR1IHRleHRlIGVudHJlIGRldXggbnVtw6lyb3MgZGUgbGlnbmUgdGFwZXoJIDojLCNzL2FhL2JiL2cKLSAgICAgUG91ciByZW1wbGFjZXIgdG91dGVzIGxlcyBvY2N1cmVuY2VzIGRhbnMgbGUgZmljaGllciB0YXBleiAgOiVzL2FhL2JiL2cKLSAgICAgUG91ciBkZW1hbmRlciB1bmUgY29uZmlybWF0aW9uIMOgIGNoYXF1ZSBmb2lzIGFqb3V0ZXogJ2MnCSA6JXMvYWEvYmIvZ2MKKyAgNC4gUG91ciByZW1wbGFjZXIgbGUgcHJlbWllciBhYSBwYXIgYmIgc3VyIHVuZSBsaWduZSB0YXBleiAgICAgOnMvYWEvYmIKKyAgICAgUG91ciByZW1wbGFjZXIgdG91cyBsZXMgYWEgcGFyIGJiIHN1ciB1bmUgbGlnbmUgdGFwZXogICAgICAgOnMvYWEvYmIvZworICAgICBQb3VyIHJlbXBsYWNlciBkdSB0ZXh0ZSBlbnRyZSBkZXV4IG51bcOpcm9zIGRlIGxpZ25lIHRhcGV6ICAgOiMsI3MvYWEvYmIvZworICAgICBQb3VyIHJlbXBsYWNlciB0b3V0ZXMgbGVzIG9jY3VycmVuY2VzIGRhbnMgbGUgZmljaGllciB0YXBleiA6JXMvYWEvYmIvZworICAgICBQb3VyIGRlbWFuZGVyIHVuZSBjb25maXJtYXRpb24gw6AgY2hhcXVlIGZvaXMgYWpvdXRleiAnYycgICAgOiVzL2FhL2JiL2djCiAKIAogfn5+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+Ci0JICAgICAgTGXDp29uIDUuMSA6IENPTU1FTlQgRVjDiUNVVEVSIFVORSBDT01NQU5ERSBFWFRFUk5FCisgICAgICAgICAgICAgIExlw6dvbiA1LjEgOiBDT01NRU5UIEVYw4lDVVRFUiBVTkUgQ09NTUFOREUgRVhURVJORQogCiAKICAqKiBUYXBleiAgOiEgIHN1aXZpIGQndW5lIGNvbW1hbmRlIGV4dGVybmUgcG91ciBleMOpY3V0ZXIgY2V0dGUgY29tbWFuZGUuICoqCkBAIC01MTYsMjk0ICs2NTMsMzg2IEBACiAgICAgIG4naW1wb3J0ZSBxdWVsbGUgY29tbWFuZGUgdmFsaWRlIHBvdXIgdm90cmUgaW50ZXJwcsOpdGV1ciAoc2hlbGwpLgogCiAgIDMuIFBhciBleGVtcGxlLCB0YXBleiAgbHMgIGFwcsOocyBsZSAgISAgZXQgYXBwdXlleiA8RW50csOpZT4uIENlY2kgYWZmaWNoZXJhCi0gICAgIGxhIGxpc3RlIGRlcyBmaWNoaWVycyBkdSBkb3NzaWVyIGNvdXJhbnQsIGNvbW1lIHNpIHZvdXMgYXZpZXogdGFww6kgbGEKLSAgICAgY29tbWFuZGUgw6AgbCdpbnZpdGUgZHUgc2hlbGwuIFV0aWxpc2V6ICA6IWRpciAgc2kJOiFscyAgbmUgbWFyY2hlIHBhcy4KKyAgICAgbGEgbGlzdGUgZGVzIGZpY2hpZXJzIGR1IHLDqXBlcnRvaXJlIGNvdXJhbnQsIGNvbW1lIHNpIHZvdXMgYXZpZXogdGFww6kgbGEKKyAgICAgY29tbWFuZGUgw6AgbCdpbnZpdGUgZHUgc2hlbGwuIFV0aWxpc2V6ICA6IWRpciAgc2kgIDohbHMgIG5lIG1hcmNoZSBwYXMuCiAKLU5vdGU6ICBJbCBlc3QgcG9zc2libGUgZCdleMOpY3V0ZXIgbidpbXBvcnRlIHF1ZWxsZSBjb21tYW5kZSBleHRlcm5lIGRlIGNldHRlCi0gICAgICAgbWFuacOocmUuCitOT1RFIDogIElsIGVzdCBwb3NzaWJsZSBkJ2V4w6ljdXRlciBuJ2ltcG9ydGUgcXVlbGxlIGNvbW1hbmRlIGV4dGVybmUgZGUgY2V0dGUKKyAgICAgICAgbWFuacOocmUsIGF2ZWMgb3Ugc2FucyBhcmd1bWVudC4KIAotTm90ZTogIFRvdXRlcyBsZXMgY29tbWFuZGVzICA6ICBkb2l2ZW50IGZpbmlyIHBhciBsYSBmcmFwcGUgZGUgPEVudHLDqWU+LgotCitOT1RFIDogIFRvdXRlcyBsZXMgY29tbWFuZGVzICA6ICBkb2l2ZW50IGZpbmlyIHBhciBsYSBmcmFwcGUgZGUgPEVudHLDqWU+LgorICAgICAgICDDgCBwYXJ0aXIgZGUgbWFpbnRlbmFudCwgbm91cyBuZSBsZSBtZW50aW9ubmVyb25zIHBsdXMuCiAKIAogfn5+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+Ci0JIExlw6dvbiA1LjIgOiBQTFVTIERFIETDiVRBSUxTIFNVUiBMJ0VOUkVHSVNUUkVNRU5UIERFIEZJQ0hJRVJTCisgICAgICAgICBMZcOnb24gNS4yIDogUExVUyBERSBEw4lUQUlMUyBTVVIgTCdFTlJFR0lTVFJFTUVOVCBERSBGSUNISUVSUwogCiAKLSAqKiBQb3VyIGVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBmYWl0cyBhdSBmaWNoaWVyLCB0YXBleiAgOncgRklDSElFUiAuICoqCisgKiogUG91ciBlbnJlZ2lzdHJlciBsZXMgY2hhbmdlbWVudHMgZmFpdHMgYXUgdGV4dGUsIHRhcGV6ICA6dyBGSUNISUVSIC4gKioKIAotICAxLiBUYXBleiAgOiFkaXIgIG91ICA6IWxzICBwb3VyIGF2b2lyIGxhIGxpc3RlIGRlcyBmaWNoaWVycyBkdSBkb3NzaWVyCi0gICAgIGNvdXJhbnQuIFZvdXMgc2F2ZXogZMOpasOgIHF1J2lsIGZhdXQgYXBwdXllciA8RW50csOpZT4gYXByw6hzIGNlbGEuCisgIDEuIFRhcGV6ICA6IWRpciAgb3UgIDohbHMgIHBvdXIgYXZvaXIgbGEgbGlzdGUgZGVzIGZpY2hpZXJzIGRhbnMgbGUKKyAgICAgcsOpcGVydG9pcmUgY291cmFudC4gVm91cyBzYXZleiBkw6lqw6AgcXUnaWwgZmF1dCBhcHB1eWVyIDxFbnRyw6llPiBhcHLDqHMKKyAgICAgY2VsYS4KIAogICAyLiBDaG9pc2lzc2V6IHVuIG5vbSBkZSBmaWNoaWVyIHF1aSBuJ2V4aXN0ZSBwYXMgZW5jb3JlLCBwYXIgZXhlbXBsZSBURVNULgogCiAgIDMuIFB1aXMgdGFwZXogIDp3IFRFU1QgIChvw7kgVEVTVCBlc3QgbGUgbm9tIHF1ZSB2b3VzIGF2ZXogY2hvaXNpKS4KIAotICA0LiBDZWxhIHNhdXZlZ2FyZGUgdG91dCBsZSBmaWNoaWVyIChUdXRvcmllbCBWaW0pIHNvdXMgbGUgbm9tIFRFU1QuCi0gICAgIFBvdXIgbGUgdsOpcmlmaWVyLCB0YXBleiAgOiFkaXIgIHBvdXIgcmV2aXN1YWxpc2VyIGxlIGNvbnRlbnUgZHUgZG9zc2llci4KKyAgNC4gQ2VsYSBlbnJlZ2lzdHJlIHRvdXQgbGUgZmljaGllciAoVHV0b3JpZWwgVmltKSBzb3VzIGxlIG5vbSBURVNULgorICAgICBQb3VyIGxlIHbDqXJpZmllciwgdGFwZXogIDohZGlyICBvdSAgOiFscyAgZGUgbm91dmVhdSBwb3VyIHJldmlzdWFsaXNlcgorICAgICB2b3RyZSByw6lwZXJ0b2lyZS4KIAotTm90ZXogcXVlIHNpIHZvdXMgcXVpdHRleiBWaW0gZXQgeSByZXRvdXJuZXogYXZlYyBsZSBmaWNoaWVyIFRFU1QsIGNlbHVpLWNpCi1zZXJhIHVuZSBjb3BpZSBleGFjdGUgZHUgY291cnMgYXUgbW9tZW50IG/DuSB2b3VzIGwnYXZleiBzYXV2w6kuCitOT1RFIDogU2kgdm91cyBxdWl0dGV6IFZpbSBldCBsZSByZWTDqW1hcnJleiBkZSBub3V2ZWF1IGF2ZWMgbGUgZmljaGllciBURVNULAorICAgICAgIGNlbHVpLWNpIHNlcmEgdW5lIGNvcGllIGV4YWN0ZSBkZSBjZSBjb3VycyBhdSBtb21lbnQgb8O5IHZvdXMgbCdhdmV6CisgICAgICAgZW5yZWdpc3Ryw6kuCiAKLSAgNS4gTWFpbnRlbmFudCwgZWZmYWNleiBsZSBmaWNoaWVyIGVuIHRhcGFudCAoTVMtRE9TKTogICAgOiFkZWwgVEVTVAotCQkJCQkgICBvdSAoVW5peCk6CSAgIDohcm0gVEVTVAorICA1LiBNYWludGVuYW50LCBlZmZhY2V6IGxlIGZpY2hpZXIgZW4gdGFwYW50IChNUy1ET1MpIDogICA6IWRlbCBURVNUCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3UgKFVuaXgpIDogICAgIDohcm0gVEVTVAogCiAKIH5+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+fgotCQkgICAgTGXDp29uIDUuMyA6IFVOIEVOUkVHSVNUUkVNRU5UIFPDiUxFQ1RJRgorICAgICAgICAgICAgICAgICAgTGXDp29uIDUuMyA6IFPDiUxFQ1RJT04gRFUgVEVYVEUgw4AgRU5SRUdJU1RSRVIKIAogCi0gICAgICoqIFBvdXIgZW5yZWdpc3RyZXIgdW5lIHBvcnRpb24gZGUgZmljaGllciwgdGFwZXoJOiMsI3cgRklDSElFUiAqKgorICAgICAgICAgICAgICAgICAgKiogUG91ciBlbnJlZ2lzdHJlciB1bmUgcG9ydGlvbiBkdSBmaWNoaWVyLAorICAgICAgICAgICAgICAgICAgICAgIHRhcGV6IDogICB2ICBkw6lwbGFjZW1lbnQgIDp3IEZJQ0hJRVIgICoqCiAKLSAgMS4gVGFwZXogw6Agbm91dmVhdSAgOiFkaXIgIG91ICA6IWxzICBwb3VyIHZpc3VhbGlzZXIgbGUgY29udGVudSBkdSBkb3NzaWVyCi0gICAgIGNvdXJhbnQgZXQgY2hvaXNpc3NleiB1biBub20gZGUgZmljaGllciwgdGVsIHF1ZSBURVNULgorICAxLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgY2V0dGUgbGlnbmUuCiAKLSAgMi4gRMOpcGxhY2V6IGxlIGN1cnNldXIganVzcXUnZW4gaGF1dCBkZSBjZXR0ZSBwYWdlIGV0IHRhcGV6ICBDdHJsLUcgIHBvdXIKLSAgICAgY29ubmHDrnRyZSBsZSBudW3DqXJvIGRlIGNldHRlIGxpZ25lLiBOT1RFWiBDRSBOVU3DiVJPICEKKyAgMi4gQXBwdXlleiAgdiAgZXQgZMOpcGxhY2V6IGxlIGN1cnNldXIgdmVycyBsYSBjaW5xdWnDqG1lIGxpZ25lIHBsdXMgYmFzLgorICAgICBSZW1hcnF1ZXogcXVlIGxlIHRleHRlIGVzdCBlbiBzdXJicmlsbGFuY2UuCiAKLSAgMy4gUHVpcyByZW5kZXotdm91cyBhdSBiYXMgZGUgY2V0dGUgcGFnZSBldCB0YXBleiDDoCBub3V2ZWF1ICBDdHJsLUcgLgotICAgICBOT1RFWiDDiUdBTEVNRU5UIENFIE5VTcOJUk8gIQorICAzLiBBcHB1eWV6ICA6ICAuIEVuIGJhcyBkZSBsJ8OpY3JhbiAgOic8LCc+IHZhIGFwcGFyYcOudHJlLgogCi0gIDQuIFBvdXIgZW5yZWdpc3RyZXIgU0VVTEVNRU5UIHVuZSBwb3J0aW9uIGQndW4gZmljaGllciwgdGFwZXogIDojLCN3IFRFU1QKLSAgICAgb8O5ICMsIyBzb250IGxlcyBkZXV4IG51bcOpcm9zIHF1ZSB2b3VzIGF2ZXogbm90w6lzIChoYXV0LGJhcykgZXQgVEVTVCBlc3QKLSAgICAgbGUgbm9tIGR1IGZpY2hpZXIuCisgIDQuIFRhcGV6ICAgdyBURVNUICAsIG/DuSBURVNUIGVzdCB1biBub20gZGUgZmljaGllciBxdWkgbidleGlzdGUgcGFzLgorICAgICBWw6lyaWZpZXogcXVlIHZvdXMgdm95ZXogIDonPCwnPncgVEVTVCAgYXZhbnQgZGUgZCdhcHB1eWVyIHN1ciBFbnRyw6llLgogCi0gIDUuIFVuZSBmb2lzIGVuY29yZSwgdsOpcmlmaWV6IGxhIHByw6lzZW5jZSBkdSBmaWNoaWVyIGF2ZWMgIDohZGlyICBtYWlzIE5FCi0gICAgIEwnRUZGQUNFWiBQQVMuCisgIDUuIFZpbSB2YSBlbnJlZ2lzdHJlciBsZXMgbGlnbmVzIHPDqWxlY3Rpb25uw6llcyBkYW5zIGxlIGZpY2hpZXIgVEVTVC4KKyAgICAgVXRpbGlzZXogIDohZGlyICBvdSAgIWxzIHBvdXIgbGUgdm9pci4gTmUgbCdlZmZhY2V6IHBhcyBlbmNvcmUgIQorICAgICBOb3VzIGFsbG9ucyBsJ3V0aWxpc2VyIGRhbnMgbGEgbGXDp29uIHN1aXZhbnRlLgorCitOT1RFIDogTCdhcHB1aSBkZSAgdiAgZMOpbWFycmUgbGEgc8OpbGVjdGlvbiBWaXN1ZWxsZS4gVm91cyBwb3V2ZXogZMOpcGxhY2VyIGxlCisgICAgICAgY3Vyc2V1ciBwb3VyIGFncmFuZGlyIG91IHLDqXRyw6ljaXIgbGEgc8OpbGVjdGlvbi4gUHVpcyB2b3VzIHBvdXZlegorICAgICAgIHV0aWxpc2VyIHVuIG9ww6lyYXRldXIgcG91ciBmYWlyZSBxdWVscXVlIGNob3NlIHN1ciBsZSB0ZXh0ZS4gUGFyCisgICAgICAgZXhlbXBsZSwgIGQgIGVmZmFjZSBsZSB0ZXh0ZS4KIAogCiB+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+fn4KLQkJIExlw6dvbiA1LjQgOiBSw4lDVVDDiVJBVElPTiBFVCBGVVNJT04gREUgRklDSElFUlMKKyAgICAgICAgICAgICAgICAgTGXDp29uIDUuNCA6IFLDiUNVUMOJUkFUSU9OIEVUIEZVU0lPTiBERSBGSUNISUVSUwogCiAKLQkqKiBQb3VyIGluc8OpcmVyIGxlIGNvbnRlbnUgZCd1biBmaWNoaWVyLCB0YXBlegk6ciBGSUNISUVSICoqCisgICAgICAgICoqIFBvdXIgaW5zw6lyZXIgbGUgY29udGVudSBkJ3VuIGZpY2hpZXIsIHRhcGV6ICA6ciBGSUNISUVSICoqCiAKLSAgMS4gVGFwZXogIDohZGlyICBwb3VyIHbDqXJpZmllciBxdWUgdm90cmUgZmljaGllciBURVNUIGVzdCBlbmNvcmUgbMOgLgorICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBqdXN0ZSBhdSBkZXNzdXMgZGUgY2V0dGUgbGlnbmUuCiAKLSAgMi4gUGxhY2V6IGxlIGN1cnNldXIgZW4gaGF1dCBkZSBjZXR0ZSBwYWdlLgorTk9URSA6ICBBcHLDqHMgYXZvaXIgZXjDqWN1dMOpIGwnw6l0YXBlIDIgdm91cyB2ZXJyZXogZHUgdGV4dGUgZGUgbGEgTGXDp29uIDUuMy4KKyAgICAgICAgUHVpcyBkw6lwbGFjZXogdm91cyB2ZXJzIGxlIGJhcyBwb3VyIHZvaXIgY2V0dGUgbGXDp29uIMOgIG5vdXZlYXUuCiAKLU5PVEU6ICBBcHLDqHMgYXZvaXIgc3VpdmkgbCfDqXRhcGUgMyB2b3VzIHZlcnJleiDDoCBsJ8OpY3JhbiBsYSBMZcOnb24gNS4zLgotICAgICAgIETDqXBsYWNlei12b3VzIHZlcnMgbGUgYmFzIGp1c3F1J8OgIHJldmVuaXIgw6AgY2V0dGUgbGXDp29uLgotCi0gIDMuIE1haW50ZW5hbnQgcsOpY3Vww6lyZXogdm90cmUgZmljaGllciBURVNUIGVuIHV0aWxpc2FudCBsYSBjb21tYW5kZSAgOnIgVEVTVAorICAyLiBNYWludGVuYW50IHLDqWN1cMOpcmV6IHZvdHJlIGZpY2hpZXIgVEVTVCBlbiB1dGlsaXNhbnQgbGEgY29tbWFuZGUgIDpyIFRFU1QKICAgICAgb8O5IFRFU1QgZXN0IGxlIG5vbSBkZSB2b3RyZSBmaWNoaWVyLgotCi1OT1RFOiAgTGUgZmljaGllciBxdWUgdm91cyByw6ljdXDDqXJleiBlc3QgcGxhY8OpIGzDoCBvw7kgc2UgdHJvdXZlIGxlIGN1cnNldXIuCisgICAgIExlIGZpY2hpZXIgcXVlIHZvdXMgcsOpY3Vww6lyZXogZXN0IHBsYWPDqSBhdSBkZXNzb3VzIGRlIGxhIGxpZ25lIGR1IGN1cnNldXIuCiAKICAgNC4gUG91ciB2w6lyaWZpZXIgcXVlIGxlIGZpY2hpZXIgYSBiaWVuIMOpdMOpIGluc8OpcsOpLCByZW1vbnRleiBldCB2w6lyaWZpZXoKICAgICAgcXUnaWwgeSBhIG1haW50ZW5hbnQgZGV1eCBjb3BpZXMgZGUgbGEgTGXDp29uIDUuMywgbCdvcmlnaW5hbGUgZXQgY2VsbGUKICAgICAgY29udGVudWUgZGFucyBsZSBmaWNoaWVyLgogCi0KLX5+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+fgotCQkJICAgICBSw4lTVU3DiSBERSBMQSBMRcOHT04gNQotCi0KLSAgMS4gIDohY29tbWFuZGUgIGV4w6ljdXRlIHVuZSBjb21tYW5kZSBleHRlcm5lLgotCi0gICAgICBRdWVscXVlcyBleGVtcGxlcyBwcmF0aXF1ZXM6Ci0JKE1TLURPUykJKFVuaXgpCi0JIDohZGlyCQkgOiFscwkJIGFmZmljaGUgbGUgY29udGVudSBkdSBkb3NzaWVyIGNvdXJhbnQuCi0JIDohZGVsIEZJQ0hJRVIgICA6IXJtIEZJQ0hJRVIgICAgZWZmYWNlIEZJQ0hJRVIuCi0KLSAgMi4gIDp3IEZJQ0hJRVIgIGVucmVnaXN0cmUgbGUgZmljaGllciBWaW0gY291cmFudCBzdXIgbGUgZGlzcXVlIGF2ZWMgcG91cgotCQkgIG5vbSBGSUNISUVSLgotCi0gIDMuICA6IywjdyBGSUNISUVSICBlbnJlZ2lzdHJlIGxlcyBsaWduZXMgIyDDoCAjIGRhbnMgbGUgZmljaGllciBGSUNISUVSLgotCi0gIDQuICA6ciBGSUNISUVSICByw6ljdXDDqHJlIGxlIGZpY2hpZXIgRklDSElFUiBldCBsJ2luc8OocmUgZGFucyBsZSBmaWNoaWVyCi0JCSAgY291cmFudCDDoCBwYXJ0aXIgZGUgbGEgcG9zaXRpb24gZHUgY3Vyc2V1ci4KLQotCi0KK05PVEUgOiAgVm91cyBwb3V2ZXogYXVzc2kgbGlyZSBsYSBzb3J0aWUgZCd1bmUgY29tbWFuZGUgZXh0ZXJuZS4gUGFyIGV4ZW1wbGUsCisgICAgICAgIDpyICFscyAgbGl0IGxhIHNvcnRpZSBkZSBsYSBjb21tYW5kZSBscyBldCBsYSBwbGFjZSBzb3VzIGxhIGxpZ25lIGR1CisgICAgICAgIGN1cnNldXIuCiAKIAogfn5+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+Ci0JCQkgICAgTGXDp29uIDYuMSA6IEwnT1VWRVJUVVJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiA1CisKKworICAxLiA6IWNvbW1hbmRlICBleMOpY3V0ZSB1bmUgY29tbWFuZGUgZXh0ZXJuZS4KKworICAgICBRdWVscXVlcyBleGVtcGxlcyBwcmF0aXF1ZXMgOgorICAgICAgKE1TLURPUykgICAgICAgIChVbml4KQorICAgICAgIDohZGlyICAgICAgICAgICA6IWxzICAgICAgICAgIGFmZmljaGUgbGUgY29udGVudSBkdSByw6lwZXJ0b2lyZSBjb3VyYW50LgorICAgICAgIDohZGVsIEZJQ0hJRVIgICA6IXJtIEZJQ0hJRVIgIGVmZmFjZSBGSUNISUVSLgorCisgIDIuIDp3IEZJQ0hJRVIgIGVucmVnaXN0cmUgbGUgZmljaGllciBWaW0gY291cmFudCBzdXIgbGUgZGlzcXVlIGF2ZWMgcG91cgorICAgICAgICAgICAgICAgICAgbm9tIEZJQ0hJRVIuCisKKyAgMy4gdiAgZMOpcGxhY2VtZW50ICA6dyBGSUNISUVSIHNhdXZlZ2FyZGUgbGVzIGxpZ25lcyBkZSBsYSBzw6lsZWN0aW9uIFZpc3VlbGxlCisgICAgIGRhbnMgbGUgZmljaGllciBGSUNISUVSLgorCisgIDQuIDpyIEZJQ0hJRVIgIHLDqWN1cMOocmUgbGUgY29udGVudSBkdSBmaWNoaWVyIEZJQ0hJRVIgZXQgbCdpbnPDqHJlIHNvdXMgbGEKKyAgICAgcG9zaXRpb24gZHUgY3Vyc2V1ci4KKworICA1LiA6ciAhZGlyICBsaXQgbGEgc29ydGllIGRlIGxhIGNvbW1hbmRlIGRpciBldCBsJ2luc8OocmUgc291cyBsYSBwb3NpdGlvbgorICAgICBkdSBjdXJzZXVyLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgIExlw6dvbiA2LjEgOiBMQSBDT01NQU5ERSBEJ09VVkVSVFVSRQogCiAKICoqIFRhcGV6ICBvICBwb3VyIG91dnJpciB1bmUgbGlnbmUgc291cyBsZSBjdXJzZXVyIGV0IHkgYWxsZXIgZW4gSW5zZXJ0aW9uLiAqKgogCiAgIDEuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdcOpZSAtLS0+IGNpLWRlc3NvdXMuCiAKLSAgMi4gVGFwZXogIG8gIChtaW51c2N1bGUpIHBvdXIgb3V2cmlyIHVuZSBsaWduZSBTT1VTIGxlIGN1cnNldXIgZXQgdm91cyB5Ci0gICAgIHBsYWNlciBlbiBtb2RlIEluc2VydGlvbi4KKyAgMi4gVGFwZXogbGEgbGV0dHJlICAgbyAgIG1pbnVzY3VsZSBwb3VyIG91dnJpciB1bmUgbGlnbmUgU09VUyBsZSBjdXJzZXVyIGV0CisgICAgIHZvdXMgeSBwbGFjZXIgZW4gbW9kZSBJbnNlcnRpb24uCiAKLSAgMy4gUHVpcyByZWNvcGlleiBsYSBsaWduZSBtYXJxdcOpZSAtLS0+IGV0IGFwcHV5ZXogc3VyIDzDiWNoYXA+IHBvdXIgcXVpdHRlcgotICAgICBsZSBtb2RlIEluc2VydGlvbi4KKyAgMy4gUHVpcyB0YXBleiBkdSB0ZXh0ZSBldCBhcHB1eWV6IDzDiWNoYXA+IHBvdXIgc29ydGlyIGR1IG1vZGUgSW5zZXJ0aW9uLgogCi0tLS0+IEVuIHRhcGFudAlvICBsZSBjdXJzZXVyIHNlIG1ldCBzdXIgbGEgbGlnbmUgb3V2ZXJ0ZSwgZW4gbW9kZSBJbnNlcnRpb24uCistLS0+IEVuIHRhcGFudCAgbyAgbGUgY3Vyc2V1ciBzZSBtZXQgc3VyIGxhIGxpZ25lIG91dmVydGUsIGVuIG1vZGUgSW5zZXJ0aW9uLgogCiAgIDQuIFBvdXIgb3V2cmlyIHVuZSBsaWduZSBhdSBERVNTVVMgZHUgY3Vyc2V1ciwgdGFwZXogc2ltcGxlbWVudCB1biAgTwogICAgICBtYWp1c2N1bGUsIHBsdXTDtHQgcXUndW4gIG8gIG1pbnVzY3VsZS4gRmFpdGVzIHVuIGVzc2FpIHN1ciBsYSBsaWduZQogICAgICBjaS1kZXNzb3VzLgotT3V2cmV6IHVuZSBsaWduZSBjaS1kZXNzdXMgZW4gdGFwYW50IE1BSi1PIGxvcnNxdWUgbGUgY3Vyc2V1ciBlc3QgaWNpLgogCi0KLQotfn5+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+Ci0JCQkgICAgICBMZcOnb24gNi4yIDogTCdBSk9VVAotCi0KLQkgICAgKiogVGFwZXogIGEgIHBvdXIgaW5zw6lyZXIgZHUgdGV4dGUgQVBSw4hTIGxlIGN1cnNldXIuICoqCi0KLSAgMS4gUGxhY2V6IGxlIGN1cnNldXIgw6AgbGEgZmluIGRlIGxhIHByZW1pw6hyZSBsaWduZSBtYXJxdcOpZSAtLS0+IGNpLWRlc3NvdXMKLSAgICAgZW4gdGFwYW50CSQgIGVuIG1vZGUgTm9ybWFsLgotCi0gIDIuIFRhcGV6IHVuICBhICAobWludXNjdWxlKSBwb3VyIGFqb3V0ZXIgZHUgdGV4dGUgQVBSw4hTIGxlIGNhcmFjdMOocmUgc2l0dcOpCi0gICAgIHNvdXMgbGUgY3Vyc2V1ci4gKCBBICBtYWp1c2N1bGUgYWpvdXRlIGR1IHRleHRlIMOgIGxhIGZpbiBkZSBsYSBsaWduZSkuCi0KLU5vdGU6IENlY2kgw6l2aXRlIGRlIHRhcGVyICBpICwgbGUgZGVybmllciBjYXJhY3TDqHJlLCBsZSB0ZXh0ZSDDoCBpbnPDqXJlciwKLSAgICAgIDzDiWNoYXA+LCBjdXJzZXVyLcOgLWRyb2l0ZSwgZXQgZmluYWxlbWVudAl4ICwganVzdGUgcG91ciBham91dGVyIGR1Ci0gICAgICB0ZXh0ZSDDoCBsYSBmaW4gZCd1bmUgbGlnbmUgIQotCi0gIDMuIE1haW50ZW5hbnQsIGNvbXBsw6l0ZXogbGEgcHJlbWnDqHJlIGxpZ25lLiBOb3RleiDDqWdhbGVtZW50IHF1ZSBsJ2Fqb3V0IGVzdAotICAgICBpZGVudGlxdWUgYXUgbW9kZSBJbnNlcnRpb24sIGhvcm1pcyBsYSBwb3NpdGlvbiBvw7kgbGUgdGV4dGUgZXN0IGluc8OpcsOpLgotCi0tLS0+IENldHRlIGxpZ25lIHZvdXMgcGVybWV0IGRlIHByYXRpcXVlcgotLS0tPiBDZXR0ZSBsaWduZSB2b3VzIHBlcm1ldCBkZSBwcmF0aXF1ZXIgbCdham91dCBkZSB0ZXh0ZSBlbiBmaW4gZGUgbGlnbmUuCistLS0+IE91dnJleiB1bmUgbGlnbmUgY2ktZGVzc3VzIGVuIHRhcGFudCBPIGxvcnNxdWUgbGUgY3Vyc2V1ciBlc3QgaWNpLgogCiAKIH5+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+fgotCQlMZcOnb24gNi4zIDogVU5FIEFVVFJFIFZFUlNJT04gRFUgUkVNUExBQ0VNRU5UCisgICAgICAgICAgICAgICAgICAgICAgICBMZcOnb24gNi4yIDogTEEgQ09NTUFOREUgRCdBSk9VVAorCisKKyAgICAgICAgICAgICoqIFRhcGV6ICBhICBwb3VyIGluc8OpcmVyIGR1IHRleHRlIEFQUsOIUyBsZSBjdXJzZXVyLiAqKgorCisgIDEuIFBsYWNleiBsZSBjdXJzZXVyIGF1IGTDqWJ1dCBkZSBsYSBsaWduZSBtYXJxdcOpZSAtLS0+IGNpLWRlc3NvdXMuCisKKyAgMi4gQXBwdXlleiAgZSAganVzcXUnw6AgY2UgcXVlIGxlIGN1cnNldXIgc29pdCBzdXIgbGEgZmluIGRlICBsaSAuCisKKyAgMy4gQXBwdXlleiAgYSAgKG1pbnVzY3VsZSkgcG91ciBham91dGVyIGR1IHRleHRlIEFQUsOIUyBsZSBjdXJzZXVyLgorCisgIDQuIENvbXBsw6l0ZXogbGUgbW90IGNvbW1lIGRhbnMgbGEgbGlnbmUgZGVzc291cy4gQXBwdXlleiA8w4ljaGFwPiBwb3VyCisgICAgIHNvcnRpciBkdSBtb2RlIEluc2VydGlvbi4KKworICA1LiBVdGlsaXNleiAgZSAgcG91ciB2b3VzIGTDqXBsYWNlciB2ZXJzIGxlIG1vdCBpbmNvbXBsZXQgc3VpdmFudCBldAorICAgICByw6lww6l0ZXogbGVzIMOpdGFwZXMgMyBldCA0LgorCistLS0+IENldHRlIGxpIHZvdXMgcGVybSBkZSBwcmF0aXEgbCdham91dCBkZSB0IGRhbnMgdW5lIGxpZ25lLgorLS0tPiBDZXR0ZSBsaWduZSB2b3VzIHBlcm1ldCBkZSBwcmF0aXF1ZXIgbCdham91dCBkZSB0ZXh0ZSBkYW5zIHVuZSBsaWduZS4KKworTk9URSA6ICBhLCBpLCBBIHZvbnQgdG91cyBkYW5zIGxlIG3Dqm1lIG1vZGUgSW5zZXJ0aW9uLCBsYSBzZXVsZSBkaWZmw6lyZW5jZQorICAgICAgICBlc3QgbCdlbmRyb2l0IG/DuSBsZXMgY2FyYWN0w6hyZXMgc29udCBpbnPDqXLDqXMuCisKKworfn5+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+CisgICAgICAgICAgICAgICAgICAgTGXDp29uIDYuMyA6IFVORSBBVVRSRSBNQU5Jw4hSRSBERSBSRU1QTEFDRVIKIAogCiAgICAgICAgKiogVGFwZXogdW4gIFIgIG1hanVzY3VsZSBwb3VyIHJlbXBsYWNlciBwbHVzIGQndW4gY2FyYWN0w6hyZS4gKioKIAogICAxLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnDqHJlIGxpZ25lIG1hcnF1w6llIC0tLT4gY2ktZGVzc291cy4KKyAgICAgRMOpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxlIGTDqWJ1dCBkdSBwcmVtaWVyIHh4eCAuCiAKLSAgMi4gUGxhY2V6IGxlIGN1cnNldXIgYXUgZMOpYnV0IGR1IHByZW1pZXIgbW90IHF1aSBkaWZmw6hyZSBkZSBsYSBzZWNvbmRlIGxpZ25lCi0gICAgIG1hcnF1w6llIC0tLT4gKGxlIG1vdCAnY2VsbGUnKS4KKyAgMi4gQXBwdXlleiBtYWludGVuYW50ICBSICBldCB0YXBleiBsZSBub21icmUgZGVzc291cyBkYW5zIGxhIGRldXhpw6htZSBsaWduZSwKKyAgICAgZGUgbWFuacOocmUgw6AgcmVtcGxhY2VyIGxlIHh4eCAuCiAKLSAgMy4gUHVpcyB0YXBleiAgUiAgZXQgcmVtcGxhY2V6IGxlIHJlc3RlIGR1IHRleHRlIGRlIGxhIHByZW1pw6hyZSBsaWduZSBlbgotICAgICB0YXBhbnQgcGFyIGRlc3N1cyBjZWx1aS1jaSwgZGUgbWFuacOocmUgw6AgcmVuZHJlIGxhIHByZW1pw6hyZSBsaWduZQotICAgICBpZGVudGlxdWUgw6AgbGEgc2Vjb25kZS4KKyAgMy4gQXBwdXlleiA8w4ljaGFwPiBwb3VyIHF1aXR0ZXIgbGUgbW9kZSBSZW1wbGFjZW1lbnQuIE5vdGV6IHF1ZSBsZSByZXN0ZSBkZQorICAgICBsYSBsaWduZSBkZW1ldXJlIGluY2hhbmfDqS4KIAotLS0tPiBQb3VyIHJlbmRyZSBjZXR0ZSBsaWduZSBpZGVudGlxdWUgw6AgY2VsbGUgZHUgZGVzc291cyB1dGlsaXNleiBsZSBjbGF2aWVyLgotLS0tPiBQb3VyIHJlbmRyZSBjZXR0ZSBsaWduZSBpZGVudGlxdWUgw6AgbGEgc2Vjb25kZSwgdGFwZXogUiBldCBsYSBjb3JyZWN0aW9uLgorICA0LiBSw6lww6l0ZXogbGVzIMOpdGFwZXMgcG91ciByZW1wbGFjZXIgbGVzIHh4eCByZXN0YW50cy4KIAotICA0LiBOb3RleiBxdWUgbG9yc3F1ZSB2b3VzIGFwcHV5ZXogPMOJY2hhcD4sIGxlIHRleHRlIHF1aSBuJ2EgcGFzIGVuY29yZSDDqXTDqQotICAgICByZW1wbGFjw6kgcmVzdGUuCiAKKy0tLT4gTCdham91dCBkZSAxMjMgw6AgeHh4IGRvbm5lIHh4eC4KKy0tLT4gTCdham91dCBkZSAxMjMgw6AgNDU2IGRvbm5lIDU3OS4KKworTk9URSA6IExlIG1vZGUgUmVtcGxhY2VtZW50IGVzdCBjb21tZSBsZSBtb2RlIEluc2VydGlvbiwgbWFpcyB0b3VzIGxlcworICAgICAgIGNhcmFjdMOocmVzIHRhcMOpcyBlZmZhY2VudCB1biBjYXJhY3TDqHJlIGV4aXN0YW50LgogCiAKIH5+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+fgotCQkgICAgICAgTGXDp29uIDYuNCA6IFLDiUdMQUdFIERFUyBPUFRJT05TCisgICAgICAgICAgICAgICAgICAgICBMZcOnb24gNi40IDogQ09QSUVSIEVUIENPTExFUiBEVSBURVhURQogCiAKLSAgKiogUsOpZ2xvbnMgdW5lIG9wdGlvbiBhZmluIHF1ZSBsYSByZWNoZXJjaGUgZXQgbGEgc3Vic3RpdHV0aW9uIGlnbm9yZW50IGxhCi0gICAgIGNhc3NlIGRlcyBjYXJhY3TDqHJlcy4gKioKKyAgICoqIFV0aWxpc2V6IGwnb3DDqXJhdGV1ciAgeSAgcG91ciBjb3BpZXIgZHUgdGV4dGUgZXQgIHAgIHBvdXIgbGUgY29sbGVyICoqCiAKLSAgMS4gUmVjaGVyY2hleiAnaWdub3JlJyBlbiB0YXBhbnQgIC9pZ25vcmUgLgorICAxLiBBbGxleiDDoCBsYSBsaWduZSBtYXJxdcOpZSAtLS0+IGNpLWRlc3NvdXMgZXQgcGxhY2V6IGxlIGN1cnNldXIgYXByw6hzICJhKSIuCisKKyAgMi4gRMOpbWFycmV6IGxlIG1vZGUgVmlzdWVsIGF2ZWMgIHYgIGV0IGTDqXBsYWNleiBsZSBjdXJzZXVyIGp1c3RlIGRldmFudAorICAgICAicHJlbWllciIuCisKKyAgMy4gVGFwZXogIHkgIHBvdXIgY29waWVyIGxlIHRleHRlIGVuIHN1cmJyaWxsYW5jZS4KKworICA0LiBEw6lwbGFjZXogbGEgY3Vyc2V1ciDDoCBsYSBmaW4gZGUgbGEgbGlnbmUgc3VpdmFudGUgOiAgIGokCisKKyAgNS4gVGFwZXogIHAgIHBvdXIgY29sbGVyIGxlIHRleHRlLiBQdWlzIHRhcGV6IDogIHVuIHNlY29uZCA8w4ljaGFwPiAuCisKKyAgNi4gVXRpbGlzZXogbGUgbW9kZSBWaXN1ZWwgcG91ciBzw6lsZWN0aW9ubmVyICLDqWzDqW1lbnQiLCBjb3BpZXogbGUgYXZlYyAgeSAgLAorICAgICBkw6lwbGFjZXogdm91cyDDoCBsYSBmaW4gZGUgbGEgbGlnbmUgc3VpdmFudCBhdmVjICBqJCAgZXQgY29sbGV6IGxlIHRleHRlCisgICAgIMOgIGNldCBlbmRyb2l0IGF2ZWMgIHAgLgorCistLS0+ICBhKSBjZWNpIGVzdCBsZSBwcmVtaWVyIMOpbMOpbWVudC4KKyAgICAgIGIpCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICBMZcOnb24gNi40IDogUsOJR0xBR0UgREVTIE9QVElPTlMKKworCisgICAgKiogUsOpZ2xvbnMgdW5lIG9wdGlvbiBhZmluIHF1ZSBsYSByZWNoZXJjaGUgZXQgbGEgc3Vic3RpdHV0aW9uIGlnbm9yZSBsYQorICAgICAgIGNhc3NlIGRlcyBjYXJhY3TDqHJlcy4gKioKKworICAxLiBSZWNoZXJjaGV6ICdpZ25vcmUnIGVuIHRhcGFudCA6ICAgL2lnbm9yZSA8RW50csOpZT4KICAgICAgUsOpcMOpdGV6IGNlY2kgcGx1c2lldXJzIGZvaXMgZW4gdXRpbGlzYW50IGxhIHRvdWNoZSAgbiAuCiAKLSAgMi4gQWN0aXZleiBsJ29wdGlvbiAnaWMnIChJZ25vcmVyIGNhc3NlKSBlbiB0YXBhbnQgIDpzZXQgaWMgLgorICAyLiBBY3RpdmV6IGwnb3B0aW9uICdpYycgKGlnbm9yZXIgY2Fzc2UpIGVuIHRhcGFudCAgOnNldCBpYyAuCiAKLSAgMy4gUHVpcyBwb3Vyc3VpdmV6IHZvdHJlIHJlY2hlcmNoZSBlbiB1dGlsaXNhbnQgIG4gLgotICAgICBSw6lww6l0ZXogY2V0dGUgcmVjaGVyY2hlIHBsdXNpZXVycyBmb2lzIGF2ZWMgbGEgdG91Y2hlICBuIC4KKyAgMy4gUHVpcyBjaGVyY2hleiAnaWdub3JlJyBkZSBub3V2ZWF1IGVuIHV0aWxpc2FudCAgbiAuCisgICAgIFJlbWFycXVleiBxdWUgSWdub3JlIGV0IElHTk9SRSBzb250IG1haW50ZW5hbnQgYXVzc2kgdHJvdXbDqXMuCiAKICAgNC4gQWN0aXZleiBsZXMgb3B0aW9ucyAnaGxzZWFyY2gnIGV0ICdpbmNzZWFyY2gnIGF2ZWMgIDpzZXQgaGxzIGlzIC4KIAogICA1LiBQdWlzIHJlY29tbWVuY2V6IHVuZSByZWNoZXJjaGUsIGV0IGZhaXRlcyBiaWVuIGF0dGVudGlvbiDDoCBjZSBxdWkgc2UKLSAgICAgcHJvZHVpdDogIC9pZ25vcmUgLgorICAgICBwcm9kdWl0IDogIC9pZ25vcmUgPEVudHLDqWU+CiAKLSAgNi4gUG91ciBpbnRlcnJvbXByZSBsYSBtaXNlIGVuIHN1cmJyaWxsYW5jZSBkZXMgcsOpc3VsdGF0cywgdGFwZXo6Ci0gICAgIDpub2hsc2VhcmNoCisgIDYuIFBvdXIgZMOpc2FjdGl2ZXIgJ2lnbm9yZXIgY2Fzc2UnLCBlbnRyZXogOiAgOnNldCBub2ljCiAKLX5+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+fgotCQkJICAgICBSw4lTVU3DiSBERSBMQSBMRcOHT04gNgorTk9URSA6IFBvdXIgZW5sZXZlciBsYSBzdXJicmlsbGFuY2UgZGVzIHLDqXN1bHRhdHMsIGVudHJleiA6ICAgOm5vaGxzZWFyY2gKIAotCi0gIDEuIFRhcGVyICBvICBvdXZyZSB1bmUgbGlnbmUgU09VUyBsZSBjdXJzZXVyIGV0IHkgcGxhY2UgY2VsdWktY2kgZW4gbW9kZQotICAgICBJbnNlcnRpb24uIFRhcGVyIHVuICBPICBtYWp1c2N1bGUgb3V2cmUgdW5lIGxpZ25lIGF1IERFU1NVUyBkZSBsYSBsaWduZQotICAgICBvw7kgc2UgdHJvdXZlIGxlIGN1cnNldXIuCi0KLSAgMi4gVGFwZXogdW4gIGEgIHBvdXIgaW5zw6lyZXIgZHUgdGV4dGUgQVBSw4hTIGxlIGNhcmFjdMOocmUgb8O5IHNlIHRyb3V2ZSBsZQotICAgICBjdXJzZXVyLiBUYXBlciB1bglBICBtYWp1c2N1bGUgYWpvdXRlIGR1IHRleHRlIGF1dG9tYXRpcXVlbWVudCDDoCBsYSBmaW4KLSAgICAgZGUgbGEgbGlnbmUuCi0KLSAgMy4gVGFwZXIgdW4gIFIgIG1hanVzY3VsZSBhY3RpdmUgbGUgbW9kZSBSZW1wbGFjZW1lbnQganVzcXUnw6AgY2UgcXVlIGxhCi0gICAgIHRvdWNoZSAgPMOJY2hhcD4gIHNvaXQgYXBwdXnDqWUgcG91ciBlbiBzb3J0aXIuCi0KLSAgNC4gVGFwZXIgIDpzZXQgeHh4ICBhY3RpdmUgbCdvcHRpb24gJ3h4eCcuCi0KLQotCi0KLQorTk9URSA6IFNpIHZvdXMgdm91bGV6IGlnbm9yZXIgbGEgY2Fzc2UgdW5pcXVlbWVudCBwb3VyIHVuZSByZWNoZXJjaGUsIHV0aWxpc2V6CisgICAgICAgXGMgIGRhbnMgbGEgcGhyYXNlIDogICAvaWdub3JlXGMgIDxFbnRyw6llPgogCiAKIH5+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+fgotCQkgICAgIExlw6dvbiA3IDogQUNDw4lERVIgw4AgTCdBSURFIEVOIExJR05FCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiA2CiAKLQkJICAqKiBVdGlsaXNlciBsZSBzeXN0w6htZSBkJ2FpZGUgZW4gbGlnbmUuICoqCiAKLSAgVmltIGEgdW4gc3lzdMOobWUgY29tcGxldCBkJ2FpZGUgZW4gbGlnbmUuICBQb3VyIHkgYWNjw6lkZXIsIGVzc2F5ZXogbCd1bmUgZGUKLSAgY2VzIHRyb2lzIG3DqXRob2RlczoKLQktIGFwcHV5ZXogbGEgdG91Y2hlIDxIZWxwPiAoc2kgdm91cyBlbiBhdmV6IHVuZSkKLQktIGFwcHV5ZXogbGEgdG91Y2hlIDxGMT4gKHNpIHZvdXMgZW4gYXZleiB1bmUpCi0JLSB0YXBleiAgOmhlbHAgPEVudHLDqWU+CisgIDEuIFRhcGVyICBvICBvdXZyZSB1bmUgbGlnbmUgU09VUyBsZSBjdXJzZXVyIGV0IGTDqW1hcnJlIGxlIG1vZGUgSW5zZXJ0aW9uLgorICAgICBUYXBlciAgTyAgb3V2cmUgdW5lIGxpZ25lIGF1IERFU1NVUyBkdSBjdXJzZXVyLgogCi0gIFRhcGV6ICA6cSA8RW50csOpZT4gIHBvdXIgZmVybWVyIGxhIGZlbsOqdHJlIGQnYWlkZS4KKyAgMi4gVGFwZXIgIGEgIHBvdXIgaW5zw6lyZXIgZHUgdGV4dGUgQVBSw4hTIGxlIGN1cnNldXIuCisgICAgIFRhcGVyICBBICBwb3VyIGluc8OpcmVyIGR1IHRleHRlIGFwcsOocyBsYSBmaW4gZGUgbGlnbmUuCisKKyAgMy4gVGFwZXIgIGUgIGTDqXBsYWNlIMOgIGxhIGZpbiBkdSBtb3QuCisKKyAgNC4gVGFwZXIgIHkgIGNvcGllIGR1IHRleHRlLCAgcCAgbGUgY29sbGUuCisKKyAgNS4gVGFwZXIgIFIgIG1hanVzY3VsZSBhY3RpdmUgbGUgbW9kZSBSZW1wbGFjZW1lbnQganVzcXUnw6AgY2UgcXUnIDzDiWNoYXA+CisgICAgIHNvaXQgYXBwdXnDqS4KKworICA2LiBUYXBlciAgIjpzZXQgeHh4IiAgYWN0aXZlIGwnb3B0aW9uICJ4eHgiLiBRdWVscXVlcyBvcHRpb25zIHNvbnQgOgorICAgICAgICAnaWMnICAnaW5nbm9yZWNhc2UnIHBvdXIgaWdub3JlciBsYSBjYXNzZSBsb3JzIGRlcyByZWNoZXJjaGVzLgorICAgICAgICAnaXMnICAnaW5jc2VhcmNoJyAgIHBvdXIgbW9udHJlciBsZXMgYXBwYXJpZW1lbnRzIHBhcnRpZWxzLgorICAgICAgICAnaGxzJyAnaGxzZWFyY2gnICAgIHBvdXIgbWV0dHJlIGVuIHN1cmJyaWxsYW5jZSBsZXMgYXBwYXJpZW1lbnRzLgorCisKK35+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+fgorICAgICAgICAgICAgICAgICAgICAgICAgIExlw6dvbiA3LjEgOiBPQlRFTklSIERFIEwnQUlERQorCisKKyAgICAgICAgICAgICAgICAgICoqIFV0aWxpc2VyIGxlIHN5c3TDqG1lIGQnYWlkZSBlbiBsaWduZS4gKioKKworICBWaW0gYSB1biBzeXN0w6htZSBjb21wbGV0IGQnYWlkZSBlbiBsaWduZS4gUG91ciB5IGFjY8OpZGVyLCBlc3NheWV6IGwndW5lIGRlCisgIGNlcyB0cm9pcyBtw6l0aG9kZXMgOgorICAgICAgICAtIGFwcHV5ZXogbGEgdG91Y2hlIDxIZWxwPiAoc2kgdm91cyBlbiBhdmV6IHVuZSkKKyAgICAgICAgLSBhcHB1eWV6IGxhIHRvdWNoZSA8RjE+IChzaSB2b3VzIGVuIGF2ZXogdW5lKQorICAgICAgICAtIHRhcGV6ICA6aGVscCA8RW50csOpZT4KKworCisgIExpc2V6IGxlIHRleHRlIGRhbnMgbGEgZmVuw6p0cmUgZCdhaWRlIHBvdXIgc2F2b2lyIGNvbW1lbnQgZm9uY3Rpb25uZSBsJ2FpZGUuCisgIFRhcGV6ICBDVFJMLVcgQ1RSTC1XICAgcG91ciBzYXV0ZXIgZCd1bmUgZmVuw6p0cmUgw6AgbCdhdXRyZS4KKyAgVGFwZXogIDpxIDxFbnRyw6llPiAgICAgcG91ciBmZXJtZXIgbGEgZmVuw6p0cmUgZCdhaWRlLgogCiAgIFZvdXMgcG91dmV6IGFjY8OpZGVyIMOgIGwnYWlkZSBzdXIgw6AgcGV1IHByw6hzIG4naW1wb3J0ZSBxdWVsIHN1amV0IGVuIGRvbm5hbnQKICAgZGVzIGFyZ3VtZW50cyDDoCBsYSBjb21tYW5kZSAgOmhlbHAgLiBFc3NheWV6IHBhciBleGVtcGxlIChuJ291YmxpZXogcGFzCi0gIGQnYXBwdXllciBzdXIgPEVudHLDqWU+KToKKyAgZCdhcHB1eWVyIHN1ciA8RW50csOpZT4pIDoKIAotCTpoZWxwIHcKLQk6aGVscCBjXzxUCi0JOmhlbHAgaW5zZXJ0LWluZGV4Ci0JOmhlbHAgdXNlci1tYW51YWwKKyAgICAgICAgOmhlbHAgdworICAgICAgICA6aGVscCBjX0NUUkwtRAorICAgICAgICA6aGVscCBjXzxUCisgICAgICAgIDpoZWxwIGluc2VydC1pbmRleAorICAgICAgICA6aGVscCB1c2VyLW1hbnVhbAogCiAKIH5+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+fgotCQkgICAgTGXDp29uIDggOiBDUsOJRVIgVU4gU0NSSVBUIERFIETDiU1BUlJBR0UKKyAgICAgICAgICAgICAgICAgICAgTGXDp29uIDcuMiA6IENSw4lFUiBVTiBTQ1JJUFQgREUgRMOJTUFSUkFHRQogCi0JCSAgKiogQWN0aXZlciBsZXMgZm9uY3Rpb25uYWxpdMOpcyBkZSBWaW0uICoqCisgICAgICAgICAgICAgICAgICAgKiogQWN0aXZlciBsZXMgZm9uY3Rpb25uYWxpdMOpcyBkZSBWaW0uICoqCiAKICAgVmltIGEgYmVhdWNvdXAgcGx1cyBkZSBmb25jdGlvbm5hbGl0w6lzIHF1ZSBWaSwgbWFpcyBsYSBwbHVwYXJ0IGRlIGNlbGxlcy1jaQotICBzb250IGTDqXNhY3RpdsOpZXMgcGFyIGTDqWZhdXQuICBQb3VyIGNvbW1lbmNlciDDoCBsZXMgdXRpbGlzZXIsIHZvdXMgZGV2ZXoKKyAgc29udCBkw6lzYWN0aXbDqWVzIHBhciBkw6lmYXV0LiBQb3VyIGNvbW1lbmNlciDDoCBsZXMgdXRpbGlzZXIsIHZvdXMgZGV2ZXoKICAgY3LDqWVyIHVuIGZpY2hpZXIgInZpbXJjIi4KIAotICAxLiBDb21tZW5jZXogw6Agw6lkaXRlciBsZSBmaWNoaWVyICJ2aW1yYyIuIENlY2kgZMOpcGVuZCBkZSB2b3RyZSBzeXN0w6htZToKLQk6ZWRpdCB+Ly52aW1yYwkJCXBvdXIgVW5peAotCTplZGl0ICRWSU0vX3ZpbXJjCQlwb3VyIE1TLVdpbmRvd3MKKyAgMS4gQ29tbWVuY2V6IMOgIMOpZGl0ZXIgbGUgZmljaGllciAidmltcmMiLiBDZWNpIGTDqXBlbmQgZGUgdm90cmUgc3lzdMOobWUgOgorICAgICAgICA6ZWRpdCB+Ly52aW1yYyAgICAgICAgIHBvdXIgVW5peAorICAgICAgICA6ZWRpdCAkVklNL192aW1yYyAgICAgIHBvdXIgTVMtV2luZG93cwogCi0gIDIuIEludMOpZ3JleiBtYWludGVuYW50IGxlIHRleHRlIGR1IGZpY2hpZXIgInZpbXJjIiBkJ2V4ZW1wbGU6Ci0JOnJlYWQgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKyAgMi4gTGlzZXogbWFpbnRlbmFudCBsZSBmaWNoaWVyIGQnZXhlbXBsZSAidmltcmMiIDoKKyAgICAgICAgOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KIAotICAzLiBFbnJlZ2lzdHJleiBsZSBmaWNoaWVyIGF2ZWM6Ci0JOndyaXRlCisgIDMuIEVucmVnaXN0cmV6IGxlIGZpY2hpZXIgYXZlYyA6CisgICAgICAgIDp3CiAKLSAgTGEgcHJvY2hhaW5lIGZvaXMgcXVlIHZvdXMgZMOpbWFycmVyZXogVmltLCBsZSBzdXJsaWduYWdlIHN5bnRhY3RpcXVlIHNlcmEKLSAgYWN0aXbDqS4gVm91cyBwb3V2ZXogYWpvdXRlciB0b3VzIHZvcyByw6lnbGFnZXMgcHLDqWbDqXLDqXMgZGFucyBjZSBmaWNoaWVyLgorICBMYSBwcm9jaGFpbmUgZm9pcyBxdWUgdm91cyBkw6ltYXJyZXJleiBWaW0sIGxhIGNvbG9yYXRpb24gc3ludGF4aXF1ZSBzZXJhCisgIGFjdGl2w6llLiBWb3VzIHBvdXZleiBham91dGVyIHRvdXMgdm9zIHLDqWdsYWdlcyBwcsOpZsOpcsOpcyBkYW5zIGNlIGZpY2hpZXIKKyAgInZpbXJjIi4gUG91ciBwbHVzIGQnaW5mb3JtYXRpb25zLCB0YXBleiAgOmhlbHAgdmltcmMtaW50cm8KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZcOnb24gNy4zIDogQ09NUEzDiFRFTUVOVAorCisKKyAgICAgICAgICAqKiBDb21wbMOodGVtZW50IGRlIGxpZ25lIGRlIGNvbW1hbmRlIGF2ZWMgQ1RSTC1EIGV0IDxUQUI+ICoqCisKKyAgMS4gTWV0dGV6IFZpbSBzb2l0IGVuIG1vZGUgbm9uIGNvbXBhdGlibGUgOiAgIHNldCBub2NwCisKKyAgMi4gUmVnYXJkZXogcXVlbHMgZmljaGllcnMgZXhpc3RlbnQgZGFucyBsZSByw6lwZXJ0b2lyZSA6ICAhbHMgIG91ICAhZGlyCisKKyAgMy4gVGFwZXogbGUgZMOpYnV0IGQndW5lIGNvbW1hbmRlIDogICA6ZQorCisgIDQuIEFwcHV5ZXogIENUUkwtRCAgZXQgVmltIGFmZmljaGVyYSB1bmUgbGlzdGUgZGUgY29tbWFuZGVzIHF1aSBjb21tZW5jZW50CisgICAgIHBhciAiZSIuCisKKyAgNS4gQXBwdXlleiAgPFRBQj4gIGV0IFZpbSBjb21wbMOpdGVyYSBsZSBub20gZGUgbGEgY29tbWFuZGUgOiAgIjplZGl0IgorCisgIDYuIEFqb3V0ZXogbWFpbnRlbmFudCB1biBlc3BhY2UgZXQgbGUgZMOpYnV0IGQndW4gZmljaGllciBleGlzdGFudCA6CisgICAgIDplZGl0ICBGSUMKKworICA3ICBBcHB1eWV6ICA8VEFCPi4gVmltIHZhIGNvbXBsw6l0ZXIgbGUgbm9tIChzJ2lsIGVzdCB1bmlxdWUpLgorCitOT1RFIDogTGUgY29tcGzDqHRlbWVudCBmb25jdGlvbm5lIHBvdXIgZGUgbm9tYnJldXNlIGNvbW1hbmRlcy4gRXNzYXllegorICAgICAgIGQnYXBwdXllciBDVFJMLUQgZXQgPFRBQj4uIEMnZXN0IHV0aWxlIGVuIHBhcnRpY3VsaWVyIHBvdXIgIDpoZWxwIC4KKworCit+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+fn4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFLDiVNVTcOJIERFIExBIExFw4dPTiA3CisKKworICAxLiBUYXBleiAgOmhlbHAgIG91IGFwcHV5ZXogPEYxPiBvdSA8QWlkZT4gcG91ciBvdXZyaXIgbGEgZmVuw6p0cmUgZCdhaWRlLgorCisgIDIuIFRhcGV6ICA6aGVscCBjbWQgIHBvdXIgdHJvdXZlciBsJ2FpZGUgc3VyICBjbWQgLgorCisgIDMuIFRhcGV6ICBDVFJMLVcgQ1RSTC1XICBwb3VyIHNhdXRlciDDoCB1bmUgYXV0cmUgZmVuw6p0cmUuCisKKyAgNC4gVGFwZXogIDpxICBwb3VyIGZlcm1lciBsYSBmZW7DqnRyZSBkJ2FpZGUuCisKKyAgNS4gQ3LDqWV6IHVuIHNjcmlwdCBkZSBkw6ltYXJyYWdlIHZpbXJjIHBvdXIgY29uc2VydmVyIHZvcyByw6lnbGFnZXMgcHLDqWbDqXLDqXMuCisKKyAgNi4gUXVhbmQgdm91cyB0YXBleiB1bmUgY29tbWFuZGUgIDogIGFwcHV5ZXogQ1RSTC1EIHBvdXIgdm9pciBsZXMKKyAgICAgY29tcGzDqHRlbWVudHMgcG9zc2libGVzLiBBcHB1eWV6IDxUQUI+IHBvdXIgdXRpbGlzZXIgdW4gY29tcGzDqHRlbWVudC4KIAogCiB+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+fn4KIAotICBDZWNpIGNvbmNsdXQgbGUgVHV0b3JpZWwgVmltLiAgTGUgYnV0IMOpdGFpdCBkZSB2b3VzIGRvbm5lciB1biBicmVmIGFwZXLDp3UgZGUKKyAgQ2VjaSBjb25jbHV0IGxlIFR1dG9yaWVsIFZpbS4gTGUgYnV0IMOpdGFpdCBkZSB2b3VzIGRvbm5lciB1biBicmVmIGFwZXLDp3UgZGUKICAgbCfDqWRpdGV1ciBWaW0sIGp1c3RlIGFzc2V6IHBvdXIgdm91cyBwZXJtZXR0cmUgZCd1dGlsaXNlciBsJ8OpZGl0ZXVyCi0gIHJlbGF0aXZlbWVudCBmYWNpbGVtZW50LiAgSWwgZXN0IGxvaW4gZCfDqnRyZSBjb21wbGV0LCB2dSBxdWUgVmltIGEgYmVhdWNvdXAKLSAgYmVhdWNvdXAgcGx1cyBkZSBjb21tYW5kZXMuICBVbiBNYW51ZWwgZGUgbCd1dGlsaXNhdGV1ciBlc3QgZGlzcG9uaWJsZSBlbgotICBhbmdsYWlzOiAgOmhlbHAgdXNlci1tYW51YWwgLgorICByZWxhdGl2ZW1lbnQgZmFjaWxlbWVudC4gSWwgZXN0IGxvaW4gZCfDqnRyZSBjb21wbGV0LCB2dSBxdWUgVmltIGEgYmVhdWNvdXAKKyAgYmVhdWNvdXAgcGx1cyBkZSBjb21tYW5kZXMuIFVuIE1hbnVlbCBkZSBsJ3V0aWxpc2F0ZXVyIGVzdCBkaXNwb25pYmxlIGVuCisgIGFuZ2xhaXMgOiAgOmhlbHAgdXNlci1tYW51YWwgLgogCiAgIFBvdXIgY29udGludWVyIMOgIGTDqWNvdXZyaXIgZXQgw6AgYXBwcmVuZHJlIFZpbSwgaWwgZXhpc3RlIHVuIGxpdnJlIHRyYWR1aXQgZW4KICAgZnJhbsOnYWlzLiBJbCBwYXJsZSBwbHVzIGRlIFZpIHF1ZSBkZSBWaW0sIG1haXMgcG91cnJhIHZvdXMgw6p0cmUgdXRpbGUuCi0JTCfDqWRpdGV1ciBWaSAtIENvbGxlY3Rpb24gUHLDqWNpcyBldCBjb25jaXMgLSBwYXIgQXJub2xkIFJvYmJpbnMKLQnDiWRpdGV1cjogTydSZWlsbHkgRnJhbmNlCi0JSVNCTjogMi04NDE3Ny0xMDItNAorICAgICAgICBMJ8OpZGl0ZXVyIFZpIC0gQ29sbGVjdGlvbiBQcsOpY2lzIGV0IGNvbmNpcyAtIHBhciBBcm5vbGQgUm9iYmlucworICAgICAgICDDiWRpdGV1ciA6IE8nUmVpbGx5IEZyYW5jZQorICAgICAgICBJU0JOIDogMi04NDE3Ny0xMDItNAogCiAgIERldXggbGl2cmVzIGVuIGFuZ2xhaXMgc29udCDDqWdhbGVtZW50IG1lbnRpb25uw6lzIGRhbnMgbGEgdmVyc2lvbiBvcmlnaW5hbGUKICAgZGUgY2UgdHV0b3JpZWwsIGRvbnQgdW4gcXVpIHRyYWl0ZSBzcMOpY2lmaXF1ZW1lbnQgZGUgVmltLiBNZXJjaSBkZSB2b3VzIHkKLSAgcsOpZsOpcmVyIHNpIHZvdXMgw6p0ZXMgaW50w6lyZXNzw6kuCisgIHLDqWbDqXJlciBzaSB2b3VzIMOqdGVzIGludMOpcmVzc8Opcy4KIAogICBDZSB0dXRvcmllbCBhIMOpdMOpIMOpY3JpdCBwYXIgTWljaGFlbCBDLiBQaWVyY2UgZXQgUm9iZXJ0IEsuIFdhcmUgZGUgbCfDiWNvbGUKICAgZGVzIE1pbmVzIGR1IENvbG9yYWRvIGV0IHJlcHJlbmQgZGVzIGlkw6llcyBmb3VybmllcyBwYXIgQ2hhcmxlcyBTbWl0aCwKLSAgVW5pdmVyc3TDqSBkJ8OJdGF0IGR1IENvbG9yYWRvLiAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCisgIFVuaXZlcnNpdMOpIGQnw4l0YXQgZHUgQ29sb3JhZG8uIEUtbWFpbCA6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KIAogICBNb2RpZmnDqSBwb3VyIFZpbSBwYXIgQnJhbSBNb29sZW5hci4KLQogICBUcmFkdWl0IGVuIEZyYW7Dp2FpcyBwYXIgQWRyaWVuIEJlYXUsIGVuIGF2cmlsIDIwMDEuCi0gIEUtbWFpbDoJdmVyc2lvbi5mcmFuY2Fpc2VAZnJlZS5mcgotICBMYXN0IENoYW5nZToJMjAwMyBNYXkgMjkKKyAgRGVybmnDqHJlcyBtaXNlcyDDoCBqb3VyIHBhciBEb21pbmlxdWUgUGVsbMOpLgorCisgIEUtbWFpbCA6ICAgICAgZG9taW5pcXVlLnBlbGxlQGdtYWlsLmNvbQorICBMYXN0IENoYW5nZSA6IDIwMDggTm92IDIzCiB+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+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuaHUgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmh1CmluZGV4IDg0ZTZiZDQuLjZmYjMyNzAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuaHUKKysrIGIvcnVudGltZS90dXRvci90dXRvci5odQpAQCAtMSw1ICsxLDUgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLT0gICAg3CBkIHYg9iB6IPYgbCBqIPwgayAgIGEgICBWIEkgTSAgIFQgdSB0IG8gciBiIGEgbiAgLSAgICAxLjUt9nMgIHZlcnpp8yA9PT0KKz09INwgZCB2IPYgeiD2IGwgaiD8IGsgICBhICAgViBJIE0gLSBvIGsgdCBhIHQg8yBiIGEgbiAgLSAgICAxLjUt9nMgIHZlcnpp8yAgPT0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgICBBIFZpbSBlZ3kgbmFneW9uIGhhdOlrb255IHN6ZXJrZXN6dPUsIGFtZWxueWVrIHJlbmdldGVnIHV0YXPtdOFzYQpAQCAtMzgsNyArMzgsNyBAQAogICAyLiBUYXJ0c2EgbGVueW9tdmEgYSBsZWZlbOl0IChqKSwgYWtrb3IgaXNt6XRs9WRpayEKIC0tLT4gTW9zdCB0dWRqYSwgaG9neWFuIG1laGV0IGEga/Z2ZXRrZXr1IGxlY2vpcmUuCiAKLSAgMy4gQSBsZWZlbOkgZm9tYiBoYXN6buFsYXThdmFsIG1lbmplbiBhIDEuMi4gbGVja+lyZSEKKyAgMy4gQSBsZWZlbOkgZ29tYiBoYXN6buFsYXThdmFsIG1lbmplbiBhIDEuMi4gbGVja+lyZSEKIAogTWVnajogSGEgbmVtIGJpenRvcyBiZW5uZSwgbWl0IG55b21vdHQgbWVnLCBueW9tamEgbWVnIGF6IDxFU0M+LWV0LCBob2d5CiAgICAgICBub3Jt4WwgbfNkYmEga2Vy/Gxq9m4sIOlzIGlzbel0ZWxqZSBtZWcgYSBwYXJhbmNzb3QhCkBAIC02MCw4ICs2MCw4IEBACiAgICAgIEhhIG1lbnRlbmkgc3plcmV0bukgYSB24Wx0b3rhc29rYXQg6XMga2ls6XBuaSwg7XJqYToKIAkJCQk6d3EgIDxFTlRFUj4KIAotICAzLiBBbWlrb3IgYSBzaGVsbCBwcm9tcHRvdCBs4XRqYSwg7XJqYSBiZSBhIHBhcmFuY3NvdCwgYW1lbHkgZWJiZSBhCi0gICAgIHR1dG9yYmEgaG96emE6CisgIDMuIEFtaWtvciBhIHNoZWxsIHByb21wdG90IGzhdGphLCDtcmphIGJlIGEgcGFyYW5jc290LCBhbWVseSBlYmJlIGF6CisgICAgIG9rdGF082JhIGhvenphOgogICAgICBFeiB2YWzzc3rtbvtsZWc6CXZpbXR1dG9yIDxFTlRFUj4KICAgICAgTm9ybeFsaXMgZXNldGJlbiBlenQg7XJu4ToJdmltIHR1dG9yLmh1IDxFTlRFUj4KIApAQCAtMjMwLDcgKzIzMCw3IEBACiAKIAogfn5+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+Ci0JCQkgMi41LiAgbGVja2U6IEEgVklTU1pBVk9OwVMgKFVORE8pIFBBUkFOQ1MKKwkJICAgMi41LiAgbGVja2U6IEEgVklTU1pBVk9OwVMgKFVORE8pIFBBUkFOQ1MKIAogCiAqKiB1IGfpcGVs6XPpdmVsIHZpc3N6YXZvbmhhdPMgYXogdXRvbHPzIHBhcmFuY3MsIFUgYXogZWfpc3ogc29ydCBoZWx5cmXhbGztdGphLiAqKgpAQCAtMjQ1LDkgKzI0NSw5IEBACiAgIDcuIENUUkwtUiAoQ1RSTCBnb21iIGxlbnlvbeFzYSBtZWxsZXR0IPxzc/ZuIFItdCkgcOFyc3pvciBjc2lu4WxqYSD6anJhIGEKICAgICAgdmlzc3phdm9udCBwYXJhbmNzb2thdCAocmVkbykhCiAKLS0tLT4gSmF27e10c2QgYSBoaGli4WthYXQgZWJiYmVuIGEgc29vb3JiYW4gbWFqZCDhbGztdHNhIHZpc3N6YWFhIGF6IGVyZWRldGl0LgorLS0tPiBKYXbt7XRzYSBhIGhoaWLha2FhdCBlYmJiZW4gYSBzb29vcmJhbiBtYWpkIOFsbO10c2Egdmlzc3phYWEgYXogZXJlZGV0aXQuCiAKLSAgOC4gRXplayBuYWd5b24gaGFzem5vcyBwYXJhbmNzb2suIE1vc3QgdWdhcmpvbiBhIDIuIGxlY2tlIPZzc3plZm9nbGFs82rhcmEuCisgIDguIEV6ZWsgbmFneW9uIGhhc3pub3MgcGFyYW5jc29rLiBNb3N0IHVnb3Jqb24gYSAyLiBsZWNrZSD2c3N6ZWZvZ2xhbPNq4XJhLgogCiAKIApAQCAtMjU3LDcgKzI1Nyw3IEBACiAKICAgMS4gVPZybOlzIGEga3Vyem9ydPNsIGEgc3rzIHbpZ+lpZzogICAgZHcKIAotICAyLiBU9nJs6XMgYSBrdXJ6b3J082wgYSBzevMgduln6WlnOiAgICBkJAorICAyLiBU9nJs6XMgYSBrdXJ6b3J082wgYSBzb3Igduln6WlnOiAgICBkJAogCiAgIDMuIEVn6XN6IHNvciB09nJs6XNlOiAgICBkZAogCkBAIC0yNzUsNyArMjc1LDcgQEAKICAgICAgVmlzc3phdm9u4XNvayB2aXNzemF2b27hc2E6CSAgICAgQ1RSTC1SCiAKIH5+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+fgotCQkJIDMuMS4gIGxlY2tlOiBBIFBVVCBQQVJBTkNTCisJCTMuMS4gIGxlY2tlOiBBIEJFSUxMRVNaVMlTIChQVVQpIFBBUkFOQ1MKIAogCiAgICoqIHAgIGxl/HTpc+l2ZWwgYXogdXRvbHPzbmFrIHT2cvZsdGV0IGEga3Vyem9yIHV04W4gaWxsZXN6aGV0avxrLiAqKgpAQCAtMjg0LDggKzI4NCw4IEBACiAKICAgMi4gZGQgbGX8dOlz6XZlbCB09nL2bGr8ayBhIHNvcnQg6XMgZWx06XJvbPNkaWsgYSBWaW0gcHVmZmVy6WJlbi4KIAotICAzLiBNb3pnYXNzdWsgYSBrdXJ6b3J0IEFG1kzJIGEgc29yIGb2bOksIGFob3bhIG1vemdhdG5pIHN6ZXJldG7pbmsgYQotICAgICB09nL2bHQgc29ydC4KKyAgMy4gTW96Z2Fzc3VrIGEga3Vyem9ydCBhemVs9XR0IGEgIHNvciBFTNVUVEkgc29yYmEsIGFob3bhIG1vemdhdG5pCisgICAgIHN6ZXJldG7pbmsgYSB09nL2bHQgc29ydC4KIAogICA0LiBOb3Jt4WwgbfNkYmFuIO1yanVuayAgcCAgIGJldPt0IGEgdPZy9mx0IHNvciBiZWlsbGVzenTpc+loZXouCiAKQEAgLTI5OSw3ICsyOTksNyBAQAogCiAKIH5+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+fgotCQkgICAgICAgMy4yLiAgbGVja2U6IEEgUkVQTEFDRSBQQVJBTkNTCisJCSAgICAgICAzLjIuICBsZWNrZTogQVogwVTNUsFTIChSRVBMQUNFKSBQQVJBTkNTCiAKIAogKiogciAg6XMgIGEga2FyYWt0ZXJlayBsZfx06XPpdmVsIGEga3Vyem9yIGFsYXR0aSBrYXJha3RlcnQgbWVnduFsdG96dGF0anVrLiAqKgpAQCAtMzIxLDcgKzMyMSw3IEBACiAKIAogfn5+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+Ci0JCQkzLjMuICBsZWNrZTogQSBDSEFOR0UgUEFSQU5DUworCQkJMy4zLiAgbGVja2U6IEEgQ1NFUkUgKENIQU5HRSkgUEFSQU5DUwogCiAKIAkgICAqKiBBIHN68yBlZ3kgculzeuluZWsgbWVnduFsdG96dGF04XPhaG96IO1yanVrOiAgY3cgLiAqKgpAQCAtNDE1LDcgKzQxNSw3IEBACiAKIAogfn5+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+Ci0JCQk0LjIuICBsZWNrZTogQSBTRUFSQ0ggUEFSQU5DUworCQkJNC4yLiAgbGVja2U6IEEgS0VSRVPJUyAoU0VBUkNIKSBQQVJBTkNTCiAKIAogICAqKiAvIG1hamQgYSBr7XbhbnQga2lmZWpleulzIGJl7XLhc+F2YWwga2VyZXNoZXRq/GsgbWVnIGEga2lmZWpleulzdC4gKioKQEAgLTQ1OSw3ICs0NTksNyBAQAogCiAKIH5+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+fgotCQkgICAgICA0LjQuICBsZWNrZTogQSBISULBSyBLSUpBVs1UwVPBTkFLIEVHWSBN00RKQQorCQkgIDQuNC4gIGxlY2tlOiBBIEhJQsFLIEtJSkFWzVTBU8FOQUsgRUdZIE3TREpBCiAKIAogICAgICoqIDpzL/pqL3LpZ2kvZyBiZWfpcGVs6XPpdmVsIGF6ICf6aictcmEgY3NlculsavxrIGEgJ3LpZ2knLXQuICoqCkBAIC00NzAsMTAgKzQ3MCwxMCBAQAogICAgICBzb3JiYW4uCiAKICAgMy4gTW9zdCBlenQg7XJqdWs6CSA6cy9lZ2d5L2VnZy9nCSAgIGFtZWx5IGdsb2LhbGlzYW4gaGVseWV0dGVz7XQKLSAgICAgYSBzb3JiYW4uCisgICAgIGEgc29yYmFuLCBhemF6IG1pbmRlbiBlbPVmb3JkdWzhc3QuCiAgICAgIEV6IGEgc29yYmFuIG1pbmRlbiBlbPVmb3JkdWzhc3QgaGVseWV0dGVz7XQuCiAKLS0tLT4gZWdneSBoZWd5IG1lZ2d5LCBzemVtYmUgavZuIGVnZ3kgbeFzaWsgaGVnZ3kuCistLS0+IGVnZ3kgaGVnZ3kgbWVnZ3ksIHN6ZW1iZSBq9m4gZWdneSBt4XNpayBoZWdneS4KIAogICA0LiBL6XQgc29yIGv2evZ0dCBhIGthcmFrdGVyc29yIG1pbmRlbiBlbPVmb3JkdWzhc+FuYWsgaGVseWV0dGVz7XTpc2U6CiAgICAgIDojLCNzL3LpZ2kv+movZyAgICBhaG9sICMsIyBhIGvpdCBzb3Igc29yc3rhbWEuCkBAIC01MzAsNyArNTMwLDcgQEAKIAogCiB+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+fn4KLQkJICAgICAgNS4yLiAgbGVja2U6IELVVkVCQkVOIEEgRsFKTE9LIM1SwVPBUtNMCisJCSA1LjIuICBsZWNrZTogQtVWRUJCRU4gQSBGwUpMT0sgzVLBU8FS00wKIAogCiAgICAgICoqIEEgZuFqbG9rIHbhbHRveuFzYWl0IO1neSDtcmhhdGp1ayBraSAgOncgRsFKTE7JVi4gKioKQEAgLTU0MiwxMiArNTQyLDEyIEBACiAKICAgMy4gzXJqYToJOncgVEVTWlQgICAoYWhvbCBURVNaVCBhIHbhbGFzenRvdHQgZuFqbG7pdikhCiAKLSAgNC4gRXogZWxtZW50aSBhIHRlbGplcyBm4WpsdCAoYSBWaW0gVHV0b3J0KSBURVNaVCBu6XZlbi4KKyAgNC4gRXogZWxtZW50aSBhIHRlbGplcyBm4WpsdCAoYSBWaW0gb2t0YXTzauF0KSBURVNaVCBu6XZlbi4KICAgICAgRWxsZW71cnrpc2vpcHAg7XJqdWsgaXNt6XQgICAgOiFkaXIgICBob2d5IGzhc3N1ayBhIGv2bnl2dOFyYXQhCiAgICAgIChGZWxmZWzpIGdvbWJiYWwgOiB1dOFuIGF6IGVs9Xr1IHV0YXPtdOFzb2sgdmlzc3phaG96aGF082FrLikKIAogTWVnajogSGEg1m4ga2ls6XBuZSBhIFZpbWL1bCDpcyDpcyB2aXNzemF06XJuZSBhIFRFU1pUIGbhamxu6XZ2ZWwsIGFra29yIGEKLSAgICAgIGbhamwgYSB0dXRvciBtZW506XNrb3JpIHBvbnRvcyBt4XNvbGF0YSBsZW5uZS4KKyAgICAgIGbhamwgYXogb2t0YXTzIG1lbnTpc2tvcmkgcG9udG9zIG3hc29sYXRhIGxlbm5lLgogCiAgIDUuIFThdm9s7XRzYSBlbCBhIGbhamx0ICAoTVMtRE9TKToJOiFkZWwgVEVTWlQKIAkJCXZhZ3kgKFVuaXgpOgk6IXJtIFRFU1pUCkBAIC02MjYsNyArNjI2LDcgQEAKIAogCiB+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+fn4KLQkJCSA2LjEuICBsZWNrZTogQSBPUEVOIFBBUkFOQ1MKKwkJICAgNi4xLiAgbGVja2U6IEEgTUVHTllJVMFTIChPUEVOKSBQQVJBTkNTCiAKIAogKiogbyAgYmXtcuFz4XZhbCBueWl0aGF0IGVneSD6aiBzb3J0IGEga3Vyem9yIGFsYXR0IOlzIHbhbHRoYXQgYmVzevpy8yBt82RiYSAqKgpAQCAtNjg0LDE2ICs2ODQsMTcgQEAKIAogICAxLiBNb3pnYXNzdWsgYSBrdXJ6b3J0IGF6IGVsc/UgLS0tPiBrZXpkZXT7IHNvcnJhIQogCi0gIDIuIFBsYWNlIHRoZSBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlyc3Qgd29yZCB0aGF0IGlzIGRpZmZlcmVudAotICAgICBmcm9tIHRoZSBzZWNvbmQgbGluZSBtYXJrZWQgLS0tPiAodGhlIHdvcmQgJ2xhc3QnKS4KKyAgMi4gSGVseWV6emUgYSBrdXJ6b3J0IGF6IGVsc/Ugc3rzIGVsZWrpcmUgYW1lbHkgZWx06XIgYSBt4XNvZGlrCisgICAgIC0tLT4ga2V6ZGV0+yBzb3IgdGFydGFsbeF082wgKGEgJ2F6IHV0b2xz83ZhbCcgculzenT1bCkuCiAKLSAgMy4gTm93IHR5cGUgIFIgIGFuZCByZXBsYWNlIHRoZSByZW1haW5kZXIgb2YgdGhlIHRleHQgb24gdGhlIGZpcnN0IGxpbmUgYnkKLSAgICAgdHlwaW5nIG92ZXIgdGhlIG9sZCB0ZXh0IHRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIHNlY29uZC4KKyAgMy4gTnlvbWpvbiBSIGthcmFrdGVydCDpcyDtcmphIOl0IGEgc3r2dmVnIG1hcmFk6WvhdCBheiBlbHP1IHNvcmJhbgorICAgICD6Z3ksIGhvZ3kgYSAga+l0IHNvciBlZ3llevUgbGVneWVuLgogCi0tLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIGxhc3Qgb24gdGhpcyBwYWdlIHVzZSB0aGUga2V5cy4KLS0tLT4gVG8gbWFrZSB0aGUgZmlyc3QgbGluZSB0aGUgc2FtZSBhcyB0aGUgc2Vjb25kLCB0eXBlIFIgYW5kIHRoZSBuZXcgdGV4dC4KKy0tLT4gQXogZWxz9SBzb3J0IHRlZ3llIGF6b25vc3PhIGF6IHV0b2xz83ZhbDogaGFzem7hbGphIGEgZ29tYm9rYXQuCistLS0+IEF6IGVsc/Ugc29ydCB0ZWd5ZSBhem9ub3Nz4SBhIG3hc29kaWtrYWw6IO1yam9uIFItdCDpcyBheiD6aiBzevZ2ZWdldC4KIAotICA0LiBOb3RlIHRoYXQgd2hlbiB5b3UgcHJlc3MgPEVTQz4gdG8gZXhpdCwgYW55IHVuYWx0ZXJlZCB0ZXh0IHJlbWFpbnMuCisgIDQuIEplZ3llenr8ayBtZWcsIGhhIDxFU0M+LWV0IG55b21vaywgYWtrb3IgYSB24Wx0b3phdGxhbnVrIGhhZ3lvdHQKKyAgICAgc3r2dmVnZWsgduFsdG96YXRsYW5vayBtYXJhZG5hay4KIAogCiAKQEAgLTcyNiwxNiArNzI3LDE2IEBACiAJCQkgICAgICAgNi4gTEVDS0Ug1lNTWkVGT0dMQUzTSkEKIAogCi0gIDEuIFR5cGluZyAgbwlvcGVucyBhIGxpbmUgQkVMT1cgdGhlIGN1cnNvciBhbmQgcGxhY2VzIHRoZSBjdXJzb3Igb24gdGhlIG9wZW4KLSAgICAgbGluZSBpbiBJbnNlcnQgbW9kZS4KLSAgICAgVHlwaW5nIGEgY2FwaXRhbCAgTyAgb3BlbnMgdGhlIGxpbmUgQUJPVkUgdGhlIGxpbmUgdGhlIGN1cnNvciBpcyBvbi4KKyAgMS4gbwliZe1y4XPhdmFsIPpqIHNvcnQgbnlpdHVuayBtZWcgYSBzb3IgQUxBVFQg6XMgYSBrdXJ6b3IgYXog+moKKyAgICAgc29yYmFuIGxlc3ogYmVzevpy4XMtbfNkYmFuLgorICAgICBOYWd5ICBPICBhIHNvciBGRUxFVFQgbnlpdCD6aiBzb3J0LCDpcyBvZGEga2Vy/GwgYSBrdXJ6b3IuCiAKLSAgMi4gVHlwZSBhbiAgYSAgdG8gaW5zZXJ0IHRleHQgQUZURVIgdGhlIGNoYXJhY3RlciB0aGUgY3Vyc29yIGlzIG9uLgotICAgICBUeXBpbmcgYSBjYXBpdGFsICBBICBhdXRvbWF0aWNhbGx5IGFwcGVuZHMgdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLgorICAyLiBhICBiZe1y4XPhdmFsIGF6IGFrdHXhbGlzIGthcmFrdGVydPVsIFVUwU4gKGpvYmJyYSkgc3r6cmhhdHVuayBiZSBzevZ2ZWdldC4KKyAgICAgTmFneSBBICBhdXRvbWF0aWt1c2FuIGEgc29yIGxlZ3bpZ+loZXogYWRqYSBob3p64SBhIHN69nZlZ2V0LgogCi0gIDMuIFR5cGluZyBhIGNhcGl0YWwgIFIgIGVudGVycyBSZXBsYWNlIG1vZGUgdW50aWwgIDxFU0M+ICBpcyBwcmVzc2VkIHRvIGV4aXQuCisgIDMuIEEgbmFneSAgUiAgYmX8dOlz6XZlbCDhdO1y8yAocmVwbGFjZSkgbfNkYmEga2Vy/Gz8bmsgIDxFU0M+IGxlbnlvbeFz4WlnLgogCi0gIDQuIFR5cGluZyAiOnNldCB4eHgiIHNldHMgdGhlIG9wdGlvbiAieHh4IgorICA0LiAiOnNldCB4eHgiIGJl7XLhc+F2YWwgYXogInh4eCIgb3BjafMg4Wxs7XRoYXTzIGJlLgogCiAKIApAQCAtNzQ2LDcgKzc0Nyw3IEBACiAKIAogfn5+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+Ci0JCSAgICAgICA3LiBsZWNrZTogT04tTElORSBIRUxQIFBBUkFOQ1NPSworCQkgICAgIDcuIGxlY2tlOiBBWiBPTi1MSU5FIFPaR9MgUEFSQU5DU0FJCiAKIAogCQkgICAgKiogQXogb25saW5lIHP6Z/NyZW5kc3plciBoYXN6buFsYXRhICoqCkBAIC04MDEsOCArODAyLDkgQEAKICAgdHVk82tuYWs6ICI6aGVscCB1c2VyLW1hbnVhbCIuIChlZ3llbPVyZSBuZW0gdHVkIG1hZ3lhcnVsKQogCiAgIFRvduFiYmkgbWFneWFyIG9sdmFzbml2YWzzayDpcmhldPVlayBlbCBheiBhbOFiYmkgb2xkYWxy82wuCi0gIGh0dHA6Ly91YnVudHUuaHUvaW5kZXgucGhwP3RpdGxlPVZpbQorICBodHRwOi8vd2lraS5odXAuaHUvaW5kZXgucGhwL1ZpbQogCisgIEFuZ29sIG9sdmFzbeFueW9rOgogICBGb3IgZnVydGhlciByZWFkaW5nIGFuZCBzdHVkeWluZywgdGhpcyBib29rIGlzIHJlY29tbWVuZGVkOgogCVZpbSAtIFZpIEltcHJvdmVkIC0gYnkgU3RldmUgT3VhbGxpbmUKIAlQdWJsaXNoZXI6IE5ldyBSaWRlcnMKQEAgLTgxNiw4ICs4MTgsMTMgQEAKICAgSXQgaXMgYSBnb29kIGJvb2sgdG8gZ2V0IHRvIGtub3cgYWxtb3N0IGFueXRoaW5nIHlvdSB3YW50IHRvIGRvIHdpdGggVmkuCiAgIFRoZSBzaXh0aCBlZGl0aW9uIGFsc28gaW5jbHVkZXMgaW5mb3JtYXRpb24gb24gVmltLgogCi0gIFRoaXMgdHV0b3JpYWwgd2FzIHdyaXR0ZW4gYnkgTWljaGFlbCBDLiBQaWVyY2UgYW5kIFJvYmVydCBLLiBXYXJlLAotICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgdXNpbmcgaWRlYXMgc3VwcGxpZWQgYnkgQ2hhcmxlcyBTbWl0aCwKLSAgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eS4gIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorICBFenQgYXogb2t0YXTzdCBNaWNoYWVsIEMuIFBpZXJjZSDpcyBSb2JlcnQgSy4gV2FyZSDtcnRhLCBhIENvbG9yYWRvCisgIFNjaG9vbCBvZiBNaW5lcyBkb2xnb3rzaSBDaGFybGVzIFNtaXRoIChDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5KQorICB04W1vZ2F04XPhdmFsLgogCi0gIE1vZGlmaWVkIGZvciBWaW0gYnkgQnJhbSBNb29sZW5hYXIuCisgIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorCisgIEEgVmltaGV6IGlkb23tdG90dGEgQnJhbSBNb29sZW5hYXIuCisKKyAgTWFneWFy7XRvdHRhOiBIb3J24XRoIMFycOFkIDxob3J2YXRoLmFycGFkQHJvaWsuYm1mLmh1PiwgMjAwNi0yMDA4CisKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuaHUuY3AxMjUwIGIvcnVudGltZS90dXRvci90dXRvci5odS5jcDEyNTAKaW5kZXggODRlNmJkNC4uNmZiMzI3MCAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5odS5jcDEyNTAKKysrIGIvcnVudGltZS90dXRvci90dXRvci5odS5jcDEyNTAKQEAgLTEsNSArMSw1IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci09ICAgINwgZCB2IPYgeiD2IGwgaiD8IGsgICBhICAgViBJIE0gICBUIHUgdCBvIHIgYiBhIG4gIC0gICAgMS41LfZzICB2ZXJ6afMgPT09Cis9PSDcIGQgdiD2IHog9iBsIGog/CBrICAgYSAgIFYgSSBNIC0gbyBrIHQgYSB0IPMgYiBhIG4gIC0gICAgMS41LfZzICB2ZXJ6afMgID09CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKICAgICAgQSBWaW0gZWd5IG5hZ3lvbiBoYXTpa29ueSBzemVya2VzenT1LCBhbWVsbnllayByZW5nZXRlZyB1dGFz7XThc2EKQEAgLTM4LDcgKzM4LDcgQEAKICAgMi4gVGFydHNhIGxlbnlvbXZhIGEgbGVmZWzpdCAoaiksIGFra29yIGlzbel0bPVkaWshCiAtLS0+IE1vc3QgdHVkamEsIGhvZ3lhbiBtZWhldCBhIGv2dmV0a2V69SBsZWNr6XJlLgogCi0gIDMuIEEgbGVmZWzpIGZvbWIgaGFzem7hbGF04XZhbCBtZW5qZW4gYSAxLjIuIGxlY2vpcmUhCisgIDMuIEEgbGVmZWzpIGdvbWIgaGFzem7hbGF04XZhbCBtZW5qZW4gYSAxLjIuIGxlY2vpcmUhCiAKIE1lZ2o6IEhhIG5lbSBiaXp0b3MgYmVubmUsIG1pdCBueW9tb3R0IG1lZywgbnlvbWphIG1lZyBheiA8RVNDPi1ldCwgaG9neQogICAgICAgbm9ybeFsIG3zZGJhIGtlcvxsavZuLCDpcyBpc23pdGVsamUgbWVnIGEgcGFyYW5jc290IQpAQCAtNjAsOCArNjAsOCBAQAogICAgICBIYSBtZW50ZW5pIHN6ZXJldG7pIGEgduFsdG964XNva2F0IOlzIGtpbOlwbmksIO1yamE6CiAJCQkJOndxICA8RU5URVI+CiAKLSAgMy4gQW1pa29yIGEgc2hlbGwgcHJvbXB0b3QgbOF0amEsIO1yamEgYmUgYSBwYXJhbmNzb3QsIGFtZWx5IGViYmUgYQotICAgICB0dXRvcmJhIGhvenphOgorICAzLiBBbWlrb3IgYSBzaGVsbCBwcm9tcHRvdCBs4XRqYSwg7XJqYSBiZSBhIHBhcmFuY3NvdCwgYW1lbHkgZWJiZSBhegorICAgICBva3RhdPNiYSBob3p6YToKICAgICAgRXogdmFs83N67W77bGVnOgl2aW10dXRvciA8RU5URVI+CiAgICAgIE5vcm3hbGlzIGVzZXRiZW4gZXp0IO1ybuE6CXZpbSB0dXRvci5odSA8RU5URVI+CiAKQEAgLTIzMCw3ICsyMzAsNyBAQAogCiAKIH5+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+fgotCQkJIDIuNS4gIGxlY2tlOiBBIFZJU1NaQVZPTsFTIChVTkRPKSBQQVJBTkNTCisJCSAgIDIuNS4gIGxlY2tlOiBBIFZJU1NaQVZPTsFTIChVTkRPKSBQQVJBTkNTCiAKIAogKiogdSBn6XBlbOlz6XZlbCB2aXNzemF2b25oYXTzIGF6IHV0b2xz8yBwYXJhbmNzLCBVIGF6IGVn6XN6IHNvcnQgaGVseXJl4Wxs7XRqYS4gKioKQEAgLTI0NSw5ICsyNDUsOSBAQAogICA3LiBDVFJMLVIgKENUUkwgZ29tYiBsZW55b23hc2EgbWVsbGV0dCD8c3P2biBSLXQpIHDhcnN6b3IgY3NpbuFsamEg+mpyYSBhCiAgICAgIHZpc3N6YXZvbnQgcGFyYW5jc29rYXQgKHJlZG8pIQogCi0tLS0+IEphdu3tdHNkIGEgaGhpYuFrYWF0IGViYmJlbiBhIHNvb29yYmFuIG1hamQg4Wxs7XRzYSB2aXNzemFhYSBheiBlcmVkZXRpdC4KKy0tLT4gSmF27e10c2EgYSBoaGli4WthYXQgZWJiYmVuIGEgc29vb3JiYW4gbWFqZCDhbGztdHNhIHZpc3N6YWFhIGF6IGVyZWRldGl0LgogCi0gIDguIEV6ZWsgbmFneW9uIGhhc3pub3MgcGFyYW5jc29rLiBNb3N0IHVnYXJqb24gYSAyLiBsZWNrZSD2c3N6ZWZvZ2xhbPNq4XJhLgorICA4LiBFemVrIG5hZ3lvbiBoYXN6bm9zIHBhcmFuY3Nvay4gTW9zdCB1Z29yam9uIGEgMi4gbGVja2Ug9nNzemVmb2dsYWzzauFyYS4KIAogCiAKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCiAgIDEuIFT2cmzpcyBhIGt1cnpvcnTzbCBhIHN68yB26WfpaWc6ICAgIGR3CiAKLSAgMi4gVPZybOlzIGEga3Vyem9ydPNsIGEgc3rzIHbpZ+lpZzogICAgZCQKKyAgMi4gVPZybOlzIGEga3Vyem9ydPNsIGEgc29yIHbpZ+lpZzogICAgZCQKIAogICAzLiBFZ+lzeiBzb3IgdPZybOlzZTogICAgZGQKIApAQCAtMjc1LDcgKzI3NSw3IEBACiAgICAgIFZpc3N6YXZvbuFzb2sgdmlzc3phdm9u4XNhOgkgICAgIENUUkwtUgogCiB+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+fn4KLQkJCSAzLjEuICBsZWNrZTogQSBQVVQgUEFSQU5DUworCQkzLjEuICBsZWNrZTogQSBCRUlMTEVTWlTJUyAoUFVUKSBQQVJBTkNTCiAKIAogICAqKiBwICBsZfx06XPpdmVsIGF6IHV0b2xz825hayB09nL2bHRldCBhIGt1cnpvciB1dOFuIGlsbGVzemhldGr8ay4gKioKQEAgLTI4NCw4ICsyODQsOCBAQAogCiAgIDIuIGRkIGxl/HTpc+l2ZWwgdPZy9mxq/GsgYSBzb3J0IOlzIGVsdOlyb2zzZGlrIGEgVmltIHB1ZmZlculiZW4uCiAKLSAgMy4gTW96Z2Fzc3VrIGEga3Vyem9ydCBBRtZMySBhIHNvciBm9mzpLCBhaG924SBtb3pnYXRuaSBzemVyZXRu6W5rIGEKLSAgICAgdPZy9mx0IHNvcnQuCisgIDMuIE1vemdhc3N1ayBhIGt1cnpvcnQgYXplbPV0dCBhICBzb3IgRUzVVFRJIHNvcmJhLCBhaG924SBtb3pnYXRuaQorICAgICBzemVyZXRu6W5rIGEgdPZy9mx0IHNvcnQuCiAKICAgNC4gTm9ybeFsIG3zZGJhbiDtcmp1bmsgIHAgICBiZXT7dCBhIHT2cvZsdCBzb3IgYmVpbGxlc3p06XPpaGV6LgogCkBAIC0yOTksNyArMjk5LDcgQEAKIAogCiB+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+fn4KLQkJICAgICAgIDMuMi4gIGxlY2tlOiBBIFJFUExBQ0UgUEFSQU5DUworCQkgICAgICAgMy4yLiAgbGVja2U6IEFaIMFUzVLBUyAoUkVQTEFDRSkgUEFSQU5DUwogCiAKICoqIHIgIOlzICBhIGthcmFrdGVyZWsgbGX8dOlz6XZlbCBhIGt1cnpvciBhbGF0dGkga2FyYWt0ZXJ0IG1lZ3bhbHRvenRhdGp1ay4gKioKQEAgLTMyMSw3ICszMjEsNyBAQAogCiAKIH5+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+fgotCQkJMy4zLiAgbGVja2U6IEEgQ0hBTkdFIFBBUkFOQ1MKKwkJCTMuMy4gIGxlY2tlOiBBIENTRVJFIChDSEFOR0UpIFBBUkFOQ1MKIAogCiAJICAgKiogQSBzevMgZWd5IHLpc3rpbmVrIG1lZ3bhbHRvenRhdOFz4WhveiDtcmp1azogIGN3IC4gKioKQEAgLTQxNSw3ICs0MTUsNyBAQAogCiAKIH5+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+fgotCQkJNC4yLiAgbGVja2U6IEEgU0VBUkNIIFBBUkFOQ1MKKwkJCTQuMi4gIGxlY2tlOiBBIEtFUkVTyVMgKFNFQVJDSCkgUEFSQU5DUwogCiAKICAgKiogLyBtYWpkIGEga+124W50IGtpZmVqZXrpcyBiZe1y4XPhdmFsIGtlcmVzaGV0avxrIG1lZyBhIGtpZmVqZXrpc3QuICoqCkBAIC00NTksNyArNDU5LDcgQEAKIAogCiB+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+fn4KLQkJICAgICAgNC40LiAgbGVja2U6IEEgSElCwUsgS0lKQVbNVMFTwU5BSyBFR1kgTdNESkEKKwkJICA0LjQuICBsZWNrZTogQSBISULBSyBLSUpBVs1UwVPBTkFLIEVHWSBN00RKQQogCiAKICAgICAqKiA6cy/6ai9y6WdpL2cgYmVn6XBlbOlz6XZlbCBheiAn+monLXJhIGNzZXLpbGr8ayBhICdy6WdpJy10LiAqKgpAQCAtNDcwLDEwICs0NzAsMTAgQEAKICAgICAgc29yYmFuLgogCiAgIDMuIE1vc3QgZXp0IO1yanVrOgkgOnMvZWdneS9lZ2cvZwkgICBhbWVseSBnbG9i4Wxpc2FuIGhlbHlldHRlc+10Ci0gICAgIGEgc29yYmFuLgorICAgICBhIHNvcmJhbiwgYXpheiBtaW5kZW4gZWz1Zm9yZHVs4XN0LgogICAgICBFeiBhIHNvcmJhbiBtaW5kZW4gZWz1Zm9yZHVs4XN0IGhlbHlldHRlc+10LgogCi0tLS0+IGVnZ3kgaGVneSBtZWdneSwgc3plbWJlIGr2biBlZ2d5IG3hc2lrIGhlZ2d5LgorLS0tPiBlZ2d5IGhlZ2d5IG1lZ2d5LCBzemVtYmUgavZuIGVnZ3kgbeFzaWsgaGVnZ3kuCiAKICAgNC4gS+l0IHNvciBr9nr2dHQgYSBrYXJha3RlcnNvciBtaW5kZW4gZWz1Zm9yZHVs4XPhbmFrIGhlbHlldHRlc+106XNlOgogICAgICA6Iywjcy9y6WdpL/pqL2cgICAgYWhvbCAjLCMgYSBr6XQgc29yIHNvcnN64W1hLgpAQCAtNTMwLDcgKzUzMCw3IEBACiAKIAogfn5+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+Ci0JCSAgICAgIDUuMi4gIGxlY2tlOiBC1VZFQkJFTiBBIEbBSkxPSyDNUsFTwVLTTAorCQkgNS4yLiAgbGVja2U6IELVVkVCQkVOIEEgRsFKTE9LIM1SwVPBUtNMCiAKIAogICAgICAqKiBBIGbhamxvayB24Wx0b3rhc2FpdCDtZ3kg7XJoYXRqdWsga2kgIDp3IEbBSkxOyVYuICoqCkBAIC01NDIsMTIgKzU0MiwxMiBAQAogCiAgIDMuIM1yamE6CTp3IFRFU1pUICAgKGFob2wgVEVTWlQgYSB24Wxhc3p0b3R0IGbhamxu6XYpIQogCi0gIDQuIEV6IGVsbWVudGkgYSB0ZWxqZXMgZuFqbHQgKGEgVmltIFR1dG9ydCkgVEVTWlQgbul2ZW4uCisgIDQuIEV6IGVsbWVudGkgYSB0ZWxqZXMgZuFqbHQgKGEgVmltIG9rdGF082rhdCkgVEVTWlQgbul2ZW4uCiAgICAgIEVsbGVu9XJ66XNr6XBwIO1yanVrIGlzbel0ICAgIDohZGlyICAgaG9neSBs4XNzdWsgYSBr9m55dnThcmF0IQogICAgICAoRmVsZmVs6SBnb21iYmFsIDogdXThbiBheiBlbPV69SB1dGFz7XThc29rIHZpc3N6YWhvemhhdPNhay4pCiAKIE1lZ2o6IEhhINZuIGtpbOlwbmUgYSBWaW1i9Wwg6XMg6XMgdmlzc3phdOlybmUgYSBURVNaVCBm4Wpsbul2dmVsLCBha2tvciBhCi0gICAgICBm4WpsIGEgdHV0b3IgbWVudOlza29yaSBwb250b3MgbeFzb2xhdGEgbGVubmUuCisgICAgICBm4WpsIGF6IG9rdGF08yBtZW506XNrb3JpIHBvbnRvcyBt4XNvbGF0YSBsZW5uZS4KIAogICA1LiBU4XZvbO10c2EgZWwgYSBm4WpsdCAgKE1TLURPUyk6CTohZGVsIFRFU1pUCiAJCQl2YWd5IChVbml4KToJOiFybSBURVNaVApAQCAtNjI2LDcgKzYyNiw3IEBACiAKIAogfn5+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+Ci0JCQkgNi4xLiAgbGVja2U6IEEgT1BFTiBQQVJBTkNTCisJCSAgIDYuMS4gIGxlY2tlOiBBIE1FR05ZSVTBUyAoT1BFTikgUEFSQU5DUwogCiAKICoqIG8gIGJl7XLhc+F2YWwgbnlpdGhhdCBlZ3kg+mogc29ydCBhIGt1cnpvciBhbGF0dCDpcyB24Wx0aGF0IGJlc3r6cvMgbfNkYmEgKioKQEAgLTY4NCwxNiArNjg0LDE3IEBACiAKICAgMS4gTW96Z2Fzc3VrIGEga3Vyem9ydCBheiBlbHP1IC0tLT4ga2V6ZGV0+yBzb3JyYSEKIAotICAyLiBQbGFjZSB0aGUgY3Vyc29yIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpcnN0IHdvcmQgdGhhdCBpcyBkaWZmZXJlbnQKLSAgICAgZnJvbSB0aGUgc2Vjb25kIGxpbmUgbWFya2VkIC0tLT4gKHRoZSB3b3JkICdsYXN0JykuCisgIDIuIEhlbHllenplIGEga3Vyem9ydCBheiBlbHP1IHN68yBlbGVq6XJlIGFtZWx5IGVsdOlyIGEgbeFzb2RpaworICAgICAtLS0+IGtlemRldPsgc29yIHRhcnRhbG3hdPNsIChhICdheiB1dG9sc/N2YWwnIHLpc3p09WwpLgogCi0gIDMuIE5vdyB0eXBlICBSICBhbmQgcmVwbGFjZSB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXh0IG9uIHRoZSBmaXJzdCBsaW5lIGJ5Ci0gICAgIHR5cGluZyBvdmVyIHRoZSBvbGQgdGV4dCB0byBtYWtlIHRoZSBmaXJzdCBsaW5lIHRoZSBzYW1lIGFzIHRoZSBzZWNvbmQuCisgIDMuIE55b21qb24gUiBrYXJha3RlcnQg6XMg7XJqYSDpdCBhIHN69nZlZyBtYXJhZOlr4XQgYXogZWxz9SBzb3JiYW4KKyAgICAg+md5LCBob2d5IGEgIGvpdCBzb3IgZWd5ZXr1IGxlZ3llbi4KIAotLS0tPiBUbyBtYWtlIHRoZSBmaXJzdCBsaW5lIHRoZSBzYW1lIGFzIHRoZSBsYXN0IG9uIHRoaXMgcGFnZSB1c2UgdGhlIGtleXMuCi0tLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIHNlY29uZCwgdHlwZSBSIGFuZCB0aGUgbmV3IHRleHQuCistLS0+IEF6IGVsc/Ugc29ydCB0ZWd5ZSBhem9ub3Nz4SBheiB1dG9sc/N2YWw6IGhhc3pu4WxqYSBhIGdvbWJva2F0LgorLS0tPiBBeiBlbHP1IHNvcnQgdGVneWUgYXpvbm9zc+EgYSBt4XNvZGlra2FsOiDtcmpvbiBSLXQg6XMgYXog+mogc3r2dmVnZXQuCiAKLSAgNC4gTm90ZSB0aGF0IHdoZW4geW91IHByZXNzIDxFU0M+IHRvIGV4aXQsIGFueSB1bmFsdGVyZWQgdGV4dCByZW1haW5zLgorICA0LiBKZWd5ZXp6/GsgbWVnLCBoYSA8RVNDPi1ldCBueW9tb2ssIGFra29yIGEgduFsdG96YXRsYW51ayBoYWd5b3R0CisgICAgIHN69nZlZ2VrIHbhbHRvemF0bGFub2sgbWFyYWRuYWsuCiAKIAogCkBAIC03MjYsMTYgKzcyNywxNiBAQAogCQkJICAgICAgIDYuIExFQ0tFINZTU1pFRk9HTEFM00pBCiAKIAotICAxLiBUeXBpbmcgIG8Jb3BlbnMgYSBsaW5lIEJFTE9XIHRoZSBjdXJzb3IgYW5kIHBsYWNlcyB0aGUgY3Vyc29yIG9uIHRoZSBvcGVuCi0gICAgIGxpbmUgaW4gSW5zZXJ0IG1vZGUuCi0gICAgIFR5cGluZyBhIGNhcGl0YWwgIE8gIG9wZW5zIHRoZSBsaW5lIEFCT1ZFIHRoZSBsaW5lIHRoZSBjdXJzb3IgaXMgb24uCisgIDEuIG8JYmXtcuFz4XZhbCD6aiBzb3J0IG55aXR1bmsgbWVnIGEgc29yIEFMQVRUIOlzIGEga3Vyem9yIGF6IPpqCisgICAgIHNvcmJhbiBsZXN6IGJlc3r6cuFzLW3zZGJhbi4KKyAgICAgTmFneSAgTyAgYSBzb3IgRkVMRVRUIG55aXQg+mogc29ydCwg6XMgb2RhIGtlcvxsIGEga3Vyem9yLgogCi0gIDIuIFR5cGUgYW4gIGEgIHRvIGluc2VydCB0ZXh0IEFGVEVSIHRoZSBjaGFyYWN0ZXIgdGhlIGN1cnNvciBpcyBvbi4KLSAgICAgVHlwaW5nIGEgY2FwaXRhbCAgQSAgYXV0b21hdGljYWxseSBhcHBlbmRzIHRleHQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KKyAgMi4gYSAgYmXtcuFz4XZhbCBheiBha3R14WxpcyBrYXJha3RlcnT1bCBVVMFOIChqb2JicmEpIHN6+nJoYXR1bmsgYmUgc3r2dmVnZXQuCisgICAgIE5hZ3kgQSAgYXV0b21hdGlrdXNhbiBhIHNvciBsZWd26WfpaGV6IGFkamEgaG96euEgYSBzevZ2ZWdldC4KIAotICAzLiBUeXBpbmcgYSBjYXBpdGFsICBSICBlbnRlcnMgUmVwbGFjZSBtb2RlIHVudGlsICA8RVNDPiAgaXMgcHJlc3NlZCB0byBleGl0LgorICAzLiBBIG5hZ3kgIFIgIGJl/HTpc+l2ZWwg4XTtcvMgKHJlcGxhY2UpIG3zZGJhIGtlcvxs/G5rICA8RVNDPiBsZW55b23hc+FpZy4KIAotICA0LiBUeXBpbmcgIjpzZXQgeHh4IiBzZXRzIHRoZSBvcHRpb24gInh4eCIKKyAgNC4gIjpzZXQgeHh4IiBiZe1y4XPhdmFsIGF6ICJ4eHgiIG9wY2nzIOFsbO10aGF08yBiZS4KIAogCiAKQEAgLTc0Niw3ICs3NDcsNyBAQAogCiAKIH5+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+fgotCQkgICAgICAgNy4gbGVja2U6IE9OLUxJTkUgSEVMUCBQQVJBTkNTT0sKKwkJICAgICA3LiBsZWNrZTogQVogT04tTElORSBT2kfTIFBBUkFOQ1NBSQogCiAKIAkJICAgICoqIEF6IG9ubGluZSBz+mfzcmVuZHN6ZXIgaGFzem7hbGF0YSAqKgpAQCAtODAxLDggKzgwMiw5IEBACiAgIHR1ZPNrbmFrOiAiOmhlbHAgdXNlci1tYW51YWwiLiAoZWd5ZWz1cmUgbmVtIHR1ZCBtYWd5YXJ1bCkKIAogICBUb3bhYmJpIG1hZ3lhciBvbHZhc25pdmFs82sg6XJoZXT1ZWsgZWwgYXogYWzhYmJpIG9sZGFscvNsLgotICBodHRwOi8vdWJ1bnR1Lmh1L2luZGV4LnBocD90aXRsZT1WaW0KKyAgaHR0cDovL3dpa2kuaHVwLmh1L2luZGV4LnBocC9WaW0KIAorICBBbmdvbCBvbHZhc23hbnlvazoKICAgRm9yIGZ1cnRoZXIgcmVhZGluZyBhbmQgc3R1ZHlpbmcsIHRoaXMgYm9vayBpcyByZWNvbW1lbmRlZDoKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGJ5IFN0ZXZlIE91YWxsaW5lCiAJUHVibGlzaGVyOiBOZXcgUmlkZXJzCkBAIC04MTYsOCArODE4LDEzIEBACiAgIEl0IGlzIGEgZ29vZCBib29rIHRvIGdldCB0byBrbm93IGFsbW9zdCBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyB3aXRoIFZpLgogICBUaGUgc2l4dGggZWRpdGlvbiBhbHNvIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9uIFZpbS4KIAotICBUaGlzIHR1dG9yaWFsIHdhcyB3cml0dGVuIGJ5IE1pY2hhZWwgQy4gUGllcmNlIGFuZCBSb2JlcnQgSy4gV2FyZSwKLSAgQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzIHVzaW5nIGlkZWFzIHN1cHBsaWVkIGJ5IENoYXJsZXMgU21pdGgsCi0gIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKyAgRXp0IGF6IG9rdGF083QgTWljaGFlbCBDLiBQaWVyY2Ug6XMgUm9iZXJ0IEsuIFdhcmUg7XJ0YSwgYSBDb2xvcmFkbworICBTY2hvb2wgb2YgTWluZXMgZG9sZ29682kgQ2hhcmxlcyBTbWl0aCAoQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eSkKKyAgdOFtb2dhdOFz4XZhbC4KIAotICBNb2RpZmllZCBmb3IgVmltIGJ5IEJyYW0gTW9vbGVuYWFyLgorICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKworICBBIFZpbWhleiBpZG9t7XRvdHRhIEJyYW0gTW9vbGVuYWFyLgorCisgIE1hZ3lhcu10b3R0YTogSG9yduF0aCDBcnDhZCA8aG9ydmF0aC5hcnBhZEByb2lrLmJtZi5odT4sIDIwMDYtMjAwOAorCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmh1LnV0Zi04IGIvcnVudGltZS90dXRvci90dXRvci5odS51dGYtOAppbmRleCBiNjQxNTVmLi5lYzQ4NmQ5IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmh1LnV0Zi04CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuaHUudXRmLTgKQEAgLTEsNSArMSw1IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci09ICAgIMOcIGQgdiDDtiB6IMO2IGwgaiDDvCBrICAgYSAgIFYgSSBNICAgVCB1IHQgbyByIGIgYSBuICAtICAgIDEuNS3DtnMgIHZlcnppw7MgPT09Cis9PSDDnCBkIHYgw7YgeiDDtiBsIGogw7wgayAgIGEgICBWIEkgTSAtIG8gayB0IGEgdCDDsyBiIGEgbiAgLSAgICAxLjUtw7ZzICB2ZXJ6acOzICA9PQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAgICAgIEEgVmltIGVneSBuYWd5b24gaGF0w6lrb255IHN6ZXJrZXN6dMWRLCBhbWVsbnllayByZW5nZXRlZyB1dGFzw610w6FzYQpAQCAtMzgsNyArMzgsNyBAQAogICAyLiBUYXJ0c2EgbGVueW9tdmEgYSBsZWZlbMOpdCAoaiksIGFra29yIGlzbcOpdGzFkWRpayEKIC0tLT4gTW9zdCB0dWRqYSwgaG9neWFuIG1laGV0IGEga8O2dmV0a2V6xZEgbGVja8OpcmUuCiAKLSAgMy4gQSBsZWZlbMOpIGZvbWIgaGFzem7DoWxhdMOhdmFsIG1lbmplbiBhIDEuMi4gbGVja8OpcmUhCisgIDMuIEEgbGVmZWzDqSBnb21iIGhhc3puw6FsYXTDoXZhbCBtZW5qZW4gYSAxLjIuIGxlY2vDqXJlIQogCiBNZWdqOiBIYSBuZW0gYml6dG9zIGJlbm5lLCBtaXQgbnlvbW90dCBtZWcsIG55b21qYSBtZWcgYXogPEVTQz4tZXQsIGhvZ3kKICAgICAgIG5vcm3DoWwgbcOzZGJhIGtlcsO8bGrDtm4sIMOpcyBpc23DqXRlbGplIG1lZyBhIHBhcmFuY3NvdCEKQEAgLTYwLDggKzYwLDggQEAKICAgICAgSGEgbWVudGVuaSBzemVyZXRuw6kgYSB2w6FsdG96w6Fzb2thdCDDqXMga2lsw6lwbmksIMOtcmphOgogCQkJCTp3cSAgPEVOVEVSPgogCi0gIDMuIEFtaWtvciBhIHNoZWxsIHByb21wdG90IGzDoXRqYSwgw61yamEgYmUgYSBwYXJhbmNzb3QsIGFtZWx5IGViYmUgYQotICAgICB0dXRvcmJhIGhvenphOgorICAzLiBBbWlrb3IgYSBzaGVsbCBwcm9tcHRvdCBsw6F0amEsIMOtcmphIGJlIGEgcGFyYW5jc290LCBhbWVseSBlYmJlIGF6CisgICAgIG9rdGF0w7NiYSBob3p6YToKICAgICAgRXogdmFsw7NzesOtbsWxbGVnOgl2aW10dXRvciA8RU5URVI+CiAgICAgIE5vcm3DoWxpcyBlc2V0YmVuIGV6dCDDrXJuw6E6CXZpbSB0dXRvci5odSA8RU5URVI+CiAKQEAgLTIzMCw3ICsyMzAsNyBAQAogCiAKIH5+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+fgotCQkJIDIuNS4gIGxlY2tlOiBBIFZJU1NaQVZPTsOBUyAoVU5ETykgUEFSQU5DUworCQkgICAyLjUuICBsZWNrZTogQSBWSVNTWkFWT07DgVMgKFVORE8pIFBBUkFOQ1MKIAogCiAqKiB1IGfDqXBlbMOpc8OpdmVsIHZpc3N6YXZvbmhhdMOzIGF6IHV0b2xzw7MgcGFyYW5jcywgVSBheiBlZ8Opc3ogc29ydCBoZWx5cmXDoWxsw610amEuICoqCkBAIC0yNDUsOSArMjQ1LDkgQEAKICAgNy4gQ1RSTC1SIChDVFJMIGdvbWIgbGVueW9tw6FzYSBtZWxsZXR0IMO8c3PDtm4gUi10KSBww6Fyc3pvciBjc2luw6FsamEgw7pqcmEgYQogICAgICB2aXNzemF2b250IHBhcmFuY3Nva2F0IChyZWRvKSEKIAotLS0tPiBKYXbDrcOtdHNkIGEgaGhpYsOha2FhdCBlYmJiZW4gYSBzb29vcmJhbiBtYWpkIMOhbGzDrXRzYSB2aXNzemFhYSBheiBlcmVkZXRpdC4KKy0tLT4gSmF2w63DrXRzYSBhIGhoaWLDoWthYXQgZWJiYmVuIGEgc29vb3JiYW4gbWFqZCDDoWxsw610c2Egdmlzc3phYWEgYXogZXJlZGV0aXQuCiAKLSAgOC4gRXplayBuYWd5b24gaGFzem5vcyBwYXJhbmNzb2suIE1vc3QgdWdhcmpvbiBhIDIuIGxlY2tlIMO2c3N6ZWZvZ2xhbMOzasOhcmEuCisgIDguIEV6ZWsgbmFneW9uIGhhc3pub3MgcGFyYW5jc29rLiBNb3N0IHVnb3Jqb24gYSAyLiBsZWNrZSDDtnNzemVmb2dsYWzDs2rDoXJhLgogCiAKIApAQCAtMjU3LDcgKzI1Nyw3IEBACiAKICAgMS4gVMO2cmzDqXMgYSBrdXJ6b3J0w7NsIGEgc3rDsyB2w6lnw6lpZzogICAgZHcKIAotICAyLiBUw7ZybMOpcyBhIGt1cnpvcnTDs2wgYSBzesOzIHbDqWfDqWlnOiAgICBkJAorICAyLiBUw7ZybMOpcyBhIGt1cnpvcnTDs2wgYSBzb3IgdsOpZ8OpaWc6ICAgIGQkCiAKICAgMy4gRWfDqXN6IHNvciB0w7ZybMOpc2U6ICAgIGRkCiAKQEAgLTI3NSw3ICsyNzUsNyBAQAogICAgICBWaXNzemF2b27DoXNvayB2aXNzemF2b27DoXNhOgkgICAgIENUUkwtUgogCiB+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+fn4KLQkJCSAzLjEuICBsZWNrZTogQSBQVVQgUEFSQU5DUworCQkzLjEuICBsZWNrZTogQSBCRUlMTEVTWlTDiVMgKFBVVCkgUEFSQU5DUwogCiAKICAgKiogcCAgbGXDvHTDqXPDqXZlbCBheiB1dG9sc8OzbmFrIHTDtnLDtmx0ZXQgYSBrdXJ6b3IgdXTDoW4gaWxsZXN6aGV0asO8ay4gKioKQEAgLTI4NCw4ICsyODQsOCBAQAogCiAgIDIuIGRkIGxlw7x0w6lzw6l2ZWwgdMO2csO2bGrDvGsgYSBzb3J0IMOpcyBlbHTDqXJvbMOzZGlrIGEgVmltIHB1ZmZlcsOpYmVuLgogCi0gIDMuIE1vemdhc3N1ayBhIGt1cnpvcnQgQUbDlkzDiSBhIHNvciBmw7Zsw6ksIGFob3bDoSBtb3pnYXRuaSBzemVyZXRuw6luayBhCi0gICAgIHTDtnLDtmx0IHNvcnQuCisgIDMuIE1vemdhc3N1ayBhIGt1cnpvcnQgYXplbMWRdHQgYSAgc29yIEVMxZBUVEkgc29yYmEsIGFob3bDoSBtb3pnYXRuaQorICAgICBzemVyZXRuw6luayBhIHTDtnLDtmx0IHNvcnQuCiAKICAgNC4gTm9ybcOhbCBtw7NkYmFuIMOtcmp1bmsgIHAgICBiZXTFsXQgYSB0w7Zyw7ZsdCBzb3IgYmVpbGxlc3p0w6lzw6loZXouCiAKQEAgLTI5OSw3ICsyOTksNyBAQAogCiAKIH5+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+fgotCQkgICAgICAgMy4yLiAgbGVja2U6IEEgUkVQTEFDRSBQQVJBTkNTCisJCSAgICAgICAzLjIuICBsZWNrZTogQVogw4FUw41Sw4FTIChSRVBMQUNFKSBQQVJBTkNTCiAKIAogKiogciAgw6lzICBhIGthcmFrdGVyZWsgbGXDvHTDqXPDqXZlbCBhIGt1cnpvciBhbGF0dGkga2FyYWt0ZXJ0IG1lZ3bDoWx0b3p0YXRqdWsuICoqCkBAIC0zMjEsNyArMzIxLDcgQEAKIAogCiB+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+fn4KLQkJCTMuMy4gIGxlY2tlOiBBIENIQU5HRSBQQVJBTkNTCisJCQkzLjMuICBsZWNrZTogQSBDU0VSRSAoQ0hBTkdFKSBQQVJBTkNTCiAKIAogCSAgICoqIEEgc3rDsyBlZ3kgcsOpc3rDqW5layBtZWd2w6FsdG96dGF0w6Fzw6Fob3ogw61yanVrOiAgY3cgLiAqKgpAQCAtNDE1LDcgKzQxNSw3IEBACiAKIAogfn5+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+Ci0JCQk0LjIuICBsZWNrZTogQSBTRUFSQ0ggUEFSQU5DUworCQkJNC4yLiAgbGVja2U6IEEgS0VSRVPDiVMgKFNFQVJDSCkgUEFSQU5DUwogCiAKICAgKiogLyBtYWpkIGEga8OtdsOhbnQga2lmZWplesOpcyBiZcOtcsOhc8OhdmFsIGtlcmVzaGV0asO8ayBtZWcgYSBraWZlamV6w6lzdC4gKioKQEAgLTQ1OSw3ICs0NTksNyBAQAogCiAKIH5+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+fgotCQkgICAgICA0LjQuICBsZWNrZTogQSBISULDgUsgS0lKQVbDjVTDgVPDgU5BSyBFR1kgTcOTREpBCisJCSAgNC40LiAgbGVja2U6IEEgSElCw4FLIEtJSkFWw41Uw4FTw4FOQUsgRUdZIE3Dk0RKQQogCiAKICAgICAqKiA6cy/DumovcsOpZ2kvZyBiZWfDqXBlbMOpc8OpdmVsIGF6ICfDumonLXJhIGNzZXLDqWxqw7xrIGEgJ3LDqWdpJy10LiAqKgpAQCAtNDcwLDEwICs0NzAsMTAgQEAKICAgICAgc29yYmFuLgogCiAgIDMuIE1vc3QgZXp0IMOtcmp1azoJIDpzL2VnZ3kvZWdnL2cJICAgYW1lbHkgZ2xvYsOhbGlzYW4gaGVseWV0dGVzw610Ci0gICAgIGEgc29yYmFuLgorICAgICBhIHNvcmJhbiwgYXpheiBtaW5kZW4gZWzFkWZvcmR1bMOhc3QuCiAgICAgIEV6IGEgc29yYmFuIG1pbmRlbiBlbMWRZm9yZHVsw6FzdCBoZWx5ZXR0ZXPDrXQuCiAKLS0tLT4gZWdneSBoZWd5IG1lZ2d5LCBzemVtYmUgasO2biBlZ2d5IG3DoXNpayBoZWdneS4KKy0tLT4gZWdneSBoZWdneSBtZWdneSwgc3plbWJlIGrDtm4gZWdneSBtw6FzaWsgaGVnZ3kuCiAKICAgNC4gS8OpdCBzb3Iga8O2esO2dHQgYSBrYXJha3RlcnNvciBtaW5kZW4gZWzFkWZvcmR1bMOhc8OhbmFrIGhlbHlldHRlc8OtdMOpc2U6CiAgICAgIDojLCNzL3LDqWdpL8O6ai9nICAgIGFob2wgIywjIGEga8OpdCBzb3Igc29yc3rDoW1hLgpAQCAtNTMwLDcgKzUzMCw3IEBACiAKIAogfn5+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+Ci0JCSAgICAgIDUuMi4gIGxlY2tlOiBCxZBWRUJCRU4gQSBGw4FKTE9LIMONUsOBU8OBUsOTTAorCQkgNS4yLiAgbGVja2U6IELFkFZFQkJFTiBBIEbDgUpMT0sgw41Sw4FTw4FSw5NMCiAKIAogICAgICAqKiBBIGbDoWpsb2sgdsOhbHRvesOhc2FpdCDDrWd5IMOtcmhhdGp1ayBraSAgOncgRsOBSkxOw4lWLiAqKgpAQCAtNTQyLDEyICs1NDIsMTIgQEAKIAogICAzLiDDjXJqYToJOncgVEVTWlQgICAoYWhvbCBURVNaVCBhIHbDoWxhc3p0b3R0IGbDoWpsbsOpdikhCiAKLSAgNC4gRXogZWxtZW50aSBhIHRlbGplcyBmw6FqbHQgKGEgVmltIFR1dG9ydCkgVEVTWlQgbsOpdmVuLgorICA0LiBFeiBlbG1lbnRpIGEgdGVsamVzIGbDoWpsdCAoYSBWaW0gb2t0YXTDs2rDoXQpIFRFU1pUIG7DqXZlbi4KICAgICAgRWxsZW7FkXJ6w6lza8OpcHAgw61yanVrIGlzbcOpdCAgICA6IWRpciAgIGhvZ3kgbMOhc3N1ayBhIGvDtm55dnTDoXJhdCEKICAgICAgKEZlbGZlbMOpIGdvbWJiYWwgOiB1dMOhbiBheiBlbMWResWRIHV0YXPDrXTDoXNvayB2aXNzemFob3poYXTDs2FrLikKIAogTWVnajogSGEgw5ZuIGtpbMOpcG5lIGEgVmltYsWRbCDDqXMgw6lzIHZpc3N6YXTDqXJuZSBhIFRFU1pUIGbDoWpsbsOpdnZlbCwgYWtrb3IgYQotICAgICAgZsOhamwgYSB0dXRvciBtZW50w6lza29yaSBwb250b3MgbcOhc29sYXRhIGxlbm5lLgorICAgICAgZsOhamwgYXogb2t0YXTDsyBtZW50w6lza29yaSBwb250b3MgbcOhc29sYXRhIGxlbm5lLgogCiAgIDUuIFTDoXZvbMOtdHNhIGVsIGEgZsOhamx0ICAoTVMtRE9TKToJOiFkZWwgVEVTWlQKIAkJCXZhZ3kgKFVuaXgpOgk6IXJtIFRFU1pUCkBAIC02MjYsNyArNjI2LDcgQEAKIAogCiB+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+fn4KLQkJCSA2LjEuICBsZWNrZTogQSBPUEVOIFBBUkFOQ1MKKwkJICAgNi4xLiAgbGVja2U6IEEgTUVHTllJVMOBUyAoT1BFTikgUEFSQU5DUwogCiAKICoqIG8gIGJlw61yw6Fzw6F2YWwgbnlpdGhhdCBlZ3kgw7pqIHNvcnQgYSBrdXJ6b3IgYWxhdHQgw6lzIHbDoWx0aGF0IGJlc3rDunLDsyBtw7NkYmEgKioKQEAgLTY4NCwxNiArNjg0LDE3IEBACiAKICAgMS4gTW96Z2Fzc3VrIGEga3Vyem9ydCBheiBlbHPFkSAtLS0+IGtlemRldMWxIHNvcnJhIQogCi0gIDIuIFBsYWNlIHRoZSBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlyc3Qgd29yZCB0aGF0IGlzIGRpZmZlcmVudAotICAgICBmcm9tIHRoZSBzZWNvbmQgbGluZSBtYXJrZWQgLS0tPiAodGhlIHdvcmQgJ2xhc3QnKS4KKyAgMi4gSGVseWV6emUgYSBrdXJ6b3J0IGF6IGVsc8WRIHN6w7MgZWxlasOpcmUgYW1lbHkgZWx0w6lyIGEgbcOhc29kaWsKKyAgICAgLS0tPiBrZXpkZXTFsSBzb3IgdGFydGFsbcOhdMOzbCAoYSAnYXogdXRvbHPDs3ZhbCcgcsOpc3p0xZFsKS4KIAotICAzLiBOb3cgdHlwZSAgUiAgYW5kIHJlcGxhY2UgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGV4dCBvbiB0aGUgZmlyc3QgbGluZSBieQotICAgICB0eXBpbmcgb3ZlciB0aGUgb2xkIHRleHQgdG8gbWFrZSB0aGUgZmlyc3QgbGluZSB0aGUgc2FtZSBhcyB0aGUgc2Vjb25kLgorICAzLiBOeW9tam9uIFIga2FyYWt0ZXJ0IMOpcyDDrXJqYSDDqXQgYSBzesO2dmVnIG1hcmFkw6lrw6F0IGF6IGVsc8WRIHNvcmJhbgorICAgICDDumd5LCBob2d5IGEgIGvDqXQgc29yIGVneWV6xZEgbGVneWVuLgogCi0tLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIGxhc3Qgb24gdGhpcyBwYWdlIHVzZSB0aGUga2V5cy4KLS0tLT4gVG8gbWFrZSB0aGUgZmlyc3QgbGluZSB0aGUgc2FtZSBhcyB0aGUgc2Vjb25kLCB0eXBlIFIgYW5kIHRoZSBuZXcgdGV4dC4KKy0tLT4gQXogZWxzxZEgc29ydCB0ZWd5ZSBhem9ub3Nzw6EgYXogdXRvbHPDs3ZhbDogaGFzem7DoWxqYSBhIGdvbWJva2F0LgorLS0tPiBBeiBlbHPFkSBzb3J0IHRlZ3llIGF6b25vc3PDoSBhIG3DoXNvZGlra2FsOiDDrXJqb24gUi10IMOpcyBheiDDumogc3rDtnZlZ2V0LgogCi0gIDQuIE5vdGUgdGhhdCB3aGVuIHlvdSBwcmVzcyA8RVNDPiB0byBleGl0LCBhbnkgdW5hbHRlcmVkIHRleHQgcmVtYWlucy4KKyAgNC4gSmVneWV6esO8ayBtZWcsIGhhIDxFU0M+LWV0IG55b21vaywgYWtrb3IgYSB2w6FsdG96YXRsYW51ayBoYWd5b3R0CisgICAgIHN6w7Z2ZWdlayB2w6FsdG96YXRsYW5vayBtYXJhZG5hay4KIAogCiAKQEAgLTcyNiwxNiArNzI3LDE2IEBACiAJCQkgICAgICAgNi4gTEVDS0Ugw5ZTU1pFRk9HTEFMw5NKQQogCiAKLSAgMS4gVHlwaW5nICBvCW9wZW5zIGEgbGluZSBCRUxPVyB0aGUgY3Vyc29yIGFuZCBwbGFjZXMgdGhlIGN1cnNvciBvbiB0aGUgb3BlbgotICAgICBsaW5lIGluIEluc2VydCBtb2RlLgotICAgICBUeXBpbmcgYSBjYXBpdGFsICBPICBvcGVucyB0aGUgbGluZSBBQk9WRSB0aGUgbGluZSB0aGUgY3Vyc29yIGlzIG9uLgorICAxLiBvCWJlw61yw6Fzw6F2YWwgw7pqIHNvcnQgbnlpdHVuayBtZWcgYSBzb3IgQUxBVFQgw6lzIGEga3Vyem9yIGF6IMO6agorICAgICBzb3JiYW4gbGVzeiBiZXN6w7pyw6FzLW3Ds2RiYW4uCisgICAgIE5hZ3kgIE8gIGEgc29yIEZFTEVUVCBueWl0IMO6aiBzb3J0LCDDqXMgb2RhIGtlcsO8bCBhIGt1cnpvci4KIAotICAyLiBUeXBlIGFuICBhICB0byBpbnNlcnQgdGV4dCBBRlRFUiB0aGUgY2hhcmFjdGVyIHRoZSBjdXJzb3IgaXMgb24uCi0gICAgIFR5cGluZyBhIGNhcGl0YWwgIEEgIGF1dG9tYXRpY2FsbHkgYXBwZW5kcyB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCisgIDIuIGEgIGJlw61yw6Fzw6F2YWwgYXogYWt0dcOhbGlzIGthcmFrdGVydMWRbCBVVMOBTiAoam9iYnJhKSBzesO6cmhhdHVuayBiZSBzesO2dmVnZXQuCisgICAgIE5hZ3kgQSAgYXV0b21hdGlrdXNhbiBhIHNvciBsZWd2w6lnw6loZXogYWRqYSBob3p6w6EgYSBzesO2dmVnZXQuCiAKLSAgMy4gVHlwaW5nIGEgY2FwaXRhbCAgUiAgZW50ZXJzIFJlcGxhY2UgbW9kZSB1bnRpbCAgPEVTQz4gIGlzIHByZXNzZWQgdG8gZXhpdC4KKyAgMy4gQSBuYWd5ICBSICBiZcO8dMOpc8OpdmVsIMOhdMOtcsOzIChyZXBsYWNlKSBtw7NkYmEga2Vyw7xsw7xuayAgPEVTQz4gbGVueW9tw6Fzw6FpZy4KIAotICA0LiBUeXBpbmcgIjpzZXQgeHh4IiBzZXRzIHRoZSBvcHRpb24gInh4eCIKKyAgNC4gIjpzZXQgeHh4IiBiZcOtcsOhc8OhdmFsIGF6ICJ4eHgiIG9wY2nDsyDDoWxsw610aGF0w7MgYmUuCiAKIAogCkBAIC03NDYsNyArNzQ3LDcgQEAKIAogCiB+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+fn4KLQkJICAgICAgIDcuIGxlY2tlOiBPTi1MSU5FIEhFTFAgUEFSQU5DU09LCisJCSAgICAgNy4gbGVja2U6IEFaIE9OLUxJTkUgU8OaR8OTIFBBUkFOQ1NBSQogCiAKIAkJICAgICoqIEF6IG9ubGluZSBzw7pnw7NyZW5kc3plciBoYXN6bsOhbGF0YSAqKgpAQCAtODAxLDggKzgwMiw5IEBACiAgIHR1ZMOza25hazogIjpoZWxwIHVzZXItbWFudWFsIi4gKGVneWVsxZFyZSBuZW0gdHVkIG1hZ3lhcnVsKQogCiAgIFRvdsOhYmJpIG1hZ3lhciBvbHZhc25pdmFsw7NrIMOpcmhldMWRZWsgZWwgYXogYWzDoWJiaSBvbGRhbHLDs2wuCi0gIGh0dHA6Ly91YnVudHUuaHUvaW5kZXgucGhwP3RpdGxlPVZpbQorICBodHRwOi8vd2lraS5odXAuaHUvaW5kZXgucGhwL1ZpbQogCisgIEFuZ29sIG9sdmFzbcOhbnlvazoKICAgRm9yIGZ1cnRoZXIgcmVhZGluZyBhbmQgc3R1ZHlpbmcsIHRoaXMgYm9vayBpcyByZWNvbW1lbmRlZDoKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGJ5IFN0ZXZlIE91YWxsaW5lCiAJUHVibGlzaGVyOiBOZXcgUmlkZXJzCkBAIC04MTYsOCArODE4LDEzIEBACiAgIEl0IGlzIGEgZ29vZCBib29rIHRvIGdldCB0byBrbm93IGFsbW9zdCBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyB3aXRoIFZpLgogICBUaGUgc2l4dGggZWRpdGlvbiBhbHNvIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9uIFZpbS4KIAotICBUaGlzIHR1dG9yaWFsIHdhcyB3cml0dGVuIGJ5IE1pY2hhZWwgQy4gUGllcmNlIGFuZCBSb2JlcnQgSy4gV2FyZSwKLSAgQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzIHVzaW5nIGlkZWFzIHN1cHBsaWVkIGJ5IENoYXJsZXMgU21pdGgsCi0gIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKyAgRXp0IGF6IG9rdGF0w7N0IE1pY2hhZWwgQy4gUGllcmNlIMOpcyBSb2JlcnQgSy4gV2FyZSDDrXJ0YSwgYSBDb2xvcmFkbworICBTY2hvb2wgb2YgTWluZXMgZG9sZ296w7NpIENoYXJsZXMgU21pdGggKENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkpCisgIHTDoW1vZ2F0w6Fzw6F2YWwuCiAKLSAgTW9kaWZpZWQgZm9yIFZpbSBieSBCcmFtIE1vb2xlbmFhci4KKyAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCisKKyAgQSBWaW1oZXogaWRvbcOtdG90dGEgQnJhbSBNb29sZW5hYXIuCisKKyAgTWFneWFyw610b3R0YTogSG9ydsOhdGggw4FycMOhZCA8aG9ydmF0aC5hcnBhZEByb2lrLmJtZi5odT4sIDIwMDYtMjAwOAorCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmphLmV1YyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuZXVjCmluZGV4IGYwNDNlNDIuLjUxMzQzOTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuZXVjCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuZXVjCkBAIC0yNTcsNyArMjU3LDcgQEAKIAogICAgICAgKiogsr+y86TiudSkpKS/pKS3q6Tqytakt6TOpeKhvKW3peel86TOwbCky7/0w82k8qW/paSl16S3pN6kuaGjICoqCiAKLSAgMS4gsMqyvKTOIC0tLT4gpMi8qKS1pOykv7bIpM7A6MaspMulq6G8pb2l66TysNzGsKS3pN6kuaGjCisgIDEuILDKsrykziAtLS0+IKTIvKiktaTspL+51KTOwOjGrKTLpauhvKW9peuk8rDcxrCkt6TepLmhowogCiAgIDIuIDJkdyCk8qW/paSl16S3pMbDsbjsMqTEyqyw3MawpLek3qS5oaMKIApAQCAtNzQxLDcgKzc0MSw3IEBACiAKICAgICAgICoqIKWrobylvaXrpM68oaTOsMzD1qSrpOmlxqWtpbmlyKTyxMmyw6S5pOuky6TPIGEgpMilv6Wkpdekt6TepLkgKioKIAotICAxLiClq6G8pb2l66TyIC0tLT4gpMe8qKS1pOykv7bIpNiw3MawpLek3qS3pOekpqGjCisgIDEuIKWrobylvaXrpPIgLS0tPiCkx7yopLWk7KS/udSk2LDcxrCkt6TepLek56SmoaMKIAogICAyLiBlIKTysqGkt6TGIGxpIKTOvarDvMn0pN6kx6WrobylvaXrpPKw3MawpLek3qS5oaMKIApAQCAtNzY0LDcgKzc2NCw3IEBACiAKIAkgICoqIDHKuLv6sMq+5aTyw9akrbS5pKik66TLpM/C58q4u/qkziBSIKTIpb+lpKXXpLek3qS3pOekpiAqKgogCi0gIDEuILDKsrykziAtLS0+IKTIvKiktaTspL+2yKTLpauhvKW9peuk8rDcxrCkt6TepLmho7rHvemkziB4eHggpM7A6MaspMuw3MawpLcKKyAgMS4gsMqyvKTOIC0tLT4gpMi8qKS1pOykv7nUpMulq6G8pb2l66TysNzGsKS3pN6kuaGjuse96aTOIHh4eCCkzsDoxqyky7DcxrCktwogICAgICCk3qS5oaMKIAogICAyLiBSIKTysqGkt6TGoaIyudTM3KTOv/TDzaTypb+lpKXXpLmk66SzpMikx6GieHh4IKSsw9a0uaS1pOyk3qS5oaMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuc2ppcyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuc2ppcwppbmRleCAzYmIzYzJjLi43YmUyMTIwIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmphLnNqaXMKKysrIGIvcnVudGltZS90dXRvci90dXRvci5qYS5zamlzCkBAIC0yNTcsNyArMjU3LDcgQEAKIAogICAgICAgKiogib2J8YLgjXOCooK9gqKMSoLoldSCtYLMg4KBW4NWg4eDk4LMkU+CyZCUkmyC8INeg0ODdoK1gtyCt4FCICoqCiAKLSAgMS4giMiJuoLMIC0tLT4ggsaOpoKzguqCvYvGgsyQ5pOqgsmDSoFbg1yDi4LwiNqTroK1gtyCt4FCCisgIDEuIIjIibqCzCAtLS0+IILGjqaCs4Lqgr2Nc4LMkOaTqoLJg0qBW4Ncg4uC8Ijak66CtYLcgreBQgogCiAgIDIuIDJkdyCC8INeg0ODdoK1gsSSUIzqMoLClaqI2pOugrWC3IK3gUIKIApAQCAtNzQxLDcgKzc0MSw3IEBACiAKICAgICAgICoqIINKgVuDXIOLgsyOn4LMiMqSdYKpgueDZYNMg1iDZ4LwkseJwYK3gumCyYLNIGEggsaDXoNDg3aCtYLcgrcgKioKIAotICAxLiCDSoFbg1yDi4LwIC0tLT4ggsWOpoKzguqCvYvGgtaI2pOugrWC3IK1guWCpIFCCisgIDEuIINKgVuDXIOLgvAgLS0tPiCCxY6mgrOC6oK9jXOC1ojak66CtYLcgrWC5YKkgUIKIAogICAyLiBlIILwiZ+CtYLEIGxpIILMj0mSW5WUgtyCxYNKgVuDXIOLgvCI2pOugrWC3IK3gUIKIApAQCAtNzY0LDcgKzc2NCw3IEBACiAKIAkgICoqIDGVto6aiMiP44LwknWCq4q3gqaC6YLJgs2R5ZW2jpqCzCBSIILGg16DQ4N2grWC3IK1guWCpCAqKgogCi0gIDEuIIjIibqCzCAtLS0+IILGjqaCs4Lqgr2LxoLJg0qBW4Ncg4uC8Ijak66CtYLcgreBQo3Fj4mCzCB4eHgggsyQ5pOqgsmI2pOugrUKKyAgMS4giMiJuoLMIC0tLT4ggsaOpoKzguqCvY1zgsmDSoFbg1yDi4LwiNqTroK1gtyCt4FCjcWPiYLMIHh4eCCCzJDmk6qCyYjak66CtQogICAgICCC3IK3gUIKIAogICAyLiBSIILwiZ+CtYLEgUEyjXOW2oLMkJSSbILwg16DQ4N2greC6YKxgsaCxYFBeHh4IIKqknWKt4KzguqC3IK3gUIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLmphLnV0Zi04CmluZGV4IGUxMmNkNjkuLjk1ZTEwOGUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEudXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci5qYS51dGYtOApAQCAtMjU3LDcgKzI1Nyw3IEBACiAKICAgICAgICoqIOS9leWbnuOCguihjOOBhOOBn+OBhOe5sOOCiui/lOOBl+OBruODouODvOOCt+ODp+ODs+OBruWJjeOBq+aVsOWApOOCkuOCv+OCpOODl+OBl+OBvuOBmeOAgiAqKgogCi0gIDEuIOS7peS4i+OBriAtLS0+IOOBqOekuuOBleOCjOOBn+alreOBruWFiOmgreOBq+OCq+ODvOOCveODq+OCkuenu+WLleOBl+OBvuOBmeOAggorICAxLiDku6XkuIvjga4gLS0tPiDjgajnpLrjgZXjgozjgZ/ooYzjga7lhYjpoK3jgavjgqvjg7zjgr3jg6vjgpLnp7vli5XjgZfjgb7jgZnjgIIKIAogICAyLiAyZHcg44KS44K/44Kk44OX44GX44Gm5Y2Y6KqeMuOBpOWIhuenu+WLleOBl+OBvuOBmeOAggogCkBAIC03NDEsNyArNzQxLDcgQEAKIAogICAgICAgKiog44Kr44O844K944Or44Gu5qyh44Gu5L2N572u44GL44KJ44OG44Kt44K544OI44KS6L+95Yqg44GZ44KL44Gr44GvIGEg44Go44K/44Kk44OX44GX44G+44GZICoqCiAKLSAgMS4g44Kr44O844K944Or44KSIC0tLT4g44Gn56S644GV44KM44Gf5qWt44G456e75YuV44GX44G+44GX44KH44GG44CCCisgIDEuIOOCq+ODvOOCveODq+OCkiAtLS0+IOOBp+ekuuOBleOCjOOBn+ihjOOBuOenu+WLleOBl+OBvuOBl+OCh+OBhuOAggogCiAgIDIuIGUg44KS5oq844GX44GmIGxpIOOBrue1guerr+mDqOOBvuOBp+OCq+ODvOOCveODq+OCkuenu+WLleOBl+OBvuOBmeOAggogCkBAIC03NjQsNyArNzY0LDcgQEAKIAogCSAgKiogMeaWh+Wtl+S7peS4iuOCkue9ruOBjeaPm+OBiOOCi+OBq+OBr+Wkp+aWh+Wtl+OBriBSIOOBqOOCv+OCpOODl+OBl+OBvuOBl+OCh+OBhiAqKgogCi0gIDEuIOS7peS4i+OBriAtLS0+IOOBqOekuuOBleOCjOOBn+alreOBq+OCq+ODvOOCveODq+OCkuenu+WLleOBl+OBvuOBmeOAguacgOWIneOBriB4eHgg44Gu5YWI6aCt44Gr56e75YuV44GXCisgIDEuIOS7peS4i+OBriAtLS0+IOOBqOekuuOBleOCjOOBn+ihjOOBq+OCq+ODvOOCveODq+OCkuenu+WLleOBl+OBvuOBmeOAguacgOWIneOBriB4eHgg44Gu5YWI6aCt44Gr56e75YuV44GXCiAgICAgIOOBvuOBmeOAggogCiAgIDIuIFIg44KS5oq844GX44Gm44CBMuihjOebruOBruaVsOWApOOCkuOCv+OCpOODl+OBmeOCi+OBk+OBqOOBp+OAgXh4eCDjgYznva7mj5vjgZXjgozjgb7jgZnjgIIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IubmIgYi9ydW50aW1lL3R1dG9yL3R1dG9yLm5iCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MTc4ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLm5iCkBAIC0wLDAgKzEsOTczIEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9IFYgZSBsIGsgbyBtIG0gZSBuICAgdCBpIGwgICBpIG4gbiBmIPggciBpIG4gZyBlIG4gICBpICAgViBpIG0gIC0tICBWZXIuIDEuNyA9Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgVmltIGVyIGVuIG1lZ2V0IGtyYWZ0aWcgZWRpdG9yIG1lZCBtYW5nZSBrb21tYW5kb2VyLCBhbHQgZm9yIG1hbmdlIHRpbCDlCisgICAgIGt1bm5lIGflIGdqZW5ub20gYWxsZSBpIGVuIGlubmb4cmluZyBzb20gZGVubmUuIERlbiBlciBiZXJlZ25ldCBw5SDlCisgICAgIHNldHRlIGRlZyBpbm4gaSBicnVrZW4gYXYgbm9rIGtvbW1hbmRvZXIgc+UgZHUgdmlsIHbmcmUgaSBzdGFuZCB0aWwgbGV0dAorICAgICDlIGt1bm5lIGJydWtlIFZpbSBzb20gZW4gZWRpdG9yIHRpbCBhbGxlIGZvcm3lbC4KKworICAgICBUaWRlbiBzb20ga3JldmVzIGZvciDlIGflIGdqZW5ub20gZGVubmUgaW5uZvhyaW5nZW4gdGFyIGNhLiAyNS0zMAorICAgICBtaW51dHRlciwgYXZoZW5naWcgYXYgaHZvciBteWUgdGlkIGR1IGJydWtlciB0aWwgZWtzcGVyaW1lbnRlcmluZy4KKworICAgICBNRVJLOgorICAgICBLb21tYW5kb2VuZSBpIGxla3Nqb25lbmUgdmlsIG1vZGlmaXNlcmUgdGVrc3Rlbi4gTGFnIGVuIGtvcGkgYXYgZGVubmUKKyAgICAgZmlsZW4gc29tIGR1IGthbiD4dmUgZGVnIHDlIChodmlzIGR1IGtq+HJ0ZSCrdmltdHV0b3K7LWtvbW1hbmRvZW4sIGVyCisgICAgIGRldHRlIGFsbGVyZWRlIGVuIGtvcGkpLgorCisgICAgIERldCBlciB2aWt0aWcg5SBodXNrZSBhdCBkZW5uZSBpbm5m+HJpbmdlbiBlciBiZXJlZ25ldCBw5SBs5nJpbmcgZ2plbm5vbQorICAgICBicnVrLiBEZXQgYmV0eXIgYXQgZHUgbeUgdXRm+HJlIGtvbW1hbmRvZW5lIGZvciDlIGzmcmUgZGVtIHNraWtrZWxpZy4KKyAgICAgSHZpcyBkdSBiYXJlIGxlc2VyIHRla3N0ZW4sIHZpbCBkdSBnbGVtbWUga29tbWFuZG9lbmUhCisKKyAgICAgRvhyc3QgYXYgYWx0LCBzamVrayBhdCCrQ2FwcyBMb2NruyBJS0tFIGVyIGFrdGl2IG9nIHRyeWtrIKtquy10YXN0ZW4gZm9yCisgICAgIOUgZmx5dHRlIG1hcmv4cmVuIGhlbHQgdGlsIGxla3Nqb24gMS4xIGZ5bGxlciBza2plcm1lbi4KK35+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+fgorCQkgICAgICBMZWtzam9uIDEuMTogIEZMWVRUSU5HIEFWIE1BUkvYUkVOCisKKworICAgICAgICoqIEZvciDlIGZseXR0ZSBtYXJr+HJlbiwgdHJ5a2sgdGFzdGVuZSBoLCBqLCBrLCBsIHNvbSB2aXN0LiAqKgorCSAgICAgXgorCSAgICAgawkJVGlwczogaC10YXN0ZW4gZXIgdGlsIHZlbnN0cmUgb2cgZmx5dHRlciB0aWwgdmVuc3RyZS4KKyAgICAgICA8IGgJIGwgPgkgICAgICBsLXRhc3RlbiBlciB0aWwgaPh5cmUgb2cgZmx5dHRlciB0aWwgaPh5cmUuCisJICAgICBqCQkgICAgICBqLXRhc3RlbiBzZXIgdXQgc29tIGVuIHBpbCBzb20gcGVrZXIgbmVkb3Zlci4KKwkgICAgIHYKKyAgMS4gRmx5dHQgbWFya/hyZW4gcnVuZHQgcOUgc2tqZXJtZW4gdGlsIGR1IGhhciBm5XR0IGRldCBpbm4gaSBmaW5ncmVuZS4KKworICAyLiBIb2xkIGlubmUgbmVkb3ZlcnRhc3RlbiAoaikgdGlsIGRlbiByZXBldGVyZXIuCisgICAgIE7lIHZldCBkdSBodm9yZGFuIGR1IGJldmVnZXIgZGVnIHRpbCBuZXN0ZSBsZWtzam9uLgorCisgIDMuIEflIHRpbCBsZWtzam9uIDEuMiB2ZWQgaGplbHAgYXYgbmVkb3ZlcnRhc3Rlbi4KKworTWVyazogSHZpcyBkdSBibGlyIHVzaWtrZXIgcOUgbm9lIGR1IGhhciBza3JldmV0LCB0cnlrayA8RVNDPiBmb3Ig5SBn5SB0aWwKKyAgICAgIG5vcm1hbG1vZHVzLiBTa3JpdiBkZXJldHRlciBrb21tYW5kb2VuIGR1IPhuc2tldCBw5SBueXR0LgorCitNZXJrOiBQaWx0YXN0ZW5lIHNrYWwgb2dz5SB2aXJrZS4gTWVuIHZlZCDlIGJydWtlIGhqa2wgdmlsIGR1IHbmcmUgaSBzdGFuZCB0aWwKKyAgICAgIOUgYmV2ZWdlIG1hcmv4cmVuIG15ZSByYXNrZXJlIG7lciBkdSBlciBibGl0dCB2YW50IHRpbCBkZXQuIEhlbHQgc2FudCEKKworfn5+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+CisJCQkgIExla3Nqb24gMS4yOiBBVlNMVVRURSBWSU0KKworCisgICEhIE1FUks6IEb4ciBkdSB1dGb4cmVyIG5vZW4gYXYgcHVua3RlbmUgbmVkZW5mb3IsIGxlcyBoZWxlIGxla3Nqb25lbiEhCisKKyAgMS4gVHJ5a2sgPEVTQz4tdGFzdGVuIChmb3Ig5SBmb3JzaWtyZSBkZWcgb20gYXQgZHUgZXIgaSBub3JtYWxtb2R1cykuCisKKyAgMi4gU2tyaXY6CTpxISA8RU5URVI+LgorICAgICBEZXR0ZSBhdnNsdXR0ZXIgZWRpdG9yZW4gb2cgRk9SS0FTVEVSIGFsbGUgZm9yYW5kcmluZ2VyIHNvbSBkdSBoYXIgZ2pvcnQuCisKKyAgMy4gTuVyIGR1IHNlciBrb21tYW5kb2xpbmplbiBpIHNrYWxsZXQsIHNrcml2IGtvbW1hbmRvZW4gc29tIHN0YXJ0ZXQgZGVubmUKKyAgICAgaW5uZvhyaW5nZW4uIERlbiBlcjogICB2aW10dXRvciA8RU5URVI+CisKKyAgNC4gSHZpcyBkdSBlciBzaWtrZXIgcOUgYXQgZHUgaHVza2VyIGRldHRlLCB1dGb4ciBwdW5rdGVuZSAxIHRpbCAzIGZvciDlCisgICAgIGF2c2x1dHRlIG9nIHN0YXJ0ZSBlZGl0b3JlbiBw5SBueXR0LgorCitNRVJLOiAgOnEhIDxFTlRFUj4gIGZvcmthc3RlciBhbGxlIGZvcmFuZHJpbmdlciBzb20gZHUgZ2pvcmRlLiBJIGz4cGV0IGF2IG5vZW4KKyAgICAgICBm5SBsZWtzam9uZXIgdmlsIGR1IGzmcmUgaHZvcmRhbiBkdSBsYWdyZXIgZm9yYW5kcmluZ2VuZSB0aWwgZW4gZmlsLgorCisgIDUuIEZseXR0IG1hcmv4cmVuIG5lZCB0aWwgbGVrc2pvbiAxLjMuCisKKworfn5+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+CisJCSBMZWtzam9uIDEuMzogUkVESUdFUklORyBBViBURUtTVCAtLSBTTEVUVElORworCisKKwkgICAgICoqIFRyeWtrICB4ICBmb3Ig5SBzbGV0dGUgdGVnbmV0IHVuZGVyIG1hcmv4cmVuLiAqKgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBtZXJrZXQgbWVkICAtLS0+LgorCisgIDIuIEZvciDlIG9yZG5lIGZlaWxlbmUgcOUgbGluamVuLCBmbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGVyIG9wcOUgdGVnbmV0IHNvbQorICAgICBza2FsIHNsZXR0ZXMuCisKKyAgMy4gVHJ5a2sgdGFzdGVuICB4ICBmb3Ig5SBzbGV0dGUgZGV0IHX4bnNrZWRlIHRlZ25ldC4KKworICA0LiBSZXBldGVyIHB1bmt0IDIgdGlsIDQgdGlsIHNldG5pbmdlbiBlciBsaWsgZGVuIHNvbSBlciB1bmRlci4KKworLS0tPiBIZXNzc3Rlbm5ubiBicnJy5XNudWRkZGRlIGlpIGdhYWF0YS4KKy0tLT4gSGVzdGVuIGJy5XNudWRkZSBpIGdhdGEuCisKKyAgNS4gTuUgc29tIGxpbmplbiBlciBrb3JyZWt0LCBn5SB0aWwgbGVrc2pvbiAxLjQuCisKK01FUks6IE7lciBkdSBn5XIgZ2plbm5vbSBpbm5m+HJpbmdlbiwgaWtrZSBiYXJlIHBy+HYg5SBodXNrZSBrb21tYW5kb2VuZSwgbWVuCisgICAgICBicnVrIGRlbSBoZWx0IHRpbCBkZSBzaXR0ZXIuCisKK35+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+fgorCQlMZWtzam9uIDEuNDogUkVESUdFUklORyBBViBURUtTVCAtLSBJTk5TRVRUSU5HCisKKworCQkgICAgKiogVHJ5a2sgIGkgIGZvciDlIHNldHRlIGlubiB0ZWtzdC4gKioKKworICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGb4cnN0ZSBsaW5qZW4gc29tIGVyIG1lcmtldCBtZWQgLS0tPi4KKworICAyLiBGb3Ig5SBnavhyZSBkZW4gZvhyc3RlIGxpbmplbiBsaWsgZGVuIGFuZHJlLCBmbHl0dCBtYXJr+HJlbiB0aWwgZGVuIHN05XIKKyAgICAgcOUgdGVnbmV0IEVUVEVSIHBvc2lzam9uZW4gZGVyIHRla3N0ZW4gc2thbCBzZXR0ZXMgaW5uLgorCisgIDMuIFRyeWtrICBpICBvZyBza3JpdiBpbm4gdGVrc3RlbiBzb20gbWFuZ2xlci4KKworICA0LiBFdHRlcmh2ZXJ0IHNvbSBodmVyIGZlaWwgZXIgZmlrc2V0LCB0cnlrayA8RVNDPiBmb3Ig5SByZXR1cm5lcmUgdGlsCisgICAgIG5vcm1hbG1vZHVzLiBSZXBldGVyIHB1bmt0IDIgdGlsIDQgdGlsIHNldG5pbmdlbiBlciBrb3JyZWt0LgorCistLS0+IERldCBlciB0a3N0IHNvbSBtbmdsciAuCistLS0+IERldCBlciBnYW5za2UgbXllIHRla3N0IHNvbSBtYW5nbGVyIGhlci4KKworICA1LiBO5XIgZHUgZvhsZXIgZGVnIGtvbWZvcnRhYmVsIG1lZCDlIHNldHRlIGlubiB0ZWtzdCwgZ+UgdGlsIG9wcHN1bW1lcmluZ2VuCisgICAgIG5lZGVuZm9yLgorCisKK35+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+fgorCQlMZWtzam9uIDEuNTogUkVESUdFUklORyBBViBURUtTVCAtLSBMRUdHRSBUSUwKKworCisJCSAgICAqKiBUcnlrayAgQSAgZm9yIOUgbGVnZ2UgdGlsIHRla3N0LiAqKgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KKyAgICAgRGV0IGhhciBpa2tlIG5vZSDlIHNpIGh2b3IgbWFya/hyZW4gZXIgcGxhc3NlcnQgcOUgZGVuIGxpbmplbi4KKworICAyLiBUcnlrayAgQSAgb2cgc2tyaXYgaW5uIGRldCBzb20gc2thbCBsZWdnZXMgdGlsLgorCisgIDMuIE7lciB0ZWtzdGVuIGVyIGxhZ3QgdGlsLCB0cnlrayA8RVNDPiBmb3Ig5SByZXR1cm5lcmUgdGlsIG5vcm1hbG1vZHVzZW4uCisKKyAgNC4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBhbmRyZSBsaW5qZW4gbWFya2VydCBtZWQgLS0tPiBvZyByZXBldGVyIHN0ZWcgMiBvZworICAgICAzIGZvciDlIHJlcGFyZXJlIGRlbm5lIHNldG5pbmdlbi4KKworLS0tPiBEZXQgbWFuZ2xlciBub2UgdGVrc3QgcAorICAgICBEZXQgbWFuZ2xlciBub2UgdGVrc3QgcOUgZGVubmUgbGluamVuLgorLS0tPiBEZXQgbWFuZ2xlciBvZ3PlIGxpdHQgdGVrCisgICAgIERldCBtYW5nbGVyIG9nc+UgbGl0dCB0ZWtzdCBw5SBkZW5uZSBsaW5qZW4uCisKKyAgNS4gTuVyIGR1IGb4bGVyIGF0IGR1IGJlaGVyc2tlciDlIGxlZ2dlIHRpbCB0ZWtzdCwgZ+UgdGlsIGxla3Nqb24gMS42LgorCit+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+fn4KKwkJCSBMZWtzam9uIDEuNjogUkVESUdFUkUgRU4gRklMCisKKworCSAgICAgICAqKiBCcnVrCTp3cSAgZm9yIOUgbGFncmUgZW4gZmlsIG9nIGF2c2x1dHRlLiAqKgorCisgICEhIE1FUks6IEb4ciBkdSB1dGb4cmVyIG5vZW4gYXYgc3RlZ2VuZSBuZWRlbmZvciwgbGVzIGhlbGUgZGVubmUgbGVrc2pvbmVuISEKKworICAxLiBBdnNsdXR0IGRlbm5lIGlubmb4cmluZ2VuIHNvbSBkdSBnam9yZGUgaSBsZWtzam9uIDEuMjogIDpxIQorCisgIDIuIFNrcml2IGRlbm5lIGtvbW1hbmRvZW4gcOUga29tbWFuZG9saW5qYTogIHZpbSB0dXRvciA8RU5URVI+CisgICAgIKt2aW27IGVyIGtvbW1hbmRvZW4gZm9yIOUgc3RhcnRlIFZpbS1lZGl0b3Jlbiwgq3R1dG9yuyBlciBuYXZuZXQgcOUgZmlsYQorICAgICBzb20gZHUgdmlsIHJlZGlnZXJlLiBCcnVrIGVuIGZpbCBzb20ga2FuIGZvcmFuZHJlcy4KKworICAzLiBTZXR0IGlubiBvZyBzbGV0dCB0ZWtzdCBzb20gZHUgbOZydGUgaSBkZSBmb3JlZ+VlbmRlIGxla3Nqb25lbmUuCisKKyAgNC4gTGFncmUgZmlsZW4gbWVkIGZvcmFuZHJpbmdlbmUgb2cgYXZzbHV0dCBWaW0gbWVkOgk6d3EgPEVOVEVSPgorCisgIDUuIFN0YXJ0IGlubmb4cmluZ2VuIHDlIG55dHQgb2cgZmx5dHQgbmVkIHRpbCBvcHBzdW1tZXJpbmdlbiBzb20gZvhsZ2VyLgorCisgIDYuIEV0dGVyIOUgaGEgbGVzdCBvZyBmb3JzdOV0dCBzdGVnZW5lIG92ZW5mb3I6IFNldHQgaSBnYW5nLgorCisKK35+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+fgorCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiAxCisKKworICAxLiBNYXJr+HJlbiBiZXZlZ2VzIHZlZCBoamVscCBhdiBwaWx0YXN0ZW5lIGVsbGVyIGhqa2wtdGFzdGVuZS4KKwkgaCAodmVuc3RyZSkJIGogKG5lZCkgICAgIGsgKG9wcCkJIGwgKGj4eXJlKQorCisgIDIuIEZvciDlIHN0YXJ0ZSBWaW0gZnJhIHNrYWxsLWtvbW1hbmRvbGluamVuLCBza3JpdjoJdmltIEZJTE5BVk4gPEVOVEVSPgorCisgIDMuIEZvciDlIGF2c2x1dHRlIFZpbSwgc2tyaXY6ICA8RVNDPiA6cSEgPEVOVEVSPiAgZm9yIOUgZm9ya2FzdGUgZW5kcmluZ2VyLgorCQkgICBFTExFUiBza3JpdjogIDxFU0M+IDp3cSA8RU5URVI+ICBmb3Ig5SBsYWdyZSBmb3JhbmRyaW5nZW5lLgorCisgIDQuIEZvciDlIHNsZXR0ZSB0ZWduZXQgdW5kZXIgbWFya/hyZW4sIHRyeWtrOiAgeAorCisgIDUuIEZvciDlIHNldHRlIGlubiBlbGxlciBsZWdnZSB0aWwgdGVrc3QsIHRyeWtrOgorCSBpICAgIHNrcml2IGlubnNhdHQgdGVrc3QgIDxFU0M+CXNldHQgaW5uIGb4ciBtYXJr+HJlbgorCSBBICAgIHNrcml2IHRpbGxhZ3QgdGVrc3QgIDxFU0M+CWxlZ2cgdGlsIHDlIHNsdXR0ZW4gYXYgbGluamVuCisKK01FUks6IE7lciBkdSB0cnlra2VyIDxFU0M+IGflciBkdSB0aWwgbm9ybWFsbW9kdXMgZWxsZXIgZHUgYXZicnl0ZXIgZW4gdfhuc2tldAorICAgICAgb2cgZGVsdmlzIGZ1bGxm+HJ0IGtvbW1hbmRvLgorCisgIE7lIGthbiBkdSBn5SB2aWRlcmUgdGlsIGxla3Nqb24gMi4KKworfn5+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+CisJCQlMZWtzam9uIDIuMTogU0xFVFRFS09NTUFORE9FUgorCisKKwkJICAgICoqIFRyeWtrICBkdyAgZm9yIOUgc2xldHRlIGV0IG9yZC4gKioKKworICAxLiBUcnlrayA8RVNDPiBmb3Ig5SB25nJlIHNpa2tlciBw5SBhdCBkdSBlciBpIG5vcm1hbG1vZHVzLgorCisgIDIuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KKworICAzLiBGbHl0dCBtYXJr+HJlbiB0aWwgYmVneW5uZWxzZW4gYXYgb3JkZXQgc29tIHNrYWwgc2xldHRlcy4KKworICA0LiBUcnlrayAgZHcJb2cgb3JkZXQgdmlsIGZvcnN2aW5uZS4KKworTUVSSzogQm9rc3RhdmVuICBkICB2aWwga29tbWUgdGlsIHN5bmUgcOUgZGVuIG5lZGVyc3RlIGxpbmplbiBw5SBza2plcm1lbiBu5XIKKyAgICAgIGR1IHNrcml2ZXIgZGVuLiBWaW0gdmVudGVyIHDlIGF0IGR1IHNrYWwgc2tyaXZlIHcgLiBIdmlzIGR1IHNlciBldCBhbm5ldAorICAgICAgdGVnbiBlbm4JZCAgaGFyIGR1IHNrcmV2ZXQgbm9lIGZlaWw7IHRyeWtrIDxFU0M+IG9nIHN0YXJ0IHDlIG55dHQuCisKKy0tLT4gRGV0IGVyIGFndXJrIHRyZSBvcmQgZXBsZSBzb20gaWtrZSBo+HJlciBw5nJlIGhqZW1tZSBpIGRlbm5lIHNldG5pbmdlbi4KKy0tLT4gRGV0IGVyIHRyZSBvcmQgc29tIGlra2UgaPhyZXIgaGplbW1lIGkgZGVubmUgc2V0bmluZ2VuLgorCisgIDUuIFJlcGV0ZXIgcHVua3QgMyBvZyA0IHRpbCBkZW4gZvhyc3RlIHNldG5pbmdlbiBlciBsaWsgZGVuIGFuZHJlLiBH5QorICAgICBkZXJldHRlciB0aWwgbGVrc2pvbiAyLjIuCit+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+fn4KKwkJICAgICBMZWtzam9uIDIuMjogRkxFUkUgU0xFVFRFS09NTUFORE9FUgorCisKKwkgICAgICoqIFRyeWtrICBkJCAgZm9yIOUgc2xldHRlIHRpbCBzbHV0dGVuIGF2IGxpbmplbi4gKioKKworICAxLiBUcnlrayA8RVNDPiBmb3Ig5SB25nJlIHNpa2tlciBw5SBhdCBkdSBlciBpIG5vcm1hbG1vZHVzLgorCisgIDIuIEZseXR0IG1hcmv4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4uCisKKyAgMy4gRmx5dHQgbWFya/hyZW4gdGlsIHB1bmt0ZXQgZGVyIGxpbmplbiBza2FsIGt1dHRlcyAoRVRURVIgZvhyc3RlIHB1bmt0dW0pLgorCisgIDQuIFRyeWtrICBkJAlmb3Ig5SBzbGV0dGUgYWx0IHRpbCBzbHV0dGVuIGF2IGxpbmplbi4KKworLS0tPiBOb2VuIHNrcmV2IHNsdXR0ZW4gcOUgbGluamVuIGVuIGdhbmcgZm9yIG15ZS4gbGluamVuIGVuIGdhbmcgZm9yIG15ZS4KKworICA1LiBH5SB0aWwgbGVrc2pvbiAyLjMgZm9yIOUgZm9yc3TlIGh2YSBzb20gc2tqZXIuCisKKworCisKKworCit+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+fn4KKwkJICAgTGVrc2pvbiAyLjM6IE9NIE9QRVJBVE9SRVIgT0cgQkVWRUdFTFNFUgorCisKKyAgTWFuZ2Uga29tbWFuZG9lciBzb20gZm9yYW5kcmVyIHRla3N0ZW4gZXIgbGFnZXQgdXQgaSBmcmEgZW4gb3BlcmF0b3Igb2cgZW4KKyAgYmV2ZWdlbHNlLiBGb3JtYXRldCBmb3IgZW4gc2xldHRla29tbWFuZG8gbWVkIHNsZXR0ZW9wZXJhdG9yZW4gIGQgIGVyOgorCisJZCAgIGJldmVnZWxzZQorCisgIERlcjoKKyAgICBkCSAgICAgIC0gZXIgc2xldHRlb3BlcmF0b3Jlbi4KKyAgICBiZXZlZ2Vsc2UgLSBlciBodmEgb3BlcmF0b3JlbiB2aWwgb3BlcmUgcOUgKGxpc3RldCBuZWRlbmZvcikuCisKKyAgRW4ga29ydCBsaXN0ZSBtZWQgYmV2ZWdlbHNlcjoKKyAgICB3IC0gdGlsIHN0YXJ0ZW4gYXYgZGV0IG5lc3RlIG9yZGV0LCBVTk5UQVRUIGRldCBm+HJzdGUgdGVnbmV0LgorICAgIGUgLSB0aWwgc2x1dHRlbiBhdiBkZXQgbuV25nJlbmRlIG9yZGV0LCBJTktMVURFUlQgZGV0IHNpc3RlIHRlZ25ldC4KKyAgICAkIC0gdGlsIHNsdXR0ZW4gYXYgbGluamVuLCBJTktMVURFUlQgZGV0IHNpc3RlIHRlZ25ldC4KKworICBWZWQg5SBza3JpdmUJZGUgIHZpbCBhbHRz5SBhbHQgZnJhIG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IG9yZGV0IGJsaQorICBzbGV0dGV0LgorCitNRVJLOiAgVmVkIOUgc2tyaXZlIGt1biBiZXZlZ2Vsc2VuIGkgbm9ybWFsbW9kdXNlbiB1dGVuIGVuIG9wZXJhdG9yIHZpbAorICAgICAgIG1hcmv4cmVuIGZseXR0ZXMgc29tIHNwZXNpZmlzZXJ0Lgorfn5+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+CisJCSBMRUtTSk9OIDIuNDogQlJVSyBBViBURUxMRVIgRk9SIEVOIEJFVkVHRUxTRQorCisKKyAqKiBWZWQg5SBza3JpdmUgZXQgdGFsbCBmb3JhbiBlbiBiZXZlZ2Vsc2UgcmVwZXRlcmVyIGRlbiBz5SBtYW5nZSBnYW5nZXIuICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIHN0YXJ0ZW4gYXYgbGluamVuIG1hcmtlcnQgLS0tPiBuZWRlbmZvci4KKworICAyLiBTa3JpdiAgMncJZm9yIOUgZmx5dHRlIG1hcmv4cmVuIHRvIG9yZCBmcmFtb3Zlci4KKworICAzLiBTa3JpdiAgM2UJZm9yIOUgZmx5dHRlIG1hcmv4cmVuIGZyYW1vdmVyIHRpbCBzbHV0dGVuIGF2IGRldCB0cmVkamUKKyAgICAgb3JkZXQuCisKKyAgNC4gU2tyaXYgIDAgIChudWxsKSBmb3Ig5SBmbHl0dGUgdGlsIHN0YXJ0ZW4gYXYgbGluamVuLgorCisgIDUuIFJlcGV0ZXIgc3RlZyAyIG9nIDMgbWVkIGZvcnNramVsbGlnZSB0YWxsLgorCistLS0+IERldHRlIGVyIGVuIGxpbmplIG1lZCBub2VuIG9yZCBzb20gZHUga2FuIGJldmVnZSBkZWcgcnVuZHQgcOUuCisKKyAgNi4gR+UgdmlkZXJlIHRpbCBsZWtzam9uIDIuNS4KKworCisKK35+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+fgorCQkgTGVrc2pvbiAyLjU6IEJSVUsgQVYgQU5UQUxMIEZPUiDFIFNMRVRURSBNRVIKKworCisgICAgICoqIEV0IHRhbGwgc2FtbWVuIG1lZCBlbiBvcGVyYXRvciByZXBldGVyZXIgZGVuIHPlIG1hbmdlIGdhbmdlci4gKioKKworICBJIGtvbWJpbmFzam9uZW4gbWVkIHNsZXR0ZW9wZXJhdG9yZW4gb2cgZW4gYmV2ZWdlbHNlIG5ldm50IG92ZW5mb3Igc2V0dGVyIGR1CisgIGlubiBhbnRhbGwgZvhyIGJldmVnZWxzZW4gZm9yIOUgc2xldHRlIG1lcjoKKwkgZCAgbnVtbWVyICBiZXZlZ2Vsc2UKKworICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGV0IGb4cnN0ZSBvcmRldCBtZWQgU1RPUkUgQk9LU1RBVkVSIHDlIGxpbmplbiBtYXJrZXJ0CisgICAgIG1lZCAtLS0+LgorCisgIDIuIFNrcml2ICAyZHcgIGZvciDlIHNsZXR0ZSBkZSB0byBvcmRlbmUgbWVkIHN0b3JlIGJva3N0YXZlci4KKworICAzLiBSZXBldGVyIHN0ZWcgMSBvZyAyIG1lZCBmb3Jza2plbGxpbmcgYW50YWxsIGZvciDlIHNsZXR0ZSBkZSBldHRlcmb4bGdlbmRlCisgICAgIG9yZGVuZSBzb20gaGFyIHN0b3JlIGJva3N0YXZlci4KKworLS0tPiBEZW5uZSBBQkMgREUgbGluamVuIEZHSEkgSksgTE1OIE9QIGVyIG7lIFEgUlMgVFVWIGxpdHQgbWVyIGxlc2Jhci4KKworTUVSSzogRXQgYW50YWxsIG1lbGxvbSBvcGVyYXRvcmVuICBkICBvZyBiZXZlZ2Vsc2VuIHZpcmtlciBw5SBzYW1tZSBt5XRlIHNvbSDlCisgICAgICBicnVrZSBiZXZlZ2Vsc2VuIHV0ZW4gZW4gb3BlcmF0b3IuCisKK35+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+fgorCQkJTGVrc2pvbiAyLjY6IE9QRVJFUkUgUMUgTElOSkVSCisKKworCQkgKiogVHJ5a2sgIGRkICBmb3Ig5SBzbGV0dGUgZW4gaGVsIGxpbmplLiAqKgorCisgIFDlIGdydW5uIGF2IGF0IHNsZXR0aW5nIGF2IGxpbmplciBlciBteWUgYnJ1a3QsIGZhbnQgdXR2aWtsZXJuZSBhdiBWaSB1dCBhdAorICBkZXQgdmlsIHbmcmUgbGV0dGVyZSDlIHJldHQgb2cgc2xldHQgdHJ5a2tlIHRvIGQtZXIgZm9yIOUgc2xldHRlIGVuIGxpbmplLgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gYW5kcmUgbGluamVuIGkgdmVyc2V0IG5lZGVuZm9yLgorICAyLiBUcnlrayAgZGQJIOUgc2xldHRlIGxpbmplbi4KKyAgMy4gRmx5dHQgZGVyZXR0ZXIgdGlsIGRlbiBmamVyZGUgbGluamVuLgorICA0LiBUcnlrayAgMmRkICBmb3Ig5SBzbGV0dGUgdG8gbGluamVyLgorCistLS0+ICAxKSBSb3NlciBlciBy+GRlLAorLS0tPiAgMikgR2r4cm1lIGVyIGf4eSwKKy0tLT4gIDMpIEZpb2xlciBlciBibOUsCistLS0+ICA0KSBKZWcgaGFyIGVuIGJpbCwKKy0tLT4gIDUpIEtsb2trZXIgdmlzZXIgdGlkZW4sCistLS0+ICA2KSBEcnVlciBlciBz+HRlCistLS0+ICA3KSBPZyBkdSBlciBsaWtlc+UuCisKKworfn5+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+CisJCQlMZWtzam9uIDIuNzogQU5HUkUtS09NTUFORE9FTgorCisKKyAgKiogVHJ5a2sgIHUgIGZvciDlIGFuZ3JlIHNpc3RlIGtvbW1hbmRvLCAgVSAgZm9yIOUgZmlrc2UgZW4gaGVsIGxpbmplLiAqKgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4gb2cgcGxhc3NlciBkZW4gcOUgZGVuCisgICAgIGb4cnN0ZSBmZWlsZW4uCisgIDIuIFRyeWtrICB4ICBmb3Ig5SBzbGV0dGUgZGV0IGb4cnN0ZSB1+G5za2VkZSB0ZWduZXQuCisgIDMuIFRyeWtrIHPlICB1ICBmb3Ig5SBhbmdyZSBkZW4gc2lzdGUgdXRm+HJ0ZSBrb21tYW5kb2VuLgorICA0LiBEZXJldHRlciBvcmRuZXIgZHUgYWxsZSBmZWlsZW5lIHDlIGxpbmplbmUgdmVkIOUgYnJ1a2Uga29tbWFuZG9lbgl4ICAuCisgIDUuIFRyeWtrIG7lIGVuIHN0b3IgIFUgIGZvciDlIHNldHRlIGxpbmplbiB0aWxiYWtlIHRpbCBkZXQgZGVuIHZhcgorICAgICBvcmlnaW5hbHQuCisgIDYuIFRyeWtrICB1ICBub2VuIGdhbmdlciBmb3Ig5SBhbmdyZQlVICBvZyBmb3JlZ+VlbmRlIGtvbW1hbmRvZXIuCisgIDcuIERlcmV0dGVyIHRyeWtrZXIgZHUgIENUUkwtUiAgKGhvbGQgQ1RSTCBuZWRlIG1lbnMgZHUgdHJ5a2tlciBSKSBub2VuCisgICAgIGdhbmdlciBmb3Ig5SBnamVub3BwcmV0dGUga29tbWFuZG9lbmUgKG9tZ2r4cmUgYW5ncmVrb21tYW5kb2VuZSkuCisKKy0tLT4gUlJlcGFyZXIgZmVpaWxlbmUgcOXlIGRlbm5lIGxpbm5uamVuIG9vZyBlcnNzc3RhdHQgZGVtIG1lZWQgYW5ncmUuCisKKyAgOC4gRGV0dGUgZXIgbWVnZXQgbnl0dGlnZSBrb21tYW5kb2VyLiBO5SBrYW4gZHUgZ+UgdGlsIG9wcHN1bW1lcmluZ2VuIGF2CisgICAgIGxla3Nqb24gMi4KKworCit+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+fn4KKwkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gMgorCisKKyAgMS4gRm9yIOUgc2xldHRlIGZyYSBtYXJr+HJlbiBmcmFtIHRpbCBkZXQgbmVzdGUgb3JkZXQsIHRyeWtrOiAgZHcKKyAgMi4gRm9yIOUgc2xldHRlIGZyYSBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBlbiBsaW5qZSwgdHJ5a2s6CWQkCisgIDMuIEZvciDlIHNsZXR0ZSBlbiBoZWwgbGluamUsIHRyeWtrOglkZAorCisgIDQuIEZvciDlIHJlcGV0ZXJlIGVuIGJldmVnZWxzZSwgc2V0dCBldCBudW1tZXIgZm9yYW46ICAydworICA1LiBGb3JtYXRldCBmb3IgZW4gZm9yYW5kcmluZ3Nrb21tYW5kbyBlcjoKKwkgICAgICAgb3BlcmF0b3IgIFtudW1tZXJdICBiZXZlZ2Vsc2UKKyAgICAgZGVyOgorICAgICAgIG9wZXJhdG9yICAtIGh2YSBzb20gc2thbCBnavhyZXMsIGYuZWtzLglkICBmb3Ig5SBzbGV0dGUKKyAgICAgICBbbnVtbWVyXSAgLSBldCB2YWxnZnJpdHQgYW50YWxsIGZvciDlIHJlcGV0ZXJlIGJldmVnZWxzZW4KKyAgICAgICBiZXZlZ2Vsc2UgLSBodmEga29tbWFuZG9lbiBza2FsIG9wZXJlcmUgcOUsIGVrc2VtcGVsdmlzCXcgIChvcmQpLAorCQkgICAkICAodGlsIHNsdXR0ZW4gYXYgbGluamVuKSBvZyBz5SB2aWRlcmUuCisKKyAgNi4gRm9yIOUgZ+UgdGlsIHN0YXJ0ZW4gYXYgZW4gbGluamUsIGJydWsgZW4gbnVsbDogIDAKKworICA3LiBGb3Ig5SBhbmdyZSB0aWRsaWdlcmUgZW5kcmluZ2VyLCBza3JpdjoJCXUgIChsaXRlbiB1KQorICAgICBGb3Ig5SBhbmdyZSBhbGxlIGZvcmFuZHJpbmdlciBw5SBlbiBsaW5qZSwgc2tyaXY6CVUgIChzdG9yIFUpCisgICAgIEZvciDlIG9tZ2r4cmUgYW5ncmluZ2VuLCB0cnlrazoJCQlDVFJMLVIKKworfn5+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+CisJCSAgICAgIExla3Nqb24gMy4xOiCrTElNIElOTrstS09NTUFORE9FTgorCisKKyAgICAqKiBUcnlrayAgcCAgZm9yIOUgbGltZSBpbm4gdGlkbGlnZXJlIHNsZXR0ZXQgdGVrc3QgZXR0ZXIgbWFya/hyZW4gKioKKworICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGb4cnN0ZSBsaW5qZW4gbWVkIC0tLT4gbmVkZW5mb3IuCisKKyAgMi4gVHJ5a2sgIGRkCWZvciDlIHNsZXR0ZSBsaW5qZW4gb2cgbGFncmUgZGVuIGkgZXQgVmltLXJlZ2lzdGVyLgorCisgIDMuIEZseXR0IG1hcmv4cmVuIHRpbCBjKS1saW5qZW4sIE9WRVIgcG9zaXNqb25lbiBsaW5qZW4gc2thbCBzZXR0ZXMgaW5uLgorCisgIDQuIFRyeWtrICBwICBmb3Ig5SBsZWdnZSBsaW5qZW4gdW5kZXIgbWFya/hyZW4uCisKKyAgNS4gUmVwZXRlciBwdW5rdCAyIHRpbCA0IGhlbHQgdGlsIGxpbmplbmUgZXIgaSByaWt0aWcgcmVra2Vm+GxnZS4KKworLS0tPiBkKSBLYW4gZHUgb2dz5SBs5nJlPworLS0tPiBiKSBGaW9sZXIgZXIgYmzlLAorLS0tPiBjKSBJbnRlbGxpZ2VucyBt5SBs5nJlcywKKy0tLT4gYSkgUm9zZXIgZXIgcvhkZSwKKworCisKK35+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+fgorCQkgICAgICBMZWtzam9uIDMuMjogq0VSU1RBVFS7LUtPTU1BTkRPRU4KKworCisJICoqIFRyeWtrICByeCAgZm9yIOUgZXJzdGF0dGUgdGVnbmV0IHVuZGVyIG1hcmv4cmVuIG1lZCB4LiAqKgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KKworICAyLiBGbHl0dCBtYXJr+HJlbiBz5SBkZW4gc3TlciBvcHDlIGRlbiBm+HJzdGUgZmVpbGVuLgorCisgIDMuIFRyeWtrICByICBvZyBkZXJldHRlciB0ZWduZXQgc29tIHNrYWwgduZyZSBkZXIuCisKKyAgNC4gUmVwZXRlciBwdW5rdCAyIG9nIDMgdGlsIGRlbiBm+HJzdGUgbGluamVuIGVyIGxpayBkZW4gYW5kcmUuCisKKy0tLT4gRGEgZGZubmUgbHluanhuIGJsZSB6a3JldmV0LCB2YXIgZGV0IG74ZW4gc29tIHRqeWtrZXQgZmVpdGUgdGFzdGVyIQorLS0tPiBEYSBkZW5uZSBsaW5qZW4gYmxlIHNrcmV2ZXQsIHZhciBkZXQgbm9lbiBzb20gdHJ5a2tldCBmZWlsZSB0YXN0ZXIhCisKKyAgNS4gR+UgdmlkZXJlIHRpbCBsZWtzam9uIDMuMi4KKworTUVSSzogSHVzayBhdCBkdSBi+HIgbOZyZSB2ZWQg5SBCUlVLRSwgaWtrZSBwdWdnZS4KKworCisKK35+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+fgorCQkgICAgICBMZWtzam9uIDMuMzogq0ZPUkFORFJFuy1PUEVSQVRPUkVOCisKKworCSAgICoqIEZvciDlIGZvcmFuZHJlIHRpbCBzbHV0dGVuIGF2IGV0IG9yZCwgdHJ5a2sgIGNlIC4gKioKKworICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGb4cnN0ZSBsaW5qZW4gbmVkZW5mb3Igc29tIGVyIG1lcmtldCAtLS0+LgorCisgIDIuIFBsYXNzZXIgbWFya/hyZW4gcOUgIHUgIGkgq2x1Ymp3crsuCisKKyAgMy4gVHJ5a2sgIGNlCW9nIGRldCBrb3JyZWt0ZSBvcmRldCAoaSBkZXR0ZSB0aWxmZWxsZXQsIHNrcml2IKtpbmplbrspLgorCisgIDQuIFRyeWtrIDxFU0M+IG9nIGflIHRpbCBkZXQgbmVzdGUgdGVnbmV0IHNvbSBza2FsIGZvcmFuZHJlcy4KKworICA1LiBSZXBldGVyIHB1bmt0IDMgb2cgNCBoZWx0IHRpbCBkZW4gZvhyc3RlIHNldG5pbmdlbiBlciBsaWsgZGVuIGFuZHJlLgorCistLS0+IERlbm5lIGx1Ymp3ciBoYXIgbm9lbiB3Z2ggc29tIG3lIGZvcmt35XAgbWVkIKtmb3Lma3pyeWFzuy1rb21tYW5kb2VuLgorLS0tPiBEZW5uZSBsaW5qZW4gaGFyIG5vZW4gb3JkIHNvbSBt5SBmb3JhbmRyZXMgbWVkIKtmb3JhbmRyZbsta29tbWFuZG9lbi4KKworVuZyIG9wcG1lcmtzb20gcOUgYXQgIGNlICBzbGV0dGVyIG9yZGV0IG9nIGflciBpbm4gaSBpbm5zZXR0aW5nc21vZHVzLgorCisKKworfn5+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+CisJCUxla3Nqb24gMy40OiBGTEVSRSBGT1JBTkRSSU5HRVIgVkVEIEJSVUsgQVYgYworCisKKyAqKiBGb3JhbmRyaW5nc2tvbW1hbmRvZW4gYmxpciBicnVrdCBtZWQgZGUgc2FtbWUgYmV2ZWdlbHNlciBzb20gq3NsZXR0uy4gKioKKworICAxLiBGb3JhbmRyaW5nc29wZXJhdG9yZW4gZnVuZ2VyZXIgcOUgc2FtbWUgbeV0ZSBzb20gq3NsZXR0uy4gRm9ybWF0ZXQgZXI6CisKKwkgYyAgICBbbnVtbWVyXQkgYmV2ZWdlbHNlCisKKyAgMi4gQmV2ZWdlbHNlbmUgZXIgZGUgc2FtbWUsIHNvbSBmb3IgZWtzZW1wZWwJdyAgKG9yZCkgb2cgICQJKHNsdXR0ZW4gYXYgZW4KKyAgICAgbGluamUpLgorCisgIDMuIEflIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBzb20gZXIgbWVya2V0IC0tLT4uCisKKyAgNC4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgZmVpbGVuLgorCisgIDUuIFNrcml2ICBjJAlvZyBza3JpdiByZXN0ZW4gYXYgbGluamVuIGxpayBkZW4gYW5kcmUgb2cgdHJ5a2sgPEVTQz4uCisKKy0tLT4gU2x1dHRlbiBw5SBkZW5uZSBsaW5qZW4gdHJlbmdlciBsaXR0IGhqZWxwIGZvciDlIGdq+HJlIGRlbiBsaWsgZGVuIG5lc3RlLgorLS0tPiBTbHV0dGVuIHDlIGRlbm5lIGxpbmplbiB0cmVuZ2VyIOUgYmxpIHJldHRldCB2ZWQgYnJ1ayBhdiBjJC1rb21tYW5kb2VuLgorCitNRVJLOiBEdSBrYW4gYnJ1a2Ugc2xldHRldGFzdGVuIGZvciDlIHJldHRlIGZlaWwgbWVucyBkdSBza3JpdmVyLgorfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDMKKworCisgIDEuIEZvciDlIGxlZ2dlIHRpbGJha2UgdGVrc3Qgc29tIG5ldHRvcHAgZXIgYmxpdHQgc2xldHRldCwgdHJ5a2sgIHAgIC4gRGV0dGUKKyAgICAgbGltZXIgaW5uIGRlbiBzbGV0dGVkZSB0ZWtzdGVuIEVUVEVSIG1hcmv4cmVuIChodmlzIGVuIGxpbmplIGJsZSBzbGV0dGV0CisgICAgIHZpbCBkZW4gYmxpIGxpbXQgaW5uIHDlIGxpbmplbiB1bmRlciBtYXJr+HJlbikuCisKKyAgMi4gRm9yIOUgZXJzdGF0dGUgZXQgdGVnbiB1bmRlciBtYXJr+HJlbiwgdHJ5a2sgIHIgIG9nIGRlcmV0dGVyIHRlZ25ldCBzb20KKyAgICAgZHUgdmlsIGhhIGRlci4KKworICAzLiBGb3JhbmRyaW5nc29wZXJhdG9yZW4gbGFyIGRlZyBmb3JhbmRyZSBmcmEgbWFya/hyZW4gdGlsIGRpdCBiZXZlZ2Vsc2VuCisgICAgIHRhciBkZWcuIERldCB2aWwgc2ksIHNrcml2ICBjZSAgZm9yIOUgZm9yYW5kcmUgZnJhIG1hcmv4cmVuIHRpbCBzbHV0dGVuCisgICAgIGF2IG9yZGV0LAljJCAgZm9yIOUgZm9yYW5kcmUgdGlsIHNsdXR0ZW4gYXYgbGluamVuLgorCisgIDQuIEZvcm1hdGV0IGZvciCrZm9yYW5kcmW7IGVyOgorCisJIGMgICBbbnVtbWVyXQliZXZlZ2Vsc2UKKworTuUga2FuIGR1IGflIHRpbCBuZXN0ZSBsZWtzam9uLgorCisKKworfn5+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+CisJICAgICBMZWtzam9uIDQuMTogUE9TSVNKT05FUklORyBBViBNQVJL2FJFTiBPRyBGSUxTVEFUVVMKKworCSoqIFRyeWtrIENUUkwtRyBmb3Ig5SB2aXNlIHBvc2lzam9uZW4gaSBmaWxlbiBvZyBmaWxzdGF0dXNlbi4KKwkgICBUcnlrayAgRyAgZm9yIOUgZ+UgdGlsIGVuIHNwZXNpZmlrayBsaW5qZSBpIGZpbGVuLiAqKgorCisgIE1lcms6IExlcyBoZWxlIGxla3Nqb25lbiBm+HIgZHUgdXRm+HJlciBub2VuIGF2IHB1bmt0ZW5lIQorCisgIDEuIEhvbGQgbmVkZSBDdHJsLXRhc3RlbiBvZyB0cnlrayAgZwkuIFZpIGthbGxlciBkZXR0ZSBDVFJMLUcuIEVuIG1lbGRpbmcKKyAgICAgdmlsIGtvbW1lIHRpbCBzeW5lIHDlIGJ1bm5lbiBhdiBza2plcm1lbiBtZWQgZmlsbmF2bmV0IG9nIHBvc2lzam9uZW4gaQorICAgICBmaWxlbi4gSHVzayBsaW5qZW51bW1lcmV0IGZvciBicnVrIGkgc3RlZyAzLgorCitNZXJrOiBEdSBrYW4gc2UgbWFya/hycG9zaXNqb25lbiBpIG5lZGVyc3RlIGj4eXJlIGhq+HJuZSBhdiBza2plcm1lbi4gRGV0dGUKKyAgICAgIHNramVyIG7lciCrcnVsZXK7LXZhbGdldCBlciBzYXR0IChmb3JrbGFydCBpIGxla3Nqb24gNikuCisKKyAgMi4gVHJ5a2sgIEcgIGZvciDlIGflIHRpbCBidW5uZW4gYXYgZmlsZW4uCisgICAgIFNrcml2ICBnZwlmb3Ig5SBn5SB0aWwgYmVneW5uZWxzZW4gYXYgZmlsZW4uCisKKyAgMy4gU2tyaXYgaW5uIGxpbmplbnVtbWVyZXQgZHUgdmFyIHDlIG9nIGRlcmV0dGVyICBHIC4gRGV0dGUgdmlsIGb4cmUgZGVnCisgICAgIHRpbGJha2UgdGlsIGxpbmplbiBkdSB2YXIgcOUgZGEgZHUgZvhyc3QgdHJ5a2tldCBDVFJMLUcuCisKKyAgNC4gVXRm+HIgc3RlZyAxIHRpbCAzIGh2aXMgZHUgZvhsZXIgZGVnIHNpa2tlciBw5SBwcm9zZWR5cmVuLgorCit+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+fn4KKwkJCSBMZWtzam9uIDQuMjogU9hLRUtPTU1BTkRPRU4KKworICAgICAgKiogU2tyaXYJLyAgZXR0ZXJmdWxndCBhdiBlbiBz+Gtlc3RyZW5nIHNvbSBkdSB2aWwgbGV0ZSBldHRlci4gKioKKworICAxLiBUcnlrayAgLyAgbuVyIGR1IGVyIGkgbm9ybWFsbW9kdXNlbi4gTGVnZyBtZXJrZSB0aWwgYXQgc2ty5XN0cmVrZW4gb2cKKyAgICAgbWFya/hyZW4ga29tbWVyIHRpbCBzeW5lIHDlIGJ1bm5lbiBhdiBza2plcm1lbiBpIGxpa2hldCBtZWQKKyAgICAgqzq7LWtvbW1hbmRvZW5lLgorCisgIDIuIFNrcml2IKtmZWVlaWlsuyBvZyB0cnlrayA8RU5URVI+LiBEZXR0ZSBlciB0ZWtzdGVuIGR1IHZpbCBsZXRlIGV0dGVyLgorCisgIDMuIEZvciDlIGZpbm5lIG5lc3RlIGZvcmVrb21zdCBhdiBz+Gtlc3RyZW5nZW4sIHRyeWtrICBuIC4KKyAgICAgRm9yIOUgbGV0ZSBldHRlciBzYW1tZSBz+GtldGVrc3RlbiBpIG1vdHNhdHQgcmV0bmluZywgdHJ5a2sgIE4gLgorCisgIDQuIEZvciDlIGxldGUgZXR0ZXIgZW4gdGVrc3QgYmFrb3ZlciBpIGZpbGVuLCBicnVrICA/ICBpc3RlZGVuZm9yICAvCS4KKworICA1LiBGb3Ig5SBn5SB0aWxiYWtlIHRpbCBkZXIgZHUga29tIGZyYSwgdHJ5a2sgIENUUkwtTyAgKEhvbGQgQ3RybCBuZWRlIG1lbnMKKyAgICAgZHUgdHJ5a2tlciBib2tzdGF2ZW4gIG8gKS4gUmVwZXRlciBmb3Ig5SBn5SBlbmRhIGxlbmdyZSB0aWxiYWtlLiBDVFJMLUkKKyAgICAgZ+VyIGZyYW1vdmVyLgorCistLS0+IKtmZWVlaWlsuyBlciBpa2tlIG3ldGVuIOUgc2tyaXZlIKtmZWlsuyBw5SwgZmVlZWlpbCBlciBoZWx0IGZlaWwuCitNZXJrOiBO5XIgc/hraW5nZW4gbuVyIHNsdXR0ZW4gYXYgZmlsZW4sIHZpbCBkZW4gZm9ydHNldHRlIGZyYSBzdGFydGVuIHVubnRhdHQKKyAgICAgIGh2aXMgq3dyYXBzY2Fuuy12YWxnZXQgZXIgcmVzYXR0Lgorfn5+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+CisJCSAgIExla3Nqb24gNC4zOiBGSU5OIFNBTVNWQVJFTkRFIFBBUkVOVEVTRVIKKworCisJICAqKiBUcnlrayAgJSAgZm9yIOUgZmlubmUgZW4gc2Ftc3ZhcmVuZGUgKSwgXSBlbGxlciB9IC4gKioKKworICAxLiBQbGFzc2VyIG1hcmv4cmVuIHDlIGVuICgsIFsgZWxsZXIgeyBw5SBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4uCisKKyAgMi4gVHJ5a2sgICUgIC4KKworICAzLiBNYXJr+HJlbiB2aWwgZ+UgdGlsIGRlbiBzYW1zdmFyZW5kZSBwYXJlbnRlc2VuIGVsbGVyIGhha2VwYXJlbnRlc2VuLgorCisgIDQuIFRyeWtrICAlICBmb3Ig5SBmbHl0dGUgbWFya/hyZW4gdGlsIGRlbiBhbmRyZSBzYW1zdmFyZW5kZSBwYXJlbnRlc2VuLgorCisgIDUuIEZseXR0IG1hcmv4cmVuIHRpbCBlbiBhbm5lbiAoLCApLCBbLCBdLCB7IGVsbGVyIH0gb2cgc2UgaHZhICAlICBnavhyLgorCistLS0+IERldHRlICggZXIgZW4gdGVzdGxpbmplIG1lZCAoLCBbIF0gb2cgeyB9IGkgZGVuICkpLgorCitNZXJrOiBEZXR0ZSBlciB2ZWxkaWcgbnl0dGlnIHRpbCBmZWlsc/hraW5nIGkgcHJvZ3JhbW1lciBzb20gaGFyIHViYWxhbnNlcnQKKyAgICAgIGFudGFsbCBwYXJlbnRlc2VyIQorCisKKworfn5+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+CisJCSAgICAgICBMZWtzam9uIDQuNDogRVJTVEFUVC1LT01NQU5ET0VOCisKKworCSoqIFNrcml2ICA6cy9nYW1tZWwvbnkvZyAgZm9yIOUgZXJzdGF0dGUgq2dhbW1lbLsgbWVkIKtuebsuICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBzb20gZXIgbWVya2V0IG1lZCAtLS0+LgorCisgIDIuIFNrcml2ICA6cy9kZWVuL2Rlbi8gPEVOVEVSPiAgLiBMZWdnIG1lcmtlIHRpbCBhdCBkZW5uZSBrb21tYW5kb2VuIGJhcmUKKyAgICAgZm9yYW5kcmVyIGRlbiBm+HJzdGUgZm9yZWtvbXN0ZW4gYXYgq2RlZW67IHDlIGxpbmplbi4KKworICAzLiBTa3JpdiAgOnMvZGVlbi9kZW4vZyAuIE7lciBnLWZsYWdnZXQgbGVnZ2VzIHRpbCwgYmV0eXIgZGV0dGUgZ2xvYmFsCisgICAgIGVyc3RhdG5pbmcgcOUgbGluamVuIG9nIGVyc3RhdHRlciBhbGxlIGZvcmVrb21zdGVyIGF2IKtkZWVuuyBw5SBsaW5qZW4uCisKKy0tLT4gZGVlbiBzb20ga2FuIGthc3RlIGRlZW4gdHluZ3N0ZSBzdGVpbmVuIGxlbmdzdCBlciBkZWVuIGJlc3RlCisKKyAgNC4gRm9yIOUgZXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBhdiBlbiB0ZWtzdHN0cmVuZyBtZWxsb20gdG8gbGluamVyLAorICAgICBza3JpdiAgOiMsI3MvZ2FtbWVsL255L2cgIGRlciAjLCMgZXIgbGluamVudW1yZW5lIHDlIGRlIHRvIGxpbmplbmUgZm9yCisJCQkgICAgICAgbGluamVvbXLlZGV0IGVyc3RhdG5pbmdlbiBza2FsIGdq+HJlcy4KKyAgICAgU2tyaXYgIDolcy9nYW1tZWwvbnkvZyAgICBmb3Ig5SBlcnN0YXR0ZSB0ZWtzdCBpIGhlbGUgZmlsZW4uCisgICAgIFNrcml2ICA6JXMvZ2FtbWVsL255L2djICAgZm9yIOUgZmlubmUgYWxsZSBmb3Jla29tc3RlciBpIGhlbGUgZmlsZW4sIG9nCisJCQkgICAgICAgZGVyZXR0ZXIgc3D4cnJlIG9tIHRla3N0ZW4gc2thbCBlcnN0YXR0ZXMgZWxsZXIKKwkJCSAgICAgICBpa2tlLgorfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDQKKworCisgIDEuIEN0cmwtRyB2aXNlciBu5XbmcmVuZGUgcG9zaXNqb24gaSBmaWxlbiBvZyBmaWxzdGF0dXNlbi4KKwkgICAgIEcJZ+VyIHRpbCBzbHV0dGVuIGF2IGZpbGVuLgorICAgICBudW1tZXIgIEcJZ+VyIHRpbCBkZXQgbGluamVudW1tZXJldC4KKwkgICAgZ2cJZ+VyIHRpbCBkZW4gZvhyc3RlIGxpbmplbi4KKworICAyLiBTa3JpdiAgLyAgZXR0ZXJmdWxndCBhdiBlbiBz+GtldGVrc3QgZm9yIOUgbGV0ZSBGUkFNT1ZFUiBldHRlciB0ZWtzdGVuLgorICAgICBTa3JpdiAgPyAgZXR0ZXJmdWxndCBhdiBlbiBz+GtldGVrc3QgZm9yIOUgbGV0ZSBCQUtPVkVSIGV0dGVyIHRla3N0ZW4uCisgICAgIEV0dGVyIGV0IHP4ayBrYW4gZHUgdHJ5a2tlICBuICBmb3Ig5SBmaW5uZSBuZXN0ZSBmb3Jla29tc3QgaSBkZW4gc2FtbWUKKyAgICAgcmV0bmluZ2VuIGVsbGVyICBOICBmb3Ig5SBsZXRlIGkgbW90c2F0dCByZXRuaW5nLgorICAgICBDVFJMLU8gdGFyIGRlZyB0aWxiYWtlIHRpbCBnYW1sZSBwb3Npc2pvbmVyLCBDVFJMLUkgdGlsIG55ZXJlIHBvc2lzam9uZXIuCisKKyAgMy4gU2tyaXYgICUgIG7lciBtYXJr+HJlbiBzdOVyIHDlIGVuICgsICksIFssIF0sIHsgZWxsZXIgfSBmb3Ig5SBmaW5uZSBkZW4KKyAgICAgc29tIHNhbXN2YXJlci4KKworICA0LiBFcnN0YXR0ZSCrZ2FtbWVsuyBtZWQgZvhyc3RlIKtuebsgcOUgZW4gbGluamU6ICA6cy9nYW1tZWwvbnkKKyAgICAgRXJzdGF0dGUgYWxsZSCrZ2FtbWVsuyBtZWQgq255uyBw5SBlbiBsaW5qZTogICAgOnMvZ2FtbWVsL255L2cKKyAgICAgRXJzdGF0dGUgdGVrc3QgbWVsbG9tIHRvIGxpbmplbnVtcmU6CSAgICAgOiMsI3MvZ2FtbWVsL255L2cKKyAgICAgRXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBpIGVuIGZpbDoJICAgICA6JXMvZ2FtbWVsL255L2cKKyAgICAgRm9yIOUgZ29ka2plbm5lIGh2ZXIgZXJzdGF0bmluZywgbGVnZyB0aWwgq2O7OiAgOiVzL2dhbW1lbC9ueS9nYworfn5+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+CisJICAgICAgIExla3Nqb24gNS4xOiBIVk9SREFOIFVURthSRSBFTiBFS1NURVJOIEtPTU1BTkRPCisKKworICAgICoqIFNrcml2ICA6ISAgZXR0ZXJmdWxndCBhdiBlbiBla3N0ZXJuIGtvbW1hbmRvIGZvciDlIHV0ZvhyZSBkZW5uZS4gKioKKworICAxLiBTa3JpdiBkZW4gdmVsa2plbnRlIGtvbW1hbmRvZW4gIDoJIGZvciDlIHBsYXNzZXJlIG1hcmv4cmVuIHDlIGJ1bm5lbiBhdgorICAgICBza2plcm1lbi4gRGV0dGUgbGFyIGRlZyBza3JpdmUgZW4ga29tbWFuZG9saW5qZWtvbW1hbmRvLgorCisgIDIuIE7lIGthbiBkdSBza3JpdmUgdGVnbmV0ICAhICAuIERldHRlIGxhciBkZWcgdXRm+HJlIGVuIGh2aWxrZW4gc29tIGhlbHN0CisgICAgIGVrc3Rlcm4ga29tbWFuZG8uCisKKyAgMy4gU29tIGV0IGVrc2VtcGVsLCBza3JpdiAgbHMgIGV0dGVyIHV0cm9wc3RlZ25ldCBvZyB0cnlrayA8RU5URVI+LiBEdSB2aWwKKyAgICAgbuUgZuUgZW4gbGlzdGUgb3ZlciBmaWxlbmUgaSBrYXRhbG9nZW4sIGFra3VyYXQgc29tIG9tIGR1IGhhZGRlIGtq+HJ0CisgICAgIGtvbW1hbmRvZW4gZGlyZWt0ZSBmcmEga29tbWFuZG9saW5qZW4gaSBza2FsbGV0LiBFbGxlciBicnVrICA6IWRpciAgaHZpcworICAgICCrbHO7IGlra2Ugdmlya2VyLgorCitNRVJLOiBEZXQgZXIgbXVsaWcg5SBravhyZSBhbGxlIGVrc3Rlcm5lIGtvbW1hbmRvZXIgcOUgZGVubmUgbeV0ZW4sIG9nc+UgbWVkCisgICAgICBwYXJhbWV0ZXJlLgorCitNRVJLOiBBbGxlIKs6uy1rb21tYW5kb2VyIG3lIGF2c2x1dHRlcyBtZWQgPEVOVEVSPi4gRnJhIGRldHRlIHB1bmt0ZXQgZXIgZGV0CisgICAgICBpa2tlIGFsbHRpZCB2aSBuZXZuZXIgZGV0LgorCit+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+fn4KKwkJICAgICBMZWtzam9uIDUuMjogTUVSIE9NIExBR1JJTkcgQVYgRklMRVIKKworCisgICAgICAqKiBGb3Ig5SBsYWdyZSBlbmRyaW5nZW5lIGdqb3J0IGkgZW4gdGVrc3QsIHNrcml2ICA6dyBGSUxOQVZOLiAqKgorCisgIDEuIFNrcml2ICA6IWRpciAgZWxsZXIgIDohbHMJZm9yIOUgZuUgZW4gbGlzdGUgb3ZlciBmaWxlbmUgaSBrYXRhbG9nZW4uIER1CisgICAgIHZldCBhbGxlcmVkZSBhdCBkdSBt5SB0cnlra2UgPEVOVEVSPiBldHRlciBkZXR0ZS4KKworICAyLiBWZWxnIGV0IGZpbG5hdm4gcOUgZW4gZmlsIHNvbSBpa2tlIGZpbm5lcywgc29tIGZvciBla3NlbXBlbCAgVEVTVCAuCisKKyAgMy4gU2tyaXYgIDp3IFRFU1QgIChkZXIgVEVTVCBlciBmaWxuYXZuZXQgZHUgdmVsZ2VyKS4KKworICA0LiBEZXR0ZSBsYWdyZXIgaGVsZSBmaWxlbiAoZGVubmUgaW5uZvhyaW5nZW4pIHVuZGVyIG5hdm5ldCBURVNUIC4gRm9yIOUKKyAgICAgc2pla2tlIGRldHRlLCBza3JpdiAgOiFkaXIgIGVsbGVyCTohbHMgIGlnamVuIGZvciDlIHNlIGlubmhvbGRldCBhdgorICAgICBrYXRhbG9nZW4uCisKK01lcms6IEh2aXMgZHUgbuUgaGFkZGUgYXZzbHV0dGV0IFZpbSBvZyBzdGFydGV0IHDlIG55dHQgaWdqZW4gbWVkIKt2aW0gVEVTVLssCisgICAgICB2aWxsZSBmaWxlbiB25nJ0IGVuIGVrc2FrdCBrb3BpIGF2IGlubmb4cmluZ2VuIGRhIGR1IGxhZ3JldCBkZW4uCisKKyAgNS4gRmplcm4gZmlsZW4gdmVkIOUgc2tyaXZlICA6IXJtIFRFU1QgIGh2aXMgZHUgZXIgcOUgZXQgVW5peC1saWduZW5kZQorICAgICBvcGVyYXRpdnN5c3RlbSwgZWxsZXIgIDohZGVsIFRFU1QJaHZpcyBkdSBicnVrZXIgTVMtRE9TLgorCit+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+fn4KKwkJICAgTGVrc2pvbiA1LjM6IFZFTEdFIFRFS1NUIFNPTSBTS0FMIExBR1JFUworCisKKyAgICAgKiogRm9yIOUgbGFncmUgZW4gZGVsIGF2IGVuIGZpbCwgc2tyaXYgIHYJYmV2ZWdlbHNlICA6dyBGSUxOQVZOICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbm5lIGxpbmplbi4KKworICAyLiBUcnlrayAgdiAgb2cgZmx5dHQgbWFya/hyZW4gdGlsIGRldCBmZW10ZSBlbGVtZW50ZXQgbmVkZW5mb3IuIExlZ2cgbWVya2UKKyAgICAgdGlsIGF0IHRla3N0ZW4gYmxpciBtYXJrZXJ0LgorCisgIDMuIFRyeWtrICA6ICAoa29sb24pLiBQ5SBidW5uZW4gYXYgc2tqZXJtZW4gdmlsICA6JzwsJz4gIGtvbW1lIHRpbCBzeW5lLgorCisgIDQuIFRyeWtrICB3IFRFU1QgICwgZGVyIFRFU1QgZXIgZXQgZmlsbmF2biBzb20gaWtrZSBmaW5uZXMgZW5kYS4gS29udHJvbGxlcgorICAgICBhdCBkdSBzZXIJOic8LCc+dyBURVNUICBm+HIgZHUgdHJ5a2tlciBFbnRlci4KKworICA1LiBWaW0gdmlsIHNrcml2ZSBkZSB2YWxndGUgbGluamVuZSB0aWwgZmlsZW4gVEVTVC4gQnJ1ayAgOiFkaXIgIGVsbGVyICAhbHMKKyAgICAgZm9yIOUgc2UgZGVuLiBJa2tlIHNsZXR0IGRlbiBlbmRhISBWaSB2aWwgYnJ1a2UgZGVuIGkgbmVzdGUgbGVrc2pvbi4KKworTUVSSzogVmVkIOUgdHJ5a2tlICB2ICBzdGFydGVzIHZpc3VlbHQgdmFsZy4gRHUga2FuIGZseXR0ZSBtYXJr+HJlbiBydW5kdCBmb3IKKyAgICAgIOUgZ2r4cmUgZGV0IHZhbGd0ZSBvbXLlZGV0IHN0+HJyZSBlbGxlciBtaW5kcmUuIERlcmV0dGVyIGthbiBkdSBicnVrZSBlbgorICAgICAgb3BlcmF0b3IgZm9yIOUgZ2r4cmUgbm9lIG1lZCB0ZWtzdGVuLiBGb3IgZWtzZW1wZWwgc2xldHRlciAgZCAgdGVrc3Rlbi4KKworfn5+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+CisJCUxla3Nqb24gNS40OiBIRU5USU5HIE9HIFNBTU1FTlNMxUlORyBBViBGSUxFUgorCisKKyAqKiBGb3Ig5SBsZXNlIGlubiBlbiBhbm5lbiBmaWwgaW5uIGkgbuV25nJlbmRlIGJ1ZmZlciwgc2tyaXYgIDpyIEZJTE5BVk4gICoqCisKKyAgMS4gUGxhc3NlciBtYXJr+HJlbiBsaWtlIG92ZXIgZGVubmUgbGluamVuLgorCitNRVJLOiBFdHRlciDlIGhhIHV0ZvhydCBzdGVnIDIgdmlsIGR1IHNlIHRla3N0ZW4gZnJhIGxla3Nqb24gNS4zLiBH5SBkZXJldHRlcgorICAgICAgTkVEIGZvciDlIHNlIGRlbm5lIGxla3Nqb25lbiBpZ2plbi4KKworICAyLiBIZW50IFRFU1QtZmlsZW4gdmVkIOUgYnJ1a2Uga29tbWFuZG9lbiAgOnIgVEVTVCAgZGVyIFRFU1QgZXIgbmF2bmV0IHDlCisgICAgIGZpbGVuIGR1IGJydWt0ZS4gRmlsZW4gZHUgaGVudGVyIGJsaXIgcGxhc3NlcnQgbmVkZW5mb3IgbWFya/hybGluamVuLgorCisgIDMuIEZvciDlIHNqZWtrZSBhdCBmaWxlbiBibGUgaGVudGV0LCBn5SB0aWxiYWtlIG9nIHNlIGF0IGRldCBlciB0byBrb3BpZXIgYXYKKyAgICAgbGVrc2pvbiA1LjMsIG9yaWdpbmFsZW4gb2cgZGVubmUgdmVyc2pvbmVuLgorCitNRVJLOiBEdSBrYW4gb2dz5SBsZXNlIHV0ZGF0YWVuZSBhdiBlbiBla3N0ZXJuIGtvbW1hbmRvLiBGb3IgZWtzZW1wZWwsCTpyICFscworICAgICAgbGVzZXIgdXRkYXRhZW5lIGF2IGxzLWtvbW1hbmRvZW4gb2cgbGVnZ2VyIGRlbSBuZWRlbmZvciBtYXJr+HJlbi4KKworCisKKworfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDUKKworCisgIDEuICA6IWtvbW1hbmRvICB1dGb4cmVyIGVuIGVrc3Rlcm4ga29tbWFuZGlvLgorCisgICAgICBOb2VuIG55dHRpZ2UgZWtzZW1wbGVyIGVyOgorCSAoTVMtRE9TKQkgIChVbml4KQorCSAgOiFkaXIJCSAgIDohbHMJCSAgLSBMaXN0IGZpbGVuZSBpIGthdGFsb2dlbi4KKwkgIDohZGVsIEZJTE5BVk4gICAgOiFybSBGSUxOQVZOICAgLSBTbGV0dCBmaWxlbiBGSUxOQVZOLgorCisgIDIuICA6dyBGSUxOQVZOICBza3JpdmVyIGRlbiBu5XbmcmVuZGUgVmltLWZpbGVuIGRpc2tlbiBtZWQgbmF2bmV0IEZJTE5BVk4gLgorCisgIDMuICB2ICBiZXZlZ2Vsc2UgIDp3IEZJTE5BVk4JbGFncmVyIGRlIHZpc3VlbHQgdmFsZ3RlIGxpbmplbmUgdGlsIGZpbGVuCisgICAgIEZJTE5BVk4uCisKKyAgNC4gIDpyIEZJTE5BVk4gIGhlbnRlciBmaWxlbiBGSUxOQVZOIG9nIGxlZ2dlciBkZW4gaW5uIG5lZGVuZm9yIG1hcmv4cmVuLgorCisgIDUuICA6ciAhZGlyICBsZXNlciB1dGRhdGFlbmUgZnJhIKtkaXK7LWtvbW1hbmRvZW4gb2cgbGVnZ2VyIGRlbSBuZWRlbmZvcgorICAgICBtYXJr+HJwb3Npc2pvbmVuLgorCisKKworfn5+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+CisJCSAgICAgTGVrc2pvbiA2LjE6IKvFUE5FIExJTkpFuy1LT01NQU5ET0VOCisKKworICAgICoqIFNrcml2ICBvICBmb3Ig5SCr5XBuZSBvcHC7IGZvciBlbiBueSBsaW5qZSBldHRlciBtYXJr+HJlbiBvZyBn5SB0aWwKKyAgICAgICBpbm5zZXR0aW5nc21vZHVzICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KKworICAyLiBTa3JpdiAgbyAgKGxpdGVuIG8pIGZvciDlIOVwbmUgb3BwIGVuIGxpbmplIE5FREVORk9SIG1hcmv4cmVuIG9nIGflIGlubiBpCisgICAgIGlubnNldHRpbmdzbW9kdXMuCisKKyAgMy4gU2tyaXYgbGl0dCB0ZWtzdCBvZyB0cnlrayA8RVNDPiBmb3Ig5SBn5SB1dCBhdiBpbm5zZXR0aW5nc21vZHVzZW4uCisKKy0tLT4gRXR0ZXIgYXQgIG8gIGVyIHNrcmV2ZXQgYmxpciBtYXJr+HJlbiBwbGFzc2VydCBw5SBkZW4gdG9tbWUgbGluamVuLgorCisgIDQuIEZvciDlIOVwbmUgZW4gbnkgbGluamUgT1ZFUiBtYXJr+HJlbiwgdHJ5a2sgcmV0dCBvZyBzbGV0dCBlbiBzdG9yCU8KKyAgICAgaXN0ZWRlbmZvciBlbiBsaXRlbiAgbyAuIFBy+HYgZGV0dGUgcOUgbGluamVuIG5lZGVuZm9yLgorCistLS0+IExhZyBueSBsaW5qZSBvdmVyIGRlbm5lIHZlZCDlIHRyeWtrZSBPIG1lbnMgbWFya/hyZW4gZXIgcOUgZGVubmUgbGluamVuLgorCisKKworfn5+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+CisJCSAgICAgIExla3Nqb24gNi4yOiCrTEVHRyBUSUy7LUtPTU1BTkRPRU4KKworCisJICAgICoqIFNrcml2ICBhICBmb3Ig5SBsZWdnZSB0aWwgdGVrc3QgRVRURVIgbWFya/hyZW4uICoqCisKKyAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIHN0YXJ0ZW4gYXYgbGluamVuIG1lcmtldCAtLS0+IG5lZGVuZm9yLgorCisgIDIuIFRyeWtrICBlICB0aWwgbWFya/hyZW4gZXIgcOUgc2x1dHRlbiBhdiCrbGm7LgorCisgIDMuIFRyeWtrICBhICAobGl0ZW4gYSkgZm9yIOUgbGVnZ2UgdGlsIHRla3N0IEVUVEVSIG1hcmv4cmVuLgorCisgIDQuIEZ1bGxm+HIgb3JkZXQgc+VubiBzb20gcOUgbGluamVuIG5lZGVuZm9yLiBUcnlrayA8RVNDPiBmb3Ig5SBn5SB1dCBhdgorICAgICBpbm5zZXR0aW5nc21vZHVzZW4uCisKKyAgNS4gQnJ1ayAgZSAgZm9yIOUgZ+UgdGlsIGRldCBuZXN0ZSB1ZnVsbHN0ZW5kaWdlIG9yZGV0IG9nIHJlcGV0ZXIgc3RlZyAzIG9nCisgICAgIDQuCisKKy0tLT4gRGVubmUgbGkgbGFyIGRlZyD4dmUgcOUg5SBsZWcgdGlsIHRlayBw5SBlbiBsaW5qZS4KKy0tLT4gRGVubmUgbGluamVuIGxhciBkZWcg+HZlIHDlIOUgbGVnZ2UgdGlsIHRla3N0IHDlIGVuIGxpbmplLgorCitNZXJrOiBhLCBpIG9nIEEgZ+VyIGFsbGUgdGlsIGRlbiBzYW1tZSBpbm5zZXR0aW5nc21vZHVzZW4sIGRlbiBlbmVzdGUKKyAgICAgIGZvcnNramVsbGVuIGVyIGh2b3IgdGVnbmVuZSBibGlyIHNhdHQgaW5uLgorfn5+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+CisJCSAgIExla3Nqb24gNi4zOiBFTiBBTk5FTiBNxVRFIMUgRVJTVEFUVEUgUMUKKworCisJICAgKiogU2tyaXYgZW4gc3RvciAgUglmb3Ig5SBlcnN0YXR0ZSBtZXIgZW5uIGV0dCB0ZWduLiAqKgorCisgIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4gRmx5dHQgbWFya/hyZW4KKyAgICAgdGlsIGJlZ3lubmVsc2VuIGF2IGRlbiBm+HJzdGUgq3h4eLstZW4uCisKKyAgMi4gVHJ5a2sgIFIgIG9nIHNrcml2IGlubiB0YWxsZXQgc29tIHN05XIgbmVkZW5mb3IgcOUgZGVuIGFuZHJlIGxpbmplbiBz5QorICAgICBkZXQgZXJzdGF0dGVyIHh4eC4KKworICAzLiBUcnlrayA8RVNDPiBmb3Ig5SBn5SB1dCBhdiBlcnN0YXRuaW5nc21vZHVzZW4uIExlZ2cgbWVya2UgdGlsIGF0IHJlc3RlbgorICAgICBhdiBsaW5qZW4gZm9yYmxpciB1Zm9yYW5kcmV0LgorCisgIDQuIFJlcGV0ZXIgc3RlZ2VuZSBmb3Ig5SBlcnN0YXR0ZSBkZW4gZ2plbnbmcmVuZGUgeHh4LgorCistLS0+IFZlZCDlIGxlZ2dlIDEyMyB0aWwgeHh4IGblciB2aSB4eHguCistLS0+IFZlZCDlIGxlZ2dlIDEyMyB0aWwgNDU2IGblciB2aSA1NzkuCisKK01FUks6IEVyc3RhdG5pbmdzbW9kdXMgZXIgbGlrIGluc2V0dGluZ3Ntb2R1cywgbWVuIGh2ZXJ0IHRlZ24gc29tIHNrcml2ZXMKKyAgICAgIGVyc3RhdHRlciBldCBla3Npc3RlcmVuZGUgdGVnbi4KKworfn5+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+CisJCSAgICBMZWtzam9uIDYuNDogS09QSUVSRSBPRyBMSU1FIElOTiBURUtTVAorCisKKyAgICAqKiBCcnVrIHktb3BlcmF0b3JlbiBmb3Ig5SBrb3BpZXJlIHRla3N0IG9nICBwICBmb3Ig5SBsaW1lIGRlbiBpbm4gKioKKworICAxLiBH5SB0aWwgbGluamVuIG1lcmtldCAtLS0+IG5lZGVuZm9yIG9nIHBsYXNzZXIgbWFya/hyZW4gZXR0ZXIgq2Epuy4KKworICAyLiBH5SBpbm4gaSB2aXN1ZWxsIG1vZHVzIG1lZCAgdiAgb2cgZmx5dHQgbWFya/hyZW4gdGlsIGxpa2UgZvhyIKtm+HJzdGW7LgorCisgIDMuIFRyeWtrICB5ICBmb3Ig5SBrb3BpZXJlIChlbmdlbHNrOiCreWFua7spIGRlbiB1dGhldmVkZSB0ZWtzdGVuLgorCisgIDQuIEZseXR0IG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IGRlbiBuZXN0ZSBsaW5qZW46ICBqJAorCisgIDUuIFRyeWtrICBwICBmb3Ig5SBsaW1lIGlubiB0ZWtzdGVuLiBUcnlrayBkZXJldHRlcjoJYSBhbmRyZSA8RVNDPiAuCisKKyAgNi4gQnJ1ayB2aXN1ZWxsIG1vZHVzIGZvciDlIHZlbGdlIKsgdmFsZ2V0LrssIGtvcGllciBkZXQgbWVkCXkgLCBn5SB0aWwKKyAgICAgc2x1dHRlbiBhdiBkZW4gbmVzdGUgbGluamVuIG1lZCAgaiQgIG9nIGxlZ2cgaW5uIHRla3N0ZW4gZGVyIG1lZCAgcCAuCisKKy0tLT4gYSkgRGV0dGUgZXIgZGV0IGb4cnN0ZSB2YWxnZXQuCisgICAgIGIpCisKK01lcms6IER1IGthbiBvZ3PlIGJydWtlICB5ICBzb20gZW4gb3BlcmF0b3I7ICB5dyAga29waWVyZXIgZXR0IG9yZC4KK35+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+fgorCQkJICAgIExla3Nqb24gNi41OiBTRVRUIFZBTEcKKworCisgICoqIFNldHQgZXQgdmFsZyBz5SBz+GsgZWxsZXIgZXJzdGF0bmluZyBpZ25vcmVyZXIgc3RvcmUvc23lIGJva3N0YXZlci4gKioKKworICAxLiBMZXQgZXR0ZXIgq2lnbm9yZbsgdmVkIOUgc2tyaXZlOiAgL2lnbm9yZSA8RU5URVI+CisgICAgIFJlcGV0ZXIgZmxlcmUgZ2FuZ2VyIHZlZCDlIHRyeWtrZQluIC4KKworICAyLiBTZXR0IKtpY7stdmFsZ2V0IChJZ25vcmUgQ2FzZSkgdmVkIOUgc2tyaXZlOiAgOnNldCBpYworCisgIDMuIFP4ayBldHRlciCraWdub3JluyBpZ2plbiB2ZWQg5SB0cnlra2UgIG4gLgorICAgICBMZWdnIG1lcmtlIHRpbCBhdCBi5WRlIKtJZ25vcmW7IG9nIKtJR05PUkW7IGJsaXIgZnVubmV0LgorCisgIDQuIFNldHQgq2hsc2VhcmNouy0gb2cgq2luY3NlYXJjaLstdmFsZ2VuZTogIDpzZXQgaGxzIGlzCisKKyAgNS4gU2tyaXYgc/hrZWtvbW1hbmRvZW4gaWdqZW4gb2cgc2UgaHZhIHNvbSBza2plcjogIC9pZ25vcmUgPEVOVEVSPgorCisgIDYuIEZvciDlIHNs5SBhdiBpZ25vcmVyaW5nIGF2IHN0b3JlL3Nt5SBib2tzdGF2ZXIsIHNrcml2OiAgOnNldCBub2ljCisKK01lcms6IEZvciDlIGZqZXJuZSB1dGhldmluZ2VuIGF2IHRyZWZmLCBza3JpdjoJOm5vaGxzZWFyY2gKK01lcms6IEh2aXMgZHUgdmlsIGlnbm9yZXJlIHN0b3JlL3Nt5SBib2tzdGF2ZXIgZm9yIGt1biBlbiBz+Gtla29tbWFuZG8sIGJydWsKKyAgICAgIFxjICBpIHV0dHJ5a2tldDoJL2lnbm9yZVxjIDxFTlRFUj4KK35+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+fgorCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiA2CisKKyAgMS4gVHJ5a2sgIG8gIGZvciDlIGxlZ2dlIHRpbCBlbiBsaW5qZSBORURFTkZPUiBtYXJr+HJlbiBvZyBn5SBpbm4gaQorICAgICBpbm5zZXR0aW5nc21vZHVzLgorICAgICBUcnlrayAgTyAgZm9yIOUg5XBuZSBlbiBsaW5qZSBPVkVSIG1hcmv4cmVuLgorCisgIDIuIFNrcml2ICBhICBmb3Ig5SBzZXR0ZSBpbm4gdGVrc3QgRVRURVIgbWFya/hyZW4uCisgICAgIFNrcml2ICBBICBmb3Ig5SBzZXR0ZSBpbm4gdGVrc3QgZXR0ZXIgc2x1dHRlbiBhdiBsaW5qZW4uCisKKyAgMy4gS29tbWFuZG9lbiAgZSAgZ+VyIHRpbCBzbHV0dGVuIGF2IGV0IG9yZC4KKworICA0LiBPcGVyYXRvcmVuICB5ICAoq3lhbmu7KSBrb3BpZXJlciB0ZWtzdCwgIHAgICircGFzdGW7KSBsaW1lciBkZW4gaW5uLgorCisgIDUuIFZlZCDlIHRyeWtrZSAgUiAgZ+VyIGR1IGlubiBpIGVyc3RhdG5pbmdzbW9kdXMgaGVsdCB0aWwgIDxFU0M+ICB0cnlra2VzLgorCisgIDYuIFNrcml2IKs6c2V0IHh4eLsgZm9yIOUgc2V0dGUgdmFsZ2V0IKt4eHi7LiBOb2VuIHZhbGcgZXI6CisJq2ljuyCraWdub3JlY2FzZbsJaWdub3JlciBzdG9yZS9zbeUgYm9rc3RhdmVyIHVuZGVyIHP4aworCatpc7sgq2luY3NlYXJjaLsJdmlzIGRlbHZpc2UgdHJlZmYgZm9yIGVuIHP4a2V0ZWtzdAorCatobHO7IKtobHNlYXJjaLsJdXRoZXYgYWxsZSBz+GtldHJlZmYKKworICA3LiBMZWdnIHRpbCCrbm+7IGZvcmFuIHZhbGdldCBmb3Ig5SBzbOUgZGV0IGF2OiAgOnNldCBub2ljCisKK35+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+fgorCQkJICAgIExla3Nqb24gNy4xOiBGxSBISkVMUAorCisKKwkJICAgKiogQnJ1ayBkZXQgaW5uZWJ5Z2RlIGhqZWxwZXN5c3RlbWV0LiAqKgorCisgIFZpbSBoYXIgZXQgb21mYXR0ZW5kZSBpbm5lYnlnZ2V0IGhqZWxwZXN5c3RlbS4gRm9yIOUgc3RhcnRlIGRldCwgcHL4diBlbiBhdgorICBkaXNzZSBt5XRlbmU6CisgICAgLSBUcnlrayBIamVscC10YXN0ZW4gKGh2aXMgZHUgaGFyIGVuKQorICAgIC0gVHJ5a2sgRjEtdGFzdGVuIChodmlzIGR1IGhhciBlbikKKyAgICAtIFNrcml2ICA6aGVscCA8RU5URVI+CisKKyAgTGVzIHRla3N0ZW4gaSBoamVscGV2aW5kdWV0IGZvciDlIGZpbm5lIHV0IGh2b3JkYW4gaGplbHBlbiB2aXJrZXIuCisgIFNrcml2ICBDVFJMLVcgQ1RSTC1XCWZvciDlIGhvcHBlIGZyYSBldCB2aW5kdSB0aWwgZXQgYW5uZXQKKyAgU2tyaXYgIDpxIDxFTlRFUj4JZm9yIOUgbHVra2UgaGplbHBldmluZHVldC4KKworICBEdSBrYW4gZuUgaGplbHAgZm9yIG9tdHJlbnQgYWxsZSB0ZW1hZXIgb20gVmltIHZlZCDlIHNrcml2ZSBldCBwYXJhbWV0ZXIgdGlsCisgIKs6aGVscLsta29tbWFuZG9lbi4gUHL4diBkaXNzZSAoaWtrZSBnbGVtIOUgdHJ5a2tlIDxFTlRFUj4pOgorCisgICAgOmhlbHAgdworICAgIDpoZWxwIGNfQ1RSTC1ECisgICAgOmhlbHAgaW5zZXJ0LWluZGV4CisgICAgOmhlbHAgdXNlci1tYW51YWwKK35+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+fgorCQkgICAgIExla3Nqb24gNy4yOiBMQUcgRVQgT1BQU1RBUlRTU0tSSVBUCisKKworCQkJKiogU2zlIHDlIGZ1bmtzam9uZXIgaSBWaW0gKioKKworICBWaW0gaGFyIG1hbmdlIGZsZXJlIGZ1bmtzam9uZXIgZW5uIFZpLCBtZW4gZmxlc3RlcGFydGVuIGF2IGRlbSBlciBzbOV0dCBhdgorICBzb20gc3RhbmRhcmQuIEZvciDlIGJlZ3lubmUg5SBicnVrZSBmbGVyZSBmdW5rc2pvbmVyIG3lIGR1IGxhZ2UgZW4KKyAgq3ZpbXJjuy1maWwuCisKKyAgMS4gU3RhcnQgcmVkaWdlcmluZ2VuIGF2IKt2aW1yY7stZmlsZW4uIERldHRlIGF2aGVuZ2VyIGF2IHN5c3RlbWV0IGRpdHQ6CisJOmUgfi8udmltcmMJICBmb3IgVW5peAorCTplICRWSU0vX3ZpbXJjCSAgZm9yIE1TIFdpbmRvd3MKKworICAyLiBMZXMgaW5uIGVrc2VtcGVsZmlsZW4gZm9yIKt2aW1yY7s6CisJOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKworICAzLiBMYWdyZSBmaWxlbiBtZWQ6CisJOncKKworICBOZXN0ZSBnYW5nIGR1IHN0YXJ0ZXIgVmltIHZpbCBkZW4gYnJ1a2Ugc3ludGFrcy11dGhldmluZy4gRHUga2FuIGxlZ2dlIHRpbAorICBhbGxlIGRpbmUgZm9yZXRydWtuZSBvcHBzZXR0IGkgZGVubmUgq3ZpbXJjuy1maWxlbi4KKyAgRm9yIG1lciBpbmZvcm1hc2pvbiwgc2tyaXYgIDpoZWxwIHZpbXJjLWludHJvCit+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+fn4KKwkJCSAgIExla3Nqb24gNy4zOiBGVUxMRthSSU5HCisKKworCSAgICAgICoqIEtvbW1hbmRvbGluamVmdWxsZvhyaW5nIG1lZCBDVFJMLUQgb2cgPFRBQj4gKioKKworICAxLiBW5nIgc2lra2VyIHDlIGF0IFZpbSBpa2tlIGVyIGkgVmkta29tcGF0aWJlbCBtb2R1czogIDpzZXQgbm9jcAorCisgIDIuIFNlIGh2aWxrZSBmaWxlciBzb20gZXIgaSBrYXRhbG9nZW46ICA6IWxzCWVsbGVyICA6IWRpcgorCisgIDMuIFNrcml2IHN0YXJ0ZW4gcOUgZW4ga29tbWFuZG86ICA6ZQorCisgIDQuIFRyeWtrICBDVFJMLUQgIG9nIFZpbSB2aWwgdmlzZSBlbiBsaXN0ZSBvdmVyIGtvbW1hbmRvZXIgc29tIHN0YXJ0ZXIgbWVkCisgICAgIKtluy4KKworICA1LiBUcnlrayAgPFRBQj4gIG9nIFZpbSB2aWwgZnVsbGb4cmUga29tbWFuZG9uYXZuZXQgdGlsIKs6ZWRpdLsuCisKKyAgNi4gTGVnZyB0aWwgZXQgbWVsbG9tcm9tIG9nIHN0YXJ0ZW4gcOUgZXQgZWtzaXN0ZXJlbmRlIGZpbG5hdm46ICA6ZWRpdCBGSUwKKworICA3LiBUcnlrayA8VEFCPi4gVmltIHZpbCBmdWxsZvhyZSBuYXZuZXQgKGh2aXMgZGV0IGVyIHVuaWt0KS4KKworTUVSSzogRnVsbGb4cmluZyBmdW5nZXJlciBmb3IgbWFuZ2Uga29tbWFuZG9lci4gUHL4diB2ZWQg5SB0cnlra2UgQ1RSTC1EIG9nCisgICAgICA8VEFCPi4gRGV0IGVyIHNwZXNpZWx0IG55dHRpZyBmb3IgYnJ1ayBzYW1tZW4gbWVkICA6aGVscCAuCit+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+fn4KKwkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gNworCisKKyAgMS4gU2tyaXYgIDpoZWxwICBlbGxlciB0cnlrayA8RjE+IGVsbGVyIDxIZWxwPiBmb3Ig5SDlcG5lIGV0IGhqZWxwZXZpbmR1LgorCisgIDIuIFNrcml2ICA6aGVscCBrb21tYW5kbyAgZm9yIOUgZuUgaGplbHAgb20gIGtvbW1hbmRvIC4KKworICAzLiBUcnlrayAgQ1RSTC1XIENUUkwtVyAgZm9yIOUgaG9wcGUgdGlsIGV0IGFubmV0IHZpbmR1LgorCisgIDQuIFRyeWtrICA6cQlmb3Ig5SBsdWtrZSBoamVscGV2aW5kdWV0LgorCisgIDUuIE9wcHJldHQgZXQgdmltcmMtb3Bwc3RhcnRzc2tyaXB0IGZvciDlIGxhZ3JlIGZhdm9yaXR0dmFsZ2VuZSBkaW5lLgorCisgIDYuIE7lciBkdSBza3JpdmVyIGVuIKs6uy1rb21tYW5kbywgdHJ5a2sgQ1RSTC1EIGZvciDlIHNlIG11bGlnZQorICAgICBmdWxsZvhyaW5nZXIuIFRyeWtrIDxUQUI+IGZvciDlIGJydWtlIGVuIGZ1bGxm+HJpbmcuCisKKworCisKKworCisKK35+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+fgorCisgIEhlciBzbHV0dGVyIGlubmb4cmluZ2VuIGkgVmltLiBEZW4gdmFyIG1lbnQgc29tIGVuIHJhc2sgb3ZlcnNpa3Qgb3ZlcgorICBlZGl0b3JlbiwgYWtrdXJhdCBub2sgdGlsIOUgbGEgZGVnIHNldHRlIGkgZ2FuZyBtZWQgZW5rZWwgYnJ1ay4gRGVuIGVyIHDlCisgIGxhbmd0IG7mciBrb21wbGV0dCwgZGEgVmltIGhhciBtYW5nZSBmbGVyZSBrb21tYW5kb2VyLiBMZXMgYnJ1a3NhbnZpc25pbmdlbgorICB2ZWQg5SBza3JpdmUJOmhlbHAgdXNlci1tYW51YWwgIC4KKworICBGb3IgdmlkZXJlIGxlc2luZyBvZyBzdHVkaWVyLCBrYW4gZGVubmUgYm9rZW4gYW5iZWZhbGVzOgorICAgICAgq1ZpbSAtIFZpIEltcHJvdmVkuyBhdiBTdGV2ZSBPdWFsbGluZQorICAgICAgVXRnaXZlcjogTmV3IFJpZGVycworICBEZW4gZvhyc3RlIGJva2VuIHNvbSBlciBmdWxsdCBvZyBoZWx0IGRlZGlzZXJ0IHRpbCBWaW0uIFNwZXNpZWx0IG55dHRpZyBmb3IKKyAgbnliZWd5bm5lcmUuIElubmVob2xkZXIgbWFuZ2UgZWtzZW1wbGVyIG9nIGlsbHVzdHJhc2pvbmVyLgorICBTZSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAorCisgIERlbm5lIGJva2VuIGVyIGVsZHJlIG9nIGhhbmRsZXIgbWVyIG9tIFZpIGVubiBWaW0sIG1lbiBhbmJlZmFsZXMgb2dz5ToKKyAgICAgIKtMZWFybmluZyB0aGUgVmkgRWRpdG9yuyBhdiBMaW5kYSBMYW1iCisgICAgICBVdGdpdmVyOiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgorICBEZXQgZXIgZW4gZ29kIGJvayBmb3Ig5SBm5SB2aXRlIG9tdHJlbnQgaHZhIHNvbSBoZWxzdCBvbSBWaS4KKyAgRGVuIHNqZXR0ZSB1dGdhdmVuIGlubmVob2xkZXIgb2dz5SBpbmZvcm1hc2pvbiBvbSBWaW0uCisKKyAgRGVubmUgaW5uZvhyaW5nZW4gZXIgc2tyZXZldCBhdiBNaWNoYWVsIEMuIFBpZXJjZSBvZyBSb2JlcnQgSy4gV2FyZSwKKyAgQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzIG1lZCBpZOllciBhdiBDaGFybGVzIFNtaXRoLCBDb2xvcmFkbyBTdGF0ZQorICBVbml2ZXJzaXR5LiBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdSAuCisKKyAgTW9kaWZpc2VydCBmb3IgVmltIGF2IEJyYW0gTW9vbGVuYWFyLgorICBPdmVyc2F0dCBhdiDYeXZpbmQgQS4gSG9sbS4gRS1tYWlsOiB2aW10dXRvciBfQVRfIHN1bmJhc2Uub3JnCisgIElkOiB0dXRvci5ubyA0MDYgMjAwNy0wMy0xOCAyMjo0ODozNlogc3VubnkKKworfn5+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+Cit2aW06IHNldCB0cz04IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IubmIudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLm5iLnV0Zi04Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3ODI2YjcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLm5iLnV0Zi04CkBAIC0wLDAgKzEsOTczIEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9IFYgZSBsIGsgbyBtIG0gZSBuICAgdCBpIGwgICBpIG4gbiBmIMO4IHIgaSBuIGcgZSBuICAgaSAgIFYgaSBtICAtLSAgVmVyLiAxLjcgPQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIFZpbSBlciBlbiBtZWdldCBrcmFmdGlnIGVkaXRvciBtZWQgbWFuZ2Uga29tbWFuZG9lciwgYWx0IGZvciBtYW5nZSB0aWwgw6UKKyAgICAga3VubmUgZ8OlIGdqZW5ub20gYWxsZSBpIGVuIGlubmbDuHJpbmcgc29tIGRlbm5lLiBEZW4gZXIgYmVyZWduZXQgcMOlIMOlCisgICAgIHNldHRlIGRlZyBpbm4gaSBicnVrZW4gYXYgbm9rIGtvbW1hbmRvZXIgc8OlIGR1IHZpbCB2w6ZyZSBpIHN0YW5kIHRpbCBsZXR0CisgICAgIMOlIGt1bm5lIGJydWtlIFZpbSBzb20gZW4gZWRpdG9yIHRpbCBhbGxlIGZvcm3DpWwuCisKKyAgICAgVGlkZW4gc29tIGtyZXZlcyBmb3Igw6UgZ8OlIGdqZW5ub20gZGVubmUgaW5uZsO4cmluZ2VuIHRhciBjYS4gMjUtMzAKKyAgICAgbWludXR0ZXIsIGF2aGVuZ2lnIGF2IGh2b3IgbXllIHRpZCBkdSBicnVrZXIgdGlsIGVrc3BlcmltZW50ZXJpbmcuCisKKyAgICAgTUVSSzoKKyAgICAgS29tbWFuZG9lbmUgaSBsZWtzam9uZW5lIHZpbCBtb2RpZmlzZXJlIHRla3N0ZW4uIExhZyBlbiBrb3BpIGF2IGRlbm5lCisgICAgIGZpbGVuIHNvbSBkdSBrYW4gw7h2ZSBkZWcgcMOlIChodmlzIGR1IGtqw7hydGUgwqt2aW10dXRvcsK7LWtvbW1hbmRvZW4sIGVyCisgICAgIGRldHRlIGFsbGVyZWRlIGVuIGtvcGkpLgorCisgICAgIERldCBlciB2aWt0aWcgw6UgaHVza2UgYXQgZGVubmUgaW5uZsO4cmluZ2VuIGVyIGJlcmVnbmV0IHDDpSBsw6ZyaW5nIGdqZW5ub20KKyAgICAgYnJ1ay4gRGV0IGJldHlyIGF0IGR1IG3DpSB1dGbDuHJlIGtvbW1hbmRvZW5lIGZvciDDpSBsw6ZyZSBkZW0gc2tpa2tlbGlnLgorICAgICBIdmlzIGR1IGJhcmUgbGVzZXIgdGVrc3RlbiwgdmlsIGR1IGdsZW1tZSBrb21tYW5kb2VuZSEKKworICAgICBGw7hyc3QgYXYgYWx0LCBzamVrayBhdCDCq0NhcHMgTG9ja8K7IElLS0UgZXIgYWt0aXYgb2cgdHJ5a2sgwqtqwrstdGFzdGVuIGZvcgorICAgICDDpSBmbHl0dGUgbWFya8O4cmVuIGhlbHQgdGlsIGxla3Nqb24gMS4xIGZ5bGxlciBza2plcm1lbi4KK35+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+fgorCQkgICAgICBMZWtzam9uIDEuMTogIEZMWVRUSU5HIEFWIE1BUkvDmFJFTgorCisKKyAgICAgICAqKiBGb3Igw6UgZmx5dHRlIG1hcmvDuHJlbiwgdHJ5a2sgdGFzdGVuZSBoLCBqLCBrLCBsIHNvbSB2aXN0LiAqKgorCSAgICAgXgorCSAgICAgawkJVGlwczogaC10YXN0ZW4gZXIgdGlsIHZlbnN0cmUgb2cgZmx5dHRlciB0aWwgdmVuc3RyZS4KKyAgICAgICA8IGgJIGwgPgkgICAgICBsLXRhc3RlbiBlciB0aWwgaMO4eXJlIG9nIGZseXR0ZXIgdGlsIGjDuHlyZS4KKwkgICAgIGoJCSAgICAgIGotdGFzdGVuIHNlciB1dCBzb20gZW4gcGlsIHNvbSBwZWtlciBuZWRvdmVyLgorCSAgICAgdgorICAxLiBGbHl0dCBtYXJrw7hyZW4gcnVuZHQgcMOlIHNramVybWVuIHRpbCBkdSBoYXIgZsOldHQgZGV0IGlubiBpIGZpbmdyZW5lLgorCisgIDIuIEhvbGQgaW5uZSBuZWRvdmVydGFzdGVuIChqKSB0aWwgZGVuIHJlcGV0ZXJlci4KKyAgICAgTsOlIHZldCBkdSBodm9yZGFuIGR1IGJldmVnZXIgZGVnIHRpbCBuZXN0ZSBsZWtzam9uLgorCisgIDMuIEfDpSB0aWwgbGVrc2pvbiAxLjIgdmVkIGhqZWxwIGF2IG5lZG92ZXJ0YXN0ZW4uCisKK01lcms6IEh2aXMgZHUgYmxpciB1c2lra2VyIHDDpSBub2UgZHUgaGFyIHNrcmV2ZXQsIHRyeWtrIDxFU0M+IGZvciDDpSBnw6UgdGlsCisgICAgICBub3JtYWxtb2R1cy4gU2tyaXYgZGVyZXR0ZXIga29tbWFuZG9lbiBkdSDDuG5za2V0IHDDpSBueXR0LgorCitNZXJrOiBQaWx0YXN0ZW5lIHNrYWwgb2dzw6Ugdmlya2UuIE1lbiB2ZWQgw6UgYnJ1a2UgaGprbCB2aWwgZHUgdsOmcmUgaSBzdGFuZCB0aWwKKyAgICAgIMOlIGJldmVnZSBtYXJrw7hyZW4gbXllIHJhc2tlcmUgbsOlciBkdSBlciBibGl0dCB2YW50IHRpbCBkZXQuIEhlbHQgc2FudCEKKworfn5+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+CisJCQkgIExla3Nqb24gMS4yOiBBVlNMVVRURSBWSU0KKworCisgICEhIE1FUks6IEbDuHIgZHUgdXRmw7hyZXIgbm9lbiBhdiBwdW5rdGVuZSBuZWRlbmZvciwgbGVzIGhlbGUgbGVrc2pvbmVuISEKKworICAxLiBUcnlrayA8RVNDPi10YXN0ZW4gKGZvciDDpSBmb3JzaWtyZSBkZWcgb20gYXQgZHUgZXIgaSBub3JtYWxtb2R1cykuCisKKyAgMi4gU2tyaXY6CTpxISA8RU5URVI+LgorICAgICBEZXR0ZSBhdnNsdXR0ZXIgZWRpdG9yZW4gb2cgRk9SS0FTVEVSIGFsbGUgZm9yYW5kcmluZ2VyIHNvbSBkdSBoYXIgZ2pvcnQuCisKKyAgMy4gTsOlciBkdSBzZXIga29tbWFuZG9saW5qZW4gaSBza2FsbGV0LCBza3JpdiBrb21tYW5kb2VuIHNvbSBzdGFydGV0IGRlbm5lCisgICAgIGlubmbDuHJpbmdlbi4gRGVuIGVyOiAgIHZpbXR1dG9yIDxFTlRFUj4KKworICA0LiBIdmlzIGR1IGVyIHNpa2tlciBww6UgYXQgZHUgaHVza2VyIGRldHRlLCB1dGbDuHIgcHVua3RlbmUgMSB0aWwgMyBmb3Igw6UKKyAgICAgYXZzbHV0dGUgb2cgc3RhcnRlIGVkaXRvcmVuIHDDpSBueXR0LgorCitNRVJLOiAgOnEhIDxFTlRFUj4gIGZvcmthc3RlciBhbGxlIGZvcmFuZHJpbmdlciBzb20gZHUgZ2pvcmRlLiBJIGzDuHBldCBhdiBub2VuCisgICAgICAgZsOlIGxla3Nqb25lciB2aWwgZHUgbMOmcmUgaHZvcmRhbiBkdSBsYWdyZXIgZm9yYW5kcmluZ2VuZSB0aWwgZW4gZmlsLgorCisgIDUuIEZseXR0IG1hcmvDuHJlbiBuZWQgdGlsIGxla3Nqb24gMS4zLgorCisKK35+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+fgorCQkgTGVrc2pvbiAxLjM6IFJFRElHRVJJTkcgQVYgVEVLU1QgLS0gU0xFVFRJTkcKKworCisJICAgICAqKiBUcnlrayAgeCAgZm9yIMOlIHNsZXR0ZSB0ZWduZXQgdW5kZXIgbWFya8O4cmVuLiAqKgorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgZGVuIGbDuHJzdGUgbGluamVuIG1lcmtldCBtZWQgIC0tLT4uCisKKyAgMi4gRm9yIMOlIG9yZG5lIGZlaWxlbmUgcMOlIGxpbmplbiwgZmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gZXIgb3Bww6UgdGVnbmV0IHNvbQorICAgICBza2FsIHNsZXR0ZXMuCisKKyAgMy4gVHJ5a2sgdGFzdGVuICB4ICBmb3Igw6Ugc2xldHRlIGRldCB1w7huc2tlZGUgdGVnbmV0LgorCisgIDQuIFJlcGV0ZXIgcHVua3QgMiB0aWwgNCB0aWwgc2V0bmluZ2VuIGVyIGxpayBkZW4gc29tIGVyIHVuZGVyLgorCistLS0+IEhlc3NzdGVubm5uIGJycnLDpXNudWRkZGRlIGlpIGdhYWF0YS4KKy0tLT4gSGVzdGVuIGJyw6VzbnVkZGUgaSBnYXRhLgorCisgIDUuIE7DpSBzb20gbGluamVuIGVyIGtvcnJla3QsIGfDpSB0aWwgbGVrc2pvbiAxLjQuCisKK01FUks6IE7DpXIgZHUgZ8OlciBnamVubm9tIGlubmbDuHJpbmdlbiwgaWtrZSBiYXJlIHByw7h2IMOlIGh1c2tlIGtvbW1hbmRvZW5lLCBtZW4KKyAgICAgIGJydWsgZGVtIGhlbHQgdGlsIGRlIHNpdHRlci4KKworfn5+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+CisJCUxla3Nqb24gMS40OiBSRURJR0VSSU5HIEFWIFRFS1NUIC0tIElOTlNFVFRJTkcKKworCisJCSAgICAqKiBUcnlrayAgaSAgZm9yIMOlIHNldHRlIGlubiB0ZWtzdC4gKioKKworICAxLiBGbHl0dCBtYXJrw7hyZW4gdGlsIGRlbiBmw7hyc3RlIGxpbmplbiBzb20gZXIgbWVya2V0IG1lZCAtLS0+LgorCisgIDIuIEZvciDDpSBnasO4cmUgZGVuIGbDuHJzdGUgbGluamVuIGxpayBkZW4gYW5kcmUsIGZseXR0IG1hcmvDuHJlbiB0aWwgZGVuIHN0w6VyCisgICAgIHDDpSB0ZWduZXQgRVRURVIgcG9zaXNqb25lbiBkZXIgdGVrc3RlbiBza2FsIHNldHRlcyBpbm4uCisKKyAgMy4gVHJ5a2sgIGkgIG9nIHNrcml2IGlubiB0ZWtzdGVuIHNvbSBtYW5nbGVyLgorCisgIDQuIEV0dGVyaHZlcnQgc29tIGh2ZXIgZmVpbCBlciBmaWtzZXQsIHRyeWtrIDxFU0M+IGZvciDDpSByZXR1cm5lcmUgdGlsCisgICAgIG5vcm1hbG1vZHVzLiBSZXBldGVyIHB1bmt0IDIgdGlsIDQgdGlsIHNldG5pbmdlbiBlciBrb3JyZWt0LgorCistLS0+IERldCBlciB0a3N0IHNvbSBtbmdsciAuCistLS0+IERldCBlciBnYW5za2UgbXllIHRla3N0IHNvbSBtYW5nbGVyIGhlci4KKworICA1LiBOw6VyIGR1IGbDuGxlciBkZWcga29tZm9ydGFiZWwgbWVkIMOlIHNldHRlIGlubiB0ZWtzdCwgZ8OlIHRpbCBvcHBzdW1tZXJpbmdlbgorICAgICBuZWRlbmZvci4KKworCit+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+fn4KKwkJTGVrc2pvbiAxLjU6IFJFRElHRVJJTkcgQVYgVEVLU1QgLS0gTEVHR0UgVElMCisKKworCQkgICAgKiogVHJ5a2sgIEEgIGZvciDDpSBsZWdnZSB0aWwgdGVrc3QuICoqCisKKyAgMS4gRmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gZsO4cnN0ZSBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4uCisgICAgIERldCBoYXIgaWtrZSBub2Ugw6Ugc2kgaHZvciBtYXJrw7hyZW4gZXIgcGxhc3NlcnQgcMOlIGRlbiBsaW5qZW4uCisKKyAgMi4gVHJ5a2sgIEEgIG9nIHNrcml2IGlubiBkZXQgc29tIHNrYWwgbGVnZ2VzIHRpbC4KKworICAzLiBOw6VyIHRla3N0ZW4gZXIgbGFndCB0aWwsIHRyeWtrIDxFU0M+IGZvciDDpSByZXR1cm5lcmUgdGlsIG5vcm1hbG1vZHVzZW4uCisKKyAgNC4gRmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gYW5kcmUgbGluamVuIG1hcmtlcnQgbWVkIC0tLT4gb2cgcmVwZXRlciBzdGVnIDIgb2cKKyAgICAgMyBmb3Igw6UgcmVwYXJlcmUgZGVubmUgc2V0bmluZ2VuLgorCistLS0+IERldCBtYW5nbGVyIG5vZSB0ZWtzdCBwCisgICAgIERldCBtYW5nbGVyIG5vZSB0ZWtzdCBww6UgZGVubmUgbGluamVuLgorLS0tPiBEZXQgbWFuZ2xlciBvZ3PDpSBsaXR0IHRlaworICAgICBEZXQgbWFuZ2xlciBvZ3PDpSBsaXR0IHRla3N0IHDDpSBkZW5uZSBsaW5qZW4uCisKKyAgNS4gTsOlciBkdSBmw7hsZXIgYXQgZHUgYmVoZXJza2VyIMOlIGxlZ2dlIHRpbCB0ZWtzdCwgZ8OlIHRpbCBsZWtzam9uIDEuNi4KKworfn5+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+CisJCQkgTGVrc2pvbiAxLjY6IFJFRElHRVJFIEVOIEZJTAorCisKKwkgICAgICAgKiogQnJ1awk6d3EgIGZvciDDpSBsYWdyZSBlbiBmaWwgb2cgYXZzbHV0dGUuICoqCisKKyAgISEgTUVSSzogRsO4ciBkdSB1dGbDuHJlciBub2VuIGF2IHN0ZWdlbmUgbmVkZW5mb3IsIGxlcyBoZWxlIGRlbm5lIGxla3Nqb25lbiEhCisKKyAgMS4gQXZzbHV0dCBkZW5uZSBpbm5mw7hyaW5nZW4gc29tIGR1IGdqb3JkZSBpIGxla3Nqb24gMS4yOiAgOnEhCisKKyAgMi4gU2tyaXYgZGVubmUga29tbWFuZG9lbiBww6Uga29tbWFuZG9saW5qYTogIHZpbSB0dXRvciA8RU5URVI+CisgICAgIMKrdmltwrsgZXIga29tbWFuZG9lbiBmb3Igw6Ugc3RhcnRlIFZpbS1lZGl0b3Jlbiwgwqt0dXRvcsK7IGVyIG5hdm5ldCBww6UgZmlsYQorICAgICBzb20gZHUgdmlsIHJlZGlnZXJlLiBCcnVrIGVuIGZpbCBzb20ga2FuIGZvcmFuZHJlcy4KKworICAzLiBTZXR0IGlubiBvZyBzbGV0dCB0ZWtzdCBzb20gZHUgbMOmcnRlIGkgZGUgZm9yZWfDpWVuZGUgbGVrc2pvbmVuZS4KKworICA0LiBMYWdyZSBmaWxlbiBtZWQgZm9yYW5kcmluZ2VuZSBvZyBhdnNsdXR0IFZpbSBtZWQ6CTp3cSA8RU5URVI+CisKKyAgNS4gU3RhcnQgaW5uZsO4cmluZ2VuIHDDpSBueXR0IG9nIGZseXR0IG5lZCB0aWwgb3Bwc3VtbWVyaW5nZW4gc29tIGbDuGxnZXIuCisKKyAgNi4gRXR0ZXIgw6UgaGEgbGVzdCBvZyBmb3JzdMOldHQgc3RlZ2VuZSBvdmVuZm9yOiBTZXR0IGkgZ2FuZy4KKworCit+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+fn4KKwkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gMQorCisKKyAgMS4gTWFya8O4cmVuIGJldmVnZXMgdmVkIGhqZWxwIGF2IHBpbHRhc3RlbmUgZWxsZXIgaGprbC10YXN0ZW5lLgorCSBoICh2ZW5zdHJlKQkgaiAobmVkKSAgICAgayAob3BwKQkgbCAoaMO4eXJlKQorCisgIDIuIEZvciDDpSBzdGFydGUgVmltIGZyYSBza2FsbC1rb21tYW5kb2xpbmplbiwgc2tyaXY6CXZpbSBGSUxOQVZOIDxFTlRFUj4KKworICAzLiBGb3Igw6UgYXZzbHV0dGUgVmltLCBza3JpdjogIDxFU0M+IDpxISA8RU5URVI+ICBmb3Igw6UgZm9ya2FzdGUgZW5kcmluZ2VyLgorCQkgICBFTExFUiBza3JpdjogIDxFU0M+IDp3cSA8RU5URVI+ICBmb3Igw6UgbGFncmUgZm9yYW5kcmluZ2VuZS4KKworICA0LiBGb3Igw6Ugc2xldHRlIHRlZ25ldCB1bmRlciBtYXJrw7hyZW4sIHRyeWtrOiAgeAorCisgIDUuIEZvciDDpSBzZXR0ZSBpbm4gZWxsZXIgbGVnZ2UgdGlsIHRla3N0LCB0cnlrazoKKwkgaSAgICBza3JpdiBpbm5zYXR0IHRla3N0ICA8RVNDPglzZXR0IGlubiBmw7hyIG1hcmvDuHJlbgorCSBBICAgIHNrcml2IHRpbGxhZ3QgdGVrc3QgIDxFU0M+CWxlZ2cgdGlsIHDDpSBzbHV0dGVuIGF2IGxpbmplbgorCitNRVJLOiBOw6VyIGR1IHRyeWtrZXIgPEVTQz4gZ8OlciBkdSB0aWwgbm9ybWFsbW9kdXMgZWxsZXIgZHUgYXZicnl0ZXIgZW4gdcO4bnNrZXQKKyAgICAgIG9nIGRlbHZpcyBmdWxsZsO4cnQga29tbWFuZG8uCisKKyAgTsOlIGthbiBkdSBnw6UgdmlkZXJlIHRpbCBsZWtzam9uIDIuCisKK35+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+fgorCQkJTGVrc2pvbiAyLjE6IFNMRVRURUtPTU1BTkRPRVIKKworCisJCSAgICAqKiBUcnlrayAgZHcgIGZvciDDpSBzbGV0dGUgZXQgb3JkLiAqKgorCisgIDEuIFRyeWtrIDxFU0M+IGZvciDDpSB2w6ZyZSBzaWtrZXIgcMOlIGF0IGR1IGVyIGkgbm9ybWFsbW9kdXMuCisKKyAgMi4gRmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gZsO4cnN0ZSBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4uCisKKyAgMy4gRmx5dHQgbWFya8O4cmVuIHRpbCBiZWd5bm5lbHNlbiBhdiBvcmRldCBzb20gc2thbCBzbGV0dGVzLgorCisgIDQuIFRyeWtrICBkdwlvZyBvcmRldCB2aWwgZm9yc3Zpbm5lLgorCitNRVJLOiBCb2tzdGF2ZW4gIGQgIHZpbCBrb21tZSB0aWwgc3luZSBww6UgZGVuIG5lZGVyc3RlIGxpbmplbiBww6Ugc2tqZXJtZW4gbsOlcgorICAgICAgZHUgc2tyaXZlciBkZW4uIFZpbSB2ZW50ZXIgcMOlIGF0IGR1IHNrYWwgc2tyaXZlIHcgLiBIdmlzIGR1IHNlciBldCBhbm5ldAorICAgICAgdGVnbiBlbm4JZCAgaGFyIGR1IHNrcmV2ZXQgbm9lIGZlaWw7IHRyeWtrIDxFU0M+IG9nIHN0YXJ0IHDDpSBueXR0LgorCistLS0+IERldCBlciBhZ3VyayB0cmUgb3JkIGVwbGUgc29tIGlra2UgaMO4cmVyIHDDpnJlIGhqZW1tZSBpIGRlbm5lIHNldG5pbmdlbi4KKy0tLT4gRGV0IGVyIHRyZSBvcmQgc29tIGlra2UgaMO4cmVyIGhqZW1tZSBpIGRlbm5lIHNldG5pbmdlbi4KKworICA1LiBSZXBldGVyIHB1bmt0IDMgb2cgNCB0aWwgZGVuIGbDuHJzdGUgc2V0bmluZ2VuIGVyIGxpayBkZW4gYW5kcmUuIEfDpQorICAgICBkZXJldHRlciB0aWwgbGVrc2pvbiAyLjIuCit+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+fn4KKwkJICAgICBMZWtzam9uIDIuMjogRkxFUkUgU0xFVFRFS09NTUFORE9FUgorCisKKwkgICAgICoqIFRyeWtrICBkJCAgZm9yIMOlIHNsZXR0ZSB0aWwgc2x1dHRlbiBhdiBsaW5qZW4uICoqCisKKyAgMS4gVHJ5a2sgPEVTQz4gZm9yIMOlIHbDpnJlIHNpa2tlciBww6UgYXQgZHUgZXIgaSBub3JtYWxtb2R1cy4KKworICAyLiBGbHl0dCBtYXJrw7hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4KKworICAzLiBGbHl0dCBtYXJrw7hyZW4gdGlsIHB1bmt0ZXQgZGVyIGxpbmplbiBza2FsIGt1dHRlcyAoRVRURVIgZsO4cnN0ZSBwdW5rdHVtKS4KKworICA0LiBUcnlrayAgZCQJZm9yIMOlIHNsZXR0ZSBhbHQgdGlsIHNsdXR0ZW4gYXYgbGluamVuLgorCistLS0+IE5vZW4gc2tyZXYgc2x1dHRlbiBww6UgbGluamVuIGVuIGdhbmcgZm9yIG15ZS4gbGluamVuIGVuIGdhbmcgZm9yIG15ZS4KKworICA1LiBHw6UgdGlsIGxla3Nqb24gMi4zIGZvciDDpSBmb3JzdMOlIGh2YSBzb20gc2tqZXIuCisKKworCisKKworCit+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+fn4KKwkJICAgTGVrc2pvbiAyLjM6IE9NIE9QRVJBVE9SRVIgT0cgQkVWRUdFTFNFUgorCisKKyAgTWFuZ2Uga29tbWFuZG9lciBzb20gZm9yYW5kcmVyIHRla3N0ZW4gZXIgbGFnZXQgdXQgaSBmcmEgZW4gb3BlcmF0b3Igb2cgZW4KKyAgYmV2ZWdlbHNlLiBGb3JtYXRldCBmb3IgZW4gc2xldHRla29tbWFuZG8gbWVkIHNsZXR0ZW9wZXJhdG9yZW4gIGQgIGVyOgorCisJZCAgIGJldmVnZWxzZQorCisgIERlcjoKKyAgICBkCSAgICAgIC0gZXIgc2xldHRlb3BlcmF0b3Jlbi4KKyAgICBiZXZlZ2Vsc2UgLSBlciBodmEgb3BlcmF0b3JlbiB2aWwgb3BlcmUgcMOlIChsaXN0ZXQgbmVkZW5mb3IpLgorCisgIEVuIGtvcnQgbGlzdGUgbWVkIGJldmVnZWxzZXI6CisgICAgdyAtIHRpbCBzdGFydGVuIGF2IGRldCBuZXN0ZSBvcmRldCwgVU5OVEFUVCBkZXQgZsO4cnN0ZSB0ZWduZXQuCisgICAgZSAtIHRpbCBzbHV0dGVuIGF2IGRldCBuw6V2w6ZyZW5kZSBvcmRldCwgSU5LTFVERVJUIGRldCBzaXN0ZSB0ZWduZXQuCisgICAgJCAtIHRpbCBzbHV0dGVuIGF2IGxpbmplbiwgSU5LTFVERVJUIGRldCBzaXN0ZSB0ZWduZXQuCisKKyAgVmVkIMOlIHNrcml2ZQlkZSAgdmlsIGFsdHPDpSBhbHQgZnJhIG1hcmvDuHJlbiB0aWwgc2x1dHRlbiBhdiBvcmRldCBibGkKKyAgc2xldHRldC4KKworTUVSSzogIFZlZCDDpSBza3JpdmUga3VuIGJldmVnZWxzZW4gaSBub3JtYWxtb2R1c2VuIHV0ZW4gZW4gb3BlcmF0b3IgdmlsCisgICAgICAgbWFya8O4cmVuIGZseXR0ZXMgc29tIHNwZXNpZmlzZXJ0Lgorfn5+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+CisJCSBMRUtTSk9OIDIuNDogQlJVSyBBViBURUxMRVIgRk9SIEVOIEJFVkVHRUxTRQorCisKKyAqKiBWZWQgw6Ugc2tyaXZlIGV0IHRhbGwgZm9yYW4gZW4gYmV2ZWdlbHNlIHJlcGV0ZXJlciBkZW4gc8OlIG1hbmdlIGdhbmdlci4gKioKKworICAxLiBGbHl0dCBtYXJrw7hyZW4gdGlsIHN0YXJ0ZW4gYXYgbGluamVuIG1hcmtlcnQgLS0tPiBuZWRlbmZvci4KKworICAyLiBTa3JpdiAgMncJZm9yIMOlIGZseXR0ZSBtYXJrw7hyZW4gdG8gb3JkIGZyYW1vdmVyLgorCisgIDMuIFNrcml2ICAzZQlmb3Igw6UgZmx5dHRlIG1hcmvDuHJlbiBmcmFtb3ZlciB0aWwgc2x1dHRlbiBhdiBkZXQgdHJlZGplCisgICAgIG9yZGV0LgorCisgIDQuIFNrcml2ICAwICAobnVsbCkgZm9yIMOlIGZseXR0ZSB0aWwgc3RhcnRlbiBhdiBsaW5qZW4uCisKKyAgNS4gUmVwZXRlciBzdGVnIDIgb2cgMyBtZWQgZm9yc2tqZWxsaWdlIHRhbGwuCisKKy0tLT4gRGV0dGUgZXIgZW4gbGluamUgbWVkIG5vZW4gb3JkIHNvbSBkdSBrYW4gYmV2ZWdlIGRlZyBydW5kdCBww6UuCisKKyAgNi4gR8OlIHZpZGVyZSB0aWwgbGVrc2pvbiAyLjUuCisKKworCit+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+fn4KKwkJIExla3Nqb24gMi41OiBCUlVLIEFWIEFOVEFMTCBGT1Igw4UgU0xFVFRFIE1FUgorCisKKyAgICAgKiogRXQgdGFsbCBzYW1tZW4gbWVkIGVuIG9wZXJhdG9yIHJlcGV0ZXJlciBkZW4gc8OlIG1hbmdlIGdhbmdlci4gKioKKworICBJIGtvbWJpbmFzam9uZW4gbWVkIHNsZXR0ZW9wZXJhdG9yZW4gb2cgZW4gYmV2ZWdlbHNlIG5ldm50IG92ZW5mb3Igc2V0dGVyIGR1CisgIGlubiBhbnRhbGwgZsO4ciBiZXZlZ2Vsc2VuIGZvciDDpSBzbGV0dGUgbWVyOgorCSBkICBudW1tZXIgIGJldmVnZWxzZQorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgZGV0IGbDuHJzdGUgb3JkZXQgbWVkIFNUT1JFIEJPS1NUQVZFUiBww6UgbGluamVuIG1hcmtlcnQKKyAgICAgbWVkIC0tLT4uCisKKyAgMi4gU2tyaXYgIDJkdyAgZm9yIMOlIHNsZXR0ZSBkZSB0byBvcmRlbmUgbWVkIHN0b3JlIGJva3N0YXZlci4KKworICAzLiBSZXBldGVyIHN0ZWcgMSBvZyAyIG1lZCBmb3Jza2plbGxpbmcgYW50YWxsIGZvciDDpSBzbGV0dGUgZGUgZXR0ZXJmw7hsZ2VuZGUKKyAgICAgb3JkZW5lIHNvbSBoYXIgc3RvcmUgYm9rc3RhdmVyLgorCistLS0+IERlbm5lIEFCQyBERSBsaW5qZW4gRkdISSBKSyBMTU4gT1AgZXIgbsOlIFEgUlMgVFVWIGxpdHQgbWVyIGxlc2Jhci4KKworTUVSSzogRXQgYW50YWxsIG1lbGxvbSBvcGVyYXRvcmVuICBkICBvZyBiZXZlZ2Vsc2VuIHZpcmtlciBww6Ugc2FtbWUgbcOldGUgc29tIMOlCisgICAgICBicnVrZSBiZXZlZ2Vsc2VuIHV0ZW4gZW4gb3BlcmF0b3IuCisKK35+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+fgorCQkJTGVrc2pvbiAyLjY6IE9QRVJFUkUgUMOFIExJTkpFUgorCisKKwkJICoqIFRyeWtrICBkZCAgZm9yIMOlIHNsZXR0ZSBlbiBoZWwgbGluamUuICoqCisKKyAgUMOlIGdydW5uIGF2IGF0IHNsZXR0aW5nIGF2IGxpbmplciBlciBteWUgYnJ1a3QsIGZhbnQgdXR2aWtsZXJuZSBhdiBWaSB1dCBhdAorICBkZXQgdmlsIHbDpnJlIGxldHRlcmUgw6UgcmV0dCBvZyBzbGV0dCB0cnlra2UgdG8gZC1lciBmb3Igw6Ugc2xldHRlIGVuIGxpbmplLgorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgZGVuIGFuZHJlIGxpbmplbiBpIHZlcnNldCBuZWRlbmZvci4KKyAgMi4gVHJ5a2sgIGRkCSDDpSBzbGV0dGUgbGluamVuLgorICAzLiBGbHl0dCBkZXJldHRlciB0aWwgZGVuIGZqZXJkZSBsaW5qZW4uCisgIDQuIFRyeWtrICAyZGQgIGZvciDDpSBzbGV0dGUgdG8gbGluamVyLgorCistLS0+ICAxKSBSb3NlciBlciByw7hkZSwKKy0tLT4gIDIpIEdqw7hybWUgZXIgZ8O4eSwKKy0tLT4gIDMpIEZpb2xlciBlciBibMOlLAorLS0tPiAgNCkgSmVnIGhhciBlbiBiaWwsCistLS0+ICA1KSBLbG9ra2VyIHZpc2VyIHRpZGVuLAorLS0tPiAgNikgRHJ1ZXIgZXIgc8O4dGUKKy0tLT4gIDcpIE9nIGR1IGVyIGxpa2Vzw6UuCisKKworfn5+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+CisJCQlMZWtzam9uIDIuNzogQU5HUkUtS09NTUFORE9FTgorCisKKyAgKiogVHJ5a2sgIHUgIGZvciDDpSBhbmdyZSBzaXN0ZSBrb21tYW5kbywgIFUgIGZvciDDpSBmaWtzZSBlbiBoZWwgbGluamUuICoqCisKKyAgMS4gRmx5dHQgbWFya8O4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4gb2cgcGxhc3NlciBkZW4gcMOlIGRlbgorICAgICBmw7hyc3RlIGZlaWxlbi4KKyAgMi4gVHJ5a2sgIHggIGZvciDDpSBzbGV0dGUgZGV0IGbDuHJzdGUgdcO4bnNrZWRlIHRlZ25ldC4KKyAgMy4gVHJ5a2sgc8OlICB1ICBmb3Igw6UgYW5ncmUgZGVuIHNpc3RlIHV0ZsO4cnRlIGtvbW1hbmRvZW4uCisgIDQuIERlcmV0dGVyIG9yZG5lciBkdSBhbGxlIGZlaWxlbmUgcMOlIGxpbmplbmUgdmVkIMOlIGJydWtlIGtvbW1hbmRvZW4JeCAgLgorICA1LiBUcnlrayBuw6UgZW4gc3RvciAgVSAgZm9yIMOlIHNldHRlIGxpbmplbiB0aWxiYWtlIHRpbCBkZXQgZGVuIHZhcgorICAgICBvcmlnaW5hbHQuCisgIDYuIFRyeWtrICB1ICBub2VuIGdhbmdlciBmb3Igw6UgYW5ncmUJVSAgb2cgZm9yZWfDpWVuZGUga29tbWFuZG9lci4KKyAgNy4gRGVyZXR0ZXIgdHJ5a2tlciBkdSAgQ1RSTC1SICAoaG9sZCBDVFJMIG5lZGUgbWVucyBkdSB0cnlra2VyIFIpIG5vZW4KKyAgICAgZ2FuZ2VyIGZvciDDpSBnamVub3BwcmV0dGUga29tbWFuZG9lbmUgKG9tZ2rDuHJlIGFuZ3Jla29tbWFuZG9lbmUpLgorCistLS0+IFJSZXBhcmVyIGZlaWlsZW5lIHDDpcOlIGRlbm5lIGxpbm5uamVuIG9vZyBlcnNzc3RhdHQgZGVtIG1lZWQgYW5ncmUuCisKKyAgOC4gRGV0dGUgZXIgbWVnZXQgbnl0dGlnZSBrb21tYW5kb2VyLiBOw6Uga2FuIGR1IGfDpSB0aWwgb3Bwc3VtbWVyaW5nZW4gYXYKKyAgICAgbGVrc2pvbiAyLgorCisKK35+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+fgorCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiAyCisKKworICAxLiBGb3Igw6Ugc2xldHRlIGZyYSBtYXJrw7hyZW4gZnJhbSB0aWwgZGV0IG5lc3RlIG9yZGV0LCB0cnlrazogIGR3CisgIDIuIEZvciDDpSBzbGV0dGUgZnJhIG1hcmvDuHJlbiB0aWwgc2x1dHRlbiBhdiBlbiBsaW5qZSwgdHJ5a2s6CWQkCisgIDMuIEZvciDDpSBzbGV0dGUgZW4gaGVsIGxpbmplLCB0cnlrazoJZGQKKworICA0LiBGb3Igw6UgcmVwZXRlcmUgZW4gYmV2ZWdlbHNlLCBzZXR0IGV0IG51bW1lciBmb3JhbjogIDJ3CisgIDUuIEZvcm1hdGV0IGZvciBlbiBmb3JhbmRyaW5nc2tvbW1hbmRvIGVyOgorCSAgICAgICBvcGVyYXRvciAgW251bW1lcl0gIGJldmVnZWxzZQorICAgICBkZXI6CisgICAgICAgb3BlcmF0b3IgIC0gaHZhIHNvbSBza2FsIGdqw7hyZXMsIGYuZWtzLglkICBmb3Igw6Ugc2xldHRlCisgICAgICAgW251bW1lcl0gIC0gZXQgdmFsZ2ZyaXR0IGFudGFsbCBmb3Igw6UgcmVwZXRlcmUgYmV2ZWdlbHNlbgorICAgICAgIGJldmVnZWxzZSAtIGh2YSBrb21tYW5kb2VuIHNrYWwgb3BlcmVyZSBww6UsIGVrc2VtcGVsdmlzCXcgIChvcmQpLAorCQkgICAkICAodGlsIHNsdXR0ZW4gYXYgbGluamVuKSBvZyBzw6UgdmlkZXJlLgorCisgIDYuIEZvciDDpSBnw6UgdGlsIHN0YXJ0ZW4gYXYgZW4gbGluamUsIGJydWsgZW4gbnVsbDogIDAKKworICA3LiBGb3Igw6UgYW5ncmUgdGlkbGlnZXJlIGVuZHJpbmdlciwgc2tyaXY6CQl1ICAobGl0ZW4gdSkKKyAgICAgRm9yIMOlIGFuZ3JlIGFsbGUgZm9yYW5kcmluZ2VyIHDDpSBlbiBsaW5qZSwgc2tyaXY6CVUgIChzdG9yIFUpCisgICAgIEZvciDDpSBvbWdqw7hyZSBhbmdyaW5nZW4sIHRyeWtrOgkJCUNUUkwtUgorCit+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+fn4KKwkJICAgICAgTGVrc2pvbiAzLjE6IMKrTElNIElOTsK7LUtPTU1BTkRPRU4KKworCisgICAgKiogVHJ5a2sgIHAgIGZvciDDpSBsaW1lIGlubiB0aWRsaWdlcmUgc2xldHRldCB0ZWtzdCBldHRlciBtYXJrw7hyZW4gKioKKworICAxLiBGbHl0dCBtYXJrw7hyZW4gdGlsIGRlbiBmw7hyc3RlIGxpbmplbiBtZWQgLS0tPiBuZWRlbmZvci4KKworICAyLiBUcnlrayAgZGQJZm9yIMOlIHNsZXR0ZSBsaW5qZW4gb2cgbGFncmUgZGVuIGkgZXQgVmltLXJlZ2lzdGVyLgorCisgIDMuIEZseXR0IG1hcmvDuHJlbiB0aWwgYyktbGluamVuLCBPVkVSIHBvc2lzam9uZW4gbGluamVuIHNrYWwgc2V0dGVzIGlubi4KKworICA0LiBUcnlrayAgcCAgZm9yIMOlIGxlZ2dlIGxpbmplbiB1bmRlciBtYXJrw7hyZW4uCisKKyAgNS4gUmVwZXRlciBwdW5rdCAyIHRpbCA0IGhlbHQgdGlsIGxpbmplbmUgZXIgaSByaWt0aWcgcmVra2Vmw7hsZ2UuCisKKy0tLT4gZCkgS2FuIGR1IG9nc8OlIGzDpnJlPworLS0tPiBiKSBGaW9sZXIgZXIgYmzDpSwKKy0tLT4gYykgSW50ZWxsaWdlbnMgbcOlIGzDpnJlcywKKy0tLT4gYSkgUm9zZXIgZXIgcsO4ZGUsCisKKworCit+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+fn4KKwkJICAgICAgTGVrc2pvbiAzLjI6IMKrRVJTVEFUVMK7LUtPTU1BTkRPRU4KKworCisJICoqIFRyeWtrICByeCAgZm9yIMOlIGVyc3RhdHRlIHRlZ25ldCB1bmRlciBtYXJrw7hyZW4gbWVkIHguICoqCisKKyAgMS4gRmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gZsO4cnN0ZSBsaW5qZW4gbmVkZW5mb3IgbWVya2V0IC0tLT4uCisKKyAgMi4gRmx5dHQgbWFya8O4cmVuIHPDpSBkZW4gc3TDpXIgb3Bww6UgZGVuIGbDuHJzdGUgZmVpbGVuLgorCisgIDMuIFRyeWtrICByICBvZyBkZXJldHRlciB0ZWduZXQgc29tIHNrYWwgdsOmcmUgZGVyLgorCisgIDQuIFJlcGV0ZXIgcHVua3QgMiBvZyAzIHRpbCBkZW4gZsO4cnN0ZSBsaW5qZW4gZXIgbGlrIGRlbiBhbmRyZS4KKworLS0tPiBEYSBkZm5uZSBseW5qeG4gYmxlIHprcmV2ZXQsIHZhciBkZXQgbsO4ZW4gc29tIHRqeWtrZXQgZmVpdGUgdGFzdGVyIQorLS0tPiBEYSBkZW5uZSBsaW5qZW4gYmxlIHNrcmV2ZXQsIHZhciBkZXQgbm9lbiBzb20gdHJ5a2tldCBmZWlsZSB0YXN0ZXIhCisKKyAgNS4gR8OlIHZpZGVyZSB0aWwgbGVrc2pvbiAzLjIuCisKK01FUks6IEh1c2sgYXQgZHUgYsO4ciBsw6ZyZSB2ZWQgw6UgQlJVS0UsIGlra2UgcHVnZ2UuCisKKworCit+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+fn4KKwkJICAgICAgTGVrc2pvbiAzLjM6IMKrRk9SQU5EUkXCuy1PUEVSQVRPUkVOCisKKworCSAgICoqIEZvciDDpSBmb3JhbmRyZSB0aWwgc2x1dHRlbiBhdiBldCBvcmQsIHRyeWtrICBjZSAuICoqCisKKyAgMS4gRmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gZsO4cnN0ZSBsaW5qZW4gbmVkZW5mb3Igc29tIGVyIG1lcmtldCAtLS0+LgorCisgIDIuIFBsYXNzZXIgbWFya8O4cmVuIHDDpSAgdSAgaSDCq2x1Ymp3csK7LgorCisgIDMuIFRyeWtrICBjZQlvZyBkZXQga29ycmVrdGUgb3JkZXQgKGkgZGV0dGUgdGlsZmVsbGV0LCBza3JpdiDCq2luamVuwrspLgorCisgIDQuIFRyeWtrIDxFU0M+IG9nIGfDpSB0aWwgZGV0IG5lc3RlIHRlZ25ldCBzb20gc2thbCBmb3JhbmRyZXMuCisKKyAgNS4gUmVwZXRlciBwdW5rdCAzIG9nIDQgaGVsdCB0aWwgZGVuIGbDuHJzdGUgc2V0bmluZ2VuIGVyIGxpayBkZW4gYW5kcmUuCisKKy0tLT4gRGVubmUgbHViandyIGhhciBub2VuIHdnaCBzb20gbcOlIGZvcmt3w6VwIG1lZCDCq2ZvcsOma3pyeWFzwrsta29tbWFuZG9lbi4KKy0tLT4gRGVubmUgbGluamVuIGhhciBub2VuIG9yZCBzb20gbcOlIGZvcmFuZHJlcyBtZWQgwqtmb3JhbmRyZcK7LWtvbW1hbmRvZW4uCisKK1bDpnIgb3BwbWVya3NvbSBww6UgYXQgIGNlICBzbGV0dGVyIG9yZGV0IG9nIGfDpXIgaW5uIGkgaW5uc2V0dGluZ3Ntb2R1cy4KKworCisKK35+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+fgorCQlMZWtzam9uIDMuNDogRkxFUkUgRk9SQU5EUklOR0VSIFZFRCBCUlVLIEFWIGMKKworCisgKiogRm9yYW5kcmluZ3Nrb21tYW5kb2VuIGJsaXIgYnJ1a3QgbWVkIGRlIHNhbW1lIGJldmVnZWxzZXIgc29tIMKrc2xldHTCuy4gKioKKworICAxLiBGb3JhbmRyaW5nc29wZXJhdG9yZW4gZnVuZ2VyZXIgcMOlIHNhbW1lIG3DpXRlIHNvbSDCq3NsZXR0wrsuIEZvcm1hdGV0IGVyOgorCisJIGMgICAgW251bW1lcl0JIGJldmVnZWxzZQorCisgIDIuIEJldmVnZWxzZW5lIGVyIGRlIHNhbW1lLCBzb20gZm9yIGVrc2VtcGVsCXcgIChvcmQpIG9nICAkCShzbHV0dGVuIGF2IGVuCisgICAgIGxpbmplKS4KKworICAzLiBHw6UgdGlsIGRlbiBmw7hyc3RlIGxpbmplbiBuZWRlbmZvciBzb20gZXIgbWVya2V0IC0tLT4uCisKKyAgNC4gRmx5dHQgbWFya8O4cmVuIHRpbCBkZW4gZsO4cnN0ZSBmZWlsZW4uCisKKyAgNS4gU2tyaXYgIGMkCW9nIHNrcml2IHJlc3RlbiBhdiBsaW5qZW4gbGlrIGRlbiBhbmRyZSBvZyB0cnlrayA8RVNDPi4KKworLS0tPiBTbHV0dGVuIHDDpSBkZW5uZSBsaW5qZW4gdHJlbmdlciBsaXR0IGhqZWxwIGZvciDDpSBnasO4cmUgZGVuIGxpayBkZW4gbmVzdGUuCistLS0+IFNsdXR0ZW4gcMOlIGRlbm5lIGxpbmplbiB0cmVuZ2VyIMOlIGJsaSByZXR0ZXQgdmVkIGJydWsgYXYgYyQta29tbWFuZG9lbi4KKworTUVSSzogRHUga2FuIGJydWtlIHNsZXR0ZXRhc3RlbiBmb3Igw6UgcmV0dGUgZmVpbCBtZW5zIGR1IHNrcml2ZXIuCit+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+fn4KKwkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gMworCisKKyAgMS4gRm9yIMOlIGxlZ2dlIHRpbGJha2UgdGVrc3Qgc29tIG5ldHRvcHAgZXIgYmxpdHQgc2xldHRldCwgdHJ5a2sgIHAgIC4gRGV0dGUKKyAgICAgbGltZXIgaW5uIGRlbiBzbGV0dGVkZSB0ZWtzdGVuIEVUVEVSIG1hcmvDuHJlbiAoaHZpcyBlbiBsaW5qZSBibGUgc2xldHRldAorICAgICB2aWwgZGVuIGJsaSBsaW10IGlubiBww6UgbGluamVuIHVuZGVyIG1hcmvDuHJlbikuCisKKyAgMi4gRm9yIMOlIGVyc3RhdHRlIGV0IHRlZ24gdW5kZXIgbWFya8O4cmVuLCB0cnlrayAgciAgb2cgZGVyZXR0ZXIgdGVnbmV0IHNvbQorICAgICBkdSB2aWwgaGEgZGVyLgorCisgIDMuIEZvcmFuZHJpbmdzb3BlcmF0b3JlbiBsYXIgZGVnIGZvcmFuZHJlIGZyYSBtYXJrw7hyZW4gdGlsIGRpdCBiZXZlZ2Vsc2VuCisgICAgIHRhciBkZWcuIERldCB2aWwgc2ksIHNrcml2ICBjZSAgZm9yIMOlIGZvcmFuZHJlIGZyYSBtYXJrw7hyZW4gdGlsIHNsdXR0ZW4KKyAgICAgYXYgb3JkZXQsCWMkICBmb3Igw6UgZm9yYW5kcmUgdGlsIHNsdXR0ZW4gYXYgbGluamVuLgorCisgIDQuIEZvcm1hdGV0IGZvciDCq2ZvcmFuZHJlwrsgZXI6CisKKwkgYyAgIFtudW1tZXJdCWJldmVnZWxzZQorCitOw6Uga2FuIGR1IGfDpSB0aWwgbmVzdGUgbGVrc2pvbi4KKworCisKK35+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+fgorCSAgICAgTGVrc2pvbiA0LjE6IFBPU0lTSk9ORVJJTkcgQVYgTUFSS8OYUkVOIE9HIEZJTFNUQVRVUworCisJKiogVHJ5a2sgQ1RSTC1HIGZvciDDpSB2aXNlIHBvc2lzam9uZW4gaSBmaWxlbiBvZyBmaWxzdGF0dXNlbi4KKwkgICBUcnlrayAgRyAgZm9yIMOlIGfDpSB0aWwgZW4gc3Blc2lmaWtrIGxpbmplIGkgZmlsZW4uICoqCisKKyAgTWVyazogTGVzIGhlbGUgbGVrc2pvbmVuIGbDuHIgZHUgdXRmw7hyZXIgbm9lbiBhdiBwdW5rdGVuZSEKKworICAxLiBIb2xkIG5lZGUgQ3RybC10YXN0ZW4gb2cgdHJ5a2sgIGcJLiBWaSBrYWxsZXIgZGV0dGUgQ1RSTC1HLiBFbiBtZWxkaW5nCisgICAgIHZpbCBrb21tZSB0aWwgc3luZSBww6UgYnVubmVuIGF2IHNramVybWVuIG1lZCBmaWxuYXZuZXQgb2cgcG9zaXNqb25lbiBpCisgICAgIGZpbGVuLiBIdXNrIGxpbmplbnVtbWVyZXQgZm9yIGJydWsgaSBzdGVnIDMuCisKK01lcms6IER1IGthbiBzZSBtYXJrw7hycG9zaXNqb25lbiBpIG5lZGVyc3RlIGjDuHlyZSBoasO4cm5lIGF2IHNramVybWVuLiBEZXR0ZQorICAgICAgc2tqZXIgbsOlciDCq3J1bGVywrstdmFsZ2V0IGVyIHNhdHQgKGZvcmtsYXJ0IGkgbGVrc2pvbiA2KS4KKworICAyLiBUcnlrayAgRyAgZm9yIMOlIGfDpSB0aWwgYnVubmVuIGF2IGZpbGVuLgorICAgICBTa3JpdiAgZ2cJZm9yIMOlIGfDpSB0aWwgYmVneW5uZWxzZW4gYXYgZmlsZW4uCisKKyAgMy4gU2tyaXYgaW5uIGxpbmplbnVtbWVyZXQgZHUgdmFyIHDDpSBvZyBkZXJldHRlciAgRyAuIERldHRlIHZpbCBmw7hyZSBkZWcKKyAgICAgdGlsYmFrZSB0aWwgbGluamVuIGR1IHZhciBww6UgZGEgZHUgZsO4cnN0IHRyeWtrZXQgQ1RSTC1HLgorCisgIDQuIFV0ZsO4ciBzdGVnIDEgdGlsIDMgaHZpcyBkdSBmw7hsZXIgZGVnIHNpa2tlciBww6UgcHJvc2VkeXJlbi4KKworfn5+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+CisJCQkgTGVrc2pvbiA0LjI6IFPDmEtFS09NTUFORE9FTgorCisgICAgICAqKiBTa3JpdgkvICBldHRlcmZ1bGd0IGF2IGVuIHPDuGtlc3RyZW5nIHNvbSBkdSB2aWwgbGV0ZSBldHRlci4gKioKKworICAxLiBUcnlrayAgLyAgbsOlciBkdSBlciBpIG5vcm1hbG1vZHVzZW4uIExlZ2cgbWVya2UgdGlsIGF0IHNrcsOlc3RyZWtlbiBvZworICAgICBtYXJrw7hyZW4ga29tbWVyIHRpbCBzeW5lIHDDpSBidW5uZW4gYXYgc2tqZXJtZW4gaSBsaWtoZXQgbWVkCisgICAgIMKrOsK7LWtvbW1hbmRvZW5lLgorCisgIDIuIFNrcml2IMKrZmVlZWlpbMK7IG9nIHRyeWtrIDxFTlRFUj4uIERldHRlIGVyIHRla3N0ZW4gZHUgdmlsIGxldGUgZXR0ZXIuCisKKyAgMy4gRm9yIMOlIGZpbm5lIG5lc3RlIGZvcmVrb21zdCBhdiBzw7hrZXN0cmVuZ2VuLCB0cnlrayAgbiAuCisgICAgIEZvciDDpSBsZXRlIGV0dGVyIHNhbW1lIHPDuGtldGVrc3RlbiBpIG1vdHNhdHQgcmV0bmluZywgdHJ5a2sgIE4gLgorCisgIDQuIEZvciDDpSBsZXRlIGV0dGVyIGVuIHRla3N0IGJha292ZXIgaSBmaWxlbiwgYnJ1ayAgPyAgaXN0ZWRlbmZvciAgLwkuCisKKyAgNS4gRm9yIMOlIGfDpSB0aWxiYWtlIHRpbCBkZXIgZHUga29tIGZyYSwgdHJ5a2sgIENUUkwtTyAgKEhvbGQgQ3RybCBuZWRlIG1lbnMKKyAgICAgZHUgdHJ5a2tlciBib2tzdGF2ZW4gIG8gKS4gUmVwZXRlciBmb3Igw6UgZ8OlIGVuZGEgbGVuZ3JlIHRpbGJha2UuIENUUkwtSQorICAgICBnw6VyIGZyYW1vdmVyLgorCistLS0+IMKrZmVlZWlpbMK7IGVyIGlra2UgbcOldGVuIMOlIHNrcml2ZSDCq2ZlaWzCuyBww6UsIGZlZWVpaWwgZXIgaGVsdCBmZWlsLgorTWVyazogTsOlciBzw7hraW5nZW4gbsOlciBzbHV0dGVuIGF2IGZpbGVuLCB2aWwgZGVuIGZvcnRzZXR0ZSBmcmEgc3RhcnRlbiB1bm50YXR0CisgICAgICBodmlzIMKrd3JhcHNjYW7Cuy12YWxnZXQgZXIgcmVzYXR0Lgorfn5+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+CisJCSAgIExla3Nqb24gNC4zOiBGSU5OIFNBTVNWQVJFTkRFIFBBUkVOVEVTRVIKKworCisJICAqKiBUcnlrayAgJSAgZm9yIMOlIGZpbm5lIGVuIHNhbXN2YXJlbmRlICksIF0gZWxsZXIgfSAuICoqCisKKyAgMS4gUGxhc3NlciBtYXJrw7hyZW4gcMOlIGVuICgsIFsgZWxsZXIgeyBww6UgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+LgorCisgIDIuIFRyeWtrICAlICAuCisKKyAgMy4gTWFya8O4cmVuIHZpbCBnw6UgdGlsIGRlbiBzYW1zdmFyZW5kZSBwYXJlbnRlc2VuIGVsbGVyIGhha2VwYXJlbnRlc2VuLgorCisgIDQuIFRyeWtrICAlICBmb3Igw6UgZmx5dHRlIG1hcmvDuHJlbiB0aWwgZGVuIGFuZHJlIHNhbXN2YXJlbmRlIHBhcmVudGVzZW4uCisKKyAgNS4gRmx5dHQgbWFya8O4cmVuIHRpbCBlbiBhbm5lbiAoLCApLCBbLCBdLCB7IGVsbGVyIH0gb2cgc2UgaHZhICAlICBnasO4ci4KKworLS0tPiBEZXR0ZSAoIGVyIGVuIHRlc3RsaW5qZSBtZWQgKCwgWyBdIG9nIHsgfSBpIGRlbiApKS4KKworTWVyazogRGV0dGUgZXIgdmVsZGlnIG55dHRpZyB0aWwgZmVpbHPDuGtpbmcgaSBwcm9ncmFtbWVyIHNvbSBoYXIgdWJhbGFuc2VydAorICAgICAgYW50YWxsIHBhcmVudGVzZXIhCisKKworCit+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+fn4KKwkJICAgICAgIExla3Nqb24gNC40OiBFUlNUQVRULUtPTU1BTkRPRU4KKworCisJKiogU2tyaXYgIDpzL2dhbW1lbC9ueS9nICBmb3Igw6UgZXJzdGF0dGUgwqtnYW1tZWzCuyBtZWQgwqtuecK7LiAqKgorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgbGluamVuIG5lZGVuZm9yIHNvbSBlciBtZXJrZXQgbWVkIC0tLT4uCisKKyAgMi4gU2tyaXYgIDpzL2RlZW4vZGVuLyA8RU5URVI+ICAuIExlZ2cgbWVya2UgdGlsIGF0IGRlbm5lIGtvbW1hbmRvZW4gYmFyZQorICAgICBmb3JhbmRyZXIgZGVuIGbDuHJzdGUgZm9yZWtvbXN0ZW4gYXYgwqtkZWVuwrsgcMOlIGxpbmplbi4KKworICAzLiBTa3JpdiAgOnMvZGVlbi9kZW4vZyAuIE7DpXIgZy1mbGFnZ2V0IGxlZ2dlcyB0aWwsIGJldHlyIGRldHRlIGdsb2JhbAorICAgICBlcnN0YXRuaW5nIHDDpSBsaW5qZW4gb2cgZXJzdGF0dGVyIGFsbGUgZm9yZWtvbXN0ZXIgYXYgwqtkZWVuwrsgcMOlIGxpbmplbi4KKworLS0tPiBkZWVuIHNvbSBrYW4ga2FzdGUgZGVlbiB0eW5nc3RlIHN0ZWluZW4gbGVuZ3N0IGVyIGRlZW4gYmVzdGUKKworICA0LiBGb3Igw6UgZXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBhdiBlbiB0ZWtzdHN0cmVuZyBtZWxsb20gdG8gbGluamVyLAorICAgICBza3JpdiAgOiMsI3MvZ2FtbWVsL255L2cgIGRlciAjLCMgZXIgbGluamVudW1yZW5lIHDDpSBkZSB0byBsaW5qZW5lIGZvcgorCQkJICAgICAgIGxpbmplb21yw6VkZXQgZXJzdGF0bmluZ2VuIHNrYWwgZ2rDuHJlcy4KKyAgICAgU2tyaXYgIDolcy9nYW1tZWwvbnkvZyAgICBmb3Igw6UgZXJzdGF0dGUgdGVrc3QgaSBoZWxlIGZpbGVuLgorICAgICBTa3JpdiAgOiVzL2dhbW1lbC9ueS9nYyAgIGZvciDDpSBmaW5uZSBhbGxlIGZvcmVrb21zdGVyIGkgaGVsZSBmaWxlbiwgb2cKKwkJCSAgICAgICBkZXJldHRlciBzcMO4cnJlIG9tIHRla3N0ZW4gc2thbCBlcnN0YXR0ZXMgZWxsZXIKKwkJCSAgICAgICBpa2tlLgorfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDQKKworCisgIDEuIEN0cmwtRyB2aXNlciBuw6V2w6ZyZW5kZSBwb3Npc2pvbiBpIGZpbGVuIG9nIGZpbHN0YXR1c2VuLgorCSAgICAgRwlnw6VyIHRpbCBzbHV0dGVuIGF2IGZpbGVuLgorICAgICBudW1tZXIgIEcJZ8OlciB0aWwgZGV0IGxpbmplbnVtbWVyZXQuCisJICAgIGdnCWfDpXIgdGlsIGRlbiBmw7hyc3RlIGxpbmplbi4KKworICAyLiBTa3JpdiAgLyAgZXR0ZXJmdWxndCBhdiBlbiBzw7hrZXRla3N0IGZvciDDpSBsZXRlIEZSQU1PVkVSIGV0dGVyIHRla3N0ZW4uCisgICAgIFNrcml2ICA/ICBldHRlcmZ1bGd0IGF2IGVuIHPDuGtldGVrc3QgZm9yIMOlIGxldGUgQkFLT1ZFUiBldHRlciB0ZWtzdGVuLgorICAgICBFdHRlciBldCBzw7hrIGthbiBkdSB0cnlra2UgIG4gIGZvciDDpSBmaW5uZSBuZXN0ZSBmb3Jla29tc3QgaSBkZW4gc2FtbWUKKyAgICAgcmV0bmluZ2VuIGVsbGVyICBOICBmb3Igw6UgbGV0ZSBpIG1vdHNhdHQgcmV0bmluZy4KKyAgICAgQ1RSTC1PIHRhciBkZWcgdGlsYmFrZSB0aWwgZ2FtbGUgcG9zaXNqb25lciwgQ1RSTC1JIHRpbCBueWVyZSBwb3Npc2pvbmVyLgorCisgIDMuIFNrcml2ICAlICBuw6VyIG1hcmvDuHJlbiBzdMOlciBww6UgZW4gKCwgKSwgWywgXSwgeyBlbGxlciB9IGZvciDDpSBmaW5uZSBkZW4KKyAgICAgc29tIHNhbXN2YXJlci4KKworICA0LiBFcnN0YXR0ZSDCq2dhbW1lbMK7IG1lZCBmw7hyc3RlIMKrbnnCuyBww6UgZW4gbGluamU6ICA6cy9nYW1tZWwvbnkKKyAgICAgRXJzdGF0dGUgYWxsZSDCq2dhbW1lbMK7IG1lZCDCq255wrsgcMOlIGVuIGxpbmplOiAgICA6cy9nYW1tZWwvbnkvZworICAgICBFcnN0YXR0ZSB0ZWtzdCBtZWxsb20gdG8gbGluamVudW1yZToJICAgICA6Iywjcy9nYW1tZWwvbnkvZworICAgICBFcnN0YXR0ZSBhbGxlIGZvcmVrb21zdGVyIGkgZW4gZmlsOgkgICAgIDolcy9nYW1tZWwvbnkvZworICAgICBGb3Igw6UgZ29ka2plbm5lIGh2ZXIgZXJzdGF0bmluZywgbGVnZyB0aWwgwqtjwrs6ICA6JXMvZ2FtbWVsL255L2djCit+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+fn4KKwkgICAgICAgTGVrc2pvbiA1LjE6IEhWT1JEQU4gVVRGw5hSRSBFTiBFS1NURVJOIEtPTU1BTkRPCisKKworICAgICoqIFNrcml2ICA6ISAgZXR0ZXJmdWxndCBhdiBlbiBla3N0ZXJuIGtvbW1hbmRvIGZvciDDpSB1dGbDuHJlIGRlbm5lLiAqKgorCisgIDEuIFNrcml2IGRlbiB2ZWxramVudGUga29tbWFuZG9lbiAgOgkgZm9yIMOlIHBsYXNzZXJlIG1hcmvDuHJlbiBww6UgYnVubmVuIGF2CisgICAgIHNramVybWVuLiBEZXR0ZSBsYXIgZGVnIHNrcml2ZSBlbiBrb21tYW5kb2xpbmpla29tbWFuZG8uCisKKyAgMi4gTsOlIGthbiBkdSBza3JpdmUgdGVnbmV0ICAhICAuIERldHRlIGxhciBkZWcgdXRmw7hyZSBlbiBodmlsa2VuIHNvbSBoZWxzdAorICAgICBla3N0ZXJuIGtvbW1hbmRvLgorCisgIDMuIFNvbSBldCBla3NlbXBlbCwgc2tyaXYgIGxzICBldHRlciB1dHJvcHN0ZWduZXQgb2cgdHJ5a2sgPEVOVEVSPi4gRHUgdmlsCisgICAgIG7DpSBmw6UgZW4gbGlzdGUgb3ZlciBmaWxlbmUgaSBrYXRhbG9nZW4sIGFra3VyYXQgc29tIG9tIGR1IGhhZGRlIGtqw7hydAorICAgICBrb21tYW5kb2VuIGRpcmVrdGUgZnJhIGtvbW1hbmRvbGluamVuIGkgc2thbGxldC4gRWxsZXIgYnJ1ayAgOiFkaXIgIGh2aXMKKyAgICAgwqtsc8K7IGlra2Ugdmlya2VyLgorCitNRVJLOiBEZXQgZXIgbXVsaWcgw6Uga2rDuHJlIGFsbGUgZWtzdGVybmUga29tbWFuZG9lciBww6UgZGVubmUgbcOldGVuLCBvZ3PDpSBtZWQKKyAgICAgIHBhcmFtZXRlcmUuCisKK01FUks6IEFsbGUgwqs6wrsta29tbWFuZG9lciBtw6UgYXZzbHV0dGVzIG1lZCA8RU5URVI+LiBGcmEgZGV0dGUgcHVua3RldCBlciBkZXQKKyAgICAgIGlra2UgYWxsdGlkIHZpIG5ldm5lciBkZXQuCisKK35+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+fgorCQkgICAgIExla3Nqb24gNS4yOiBNRVIgT00gTEFHUklORyBBViBGSUxFUgorCisKKyAgICAgICoqIEZvciDDpSBsYWdyZSBlbmRyaW5nZW5lIGdqb3J0IGkgZW4gdGVrc3QsIHNrcml2ICA6dyBGSUxOQVZOLiAqKgorCisgIDEuIFNrcml2ICA6IWRpciAgZWxsZXIgIDohbHMJZm9yIMOlIGbDpSBlbiBsaXN0ZSBvdmVyIGZpbGVuZSBpIGthdGFsb2dlbi4gRHUKKyAgICAgdmV0IGFsbGVyZWRlIGF0IGR1IG3DpSB0cnlra2UgPEVOVEVSPiBldHRlciBkZXR0ZS4KKworICAyLiBWZWxnIGV0IGZpbG5hdm4gcMOlIGVuIGZpbCBzb20gaWtrZSBmaW5uZXMsIHNvbSBmb3IgZWtzZW1wZWwgIFRFU1QgLgorCisgIDMuIFNrcml2ICA6dyBURVNUICAoZGVyIFRFU1QgZXIgZmlsbmF2bmV0IGR1IHZlbGdlcikuCisKKyAgNC4gRGV0dGUgbGFncmVyIGhlbGUgZmlsZW4gKGRlbm5lIGlubmbDuHJpbmdlbikgdW5kZXIgbmF2bmV0IFRFU1QgLiBGb3Igw6UKKyAgICAgc2pla2tlIGRldHRlLCBza3JpdiAgOiFkaXIgIGVsbGVyCTohbHMgIGlnamVuIGZvciDDpSBzZSBpbm5ob2xkZXQgYXYKKyAgICAga2F0YWxvZ2VuLgorCitNZXJrOiBIdmlzIGR1IG7DpSBoYWRkZSBhdnNsdXR0ZXQgVmltIG9nIHN0YXJ0ZXQgcMOlIG55dHQgaWdqZW4gbWVkIMKrdmltIFRFU1TCuywKKyAgICAgIHZpbGxlIGZpbGVuIHbDpnJ0IGVuIGVrc2FrdCBrb3BpIGF2IGlubmbDuHJpbmdlbiBkYSBkdSBsYWdyZXQgZGVuLgorCisgIDUuIEZqZXJuIGZpbGVuIHZlZCDDpSBza3JpdmUgIDohcm0gVEVTVCAgaHZpcyBkdSBlciBww6UgZXQgVW5peC1saWduZW5kZQorICAgICBvcGVyYXRpdnN5c3RlbSwgZWxsZXIgIDohZGVsIFRFU1QJaHZpcyBkdSBicnVrZXIgTVMtRE9TLgorCit+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+fn4KKwkJICAgTGVrc2pvbiA1LjM6IFZFTEdFIFRFS1NUIFNPTSBTS0FMIExBR1JFUworCisKKyAgICAgKiogRm9yIMOlIGxhZ3JlIGVuIGRlbCBhdiBlbiBmaWwsIHNrcml2ICB2CWJldmVnZWxzZSAgOncgRklMTkFWTiAqKgorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgZGVubmUgbGluamVuLgorCisgIDIuIFRyeWtrICB2ICBvZyBmbHl0dCBtYXJrw7hyZW4gdGlsIGRldCBmZW10ZSBlbGVtZW50ZXQgbmVkZW5mb3IuIExlZ2cgbWVya2UKKyAgICAgdGlsIGF0IHRla3N0ZW4gYmxpciBtYXJrZXJ0LgorCisgIDMuIFRyeWtrICA6ICAoa29sb24pLiBQw6UgYnVubmVuIGF2IHNramVybWVuIHZpbCAgOic8LCc+ICBrb21tZSB0aWwgc3luZS4KKworICA0LiBUcnlrayAgdyBURVNUICAsIGRlciBURVNUIGVyIGV0IGZpbG5hdm4gc29tIGlra2UgZmlubmVzIGVuZGEuIEtvbnRyb2xsZXIKKyAgICAgYXQgZHUgc2VyCTonPCwnPncgVEVTVCAgZsO4ciBkdSB0cnlra2VyIEVudGVyLgorCisgIDUuIFZpbSB2aWwgc2tyaXZlIGRlIHZhbGd0ZSBsaW5qZW5lIHRpbCBmaWxlbiBURVNULiBCcnVrICA6IWRpciAgZWxsZXIgICFscworICAgICBmb3Igw6Ugc2UgZGVuLiBJa2tlIHNsZXR0IGRlbiBlbmRhISBWaSB2aWwgYnJ1a2UgZGVuIGkgbmVzdGUgbGVrc2pvbi4KKworTUVSSzogVmVkIMOlIHRyeWtrZSAgdiAgc3RhcnRlcyB2aXN1ZWx0IHZhbGcuIER1IGthbiBmbHl0dGUgbWFya8O4cmVuIHJ1bmR0IGZvcgorICAgICAgw6UgZ2rDuHJlIGRldCB2YWxndGUgb21yw6VkZXQgc3TDuHJyZSBlbGxlciBtaW5kcmUuIERlcmV0dGVyIGthbiBkdSBicnVrZSBlbgorICAgICAgb3BlcmF0b3IgZm9yIMOlIGdqw7hyZSBub2UgbWVkIHRla3N0ZW4uIEZvciBla3NlbXBlbCBzbGV0dGVyICBkICB0ZWtzdGVuLgorCit+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+fn4KKwkJTGVrc2pvbiA1LjQ6IEhFTlRJTkcgT0cgU0FNTUVOU0zDhUlORyBBViBGSUxFUgorCisKKyAqKiBGb3Igw6UgbGVzZSBpbm4gZW4gYW5uZW4gZmlsIGlubiBpIG7DpXbDpnJlbmRlIGJ1ZmZlciwgc2tyaXYgIDpyIEZJTE5BVk4gICoqCisKKyAgMS4gUGxhc3NlciBtYXJrw7hyZW4gbGlrZSBvdmVyIGRlbm5lIGxpbmplbi4KKworTUVSSzogRXR0ZXIgw6UgaGEgdXRmw7hydCBzdGVnIDIgdmlsIGR1IHNlIHRla3N0ZW4gZnJhIGxla3Nqb24gNS4zLiBHw6UgZGVyZXR0ZXIKKyAgICAgIE5FRCBmb3Igw6Ugc2UgZGVubmUgbGVrc2pvbmVuIGlnamVuLgorCisgIDIuIEhlbnQgVEVTVC1maWxlbiB2ZWQgw6UgYnJ1a2Uga29tbWFuZG9lbiAgOnIgVEVTVCAgZGVyIFRFU1QgZXIgbmF2bmV0IHDDpQorICAgICBmaWxlbiBkdSBicnVrdGUuIEZpbGVuIGR1IGhlbnRlciBibGlyIHBsYXNzZXJ0IG5lZGVuZm9yIG1hcmvDuHJsaW5qZW4uCisKKyAgMy4gRm9yIMOlIHNqZWtrZSBhdCBmaWxlbiBibGUgaGVudGV0LCBnw6UgdGlsYmFrZSBvZyBzZSBhdCBkZXQgZXIgdG8ga29waWVyIGF2CisgICAgIGxla3Nqb24gNS4zLCBvcmlnaW5hbGVuIG9nIGRlbm5lIHZlcnNqb25lbi4KKworTUVSSzogRHUga2FuIG9nc8OlIGxlc2UgdXRkYXRhZW5lIGF2IGVuIGVrc3Rlcm4ga29tbWFuZG8uIEZvciBla3NlbXBlbCwJOnIgIWxzCisgICAgICBsZXNlciB1dGRhdGFlbmUgYXYgbHMta29tbWFuZG9lbiBvZyBsZWdnZXIgZGVtIG5lZGVuZm9yIG1hcmvDuHJlbi4KKworCisKKworfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDUKKworCisgIDEuICA6IWtvbW1hbmRvICB1dGbDuHJlciBlbiBla3N0ZXJuIGtvbW1hbmRpby4KKworICAgICAgTm9lbiBueXR0aWdlIGVrc2VtcGxlciBlcjoKKwkgKE1TLURPUykJICAoVW5peCkKKwkgIDohZGlyCQkgICA6IWxzCQkgIC0gTGlzdCBmaWxlbmUgaSBrYXRhbG9nZW4uCisJICA6IWRlbCBGSUxOQVZOICAgIDohcm0gRklMTkFWTiAgIC0gU2xldHQgZmlsZW4gRklMTkFWTi4KKworICAyLiAgOncgRklMTkFWTiAgc2tyaXZlciBkZW4gbsOldsOmcmVuZGUgVmltLWZpbGVuIGRpc2tlbiBtZWQgbmF2bmV0IEZJTE5BVk4gLgorCisgIDMuICB2ICBiZXZlZ2Vsc2UgIDp3IEZJTE5BVk4JbGFncmVyIGRlIHZpc3VlbHQgdmFsZ3RlIGxpbmplbmUgdGlsIGZpbGVuCisgICAgIEZJTE5BVk4uCisKKyAgNC4gIDpyIEZJTE5BVk4gIGhlbnRlciBmaWxlbiBGSUxOQVZOIG9nIGxlZ2dlciBkZW4gaW5uIG5lZGVuZm9yIG1hcmvDuHJlbi4KKworICA1LiAgOnIgIWRpciAgbGVzZXIgdXRkYXRhZW5lIGZyYSDCq2RpcsK7LWtvbW1hbmRvZW4gb2cgbGVnZ2VyIGRlbSBuZWRlbmZvcgorICAgICBtYXJrw7hycG9zaXNqb25lbi4KKworCisKK35+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+fgorCQkgICAgIExla3Nqb24gNi4xOiDCq8OFUE5FIExJTkpFwrstS09NTUFORE9FTgorCisKKyAgICAqKiBTa3JpdiAgbyAgZm9yIMOlIMKrw6VwbmUgb3BwwrsgZm9yIGVuIG55IGxpbmplIGV0dGVyIG1hcmvDuHJlbiBvZyBnw6UgdGlsCisgICAgICAgaW5uc2V0dGluZ3Ntb2R1cyAqKgorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgbGluamVuIG5lZGVuZm9yIG1lcmtldCAtLS0+LgorCisgIDIuIFNrcml2ICBvICAobGl0ZW4gbykgZm9yIMOlIMOlcG5lIG9wcCBlbiBsaW5qZSBORURFTkZPUiBtYXJrw7hyZW4gb2cgZ8OlIGlubiBpCisgICAgIGlubnNldHRpbmdzbW9kdXMuCisKKyAgMy4gU2tyaXYgbGl0dCB0ZWtzdCBvZyB0cnlrayA8RVNDPiBmb3Igw6UgZ8OlIHV0IGF2IGlubnNldHRpbmdzbW9kdXNlbi4KKworLS0tPiBFdHRlciBhdCAgbyAgZXIgc2tyZXZldCBibGlyIG1hcmvDuHJlbiBwbGFzc2VydCBww6UgZGVuIHRvbW1lIGxpbmplbi4KKworICA0LiBGb3Igw6Ugw6VwbmUgZW4gbnkgbGluamUgT1ZFUiBtYXJrw7hyZW4sIHRyeWtrIHJldHQgb2cgc2xldHQgZW4gc3RvcglPCisgICAgIGlzdGVkZW5mb3IgZW4gbGl0ZW4gIG8gLiBQcsO4diBkZXR0ZSBww6UgbGluamVuIG5lZGVuZm9yLgorCistLS0+IExhZyBueSBsaW5qZSBvdmVyIGRlbm5lIHZlZCDDpSB0cnlra2UgTyBtZW5zIG1hcmvDuHJlbiBlciBww6UgZGVubmUgbGluamVuLgorCisKKworfn5+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+CisJCSAgICAgIExla3Nqb24gNi4yOiDCq0xFR0cgVElMwrstS09NTUFORE9FTgorCisKKwkgICAgKiogU2tyaXYgIGEgIGZvciDDpSBsZWdnZSB0aWwgdGVrc3QgRVRURVIgbWFya8O4cmVuLiAqKgorCisgIDEuIEZseXR0IG1hcmvDuHJlbiB0aWwgc3RhcnRlbiBhdiBsaW5qZW4gbWVya2V0IC0tLT4gbmVkZW5mb3IuCisKKyAgMi4gVHJ5a2sgIGUgIHRpbCBtYXJrw7hyZW4gZXIgcMOlIHNsdXR0ZW4gYXYgwqtsacK7LgorCisgIDMuIFRyeWtrICBhICAobGl0ZW4gYSkgZm9yIMOlIGxlZ2dlIHRpbCB0ZWtzdCBFVFRFUiBtYXJrw7hyZW4uCisKKyAgNC4gRnVsbGbDuHIgb3JkZXQgc8Olbm4gc29tIHDDpSBsaW5qZW4gbmVkZW5mb3IuIFRyeWtrIDxFU0M+IGZvciDDpSBnw6UgdXQgYXYKKyAgICAgaW5uc2V0dGluZ3Ntb2R1c2VuLgorCisgIDUuIEJydWsgIGUgIGZvciDDpSBnw6UgdGlsIGRldCBuZXN0ZSB1ZnVsbHN0ZW5kaWdlIG9yZGV0IG9nIHJlcGV0ZXIgc3RlZyAzIG9nCisgICAgIDQuCisKKy0tLT4gRGVubmUgbGkgbGFyIGRlZyDDuHZlIHDDpSDDpSBsZWcgdGlsIHRlayBww6UgZW4gbGluamUuCistLS0+IERlbm5lIGxpbmplbiBsYXIgZGVnIMO4dmUgcMOlIMOlIGxlZ2dlIHRpbCB0ZWtzdCBww6UgZW4gbGluamUuCisKK01lcms6IGEsIGkgb2cgQSBnw6VyIGFsbGUgdGlsIGRlbiBzYW1tZSBpbm5zZXR0aW5nc21vZHVzZW4sIGRlbiBlbmVzdGUKKyAgICAgIGZvcnNramVsbGVuIGVyIGh2b3IgdGVnbmVuZSBibGlyIHNhdHQgaW5uLgorfn5+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+CisJCSAgIExla3Nqb24gNi4zOiBFTiBBTk5FTiBNw4VURSDDhSBFUlNUQVRURSBQw4UKKworCisJICAgKiogU2tyaXYgZW4gc3RvciAgUglmb3Igw6UgZXJzdGF0dGUgbWVyIGVubiBldHQgdGVnbi4gKioKKworICAxLiBGbHl0dCBtYXJrw7hyZW4gdGlsIGRlbiBmw7hyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgLS0tPi4gRmx5dHQgbWFya8O4cmVuCisgICAgIHRpbCBiZWd5bm5lbHNlbiBhdiBkZW4gZsO4cnN0ZSDCq3h4eMK7LWVuLgorCisgIDIuIFRyeWtrICBSICBvZyBza3JpdiBpbm4gdGFsbGV0IHNvbSBzdMOlciBuZWRlbmZvciBww6UgZGVuIGFuZHJlIGxpbmplbiBzw6UKKyAgICAgZGV0IGVyc3RhdHRlciB4eHguCisKKyAgMy4gVHJ5a2sgPEVTQz4gZm9yIMOlIGfDpSB1dCBhdiBlcnN0YXRuaW5nc21vZHVzZW4uIExlZ2cgbWVya2UgdGlsIGF0IHJlc3RlbgorICAgICBhdiBsaW5qZW4gZm9yYmxpciB1Zm9yYW5kcmV0LgorCisgIDQuIFJlcGV0ZXIgc3RlZ2VuZSBmb3Igw6UgZXJzdGF0dGUgZGVuIGdqZW52w6ZyZW5kZSB4eHguCisKKy0tLT4gVmVkIMOlIGxlZ2dlIDEyMyB0aWwgeHh4IGbDpXIgdmkgeHh4LgorLS0tPiBWZWQgw6UgbGVnZ2UgMTIzIHRpbCA0NTYgZsOlciB2aSA1NzkuCisKK01FUks6IEVyc3RhdG5pbmdzbW9kdXMgZXIgbGlrIGluc2V0dGluZ3Ntb2R1cywgbWVuIGh2ZXJ0IHRlZ24gc29tIHNrcml2ZXMKKyAgICAgIGVyc3RhdHRlciBldCBla3Npc3RlcmVuZGUgdGVnbi4KKworfn5+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+CisJCSAgICBMZWtzam9uIDYuNDogS09QSUVSRSBPRyBMSU1FIElOTiBURUtTVAorCisKKyAgICAqKiBCcnVrIHktb3BlcmF0b3JlbiBmb3Igw6Uga29waWVyZSB0ZWtzdCBvZyAgcCAgZm9yIMOlIGxpbWUgZGVuIGlubiAqKgorCisgIDEuIEfDpSB0aWwgbGluamVuIG1lcmtldCAtLS0+IG5lZGVuZm9yIG9nIHBsYXNzZXIgbWFya8O4cmVuIGV0dGVyIMKrYSnCuy4KKworICAyLiBHw6UgaW5uIGkgdmlzdWVsbCBtb2R1cyBtZWQgIHYgIG9nIGZseXR0IG1hcmvDuHJlbiB0aWwgbGlrZSBmw7hyIMKrZsO4cnN0ZcK7LgorCisgIDMuIFRyeWtrICB5ICBmb3Igw6Uga29waWVyZSAoZW5nZWxzazogwqt5YW5rwrspIGRlbiB1dGhldmVkZSB0ZWtzdGVuLgorCisgIDQuIEZseXR0IG1hcmvDuHJlbiB0aWwgc2x1dHRlbiBhdiBkZW4gbmVzdGUgbGluamVuOiAgaiQKKworICA1LiBUcnlrayAgcCAgZm9yIMOlIGxpbWUgaW5uIHRla3N0ZW4uIFRyeWtrIGRlcmV0dGVyOglhIGFuZHJlIDxFU0M+IC4KKworICA2LiBCcnVrIHZpc3VlbGwgbW9kdXMgZm9yIMOlIHZlbGdlIMKrIHZhbGdldC7Cuywga29waWVyIGRldCBtZWQJeSAsIGfDpSB0aWwKKyAgICAgc2x1dHRlbiBhdiBkZW4gbmVzdGUgbGluamVuIG1lZCAgaiQgIG9nIGxlZ2cgaW5uIHRla3N0ZW4gZGVyIG1lZCAgcCAuCisKKy0tLT4gYSkgRGV0dGUgZXIgZGV0IGbDuHJzdGUgdmFsZ2V0LgorICAgICBiKQorCitNZXJrOiBEdSBrYW4gb2dzw6UgYnJ1a2UgIHkgIHNvbSBlbiBvcGVyYXRvcjsgIHl3ICBrb3BpZXJlciBldHQgb3JkLgorfn5+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+CisJCQkgICAgTGVrc2pvbiA2LjU6IFNFVFQgVkFMRworCisKKyAgKiogU2V0dCBldCB2YWxnIHPDpSBzw7hrIGVsbGVyIGVyc3RhdG5pbmcgaWdub3JlcmVyIHN0b3JlL3Ntw6UgYm9rc3RhdmVyLiAqKgorCisgIDEuIExldCBldHRlciDCq2lnbm9yZcK7IHZlZCDDpSBza3JpdmU6ICAvaWdub3JlIDxFTlRFUj4KKyAgICAgUmVwZXRlciBmbGVyZSBnYW5nZXIgdmVkIMOlIHRyeWtrZQluIC4KKworICAyLiBTZXR0IMKraWPCuy12YWxnZXQgKElnbm9yZSBDYXNlKSB2ZWQgw6Ugc2tyaXZlOiAgOnNldCBpYworCisgIDMuIFPDuGsgZXR0ZXIgwqtpZ25vcmXCuyBpZ2plbiB2ZWQgw6UgdHJ5a2tlICBuIC4KKyAgICAgTGVnZyBtZXJrZSB0aWwgYXQgYsOlZGUgwqtJZ25vcmXCuyBvZyDCq0lHTk9SRcK7IGJsaXIgZnVubmV0LgorCisgIDQuIFNldHQgwqtobHNlYXJjaMK7LSBvZyDCq2luY3NlYXJjaMK7LXZhbGdlbmU6ICA6c2V0IGhscyBpcworCisgIDUuIFNrcml2IHPDuGtla29tbWFuZG9lbiBpZ2plbiBvZyBzZSBodmEgc29tIHNramVyOiAgL2lnbm9yZSA8RU5URVI+CisKKyAgNi4gRm9yIMOlIHNsw6UgYXYgaWdub3JlcmluZyBhdiBzdG9yZS9zbcOlIGJva3N0YXZlciwgc2tyaXY6ICA6c2V0IG5vaWMKKworTWVyazogRm9yIMOlIGZqZXJuZSB1dGhldmluZ2VuIGF2IHRyZWZmLCBza3JpdjoJOm5vaGxzZWFyY2gKK01lcms6IEh2aXMgZHUgdmlsIGlnbm9yZXJlIHN0b3JlL3Ntw6UgYm9rc3RhdmVyIGZvciBrdW4gZW4gc8O4a2Vrb21tYW5kbywgYnJ1aworICAgICAgXGMgIGkgdXR0cnlra2V0OgkvaWdub3JlXGMgPEVOVEVSPgorfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDYKKworICAxLiBUcnlrayAgbyAgZm9yIMOlIGxlZ2dlIHRpbCBlbiBsaW5qZSBORURFTkZPUiBtYXJrw7hyZW4gb2cgZ8OlIGlubiBpCisgICAgIGlubnNldHRpbmdzbW9kdXMuCisgICAgIFRyeWtrICBPICBmb3Igw6Ugw6VwbmUgZW4gbGluamUgT1ZFUiBtYXJrw7hyZW4uCisKKyAgMi4gU2tyaXYgIGEgIGZvciDDpSBzZXR0ZSBpbm4gdGVrc3QgRVRURVIgbWFya8O4cmVuLgorICAgICBTa3JpdiAgQSAgZm9yIMOlIHNldHRlIGlubiB0ZWtzdCBldHRlciBzbHV0dGVuIGF2IGxpbmplbi4KKworICAzLiBLb21tYW5kb2VuICBlICBnw6VyIHRpbCBzbHV0dGVuIGF2IGV0IG9yZC4KKworICA0LiBPcGVyYXRvcmVuICB5ICAowqt5YW5rwrspIGtvcGllcmVyIHRla3N0LCAgcCAgKMKrcGFzdGXCuykgbGltZXIgZGVuIGlubi4KKworICA1LiBWZWQgw6UgdHJ5a2tlICBSICBnw6VyIGR1IGlubiBpIGVyc3RhdG5pbmdzbW9kdXMgaGVsdCB0aWwgIDxFU0M+ICB0cnlra2VzLgorCisgIDYuIFNrcml2IMKrOnNldCB4eHjCuyBmb3Igw6Ugc2V0dGUgdmFsZ2V0IMKreHh4wrsuIE5vZW4gdmFsZyBlcjoKKwnCq2ljwrsgwqtpZ25vcmVjYXNlwrsJaWdub3JlciBzdG9yZS9zbcOlIGJva3N0YXZlciB1bmRlciBzw7hrCisJwqtpc8K7IMKraW5jc2VhcmNowrsJdmlzIGRlbHZpc2UgdHJlZmYgZm9yIGVuIHPDuGtldGVrc3QKKwnCq2hsc8K7IMKraGxzZWFyY2jCuwl1dGhldiBhbGxlIHPDuGtldHJlZmYKKworICA3LiBMZWdnIHRpbCDCq25vwrsgZm9yYW4gdmFsZ2V0IGZvciDDpSBzbMOlIGRldCBhdjogIDpzZXQgbm9pYworCit+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+fn4KKwkJCSAgICBMZWtzam9uIDcuMTogRsOFIEhKRUxQCisKKworCQkgICAqKiBCcnVrIGRldCBpbm5lYnlnZGUgaGplbHBlc3lzdGVtZXQuICoqCisKKyAgVmltIGhhciBldCBvbWZhdHRlbmRlIGlubmVieWdnZXQgaGplbHBlc3lzdGVtLiBGb3Igw6Ugc3RhcnRlIGRldCwgcHLDuHYgZW4gYXYKKyAgZGlzc2UgbcOldGVuZToKKyAgICAtIFRyeWtrIEhqZWxwLXRhc3RlbiAoaHZpcyBkdSBoYXIgZW4pCisgICAgLSBUcnlrayBGMS10YXN0ZW4gKGh2aXMgZHUgaGFyIGVuKQorICAgIC0gU2tyaXYgIDpoZWxwIDxFTlRFUj4KKworICBMZXMgdGVrc3RlbiBpIGhqZWxwZXZpbmR1ZXQgZm9yIMOlIGZpbm5lIHV0IGh2b3JkYW4gaGplbHBlbiB2aXJrZXIuCisgIFNrcml2ICBDVFJMLVcgQ1RSTC1XCWZvciDDpSBob3BwZSBmcmEgZXQgdmluZHUgdGlsIGV0IGFubmV0CisgIFNrcml2ICA6cSA8RU5URVI+CWZvciDDpSBsdWtrZSBoamVscGV2aW5kdWV0LgorCisgIER1IGthbiBmw6UgaGplbHAgZm9yIG9tdHJlbnQgYWxsZSB0ZW1hZXIgb20gVmltIHZlZCDDpSBza3JpdmUgZXQgcGFyYW1ldGVyIHRpbAorICDCqzpoZWxwwrsta29tbWFuZG9lbi4gUHLDuHYgZGlzc2UgKGlra2UgZ2xlbSDDpSB0cnlra2UgPEVOVEVSPik6CisKKyAgICA6aGVscCB3CisgICAgOmhlbHAgY19DVFJMLUQKKyAgICA6aGVscCBpbnNlcnQtaW5kZXgKKyAgICA6aGVscCB1c2VyLW1hbnVhbAorfn5+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+CisJCSAgICAgTGVrc2pvbiA3LjI6IExBRyBFVCBPUFBTVEFSVFNTS1JJUFQKKworCisJCQkqKiBTbMOlIHDDpSBmdW5rc2pvbmVyIGkgVmltICoqCisKKyAgVmltIGhhciBtYW5nZSBmbGVyZSBmdW5rc2pvbmVyIGVubiBWaSwgbWVuIGZsZXN0ZXBhcnRlbiBhdiBkZW0gZXIgc2zDpXR0IGF2CisgIHNvbSBzdGFuZGFyZC4gRm9yIMOlIGJlZ3lubmUgw6UgYnJ1a2UgZmxlcmUgZnVua3Nqb25lciBtw6UgZHUgbGFnZSBlbgorICDCq3ZpbXJjwrstZmlsLgorCisgIDEuIFN0YXJ0IHJlZGlnZXJpbmdlbiBhdiDCq3ZpbXJjwrstZmlsZW4uIERldHRlIGF2aGVuZ2VyIGF2IHN5c3RlbWV0IGRpdHQ6CisJOmUgfi8udmltcmMJICBmb3IgVW5peAorCTplICRWSU0vX3ZpbXJjCSAgZm9yIE1TIFdpbmRvd3MKKworICAyLiBMZXMgaW5uIGVrc2VtcGVsZmlsZW4gZm9yIMKrdmltcmPCuzoKKwk6ciAkVklNUlVOVElNRS92aW1yY19leGFtcGxlLnZpbQorCisgIDMuIExhZ3JlIGZpbGVuIG1lZDoKKwk6dworCisgIE5lc3RlIGdhbmcgZHUgc3RhcnRlciBWaW0gdmlsIGRlbiBicnVrZSBzeW50YWtzLXV0aGV2aW5nLiBEdSBrYW4gbGVnZ2UgdGlsCisgIGFsbGUgZGluZSBmb3JldHJ1a25lIG9wcHNldHQgaSBkZW5uZSDCq3ZpbXJjwrstZmlsZW4uCisgIEZvciBtZXIgaW5mb3JtYXNqb24sIHNrcml2ICA6aGVscCB2aW1yYy1pbnRybworfn5+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+CisJCQkgICBMZWtzam9uIDcuMzogRlVMTEbDmFJJTkcKKworCisJICAgICAgKiogS29tbWFuZG9saW5qZWZ1bGxmw7hyaW5nIG1lZCBDVFJMLUQgb2cgPFRBQj4gKioKKworICAxLiBWw6ZyIHNpa2tlciBww6UgYXQgVmltIGlra2UgZXIgaSBWaS1rb21wYXRpYmVsIG1vZHVzOiAgOnNldCBub2NwCisKKyAgMi4gU2UgaHZpbGtlIGZpbGVyIHNvbSBlciBpIGthdGFsb2dlbjogIDohbHMJZWxsZXIgIDohZGlyCisKKyAgMy4gU2tyaXYgc3RhcnRlbiBww6UgZW4ga29tbWFuZG86ICA6ZQorCisgIDQuIFRyeWtrICBDVFJMLUQgIG9nIFZpbSB2aWwgdmlzZSBlbiBsaXN0ZSBvdmVyIGtvbW1hbmRvZXIgc29tIHN0YXJ0ZXIgbWVkCisgICAgIMKrZcK7LgorCisgIDUuIFRyeWtrICA8VEFCPiAgb2cgVmltIHZpbCBmdWxsZsO4cmUga29tbWFuZG9uYXZuZXQgdGlsIMKrOmVkaXTCuy4KKworICA2LiBMZWdnIHRpbCBldCBtZWxsb21yb20gb2cgc3RhcnRlbiBww6UgZXQgZWtzaXN0ZXJlbmRlIGZpbG5hdm46ICA6ZWRpdCBGSUwKKworICA3LiBUcnlrayA8VEFCPi4gVmltIHZpbCBmdWxsZsO4cmUgbmF2bmV0IChodmlzIGRldCBlciB1bmlrdCkuCisKK01FUks6IEZ1bGxmw7hyaW5nIGZ1bmdlcmVyIGZvciBtYW5nZSBrb21tYW5kb2VyLiBQcsO4diB2ZWQgw6UgdHJ5a2tlIENUUkwtRCBvZworICAgICAgPFRBQj4uIERldCBlciBzcGVzaWVsdCBueXR0aWcgZm9yIGJydWsgc2FtbWVuIG1lZCAgOmhlbHAgLgorfn5+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+CisJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDcKKworCisgIDEuIFNrcml2ICA6aGVscCAgZWxsZXIgdHJ5a2sgPEYxPiBlbGxlciA8SGVscD4gZm9yIMOlIMOlcG5lIGV0IGhqZWxwZXZpbmR1LgorCisgIDIuIFNrcml2ICA6aGVscCBrb21tYW5kbyAgZm9yIMOlIGbDpSBoamVscCBvbSAga29tbWFuZG8gLgorCisgIDMuIFRyeWtrICBDVFJMLVcgQ1RSTC1XICBmb3Igw6UgaG9wcGUgdGlsIGV0IGFubmV0IHZpbmR1LgorCisgIDQuIFRyeWtrICA6cQlmb3Igw6UgbHVra2UgaGplbHBldmluZHVldC4KKworICA1LiBPcHByZXR0IGV0IHZpbXJjLW9wcHN0YXJ0c3NrcmlwdCBmb3Igw6UgbGFncmUgZmF2b3JpdHR2YWxnZW5lIGRpbmUuCisKKyAgNi4gTsOlciBkdSBza3JpdmVyIGVuIMKrOsK7LWtvbW1hbmRvLCB0cnlrayBDVFJMLUQgZm9yIMOlIHNlIG11bGlnZQorICAgICBmdWxsZsO4cmluZ2VyLiBUcnlrayA8VEFCPiBmb3Igw6UgYnJ1a2UgZW4gZnVsbGbDuHJpbmcuCisKKworCisKKworCisKK35+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+fgorCisgIEhlciBzbHV0dGVyIGlubmbDuHJpbmdlbiBpIFZpbS4gRGVuIHZhciBtZW50IHNvbSBlbiByYXNrIG92ZXJzaWt0IG92ZXIKKyAgZWRpdG9yZW4sIGFra3VyYXQgbm9rIHRpbCDDpSBsYSBkZWcgc2V0dGUgaSBnYW5nIG1lZCBlbmtlbCBicnVrLiBEZW4gZXIgcMOlCisgIGxhbmd0IG7DpnIga29tcGxldHQsIGRhIFZpbSBoYXIgbWFuZ2UgZmxlcmUga29tbWFuZG9lci4gTGVzIGJydWtzYW52aXNuaW5nZW4KKyAgdmVkIMOlIHNrcml2ZQk6aGVscCB1c2VyLW1hbnVhbCAgLgorCisgIEZvciB2aWRlcmUgbGVzaW5nIG9nIHN0dWRpZXIsIGthbiBkZW5uZSBib2tlbiBhbmJlZmFsZXM6CisgICAgICDCq1ZpbSAtIFZpIEltcHJvdmVkwrsgYXYgU3RldmUgT3VhbGxpbmUKKyAgICAgIFV0Z2l2ZXI6IE5ldyBSaWRlcnMKKyAgRGVuIGbDuHJzdGUgYm9rZW4gc29tIGVyIGZ1bGx0IG9nIGhlbHQgZGVkaXNlcnQgdGlsIFZpbS4gU3Blc2llbHQgbnl0dGlnIGZvcgorICBueWJlZ3lubmVyZS4gSW5uZWhvbGRlciBtYW5nZSBla3NlbXBsZXIgb2cgaWxsdXN0cmFzam9uZXIuCisgIFNlIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCisKKyAgRGVubmUgYm9rZW4gZXIgZWxkcmUgb2cgaGFuZGxlciBtZXIgb20gVmkgZW5uIFZpbSwgbWVuIGFuYmVmYWxlcyBvZ3PDpToKKyAgICAgIMKrTGVhcm5pbmcgdGhlIFZpIEVkaXRvcsK7IGF2IExpbmRhIExhbWIKKyAgICAgIFV0Z2l2ZXI6IE8nUmVpbGx5ICYgQXNzb2NpYXRlcyBJbmMuCisgIERldCBlciBlbiBnb2QgYm9rIGZvciDDpSBmw6Ugdml0ZSBvbXRyZW50IGh2YSBzb20gaGVsc3Qgb20gVmkuCisgIERlbiBzamV0dGUgdXRnYXZlbiBpbm5laG9sZGVyIG9nc8OlIGluZm9ybWFzam9uIG9tIFZpbS4KKworICBEZW5uZSBpbm5mw7hyaW5nZW4gZXIgc2tyZXZldCBhdiBNaWNoYWVsIEMuIFBpZXJjZSBvZyBSb2JlcnQgSy4gV2FyZSwKKyAgQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzIG1lZCBpZMOpZXIgYXYgQ2hhcmxlcyBTbWl0aCwgQ29sb3JhZG8gU3RhdGUKKyAgVW5pdmVyc2l0eS4gRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUgLgorCisgIE1vZGlmaXNlcnQgZm9yIFZpbSBhdiBCcmFtIE1vb2xlbmFhci4KKyAgT3ZlcnNhdHQgYXYgw5h5dmluZCBBLiBIb2xtLiBFLW1haWw6IHZpbXR1dG9yIF9BVF8gc3VuYmFzZS5vcmcKKyAgSWQ6IHR1dG9yLm5vIDQwNiAyMDA3LTAzLTE4IDIyOjQ4OjM2WiBzdW5ueQorCit+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+fn4KK3ZpbTogc2V0IHRzPTggOgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5wbCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwKaW5kZXggNGFlNTM1NS4uOTZhYTQ1YyAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5wbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnBsCkBAIC0yLDkgKzIsOSBAQAogPSAgICBXIGkgdCBhIGogICB3ICAgdCB1IHQgbyByIGkgYSBsIHUgICBWIEkgTSAtIGEgICAgICAtICAgIFdlcnNqYSAgMS43LiAgICAgPQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICAgIFZpbSB0byBwb3Tqv255IGVkeXRvciwga3TzcnkgcG9zaWFkYSB3aWVsZSBwb2xlY2XxLCB6Ynl0IGR1v28gYnkKKyAgICAgVmltIHRvIHBvdOq/bnkgZWR5dG9yLCBrdPNyeSBwb3NpYWRhIHdpZWxlIHBvbGVjZfEsIHpieXQgZHW/bywgYnkKICAgICAgd3lqYbZuaeYgamUgd3N6eXN0a2llIHcgdHltIHR1dG9yaWFsdS4gVGVuIHByemV3b2RuaWsgbWEgbmF1Y3p55gotICAgICBDaeogcG9zs3VnaXdh5iBzaeogd3lzdGFyY3pharFjbyB3aWVsb21hIGtvbWVuZGFtaSBiebYgbfNnsyCzYXR3bworICAgICBDaeogcG9zs3VnaXdh5iBzaeogd3lzdGFyY3pharFjbyB3aWVsb21hIGtvbWVuZGFtaSwgYnm2IG3zZ7Mgs2F0d28KICAgICAgdb95d2HmIFZpbWEgamFrbyBlZHl0b3JhIG9n82xuZWdvIHByemV6bmFjemVuaWEuCiAKICAgICAgQ3phcyBwb3RyemVibnkgbmEgdWtv8WN6ZW5pZSB0dXRvcmlhbGEgdG8gMjUgZG8gMzAgbWludXQgaSB6YWxlv3kKQEAgLTEzLDE0ICsxMywxNCBAQAogCSBVV0FHQToKIAkgUG9sZWNlbmlhIHd5a29ueXdhbmUgdyBjemFzaWUgbGVrY2ppIHptb2R5ZmlrdWqxIHRla3N0LiBacvNiCiAJIHdjemW2bmllaiBrb3Bp6iB0ZWdvIHBsaWt1IGRvIOZ3aWN6ZfEgKGpltmxpIHphY3qxs2W2IGtvbWVuZLEKLQkgInZpbXR1dG9yIiB0byBqdb8gcHJhY3VqZXN6IG5hIGtvcGlpKS4KKwkgInZpbXR1dG9yIiwgdG8ganW/IHByYWN1amVzeiBuYSBrb3BpaSkuCiAKLQkgUGFtaep0YWogv2UgcHJ6ZXdvZG5payB0ZW4gem9zdGGzIHphcHJvamVrdG93YW55IGRvIG5hdWtpIHBvcHJ6ZXoKLQkg5ndpY3plbmlhLiBPem5hY3phIHRvLCC/ZSBtdXNpc3ogd3lrb255d2HmIHBvbGVjZW5pYSBieSBuYXVjennmIHNp6iBpY2gKLQkgcHJhd2lks293by4gSmW2bGkgYupkemllc3ogamVkeW5pZSBjenl0YbMgdGVrc3Qgc3p5YmtvIHphcG9tbmlzeiB3aWVsZQorCSBQYW1p6nRhaiwgv2UgcHJ6ZXdvZG5payB0ZW4gem9zdGGzIHphcHJvamVrdG93YW55IGRvIG5hdWtpIHBvcHJ6ZXoKKwkg5ndpY3plbmlhLiBPem5hY3phIHRvLCC/ZSBtdXNpc3ogd3lrb255d2HmIHBvbGVjZW5pYSwgYnkgbmF1Y3p55iBzaeogaWNoCisJIHByYXdpZLNvd28uIEpltmxpIGLqZHppZXN6IGplZHluaWUgY3p5dGGzIHRla3N0LCBzenlia28gemFwb21uaXN6IHdpZWxlCiAJIHBvbGVjZfEhCiAKLSAgICAgVGVyYXogdXBld25paiBzaeosIL9lIG5pZSBtYXN6IHdjabZuaep0ZWdvIENhcHNMb2NrYSBpIHdjaXNrYWogIGoKKyAgICAgVGVyYXogdXBld25paiBzaeosIL9lIG5pZSBtYXN6IHdjabZuaep0ZWdvIENhcHMgTG9ja2EgaSB3Y2lza2FqICBqCiAgICAgIHRhayBks3VnbyBkb3Dza2kgTGVrY2phIDEuMS4gbmllIHd5cGWzbmkgY2Gza293aWNpZSBla3JhbnUuCiAKIH5+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+fgpAQCAtNDAsMjggKzQwLDI4IEBACiAKICAgMy4gVb95d2FqsWMgc3RyemGza2kgdyBk87MgcHJ6ZWpkvCBkbyBuYXN06nBuZWogbGVrY2ppLgogCi1Vd2FnYTogSmW2bGkgbmllIGplc3RltiBwZXdpZW4gY3plZ2+2IGNvIHdwaXNhs2W2LCB3Y2m2bmlqIDxFU0M+IGJ5IHdy82Np5iBkbworVXdhZ2E6IEpltmxpIG5pZSBqZXN0ZbYgcGV3aWVuIGN6ZWdvtiBjbyB3cGlzYbNltiwgd2Nptm5paiA8RVNDPiwgYnkgd3LzY2nmIGRvCiAgICAgICAgdHJ5YnUgTm9ybWFsLiBXdGVkeSBwb3d083J6IHBvbGVjZW5pZS4KIAogVXdhZ2E6IEtsYXdpc3plIGt1cnNvcmEgdGFrv2UgcG93aW5ueSBkemlhs2HmLCBhbGUgdb95d2FqsWMgIGhqa2wgIGLqZHppZXN6Ci0gICAgICAgdyBzdGFuaWUgcG9ydXN6YeYgc2nqIG8gd2llbGUgc3p5YmNpZWogamFrIHNp6iB0eWxrbyBwcnp5end5Y3phaXN6LgorICAgICAgIHcgc3RhbmllIHBvcnVzemHmIHNp6iBvIHdpZWxlIHN6eWJjaWVqLCBqYWsgc2nqIHR5bGtvIHByenl6d3ljemFpc3ouCiAgICAgICAgTmFwcmF3ZOohCiAKIH5+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+fgogCQkgICAgTGVrY2phIDEuMi46IFdZQ0hPRFpFTklFIFogVklNLWEKIAotICEhIFVXQUdBOiBQcnplZCB3eWtvbmFuaWVtIGpha2llZ29rb2x3aWVrIHBvbGVjZW5pYSBwcnplY3p5dGFqIGNhs7EgbGVrY2rqLiEhCisgISEgVVdBR0E6IFByemVkIHd5a29uYW5pZW0gamFraWVnb2tvbHdpZWsgcG9sZWNlbmlhIHByemVjenl0YWogY2GzsSBsZWtjauogISEKIAogICAxLiBXY2m2bmlqIDxFU0M+IChhYnkgdXBld25p5iBzaeosIL9lIGplc3RltiB3IHRyeWJpZSBOb3JtYWwpLgogICAyLiBXcGlzejoJCQk6cSE8RU5URVI+LgotICAgICBUbyBzcG93b2R1amUgd3lqtmNpZSB6IGVkeXRvcmEgUE9SWlVDQUqhQyB3c3plbGtpZSB6bWlhbnkgamFraWUKLSAgICAgemSxv3mzZbYgenJvYmnmLiBKZbZsaSBjaGNlc3ogemFwYW1p6nRh5iB6bWlhbnkgaSB3eWq25gorICAgICBUbyBzcG93b2R1amUgd3lqtmNpZSB6IGVkeXRvcmEgUE9SWlVDQUqhQyB3c3plbGtpZSB6bWlhbnksIGpha2llCisgICAgIHpksb95s2W2IHpyb2Jp5i4gSmW2bGkgY2hjZXN6IHphcGFtaep0YeYgem1pYW55IGkgd3lqtuYsCiAgICAgIHdwaXN6OgkJCTp3cTxFTlRFUj4KIAogICAzLiBLaWVkeSB3aWR6aXN6IHpuYWsgemFjaOp0eSBwb3ezb2tpIHdwaXN6IGtvbWVuZOosIL9lYnkgd3LzY2nmCiAgICAgIGRvIHR1dG9yaWFsYS4gQ3p5bGk6CXZpbXR1dG9yPEVOVEVSPgogCi0gIDQuIEpltmxpIGNoY2VzeiB6YXBhbWnqdGHmIHBvbGVjZW5pYSwgd3lrb25haiBrcm9raSAxLiBkbyAzLiBhYnkKKyAgNC4gSmW2bGkgY2hjZXN6IHphcGFtaep0YeYgcG9sZWNlbmlhLCB3eWtvbmFqIGtyb2tpIDEuIGRvIDMuLCBhYnkKICAgICAgd3lqtuYgaSB3cvNjaeYgZG8gZWR5dG9yYS4KIAogVVdBR0E6IDpxITxFTlRFUj4gcG9yenVjYSB3c3plbGtpZSB6bWlhbnkgamFraWUgenJvYmmzZbYuIFcgbmFzdOpwbnljaApAQCAtODUsNyArODUsNyBAQAogCiAtLS0+IEtrcm93YSBwcnJ6ZXNrb2N6ebNhIHBycnpleiBrc2lp6r95Y2MuCiAKLSAgNS4gVGVyYXoga2llZHkgemRhbmllIGplc3QgcG9wcmF3aW9uZSBwcnplamS8IGRvIExla2NqaSAxLjQuCisgIDUuIFRlcmF6LCBraWVkeSB6ZGFuaWUgamVzdCBwb3ByYXdpb25lLCBwcnplamS8IGRvIExla2NqaSAxLjQuCiAKIFVXQUdBOiBVY3ogc2nqIHByemV6IOZ3aWN6ZW5pZSwgbmllIHdrdXdhbmllLgogCkBAIC0xMDEsMTggKzEwMSwxOCBAQAogCiAgIDEuIFByemVuaWW2IGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKLSAgMi4gQWJ5IHBvcHJhd2nmIHBpZXJ3c3p5IHdpZXJzeiwgdXN0YXcga3Vyc29yIG5hIHBpZXJ3c3p5bSB6bmFrdSBQTyB0eW0KKyAgMi4gQWJ5IHBvcHJhd2nmIHBpZXJ3c3p5IHdpZXJzeiwgdXN0YXcga3Vyc29yIG5hIHBpZXJ3c3p5bSB6bmFrdSBQTyB0eW0sCiAgICAgIGdkemllIHRla3N0IG1hIGJ55iB3c3Rhd2lvbnkuCiAKICAgMy4gV2Nptm5paiAgaSAgYSBuYXN06nBuaWUgd3Bpc3oga29uaWVjem5lIHBvcHJhd2tpLgogCi0gIDQuIFBvIHBvcHJhd2llbml1IGKz6mR1IHdjabZuaWogPEVTQz4gYnkgd3LzY2nmIGRvIHRyeWJ1IE5vcm1hbC4KLSAgICAgUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuIGFieSBwb3ByYXdp5iBjYbNlIHpkYW5pZS4KKyAgNC4gUG8gcG9wcmF3aWVuaXUgYrPqZHUgd2Nptm5paiA8RVNDPiwgYnkgd3LzY2nmIGRvIHRyeWJ1IE5vcm1hbC4KKyAgICAgUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuLCBhYnkgcG9wcmF3aeYgY2GzZSB6ZGFuaWUuCiAKIC0tLT4gVyB0ZWogYnJramUgdHJvY2jqIC4KIC0tLT4gVyB0ZWogbGluaWkgYnJha3VqZSB0cm9jaOogdGVrc3R1LgogCi0gIDUuIEtpZWR5IGN6dWplc3ogc2nqIHN3b2JvZG5pZSB3c3Rhd2lharFjIHRla3N0IHByemVqZLwgZG8KKyAgNS4gS2llZHkgY3p1amVzeiBzaeogc3dvYm9kbmllIHdzdGF3aWFqsWMgdGVrc3QsIHByemVqZLwgZG8KICAgICAgcG9kc3Vtb3dhbmlhIHBvbmm/ZWouCiAKIApAQCAtMTI5LDcgKzEyOSw3IEBACiAKICAgMy4gS2llZHkgdGVrc3Qgem9zdGGzIGRvZGFueSwgd2Nptm5paiA8RVNDPiBpIHdy8+YgZG8gdHJ5YnUgTm9ybWFsbmVnby4KIAotICA0LiBQcnplbmlltiBrdXJzb3IgZG8gZHJ1Z2llaiBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSBwb3d083J6IGtyb2tpIDIgaSAzCisgIDQuIFByemVuaWW2IGt1cnNvciBkbyBkcnVnaWVqIGxpbmlpIG96bmFjem9uZWogLS0tPiBpIHBvd3Tzcnoga3Jva2kgMi4gaSAzLiwKICAgICAgYWJ5IHBvcHJhd2nmIHpkYW5pZS4KIAogLS0tPiBCcmFrdWplIHR1IHRybwpAQCAtMTM3LDI3ICsxMzcsMjcgQEAKIC0tLT4gVHUgdGW/IHRyb2No6iBicmEKICAgICAgVHUgdGW/IHRyb2No6iBicmFrdWplLgogCi0gIDUuIEtpZWR5IGp1vyB1dHJ3YWxps2W2IOZ3aWN6ZW5pZSBwcnplamS8IGRvIGxla2NqaSAxLjYuCisgIDUuIEtpZWR5IGp1vyB1dHJ3YWxps2W2IOZ3aWN6ZW5pZSwgcHJ6ZWpkvCBkbyBsZWtjamkgMS42LgogCiB+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+fn4KIAkJCSAgTGVrY2phIDEuNi46IEVEWUNKQSBQTElLVQogCiAJCSAgKiogVb95aiAgOndxICBhYnkgemFwaXNh5iBwbGlrIGkgd3lqtuYuICoqCiAKLSAgICEhIFVXQUdBOiB6YW5pbSB3eWtvbmFzeiBqYWtpZWtvbHdpZWsgcG9sZWNlbmlhIHByemVjenlhaiBjYbOxIGxla2Nq6iAhIQorICAgISEgVVdBR0E6IHphbmltIHd5a29uYXN6IGpha2lla29sd2llayBwb2xlY2VuaWEgcHJ6ZWN6eXRhaiBjYbOxIGxla2Nq6iAhIQogCiAgIDEuIFpha2/xY3ogdHV0b3JpYWwgdGFrIGphayB3IGxla2NqaSAxLjIuOiAgOnEhCi0gICAgIEx1YiBqZbZsaSBtYXN6IGRvc3TqcCBkbyBpbm5lZ28gdGVybWluYWxhIHpy82Iga29sZWpuZSBrcm9raSB0YW0uCisgICAgIGx1YiwgamW2bGkgbWFzeiBkb3N06nAgZG8gaW5uZWdvIHRlcm1pbmFsYSwgd3lrb25haiBrb2xlam5lIGtyb2tpIHRhbS4KIAogICAyLiBXIHBvd7NvY2Ugd3lkYWogcG9sZWNlbmllOiAgdmltIHR1dG9yPEVOVEVSPgotICAgICAidmltIiBqZXN0IHBvbGVjZW5pZW0gdXJ1Y2hhbWlharFjeW0gZWR5dG9yIFZpbS4gJ3R1dG9yJyB0byBuYXp3YSBwbGlrdQotICAgICBqYWtpIGNoY2VzeiBlZHl0b3dh5i4gVb95aiBwbGlrdSBqYWtpIG1vv2Ugem9zdGHmIHptaWVuaW9ueS4KKyAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWqxY3ltIGVkeXRvciBWaW0uICd0dXRvcicgdG8gbmF6d2EgcGxpa3UsCisgICAgIGpha2kgY2hjZXN6IGVkeXRvd2HmLiBVv3lqIHBsaWt1LCBrdPNyeSBtb79lIHpvc3Rh5iB6bWllbmlvbnkuCiAKLSAgMy4gRG9kYWogaSB1c3XxIHRla3N0IHRhayBqYWsgc2nqIG5hdWN6ebNltiB3IHBvcHJ6ZWRuaWNoIGxla2NqYWNoLgorICAzLiBEb2RhaiBpIHVzdfEgdGVrc3QgdGFrLCBqYWsgc2nqIG5hdWN6ebNltiB3IHBvcHJ6ZWRuaWNoIGxla2NqYWNoLgogCiAgIDQuIFphcGlzeiBwbGlrIHplIHptaWFuYW1pIGkgb3B1tuYgVmltYTogIDp3cTxFTlRFUj4KIAotICA1LiBKZbZsaSB6YWtv8WN6ebNltiB2aW10dXRvciB3IGtyb2t1IDEuIHVydWNob20gZ28gcG9ub3duaWUgaSBwcnplamS8CisgIDUuIEpltmxpIHpha2/xY3p5s2W2IHZpbXR1dG9yIHcga3Jva3UgMS4sIHVydWNob20gZ28gcG9ub3duaWUgaSBwcnplamS8CiAgICAgIGRvIHBvZHN1bW93YW5pYSBwb25pv2VqLgogCiAgIDYuIFBvIHByemVjenl0YW5pdSB3c3p5c3RraWNoIGtyb2vzdyBpIGljaCB6cm96dW1pZW5pdTogd3lrb25haiBqZS4KQEAgLTE2OCwxNCArMTY4LDE0IEBACiAgIDEuIFBvcnVzemFzeiBrdXJzb3JlbSB1v3l3YWqxYyAic3RyemGzZWsiIGkga2xhd2lzenkgIGhqa2wgLgogICAgICAgIGggKHcgbGV3bykJIGogKHcgZPOzKQkgayAoZG8gZ/NyeSkJCWwgKHcgcHJhd28pCiAKLSAgMi4gQnkgd2VqtuYgZG8gVmltYSAoeiBwb3ezb2tpKSB3cGlzejoKKyAgMi4gQnkgd2VqtuYgZG8gVmltYSwgKHogcG93s29raSkgd3Bpc3o6CiAJCQkgICAgdmltIE5BWldBX1BMSUtVPEVOVEVSPgogCi0gIDMuIEJ5IHd5arbmIHogVmltYSB3cGlzejoKLQkJCSAgICA8RVNDPiA6cSE8RU5URVI+ICBieSB1c3VusWMgd3N6eXN0a2llIHptaWFueS4KKyAgMy4gQnkgd3lqtuYgeiBWaW1hLCB3cGlzejoKKwkJCSAgICA8RVNDPiA6cSE8RU5URVI+ICBieSB1c3VuseYgd3N6eXN0a2llIHptaWFueS4KIAkgICAgIExVQjoJICAgIDxFU0M+IDp3cTxFTlRFUj4gIGJ5IHptaWFueSB6YWNob3dh5i4KIAotICA0LiBCeSB1c3VuseYgem5hayBwb2Qga3Vyc29yZW0gd2Nptm5pajogIHgKKyAgNC4gQnkgdXN1brHmIHpuYWsgcG9kIGt1cnNvcmVtLCB3Y2m2bmlqOiAgeAogCiAgIDUuIEJ5IHdzdGF3aeYgdGVrc3QgcHJ6ZWQga3Vyc29yZW0gbHViIGRvZGHmOgogCWkgICB3cGlzeiB0ZWtzdCAgIDxFU0M+ICAgICAgICAgd3N0YXdpIHByemVkIGt1cnNvcmVtCkBAIC0xODksMTggKzE4OSwxOCBAQAogCQkgIExla2NqYSAyLjEuOiBQT0xFQ0VOSUUgREVMRVRFICh1c3V3YW5pZSkKIAogCi0JCSAgICAgICoqIFdwaXN6ICBkdyAgYnkgdXN1brFjIHd5cmF6LiAqKgorCQkgICAgICAqKiBXcGlzeiAgZHcgIGJ5IHVzdW6x5iB3eXJhei4gKioKIAotICAxLiBXY2m2bmlqICA8RVNDPiAgYnkgdXBld25p5iBzaeosIL9lIGplc3RltiB3IHRyeWJpZSBOb3JtYWwuCisgIDEuIFdjabZuaWogIDxFU0M+LCBieSB1cGV3bmnmIHNp6iwgv2UgamVzdGW2IHcgdHJ5YmllIE5vcm1hbC4KIAogICAyLiBQcnplbmlltiBrdXJzb3IgZG8gbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKLSAgMy4gUHJ6ZXN18SBrdXJzb3IgbmEgcG9jerF0ZWsgd3lyYXp1LCBrdPNyZSBjaGNlc3ogdXN1brHmLgorICAzLiBQcnplc3XxIGt1cnNvciBuYSBwb2N6sXRlayB3eXJhenUsIGt083J5IGNoY2VzeiB1c3VuseYuCiAKICAgNC4gV3Bpc3ogICBkdyAgIGJ5IHVzdW6x5iB3eXJhei4KIAogICBVV0FHQTogTGl0ZXJhICBkICBwb2phd2kgc2nqIG5hIGRvbGUgZWtyYW51LiBWaW0gY3pla2EgbmEgd3Bpc2FuaWUgIHcgLgotCSBKZbZsaSB6b2JhY3p5c3ogaW5ueSB6bmFrIG96bmFjemEgdG8sIL9lIHdwaXNhs2W2IGNvtiC8bGUsIHdjabZuaWoKKwkgSmW2bGkgem9iYWN6eXN6IGlubnkgem5haywgb3puYWN6YSB0bywgv2Ugd3Bpc2GzZbYgY2+2ILxsZTsgd2Nptm5pagogCSA8RVNDPiBpIHphY3puaWogb2QgcG9jerF0a3UuCiAKIC0tLT4gSmVzdCB0dSBwYXLqIHBhcGllciB3eXJhevN3LCBrdPNyZSBrYW1pZfEgbmllIG5hbGW/sSBkbyBub795Y2UgdGVnbyB6ZGFuaWEuCkBAIC0yMjUsNyArMjI1LDcgQEAKIC0tLT4gS3RvtiB3cGlzYbMga29uaWVjIHRlZ28gemRhbmlhIGR3dWtyb3RuaWUuIHpkYW5pYSBkd3Vrcm90bmllLgogCiAKLSAgNS4gUHJ6ZWpkvCBkbyBMZWtjamkgMi4zLiBieSB6cm96dW1pZeYgY28gc2nqIHN0YbNvLgorICA1LiBQcnplamS8IGRvIExla2NqaSAyLjMuLCBieSB6cm96dW1pZeYgY28gc2nqIHN0YbNvLgogCiAKIApAQCAtMjM1LDEyICsyMzUsMTIgQEAKIAkJICAgICBMZWtjamEgMi4zLjogTyBPUEVSQVRPUkFDSCBJIFJVQ0hBQ0gKIAogCi0gIFdpZWxlIHBvbGVjZfEgem1pZW5pYWqxY3ljaCB0ZWtzdCBzsSB6s2+/b25lIHogb3BlcmF0b3JhIGkgcnVjaHUuCi0gIEZvcm1hdCBkbGEgcG9sZWNlbmlhIHVzdXdharFjZWdvIHogb3BlcmF0b3JlbSAgZCAgamVzdCB0YWtpOgorICBXaWVsZSBwb2xlY2XxIHptaWVuaWFqsWN5Y2ggdGVrc3QgamVzdCB6s2+/b255Y2ggeiBvcGVyYXRvcmEgaSBydWNodS4KKyAgRm9ybWF0IGRsYSBwb2xlY2VuaWEgdXN1d2FqsWNlZ28geiBvcGVyYXRvcmVtICBkICBqZXN0IG5hc3TqcHVqsWN5OgogCiAJICAgIGQgIHJ1Y2gKIAotICBHZHppZToKKyAgZ2R6aWU6CiAgICBkICAgICAgLSBvcGVyYXRvciB1c3V3YW5pYS4KICAgIHJ1Y2ggICAtIG5hIGN6eW0gcG9sZWNlbmllIGLqZHppZSB3eWtvbnl3YW5lIChsaXN0YSBwb25pv2VqKS4KIApAQCAtMjUyLDcgKzI1Miw3IEBACiBXIHRlbiBzcG9z82Igd3Bpc2FuaWUgIGRlICB1c3VuaWUgem5ha2kgb2Qga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUuCiAKIFVXQUdBOiBXcGlzYW5pZSB0eWxrbyBydWNodSB3IHRyeWJpZSBOb3JtYWwgYmV6IG9wZXJhdG9yYSBwcnplbmllc2llIGt1cnNvcgotICAgICAgIHRhayBqYWsgdG8gb2tyZbZsb25vLgorICAgICAgIHRhaywgamFrIHRvIG9rcmW2bG9uby4KIAogfn5+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+CiAJCSAgICBMZWtjamEgMi40LjogVa9ZQ0lFIE1OT69OSUtBIERMQSBSVUNIVQpAQCAtMjY2LDMyICsyNjYsMzIgQEAKIAogICAzLiBXcGlzeiAgM2UgIGFieSBwcnplbmlltuYga3Vyc29yIGRvIGtv8WNhIHRyemVjaWVnbyB3eXJhenUgdyBwcnrzZC4KIAotICA0LiBXcGlzeiAgMCAgKHplcm8pIGFieSBwcnplbmlltuYga3Vyc29yIGRvIHBvY3qxdGt1IGxpbmlpLgorICA0LiBXcGlzeiAgMCAgKHplcm8pLCBhYnkgcHJ6ZW5pZbbmIGt1cnNvciBuYSBwb2N6sXRlayBsaW5paS4KIAogICA1LiBQb3d083J6IGtyb2tpIDIuIGkgMy4geiBpbm55bWkgbGljemJhbWkuCiAKIAotIC0tLT4gVG8gamVzdCB6d3lrs3kgd2llcnN6IHogd3lyYXphbWkgcG8ga3TzcnljaCBtb79lc3ogc2nqIHBvcnVzemHmLgorIC0tLT4gVG8gamVzdCB6d3lrs3kgd2llcnN6IHogd3lyYXphbWksIHBvIGt083J5Y2ggbW+/ZXN6IHNp6iBwb3J1c3ph5i4KIAogICA2LiBQcnplamS8IGRvIGxla2NqaSAyLjUuCiAKIAogCiB+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+fn4KLQkJTGVrY2phIDIuNS46IFWvWUNJRSBNTk+vTklLQSBCWSBXScpDRUogVVNVTqHGCisJCUxla2NqYSAyLjUuOiBVr1lDSUUgTU5Pr05JS0EsIEJZIFdJykNFSiBVU1VOocYKIAogCiAgICAgKiogV3Bpc2FuaWUgbGljemJ5IHogb3BlcmF0b3JlbSBwb3d0YXJ6YSBnbyBvZHBvd2llZG5psSBpbG+25iByYXp5LiAqKgogCiAgIFcgd3m/ZWogd3Nwb21uaWFuZWoga29tYmluYWNqaSBvcGVyYXRvcmEgdXN1d2FuaWEgaSBydWNodSBwb2RhaiBtbm+/bmlrCi0gIHByemVkIHJ1Y2hlbSBieSB3aepjZWogdXN1brHmOgorICBwcnplZCBydWNoZW0sIGJ5IHdp6mNlaiB1c3VuseY6CiAJZCAgbGljemJhICBydWNoCiAKICAgMS4gUHJ6ZW5pZbYga3Vyc29yIGRvIHBpZXJ3c3plZ28gd3lyYXp1IEtBUElUQUxJS0FNSSB3IGxpbmlpIHphem5hY3pvbmVqIC0tLT4uCiAKICAgMi4gV3Bpc3ogIDJkdyAgYWJ5IHVzdW6x5iBkd2Egd3lyYXp5IEtBUElUQUxJS0FNSS4KIAotICAzLiBQb3d0YXJ6YWoga3Jva2kgMS4gaSAyLiB6IGlubnltaSBtbm+/bmlrYW1pIGFieSB1c3VuseYga29sZWpuZSB3eXJhenkKKyAgMy4gUG93dGFyemFqIGtyb2tpIDEuIGkgMi4geiBpbm55bWkgbW5vv25pa2FtaSwgYWJ5IHVzdW6x5iBrb2xlam5lIHd5cmF6eQogICAgICBLQVBJVEFMSUtBTUkgamVkbnltIHBvbGVjZW5pZW0KIAogLS0tPiB0YSBBU0QgV0UgbGluaWEgUVdFIEFTREYgWlhDViBGRyB3eXJhevN3IHpvc3Rhs2EgRVJUIEZHSCBDRiBvY3p5c3pjem9uYS4KQEAgLTMxMiw3ICszMTIsNyBAQAogICAxLiBQcnplbmlltiBrdXJzb3IgZG8gZHJ1Z2llZ28gemRhbmlhIHogd2llcnN6eWthIHBvbmm/ZWouCiAgIDIuIFdwaXN6ICBkZCAgYWJ5IHVzdW6x5iB3aWVyc3ouCiAgIDMuIFRlcmF6IHByemVuaWW2IHNp6iBkbyBjendhcnRlZ28gd2llcnN6YS4KLSAgNC4gV3Bpc3ogIDJkZCAgYWJ5IHVzdW6xYyBkd2Egd2llcnN6ZS4KKyAgNC4gV3Bpc3ogIDJkZCAgYWJ5IHVzdW6x5iBkd2Egd2llcnN6ZS4KIAogLS0tPiAgMSkgIFLzv2Ugc7EgY3plcndvbmUsCiAtLS0+ICAyKSAgQrNvdG8gamVzdCBmYWpuZSwKQEAgLTMzNSwxMiArMzM1LDEyIEBACiAgIDIuIFdwaXN6ICB4ICBhYnkgdXN1brHmIHBpZXJ3c3p5IG5pZWNoY2lhbnkgem5hay4KICAgMy4gVGVyYXogd2Nptm5paiAgdSAgYWJ5IGNvZm6x5iBza3V0a2kgb3N0YXRuaWVnbyBwb2xlY2VuaWEuCiAgIDQuIFR5bSByYXplbSBwb3ByYXcgd3N6eXN0a2llIGKz6mR5IHcgbGluaWkgdb95d2FqsWMgcG9sZWNlbmlhICB4IC4KLSAgNS4gVGVyYXogd2Nptm5paiB3aWVsa2llIFUgYWJ5IHByenl3cvNjaeYgbGluaeogZG8gb3J5Z2luYWxuZWdvIHN0YW51LgotICA2LiBUZXJheiB3Y2m2bmlqICB1ICBraWxrYSByYXp5IGJ5IGNvZm6x5iAgVSAgaSBwb3ByemVkbmllIHBvbGVjZW5pYS4KKyAgNS4gVGVyYXogd2Nptm5paiB3aWVsa2llICBVICBhYnkgcHJ6eXdy82Np5iBsaW5p6iBkbyBvcnlnaW5hbG5lZ28gc3RhbnUuCisgIDYuIFRlcmF6IHdjabZuaWogIHUgIGtpbGthIHJhenksIGJ5IGNvZm6x5iAgVSAgaSBwb3ByemVkbmllIHBvbGVjZW5pYS4KICAgNy4gVGVyYXogd3Bpc3ogQ1RSTC1SICh0cnp5bWFqIHLzd25vY3pltm5pZSB3Y2m2bmnqdGUga2xhd2lzemUgQ1RSTCBpIFIpCiAgICAgIGtpbGthIHJhenksIGJ5IGNvZm6x5iBjb2ZuaepjaWEuCiAKLS0tLT4gUG9vcHJhdyBibOpkeXl5IHcgdGVlaiBsaW5paWkgaSB6YWFtaWll8SBqZSBwcnJ6ZXogY29vZm5pai4KKy0tLT4gUG9vcHJhdyBis+pkeXl5IHcgdGVlaiBsaW5paWkgaSB6YWFtaWll8SBqZSBwcnJ6ZXogY29vZm5pai4KIAogICA4LiBUbyBzsSBiYXJkem8gcG+/eXRlY3puZSBwb2xlY2VuaWEuCiAKQEAgLTM1MCwyMiArMzUwLDIyIEBACiAJCQkgICAgIExFS0NKQSAyLiBQT0RTVU1PV0FOSUUKIAogCi0gIDEuIEJ5IHVzdW6x5iB6bmFraSBvZCBrdXJzb3JhIGRvIG5hc3TqcG5lZ28gd3lyYXp1IHdwaXN6OiAgIGR3Ci0gIDIuIEJ5IHVzdW6x5iB6bmFraSBvZCBrdXJzb3JhIGRvIGtv8WNhIGxpbmlpIHdwaXN6OiAgICBkJAorICAxLiBCeSB1c3VuseYgem5ha2kgb2Qga3Vyc29yYSBkbyBuYXN06nBuZWdvIHd5cmF6dSwgd3Bpc3o6ICAgZHcKKyAgMi4gQnkgdXN1brHmIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/xY2EgbGluaWksIHdwaXN6OiAgICBkJAogICAzLiBCeSB1c3VuseYgY2GzsSBsaW5p6jogICAgZGQKLSAgNC4gQnkgcG93dPNyennmIHJ1Y2ggcG9wcnplZLwgZ28gbGljemKxOiAgICAydworICA0LiBCeSBwb3d083J6eeYgcnVjaCwgcG9wcnplZLwgZ28gbGljemKxOiAgICAydwogICA1LiBGb3JtYXQgcG9sZWNlbmlhIHptaWFueSB0bzoKICAgICAgICAgICAgICAgICBvcGVyYXRvciAgW2xpY3piYV0gIHJ1Y2gKICAgZ2R6aWU6Ci0gICBvcGVyYXRvciAgLSB0byBjbyB0cnplYmEgenJvYmnmIChucC4gIGQgIGRsYSB1c3V3YW5pYSkKKyAgIG9wZXJhdG9yICAtIHRvLCBjbyB0cnplYmEgenJvYmnmIChucC4gIGQgIGRsYSB1c3V3YW5pYSkKICAgIFtsaWN6YmFdICAtIG9wY2pvbmFsbmUsIGlsZSByYXp5IHBvd3Tzcnp55iBydWNoCiAgICBydWNoICAgICAgLSBwcnplbm9zaSBuYWQgdGVrc3RlbSBkbyBvcGVyb3dhbmlhLCB0YWtpbSBqYWsgIHcgKHd5cmF6KSwKLQkgICAgICAgJCAgKGRvIGtv8WNhIGxpbmlpKSwgZXRjLgorCSAgICAgICAkICAoZG8ga2/xY2EgbGluaWkpIGV0Yy4KIAotICA2LiBCeSBwcnplarbmIGRvIHBvY3qxdGt1IGxpbmlpIHW/eWogemVyYTogIDAKLSAgNy4gQnkgY29mbrHmIHBvcHJ6ZWRuaWUgcG9sZWNlbmllLCB3cGlzejoJICB1IChtYbNlIHUpCi0gICAgIEJ5IGNvZm6x5iB3c3p5c3RraWUgem1pYW55IHcgbGluaWkgd3Bpc3o6CSAgVSAod2llbGtpZSBVKQotICAgICBCeSBjb2ZuseYgY29mbmnqY2lhIHdwaXN6OgkJCSAgQ1RSTC1SCisgIDYuIEJ5IHByemVqtuYgZG8gcG9jerF0a3UgbGluaWksIHW/eWogemVyYTogIDAKKyAgNy4gQnkgY29mbrHmIHBvcHJ6ZWRuaWUgcG9sZWNlbmllLCB3cGlzejoJICB1ICAobWGzZSB1KQorICAgICBCeSBjb2ZuseYgd3N6eXN0a2llIHptaWFueSB3IGxpbmlpLCB3cGlzejoJICBVICAod2llbGtpZSBVKQorICAgICBCeSBjb2ZuseYgY29mbmnqY2llLCB3cGlzejoJCQkgIENUUkwtUgogCiAKIApAQCAtMzc5LDcgKzM3OSw3IEBACiAKICAgMi4gV3Bpc3ogIGRkICBhYnkgdXN1brHmIGxpbmnqIGkgcHJ6ZWNob3dh5iBqsSB3IHJlamVzdHJ6ZSBWaW1hLgogCi0gIDMuIFByemVuaWW2IGt1cnNvciBkbyBsaW5paSBjKSwgUE9XWa9FSiB0ZWogZ2R6aWUgdXN1bmnqdGEgbGluaWEgcG93aW5uYQorICAzLiBQcnplbmlltiBrdXJzb3IgZG8gbGluaWkgYyksIFBPV1mvRUogdGVqLCBnZHppZSB1c3Vuaep0YSBsaW5pYSBwb3dpbm5hCiAgICAgIHNp6iB6bmFqZG93YeYuCiAKICAgNC4gV2Nptm5paiAgcCAgYnkgd3N0YXdp5iBsaW5p6iBwb25pv2VqIGt1cnNvcmEuCkBAIC00MDQsMjEgKzQwNCwyMSBAQAogCiAgIDMuIFdwaXN6ICByICBhIHBvdGVtIHpuYWsgamFraSBwb3dpbmllbiBnbyB6YXN0sXBp5i4KIAotICA0LiBQb3d0YXJ6YWoga3Jva2kgMi4gaSAzLiBkb3Dza2kgcGllcndzemEgbGluaWEgbmllIGLqZHppZSB0YWthIGphayBkcnVnYS4KKyAgNC4gUG93dGFyemFqIGtyb2tpIDIuIGkgMy4gZG9w82tpIHBpZXJ3c3phIGxpbmlhIG5pZSBi6mR6aWUgdGFrYSwgamFrIGRydWdhLgogCi0tLS0+ICBLamVkeSB0ZW4gd2llcnN6IGJpsyB3c3Tza2l3YW55IGt0b7Ygd2Npem6xsyBwZXLqIHqzeWNoIGtsYXdpcnp5IQotLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiebMgd3N0dWtpd2FueSBrdG+2IHdjaXNusbMgcGFy6iB6s3ljaCBrbGF3aXN6eSEKKy0tLT4gIEtqZWR5IHRlbiB3aWVyc3ogYmmzIHdzdPNraXdhbnksIGt0b7Ygd2Npem6xsyBwZXLqIHqzeWNoIGtsYXdpcnp5IQorLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiebMgd3N0dWtpd2FueSwga3RvtiB3Y2lzbrGzIHBhcuogerN5Y2gga2xhd2lzenkhCiAKICAgNS4gVGVyYXogY3phcyBuYSBMZWtjauogMy4zLgogCiAKLVVXQUdBOiBQYW1p6nRhaiBieSB1Y3p55iBzaeog5ndpY3qxYywgYSBuaWUgcGFtaepjaW93by4KK1VXQUdBOiBQYW1p6nRhaiwgYnkgdWN6eeYgc2nqIOZ3aWN6sWMsIGEgbmllIHBhbWnqY2lvd28uCiAKIAogfn5+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+CiAJCSAgICAgTGVrY2phIDMuMy46IE9QRVJBVE9SIENIQU5HRSAoem1pZfEpCiAKLQkJICoqIEJ5IHptaWVuaeYgZG8ga2/xY2Egd3lyYXp1IHdwaXN6ICBjZSAuICoqCisJCSAqKiBCeSB6bWllbmnmIGRvIGtv8WNhIHd5cmF6dSwgd3Bpc3ogIGNlIC4gKioKIAogICAxLiBQcnplbmlltiBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgogCkBAIC00MjgsNyArNDI4LDcgQEAKIAogICA0LiBXY2m2bmlqIDxFU0M+IGkgcHJ6ZWpkvCBkbyBuYXN06nBuZWogcGxhbm93YW5laiB6bWlhbnkuCiAKLSAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9w82tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYupkemllIHRha2llIHNhbWUKKyAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9w82tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYupkemllIHRha2llIHNhbWUsCiAgICAgIGphayBkcnVnaWUuCiAKIC0tLT4gVGEgbHVub3MgbWEgcGlyZSBzs/N3LCBrdPNyZSB0v2luYSB6Ym5pYyB1v2lmYWpvbmMgcGNtYXp1IHptaWXxLgpAQCAtNDQyLDEzICs0NDIsMTMgQEAKIAkJICAgICAgTGVrY2phIDMuNC46IFdJykNFSiBaTUlBTiBVr1lXQUqhQyBjCiAKIAotCSoqIFBvbGVjZW5pZSBjaGFuZ2Ugdb95d2EgdGFraWNoIHNhbXljaCBydWNo83cgamFrIGRlbGV0ZS4gKioKKwkqKiBQb2xlY2VuaWUgY2hhbmdlIHW/eXdhIHRha2ljaCBzYW15Y2ggcnVjaPN3LCBqYWsgZGVsZXRlLiAqKgogCi0gIDEuIE9wZXJhdG9yIGNoYW5nZSBkemlhs2EgdGFrIHNhbW8gamFrIGRlbGV0ZS4gRm9ybWF0IHd5Z2yxZGEgdGFrOgorICAxLiBPcGVyYXRvciBjaGFuZ2UgZHppYbNhIHRhayBzYW1vLCBqYWsgZGVsZXRlLiBGb3JtYXQgd3lnbLFkYSB0YWs6CiAKIAkgICAgYyAgIFtsaWN6YmFdICAgcnVjaAogCi0gIDIuIFJ1Y2h5IHOxIHRha79lIHRha2llIHNhbWUsIG5wLjogIHcgICh3eXJheiksICAkICAoa29uaWVjIGxpbmlpKSwgZXRjLgorICAyLiBSdWNoeSBzsSB0YWu/ZSB0YWtpZSBzYW1lLCBucC46ICB3ICAod3lyYXopLCAgJCAgKGtvbmllYyBsaW5paSkgZXRjLgogCiAgIDMuIFByemVuaWW2IHNp6iBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4KIApAQCAtNDU2LDcgKzQ1Niw3IEBACiAKICAgNS4gV3Bpc3ogIGMkICwgcG9wcmF3IGtvbmllYyB3aWVyc3phIGkgd2Nptm5paiA8RVNDPi4KIAotLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnmIHBvcHJhd2lvbnkgYWJ5IHd5Z2yxZGGzIHRhayBqYWsgZHJ1Z2kuCistLS0+IEtvbmllYyB0ZWdvIHdpZXJzemEgbXVzaSBieeYgcG9wcmF3aW9ueSwgYWJ5IHd5Z2yxZGGzIHRhaywgamFrIGRydWdpLgogLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnmIHBvcHJhd2lvbnkgdb95d2FqsWMgcG9sZWNlbmlhICBjJCAuCiAKIFVXQUdBOiAgTW+/ZXN6IHW/eXdh5iA8QlM+IGFieSBwb3ByYXdpYeYgYrPqZHkgdyBjemFzaWUgcGlzYW5pYS4KQEAgLTQ2OSwxMSArNDY5LDExIEBACiAgICAgIHBvbGVjZW5pZSB3c3Rhd2lhIHNrYXNvd2FueSB0ZWtzdCBQTyBrdXJzb3J6ZSAoamW2bGkgY2GzYSBsaW5pYQogICAgICB6b3N0YbNhIHVzdW5p6nRhLCB6b3N0YW5pZSBvbmEgdW1pZXN6Y3pvbmEgdyBsaW5paSBwb25pv2VqIGt1cnNvcmEpLgogCi0gIDIuIEJ5IHphbWllbmnmIHpuYWsgcG9kIGt1cnNvcmVtIHdjabZuaWogIHIgIGEgcG90ZW0gem5haywga3TzcnkgbWEgemFzdLFwaeYKKyAgMi4gQnkgemFtaWVuaeYgem5hayBwb2Qga3Vyc29yZW0sIHdjabZuaWogIHIgIGEgcG90ZW0gem5haywga3TzcnkgbWEgemFzdLFwaeYKICAgICAgb3J5Z2luYWxueS4KIAotICAzLiBPcGVyYXRvciBjaGFuZ2UgcG96d2FsYSBDaSBuYSB6YXN0sXBpZW5pZSBvZCBrdXJzb3JhIGRvIG1pZWpzY2EgZ2R6aWUKLSAgICAgemFicmGzYnkgY2nqIHJ1Y2guIE5wLiB3cGlzeiAgY2UgIGFieSB6YW1pZW5p5iB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtv8WNhCisgIDMuIE9wZXJhdG9yIGNoYW5nZSBwb3p3YWxhIENpIG5hIHphc3SxcGllbmllIG9kIGt1cnNvcmEgZG8gbWllanNjYSwgZ2R6aWUKKyAgICAgemFicmGzYnkgQ2nqIHJ1Y2guIE5wLiB3cGlzeiAgY2UgIGFieSB6YW1pZW5p5iB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtv8WNhCiAgICAgIHd5cmF6dSwgIGMkICBhYnkgem1pZW5p5iB0ZWtzdCBkbyBrb/FjYSBsaW5paS4KIAogICA0LiBGb3JtYXQgZG8gcG9sZWNlbmlhIGNoYW5nZSAoem1pZfEpOgpAQCAtNDk3LDEyICs0OTcsMTIgQEAKICAgICAgWmFwYW1p6nRhaiBudW1lciBsaW5paSBkbGEgcG90cnplYiBrcm9rdSAzLgogCiBVV0FHQTogTW+/ZXN6IHRlvyB6b2JhY3p55iBwb3p5Y2rqIGt1cnNvcmEgdyBwcmF3eW0sIGRvbG55bSByb2d1IGVrcmFudS4KLSAgICAgICBEemllamUgc2nqIHRhayBraWVkeSB1c3Rhd2lvbmEgamVzdCBvcGNqYSAncnVsZXInICh3eWphtm5pb25lIHcgbGVrY2ppIDYuKS4KKyAgICAgICBEemllamUgc2nqIHRhayBraWVkeSB1c3Rhd2lvbmEgamVzdCBvcGNqYSAncnVsZXInICh3aepjZWogdyBsZWtjamkgNi4pLgogCiAgIDIuIFdjabZuaWogRyBhYnkgcHJ6ZWq25iBuYSBrb25pZWMgcGxpa3UuCiAgICAgIFdjabZuaWogIGdnICBhYnkgcHJ6ZWq25iBkbyBwb2N6sXRrdSBwbGlrdS4KIAotICAzLiBXcGlzeiBudW1lciBsaW5paSwgdyBrdPNyZWogYnmzZbYgYSBwb3RlbSAgRyAuIFRvIHByemVuaWVzaWUgY2nqCisgIDMuIFdwaXN6IG51bWVyIGxpbmlpLCB3IGt083JlaiBiebNltiBhIHBvdGVtICBHIC4gVG8gcHJ6ZW5pZXNpZSBDaeoKICAgICAgeiBwb3dyb3RlbSBkbyBsaW5paSwgdyBrdPNyZWogYnmzZbYga2llZHkgd2Npc26xs2W2IENUUkwtRy4KIAogICA0LiBKZbZsaSBjenVqZXN6IHNp6iB3eXN0YXJjemFqsWNvIHBld25pZSwgd3lrb25haiBrcm9raSAxLTMuCkBAIC01MTEsMTAgKzUxMSwxMCBAQAogCQkJIExla2NqYSA0LjIuOiBQT0xFQ0VOSUUgU1pVS0FKCiAKIAotCSAgICAgKiogV3Bpc3ogIC8gIGEgbmFzdOpwbmllIHd5cmG/ZW5pZSBhYnkgamUgem5hbGW85i4gKioKKwkgICAgICoqIFdwaXN6ICAvICBhIG5hc3TqcG5pZSB3eXJhv2VuaWUsIGFieSBqZSB6bmFsZbzmLiAqKgogCi0gIDEuIFcgdHJ5YmllIE5vcm1hbCB3cGlzeiAgLyAuIFphdXdhvywgv2Ugem5hayB0ZW4sIG9yYXoga3Vyc29yIHBvamF3abEKLSAgICAgc2nqIG5hIGRvbGUgZWtyYW51IHRhayBzYW1vIGphayBwb2xlY2VuaWUgIDogLgorICAxLiBXIHRyeWJpZSBOb3JtYWwgd3Bpc3ogIC8gLiBaYXV3Yb8sIL9lIHpuYWsgdGVuIG9yYXoga3Vyc29yIHBvamF3abEKKyAgICAgc2nqIG5hIGRvbGUgZWtyYW51IHRhayBzYW1vLCBqYWsgcG9sZWNlbmllICA6IC4KIAogICAyLiBUZXJheiB3cGlzeiAgYrNvbmQ8RU5URVI+IC4gIFRvIGplc3Qgc7Nvd28sIGt083JlZ28gY2hjZXN6IHN6dWth5i4KIApAQCAtNTIzLDExICs1MjMsMTEgQEAKIAogICA0LiBKZbZsaSBjaGNlc3ogc3p1a2HmIGZyYXp5IGRvIHR5s3UsIHW/eWogcG9sZWNlbmlhICA/ICB6YW1pYXN0ICAvIC4KIAotICA1LiBBYnkgd3LzY2nmIGdkemllIGJ5s2W2IHdjabZuaWogIENUUkwtTy4gUG93dGFyemFqIGJ5IHdy82Np5iBkYWxlai4gQ1RSTC1JCisgIDUuIEFieSB3cvNjaeYgZ2R6aWUgYnmzZbYsIHdjabZuaWogIENUUkwtTy4gUG93dGFyemFqLCBieSB3cvNjaeYgZGFsZWouIENUUkwtSQogICAgICBpZHppZSBkbyBwcnpvZHUuCiAKLVV3YWdhOiAgJ2Kzb25kJyB0byBuaWUgamVzdCBtZXRvZGEgYnkgcHJ6ZWxpdGVyb3dh5iBis7FkOyAnYrNvbmQnIHRvIGKzsWQuCi1Vd2FnYTogIEtpZWR5IHN6dWthbmllIG9zabFnbmllIGtvbmllYyBwbGlrdSBi6mR6aWUga29udHludW93YbNvIG9kIHBvY3qxdGt1CitVd2FnYTogICdis29uZCcgdG8gbmllIGplc3QgbWV0b2RhLCBieSBwcnplbGl0ZXJvd2HmIGKzsWQ7ICdis29uZCcgdG8gYrOxZC4KK1V3YWdhOiAgS2llZHkgc3p1a2FuaWUgb3NpsWduaWUga29uaWVjIHBsaWt1LCBi6mR6aWUga29udHludW93YW5lIG9kIHBvY3qxdGt1CiAgICAgICAgIG8gaWxlIG9wY2phICd3cmFwc2NhbicgbmllIHpvc3Rhs2EgcHJ6ZXN0YXdpb25hLgogCiB+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+fn4KQEAgLTU3MSwxNiArNTcxLDE2IEBACiAKICAgNC4gQWJ5IHptaWVuaeYgd3N6eXN0a2llIHd5c3SxcGllbmlhILNh8WN1Y2hhIHpuYWvzdyBwb21p6mR6eSBkd29tYSBsaW5pYW1pLAogICAgICB3cGlzejogOiMsI3Mvc3RhcmUvbm93ZS9nIGdkemllICMsIyBzsSBudW1lcmFtaSBsaW5paSBvZ3JhbmljemFqsWN5Y2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24gZ2R6aWUgbWEgbmFzdLFwaeYgemFtaWFuYS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24sIGdkemllIG1hIG5hc3SxcGnmIHphbWlhbmEuCiAgICAgIHdwaXN6ICA6JXMvc3RhcmUvbm93ZS9nICAgYnkgem1pZW5p5iB3c3p5c3RraWUgd3lzdLFwaWVuaWEgdyBjYbN5bSBwbGlrdS4KICAgICAgd3Bpc3ogIDolcy9zdGFyZS9ub3dlL2djICBieSB6bWllbmnmIHdzenlzdGtpZSB3eXN0sXBpZW5pYSB3IGNhs3ltCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxpa3UsIHByb3N6sWMgbyBwb3R3aWVyZHplbmllIHphIGthv2R5bSByYXplbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsaWt1LCBwcm9zerFjIG8gcG90d2llcmR6ZW5pZSB6YSBrYb9keW0gcmF6ZW0uCiAKIH5+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+fgogCQkJICAgICBMRUtDSkEgNC4gUE9EU1VNT1dBTklFCiAKICAgMS4gQ1RSTC1HICAgcG9rYb9lIFR3b2qxIHBvenljauogdyBwbGlrdSBpIHN0YXR1cyBwbGlrdS4gIFNISUZULUcgcHJ6ZW5vc2kKLQkgICAgICBjaeogZG8ga2/xY2EgcGxpa3UuCisJICAgICAgQ2nqIGRvIGtv8WNhIHBsaWt1LgogICAgICBHICAgICAgICBwcnplbm9zaSBkbyBrb/FjYSBwbGlrdS4KICAgICAgbGljemJhIEcgcHJ6ZW5vc2kgZG8gbGluaWkgW2xpY3piYV0uCiAgICAgIGdnICAgICAgIHByemVub3NpIGRvIHBpZXJ3c3plaiBsaW5paS4KQEAgLTU4OCwyMiArNTg4LDIyIEBACiAgIDIuIFdwaXNhbmllICAvICBhIG5hc3TqcG5pZSCzYfFjdWNoYSB6bmFr83cgc3p1a2Egs2HxY3VjaGEgRE8gUFJaT0RVLgogICAgICBXcGlzYW5pZSAgPyAgYSBuYXN06nBuaWUgs2HxY3VjaGEgem5ha/N3IHN6dWthILNh8WN1Y2hhIERPIFRZo1UuCiAgICAgIFBvIHd5c3p1a2l3YW5pdSB3Y2m2bmlqICBuICBieSB6bmFsZbzmIG5hc3TqcG5lIHd5c3SxcGllbmllIHN6dWthbmVqCi0gICAgIGZyYXp5IHR5bSBzYW15bSBraWVydW5rdSBsdWIgIE4gIGJ5IHN6dWth5iB3IGtpZXJ1bmt1IHByemVjaXdueW0uCisgICAgIGZyYXp5IHcgdHltIHNhbXltIGtpZXJ1bmt1IGx1YiAgTiAgYnkgc3p1a2HmIHcga2llcnVua3UgcHJ6ZWNpd255bS4KICAgICAgQ1RSTC1PIHByemVub3NpIGRvIHN0YXJzenljaCBwb3p5Y2ppLCBDVFJMLUkgZG8gbm93c3p5Y2guCiAKICAgMy4gV3Bpc2FuaWUgICUgIGdkeSBrdXJzb3Igem5hamR1amUgc2nqIG5hICgsKSxbLF0seywgbHViIH0gbG9rYWxpenVqZQogICAgICBwYXJ1arFjeSB6bmFrLgogCi0gIDQuIEJ5IHphbWllbmnmIHBpZXJ3c3p5IHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzeiAgICAgIDpzL3N0YXJ5L25vd3kKLSAgICAgQnkgemFtaWVuaeYgd3N6eXN0a2llIHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzeiAgICAgOnMvc3Rhcnkvbm93eS9nCisgIDQuIEJ5IHphbWllbmnmIHBpZXJ3c3p5IHN0YXJ5IG5hIG5vd3kgdyBsaW5paSwgd3Bpc3ogICAgICA6cy9zdGFyeS9ub3d5CisgICAgIEJ5IHphbWllbmnmIHdzenlzdGtpZSBzdGFyeSBuYSBub3d5IHcgbGluaWksIHdwaXN6ICAgICA6cy9zdGFyeS9ub3d5L2cKICAgICAgQnkgemFtaWVuaeYgZnJhenkgcG9taepkenkgZHdvbWEgbGluaWFtaSAjIHdwaXN6ICAgICAgOiMsI3Mvc3Rhcnkvbm93eS9nCi0gICAgIEJ5IHphbWllbmnmIHdzenlzdGtpZSB3eXN0sXBpZW5pYSB3IHBsaWt1IHdwaXN6ICAgICAgIDolcy9zdGFyeS9ub3d5L2cKLSAgICAgQnkgVmltIHByb3NpsyBDaeogbyBwb3R3aWVyZHplbmllIGRvZGFqICdjJwkgICA6JXMvc3Rhcnkvbm93eS9nYworICAgICBCeSB6YW1pZW5p5iB3c3p5c3RraWUgd3lzdLFwaWVuaWEgdyBwbGlrdSwgd3Bpc3ogICAgICAgOiVzL3N0YXJ5L25vd3kvZworICAgICBCeSBWaW0gcHJvc2mzIENp6iBvIHBvdHdpZXJkemVuaWUsIGRvZGFqICdjJwkgICA6JXMvc3Rhcnkvbm93eS9nYwogfn5+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+Ci0JCSBMZWtjamEgNS4xLjogSkFLIFdZS09OQcYgUE9MRUNFTklBIFpFV07KVFJaTkUKKwkJIExla2NqYSA1LjEuOiBKQUsgV1lLT05BxiBQT0xFQ0VOSUEgWkVXTspUUlpORT8KIAogCi0JKiogV3Bpc3ogIDohICBhIG5hc3TqcG5pZSB6ZXdu6nRyem5lIHBvbGVjZW5pZSBieSBqZSB3eWtvbmHmLiAqKgorCSoqIFdwaXN6ICA6ISAgYSBuYXN06nBuaWUgemV3bup0cnpuZSBwb2xlY2VuaWUsIGJ5IGplIHd5a29uYeYuICoqCiAKICAgMS4gV3Bpc3ogem5ham9tZSBwb2xlY2VuaWUgIDogIGJ5IHVzdGF3aeYga3Vyc29yIG5hIGRvbGUgZWtyYW51LiBUbyBwb3p3YWxhCiAgICAgIG5hIHdwcm93YWR6ZW5pZSBrb21lbmR5IGxpbmlpIHBvbGVjZfEuCkBAIC02MjYsMjAgKzYyNiwyMCBAQAogCQkgICAgTGVrY2phIDUuMi46IFdJykNFSiBPIFpBUElTWVdBTklVIFBMSUvTVwogCiAKLQkgICAqKiBCeSB6YWNob3dh5iB6bWlhbnkgdyB0ZWu2Y2kgd3Bpc3ogOncgTkFaV0FfUExJS1UgLiAqKgorCSAgICoqIEJ5IHphY2hvd2HmIHptaWFueSB3IHRla7ZjaWUsIHdwaXN6IDp3IE5BWldBX1BMSUtVIC4gKioKIAogICAxLiBXcGlzeiAgOiFkaXIgIGx1YiAgOiFscyAgYnkgem9iYWN6eeYgc3BpcyBwbGlr83cgdyBrYXRhbG9ndS4KLSAgICAgSnW/IHdpZXN6LCC/ZSBtdXNpc3ogd2Npc26x5iA8RU5URVI+IHBvIHR5bS4KKyAgICAgSnW/IHdpZXN6LCC/ZSBtdXNpc3ogcG8gdHltIHdjaXNuseYgPEVOVEVSPi4KIAotICAyLiBXeWJpZXJ6IG5henfqIHBsaWt1IGpha2EgamVzemN6ZSBuaWUgaXN0bmllamUsIG5wLiBURVNULgorICAyLiBXeWJpZXJ6IG5henfqIHBsaWt1LCBqYWthIGplc3pjemUgbmllIGlzdG5pZWplLCBucC4gVEVTVC4KIAogICAzLiBUZXJheiB3cGlzejogICA6dyBURVNUICAgKGdkemllIFRFU1QgamVzdCBuYXp3sSBwbGlrdSBqYWuxIHd5YnJhs2W2LikKIAogICA0LiBUbyBwb2xlY2VuaWUgemFwYW1p6nRhIGNhs3kgcGxpayAoVmltIFR1dG9yKSBwb2QgbmF6d7EgVEVTVC4KLSAgICAgQnkgdG8gc3ByYXdkemnmIHdwaXN6ICA6IWRpciAgbHViICA6IWxzICwgv2VieSB6bm93dSB6b2JhY3p55iBsaXN06iBwbGlr83cuCisgICAgIEJ5IHRvIHNwcmF3ZHpp5iwgd3Bpc3ogIDohZGlyICBsdWIgIDohbHMgIL9lYnkgem5vd3Ugem9iYWN6eeYgbGlzdOogcGxpa/N3LgogCiBVd2FnYTogWmF1d2G/LCC/ZSBnZHliebYgdGVyYXogd3lzemVksyB6IFZpbWEsIGEgbmFzdOpwbmllIHdzemVksyBwb25vd25pZQotICAgICAgIHBvbGVjZW5pZW0gIHZpbSBURVNUICwgcGxpayBiebNieSBkb2uzYWRusSBrb3BpsSB0dXRvcmlhbGEga2llZHkgZ28KKyAgICAgICBwb2xlY2VuaWVtICB2aW0gVEVTVCAsIHBsaWsgYnmzYnkgZG9rs2FkbrEga29wabEgdHV0b3JpYWxhLCBraWVkeSBnbwogICAgICAgIHphcGlzeXdhs2W2LgogCiAgIDUuIFRlcmF6IHVzdfEgcGxpayB3cGlzdWqxYyAoTVMtRE9TKToJCSAgIDohZGVsIFRFU1QKQEAgLTY0OSw3ICs2NDksNyBAQAogCQkgICAgTGVrY2phIDUuMy46IFdZQlJBTklFIFRFS1NUVSBETyBaQVBJU1UKIAogCi0JICAqKiBCeSB6YWNob3dh5iBjeuq25iBwbGlrdSB3cGlzeiAgdiBydWNoIDp3IE5BWldBX1BMSUtVICoqCisJICAqKiBCeSB6YWNob3dh5iBjeuq25iBwbGlrdSwgd3Bpc3ogIHYgcnVjaCA6dyBOQVpXQV9QTElLVSAqKgogCiAgIDEuIFByemVuaWW2IGt1cnNvciBkbyB0ZWdvIHdpZXJzemEuCiAKQEAgLTY2NCwyNiArNjY0LDI2IEBACiAgIDUuIFZpbSB6YXBpc3plIHd5YnJhbmUgbGluaWUgZG8gcGxpa3UgVEVTVC4gVb95aiAgOiFkaXIgIGx1YiAgOiFscyAsIL9lYnkgdG8KICAgICAgem9iYWN6eeYuIEplc3pjemUgZ28gbmllIHVzdXdhaiEgVb95amVteSBnbyB3IG5hc3TqcG5laiBsZWtjamkuCiAKLVVXQUdBOiBXY2m2bmnqY2llICB2ICB6YWN6eW5hIHRyeWIgV2l6dWFsbnkuIE1vv2VzeiBwb3J1c3ph5iBrdXJzb3JlbSBieQotICAgICAgIHptaWVuaeYgcm96bWlhcnkgemF6bmFjemVuaWEuIE1vv2VzeiB0Zb8gdb955iBvcGVyYXRvcmEgYnkgenJvYmnmIGNvtgorVVdBR0E6IFdjabZuaepjaWUgIHYgIHphY3p5bmEgdHJ5YiBXaXp1YWxueS4gTW+/ZXN6IHBvcnVzemHmIGt1cnNvcmVtLCBieQorICAgICAgIHptaWVuaeYgcm96bWlhcnkgemF6bmFjemVuaWEuIE1vv2VzeiB0Zb8gdb955iBvcGVyYXRvcmEsIGJ5IHpyb2Jp5iBjb7YKICAgICAgICB6IHRla3N0ZW0uIE5hIHByenlrs2FkICBkICB1c3V3YSB0ZWtzdC4KIAogfn5+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+CiAJCSAgIExla2NqYSA1LjQuOiBXU1RBV0lBTklFIEkgo6FDWkVOSUUgUExJS9NXCiAKIAotCSAgICAqKiBCeSB3c3Rhd2nmIHphd2FydG+25iBwbGlrdSB3cGlzeiAgIDpyIE5BWldBX1BMSUtVICoqCisJICAgICoqIEJ5IHdzdGF3aeYgemF3YXJ0b7bmIHBsaWt1LCB3cGlzeiAgIDpyIE5BWldBX1BMSUtVICoqCiAKICAgMS4gVW1pZbbmIGt1cnNvciB0db8gcG93eb9laiB0ZWogbGluaWkuCiAKIFVXQUdBOiBQbyB3eWtvbmFuaXUga3Jva3UgMi4gem9iYWN6eXN6IHRla3N0IHogTGVrY2ppIDUuMy4gUG90ZW0gcHJ6ZWpkvAotICAgICAgIGRvIERPo1UgYnkgem9iYWN6eeYgcG9ub3duaWUgdOogbGVrY2rqLgorICAgICAgIGRvIERPo1UsIGJ5IHpvYmFjennmIHBvbm93bmllIHTqIGxla2Nq6i4KIAogICAyLiBUZXJheiB3Y3p5dGFqIHBsaWsgVEVTVCB1v3l3YWqxYyBwb2xlY2VuaWEgIDpyIFRFU1QgLCBnZHppZSBURVNUCiAgICAgIGplc3QgbmF6d7EgcGxpa3UuCiAgICAgIFdjenl0YW55IHBsaWsgamVzdCB1bWllc3pjem9ueSBwb25pv2VqIGxpbmlpIHoga3Vyc29yZW0uCiAKLSAgMy4gQnkgc3ByYXdkemnmIGN6eSBwbGlrIHpvc3RhsyB3Y3p5dGFueSBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCC/ZQorICAzLiBCeSBzcHJhd2R6aeYgY3p5IHBsaWsgem9zdGGzIHdjenl0YW55LCBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCC/ZQogICAgICB0ZXJheiBzsSBkd2llIGtvcGllIExla2NqaSA1LjMuLCBvcnlnaW5hsyBpIGtvcGlhIHogcGxpa3UuCiAKIFVXQUdBOiBNb79lc3ogdGW/IHdjenl0YeYgd3lqtmNpZSB6ZXdu6nRyem5lZ28gcG9sZWNlbmlhLiBOYSBwcnp5a7NhZApAQCAtNzIzLDE0ICs3MjMsMTQgQEAKIAogICAxLiBQcnplbmlltiBrdXJzb3IgZG8gbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKLSAgMi4gV3Bpc3ogIG8gIChtYbNlKSBieSBvdHdvcnp55iBsaW5p6iBQT05Jr0VKIGt1cnNvcmEgaSBwcnplbmlltuYgc2nqCisgIDIuIFdwaXN6ICBvICAobWGzZSksIGJ5IG90d29yennmIGxpbmnqIFBPTkmvRUoga3Vyc29yYSBpIHByemVuaWW25iBzaeoKICAgICAgZG8gdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgogCiAgIDMuIFdwaXN6IHRyb2No6iB0ZWtzdHUgaSB3Y2m2bmlqIDxFU0M+IGJ5IHd5arbmIHogdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgogCiAtLS0+IFBvIHdjabZuaepjaXUgIG8gIGt1cnNvciB6bmFqZHppZSBzaeogdyBvdHdhcnRlaiBsaW5paSB3IHRyeWJpZSBJbnNlcnQuCiAKLSAgNC4gQnkgb3R3b3J6eeYgbGluaeogUE9XWa9FSiBrdXJzb3JhIHdjabZuaWogd2llbGtpZSAgTyAgemFtaWFzdCBtYbNlZ28KKyAgNC4gQnkgb3R3b3J6eeYgbGluaeogUE9XWa9FSiBrdXJzb3JhLCB3Y2m2bmlqIHdpZWxraWUgIE8gIHphbWlhc3QgbWGzZWdvCiAgICAgIG8gLiBXeXBy82J1aiB0byBuYSBsaW5paSBwb25pv2VqLgogCiAtLS0+IE90d/NyeiBsaW5p6iBwb3d5v2VqIHdjaXNrYWqxYyBTSElGVC1PIGdkeSBrdXJzb3IgYupkemllIG5hIHRlaiBsaW5paS4KQEAgLTc0Nyw5ICs3NDcsOSBAQAogCiAgIDIuIFdjaXNrYWogIGUgIGRvcPNraSBrdXJzb3IgbmllIGLqZHppZSBuYSBrb/FjdSBsaSAuCiAKLSAgMy4gV3Bpc3ogIGEgIChtYbNlKSBhYnkgZG9kYeYgdGVrc3QgWkEgem5ha2llbSBwb2Qga3Vyc29yZW0uCisgIDMuIFdwaXN6ICBhICAobWGzZSksIGFieSBkb2Rh5iB0ZWtzdCBaQSB6bmFraWVtIHBvZCBrdXJzb3JlbS4KIAotICA0LiBEb2tv8WN6IHd5cmF6IHRhayBqYWsgdyBsaW5paSBwb25pv2VqLiBXY2m2bmlqIDxFU0M+IGFieSBvcHW2Y2nmIHRyeWIKKyAgNC4gRG9rb/FjeiB3eXJheiB0YWssIGphayB3IGxpbmlpIHBvbmm/ZWouIFdjabZuaWogPEVTQz4gYWJ5IG9wdbZjaeYgdHJ5YgogICAgICBJbnNlcnQuCiAKICAgNS4gVb95aiAgZSAgYnkgcHJ6ZWq25iBkbyBrb2xlam5lZ28gbmllZG9rb/Fjem9uZWdvIHd5cmF6dSBpIHBvd3RhcnphaiBrcm9raQpAQCAtNzU4LDcgKzc1OCw3IEBACiAtLS0+IFRhIGxpIHBveiBDaSDmd2kgZG9kYXcgdGVrcyBkbyBrb/EgbGluCiAtLS0+IFRhIGxpbmlhIHBvendvbGkgQ2kg5ndpY3p55iBkb2Rhd2FuaWUgdGVrc3R1IGRvIGtv8WNhIGxpbmlpLgogCi1Vd2FnYTogIGEgLCAgaSAgb3JheiAgQSAgcHJvd2FkerEgZG8gdHJ5YnUgSW5zZXJ0LCBqZWR5brEgcvO/bmljsSBqZXN0IG1pZWpzY2UKK1V3YWdhOiAgYSAsICBpICBvcmF6ICBBICBwcm93YWR6sSBkbyB0cnlidSBJbnNlcnQsIGplZHlusSBy879uaWOxIGplc3QgbWllanNjZSwKICAgICAgICBnZHppZSBub3dlIHpuYWtpIGLqZLEgZG9kYXdhbmUuCiB+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+fn4KIAkJICAgTGVrY2phIDYuMy46IElOTkEgV0VSU0pBIFJFUExBQ0UgKHphbWlhbmEpCkBAIC03OTEsMTYgKzc5MSwxNiBAQAogCiAgIDEuIFByemVqZLwgZG8gbGluaWkgb3puYWN6b25laiAtLS0+IGkgdW1pZbbmIGt1cnNvciB6YSAiYSkiLgogCi0gIDIuIFdlamS8IHcgdHJ5YiBWaXN1YWwgIHYgIGkgcHJ6ZW5pZbYga3Vyc29yIG5hIHBvY3qxdGVrICJwaWVyd3N6eSIuCisgIDIuIFdlamS8IHcgdHJ5YiBXaXp1YWxueSAgdiAgaSBwcnplbmlltiBrdXJzb3IgbmEgcG9jerF0ZWsgInBpZXJ3c3p5Ii4KIAotICAzLiBXY2m2bmlqICB5ICBhYnkgeWFua293YeYgKGtvcGlvd2HmKSBwb2S2d2lldGxvbnkgdGVrc3QuCisgIDMuIFdjabZuaWogIHkgIGFieSBrb3Bpb3dh5iAoeWFua293YeYpIHBvZLZ3aWV0bG9ueSB0ZWtzdC4KIAogICA0LiBQcnplbmlltiBrdXJzb3IgZG8ga2/xY2EgbmFzdOpwbmVqIGxpbmlpOiAgaiQKIAotICA1LiBXY2m2bmlqICBwICBhYnkgd3Bha293YeYgKHBhc3RlKSB0ZWtzdC4gIERvZGFqOiAgYSBkcnVnaTxFU0M+IC4KKyAgNS4gV2Nptm5paiAgcCAgYWJ5IHdrbGVp5iAod3Bha293YeYpIHRla3N0LiAgRG9kYWo6ICBhIGRydWdpPEVTQz4gLgogCi0gIDYuIFW/eWogdHJ5YnUgV2l6dWFsbmVnbyBhYnkgd3licmHmICIgZWxlbWVudC4iLCB5YW5rdWogZ28gIHkgLCBwcnplamS8IGRvCi0gICAgIGtv8WNhIG5hc3TqcG5laiBsaW5paSAgaiQgaSB1cGFrdWogdGFtIHRla3N0IHogIHAgLgorICA2LiBVv3lqIHRyeWJ1IFdpenVhbG5lZ28sIGFieSB3eWJyYeYgIiBlbGVtZW50LiIsIHlhbmt1aiBnbyAgeSAsIHByemVqZLwgZG8KKyAgICAga2/xY2EgbmFzdOpwbmVqIGxpbmlpICBqJCAgaSB1cGFrdWogdGFtIHRla3N0IHogIHAgLgogCiAtLS0+ICBhKSB0byBqZXN0IHBpZXJ3c3p5IGVsZW1lbnQuCiAgICAgICBiKQpAQCAtODEwLDcgKzgxMCw3IEBACiAJCQkgTGVrY2phIDYuNS46IFVTVEFXSUFOSUUgT1BDSkkKIAogCi0qKiBVc3Rhd2lhbmllIG9wY2ppIHRhayBieSBzenVrYWogbHViIHN1YnN0eXR1Y2phIGlnbm9yb3dhs3kgd2llbGtvtuYgbGl0ZXIgKioKKyoqIFVzdGF3aWFuaWUgb3BjamkgdGFrLCBieSBzenVrYWogbHViIHN1YnN0eXR1Y2phIGlnbm9yb3dhs3kgd2llbGtvtuYgbGl0ZXIgKioKIAogICAxLiBTenVrYWogJ2lnbm9yZScgd3Bpc3VqsWM6ICAgIC9pZ25vcmU8RU5URVI+CiAgICAgIFBvd3Tzcnogc3p1a2FuaWUga2lsa2EgcmF6eSBuYWNpc2tharFjIGtsYXdpc3ogIG4gLgpAQCAtODI4LDcgKzgyOCw3IEBACiAKICAgNi4gQWJ5IHd5s7FjennmIGlnbm9yb3dhbmllIHdpZWxrb7ZjaSBsaXRlcjogIDpzZXQgbm9pYwogCi1Vd2FnYTogQWJ5IHVzdW6x5iBwb2S2d2lldGxhbmllIGRvcGFzb3dh8SB3cGlzejogICA6bm9obHNlYXJjaAorVXdhZ2E6IEFieSB1c3VuseYgcG9ktndpZXRsYW5pZSBkb3Bhc293YfEsIHdwaXN6OiAgIDpub2hsc2VhcmNoCiBVd2FnYTogQWJ5IGlnbm9yb3dh5iB3aWVsa2+25iBsaXRlciBkbGEgamVkbmVnbyB3eXN6dWtpd2FuaWE6IC9pZ25vcmVcYzxFTlRFUj4KIH5+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+fgogCQkJICAgICBMRUtDSkEgNi4gUE9EU1VNT1dBTklFCkBAIC04MzcsMzYgKzgzNywzNiBAQAogICAxLiBXcGlzYW5pZSAgbyAgb3R3aWVyYSBsaW5p6iBQT05Jr0VKIGt1cnNvcmEuCiAgICAgIFdwaXNhbmllICBPICBvdHdpZXJhIGxpbmnqIFBPV1mvRUoga3Vyc29yYS4KIAotICAyLiBXcGlzYW5pZSAgYSAgYnkgd3N0YXdp5iB0ZWtzdCBaQSB6bmFraWVtIG5hLCBrdPNyeW0gamVzdCBrdXJzb3IuCisgIDIuIFdwaXNhbmllICBhICB3c3Rhd2lhIHRla3N0IFpBIHpuYWtpZW0sIG5hIGt083J5bSBqZXN0IGt1cnNvci4KICAgICAgV3Bpc2FuaWUgIEEgIGRvZGFqZSB0ZWtzdCBuYSBrb/FjdSBsaW5paS4KIAogICAzLiBQb2xlY2VuaWUgIGUgIHByemVub3NpIGRvIGtv8WNhIHd5cmF6dS4KLSAgNC4gT3BlcmF0b3IgIHkgIHlhbmt1amUgKGtvcGl1amUpIHRla3N0LCAgcCAgcGFrdWplICh3a2xlamEsIHBhc3RlKSBnby4KKyAgNC4gT3BlcmF0b3IgIHkgIHlhbmt1amUgKGtvcGl1amUpIHRla3N0LCAgcCAgcGFrdWplICh3a2xlamEpIGdvLgogICA1LiBXcGlzYW5pZSB3aWVsa2llZ28gIFIgIHdwcm93YWR6YSB3IHRyeWIgUmVwbGFjZSAoemFtaWFuYSkgZG9w82tpCiAgICAgIG5pZSB6b3N0YW5pZSB3Y2m2bmnqdHkgPEVTQz4uCi0gIDYuIFdwaXNhbmllICI6c2V0IHh4eCIgdXN0YXdpYSBvcGNq6iAieHh4Ii4gTmlldGvzcmUgb3BjamU6CisgIDYuIFdwaXNhbmllICI6c2V0IHh4eCIgdXN0YXdpYSBvcGNq6iAieHh4Ii4gTmlla3TzcmUgb3BjamU6CiAJJ2ljJyAgJ2lnbm9yZWNhc2UnCWlnbm9ydWogd2llbGtvtuYgem5ha/N3CiAJJ2lzJyAgJ2luY3NlYXJjaCcJcG9rYb8gY3rqtmNpb3dlIGRvcGFzb3dhbmlhCiAJJ2hscycgJ2hsc2VhcmNoJwlwb2S2d2lldGwgd3N6eXN0a2llIGRvcGFzb3dhbmlhCi0gICAgIE1vv2VzeiB1v3nmIHphcvN3bm8gZLN1Z2llaiBqYWsgaSBrcvN0a2llaiBmb3JteS4KLSAgNy4gRG9kYWogIm5vIiBhYnkgd3mzsWN6eeYgb3Bjauo6ICAgOnNldCBub2ljCisgICAgIE1vv2VzeiB1v3nmIHphcvN3bm8gZLN1Z2llaiwgamFrIGkga3LzdGtpZWogZm9ybXkuCisgIDcuIERvZGFqICJubyIsIGFieSB3ebOxY3p55iBvcGNq6jogICA6c2V0IG5vaWMKIAogCiAKIAogCiB+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+fn4KLQkJCUxFS0NKQSA3LjEuIEpBSyBVWllTS0HGIFBPTU9DCisJCQkgTEVLQ0pBIDcuMS4gSkFLIFVaWVNLQcYgUE9NT0M/CiAKIAkJICAgICAgKiogVb95Y2llIHN5c3RlbXUgcG9tb2N5IG9uLWxpbmUgKioKIAotICBWaW0gcG9zaWFkYSBiYXJkem8gZG9icnkgc3lzdGVtIHBvbW9jeSBvbi1saW5lLiBCeSB6YWN6seYgc3By82J1aiBqZWRuZWoKKyAgVmltIHBvc2lhZGEgYmFyZHpvIGRvYnJ5IHN5c3RlbSBwb21vY3kgb24tbGluZS4gQnkgemFjerHmLCBzcHLzYnVqIGplZG5lagogICB6IHRyemVjaCBtb79saXdvtmNpOgogCS0gd2Nptm5paiBrbGF3aXN6IDxIRUxQPiAoamW2bGkgdGFraSBtYXN6KQogCS0gd2Nptm5paiBrbGF3aXN6IDxGMT4gKGpltmxpIHRha2kgbWFzeikKIAktIHdwaXN6ICAgOmhlbHA8RU5URVI+CiAKLSAgUHJ6ZWN6eXRhaiB0ZWtzdCB3IG9rbmllIHBvbW9jeSAgYWJ5IGRvd2llZHppZeYgc2nqIGphayBkemlhs2EgcG9tb2MuCisgIFByemVjenl0YWogdGVrc3QgdyBva25pZSBwb21vY3ksIGFieSBkb3dpZWR6aWXmIHNp6iBqYWsgZHppYbNhIHBvbW9jLgogICB3cGlzeiBDVFJMLVcgQ1RSTC1XICAgIGFieSBwcnplc2tvY3p55iB6IGplZG5lZ28gb2tuYSBkbyBpbm5lZ28KICAgd3Bpc3ogOnE8RU5URVI+ICAgICAgICBhYnkgemFta26x5iBva25vIHBvbW9jeS4KIApAQCAtODk0LDEwICs4OTQsMTAgQEAKICAgMy4gWmFwaXN6IHBsaWs6CiAgICAgIDp3CiAKLSAgTmFzdOpwbnltIHJhemVtIGdkeSB6YWN6bmllc3ogcHJhY+ogdyBWaW1pZSBi6mR6aWUgb24gdb95d2HmIHBvZLZ3aWV0bGFuaWEKKyAgTmFzdOpwbnltIHJhemVtLCBnZHkgemFjem5pZXN6IHByYWPqIHcgVmltaWUgYupkemllIG9uIHW/eXdh5iBwb2S2d2lldGxhbmlhCiAgIHNrs2FkbmkuIE1vv2VzeiBkb2Rh5iB3c3p5c3RraWUgc3dvamUgdWx1YmlvbmUgdXN0YXdpZW5pYSBkbyB0ZWdvIHBsaWt1CiAgICJ2aW1yYyIuCi0gIEFieSB1enlza2HmIHdp6mNlaiBpbmZvcm1hY2ppIHdwaXN6ICAgICA6aGVscCB2aW1yYy1pbnRybworICBBYnkgdXp5c2th5iB3aepjZWogaW5mb3JtYWNqaSwgd3Bpc3ogICAgIDpoZWxwIHZpbXJjLWludHJvCiAKIH5+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+fgogCQkJICBMZWtjamEgNy4zLjogVVpVUEWjTklBTklFCkBAIC05MDcsMTEgKzkwNywxMSBAQAogCiAgIDEuIFVwZXduaWogc2nqLCC/ZSBWaW0gbmllIGplc3QgdyB0cnliaWUga29tcGF0eWJpbG5vtmNpOiAgIDpzZXQgbm9jcAogCi0gIDIuIFplcmtuaWogamFraWUgcGxpa2kgc7EgdyBiaWW/sWNtIGthdGFsb2d1OiAgIDohbHMgICBsdWIgICA6IWRpcgorICAyLiBaZXJrbmlqLCBqYWtpZSBwbGlraSBzsSB3IGJpZb+xY3ltIGthdGFsb2d1OiAgIDohbHMgICBsdWIgICA6IWRpcgogCiAgIDMuIFdwaXN6IHBvY3qxdGVrIHBvbGVjZW5pYTogICA6ZQogCi0gIDQuIFdjabZuaWogIENUUkwtRCAgaSBWaW0gcG9rYb9lIGxpc3TqIHBvbGVjZfEgamFraWUgemFjenluYWqxIHNp6iBuYSAiZSIuCisgIDQuIFdjabZuaWogIENUUkwtRCAgaSBWaW0gcG9rYb9lIGxpc3TqIHBvbGVjZfEsIGpha2llIHphY3p5bmFqsSBzaeogbmEgImUiLgogCiAgIDUuIFdjabZuaWogIDxUQUI+ICBpIFZpbSB1enVwZbNuaSBwb2xlY2VuaWUgZG8gIjplZGl0Ii4KIApAQCAtOTI1LDcgKzkyNSw3IEBACiAJCQkgICAgTGVrY2phIDcuIFBPRFNVTU9XQU5JRQogCiAKLSAgMS4gV3Bpc3ogIDpoZWxwICBsdWIgd2Nptm5paiA8RjE+IGx1YiA8SGVscD4gYWJ5IG90d29yennmIG9rbm8gcG9tb2N5LgorICAxLiBXcGlzeiAgOmhlbHAgIGFsYm8gd2Nptm5paiA8RjE+IGx1YiA8SGVscD4gYWJ5IG90d29yennmIG9rbm8gcG9tb2N5LgogCiAgIDIuIFdwaXN6ICA6aGVscCBjbWQgIGFieSB1enlza2HmIHBvbW9jIG8gIGNtZCAuCiAKQEAgLTk0NSwxNCArOTQ1LDE0IEBACiAKIH5+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+fgogCi0gIFR1dGFqIHNp6iBrb/FjenkgdHV0b3JpYWwgVmltYS4gWm9zdGGzIG9uIHBvbXm2bGFueSB0YWsgYWJ5IGRh5iBrcvN0a2kKKyAgVHV0YWogc2nqIGtv8WN6eSB0dXRvcmlhbCBWaW1hLiBab3N0YbMgb24gcG9tebZsYW55IHRhaywgYWJ5IGRh5iBrcvN0a2kKICAgcHJ6ZWdssWQgamVnbyBtb79saXdvtmNpLCB3eXN0YXJjemFqsWN5IGJ5tiBt82ezIGdvIHW/eXdh5i4gSmVzdCBvbgotICBkYWxla2kgb2Qga29tcGxldG5vtmNpIHBvbmlld2G/IFZpbSBtYSBvIHdpZWxlLCB3aWVsZSB3aepjZWogcG9sZWNl8S4KKyAgZGFsZWtpIG9kIGtvbXBsZXRub7ZjaSwgcG9uaWV3Yb8gVmltIG1hIG8gd2llbGUsIHdpZWxlIHdp6mNlaiBwb2xlY2XxLgogCiAgIERsYSBkYWxzemVqIG5hdWtpIHJla29tZW5kdWplbXkga3Npsb9r6joKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGF1dG9yIFN0ZXZlIE91YWxsaW5lCiAJV3lkYXdjYTogTmV3IFJpZGVycwotICBQaWVyd3N6YSBrc2mxemthIGNhs2tvd2ljaWUgcG+2d2nqY29uYSBWaW1vd2kuIFW/eXRlY3puYSB6d7Nhc3pjemEgZGxhCisgIFBpZXJ3c3phIGtzabG/a2EgY2Gza293aWNpZSBwb7Z3aepjb25hIFZpbW93aS4gVb95dGVjem5hIHp3s2FzemN6YSBkbGEKICAgcG9jerF0a3VqsWN5Y2guIFphd2llcmEgd2llbGUgcHJ6eWuzYWTzdyBpIGlsdXN0cmFjamkuCiAgIFpvYmFjeiBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy4vY2xpY2s1Lmh0bWwKIApAQCAtOTYwLDcgKzk2MCw3IEBACiAgIHBvbGVjZW5pYToKIAlMZWFybmluZyB0aGUgVmkgRWRpdG9yIC0gYXV0b3IgTGluZGEgTGFtYgogCVd5ZGF3Y2E6IE8nUmVpbGx5ICYgQXNzb2NpYXRlcyBJbmMuCi0gIFRvIGRvYnJhIGtzabG/a2EgYnkgZG93aWVkemll5iBzaeogbmllbWFsIHdzenlzdGtpZWdvIGNvIGNoY2lhs2J5tiB6cm9iaeYKKyAgVG8gZG9icmEga3Npsb9rYSwgYnkgZG93aWVkemll5iBzaeogbmllbWFsIHdzenlzdGtpZWdvLCBjbyBjaGNpYbNiebYgenJvYmnmCiAgIHogVmkuIFN683N0YSBlZHljamEgemF3aWVyYSB0Zb8gaW5mb3JtYWNqZSBvIFZpbWllLgogCiAgIFBvIHBvbHNrdSB3eWRhbm86CkBAIC05OTEsNCArOTkxLDUgQEAKICAgcmV2LiBNYXJ6ZWMgMjAwMgogICAybmQgcmV2LiBXcnplc2ll8SAyMDA0CiAgIDNyZCByZXYuIE1hcnplYyAyMDA2CisgIDR0aCByZXYuIEdydWR6aWXxIDIwMDgKICAgV3N6ZWxraWUgdXdhZ2kgcHJvc3rqIGtpZXJvd2HmIG5hOiBtaWttYWNoQHdwLnBsCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnBsLmNwMTI1MCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwCmluZGV4IDk4OTcxZDAuLjhjNjQ3ZTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwCkBAIC0yLDkgKzIsOSBAQAogPSAgICBXIGkgdCBhIGogICB3ICAgdCB1IHQgbyByIGkgYSBsIHUgICBWIEkgTSAtIGEgICAgICAtICAgIFdlcnNqYSAgMS43LiAgICAgPQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICAgIFZpbSB0byBwb3Tqv255IGVkeXRvciwga3TzcnkgcG9zaWFkYSB3aWVsZSBwb2xlY2XxLCB6Ynl0IGR1v28gYnkKKyAgICAgVmltIHRvIHBvdOq/bnkgZWR5dG9yLCBrdPNyeSBwb3NpYWRhIHdpZWxlIHBvbGVjZfEsIHpieXQgZHW/bywgYnkKICAgICAgd3lqYZxuaeYgamUgd3N6eXN0a2llIHcgdHltIHR1dG9yaWFsdS4gVGVuIHByemV3b2RuaWsgbWEgbmF1Y3p55gotICAgICBDaeogcG9zs3VnaXdh5iBzaeogd3lzdGFyY3pharljbyB3aWVsb21hIGtvbWVuZGFtaSBieZwgbfNnsyCzYXR3bworICAgICBDaeogcG9zs3VnaXdh5iBzaeogd3lzdGFyY3pharljbyB3aWVsb21hIGtvbWVuZGFtaSwgYnmcIG3zZ7Mgs2F0d28KICAgICAgdb95d2HmIFZpbWEgamFrbyBlZHl0b3JhIG9n82xuZWdvIHByemV6bmFjemVuaWEuCiAKICAgICAgQ3phcyBwb3RyemVibnkgbmEgdWtv8WN6ZW5pZSB0dXRvcmlhbGEgdG8gMjUgZG8gMzAgbWludXQgaSB6YWxlv3kKQEAgLTEzLDE0ICsxMywxNCBAQAogCSBVV0FHQToKIAkgUG9sZWNlbmlhIHd5a29ueXdhbmUgdyBjemFzaWUgbGVrY2ppIHptb2R5ZmlrdWq5IHRla3N0LiBacvNiCiAJIHdjemWcbmllaiBrb3Bp6iB0ZWdvIHBsaWt1IGRvIOZ3aWN6ZfEgKGplnGxpIHphY3q5s2WcIGtvbWVuZLkKLQkgInZpbXR1dG9yIiB0byBqdb8gcHJhY3VqZXN6IG5hIGtvcGlpKS4KKwkgInZpbXR1dG9yIiwgdG8ganW/IHByYWN1amVzeiBuYSBrb3BpaSkuCiAKLQkgUGFtaep0YWogv2UgcHJ6ZXdvZG5payB0ZW4gem9zdGGzIHphcHJvamVrdG93YW55IGRvIG5hdWtpIHBvcHJ6ZXoKLQkg5ndpY3plbmlhLiBPem5hY3phIHRvLCC/ZSBtdXNpc3ogd3lrb255d2HmIHBvbGVjZW5pYSBieSBuYXVjennmIHNp6iBpY2gKLQkgcHJhd2lks293by4gSmWcbGkgYupkemllc3ogamVkeW5pZSBjenl0YbMgdGVrc3Qgc3p5YmtvIHphcG9tbmlzeiB3aWVsZQorCSBQYW1p6nRhaiwgv2UgcHJ6ZXdvZG5payB0ZW4gem9zdGGzIHphcHJvamVrdG93YW55IGRvIG5hdWtpIHBvcHJ6ZXoKKwkg5ndpY3plbmlhLiBPem5hY3phIHRvLCC/ZSBtdXNpc3ogd3lrb255d2HmIHBvbGVjZW5pYSwgYnkgbmF1Y3p55iBzaeogaWNoCisJIHByYXdpZLNvd28uIEplnGxpIGLqZHppZXN6IGplZHluaWUgY3p5dGGzIHRla3N0LCBzenlia28gemFwb21uaXN6IHdpZWxlCiAJIHBvbGVjZfEhCiAKLSAgICAgVGVyYXogdXBld25paiBzaeosIL9lIG5pZSBtYXN6IHdjaZxuaep0ZWdvIENhcHNMb2NrYSBpIHdjaXNrYWogIGoKKyAgICAgVGVyYXogdXBld25paiBzaeosIL9lIG5pZSBtYXN6IHdjaZxuaep0ZWdvIENhcHMgTG9ja2EgaSB3Y2lza2FqICBqCiAgICAgIHRhayBks3VnbyBkb3Dza2kgTGVrY2phIDEuMS4gbmllIHd5cGWzbmkgY2Gza293aWNpZSBla3JhbnUuCiAKIH5+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+fgpAQCAtNDAsMjggKzQwLDI4IEBACiAKICAgMy4gVb95d2FquWMgc3RyemGza2kgdyBk87MgcHJ6ZWpknyBkbyBuYXN06nBuZWogbGVrY2ppLgogCi1Vd2FnYTogSmWcbGkgbmllIGplc3RlnCBwZXdpZW4gY3plZ2+cIGNvIHdwaXNhs2WcLCB3Y2mcbmlqIDxFU0M+IGJ5IHdy82Np5iBkbworVXdhZ2E6IEplnGxpIG5pZSBqZXN0ZZwgcGV3aWVuIGN6ZWdvnCBjbyB3cGlzYbNlnCwgd2NpnG5paiA8RVNDPiwgYnkgd3LzY2nmIGRvCiAgICAgICAgdHJ5YnUgTm9ybWFsLiBXdGVkeSBwb3d083J6IHBvbGVjZW5pZS4KIAogVXdhZ2E6IEtsYXdpc3plIGt1cnNvcmEgdGFrv2UgcG93aW5ueSBkemlhs2HmLCBhbGUgdb95d2FquWMgIGhqa2wgIGLqZHppZXN6Ci0gICAgICAgdyBzdGFuaWUgcG9ydXN6YeYgc2nqIG8gd2llbGUgc3p5YmNpZWogamFrIHNp6iB0eWxrbyBwcnp5end5Y3phaXN6LgorICAgICAgIHcgc3RhbmllIHBvcnVzemHmIHNp6iBvIHdpZWxlIHN6eWJjaWVqLCBqYWsgc2nqIHR5bGtvIHByenl6d3ljemFpc3ouCiAgICAgICAgTmFwcmF3ZOohCiAKIH5+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+fgogCQkgICAgTGVrY2phIDEuMi46IFdZQ0hPRFpFTklFIFogVklNLWEKIAotICEhIFVXQUdBOiBQcnplZCB3eWtvbmFuaWVtIGpha2llZ29rb2x3aWVrIHBvbGVjZW5pYSBwcnplY3p5dGFqIGNhs7kgbGVrY2rqLiEhCisgISEgVVdBR0E6IFByemVkIHd5a29uYW5pZW0gamFraWVnb2tvbHdpZWsgcG9sZWNlbmlhIHByemVjenl0YWogY2GzuSBsZWtjauogISEKIAogICAxLiBXY2mcbmlqIDxFU0M+IChhYnkgdXBld25p5iBzaeosIL9lIGplc3RlnCB3IHRyeWJpZSBOb3JtYWwpLgogICAyLiBXcGlzejoJCQk6cSE8RU5URVI+LgotICAgICBUbyBzcG93b2R1amUgd3lqnGNpZSB6IGVkeXRvcmEgUE9SWlVDQUqlQyB3c3plbGtpZSB6bWlhbnkgamFraWUKLSAgICAgemS5v3mzZZwgenJvYmnmLiBKZZxsaSBjaGNlc3ogemFwYW1p6nRh5iB6bWlhbnkgaSB3eWqc5gorICAgICBUbyBzcG93b2R1amUgd3lqnGNpZSB6IGVkeXRvcmEgUE9SWlVDQUqlQyB3c3plbGtpZSB6bWlhbnksIGpha2llCisgICAgIHpkub95s2WcIHpyb2Jp5i4gSmWcbGkgY2hjZXN6IHphcGFtaep0YeYgem1pYW55IGkgd3lqnOYsCiAgICAgIHdwaXN6OgkJCTp3cTxFTlRFUj4KIAogICAzLiBLaWVkeSB3aWR6aXN6IHpuYWsgemFjaOp0eSBwb3ezb2tpIHdwaXN6IGtvbWVuZOosIL9lYnkgd3LzY2nmCiAgICAgIGRvIHR1dG9yaWFsYS4gQ3p5bGk6CXZpbXR1dG9yPEVOVEVSPgogCi0gIDQuIEplnGxpIGNoY2VzeiB6YXBhbWnqdGHmIHBvbGVjZW5pYSwgd3lrb25haiBrcm9raSAxLiBkbyAzLiBhYnkKKyAgNC4gSmWcbGkgY2hjZXN6IHphcGFtaep0YeYgcG9sZWNlbmlhLCB3eWtvbmFqIGtyb2tpIDEuIGRvIDMuLCBhYnkKICAgICAgd3lqnOYgaSB3cvNjaeYgZG8gZWR5dG9yYS4KIAogVVdBR0E6IDpxITxFTlRFUj4gcG9yenVjYSB3c3plbGtpZSB6bWlhbnkgamFraWUgenJvYmmzZZwuIFcgbmFzdOpwbnljaApAQCAtODUsNyArODUsNyBAQAogCiAtLS0+IEtrcm93YSBwcnJ6ZXNrb2N6ebNhIHBycnpleiBrc2lp6r95Y2MuCiAKLSAgNS4gVGVyYXoga2llZHkgemRhbmllIGplc3QgcG9wcmF3aW9uZSBwcnplamSfIGRvIExla2NqaSAxLjQuCisgIDUuIFRlcmF6LCBraWVkeSB6ZGFuaWUgamVzdCBwb3ByYXdpb25lLCBwcnplamSfIGRvIExla2NqaSAxLjQuCiAKIFVXQUdBOiBVY3ogc2nqIHByemV6IOZ3aWN6ZW5pZSwgbmllIHdrdXdhbmllLgogCkBAIC0xMDEsMTggKzEwMSwxOCBAQAogCiAgIDEuIFByemVuaWWcIGt1cnNvciBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKLSAgMi4gQWJ5IHBvcHJhd2nmIHBpZXJ3c3p5IHdpZXJzeiwgdXN0YXcga3Vyc29yIG5hIHBpZXJ3c3p5bSB6bmFrdSBQTyB0eW0KKyAgMi4gQWJ5IHBvcHJhd2nmIHBpZXJ3c3p5IHdpZXJzeiwgdXN0YXcga3Vyc29yIG5hIHBpZXJ3c3p5bSB6bmFrdSBQTyB0eW0sCiAgICAgIGdkemllIHRla3N0IG1hIGJ55iB3c3Rhd2lvbnkuCiAKICAgMy4gV2NpnG5paiAgaSAgYSBuYXN06nBuaWUgd3Bpc3oga29uaWVjem5lIHBvcHJhd2tpLgogCi0gIDQuIFBvIHBvcHJhd2llbml1IGKz6mR1IHdjaZxuaWogPEVTQz4gYnkgd3LzY2nmIGRvIHRyeWJ1IE5vcm1hbC4KLSAgICAgUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuIGFieSBwb3ByYXdp5iBjYbNlIHpkYW5pZS4KKyAgNC4gUG8gcG9wcmF3aWVuaXUgYrPqZHUgd2NpnG5paiA8RVNDPiwgYnkgd3LzY2nmIGRvIHRyeWJ1IE5vcm1hbC4KKyAgICAgUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuLCBhYnkgcG9wcmF3aeYgY2GzZSB6ZGFuaWUuCiAKIC0tLT4gVyB0ZWogYnJramUgdHJvY2jqIC4KIC0tLT4gVyB0ZWogbGluaWkgYnJha3VqZSB0cm9jaOogdGVrc3R1LgogCi0gIDUuIEtpZWR5IGN6dWplc3ogc2nqIHN3b2JvZG5pZSB3c3Rhd2lharljIHRla3N0IHByemVqZJ8gZG8KKyAgNS4gS2llZHkgY3p1amVzeiBzaeogc3dvYm9kbmllIHdzdGF3aWFquWMgdGVrc3QsIHByemVqZJ8gZG8KICAgICAgcG9kc3Vtb3dhbmlhIHBvbmm/ZWouCiAKIApAQCAtMTI5LDcgKzEyOSw3IEBACiAKICAgMy4gS2llZHkgdGVrc3Qgem9zdGGzIGRvZGFueSwgd2NpnG5paiA8RVNDPiBpIHdy8+YgZG8gdHJ5YnUgTm9ybWFsbmVnby4KIAotICA0LiBQcnplbmllnCBrdXJzb3IgZG8gZHJ1Z2llaiBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSBwb3d083J6IGtyb2tpIDIgaSAzCisgIDQuIFByemVuaWWcIGt1cnNvciBkbyBkcnVnaWVqIGxpbmlpIG96bmFjem9uZWogLS0tPiBpIHBvd3Tzcnoga3Jva2kgMi4gaSAzLiwKICAgICAgYWJ5IHBvcHJhd2nmIHpkYW5pZS4KIAogLS0tPiBCcmFrdWplIHR1IHRybwpAQCAtMTM3LDI3ICsxMzcsMjcgQEAKIC0tLT4gVHUgdGW/IHRyb2No6iBicmEKICAgICAgVHUgdGW/IHRyb2No6iBicmFrdWplLgogCi0gIDUuIEtpZWR5IGp1vyB1dHJ3YWxps2WcIOZ3aWN6ZW5pZSBwcnplamSfIGRvIGxla2NqaSAxLjYuCisgIDUuIEtpZWR5IGp1vyB1dHJ3YWxps2WcIOZ3aWN6ZW5pZSwgcHJ6ZWpknyBkbyBsZWtjamkgMS42LgogCiB+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+fn4KIAkJCSAgTGVrY2phIDEuNi46IEVEWUNKQSBQTElLVQogCiAJCSAgKiogVb95aiAgOndxICBhYnkgemFwaXNh5iBwbGlrIGkgd3lqnOYuICoqCiAKLSAgICEhIFVXQUdBOiB6YW5pbSB3eWtvbmFzeiBqYWtpZWtvbHdpZWsgcG9sZWNlbmlhIHByemVjenlhaiBjYbO5IGxla2Nq6iAhIQorICAgISEgVVdBR0E6IHphbmltIHd5a29uYXN6IGpha2lla29sd2llayBwb2xlY2VuaWEgcHJ6ZWN6eXRhaiBjYbO5IGxla2Nq6iAhIQogCiAgIDEuIFpha2/xY3ogdHV0b3JpYWwgdGFrIGphayB3IGxla2NqaSAxLjIuOiAgOnEhCi0gICAgIEx1YiBqZZxsaSBtYXN6IGRvc3TqcCBkbyBpbm5lZ28gdGVybWluYWxhIHpy82Iga29sZWpuZSBrcm9raSB0YW0uCisgICAgIGx1YiwgamWcbGkgbWFzeiBkb3N06nAgZG8gaW5uZWdvIHRlcm1pbmFsYSwgd3lrb25haiBrb2xlam5lIGtyb2tpIHRhbS4KIAogICAyLiBXIHBvd7NvY2Ugd3lkYWogcG9sZWNlbmllOiAgdmltIHR1dG9yPEVOVEVSPgotICAgICAidmltIiBqZXN0IHBvbGVjZW5pZW0gdXJ1Y2hhbWlharljeW0gZWR5dG9yIFZpbS4gJ3R1dG9yJyB0byBuYXp3YSBwbGlrdQotICAgICBqYWtpIGNoY2VzeiBlZHl0b3dh5i4gVb95aiBwbGlrdSBqYWtpIG1vv2Ugem9zdGHmIHptaWVuaW9ueS4KKyAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWq5Y3ltIGVkeXRvciBWaW0uICd0dXRvcicgdG8gbmF6d2EgcGxpa3UsCisgICAgIGpha2kgY2hjZXN6IGVkeXRvd2HmLiBVv3lqIHBsaWt1LCBrdPNyeSBtb79lIHpvc3Rh5iB6bWllbmlvbnkuCiAKLSAgMy4gRG9kYWogaSB1c3XxIHRla3N0IHRhayBqYWsgc2nqIG5hdWN6ebNlnCB3IHBvcHJ6ZWRuaWNoIGxla2NqYWNoLgorICAzLiBEb2RhaiBpIHVzdfEgdGVrc3QgdGFrLCBqYWsgc2nqIG5hdWN6ebNlnCB3IHBvcHJ6ZWRuaWNoIGxla2NqYWNoLgogCiAgIDQuIFphcGlzeiBwbGlrIHplIHptaWFuYW1pIGkgb3B1nOYgVmltYTogIDp3cTxFTlRFUj4KIAotICA1LiBKZZxsaSB6YWtv8WN6ebNlnCB2aW10dXRvciB3IGtyb2t1IDEuIHVydWNob20gZ28gcG9ub3duaWUgaSBwcnplamSfCisgIDUuIEplnGxpIHpha2/xY3p5s2WcIHZpbXR1dG9yIHcga3Jva3UgMS4sIHVydWNob20gZ28gcG9ub3duaWUgaSBwcnplamSfCiAgICAgIGRvIHBvZHN1bW93YW5pYSBwb25pv2VqLgogCiAgIDYuIFBvIHByemVjenl0YW5pdSB3c3p5c3RraWNoIGtyb2vzdyBpIGljaCB6cm96dW1pZW5pdTogd3lrb25haiBqZS4KQEAgLTE2OCwxNCArMTY4LDE0IEBACiAgIDEuIFBvcnVzemFzeiBrdXJzb3JlbSB1v3l3YWq5YyAic3RyemGzZWsiIGkga2xhd2lzenkgIGhqa2wgLgogICAgICAgIGggKHcgbGV3bykJIGogKHcgZPOzKQkgayAoZG8gZ/NyeSkJCWwgKHcgcHJhd28pCiAKLSAgMi4gQnkgd2VqnOYgZG8gVmltYSAoeiBwb3ezb2tpKSB3cGlzejoKKyAgMi4gQnkgd2VqnOYgZG8gVmltYSwgKHogcG93s29raSkgd3Bpc3o6CiAJCQkgICAgdmltIE5BWldBX1BMSUtVPEVOVEVSPgogCi0gIDMuIEJ5IHd5apzmIHogVmltYSB3cGlzejoKLQkJCSAgICA8RVNDPiA6cSE8RU5URVI+ICBieSB1c3VuuWMgd3N6eXN0a2llIHptaWFueS4KKyAgMy4gQnkgd3lqnOYgeiBWaW1hLCB3cGlzejoKKwkJCSAgICA8RVNDPiA6cSE8RU5URVI+ICBieSB1c3VuueYgd3N6eXN0a2llIHptaWFueS4KIAkgICAgIExVQjoJICAgIDxFU0M+IDp3cTxFTlRFUj4gIGJ5IHptaWFueSB6YWNob3dh5i4KIAotICA0LiBCeSB1c3VuueYgem5hayBwb2Qga3Vyc29yZW0gd2NpnG5pajogIHgKKyAgNC4gQnkgdXN1brnmIHpuYWsgcG9kIGt1cnNvcmVtLCB3Y2mcbmlqOiAgeAogCiAgIDUuIEJ5IHdzdGF3aeYgdGVrc3QgcHJ6ZWQga3Vyc29yZW0gbHViIGRvZGHmOgogCWkgICB3cGlzeiB0ZWtzdCAgIDxFU0M+ICAgICAgICAgd3N0YXdpIHByemVkIGt1cnNvcmVtCkBAIC0xODksMTggKzE4OSwxOCBAQAogCQkgIExla2NqYSAyLjEuOiBQT0xFQ0VOSUUgREVMRVRFICh1c3V3YW5pZSkKIAogCi0JCSAgICAgICoqIFdwaXN6ICBkdyAgYnkgdXN1brljIHd5cmF6LiAqKgorCQkgICAgICAqKiBXcGlzeiAgZHcgIGJ5IHVzdW655iB3eXJhei4gKioKIAotICAxLiBXY2mcbmlqICA8RVNDPiAgYnkgdXBld25p5iBzaeosIL9lIGplc3RlnCB3IHRyeWJpZSBOb3JtYWwuCisgIDEuIFdjaZxuaWogIDxFU0M+LCBieSB1cGV3bmnmIHNp6iwgv2UgamVzdGWcIHcgdHJ5YmllIE5vcm1hbC4KIAogICAyLiBQcnplbmllnCBrdXJzb3IgZG8gbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKLSAgMy4gUHJ6ZXN18SBrdXJzb3IgbmEgcG9jerl0ZWsgd3lyYXp1LCBrdPNyZSBjaGNlc3ogdXN1brnmLgorICAzLiBQcnplc3XxIGt1cnNvciBuYSBwb2N6uXRlayB3eXJhenUsIGt083J5IGNoY2VzeiB1c3VuueYuCiAKICAgNC4gV3Bpc3ogICBkdyAgIGJ5IHVzdW655iB3eXJhei4KIAogICBVV0FHQTogTGl0ZXJhICBkICBwb2phd2kgc2nqIG5hIGRvbGUgZWtyYW51LiBWaW0gY3pla2EgbmEgd3Bpc2FuaWUgIHcgLgotCSBKZZxsaSB6b2JhY3p5c3ogaW5ueSB6bmFrIG96bmFjemEgdG8sIL9lIHdwaXNhs2WcIGNvnCCfbGUsIHdjaZxuaWoKKwkgSmWcbGkgem9iYWN6eXN6IGlubnkgem5haywgb3puYWN6YSB0bywgv2Ugd3Bpc2GzZZwgY2+cIJ9sZTsgd2NpnG5pagogCSA8RVNDPiBpIHphY3puaWogb2QgcG9jerl0a3UuCiAKIC0tLT4gSmVzdCB0dSBwYXLqIHBhcGllciB3eXJhevN3LCBrdPNyZSBrYW1pZfEgbmllIG5hbGW/uSBkbyBub795Y2UgdGVnbyB6ZGFuaWEuCkBAIC0yMjUsNyArMjI1LDcgQEAKIC0tLT4gS3RvnCB3cGlzYbMga29uaWVjIHRlZ28gemRhbmlhIGR3dWtyb3RuaWUuIHpkYW5pYSBkd3Vrcm90bmllLgogCiAKLSAgNS4gUHJ6ZWpknyBkbyBMZWtjamkgMi4zLiBieSB6cm96dW1pZeYgY28gc2nqIHN0YbNvLgorICA1LiBQcnplamSfIGRvIExla2NqaSAyLjMuLCBieSB6cm96dW1pZeYgY28gc2nqIHN0YbNvLgogCiAKIApAQCAtMjM1LDEyICsyMzUsMTIgQEAKIAkJICAgICBMZWtjamEgMi4zLjogTyBPUEVSQVRPUkFDSCBJIFJVQ0hBQ0gKIAogCi0gIFdpZWxlIHBvbGVjZfEgem1pZW5pYWq5Y3ljaCB0ZWtzdCBzuSB6s2+/b25lIHogb3BlcmF0b3JhIGkgcnVjaHUuCi0gIEZvcm1hdCBkbGEgcG9sZWNlbmlhIHVzdXdharljZWdvIHogb3BlcmF0b3JlbSAgZCAgamVzdCB0YWtpOgorICBXaWVsZSBwb2xlY2XxIHptaWVuaWFquWN5Y2ggdGVrc3QgamVzdCB6s2+/b255Y2ggeiBvcGVyYXRvcmEgaSBydWNodS4KKyAgRm9ybWF0IGRsYSBwb2xlY2VuaWEgdXN1d2FquWNlZ28geiBvcGVyYXRvcmVtICBkICBqZXN0IG5hc3TqcHVquWN5OgogCiAJICAgIGQgIHJ1Y2gKIAotICBHZHppZToKKyAgZ2R6aWU6CiAgICBkICAgICAgLSBvcGVyYXRvciB1c3V3YW5pYS4KICAgIHJ1Y2ggICAtIG5hIGN6eW0gcG9sZWNlbmllIGLqZHppZSB3eWtvbnl3YW5lIChsaXN0YSBwb25pv2VqKS4KIApAQCAtMjUyLDcgKzI1Miw3IEBACiBXIHRlbiBzcG9z82Igd3Bpc2FuaWUgIGRlICB1c3VuaWUgem5ha2kgb2Qga3Vyc29yYSBkbyBrb/FjYSB3eXJhenUuCiAKIFVXQUdBOiBXcGlzYW5pZSB0eWxrbyBydWNodSB3IHRyeWJpZSBOb3JtYWwgYmV6IG9wZXJhdG9yYSBwcnplbmllc2llIGt1cnNvcgotICAgICAgIHRhayBqYWsgdG8gb2tyZZxsb25vLgorICAgICAgIHRhaywgamFrIHRvIG9rcmWcbG9uby4KIAogfn5+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+CiAJCSAgICBMZWtjamEgMi40LjogVa9ZQ0lFIE1OT69OSUtBIERMQSBSVUNIVQpAQCAtMjY2LDMyICsyNjYsMzIgQEAKIAogICAzLiBXcGlzeiAgM2UgIGFieSBwcnplbmllnOYga3Vyc29yIGRvIGtv8WNhIHRyemVjaWVnbyB3eXJhenUgdyBwcnrzZC4KIAotICA0LiBXcGlzeiAgMCAgKHplcm8pIGFieSBwcnplbmllnOYga3Vyc29yIGRvIHBvY3q5dGt1IGxpbmlpLgorICA0LiBXcGlzeiAgMCAgKHplcm8pLCBhYnkgcHJ6ZW5pZZzmIGt1cnNvciBuYSBwb2N6uXRlayBsaW5paS4KIAogICA1LiBQb3d083J6IGtyb2tpIDIuIGkgMy4geiBpbm55bWkgbGljemJhbWkuCiAKIAotIC0tLT4gVG8gamVzdCB6d3lrs3kgd2llcnN6IHogd3lyYXphbWkgcG8ga3TzcnljaCBtb79lc3ogc2nqIHBvcnVzemHmLgorIC0tLT4gVG8gamVzdCB6d3lrs3kgd2llcnN6IHogd3lyYXphbWksIHBvIGt083J5Y2ggbW+/ZXN6IHNp6iBwb3J1c3ph5i4KIAogICA2LiBQcnplamSfIGRvIGxla2NqaSAyLjUuCiAKIAogCiB+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+fn4KLQkJTGVrY2phIDIuNS46IFWvWUNJRSBNTk+vTklLQSBCWSBXScpDRUogVVNVTqXGCisJCUxla2NqYSAyLjUuOiBVr1lDSUUgTU5Pr05JS0EsIEJZIFdJykNFSiBVU1VOpcYKIAogCiAgICAgKiogV3Bpc2FuaWUgbGljemJ5IHogb3BlcmF0b3JlbSBwb3d0YXJ6YSBnbyBvZHBvd2llZG5puSBpbG+c5iByYXp5LiAqKgogCiAgIFcgd3m/ZWogd3Nwb21uaWFuZWoga29tYmluYWNqaSBvcGVyYXRvcmEgdXN1d2FuaWEgaSBydWNodSBwb2RhaiBtbm+/bmlrCi0gIHByemVkIHJ1Y2hlbSBieSB3aepjZWogdXN1brnmOgorICBwcnplZCBydWNoZW0sIGJ5IHdp6mNlaiB1c3VuueY6CiAJZCAgbGljemJhICBydWNoCiAKICAgMS4gUHJ6ZW5pZZwga3Vyc29yIGRvIHBpZXJ3c3plZ28gd3lyYXp1IEtBUElUQUxJS0FNSSB3IGxpbmlpIHphem5hY3pvbmVqIC0tLT4uCiAKICAgMi4gV3Bpc3ogIDJkdyAgYWJ5IHVzdW655iBkd2Egd3lyYXp5IEtBUElUQUxJS0FNSS4KIAotICAzLiBQb3d0YXJ6YWoga3Jva2kgMS4gaSAyLiB6IGlubnltaSBtbm+/bmlrYW1pIGFieSB1c3VuueYga29sZWpuZSB3eXJhenkKKyAgMy4gUG93dGFyemFqIGtyb2tpIDEuIGkgMi4geiBpbm55bWkgbW5vv25pa2FtaSwgYWJ5IHVzdW655iBrb2xlam5lIHd5cmF6eQogICAgICBLQVBJVEFMSUtBTUkgamVkbnltIHBvbGVjZW5pZW0KIAogLS0tPiB0YSBBU0QgV0UgbGluaWEgUVdFIEFTREYgWlhDViBGRyB3eXJhevN3IHpvc3Rhs2EgRVJUIEZHSCBDRiBvY3p5c3pjem9uYS4KQEAgLTMxMiw3ICszMTIsNyBAQAogICAxLiBQcnplbmllnCBrdXJzb3IgZG8gZHJ1Z2llZ28gemRhbmlhIHogd2llcnN6eWthIHBvbmm/ZWouCiAgIDIuIFdwaXN6ICBkZCAgYWJ5IHVzdW655iB3aWVyc3ouCiAgIDMuIFRlcmF6IHByemVuaWWcIHNp6iBkbyBjendhcnRlZ28gd2llcnN6YS4KLSAgNC4gV3Bpc3ogIDJkZCAgYWJ5IHVzdW65YyBkd2Egd2llcnN6ZS4KKyAgNC4gV3Bpc3ogIDJkZCAgYWJ5IHVzdW655iBkd2Egd2llcnN6ZS4KIAogLS0tPiAgMSkgIFLzv2Ugc7kgY3plcndvbmUsCiAtLS0+ICAyKSAgQrNvdG8gamVzdCBmYWpuZSwKQEAgLTMzNSwxMiArMzM1LDEyIEBACiAgIDIuIFdwaXN6ICB4ICBhYnkgdXN1brnmIHBpZXJ3c3p5IG5pZWNoY2lhbnkgem5hay4KICAgMy4gVGVyYXogd2NpnG5paiAgdSAgYWJ5IGNvZm655iBza3V0a2kgb3N0YXRuaWVnbyBwb2xlY2VuaWEuCiAgIDQuIFR5bSByYXplbSBwb3ByYXcgd3N6eXN0a2llIGKz6mR5IHcgbGluaWkgdb95d2FquWMgcG9sZWNlbmlhICB4IC4KLSAgNS4gVGVyYXogd2NpnG5paiB3aWVsa2llIFUgYWJ5IHByenl3cvNjaeYgbGluaeogZG8gb3J5Z2luYWxuZWdvIHN0YW51LgotICA2LiBUZXJheiB3Y2mcbmlqICB1ICBraWxrYSByYXp5IGJ5IGNvZm655iAgVSAgaSBwb3ByemVkbmllIHBvbGVjZW5pYS4KKyAgNS4gVGVyYXogd2NpnG5paiB3aWVsa2llICBVICBhYnkgcHJ6eXdy82Np5iBsaW5p6iBkbyBvcnlnaW5hbG5lZ28gc3RhbnUuCisgIDYuIFRlcmF6IHdjaZxuaWogIHUgIGtpbGthIHJhenksIGJ5IGNvZm655iAgVSAgaSBwb3ByemVkbmllIHBvbGVjZW5pYS4KICAgNy4gVGVyYXogd3Bpc3ogQ1RSTC1SICh0cnp5bWFqIHLzd25vY3plnG5pZSB3Y2mcbmnqdGUga2xhd2lzemUgQ1RSTCBpIFIpCiAgICAgIGtpbGthIHJhenksIGJ5IGNvZm655iBjb2ZuaepjaWEuCiAKLS0tLT4gUG9vcHJhdyBibOpkeXl5IHcgdGVlaiBsaW5paWkgaSB6YWFtaWll8SBqZSBwcnJ6ZXogY29vZm5pai4KKy0tLT4gUG9vcHJhdyBis+pkeXl5IHcgdGVlaiBsaW5paWkgaSB6YWFtaWll8SBqZSBwcnJ6ZXogY29vZm5pai4KIAogICA4LiBUbyBzuSBiYXJkem8gcG+/eXRlY3puZSBwb2xlY2VuaWEuCiAKQEAgLTM1MCwyMiArMzUwLDIyIEBACiAJCQkgICAgIExFS0NKQSAyLiBQT0RTVU1PV0FOSUUKIAogCi0gIDEuIEJ5IHVzdW655iB6bmFraSBvZCBrdXJzb3JhIGRvIG5hc3TqcG5lZ28gd3lyYXp1IHdwaXN6OiAgIGR3Ci0gIDIuIEJ5IHVzdW655iB6bmFraSBvZCBrdXJzb3JhIGRvIGtv8WNhIGxpbmlpIHdwaXN6OiAgICBkJAorICAxLiBCeSB1c3VuueYgem5ha2kgb2Qga3Vyc29yYSBkbyBuYXN06nBuZWdvIHd5cmF6dSwgd3Bpc3o6ICAgZHcKKyAgMi4gQnkgdXN1brnmIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/xY2EgbGluaWksIHdwaXN6OiAgICBkJAogICAzLiBCeSB1c3VuueYgY2GzuSBsaW5p6jogICAgZGQKLSAgNC4gQnkgcG93dPNyennmIHJ1Y2ggcG9wcnplZJ8gZ28gbGljemK5OiAgICAydworICA0LiBCeSBwb3d083J6eeYgcnVjaCwgcG9wcnplZJ8gZ28gbGljemK5OiAgICAydwogICA1LiBGb3JtYXQgcG9sZWNlbmlhIHptaWFueSB0bzoKICAgICAgICAgICAgICAgICBvcGVyYXRvciAgW2xpY3piYV0gIHJ1Y2gKICAgZ2R6aWU6Ci0gICBvcGVyYXRvciAgLSB0byBjbyB0cnplYmEgenJvYmnmIChucC4gIGQgIGRsYSB1c3V3YW5pYSkKKyAgIG9wZXJhdG9yICAtIHRvLCBjbyB0cnplYmEgenJvYmnmIChucC4gIGQgIGRsYSB1c3V3YW5pYSkKICAgIFtsaWN6YmFdICAtIG9wY2pvbmFsbmUsIGlsZSByYXp5IHBvd3Tzcnp55iBydWNoCiAgICBydWNoICAgICAgLSBwcnplbm9zaSBuYWQgdGVrc3RlbSBkbyBvcGVyb3dhbmlhLCB0YWtpbSBqYWsgIHcgKHd5cmF6KSwKLQkgICAgICAgJCAgKGRvIGtv8WNhIGxpbmlpKSwgZXRjLgorCSAgICAgICAkICAoZG8ga2/xY2EgbGluaWkpIGV0Yy4KIAotICA2LiBCeSBwcnplapzmIGRvIHBvY3q5dGt1IGxpbmlpIHW/eWogemVyYTogIDAKLSAgNy4gQnkgY29mbrnmIHBvcHJ6ZWRuaWUgcG9sZWNlbmllLCB3cGlzejoJICB1IChtYbNlIHUpCi0gICAgIEJ5IGNvZm655iB3c3p5c3RraWUgem1pYW55IHcgbGluaWkgd3Bpc3o6CSAgVSAod2llbGtpZSBVKQotICAgICBCeSBjb2ZuueYgY29mbmnqY2lhIHdwaXN6OgkJCSAgQ1RSTC1SCisgIDYuIEJ5IHByemVqnOYgZG8gcG9jerl0a3UgbGluaWksIHW/eWogemVyYTogIDAKKyAgNy4gQnkgY29mbrnmIHBvcHJ6ZWRuaWUgcG9sZWNlbmllLCB3cGlzejoJICB1ICAobWGzZSB1KQorICAgICBCeSBjb2ZuueYgd3N6eXN0a2llIHptaWFueSB3IGxpbmlpLCB3cGlzejoJICBVICAod2llbGtpZSBVKQorICAgICBCeSBjb2ZuueYgY29mbmnqY2llLCB3cGlzejoJCQkgIENUUkwtUgogCiAKIApAQCAtMzc5LDcgKzM3OSw3IEBACiAKICAgMi4gV3Bpc3ogIGRkICBhYnkgdXN1brnmIGxpbmnqIGkgcHJ6ZWNob3dh5iBquSB3IHJlamVzdHJ6ZSBWaW1hLgogCi0gIDMuIFByemVuaWWcIGt1cnNvciBkbyBsaW5paSBjKSwgUE9XWa9FSiB0ZWogZ2R6aWUgdXN1bmnqdGEgbGluaWEgcG93aW5uYQorICAzLiBQcnplbmllnCBrdXJzb3IgZG8gbGluaWkgYyksIFBPV1mvRUogdGVqLCBnZHppZSB1c3Vuaep0YSBsaW5pYSBwb3dpbm5hCiAgICAgIHNp6iB6bmFqZG93YeYuCiAKICAgNC4gV2NpnG5paiAgcCAgYnkgd3N0YXdp5iBsaW5p6iBwb25pv2VqIGt1cnNvcmEuCkBAIC00MDQsMjEgKzQwNCwyMSBAQAogCiAgIDMuIFdwaXN6ICByICBhIHBvdGVtIHpuYWsgamFraSBwb3dpbmllbiBnbyB6YXN0uXBp5i4KIAotICA0LiBQb3d0YXJ6YWoga3Jva2kgMi4gaSAzLiBkb3Dza2kgcGllcndzemEgbGluaWEgbmllIGLqZHppZSB0YWthIGphayBkcnVnYS4KKyAgNC4gUG93dGFyemFqIGtyb2tpIDIuIGkgMy4gZG9w82tpIHBpZXJ3c3phIGxpbmlhIG5pZSBi6mR6aWUgdGFrYSwgamFrIGRydWdhLgogCi0tLS0+ICBLamVkeSB0ZW4gd2llcnN6IGJpsyB3c3Tza2l3YW55IGt0b5wgd2Npem65syBwZXLqIHqzeWNoIGtsYXdpcnp5IQotLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiebMgd3N0dWtpd2FueSBrdG+cIHdjaXNuubMgcGFy6iB6s3ljaCBrbGF3aXN6eSEKKy0tLT4gIEtqZWR5IHRlbiB3aWVyc3ogYmmzIHdzdPNraXdhbnksIGt0b5wgd2Npem65syBwZXLqIHqzeWNoIGtsYXdpcnp5IQorLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiebMgd3N0dWtpd2FueSwga3RvnCB3Y2lzbrmzIHBhcuogerN5Y2gga2xhd2lzenkhCiAKICAgNS4gVGVyYXogY3phcyBuYSBMZWtjauogMy4zLgogCiAKLVVXQUdBOiBQYW1p6nRhaiBieSB1Y3p55iBzaeog5ndpY3q5YywgYSBuaWUgcGFtaepjaW93by4KK1VXQUdBOiBQYW1p6nRhaiwgYnkgdWN6eeYgc2nqIOZ3aWN6uWMsIGEgbmllIHBhbWnqY2lvd28uCiAKIAogfn5+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+CiAJCSAgICAgTGVrY2phIDMuMy46IE9QRVJBVE9SIENIQU5HRSAoem1pZfEpCiAKLQkJICoqIEJ5IHptaWVuaeYgZG8ga2/xY2Egd3lyYXp1IHdwaXN6ICBjZSAuICoqCisJCSAqKiBCeSB6bWllbmnmIGRvIGtv8WNhIHd5cmF6dSwgd3Bpc3ogIGNlIC4gKioKIAogICAxLiBQcnplbmllnCBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmm/ZWogb3puYWN6b25laiAtLS0+LgogCkBAIC00MjgsNyArNDI4LDcgQEAKIAogICA0LiBXY2mcbmlqIDxFU0M+IGkgcHJ6ZWpknyBkbyBuYXN06nBuZWogcGxhbm93YW5laiB6bWlhbnkuCiAKLSAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9w82tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYupkemllIHRha2llIHNhbWUKKyAgNS4gUG93dGFyemFqIGtyb2tpIDMuIGkgNC4gZG9w82tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYupkemllIHRha2llIHNhbWUsCiAgICAgIGphayBkcnVnaWUuCiAKIC0tLT4gVGEgbHVub3MgbWEgcGlyZSBzs/N3LCBrdPNyZSB0v2luYSB6Ym5pYyB1v2lmYWpvbmMgcGNtYXp1IHptaWXxLgpAQCAtNDQyLDEzICs0NDIsMTMgQEAKIAkJICAgICAgTGVrY2phIDMuNC46IFdJykNFSiBaTUlBTiBVr1lXQUqlQyBjCiAKIAotCSoqIFBvbGVjZW5pZSBjaGFuZ2Ugdb95d2EgdGFraWNoIHNhbXljaCBydWNo83cgamFrIGRlbGV0ZS4gKioKKwkqKiBQb2xlY2VuaWUgY2hhbmdlIHW/eXdhIHRha2ljaCBzYW15Y2ggcnVjaPN3LCBqYWsgZGVsZXRlLiAqKgogCi0gIDEuIE9wZXJhdG9yIGNoYW5nZSBkemlhs2EgdGFrIHNhbW8gamFrIGRlbGV0ZS4gRm9ybWF0IHd5Z2y5ZGEgdGFrOgorICAxLiBPcGVyYXRvciBjaGFuZ2UgZHppYbNhIHRhayBzYW1vLCBqYWsgZGVsZXRlLiBGb3JtYXQgd3lnbLlkYSB0YWs6CiAKIAkgICAgYyAgIFtsaWN6YmFdICAgcnVjaAogCi0gIDIuIFJ1Y2h5IHO5IHRha79lIHRha2llIHNhbWUsIG5wLjogIHcgICh3eXJheiksICAkICAoa29uaWVjIGxpbmlpKSwgZXRjLgorICAyLiBSdWNoeSBzuSB0YWu/ZSB0YWtpZSBzYW1lLCBucC46ICB3ICAod3lyYXopLCAgJCAgKGtvbmllYyBsaW5paSkgZXRjLgogCiAgIDMuIFByemVuaWWcIHNp6iBkbyBwaWVyd3N6ZWogbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4KIApAQCAtNDU2LDcgKzQ1Niw3IEBACiAKICAgNS4gV3Bpc3ogIGMkICwgcG9wcmF3IGtvbmllYyB3aWVyc3phIGkgd2NpnG5paiA8RVNDPi4KIAotLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnmIHBvcHJhd2lvbnkgYWJ5IHd5Z2y5ZGGzIHRhayBqYWsgZHJ1Z2kuCistLS0+IEtvbmllYyB0ZWdvIHdpZXJzemEgbXVzaSBieeYgcG9wcmF3aW9ueSwgYWJ5IHd5Z2y5ZGGzIHRhaywgamFrIGRydWdpLgogLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnmIHBvcHJhd2lvbnkgdb95d2FquWMgcG9sZWNlbmlhICBjJCAuCiAKIFVXQUdBOiAgTW+/ZXN6IHW/eXdh5iA8QlM+IGFieSBwb3ByYXdpYeYgYrPqZHkgdyBjemFzaWUgcGlzYW5pYS4KQEAgLTQ2OSwxMSArNDY5LDExIEBACiAgICAgIHBvbGVjZW5pZSB3c3Rhd2lhIHNrYXNvd2FueSB0ZWtzdCBQTyBrdXJzb3J6ZSAoamWcbGkgY2GzYSBsaW5pYQogICAgICB6b3N0YbNhIHVzdW5p6nRhLCB6b3N0YW5pZSBvbmEgdW1pZXN6Y3pvbmEgdyBsaW5paSBwb25pv2VqIGt1cnNvcmEpLgogCi0gIDIuIEJ5IHphbWllbmnmIHpuYWsgcG9kIGt1cnNvcmVtIHdjaZxuaWogIHIgIGEgcG90ZW0gem5haywga3TzcnkgbWEgemFzdLlwaeYKKyAgMi4gQnkgemFtaWVuaeYgem5hayBwb2Qga3Vyc29yZW0sIHdjaZxuaWogIHIgIGEgcG90ZW0gem5haywga3TzcnkgbWEgemFzdLlwaeYKICAgICAgb3J5Z2luYWxueS4KIAotICAzLiBPcGVyYXRvciBjaGFuZ2UgcG96d2FsYSBDaSBuYSB6YXN0uXBpZW5pZSBvZCBrdXJzb3JhIGRvIG1pZWpzY2EgZ2R6aWUKLSAgICAgemFicmGzYnkgY2nqIHJ1Y2guIE5wLiB3cGlzeiAgY2UgIGFieSB6YW1pZW5p5iB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtv8WNhCisgIDMuIE9wZXJhdG9yIGNoYW5nZSBwb3p3YWxhIENpIG5hIHphc3S5cGllbmllIG9kIGt1cnNvcmEgZG8gbWllanNjYSwgZ2R6aWUKKyAgICAgemFicmGzYnkgQ2nqIHJ1Y2guIE5wLiB3cGlzeiAgY2UgIGFieSB6YW1pZW5p5iB0ZWtzdCBvZCBrdXJzb3JhIGRvIGtv8WNhCiAgICAgIHd5cmF6dSwgIGMkICBhYnkgem1pZW5p5iB0ZWtzdCBkbyBrb/FjYSBsaW5paS4KIAogICA0LiBGb3JtYXQgZG8gcG9sZWNlbmlhIGNoYW5nZSAoem1pZfEpOgpAQCAtNDk3LDEyICs0OTcsMTIgQEAKICAgICAgWmFwYW1p6nRhaiBudW1lciBsaW5paSBkbGEgcG90cnplYiBrcm9rdSAzLgogCiBVV0FHQTogTW+/ZXN6IHRlvyB6b2JhY3p55iBwb3p5Y2rqIGt1cnNvcmEgdyBwcmF3eW0sIGRvbG55bSByb2d1IGVrcmFudS4KLSAgICAgICBEemllamUgc2nqIHRhayBraWVkeSB1c3Rhd2lvbmEgamVzdCBvcGNqYSAncnVsZXInICh3eWphnG5pb25lIHcgbGVrY2ppIDYuKS4KKyAgICAgICBEemllamUgc2nqIHRhayBraWVkeSB1c3Rhd2lvbmEgamVzdCBvcGNqYSAncnVsZXInICh3aepjZWogdyBsZWtjamkgNi4pLgogCiAgIDIuIFdjaZxuaWogRyBhYnkgcHJ6ZWqc5iBuYSBrb25pZWMgcGxpa3UuCiAgICAgIFdjaZxuaWogIGdnICBhYnkgcHJ6ZWqc5iBkbyBwb2N6uXRrdSBwbGlrdS4KIAotICAzLiBXcGlzeiBudW1lciBsaW5paSwgdyBrdPNyZWogYnmzZZwgYSBwb3RlbSAgRyAuIFRvIHByemVuaWVzaWUgY2nqCisgIDMuIFdwaXN6IG51bWVyIGxpbmlpLCB3IGt083JlaiBiebNlnCBhIHBvdGVtICBHIC4gVG8gcHJ6ZW5pZXNpZSBDaeoKICAgICAgeiBwb3dyb3RlbSBkbyBsaW5paSwgdyBrdPNyZWogYnmzZZwga2llZHkgd2Npc265s2WcIENUUkwtRy4KIAogICA0LiBKZZxsaSBjenVqZXN6IHNp6iB3eXN0YXJjemFquWNvIHBld25pZSwgd3lrb25haiBrcm9raSAxLTMuCkBAIC01MTEsMTAgKzUxMSwxMCBAQAogCQkJIExla2NqYSA0LjIuOiBQT0xFQ0VOSUUgU1pVS0FKCiAKIAotCSAgICAgKiogV3Bpc3ogIC8gIGEgbmFzdOpwbmllIHd5cmG/ZW5pZSBhYnkgamUgem5hbGWf5i4gKioKKwkgICAgICoqIFdwaXN6ICAvICBhIG5hc3TqcG5pZSB3eXJhv2VuaWUsIGFieSBqZSB6bmFsZZ/mLiAqKgogCi0gIDEuIFcgdHJ5YmllIE5vcm1hbCB3cGlzeiAgLyAuIFphdXdhvywgv2Ugem5hayB0ZW4sIG9yYXoga3Vyc29yIHBvamF3abkKLSAgICAgc2nqIG5hIGRvbGUgZWtyYW51IHRhayBzYW1vIGphayBwb2xlY2VuaWUgIDogLgorICAxLiBXIHRyeWJpZSBOb3JtYWwgd3Bpc3ogIC8gLiBaYXV3Yb8sIL9lIHpuYWsgdGVuIG9yYXoga3Vyc29yIHBvamF3abkKKyAgICAgc2nqIG5hIGRvbGUgZWtyYW51IHRhayBzYW1vLCBqYWsgcG9sZWNlbmllICA6IC4KIAogICAyLiBUZXJheiB3cGlzeiAgYrNvbmQ8RU5URVI+IC4gIFRvIGplc3Qgc7Nvd28sIGt083JlZ28gY2hjZXN6IHN6dWth5i4KIApAQCAtNTIzLDExICs1MjMsMTEgQEAKIAogICA0LiBKZZxsaSBjaGNlc3ogc3p1a2HmIGZyYXp5IGRvIHR5s3UsIHW/eWogcG9sZWNlbmlhICA/ICB6YW1pYXN0ICAvIC4KIAotICA1LiBBYnkgd3LzY2nmIGdkemllIGJ5s2WcIHdjaZxuaWogIENUUkwtTy4gUG93dGFyemFqIGJ5IHdy82Np5iBkYWxlai4gQ1RSTC1JCisgIDUuIEFieSB3cvNjaeYgZ2R6aWUgYnmzZZwsIHdjaZxuaWogIENUUkwtTy4gUG93dGFyemFqLCBieSB3cvNjaeYgZGFsZWouIENUUkwtSQogICAgICBpZHppZSBkbyBwcnpvZHUuCiAKLVV3YWdhOiAgJ2Kzb25kJyB0byBuaWUgamVzdCBtZXRvZGEgYnkgcHJ6ZWxpdGVyb3dh5iBis7lkOyAnYrNvbmQnIHRvIGKzuWQuCi1Vd2FnYTogIEtpZWR5IHN6dWthbmllIG9zablnbmllIGtvbmllYyBwbGlrdSBi6mR6aWUga29udHludW93YbNvIG9kIHBvY3q5dGt1CitVd2FnYTogICdis29uZCcgdG8gbmllIGplc3QgbWV0b2RhLCBieSBwcnplbGl0ZXJvd2HmIGKzuWQ7ICdis29uZCcgdG8gYrO5ZC4KK1V3YWdhOiAgS2llZHkgc3p1a2FuaWUgb3NpuWduaWUga29uaWVjIHBsaWt1LCBi6mR6aWUga29udHludW93YW5lIG9kIHBvY3q5dGt1CiAgICAgICAgIG8gaWxlIG9wY2phICd3cmFwc2NhbicgbmllIHpvc3Rhs2EgcHJ6ZXN0YXdpb25hLgogCiB+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+fn4KQEAgLTU3MSwxNiArNTcxLDE2IEBACiAKICAgNC4gQWJ5IHptaWVuaeYgd3N6eXN0a2llIHd5c3S5cGllbmlhILNh8WN1Y2hhIHpuYWvzdyBwb21p6mR6eSBkd29tYSBsaW5pYW1pLAogICAgICB3cGlzejogOiMsI3Mvc3RhcmUvbm93ZS9nIGdkemllICMsIyBzuSBudW1lcmFtaSBsaW5paSBvZ3JhbmljemFquWN5Y2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24gZ2R6aWUgbWEgbmFzdLlwaeYgemFtaWFuYS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24sIGdkemllIG1hIG5hc3S5cGnmIHphbWlhbmEuCiAgICAgIHdwaXN6ICA6JXMvc3RhcmUvbm93ZS9nICAgYnkgem1pZW5p5iB3c3p5c3RraWUgd3lzdLlwaWVuaWEgdyBjYbN5bSBwbGlrdS4KICAgICAgd3Bpc3ogIDolcy9zdGFyZS9ub3dlL2djICBieSB6bWllbmnmIHdzenlzdGtpZSB3eXN0uXBpZW5pYSB3IGNhs3ltCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxpa3UsIHByb3N6uWMgbyBwb3R3aWVyZHplbmllIHphIGthv2R5bSByYXplbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsaWt1LCBwcm9zerljIG8gcG90d2llcmR6ZW5pZSB6YSBrYb9keW0gcmF6ZW0uCiAKIH5+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+fgogCQkJICAgICBMRUtDSkEgNC4gUE9EU1VNT1dBTklFCiAKICAgMS4gQ1RSTC1HICAgcG9rYb9lIFR3b2q5IHBvenljauogdyBwbGlrdSBpIHN0YXR1cyBwbGlrdS4gIFNISUZULUcgcHJ6ZW5vc2kKLQkgICAgICBjaeogZG8ga2/xY2EgcGxpa3UuCisJICAgICAgQ2nqIGRvIGtv8WNhIHBsaWt1LgogICAgICBHICAgICAgICBwcnplbm9zaSBkbyBrb/FjYSBwbGlrdS4KICAgICAgbGljemJhIEcgcHJ6ZW5vc2kgZG8gbGluaWkgW2xpY3piYV0uCiAgICAgIGdnICAgICAgIHByemVub3NpIGRvIHBpZXJ3c3plaiBsaW5paS4KQEAgLTU4OCwyMiArNTg4LDIyIEBACiAgIDIuIFdwaXNhbmllICAvICBhIG5hc3TqcG5pZSCzYfFjdWNoYSB6bmFr83cgc3p1a2Egs2HxY3VjaGEgRE8gUFJaT0RVLgogICAgICBXcGlzYW5pZSAgPyAgYSBuYXN06nBuaWUgs2HxY3VjaGEgem5ha/N3IHN6dWthILNh8WN1Y2hhIERPIFRZo1UuCiAgICAgIFBvIHd5c3p1a2l3YW5pdSB3Y2mcbmlqICBuICBieSB6bmFsZZ/mIG5hc3TqcG5lIHd5c3S5cGllbmllIHN6dWthbmVqCi0gICAgIGZyYXp5IHR5bSBzYW15bSBraWVydW5rdSBsdWIgIE4gIGJ5IHN6dWth5iB3IGtpZXJ1bmt1IHByemVjaXdueW0uCisgICAgIGZyYXp5IHcgdHltIHNhbXltIGtpZXJ1bmt1IGx1YiAgTiAgYnkgc3p1a2HmIHcga2llcnVua3UgcHJ6ZWNpd255bS4KICAgICAgQ1RSTC1PIHByemVub3NpIGRvIHN0YXJzenljaCBwb3p5Y2ppLCBDVFJMLUkgZG8gbm93c3p5Y2guCiAKICAgMy4gV3Bpc2FuaWUgICUgIGdkeSBrdXJzb3Igem5hamR1amUgc2nqIG5hICgsKSxbLF0seywgbHViIH0gbG9rYWxpenVqZQogICAgICBwYXJ1arljeSB6bmFrLgogCi0gIDQuIEJ5IHphbWllbmnmIHBpZXJ3c3p5IHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzeiAgICAgIDpzL3N0YXJ5L25vd3kKLSAgICAgQnkgemFtaWVuaeYgd3N6eXN0a2llIHN0YXJ5IG5hIG5vd3kgdyBsaW5paSB3cGlzeiAgICAgOnMvc3Rhcnkvbm93eS9nCisgIDQuIEJ5IHphbWllbmnmIHBpZXJ3c3p5IHN0YXJ5IG5hIG5vd3kgdyBsaW5paSwgd3Bpc3ogICAgICA6cy9zdGFyeS9ub3d5CisgICAgIEJ5IHphbWllbmnmIHdzenlzdGtpZSBzdGFyeSBuYSBub3d5IHcgbGluaWksIHdwaXN6ICAgICA6cy9zdGFyeS9ub3d5L2cKICAgICAgQnkgemFtaWVuaeYgZnJhenkgcG9taepkenkgZHdvbWEgbGluaWFtaSAjIHdwaXN6ICAgICAgOiMsI3Mvc3Rhcnkvbm93eS9nCi0gICAgIEJ5IHphbWllbmnmIHdzenlzdGtpZSB3eXN0uXBpZW5pYSB3IHBsaWt1IHdwaXN6ICAgICAgIDolcy9zdGFyeS9ub3d5L2cKLSAgICAgQnkgVmltIHByb3NpsyBDaeogbyBwb3R3aWVyZHplbmllIGRvZGFqICdjJwkgICA6JXMvc3Rhcnkvbm93eS9nYworICAgICBCeSB6YW1pZW5p5iB3c3p5c3RraWUgd3lzdLlwaWVuaWEgdyBwbGlrdSwgd3Bpc3ogICAgICAgOiVzL3N0YXJ5L25vd3kvZworICAgICBCeSBWaW0gcHJvc2mzIENp6iBvIHBvdHdpZXJkemVuaWUsIGRvZGFqICdjJwkgICA6JXMvc3Rhcnkvbm93eS9nYwogfn5+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+Ci0JCSBMZWtjamEgNS4xLjogSkFLIFdZS09OQcYgUE9MRUNFTklBIFpFV07KVFJaTkUKKwkJIExla2NqYSA1LjEuOiBKQUsgV1lLT05BxiBQT0xFQ0VOSUEgWkVXTspUUlpORT8KIAogCi0JKiogV3Bpc3ogIDohICBhIG5hc3TqcG5pZSB6ZXdu6nRyem5lIHBvbGVjZW5pZSBieSBqZSB3eWtvbmHmLiAqKgorCSoqIFdwaXN6ICA6ISAgYSBuYXN06nBuaWUgemV3bup0cnpuZSBwb2xlY2VuaWUsIGJ5IGplIHd5a29uYeYuICoqCiAKICAgMS4gV3Bpc3ogem5ham9tZSBwb2xlY2VuaWUgIDogIGJ5IHVzdGF3aeYga3Vyc29yIG5hIGRvbGUgZWtyYW51LiBUbyBwb3p3YWxhCiAgICAgIG5hIHdwcm93YWR6ZW5pZSBrb21lbmR5IGxpbmlpIHBvbGVjZfEuCkBAIC02MjYsMjAgKzYyNiwyMCBAQAogCQkgICAgTGVrY2phIDUuMi46IFdJykNFSiBPIFpBUElTWVdBTklVIFBMSUvTVwogCiAKLQkgICAqKiBCeSB6YWNob3dh5iB6bWlhbnkgdyB0ZWucY2kgd3Bpc3ogOncgTkFaV0FfUExJS1UgLiAqKgorCSAgICoqIEJ5IHphY2hvd2HmIHptaWFueSB3IHRla5xjaWUsIHdwaXN6IDp3IE5BWldBX1BMSUtVIC4gKioKIAogICAxLiBXcGlzeiAgOiFkaXIgIGx1YiAgOiFscyAgYnkgem9iYWN6eeYgc3BpcyBwbGlr83cgdyBrYXRhbG9ndS4KLSAgICAgSnW/IHdpZXN6LCC/ZSBtdXNpc3ogd2Npc2655iA8RU5URVI+IHBvIHR5bS4KKyAgICAgSnW/IHdpZXN6LCC/ZSBtdXNpc3ogcG8gdHltIHdjaXNuueYgPEVOVEVSPi4KIAotICAyLiBXeWJpZXJ6IG5henfqIHBsaWt1IGpha2EgamVzemN6ZSBuaWUgaXN0bmllamUsIG5wLiBURVNULgorICAyLiBXeWJpZXJ6IG5henfqIHBsaWt1LCBqYWthIGplc3pjemUgbmllIGlzdG5pZWplLCBucC4gVEVTVC4KIAogICAzLiBUZXJheiB3cGlzejogICA6dyBURVNUICAgKGdkemllIFRFU1QgamVzdCBuYXp3uSBwbGlrdSBqYWu5IHd5YnJhs2WcLikKIAogICA0LiBUbyBwb2xlY2VuaWUgemFwYW1p6nRhIGNhs3kgcGxpayAoVmltIFR1dG9yKSBwb2QgbmF6d7kgVEVTVC4KLSAgICAgQnkgdG8gc3ByYXdkemnmIHdwaXN6ICA6IWRpciAgbHViICA6IWxzICwgv2VieSB6bm93dSB6b2JhY3p55iBsaXN06iBwbGlr83cuCisgICAgIEJ5IHRvIHNwcmF3ZHpp5iwgd3Bpc3ogIDohZGlyICBsdWIgIDohbHMgIL9lYnkgem5vd3Ugem9iYWN6eeYgbGlzdOogcGxpa/N3LgogCiBVd2FnYTogWmF1d2G/LCC/ZSBnZHlieZwgdGVyYXogd3lzemVksyB6IFZpbWEsIGEgbmFzdOpwbmllIHdzemVksyBwb25vd25pZQotICAgICAgIHBvbGVjZW5pZW0gIHZpbSBURVNUICwgcGxpayBiebNieSBkb2uzYWRuuSBrb3BpuSB0dXRvcmlhbGEga2llZHkgZ28KKyAgICAgICBwb2xlY2VuaWVtICB2aW0gVEVTVCAsIHBsaWsgYnmzYnkgZG9rs2Fkbrkga29wabkgdHV0b3JpYWxhLCBraWVkeSBnbwogICAgICAgIHphcGlzeXdhs2WcLgogCiAgIDUuIFRlcmF6IHVzdfEgcGxpayB3cGlzdWq5YyAoTVMtRE9TKToJCSAgIDohZGVsIFRFU1QKQEAgLTY0OSw3ICs2NDksNyBAQAogCQkgICAgTGVrY2phIDUuMy46IFdZQlJBTklFIFRFS1NUVSBETyBaQVBJU1UKIAogCi0JICAqKiBCeSB6YWNob3dh5iBjeuqc5iBwbGlrdSB3cGlzeiAgdiBydWNoIDp3IE5BWldBX1BMSUtVICoqCisJICAqKiBCeSB6YWNob3dh5iBjeuqc5iBwbGlrdSwgd3Bpc3ogIHYgcnVjaCA6dyBOQVpXQV9QTElLVSAqKgogCiAgIDEuIFByemVuaWWcIGt1cnNvciBkbyB0ZWdvIHdpZXJzemEuCiAKQEAgLTY2NCwyNiArNjY0LDI2IEBACiAgIDUuIFZpbSB6YXBpc3plIHd5YnJhbmUgbGluaWUgZG8gcGxpa3UgVEVTVC4gVb95aiAgOiFkaXIgIGx1YiAgOiFscyAsIL9lYnkgdG8KICAgICAgem9iYWN6eeYuIEplc3pjemUgZ28gbmllIHVzdXdhaiEgVb95amVteSBnbyB3IG5hc3TqcG5laiBsZWtjamkuCiAKLVVXQUdBOiBXY2mcbmnqY2llICB2ICB6YWN6eW5hIHRyeWIgV2l6dWFsbnkuIE1vv2VzeiBwb3J1c3ph5iBrdXJzb3JlbSBieQotICAgICAgIHptaWVuaeYgcm96bWlhcnkgemF6bmFjemVuaWEuIE1vv2VzeiB0Zb8gdb955iBvcGVyYXRvcmEgYnkgenJvYmnmIGNvnAorVVdBR0E6IFdjaZxuaepjaWUgIHYgIHphY3p5bmEgdHJ5YiBXaXp1YWxueS4gTW+/ZXN6IHBvcnVzemHmIGt1cnNvcmVtLCBieQorICAgICAgIHptaWVuaeYgcm96bWlhcnkgemF6bmFjemVuaWEuIE1vv2VzeiB0Zb8gdb955iBvcGVyYXRvcmEsIGJ5IHpyb2Jp5iBjb5wKICAgICAgICB6IHRla3N0ZW0uIE5hIHByenlrs2FkICBkICB1c3V3YSB0ZWtzdC4KIAogfn5+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+CiAJCSAgIExla2NqYSA1LjQuOiBXU1RBV0lBTklFIEkgo6VDWkVOSUUgUExJS9NXCiAKIAotCSAgICAqKiBCeSB3c3Rhd2nmIHphd2FydG+c5iBwbGlrdSB3cGlzeiAgIDpyIE5BWldBX1BMSUtVICoqCisJICAgICoqIEJ5IHdzdGF3aeYgemF3YXJ0b5zmIHBsaWt1LCB3cGlzeiAgIDpyIE5BWldBX1BMSUtVICoqCiAKICAgMS4gVW1pZZzmIGt1cnNvciB0db8gcG93eb9laiB0ZWogbGluaWkuCiAKIFVXQUdBOiBQbyB3eWtvbmFuaXUga3Jva3UgMi4gem9iYWN6eXN6IHRla3N0IHogTGVrY2ppIDUuMy4gUG90ZW0gcHJ6ZWpknwotICAgICAgIGRvIERPo1UgYnkgem9iYWN6eeYgcG9ub3duaWUgdOogbGVrY2rqLgorICAgICAgIGRvIERPo1UsIGJ5IHpvYmFjennmIHBvbm93bmllIHTqIGxla2Nq6i4KIAogICAyLiBUZXJheiB3Y3p5dGFqIHBsaWsgVEVTVCB1v3l3YWq5YyBwb2xlY2VuaWEgIDpyIFRFU1QgLCBnZHppZSBURVNUCiAgICAgIGplc3QgbmF6d7kgcGxpa3UuCiAgICAgIFdjenl0YW55IHBsaWsgamVzdCB1bWllc3pjem9ueSBwb25pv2VqIGxpbmlpIHoga3Vyc29yZW0uCiAKLSAgMy4gQnkgc3ByYXdkemnmIGN6eSBwbGlrIHpvc3RhsyB3Y3p5dGFueSBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCC/ZQorICAzLiBCeSBzcHJhd2R6aeYgY3p5IHBsaWsgem9zdGGzIHdjenl0YW55LCBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCC/ZQogICAgICB0ZXJheiBzuSBkd2llIGtvcGllIExla2NqaSA1LjMuLCBvcnlnaW5hsyBpIGtvcGlhIHogcGxpa3UuCiAKIFVXQUdBOiBNb79lc3ogdGW/IHdjenl0YeYgd3lqnGNpZSB6ZXdu6nRyem5lZ28gcG9sZWNlbmlhLiBOYSBwcnp5a7NhZApAQCAtNzIzLDE0ICs3MjMsMTQgQEAKIAogICAxLiBQcnplbmllnCBrdXJzb3IgZG8gbGluaWkgcG9uab9laiBvem5hY3pvbmVqIC0tLT4uCiAKLSAgMi4gV3Bpc3ogIG8gIChtYbNlKSBieSBvdHdvcnp55iBsaW5p6iBQT05Jr0VKIGt1cnNvcmEgaSBwcnplbmllnOYgc2nqCisgIDIuIFdwaXN6ICBvICAobWGzZSksIGJ5IG90d29yennmIGxpbmnqIFBPTkmvRUoga3Vyc29yYSBpIHByemVuaWWc5iBzaeoKICAgICAgZG8gdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgogCiAgIDMuIFdwaXN6IHRyb2No6iB0ZWtzdHUgaSB3Y2mcbmlqIDxFU0M+IGJ5IHd5apzmIHogdHJ5YnUgSW5zZXJ0ICh3cHJvd2FkemFuaWUpLgogCiAtLS0+IFBvIHdjaZxuaepjaXUgIG8gIGt1cnNvciB6bmFqZHppZSBzaeogdyBvdHdhcnRlaiBsaW5paSB3IHRyeWJpZSBJbnNlcnQuCiAKLSAgNC4gQnkgb3R3b3J6eeYgbGluaeogUE9XWa9FSiBrdXJzb3JhIHdjaZxuaWogd2llbGtpZSAgTyAgemFtaWFzdCBtYbNlZ28KKyAgNC4gQnkgb3R3b3J6eeYgbGluaeogUE9XWa9FSiBrdXJzb3JhLCB3Y2mcbmlqIHdpZWxraWUgIE8gIHphbWlhc3QgbWGzZWdvCiAgICAgIG8gLiBXeXBy82J1aiB0byBuYSBsaW5paSBwb25pv2VqLgogCiAtLS0+IE90d/NyeiBsaW5p6iBwb3d5v2VqIHdjaXNrYWq5YyBTSElGVC1PIGdkeSBrdXJzb3IgYupkemllIG5hIHRlaiBsaW5paS4KQEAgLTc0Nyw5ICs3NDcsOSBAQAogCiAgIDIuIFdjaXNrYWogIGUgIGRvcPNraSBrdXJzb3IgbmllIGLqZHppZSBuYSBrb/FjdSBsaSAuCiAKLSAgMy4gV3Bpc3ogIGEgIChtYbNlKSBhYnkgZG9kYeYgdGVrc3QgWkEgem5ha2llbSBwb2Qga3Vyc29yZW0uCisgIDMuIFdwaXN6ICBhICAobWGzZSksIGFieSBkb2Rh5iB0ZWtzdCBaQSB6bmFraWVtIHBvZCBrdXJzb3JlbS4KIAotICA0LiBEb2tv8WN6IHd5cmF6IHRhayBqYWsgdyBsaW5paSBwb25pv2VqLiBXY2mcbmlqIDxFU0M+IGFieSBvcHWcY2nmIHRyeWIKKyAgNC4gRG9rb/FjeiB3eXJheiB0YWssIGphayB3IGxpbmlpIHBvbmm/ZWouIFdjaZxuaWogPEVTQz4gYWJ5IG9wdZxjaeYgdHJ5YgogICAgICBJbnNlcnQuCiAKICAgNS4gVb95aiAgZSAgYnkgcHJ6ZWqc5iBkbyBrb2xlam5lZ28gbmllZG9rb/Fjem9uZWdvIHd5cmF6dSBpIHBvd3RhcnphaiBrcm9raQpAQCAtNzU4LDcgKzc1OCw3IEBACiAtLS0+IFRhIGxpIHBveiBDaSDmd2kgZG9kYXcgdGVrcyBkbyBrb/EgbGluCiAtLS0+IFRhIGxpbmlhIHBvendvbGkgQ2kg5ndpY3p55iBkb2Rhd2FuaWUgdGVrc3R1IGRvIGtv8WNhIGxpbmlpLgogCi1Vd2FnYTogIGEgLCAgaSAgb3JheiAgQSAgcHJvd2FkerkgZG8gdHJ5YnUgSW5zZXJ0LCBqZWR5brkgcvO/bmljuSBqZXN0IG1pZWpzY2UKK1V3YWdhOiAgYSAsICBpICBvcmF6ICBBICBwcm93YWR6uSBkbyB0cnlidSBJbnNlcnQsIGplZHluuSBy879uaWO5IGplc3QgbWllanNjZSwKICAgICAgICBnZHppZSBub3dlIHpuYWtpIGLqZLkgZG9kYXdhbmUuCiB+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+fn4KIAkJICAgTGVrY2phIDYuMy46IElOTkEgV0VSU0pBIFJFUExBQ0UgKHphbWlhbmEpCkBAIC03OTEsMTYgKzc5MSwxNiBAQAogCiAgIDEuIFByemVqZJ8gZG8gbGluaWkgb3puYWN6b25laiAtLS0+IGkgdW1pZZzmIGt1cnNvciB6YSAiYSkiLgogCi0gIDIuIFdlamSfIHcgdHJ5YiBWaXN1YWwgIHYgIGkgcHJ6ZW5pZZwga3Vyc29yIG5hIHBvY3q5dGVrICJwaWVyd3N6eSIuCisgIDIuIFdlamSfIHcgdHJ5YiBXaXp1YWxueSAgdiAgaSBwcnplbmllnCBrdXJzb3IgbmEgcG9jerl0ZWsgInBpZXJ3c3p5Ii4KIAotICAzLiBXY2mcbmlqICB5ICBhYnkgeWFua293YeYgKGtvcGlvd2HmKSBwb2Scd2lldGxvbnkgdGVrc3QuCisgIDMuIFdjaZxuaWogIHkgIGFieSBrb3Bpb3dh5iAoeWFua293YeYpIHBvZJx3aWV0bG9ueSB0ZWtzdC4KIAogICA0LiBQcnplbmllnCBrdXJzb3IgZG8ga2/xY2EgbmFzdOpwbmVqIGxpbmlpOiAgaiQKIAotICA1LiBXY2mcbmlqICBwICBhYnkgd3Bha293YeYgKHBhc3RlKSB0ZWtzdC4gIERvZGFqOiAgYSBkcnVnaTxFU0M+IC4KKyAgNS4gV2NpnG5paiAgcCAgYWJ5IHdrbGVp5iAod3Bha293YeYpIHRla3N0LiAgRG9kYWo6ICBhIGRydWdpPEVTQz4gLgogCi0gIDYuIFW/eWogdHJ5YnUgV2l6dWFsbmVnbyBhYnkgd3licmHmICIgZWxlbWVudC4iLCB5YW5rdWogZ28gIHkgLCBwcnplamSfIGRvCi0gICAgIGtv8WNhIG5hc3TqcG5laiBsaW5paSAgaiQgaSB1cGFrdWogdGFtIHRla3N0IHogIHAgLgorICA2LiBVv3lqIHRyeWJ1IFdpenVhbG5lZ28sIGFieSB3eWJyYeYgIiBlbGVtZW50LiIsIHlhbmt1aiBnbyAgeSAsIHByemVqZJ8gZG8KKyAgICAga2/xY2EgbmFzdOpwbmVqIGxpbmlpICBqJCAgaSB1cGFrdWogdGFtIHRla3N0IHogIHAgLgogCiAtLS0+ICBhKSB0byBqZXN0IHBpZXJ3c3p5IGVsZW1lbnQuCiAgICAgICBiKQpAQCAtODEwLDcgKzgxMCw3IEBACiAJCQkgTGVrY2phIDYuNS46IFVTVEFXSUFOSUUgT1BDSkkKIAogCi0qKiBVc3Rhd2lhbmllIG9wY2ppIHRhayBieSBzenVrYWogbHViIHN1YnN0eXR1Y2phIGlnbm9yb3dhs3kgd2llbGtvnOYgbGl0ZXIgKioKKyoqIFVzdGF3aWFuaWUgb3BjamkgdGFrLCBieSBzenVrYWogbHViIHN1YnN0eXR1Y2phIGlnbm9yb3dhs3kgd2llbGtvnOYgbGl0ZXIgKioKIAogICAxLiBTenVrYWogJ2lnbm9yZScgd3Bpc3VquWM6ICAgIC9pZ25vcmU8RU5URVI+CiAgICAgIFBvd3Tzcnogc3p1a2FuaWUga2lsa2EgcmF6eSBuYWNpc2tharljIGtsYXdpc3ogIG4gLgpAQCAtODI4LDcgKzgyOCw3IEBACiAKICAgNi4gQWJ5IHd5s7ljennmIGlnbm9yb3dhbmllIHdpZWxrb5xjaSBsaXRlcjogIDpzZXQgbm9pYwogCi1Vd2FnYTogQWJ5IHVzdW655iBwb2Scd2lldGxhbmllIGRvcGFzb3dh8SB3cGlzejogICA6bm9obHNlYXJjaAorVXdhZ2E6IEFieSB1c3VuueYgcG9knHdpZXRsYW5pZSBkb3Bhc293YfEsIHdwaXN6OiAgIDpub2hsc2VhcmNoCiBVd2FnYTogQWJ5IGlnbm9yb3dh5iB3aWVsa2+c5iBsaXRlciBkbGEgamVkbmVnbyB3eXN6dWtpd2FuaWE6IC9pZ25vcmVcYzxFTlRFUj4KIH5+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+fgogCQkJICAgICBMRUtDSkEgNi4gUE9EU1VNT1dBTklFCkBAIC04MzcsMzYgKzgzNywzNiBAQAogICAxLiBXcGlzYW5pZSAgbyAgb3R3aWVyYSBsaW5p6iBQT05Jr0VKIGt1cnNvcmEuCiAgICAgIFdwaXNhbmllICBPICBvdHdpZXJhIGxpbmnqIFBPV1mvRUoga3Vyc29yYS4KIAotICAyLiBXcGlzYW5pZSAgYSAgYnkgd3N0YXdp5iB0ZWtzdCBaQSB6bmFraWVtIG5hLCBrdPNyeW0gamVzdCBrdXJzb3IuCisgIDIuIFdwaXNhbmllICBhICB3c3Rhd2lhIHRla3N0IFpBIHpuYWtpZW0sIG5hIGt083J5bSBqZXN0IGt1cnNvci4KICAgICAgV3Bpc2FuaWUgIEEgIGRvZGFqZSB0ZWtzdCBuYSBrb/FjdSBsaW5paS4KIAogICAzLiBQb2xlY2VuaWUgIGUgIHByemVub3NpIGRvIGtv8WNhIHd5cmF6dS4KLSAgNC4gT3BlcmF0b3IgIHkgIHlhbmt1amUgKGtvcGl1amUpIHRla3N0LCAgcCAgcGFrdWplICh3a2xlamEsIHBhc3RlKSBnby4KKyAgNC4gT3BlcmF0b3IgIHkgIHlhbmt1amUgKGtvcGl1amUpIHRla3N0LCAgcCAgcGFrdWplICh3a2xlamEpIGdvLgogICA1LiBXcGlzYW5pZSB3aWVsa2llZ28gIFIgIHdwcm93YWR6YSB3IHRyeWIgUmVwbGFjZSAoemFtaWFuYSkgZG9w82tpCiAgICAgIG5pZSB6b3N0YW5pZSB3Y2mcbmnqdHkgPEVTQz4uCi0gIDYuIFdwaXNhbmllICI6c2V0IHh4eCIgdXN0YXdpYSBvcGNq6iAieHh4Ii4gTmlldGvzcmUgb3BjamU6CisgIDYuIFdwaXNhbmllICI6c2V0IHh4eCIgdXN0YXdpYSBvcGNq6iAieHh4Ii4gTmlla3TzcmUgb3BjamU6CiAJJ2ljJyAgJ2lnbm9yZWNhc2UnCWlnbm9ydWogd2llbGtvnOYgem5ha/N3CiAJJ2lzJyAgJ2luY3NlYXJjaCcJcG9rYb8gY3rqnGNpb3dlIGRvcGFzb3dhbmlhCiAJJ2hscycgJ2hsc2VhcmNoJwlwb2Scd2lldGwgd3N6eXN0a2llIGRvcGFzb3dhbmlhCi0gICAgIE1vv2VzeiB1v3nmIHphcvN3bm8gZLN1Z2llaiBqYWsgaSBrcvN0a2llaiBmb3JteS4KLSAgNy4gRG9kYWogIm5vIiBhYnkgd3mzuWN6eeYgb3Bjauo6ICAgOnNldCBub2ljCisgICAgIE1vv2VzeiB1v3nmIHphcvN3bm8gZLN1Z2llaiwgamFrIGkga3LzdGtpZWogZm9ybXkuCisgIDcuIERvZGFqICJubyIsIGFieSB3ebO5Y3p55iBvcGNq6jogICA6c2V0IG5vaWMKIAogCiAKIAogCiB+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+fn4KLQkJCUxFS0NKQSA3LjEuIEpBSyBVWllTS0HGIFBPTU9DCisJCQkgTEVLQ0pBIDcuMS4gSkFLIFVaWVNLQcYgUE9NT0M/CiAKIAkJICAgICAgKiogVb95Y2llIHN5c3RlbXUgcG9tb2N5IG9uLWxpbmUgKioKIAotICBWaW0gcG9zaWFkYSBiYXJkem8gZG9icnkgc3lzdGVtIHBvbW9jeSBvbi1saW5lLiBCeSB6YWN6ueYgc3By82J1aiBqZWRuZWoKKyAgVmltIHBvc2lhZGEgYmFyZHpvIGRvYnJ5IHN5c3RlbSBwb21vY3kgb24tbGluZS4gQnkgemFjernmLCBzcHLzYnVqIGplZG5lagogICB6IHRyemVjaCBtb79saXdvnGNpOgogCS0gd2NpnG5paiBrbGF3aXN6IDxIRUxQPiAoamWcbGkgdGFraSBtYXN6KQogCS0gd2NpnG5paiBrbGF3aXN6IDxGMT4gKGplnGxpIHRha2kgbWFzeikKIAktIHdwaXN6ICAgOmhlbHA8RU5URVI+CiAKLSAgUHJ6ZWN6eXRhaiB0ZWtzdCB3IG9rbmllIHBvbW9jeSAgYWJ5IGRvd2llZHppZeYgc2nqIGphayBkemlhs2EgcG9tb2MuCisgIFByemVjenl0YWogdGVrc3QgdyBva25pZSBwb21vY3ksIGFieSBkb3dpZWR6aWXmIHNp6iBqYWsgZHppYbNhIHBvbW9jLgogICB3cGlzeiBDVFJMLVcgQ1RSTC1XICAgIGFieSBwcnplc2tvY3p55iB6IGplZG5lZ28gb2tuYSBkbyBpbm5lZ28KICAgd3Bpc3ogOnE8RU5URVI+ICAgICAgICBhYnkgemFta2655iBva25vIHBvbW9jeS4KIApAQCAtODk0LDEwICs4OTQsMTAgQEAKICAgMy4gWmFwaXN6IHBsaWs6CiAgICAgIDp3CiAKLSAgTmFzdOpwbnltIHJhemVtIGdkeSB6YWN6bmllc3ogcHJhY+ogdyBWaW1pZSBi6mR6aWUgb24gdb95d2HmIHBvZJx3aWV0bGFuaWEKKyAgTmFzdOpwbnltIHJhemVtLCBnZHkgemFjem5pZXN6IHByYWPqIHcgVmltaWUgYupkemllIG9uIHW/eXdh5iBwb2Scd2lldGxhbmlhCiAgIHNrs2FkbmkuIE1vv2VzeiBkb2Rh5iB3c3p5c3RraWUgc3dvamUgdWx1YmlvbmUgdXN0YXdpZW5pYSBkbyB0ZWdvIHBsaWt1CiAgICJ2aW1yYyIuCi0gIEFieSB1enlza2HmIHdp6mNlaiBpbmZvcm1hY2ppIHdwaXN6ICAgICA6aGVscCB2aW1yYy1pbnRybworICBBYnkgdXp5c2th5iB3aepjZWogaW5mb3JtYWNqaSwgd3Bpc3ogICAgIDpoZWxwIHZpbXJjLWludHJvCiAKIH5+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+fgogCQkJICBMZWtjamEgNy4zLjogVVpVUEWjTklBTklFCkBAIC05MDcsMTEgKzkwNywxMSBAQAogCiAgIDEuIFVwZXduaWogc2nqLCC/ZSBWaW0gbmllIGplc3QgdyB0cnliaWUga29tcGF0eWJpbG5vnGNpOiAgIDpzZXQgbm9jcAogCi0gIDIuIFplcmtuaWogamFraWUgcGxpa2kgc7kgdyBiaWW/uWNtIGthdGFsb2d1OiAgIDohbHMgICBsdWIgICA6IWRpcgorICAyLiBaZXJrbmlqLCBqYWtpZSBwbGlraSBzuSB3IGJpZb+5Y3ltIGthdGFsb2d1OiAgIDohbHMgICBsdWIgICA6IWRpcgogCiAgIDMuIFdwaXN6IHBvY3q5dGVrIHBvbGVjZW5pYTogICA6ZQogCi0gIDQuIFdjaZxuaWogIENUUkwtRCAgaSBWaW0gcG9rYb9lIGxpc3TqIHBvbGVjZfEgamFraWUgemFjenluYWq5IHNp6iBuYSAiZSIuCisgIDQuIFdjaZxuaWogIENUUkwtRCAgaSBWaW0gcG9rYb9lIGxpc3TqIHBvbGVjZfEsIGpha2llIHphY3p5bmFquSBzaeogbmEgImUiLgogCiAgIDUuIFdjaZxuaWogIDxUQUI+ICBpIFZpbSB1enVwZbNuaSBwb2xlY2VuaWUgZG8gIjplZGl0Ii4KIApAQCAtOTI1LDcgKzkyNSw3IEBACiAJCQkgICAgTGVrY2phIDcuIFBPRFNVTU9XQU5JRQogCiAKLSAgMS4gV3Bpc3ogIDpoZWxwICBsdWIgd2NpnG5paiA8RjE+IGx1YiA8SGVscD4gYWJ5IG90d29yennmIG9rbm8gcG9tb2N5LgorICAxLiBXcGlzeiAgOmhlbHAgIGFsYm8gd2NpnG5paiA8RjE+IGx1YiA8SGVscD4gYWJ5IG90d29yennmIG9rbm8gcG9tb2N5LgogCiAgIDIuIFdwaXN6ICA6aGVscCBjbWQgIGFieSB1enlza2HmIHBvbW9jIG8gIGNtZCAuCiAKQEAgLTk0NSwxNCArOTQ1LDE0IEBACiAKIH5+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+fgogCi0gIFR1dGFqIHNp6iBrb/FjenkgdHV0b3JpYWwgVmltYS4gWm9zdGGzIG9uIHBvbXmcbGFueSB0YWsgYWJ5IGRh5iBrcvN0a2kKKyAgVHV0YWogc2nqIGtv8WN6eSB0dXRvcmlhbCBWaW1hLiBab3N0YbMgb24gcG9teZxsYW55IHRhaywgYWJ5IGRh5iBrcvN0a2kKICAgcHJ6ZWdsuWQgamVnbyBtb79saXdvnGNpLCB3eXN0YXJjemFquWN5IGJ5nCBt82ezIGdvIHW/eXdh5i4gSmVzdCBvbgotICBkYWxla2kgb2Qga29tcGxldG5vnGNpIHBvbmlld2G/IFZpbSBtYSBvIHdpZWxlLCB3aWVsZSB3aepjZWogcG9sZWNl8S4KKyAgZGFsZWtpIG9kIGtvbXBsZXRub5xjaSwgcG9uaWV3Yb8gVmltIG1hIG8gd2llbGUsIHdpZWxlIHdp6mNlaiBwb2xlY2XxLgogCiAgIERsYSBkYWxzemVqIG5hdWtpIHJla29tZW5kdWplbXkga3Npub9r6joKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGF1dG9yIFN0ZXZlIE91YWxsaW5lCiAJV3lkYXdjYTogTmV3IFJpZGVycwotICBQaWVyd3N6YSBrc2m5emthIGNhs2tvd2ljaWUgcG+cd2nqY29uYSBWaW1vd2kuIFW/eXRlY3puYSB6d7Nhc3pjemEgZGxhCisgIFBpZXJ3c3phIGtzabm/a2EgY2Gza293aWNpZSBwb5x3aepjb25hIFZpbW93aS4gVb95dGVjem5hIHp3s2FzemN6YSBkbGEKICAgcG9jerl0a3VquWN5Y2guIFphd2llcmEgd2llbGUgcHJ6eWuzYWTzdyBpIGlsdXN0cmFjamkuCiAgIFpvYmFjeiBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy4vY2xpY2s1Lmh0bWwKIApAQCAtOTYwLDcgKzk2MCw3IEBACiAgIHBvbGVjZW5pYToKIAlMZWFybmluZyB0aGUgVmkgRWRpdG9yIC0gYXV0b3IgTGluZGEgTGFtYgogCVd5ZGF3Y2E6IE8nUmVpbGx5ICYgQXNzb2NpYXRlcyBJbmMuCi0gIFRvIGRvYnJhIGtzabm/a2EgYnkgZG93aWVkemll5iBzaeogbmllbWFsIHdzenlzdGtpZWdvIGNvIGNoY2lhs2J5nCB6cm9iaeYKKyAgVG8gZG9icmEga3Npub9rYSwgYnkgZG93aWVkemll5iBzaeogbmllbWFsIHdzenlzdGtpZWdvLCBjbyBjaGNpYbNieZwgenJvYmnmCiAgIHogVmkuIFN683N0YSBlZHljamEgemF3aWVyYSB0Zb8gaW5mb3JtYWNqZSBvIFZpbWllLgogCiAgIFBvIHBvbHNrdSB3eWRhbm86CkBAIC05OTEsNCArOTkxLDUgQEAKICAgcmV2LiBNYXJ6ZWMgMjAwMgogICAybmQgcmV2LiBXcnplc2ll8SAyMDA0CiAgIDNyZCByZXYuIE1hcnplYyAyMDA2CisgIDR0aCByZXYuIEdydWR6aWXxIDIwMDgKICAgV3N6ZWxraWUgdXdhZ2kgcHJvc3rqIGtpZXJvd2HmIG5hOiBtaWttYWNoQHdwLnBsCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnBsLnV0Zi04IGIvcnVudGltZS90dXRvci90dXRvci5wbC51dGYtOAppbmRleCA4OGY5NWQxLi4zZmFhYWE4IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLnBsLnV0Zi04CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwudXRmLTgKQEAgLTIsOSArMiw5IEBACiA9ICAgIFcgaSB0IGEgaiAgIHcgICB0IHUgdCBvIHIgaSBhIGwgdSAgIFYgSSBNIC0gYSAgICAgIC0gICAgV2Vyc2phICAxLjcuICAgICA9CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSAgICAgVmltIHRvIHBvdMSZxbxueSBlZHl0b3IsIGt0w7NyeSBwb3NpYWRhIHdpZWxlIHBvbGVjZcWELCB6Ynl0IGR1xbxvIGJ5CisgICAgIFZpbSB0byBwb3TEmcW8bnkgZWR5dG9yLCBrdMOzcnkgcG9zaWFkYSB3aWVsZSBwb2xlY2XFhCwgemJ5dCBkdcW8bywgYnkKICAgICAgd3lqYcWbbmnEhyBqZSB3c3p5c3RraWUgdyB0eW0gdHV0b3JpYWx1LiBUZW4gcHJ6ZXdvZG5payBtYSBuYXVjennEhwotICAgICBDacSZIHBvc8WCdWdpd2HEhyBzacSZIHd5c3RhcmN6YWrEhWNvIHdpZWxvbWEga29tZW5kYW1pIGJ5xZsgbcOzZ8WCIMWCYXR3bworICAgICBDacSZIHBvc8WCdWdpd2HEhyBzacSZIHd5c3RhcmN6YWrEhWNvIHdpZWxvbWEga29tZW5kYW1pLCBiecWbIG3Ds2fFgiDFgmF0d28KICAgICAgdcW8eXdhxIcgVmltYSBqYWtvIGVkeXRvcmEgb2fDs2xuZWdvIHByemV6bmFjemVuaWEuCiAKICAgICAgQ3phcyBwb3RyemVibnkgbmEgdWtvxYRjemVuaWUgdHV0b3JpYWxhIHRvIDI1IGRvIDMwIG1pbnV0IGkgemFsZcW8eQpAQCAtMTMsMTQgKzEzLDE0IEBACiAJIFVXQUdBOgogCSBQb2xlY2VuaWEgd3lrb255d2FuZSB3IGN6YXNpZSBsZWtjamkgem1vZHlmaWt1asSFIHRla3N0LiBacsOzYgogCSB3Y3plxZtuaWVqIGtvcGnEmSB0ZWdvIHBsaWt1IGRvIMSHd2ljemXFhCAoamXFm2xpIHphY3rEhcWCZcWbIGtvbWVuZMSFCi0JICJ2aW10dXRvciIgdG8ganXFvCBwcmFjdWplc3ogbmEga29waWkpLgorCSAidmltdHV0b3IiLCB0byBqdcW8IHByYWN1amVzeiBuYSBrb3BpaSkuCiAKLQkgUGFtacSZdGFqIMW8ZSBwcnpld29kbmlrIHRlbiB6b3N0YcWCIHphcHJvamVrdG93YW55IGRvIG5hdWtpIHBvcHJ6ZXoKLQkgxId3aWN6ZW5pYS4gT3puYWN6YSB0bywgxbxlIG11c2lzeiB3eWtvbnl3YcSHIHBvbGVjZW5pYSBieSBuYXVjennEhyBzacSZIGljaAotCSBwcmF3aWTFgm93by4gSmXFm2xpIGLEmWR6aWVzeiBqZWR5bmllIGN6eXRhxYIgdGVrc3Qgc3p5YmtvIHphcG9tbmlzeiB3aWVsZQorCSBQYW1pxJl0YWosIMW8ZSBwcnpld29kbmlrIHRlbiB6b3N0YcWCIHphcHJvamVrdG93YW55IGRvIG5hdWtpIHBvcHJ6ZXoKKwkgxId3aWN6ZW5pYS4gT3puYWN6YSB0bywgxbxlIG11c2lzeiB3eWtvbnl3YcSHIHBvbGVjZW5pYSwgYnkgbmF1Y3p5xIcgc2nEmSBpY2gKKwkgcHJhd2lkxYJvd28uIEplxZtsaSBixJlkemllc3ogamVkeW5pZSBjenl0YcWCIHRla3N0LCBzenlia28gemFwb21uaXN6IHdpZWxlCiAJIHBvbGVjZcWEIQogCi0gICAgIFRlcmF6IHVwZXduaWogc2nEmSwgxbxlIG5pZSBtYXN6IHdjacWbbmnEmXRlZ28gQ2Fwc0xvY2thIGkgd2Npc2thaiAgagorICAgICBUZXJheiB1cGV3bmlqIHNpxJksIMW8ZSBuaWUgbWFzeiB3Y2nFm25pxJl0ZWdvIENhcHMgTG9ja2EgaSB3Y2lza2FqICBqCiAgICAgIHRhayBkxYJ1Z28gZG9ww7NraSBMZWtjamEgMS4xLiBuaWUgd3lwZcWCbmkgY2HFgmtvd2ljaWUgZWtyYW51LgogCiB+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+fn4KQEAgLTQwLDI4ICs0MCwyOCBAQAogCiAgIDMuIFXFvHl3YWrEhWMgc3RyemHFgmtpIHcgZMOzxYIgcHJ6ZWpkxbogZG8gbmFzdMSZcG5laiBsZWtjamkuCiAKLVV3YWdhOiBKZcWbbGkgbmllIGplc3RlxZsgcGV3aWVuIGN6ZWdvxZsgY28gd3Bpc2HFgmXFmywgd2NpxZtuaWogPEVTQz4gYnkgd3LDs2NpxIcgZG8KK1V3YWdhOiBKZcWbbGkgbmllIGplc3RlxZsgcGV3aWVuIGN6ZWdvxZsgY28gd3Bpc2HFgmXFmywgd2NpxZtuaWogPEVTQz4sIGJ5IHdyw7NjacSHIGRvCiAgICAgICAgdHJ5YnUgTm9ybWFsLiBXdGVkeSBwb3d0w7NyeiBwb2xlY2VuaWUuCiAKIFV3YWdhOiBLbGF3aXN6ZSBrdXJzb3JhIHRha8W8ZSBwb3dpbm55IGR6aWHFgmHEhywgYWxlIHXFvHl3YWrEhWMgIGhqa2wgIGLEmWR6aWVzegotICAgICAgIHcgc3RhbmllIHBvcnVzemHEhyBzacSZIG8gd2llbGUgc3p5YmNpZWogamFrIHNpxJkgdHlsa28gcHJ6eXp3eWN6YWlzei4KKyAgICAgICB3IHN0YW5pZSBwb3J1c3phxIcgc2nEmSBvIHdpZWxlIHN6eWJjaWVqLCBqYWsgc2nEmSB0eWxrbyBwcnp5end5Y3phaXN6LgogICAgICAgIE5hcHJhd2TEmSEKIAogfn5+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+CiAJCSAgICBMZWtjamEgMS4yLjogV1lDSE9EWkVOSUUgWiBWSU0tYQogCi0gISEgVVdBR0E6IFByemVkIHd5a29uYW5pZW0gamFraWVnb2tvbHdpZWsgcG9sZWNlbmlhIHByemVjenl0YWogY2HFgsSFIGxla2NqxJkuISEKKyAhISBVV0FHQTogUHJ6ZWQgd3lrb25hbmllbSBqYWtpZWdva29sd2llayBwb2xlY2VuaWEgcHJ6ZWN6eXRhaiBjYcWCxIUgbGVrY2rEmSAhIQogCiAgIDEuIFdjacWbbmlqIDxFU0M+IChhYnkgdXBld25pxIcgc2nEmSwgxbxlIGplc3RlxZsgdyB0cnliaWUgTm9ybWFsKS4KICAgMi4gV3Bpc3o6CQkJOnEhPEVOVEVSPi4KLSAgICAgVG8gc3Bvd29kdWplIHd5asWbY2llIHogZWR5dG9yYSBQT1JaVUNBSsSEQyB3c3plbGtpZSB6bWlhbnkgamFraWUKLSAgICAgemTEhcW8ecWCZcWbIHpyb2JpxIcuIEplxZtsaSBjaGNlc3ogemFwYW1pxJl0YcSHIHptaWFueSBpIHd5asWbxIcKKyAgICAgVG8gc3Bvd29kdWplIHd5asWbY2llIHogZWR5dG9yYSBQT1JaVUNBSsSEQyB3c3plbGtpZSB6bWlhbnksIGpha2llCisgICAgIHpkxIXFvHnFgmXFmyB6cm9iacSHLiBKZcWbbGkgY2hjZXN6IHphcGFtacSZdGHEhyB6bWlhbnkgaSB3eWrFm8SHLAogICAgICB3cGlzejoJCQk6d3E8RU5URVI+CiAKICAgMy4gS2llZHkgd2lkemlzeiB6bmFrIHphY2jEmXR5IHBvd8WCb2tpIHdwaXN6IGtvbWVuZMSZLCDFvGVieSB3csOzY2nEhwogICAgICBkbyB0dXRvcmlhbGEuIEN6eWxpOgl2aW10dXRvcjxFTlRFUj4KIAotICA0LiBKZcWbbGkgY2hjZXN6IHphcGFtacSZdGHEhyBwb2xlY2VuaWEsIHd5a29uYWoga3Jva2kgMS4gZG8gMy4gYWJ5CisgIDQuIEplxZtsaSBjaGNlc3ogemFwYW1pxJl0YcSHIHBvbGVjZW5pYSwgd3lrb25haiBrcm9raSAxLiBkbyAzLiwgYWJ5CiAgICAgIHd5asWbxIcgaSB3csOzY2nEhyBkbyBlZHl0b3JhLgogCiBVV0FHQTogOnEhPEVOVEVSPiBwb3J6dWNhIHdzemVsa2llIHptaWFueSBqYWtpZSB6cm9iacWCZcWbLiBXIG5hc3TEmXBueWNoCkBAIC04NSw3ICs4NSw3IEBACiAKIC0tLT4gS2tyb3dhIHBycnplc2tvY3p5xYJhIHBycnpleiBrc2lpxJnFvHljYy4KIAotICA1LiBUZXJheiBraWVkeSB6ZGFuaWUgamVzdCBwb3ByYXdpb25lIHByemVqZMW6IGRvIExla2NqaSAxLjQuCisgIDUuIFRlcmF6LCBraWVkeSB6ZGFuaWUgamVzdCBwb3ByYXdpb25lLCBwcnplamTFuiBkbyBMZWtjamkgMS40LgogCiBVV0FHQTogVWN6IHNpxJkgcHJ6ZXogxId3aWN6ZW5pZSwgbmllIHdrdXdhbmllLgogCkBAIC0xMDEsMTggKzEwMSwxOCBAQAogCiAgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gcGllcndzemVqIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPi4KIAotICAyLiBBYnkgcG9wcmF3acSHIHBpZXJ3c3p5IHdpZXJzeiwgdXN0YXcga3Vyc29yIG5hIHBpZXJ3c3p5bSB6bmFrdSBQTyB0eW0KKyAgMi4gQWJ5IHBvcHJhd2nEhyBwaWVyd3N6eSB3aWVyc3osIHVzdGF3IGt1cnNvciBuYSBwaWVyd3N6eW0gem5ha3UgUE8gdHltLAogICAgICBnZHppZSB0ZWtzdCBtYSBiecSHIHdzdGF3aW9ueS4KIAogICAzLiBXY2nFm25paiAgaSAgYSBuYXN0xJlwbmllIHdwaXN6IGtvbmllY3puZSBwb3ByYXdraS4KIAotICA0LiBQbyBwb3ByYXdpZW5pdSBixYLEmWR1IHdjacWbbmlqIDxFU0M+IGJ5IHdyw7NjacSHIGRvIHRyeWJ1IE5vcm1hbC4KLSAgICAgUG93dGFyemFqIGtyb2tpIDIuIGRvIDQuIGFieSBwb3ByYXdpxIcgY2HFgmUgemRhbmllLgorICA0LiBQbyBwb3ByYXdpZW5pdSBixYLEmWR1IHdjacWbbmlqIDxFU0M+LCBieSB3csOzY2nEhyBkbyB0cnlidSBOb3JtYWwuCisgICAgIFBvd3RhcnphaiBrcm9raSAyLiBkbyA0LiwgYWJ5IHBvcHJhd2nEhyBjYcWCZSB6ZGFuaWUuCiAKIC0tLT4gVyB0ZWogYnJramUgdHJvY2jEmSAuCiAtLS0+IFcgdGVqIGxpbmlpIGJyYWt1amUgdHJvY2jEmSB0ZWtzdHUuCiAKLSAgNS4gS2llZHkgY3p1amVzeiBzacSZIHN3b2JvZG5pZSB3c3Rhd2lhasSFYyB0ZWtzdCBwcnplamTFuiBkbworICA1LiBLaWVkeSBjenVqZXN6IHNpxJkgc3dvYm9kbmllIHdzdGF3aWFqxIVjIHRla3N0LCBwcnplamTFuiBkbwogICAgICBwb2RzdW1vd2FuaWEgcG9uacW8ZWouCiAKIApAQCAtMTI5LDcgKzEyOSw3IEBACiAKICAgMy4gS2llZHkgdGVrc3Qgem9zdGHFgiBkb2RhbnksIHdjacWbbmlqIDxFU0M+IGkgd3LDs8SHIGRvIHRyeWJ1IE5vcm1hbG5lZ28uCiAKLSAgNC4gUHJ6ZW5pZcWbIGt1cnNvciBkbyBkcnVnaWVqIGxpbmlpIG96bmFjem9uZWogLS0tPiBpIHBvd3TDs3J6IGtyb2tpIDIgaSAzCisgIDQuIFByemVuaWXFmyBrdXJzb3IgZG8gZHJ1Z2llaiBsaW5paSBvem5hY3pvbmVqIC0tLT4gaSBwb3d0w7NyeiBrcm9raSAyLiBpIDMuLAogICAgICBhYnkgcG9wcmF3acSHIHpkYW5pZS4KIAogLS0tPiBCcmFrdWplIHR1IHRybwpAQCAtMTM3LDI3ICsxMzcsMjcgQEAKIC0tLT4gVHUgdGXFvCB0cm9jaMSZIGJyYQogICAgICBUdSB0ZcW8IHRyb2NoxJkgYnJha3VqZS4KIAotICA1LiBLaWVkeSBqdcW8IHV0cndhbGnFgmXFmyDEh3dpY3plbmllIHByemVqZMW6IGRvIGxla2NqaSAxLjYuCisgIDUuIEtpZWR5IGp1xbwgdXRyd2FsacWCZcWbIMSHd2ljemVuaWUsIHByemVqZMW6IGRvIGxla2NqaSAxLjYuCiAKIH5+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+fgogCQkJICBMZWtjamEgMS42LjogRURZQ0pBIFBMSUtVCiAKIAkJICAqKiBVxbx5aiAgOndxICBhYnkgemFwaXNhxIcgcGxpayBpIHd5asWbxIcuICoqCiAKLSAgICEhIFVXQUdBOiB6YW5pbSB3eWtvbmFzeiBqYWtpZWtvbHdpZWsgcG9sZWNlbmlhIHByemVjenlhaiBjYcWCxIUgbGVrY2rEmSAhIQorICAgISEgVVdBR0E6IHphbmltIHd5a29uYXN6IGpha2lla29sd2llayBwb2xlY2VuaWEgcHJ6ZWN6eXRhaiBjYcWCxIUgbGVrY2rEmSAhIQogCiAgIDEuIFpha2/FhGN6IHR1dG9yaWFsIHRhayBqYWsgdyBsZWtjamkgMS4yLjogIDpxIQotICAgICBMdWIgamXFm2xpIG1hc3ogZG9zdMSZcCBkbyBpbm5lZ28gdGVybWluYWxhIHpyw7NiIGtvbGVqbmUga3Jva2kgdGFtLgorICAgICBsdWIsIGplxZtsaSBtYXN6IGRvc3TEmXAgZG8gaW5uZWdvIHRlcm1pbmFsYSwgd3lrb25haiBrb2xlam5lIGtyb2tpIHRhbS4KIAogICAyLiBXIHBvd8WCb2NlIHd5ZGFqIHBvbGVjZW5pZTogIHZpbSB0dXRvcjxFTlRFUj4KLSAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWrEhWN5bSBlZHl0b3IgVmltLiAndHV0b3InIHRvIG5hendhIHBsaWt1Ci0gICAgIGpha2kgY2hjZXN6IGVkeXRvd2HEhy4gVcW8eWogcGxpa3UgamFraSBtb8W8ZSB6b3N0YcSHIHptaWVuaW9ueS4KKyAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWrEhWN5bSBlZHl0b3IgVmltLiAndHV0b3InIHRvIG5hendhIHBsaWt1LAorICAgICBqYWtpIGNoY2VzeiBlZHl0b3dhxIcuIFXFvHlqIHBsaWt1LCBrdMOzcnkgbW/FvGUgem9zdGHEhyB6bWllbmlvbnkuCiAKLSAgMy4gRG9kYWogaSB1c3XFhCB0ZWtzdCB0YWsgamFrIHNpxJkgbmF1Y3p5xYJlxZsgdyBwb3ByemVkbmljaCBsZWtjamFjaC4KKyAgMy4gRG9kYWogaSB1c3XFhCB0ZWtzdCB0YWssIGphayBzacSZIG5hdWN6ecWCZcWbIHcgcG9wcnplZG5pY2ggbGVrY2phY2guCiAKICAgNC4gWmFwaXN6IHBsaWsgemUgem1pYW5hbWkgaSBvcHXFm8SHIFZpbWE6ICA6d3E8RU5URVI+CiAKLSAgNS4gSmXFm2xpIHpha2/FhGN6ecWCZcWbIHZpbXR1dG9yIHcga3Jva3UgMS4gdXJ1Y2hvbSBnbyBwb25vd25pZSBpIHByemVqZMW6CisgIDUuIEplxZtsaSB6YWtvxYRjennFgmXFmyB2aW10dXRvciB3IGtyb2t1IDEuLCB1cnVjaG9tIGdvIHBvbm93bmllIGkgcHJ6ZWpkxboKICAgICAgZG8gcG9kc3Vtb3dhbmlhIHBvbmnFvGVqLgogCiAgIDYuIFBvIHByemVjenl0YW5pdSB3c3p5c3RraWNoIGtyb2vDs3cgaSBpY2ggenJvenVtaWVuaXU6IHd5a29uYWogamUuCkBAIC0xNjgsMTQgKzE2OCwxNCBAQAogICAxLiBQb3J1c3phc3oga3Vyc29yZW0gdcW8eXdhasSFYyAic3RyemHFgmVrIiBpIGtsYXdpc3p5ICBoamtsIC4KICAgICAgICBoICh3IGxld28pCSBqICh3IGTDs8WCKQkgayAoZG8gZ8OzcnkpCQlsICh3IHByYXdvKQogCi0gIDIuIEJ5IHdlasWbxIcgZG8gVmltYSAoeiBwb3fFgm9raSkgd3Bpc3o6CisgIDIuIEJ5IHdlasWbxIcgZG8gVmltYSwgKHogcG93xYJva2kpIHdwaXN6OgogCQkJICAgIHZpbSBOQVpXQV9QTElLVTxFTlRFUj4KIAotICAzLiBCeSB3eWrFm8SHIHogVmltYSB3cGlzejoKLQkJCSAgICA8RVNDPiA6cSE8RU5URVI+ICBieSB1c3VuxIVjIHdzenlzdGtpZSB6bWlhbnkuCisgIDMuIEJ5IHd5asWbxIcgeiBWaW1hLCB3cGlzejoKKwkJCSAgICA8RVNDPiA6cSE8RU5URVI+ICBieSB1c3VuxIXEhyB3c3p5c3RraWUgem1pYW55LgogCSAgICAgTFVCOgkgICAgPEVTQz4gOndxPEVOVEVSPiAgYnkgem1pYW55IHphY2hvd2HEhy4KIAotICA0LiBCeSB1c3VuxIXEhyB6bmFrIHBvZCBrdXJzb3JlbSB3Y2nFm25pajogIHgKKyAgNC4gQnkgdXN1bsSFxIcgem5hayBwb2Qga3Vyc29yZW0sIHdjacWbbmlqOiAgeAogCiAgIDUuIEJ5IHdzdGF3acSHIHRla3N0IHByemVkIGt1cnNvcmVtIGx1YiBkb2RhxIc6CiAJaSAgIHdwaXN6IHRla3N0ICAgPEVTQz4gICAgICAgICB3c3Rhd2kgcHJ6ZWQga3Vyc29yZW0KQEAgLTE4OSwxOCArMTg5LDE4IEBACiAJCSAgTGVrY2phIDIuMS46IFBPTEVDRU5JRSBERUxFVEUgKHVzdXdhbmllKQogCiAKLQkJICAgICAgKiogV3Bpc3ogIGR3ICBieSB1c3VuxIVjIHd5cmF6LiAqKgorCQkgICAgICAqKiBXcGlzeiAgZHcgIGJ5IHVzdW7EhcSHIHd5cmF6LiAqKgogCi0gIDEuIFdjacWbbmlqICA8RVNDPiAgYnkgdXBld25pxIcgc2nEmSwgxbxlIGplc3RlxZsgdyB0cnliaWUgTm9ybWFsLgorICAxLiBXY2nFm25paiAgPEVTQz4sIGJ5IHVwZXduacSHIHNpxJksIMW8ZSBqZXN0ZcWbIHcgdHJ5YmllIE5vcm1hbC4KIAogICAyLiBQcnplbmllxZsga3Vyc29yIGRvIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPi4KIAotICAzLiBQcnplc3XFhCBrdXJzb3IgbmEgcG9jesSFdGVrIHd5cmF6dSwga3TDs3JlIGNoY2VzeiB1c3VuxIXEhy4KKyAgMy4gUHJ6ZXN1xYQga3Vyc29yIG5hIHBvY3rEhXRlayB3eXJhenUsIGt0w7NyeSBjaGNlc3ogdXN1bsSFxIcuCiAKICAgNC4gV3Bpc3ogICBkdyAgIGJ5IHVzdW7EhcSHIHd5cmF6LgogCiAgIFVXQUdBOiBMaXRlcmEgIGQgIHBvamF3aSBzacSZIG5hIGRvbGUgZWtyYW51LiBWaW0gY3pla2EgbmEgd3Bpc2FuaWUgIHcgLgotCSBKZcWbbGkgem9iYWN6eXN6IGlubnkgem5hayBvem5hY3phIHRvLCDFvGUgd3Bpc2HFgmXFmyBjb8WbIMW6bGUsIHdjacWbbmlqCisJIEplxZtsaSB6b2JhY3p5c3ogaW5ueSB6bmFrLCBvem5hY3phIHRvLCDFvGUgd3Bpc2HFgmXFmyBjb8WbIMW6bGU7IHdjacWbbmlqCiAJIDxFU0M+IGkgemFjem5paiBvZCBwb2N6xIV0a3UuCiAKIC0tLT4gSmVzdCB0dSBwYXLEmSBwYXBpZXIgd3lyYXrDs3csIGt0w7NyZSBrYW1pZcWEIG5pZSBuYWxlxbzEhSBkbyBub8W8eWNlIHRlZ28gemRhbmlhLgpAQCAtMjI1LDcgKzIyNSw3IEBACiAtLS0+IEt0b8WbIHdwaXNhxYIga29uaWVjIHRlZ28gemRhbmlhIGR3dWtyb3RuaWUuIHpkYW5pYSBkd3Vrcm90bmllLgogCiAKLSAgNS4gUHJ6ZWpkxbogZG8gTGVrY2ppIDIuMy4gYnkgenJvenVtaWXEhyBjbyBzacSZIHN0YcWCby4KKyAgNS4gUHJ6ZWpkxbogZG8gTGVrY2ppIDIuMy4sIGJ5IHpyb3p1bWllxIcgY28gc2nEmSBzdGHFgm8uCiAKIAogCkBAIC0yMzUsMTIgKzIzNSwxMiBAQAogCQkgICAgIExla2NqYSAyLjMuOiBPIE9QRVJBVE9SQUNIIEkgUlVDSEFDSAogCiAKLSAgV2llbGUgcG9sZWNlxYQgem1pZW5pYWrEhWN5Y2ggdGVrc3Qgc8SFIHrFgm/FvG9uZSB6IG9wZXJhdG9yYSBpIHJ1Y2h1LgotICBGb3JtYXQgZGxhIHBvbGVjZW5pYSB1c3V3YWrEhWNlZ28geiBvcGVyYXRvcmVtICBkICBqZXN0IHRha2k6CisgIFdpZWxlIHBvbGVjZcWEIHptaWVuaWFqxIVjeWNoIHRla3N0IGplc3QgesWCb8W8b255Y2ggeiBvcGVyYXRvcmEgaSBydWNodS4KKyAgRm9ybWF0IGRsYSBwb2xlY2VuaWEgdXN1d2FqxIVjZWdvIHogb3BlcmF0b3JlbSAgZCAgamVzdCBuYXN0xJlwdWrEhWN5OgogCiAJICAgIGQgIHJ1Y2gKIAotICBHZHppZToKKyAgZ2R6aWU6CiAgICBkICAgICAgLSBvcGVyYXRvciB1c3V3YW5pYS4KICAgIHJ1Y2ggICAtIG5hIGN6eW0gcG9sZWNlbmllIGLEmWR6aWUgd3lrb255d2FuZSAobGlzdGEgcG9uacW8ZWopLgogCkBAIC0yNTIsNyArMjUyLDcgQEAKIFcgdGVuIHNwb3PDs2Igd3Bpc2FuaWUgIGRlICB1c3VuaWUgem5ha2kgb2Qga3Vyc29yYSBkbyBrb8WEY2Egd3lyYXp1LgogCiBVV0FHQTogV3Bpc2FuaWUgdHlsa28gcnVjaHUgdyB0cnliaWUgTm9ybWFsIGJleiBvcGVyYXRvcmEgcHJ6ZW5pZXNpZSBrdXJzb3IKLSAgICAgICB0YWsgamFrIHRvIG9rcmXFm2xvbm8uCisgICAgICAgdGFrLCBqYWsgdG8gb2tyZcWbbG9uby4KIAogfn5+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+CiAJCSAgICBMZWtjamEgMi40LjogVcW7WUNJRSBNTk/Fu05JS0EgRExBIFJVQ0hVCkBAIC0yNjYsMzIgKzI2NiwzMiBAQAogCiAgIDMuIFdwaXN6ICAzZSAgYWJ5IHByemVuaWXFm8SHIGt1cnNvciBkbyBrb8WEY2EgdHJ6ZWNpZWdvIHd5cmF6dSB3IHByesOzZC4KIAotICA0LiBXcGlzeiAgMCAgKHplcm8pIGFieSBwcnplbmllxZvEhyBrdXJzb3IgZG8gcG9jesSFdGt1IGxpbmlpLgorICA0LiBXcGlzeiAgMCAgKHplcm8pLCBhYnkgcHJ6ZW5pZcWbxIcga3Vyc29yIG5hIHBvY3rEhXRlayBsaW5paS4KIAogICA1LiBQb3d0w7NyeiBrcm9raSAyLiBpIDMuIHogaW5ueW1pIGxpY3piYW1pLgogCiAKLSAtLS0+IFRvIGplc3Qgend5a8WCeSB3aWVyc3ogeiB3eXJhemFtaSBwbyBrdMOzcnljaCBtb8W8ZXN6IHNpxJkgcG9ydXN6YcSHLgorIC0tLT4gVG8gamVzdCB6d3lrxYJ5IHdpZXJzeiB6IHd5cmF6YW1pLCBwbyBrdMOzcnljaCBtb8W8ZXN6IHNpxJkgcG9ydXN6YcSHLgogCiAgIDYuIFByemVqZMW6IGRvIGxla2NqaSAyLjUuCiAKIAogCiB+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+fn4KLQkJTGVrY2phIDIuNS46IFXFu1lDSUUgTU5PxbtOSUtBIEJZIFdJxJhDRUogVVNVTsSExIYKKwkJTGVrY2phIDIuNS46IFXFu1lDSUUgTU5PxbtOSUtBLCBCWSBXScSYQ0VKIFVTVU7EhMSGCiAKIAogICAgICoqIFdwaXNhbmllIGxpY3pieSB6IG9wZXJhdG9yZW0gcG93dGFyemEgZ28gb2Rwb3dpZWRuacSFIGlsb8WbxIcgcmF6eS4gKioKIAogICBXIHd5xbxlaiB3c3BvbW5pYW5laiBrb21iaW5hY2ppIG9wZXJhdG9yYSB1c3V3YW5pYSBpIHJ1Y2h1IHBvZGFqIG1ub8W8bmlrCi0gIHByemVkIHJ1Y2hlbSBieSB3acSZY2VqIHVzdW7EhcSHOgorICBwcnplZCBydWNoZW0sIGJ5IHdpxJljZWogdXN1bsSFxIc6CiAJZCAgbGljemJhICBydWNoCiAKICAgMS4gUHJ6ZW5pZcWbIGt1cnNvciBkbyBwaWVyd3N6ZWdvIHd5cmF6dSBLQVBJVEFMSUtBTUkgdyBsaW5paSB6YXpuYWN6b25laiAtLS0+LgogCiAgIDIuIFdwaXN6ICAyZHcgIGFieSB1c3VuxIXEhyBkd2Egd3lyYXp5IEtBUElUQUxJS0FNSS4KIAotICAzLiBQb3d0YXJ6YWoga3Jva2kgMS4gaSAyLiB6IGlubnltaSBtbm/FvG5pa2FtaSBhYnkgdXN1bsSFxIcga29sZWpuZSB3eXJhenkKKyAgMy4gUG93dGFyemFqIGtyb2tpIDEuIGkgMi4geiBpbm55bWkgbW5vxbxuaWthbWksIGFieSB1c3VuxIXEhyBrb2xlam5lIHd5cmF6eQogICAgICBLQVBJVEFMSUtBTUkgamVkbnltIHBvbGVjZW5pZW0KIAogLS0tPiB0YSBBU0QgV0UgbGluaWEgUVdFIEFTREYgWlhDViBGRyB3eXJhesOzdyB6b3N0YcWCYSBFUlQgRkdIIENGIG9jenlzemN6b25hLgpAQCAtMzEyLDcgKzMxMiw3IEBACiAgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gZHJ1Z2llZ28gemRhbmlhIHogd2llcnN6eWthIHBvbmnFvGVqLgogICAyLiBXcGlzeiAgZGQgIGFieSB1c3VuxIXEhyB3aWVyc3ouCiAgIDMuIFRlcmF6IHByemVuaWXFmyBzacSZIGRvIGN6d2FydGVnbyB3aWVyc3phLgotICA0LiBXcGlzeiAgMmRkICBhYnkgdXN1bsSFYyBkd2Egd2llcnN6ZS4KKyAgNC4gV3Bpc3ogIDJkZCAgYWJ5IHVzdW7EhcSHIGR3YSB3aWVyc3plLgogCiAtLS0+ICAxKSAgUsOzxbxlIHPEhSBjemVyd29uZSwKIC0tLT4gIDIpICBCxYJvdG8gamVzdCBmYWpuZSwKQEAgLTMzNSwxMiArMzM1LDEyIEBACiAgIDIuIFdwaXN6ICB4ICBhYnkgdXN1bsSFxIcgcGllcndzenkgbmllY2hjaWFueSB6bmFrLgogICAzLiBUZXJheiB3Y2nFm25paiAgdSAgYWJ5IGNvZm7EhcSHIHNrdXRraSBvc3RhdG5pZWdvIHBvbGVjZW5pYS4KICAgNC4gVHltIHJhemVtIHBvcHJhdyB3c3p5c3RraWUgYsWCxJlkeSB3IGxpbmlpIHXFvHl3YWrEhWMgcG9sZWNlbmlhICB4IC4KLSAgNS4gVGVyYXogd2NpxZtuaWogd2llbGtpZSBVIGFieSBwcnp5d3LDs2NpxIcgbGluacSZIGRvIG9yeWdpbmFsbmVnbyBzdGFudS4KLSAgNi4gVGVyYXogd2NpxZtuaWogIHUgIGtpbGthIHJhenkgYnkgY29mbsSFxIcgIFUgIGkgcG9wcnplZG5pZSBwb2xlY2VuaWEuCisgIDUuIFRlcmF6IHdjacWbbmlqIHdpZWxraWUgIFUgIGFieSBwcnp5d3LDs2NpxIcgbGluacSZIGRvIG9yeWdpbmFsbmVnbyBzdGFudS4KKyAgNi4gVGVyYXogd2NpxZtuaWogIHUgIGtpbGthIHJhenksIGJ5IGNvZm7EhcSHICBVICBpIHBvcHJ6ZWRuaWUgcG9sZWNlbmlhLgogICA3LiBUZXJheiB3cGlzeiBDVFJMLVIgKHRyenltYWogcsOzd25vY3plxZtuaWUgd2NpxZtuacSZdGUga2xhd2lzemUgQ1RSTCBpIFIpCiAgICAgIGtpbGthIHJhenksIGJ5IGNvZm7EhcSHIGNvZm5pxJljaWEuCiAKLS0tLT4gUG9vcHJhdyBibMSZZHl5eSB3IHRlZWogbGluaWlpIGkgemFhbWlpZcWEIGplIHBycnpleiBjb29mbmlqLgorLS0tPiBQb29wcmF3IGLFgsSZZHl5eSB3IHRlZWogbGluaWlpIGkgemFhbWlpZcWEIGplIHBycnpleiBjb29mbmlqLgogCiAgIDguIFRvIHPEhSBiYXJkem8gcG/FvHl0ZWN6bmUgcG9sZWNlbmlhLgogCkBAIC0zNTAsMjIgKzM1MCwyMiBAQAogCQkJICAgICBMRUtDSkEgMi4gUE9EU1VNT1dBTklFCiAKIAotICAxLiBCeSB1c3VuxIXEhyB6bmFraSBvZCBrdXJzb3JhIGRvIG5hc3TEmXBuZWdvIHd5cmF6dSB3cGlzejogICBkdwotICAyLiBCeSB1c3VuxIXEhyB6bmFraSBvZCBrdXJzb3JhIGRvIGtvxYRjYSBsaW5paSB3cGlzejogICAgZCQKKyAgMS4gQnkgdXN1bsSFxIcgem5ha2kgb2Qga3Vyc29yYSBkbyBuYXN0xJlwbmVnbyB3eXJhenUsIHdwaXN6OiAgIGR3CisgIDIuIEJ5IHVzdW7EhcSHIHpuYWtpIG9kIGt1cnNvcmEgZG8ga2/FhGNhIGxpbmlpLCB3cGlzejogICAgZCQKICAgMy4gQnkgdXN1bsSFxIcgY2HFgsSFIGxpbmnEmTogICAgZGQKLSAgNC4gQnkgcG93dMOzcnp5xIcgcnVjaCBwb3ByemVkxbogZ28gbGljemLEhTogICAgMncKKyAgNC4gQnkgcG93dMOzcnp5xIcgcnVjaCwgcG9wcnplZMW6IGdvIGxpY3pixIU6ICAgIDJ3CiAgIDUuIEZvcm1hdCBwb2xlY2VuaWEgem1pYW55IHRvOgogICAgICAgICAgICAgICAgIG9wZXJhdG9yICBbbGljemJhXSAgcnVjaAogICBnZHppZToKLSAgIG9wZXJhdG9yICAtIHRvIGNvIHRyemViYSB6cm9iacSHIChucC4gIGQgIGRsYSB1c3V3YW5pYSkKKyAgIG9wZXJhdG9yICAtIHRvLCBjbyB0cnplYmEgenJvYmnEhyAobnAuICBkICBkbGEgdXN1d2FuaWEpCiAgICBbbGljemJhXSAgLSBvcGNqb25hbG5lLCBpbGUgcmF6eSBwb3d0w7NyennEhyBydWNoCiAgICBydWNoICAgICAgLSBwcnplbm9zaSBuYWQgdGVrc3RlbSBkbyBvcGVyb3dhbmlhLCB0YWtpbSBqYWsgIHcgKHd5cmF6KSwKLQkgICAgICAgJCAgKGRvIGtvxYRjYSBsaW5paSksIGV0Yy4KKwkgICAgICAgJCAgKGRvIGtvxYRjYSBsaW5paSkgZXRjLgogCi0gIDYuIEJ5IHByemVqxZvEhyBkbyBwb2N6xIV0a3UgbGluaWkgdcW8eWogemVyYTogIDAKLSAgNy4gQnkgY29mbsSFxIcgcG9wcnplZG5pZSBwb2xlY2VuaWUsIHdwaXN6OgkgIHUgKG1hxYJlIHUpCi0gICAgIEJ5IGNvZm7EhcSHIHdzenlzdGtpZSB6bWlhbnkgdyBsaW5paSB3cGlzejoJICBVICh3aWVsa2llIFUpCi0gICAgIEJ5IGNvZm7EhcSHIGNvZm5pxJljaWEgd3Bpc3o6CQkJICBDVFJMLVIKKyAgNi4gQnkgcHJ6ZWrFm8SHIGRvIHBvY3rEhXRrdSBsaW5paSwgdcW8eWogemVyYTogIDAKKyAgNy4gQnkgY29mbsSFxIcgcG9wcnplZG5pZSBwb2xlY2VuaWUsIHdwaXN6OgkgIHUgIChtYcWCZSB1KQorICAgICBCeSBjb2ZuxIXEhyB3c3p5c3RraWUgem1pYW55IHcgbGluaWksIHdwaXN6OgkgIFUgICh3aWVsa2llIFUpCisgICAgIEJ5IGNvZm7EhcSHIGNvZm5pxJljaWUsIHdwaXN6OgkJCSAgQ1RSTC1SCiAKIAogCkBAIC0zNzksNyArMzc5LDcgQEAKIAogICAyLiBXcGlzeiAgZGQgIGFieSB1c3VuxIXEhyBsaW5pxJkgaSBwcnplY2hvd2HEhyBqxIUgdyByZWplc3RyemUgVmltYS4KIAotICAzLiBQcnplbmllxZsga3Vyc29yIGRvIGxpbmlpIGMpLCBQT1dZxbtFSiB0ZWogZ2R6aWUgdXN1bmnEmXRhIGxpbmlhIHBvd2lubmEKKyAgMy4gUHJ6ZW5pZcWbIGt1cnNvciBkbyBsaW5paSBjKSwgUE9XWcW7RUogdGVqLCBnZHppZSB1c3VuacSZdGEgbGluaWEgcG93aW5uYQogICAgICBzacSZIHpuYWpkb3dhxIcuCiAKICAgNC4gV2NpxZtuaWogIHAgIGJ5IHdzdGF3acSHIGxpbmnEmSBwb25pxbxlaiBrdXJzb3JhLgpAQCAtNDA0LDIxICs0MDQsMjEgQEAKIAogICAzLiBXcGlzeiAgciAgYSBwb3RlbSB6bmFrIGpha2kgcG93aW5pZW4gZ28gemFzdMSFcGnEhy4KIAotICA0LiBQb3d0YXJ6YWoga3Jva2kgMi4gaSAzLiBkb3DDs2tpIHBpZXJ3c3phIGxpbmlhIG5pZSBixJlkemllIHRha2EgamFrIGRydWdhLgorICA0LiBQb3d0YXJ6YWoga3Jva2kgMi4gaSAzLiBkb3DDs2tpIHBpZXJ3c3phIGxpbmlhIG5pZSBixJlkemllIHRha2EsIGphayBkcnVnYS4KIAotLS0tPiAgS2plZHkgdGVuIHdpZXJzeiBiacWCIHdzdMOza2l3YW55IGt0b8WbIHdjaXpuxIXFgiBwZXLEmSB6xYJ5Y2gga2xhd2lyenkhCi0tLS0+ICBLaWVkeSB0ZW4gd2llcnN6IGJ5xYIgd3N0dWtpd2FueSBrdG/FmyB3Y2lzbsSFxYIgcGFyxJkgesWCeWNoIGtsYXdpc3p5IQorLS0tPiAgS2plZHkgdGVuIHdpZXJzeiBiacWCIHdzdMOza2l3YW55LCBrdG/FmyB3Y2l6bsSFxYIgcGVyxJkgesWCeWNoIGtsYXdpcnp5IQorLS0tPiAgS2llZHkgdGVuIHdpZXJzeiBiecWCIHdzdHVraXdhbnksIGt0b8WbIHdjaXNuxIXFgiBwYXLEmSB6xYJ5Y2gga2xhd2lzenkhCiAKICAgNS4gVGVyYXogY3phcyBuYSBMZWtjasSZIDMuMy4KIAogCi1VV0FHQTogUGFtacSZdGFqIGJ5IHVjennEhyBzacSZIMSHd2ljesSFYywgYSBuaWUgcGFtacSZY2lvd28uCitVV0FHQTogUGFtacSZdGFqLCBieSB1Y3p5xIcgc2nEmSDEh3dpY3rEhWMsIGEgbmllIHBhbWnEmWNpb3dvLgogCiAKIH5+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+fgogCQkgICAgIExla2NqYSAzLjMuOiBPUEVSQVRPUiBDSEFOR0UgKHptaWXFhCkKIAotCQkgKiogQnkgem1pZW5pxIcgZG8ga2/FhGNhIHd5cmF6dSB3cGlzeiAgY2UgLiAqKgorCQkgKiogQnkgem1pZW5pxIcgZG8ga2/FhGNhIHd5cmF6dSwgd3Bpc3ogIGNlIC4gKioKIAogICAxLiBQcnplbmllxZsga3Vyc29yIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4uCiAKQEAgLTQyOCw3ICs0MjgsNyBAQAogCiAgIDQuIFdjacWbbmlqIDxFU0M+IGkgcHJ6ZWpkxbogZG8gbmFzdMSZcG5laiBwbGFub3dhbmVqIHptaWFueS4KIAotICA1LiBQb3d0YXJ6YWoga3Jva2kgMy4gaSA0LiBkb3DDs2tpIHBpZXJ3c3plIHpkYW5pZSBuaWUgYsSZZHppZSB0YWtpZSBzYW1lCisgIDUuIFBvd3RhcnphaiBrcm9raSAzLiBpIDQuIGRvcMOza2kgcGllcndzemUgemRhbmllIG5pZSBixJlkemllIHRha2llIHNhbWUsCiAgICAgIGphayBkcnVnaWUuCiAKIC0tLT4gVGEgbHVub3MgbWEgcGlyZSBzxYLDs3csIGt0w7NyZSB0xbxpbmEgemJuaWMgdcW8aWZham9uYyBwY21henUgem1pZcWELgpAQCAtNDQyLDEzICs0NDIsMTMgQEAKIAkJICAgICAgTGVrY2phIDMuNC46IFdJxJhDRUogWk1JQU4gVcW7WVdBSsSEQyBjCiAKIAotCSoqIFBvbGVjZW5pZSBjaGFuZ2UgdcW8eXdhIHRha2ljaCBzYW15Y2ggcnVjaMOzdyBqYWsgZGVsZXRlLiAqKgorCSoqIFBvbGVjZW5pZSBjaGFuZ2UgdcW8eXdhIHRha2ljaCBzYW15Y2ggcnVjaMOzdywgamFrIGRlbGV0ZS4gKioKIAotICAxLiBPcGVyYXRvciBjaGFuZ2UgZHppYcWCYSB0YWsgc2FtbyBqYWsgZGVsZXRlLiBGb3JtYXQgd3lnbMSFZGEgdGFrOgorICAxLiBPcGVyYXRvciBjaGFuZ2UgZHppYcWCYSB0YWsgc2FtbywgamFrIGRlbGV0ZS4gRm9ybWF0IHd5Z2zEhWRhIHRhazoKIAogCSAgICBjICAgW2xpY3piYV0gICBydWNoCiAKLSAgMi4gUnVjaHkgc8SFIHRha8W8ZSB0YWtpZSBzYW1lLCBucC46ICB3ICAod3lyYXopLCAgJCAgKGtvbmllYyBsaW5paSksIGV0Yy4KKyAgMi4gUnVjaHkgc8SFIHRha8W8ZSB0YWtpZSBzYW1lLCBucC46ICB3ICAod3lyYXopLCAgJCAgKGtvbmllYyBsaW5paSkgZXRjLgogCiAgIDMuIFByemVuaWXFmyBzacSZIGRvIHBpZXJ3c3plaiBsaW5paSBwb25pxbxlaiBvem5hY3pvbmVqIC0tLT4KIApAQCAtNDU2LDcgKzQ1Niw3IEBACiAKICAgNS4gV3Bpc3ogIGMkICwgcG9wcmF3IGtvbmllYyB3aWVyc3phIGkgd2NpxZtuaWogPEVTQz4uCiAKLS0tLT4gS29uaWVjIHRlZ28gd2llcnN6YSBtdXNpIGJ5xIcgcG9wcmF3aW9ueSBhYnkgd3lnbMSFZGHFgiB0YWsgamFrIGRydWdpLgorLS0tPiBLb25pZWMgdGVnbyB3aWVyc3phIG11c2kgYnnEhyBwb3ByYXdpb255LCBhYnkgd3lnbMSFZGHFgiB0YWssIGphayBkcnVnaS4KIC0tLT4gS29uaWVjIHRlZ28gd2llcnN6YSBtdXNpIGJ5xIcgcG9wcmF3aW9ueSB1xbx5d2FqxIVjIHBvbGVjZW5pYSAgYyQgLgogCiBVV0FHQTogIE1vxbxlc3ogdcW8eXdhxIcgPEJTPiBhYnkgcG9wcmF3aWHEhyBixYLEmWR5IHcgY3phc2llIHBpc2FuaWEuCkBAIC00NjksMTEgKzQ2OSwxMSBAQAogICAgICBwb2xlY2VuaWUgd3N0YXdpYSBza2Fzb3dhbnkgdGVrc3QgUE8ga3Vyc29yemUgKGplxZtsaSBjYcWCYSBsaW5pYQogICAgICB6b3N0YcWCYSB1c3VuacSZdGEsIHpvc3RhbmllIG9uYSB1bWllc3pjem9uYSB3IGxpbmlpIHBvbmnFvGVqIGt1cnNvcmEpLgogCi0gIDIuIEJ5IHphbWllbmnEhyB6bmFrIHBvZCBrdXJzb3JlbSB3Y2nFm25paiAgciAgYSBwb3RlbSB6bmFrLCBrdMOzcnkgbWEgemFzdMSFcGnEhworICAyLiBCeSB6YW1pZW5pxIcgem5hayBwb2Qga3Vyc29yZW0sIHdjacWbbmlqICByICBhIHBvdGVtIHpuYWssIGt0w7NyeSBtYSB6YXN0xIVwacSHCiAgICAgIG9yeWdpbmFsbnkuCiAKLSAgMy4gT3BlcmF0b3IgY2hhbmdlIHBvendhbGEgQ2kgbmEgemFzdMSFcGllbmllIG9kIGt1cnNvcmEgZG8gbWllanNjYSBnZHppZQotICAgICB6YWJyYcWCYnkgY2nEmSBydWNoLiBOcC4gd3Bpc3ogIGNlICBhYnkgemFtaWVuacSHIHRla3N0IG9kIGt1cnNvcmEgZG8ga2/FhGNhCisgIDMuIE9wZXJhdG9yIGNoYW5nZSBwb3p3YWxhIENpIG5hIHphc3TEhXBpZW5pZSBvZCBrdXJzb3JhIGRvIG1pZWpzY2EsIGdkemllCisgICAgIHphYnJhxYJieSBDacSZIHJ1Y2guIE5wLiB3cGlzeiAgY2UgIGFieSB6YW1pZW5pxIcgdGVrc3Qgb2Qga3Vyc29yYSBkbyBrb8WEY2EKICAgICAgd3lyYXp1LCAgYyQgIGFieSB6bWllbmnEhyB0ZWtzdCBkbyBrb8WEY2EgbGluaWkuCiAKICAgNC4gRm9ybWF0IGRvIHBvbGVjZW5pYSBjaGFuZ2UgKHptaWXFhCk6CkBAIC00OTcsMTIgKzQ5NywxMiBAQAogICAgICBaYXBhbWnEmXRhaiBudW1lciBsaW5paSBkbGEgcG90cnplYiBrcm9rdSAzLgogCiBVV0FHQTogTW/FvGVzeiB0ZcW8IHpvYmFjennEhyBwb3p5Y2rEmSBrdXJzb3JhIHcgcHJhd3ltLCBkb2xueW0gcm9ndSBla3JhbnUuCi0gICAgICAgRHppZWplIHNpxJkgdGFrIGtpZWR5IHVzdGF3aW9uYSBqZXN0IG9wY2phICdydWxlcicgKHd5amHFm25pb25lIHcgbGVrY2ppIDYuKS4KKyAgICAgICBEemllamUgc2nEmSB0YWsga2llZHkgdXN0YXdpb25hIGplc3Qgb3BjamEgJ3J1bGVyJyAod2nEmWNlaiB3IGxla2NqaSA2LikuCiAKICAgMi4gV2NpxZtuaWogRyBhYnkgcHJ6ZWrFm8SHIG5hIGtvbmllYyBwbGlrdS4KICAgICAgV2NpxZtuaWogIGdnICBhYnkgcHJ6ZWrFm8SHIGRvIHBvY3rEhXRrdSBwbGlrdS4KIAotICAzLiBXcGlzeiBudW1lciBsaW5paSwgdyBrdMOzcmVqIGJ5xYJlxZsgYSBwb3RlbSAgRyAuIFRvIHByemVuaWVzaWUgY2nEmQorICAzLiBXcGlzeiBudW1lciBsaW5paSwgdyBrdMOzcmVqIGJ5xYJlxZsgYSBwb3RlbSAgRyAuIFRvIHByemVuaWVzaWUgQ2nEmQogICAgICB6IHBvd3JvdGVtIGRvIGxpbmlpLCB3IGt0w7NyZWogYnnFgmXFmyBraWVkeSB3Y2lzbsSFxYJlxZsgQ1RSTC1HLgogCiAgIDQuIEplxZtsaSBjenVqZXN6IHNpxJkgd3lzdGFyY3phasSFY28gcGV3bmllLCB3eWtvbmFqIGtyb2tpIDEtMy4KQEAgLTUxMSwxMCArNTExLDEwIEBACiAJCQkgTGVrY2phIDQuMi46IFBPTEVDRU5JRSBTWlVLQUoKIAogCi0JICAgICAqKiBXcGlzeiAgLyAgYSBuYXN0xJlwbmllIHd5cmHFvGVuaWUgYWJ5IGplIHpuYWxlxbrEhy4gKioKKwkgICAgICoqIFdwaXN6ICAvICBhIG5hc3TEmXBuaWUgd3lyYcW8ZW5pZSwgYWJ5IGplIHpuYWxlxbrEhy4gKioKIAotICAxLiBXIHRyeWJpZSBOb3JtYWwgd3Bpc3ogIC8gLiBaYXV3YcW8LCDFvGUgem5hayB0ZW4sIG9yYXoga3Vyc29yIHBvamF3acSFCi0gICAgIHNpxJkgbmEgZG9sZSBla3JhbnUgdGFrIHNhbW8gamFrIHBvbGVjZW5pZSAgOiAuCisgIDEuIFcgdHJ5YmllIE5vcm1hbCB3cGlzeiAgLyAuIFphdXdhxbwsIMW8ZSB6bmFrIHRlbiBvcmF6IGt1cnNvciBwb2phd2nEhQorICAgICBzacSZIG5hIGRvbGUgZWtyYW51IHRhayBzYW1vLCBqYWsgcG9sZWNlbmllICA6IC4KIAogICAyLiBUZXJheiB3cGlzeiAgYsWCb25kPEVOVEVSPiAuICBUbyBqZXN0IHPFgm93bywga3TDs3JlZ28gY2hjZXN6IHN6dWthxIcuCiAKQEAgLTUyMywxMSArNTIzLDExIEBACiAKICAgNC4gSmXFm2xpIGNoY2VzeiBzenVrYcSHIGZyYXp5IGRvIHR5xYJ1LCB1xbx5aiBwb2xlY2VuaWEgID8gIHphbWlhc3QgIC8gLgogCi0gIDUuIEFieSB3csOzY2nEhyBnZHppZSBiecWCZcWbIHdjacWbbmlqICBDVFJMLU8uIFBvd3RhcnphaiBieSB3csOzY2nEhyBkYWxlai4gQ1RSTC1JCisgIDUuIEFieSB3csOzY2nEhyBnZHppZSBiecWCZcWbLCB3Y2nFm25paiAgQ1RSTC1PLiBQb3d0YXJ6YWosIGJ5IHdyw7NjacSHIGRhbGVqLiBDVFJMLUkKICAgICAgaWR6aWUgZG8gcHJ6b2R1LgogCi1Vd2FnYTogICdixYJvbmQnIHRvIG5pZSBqZXN0IG1ldG9kYSBieSBwcnplbGl0ZXJvd2HEhyBixYLEhWQ7ICdixYJvbmQnIHRvIGLFgsSFZC4KLVV3YWdhOiAgS2llZHkgc3p1a2FuaWUgb3NpxIVnbmllIGtvbmllYyBwbGlrdSBixJlkemllIGtvbnR5bnVvd2HFgm8gb2QgcG9jesSFdGt1CitVd2FnYTogICdixYJvbmQnIHRvIG5pZSBqZXN0IG1ldG9kYSwgYnkgcHJ6ZWxpdGVyb3dhxIcgYsWCxIVkOyAnYsWCb25kJyB0byBixYLEhWQuCitVd2FnYTogIEtpZWR5IHN6dWthbmllIG9zacSFZ25pZSBrb25pZWMgcGxpa3UsIGLEmWR6aWUga29udHludW93YW5lIG9kIHBvY3rEhXRrdQogICAgICAgICBvIGlsZSBvcGNqYSAnd3JhcHNjYW4nIG5pZSB6b3N0YcWCYSBwcnplc3Rhd2lvbmEuCiAKIH5+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+fgpAQCAtNTcxLDE2ICs1NzEsMTYgQEAKIAogICA0LiBBYnkgem1pZW5pxIcgd3N6eXN0a2llIHd5c3TEhXBpZW5pYSDFgmHFhGN1Y2hhIHpuYWvDs3cgcG9tacSZZHp5IGR3b21hIGxpbmlhbWksCiAgICAgIHdwaXN6OiA6Iywjcy9zdGFyZS9ub3dlL2cgZ2R6aWUgIywjIHPEhSBudW1lcmFtaSBsaW5paSBvZ3JhbmljemFqxIVjeWNoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uIGdkemllIG1hIG5hc3TEhXBpxIcgemFtaWFuYS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24sIGdkemllIG1hIG5hc3TEhXBpxIcgemFtaWFuYS4KICAgICAgd3Bpc3ogIDolcy9zdGFyZS9ub3dlL2cgICBieSB6bWllbmnEhyB3c3p5c3RraWUgd3lzdMSFcGllbmlhIHcgY2HFgnltIHBsaWt1LgogICAgICB3cGlzeiAgOiVzL3N0YXJlL25vd2UvZ2MgIGJ5IHptaWVuacSHIHdzenlzdGtpZSB3eXN0xIVwaWVuaWEgdyBjYcWCeW0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGlrdSwgcHJvc3rEhWMgbyBwb3R3aWVyZHplbmllIHphIGthxbxkeW0gcmF6ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGlrdSwgcHJvc3rEhWMgbyBwb3R3aWVyZHplbmllIHphIGthxbxkeW0gcmF6ZW0uCiAKIH5+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+fgogCQkJICAgICBMRUtDSkEgNC4gUE9EU1VNT1dBTklFCiAKICAgMS4gQ1RSTC1HICAgcG9rYcW8ZSBUd29qxIUgcG96eWNqxJkgdyBwbGlrdSBpIHN0YXR1cyBwbGlrdS4gIFNISUZULUcgcHJ6ZW5vc2kKLQkgICAgICBjacSZIGRvIGtvxYRjYSBwbGlrdS4KKwkgICAgICBDacSZIGRvIGtvxYRjYSBwbGlrdS4KICAgICAgRyAgICAgICAgcHJ6ZW5vc2kgZG8ga2/FhGNhIHBsaWt1LgogICAgICBsaWN6YmEgRyBwcnplbm9zaSBkbyBsaW5paSBbbGljemJhXS4KICAgICAgZ2cgICAgICAgcHJ6ZW5vc2kgZG8gcGllcndzemVqIGxpbmlpLgpAQCAtNTg4LDIyICs1ODgsMjIgQEAKICAgMi4gV3Bpc2FuaWUgIC8gIGEgbmFzdMSZcG5pZSDFgmHFhGN1Y2hhIHpuYWvDs3cgc3p1a2EgxYJhxYRjdWNoYSBETyBQUlpPRFUuCiAgICAgIFdwaXNhbmllICA/ICBhIG5hc3TEmXBuaWUgxYJhxYRjdWNoYSB6bmFrw7N3IHN6dWthIMWCYcWEY3VjaGEgRE8gVFnFgVUuCiAgICAgIFBvIHd5c3p1a2l3YW5pdSB3Y2nFm25paiAgbiAgYnkgem5hbGXFusSHIG5hc3TEmXBuZSB3eXN0xIVwaWVuaWUgc3p1a2FuZWoKLSAgICAgZnJhenkgdHltIHNhbXltIGtpZXJ1bmt1IGx1YiAgTiAgYnkgc3p1a2HEhyB3IGtpZXJ1bmt1IHByemVjaXdueW0uCisgICAgIGZyYXp5IHcgdHltIHNhbXltIGtpZXJ1bmt1IGx1YiAgTiAgYnkgc3p1a2HEhyB3IGtpZXJ1bmt1IHByemVjaXdueW0uCiAgICAgIENUUkwtTyBwcnplbm9zaSBkbyBzdGFyc3p5Y2ggcG96eWNqaSwgQ1RSTC1JIGRvIG5vd3N6eWNoLgogCiAgIDMuIFdwaXNhbmllICAlICBnZHkga3Vyc29yIHpuYWpkdWplIHNpxJkgbmEgKCwpLFssXSx7LCBsdWIgfSBsb2thbGl6dWplCiAgICAgIHBhcnVqxIVjeSB6bmFrLgogCi0gIDQuIEJ5IHphbWllbmnEhyBwaWVyd3N6eSBzdGFyeSBuYSBub3d5IHcgbGluaWkgd3Bpc3ogICAgICA6cy9zdGFyeS9ub3d5Ci0gICAgIEJ5IHphbWllbmnEhyB3c3p5c3RraWUgc3RhcnkgbmEgbm93eSB3IGxpbmlpIHdwaXN6ICAgICA6cy9zdGFyeS9ub3d5L2cKKyAgNC4gQnkgemFtaWVuacSHIHBpZXJ3c3p5IHN0YXJ5IG5hIG5vd3kgdyBsaW5paSwgd3Bpc3ogICAgICA6cy9zdGFyeS9ub3d5CisgICAgIEJ5IHphbWllbmnEhyB3c3p5c3RraWUgc3RhcnkgbmEgbm93eSB3IGxpbmlpLCB3cGlzeiAgICAgOnMvc3Rhcnkvbm93eS9nCiAgICAgIEJ5IHphbWllbmnEhyBmcmF6eSBwb21pxJlkenkgZHdvbWEgbGluaWFtaSAjIHdwaXN6ICAgICAgOiMsI3Mvc3Rhcnkvbm93eS9nCi0gICAgIEJ5IHphbWllbmnEhyB3c3p5c3RraWUgd3lzdMSFcGllbmlhIHcgcGxpa3Ugd3Bpc3ogICAgICAgOiVzL3N0YXJ5L25vd3kvZwotICAgICBCeSBWaW0gcHJvc2nFgiBDacSZIG8gcG90d2llcmR6ZW5pZSBkb2RhaiAnYycJICAgOiVzL3N0YXJ5L25vd3kvZ2MKKyAgICAgQnkgemFtaWVuacSHIHdzenlzdGtpZSB3eXN0xIVwaWVuaWEgdyBwbGlrdSwgd3Bpc3ogICAgICAgOiVzL3N0YXJ5L25vd3kvZworICAgICBCeSBWaW0gcHJvc2nFgiBDacSZIG8gcG90d2llcmR6ZW5pZSwgZG9kYWogJ2MnCSAgIDolcy9zdGFyeS9ub3d5L2djCiB+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+fn4KLQkJIExla2NqYSA1LjEuOiBKQUsgV1lLT05BxIYgUE9MRUNFTklBIFpFV07EmFRSWk5FCisJCSBMZWtjamEgNS4xLjogSkFLIFdZS09OQcSGIFBPTEVDRU5JQSBaRVdOxJhUUlpORT8KIAogCi0JKiogV3Bpc3ogIDohICBhIG5hc3TEmXBuaWUgemV3bsSZdHJ6bmUgcG9sZWNlbmllIGJ5IGplIHd5a29uYcSHLiAqKgorCSoqIFdwaXN6ICA6ISAgYSBuYXN0xJlwbmllIHpld27EmXRyem5lIHBvbGVjZW5pZSwgYnkgamUgd3lrb25hxIcuICoqCiAKICAgMS4gV3Bpc3ogem5ham9tZSBwb2xlY2VuaWUgIDogIGJ5IHVzdGF3acSHIGt1cnNvciBuYSBkb2xlIGVrcmFudS4gVG8gcG96d2FsYQogICAgICBuYSB3cHJvd2FkemVuaWUga29tZW5keSBsaW5paSBwb2xlY2XFhC4KQEAgLTYyNiwyMCArNjI2LDIwIEBACiAJCSAgICBMZWtjamEgNS4yLjogV0nEmENFSiBPIFpBUElTWVdBTklVIFBMSUvDk1cKIAogCi0JICAgKiogQnkgemFjaG93YcSHIHptaWFueSB3IHRla8WbY2kgd3Bpc3ogOncgTkFaV0FfUExJS1UgLiAqKgorCSAgICoqIEJ5IHphY2hvd2HEhyB6bWlhbnkgdyB0ZWvFm2NpZSwgd3Bpc3ogOncgTkFaV0FfUExJS1UgLiAqKgogCiAgIDEuIFdwaXN6ICA6IWRpciAgbHViICA6IWxzICBieSB6b2JhY3p5xIcgc3BpcyBwbGlrw7N3IHcga2F0YWxvZ3UuCi0gICAgIEp1xbwgd2llc3osIMW8ZSBtdXNpc3ogd2Npc27EhcSHIDxFTlRFUj4gcG8gdHltLgorICAgICBKdcW8IHdpZXN6LCDFvGUgbXVzaXN6IHBvIHR5bSB3Y2lzbsSFxIcgPEVOVEVSPi4KIAotICAyLiBXeWJpZXJ6IG5henfEmSBwbGlrdSBqYWthIGplc3pjemUgbmllIGlzdG5pZWplLCBucC4gVEVTVC4KKyAgMi4gV3liaWVyeiBuYXp3xJkgcGxpa3UsIGpha2EgamVzemN6ZSBuaWUgaXN0bmllamUsIG5wLiBURVNULgogCiAgIDMuIFRlcmF6IHdwaXN6OiAgIDp3IFRFU1QgICAoZ2R6aWUgVEVTVCBqZXN0IG5henfEhSBwbGlrdSBqYWvEhSB3eWJyYcWCZcWbLikKIAogICA0LiBUbyBwb2xlY2VuaWUgemFwYW1pxJl0YSBjYcWCeSBwbGlrIChWaW0gVHV0b3IpIHBvZCBuYXp3xIUgVEVTVC4KLSAgICAgQnkgdG8gc3ByYXdkemnEhyB3cGlzeiAgOiFkaXIgIGx1YiAgOiFscyAsIMW8ZWJ5IHpub3d1IHpvYmFjennEhyBsaXN0xJkgcGxpa8Ozdy4KKyAgICAgQnkgdG8gc3ByYXdkemnEhywgd3Bpc3ogIDohZGlyICBsdWIgIDohbHMgIMW8ZWJ5IHpub3d1IHpvYmFjennEhyBsaXN0xJkgcGxpa8Ozdy4KIAogVXdhZ2E6IFphdXdhxbwsIMW8ZSBnZHliecWbIHRlcmF6IHd5c3plZMWCIHogVmltYSwgYSBuYXN0xJlwbmllIHdzemVkxYIgcG9ub3duaWUKLSAgICAgICBwb2xlY2VuaWVtICB2aW0gVEVTVCAsIHBsaWsgYnnFgmJ5IGRva8WCYWRuxIUga29wacSFIHR1dG9yaWFsYSBraWVkeSBnbworICAgICAgIHBvbGVjZW5pZW0gIHZpbSBURVNUICwgcGxpayBiecWCYnkgZG9rxYJhZG7EhSBrb3BpxIUgdHV0b3JpYWxhLCBraWVkeSBnbwogICAgICAgIHphcGlzeXdhxYJlxZsuCiAKICAgNS4gVGVyYXogdXN1xYQgcGxpayB3cGlzdWrEhWMgKE1TLURPUyk6CQkgICA6IWRlbCBURVNUCkBAIC02NDksNyArNjQ5LDcgQEAKIAkJICAgIExla2NqYSA1LjMuOiBXWUJSQU5JRSBURUtTVFUgRE8gWkFQSVNVCiAKIAotCSAgKiogQnkgemFjaG93YcSHIGN6xJnFm8SHIHBsaWt1IHdwaXN6ICB2IHJ1Y2ggOncgTkFaV0FfUExJS1UgKioKKwkgICoqIEJ5IHphY2hvd2HEhyBjesSZxZvEhyBwbGlrdSwgd3Bpc3ogIHYgcnVjaCA6dyBOQVpXQV9QTElLVSAqKgogCiAgIDEuIFByemVuaWXFmyBrdXJzb3IgZG8gdGVnbyB3aWVyc3phLgogCkBAIC02NjQsMjYgKzY2NCwyNiBAQAogICA1LiBWaW0gemFwaXN6ZSB3eWJyYW5lIGxpbmllIGRvIHBsaWt1IFRFU1QuIFXFvHlqICA6IWRpciAgbHViICA6IWxzICwgxbxlYnkgdG8KICAgICAgem9iYWN6ecSHLiBKZXN6Y3plIGdvIG5pZSB1c3V3YWohIFXFvHlqZW15IGdvIHcgbmFzdMSZcG5laiBsZWtjamkuCiAKLVVXQUdBOiBXY2nFm25pxJljaWUgIHYgIHphY3p5bmEgdHJ5YiBXaXp1YWxueS4gTW/FvGVzeiBwb3J1c3phxIcga3Vyc29yZW0gYnkKLSAgICAgICB6bWllbmnEhyByb3ptaWFyeSB6YXpuYWN6ZW5pYS4gTW/FvGVzeiB0ZcW8IHXFvHnEhyBvcGVyYXRvcmEgYnkgenJvYmnEhyBjb8WbCitVV0FHQTogV2NpxZtuacSZY2llICB2ICB6YWN6eW5hIHRyeWIgV2l6dWFsbnkuIE1vxbxlc3ogcG9ydXN6YcSHIGt1cnNvcmVtLCBieQorICAgICAgIHptaWVuacSHIHJvem1pYXJ5IHphem5hY3plbmlhLiBNb8W8ZXN6IHRlxbwgdcW8ecSHIG9wZXJhdG9yYSwgYnkgenJvYmnEhyBjb8WbCiAgICAgICAgeiB0ZWtzdGVtLiBOYSBwcnp5a8WCYWQgIGQgIHVzdXdhIHRla3N0LgogCiB+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+fn4KIAkJICAgTGVrY2phIDUuNC46IFdTVEFXSUFOSUUgSSDFgcSEQ1pFTklFIFBMSUvDk1cKIAogCi0JICAgICoqIEJ5IHdzdGF3acSHIHphd2FydG/Fm8SHIHBsaWt1IHdwaXN6ICAgOnIgTkFaV0FfUExJS1UgKioKKwkgICAgKiogQnkgd3N0YXdpxIcgemF3YXJ0b8WbxIcgcGxpa3UsIHdwaXN6ICAgOnIgTkFaV0FfUExJS1UgKioKIAogICAxLiBVbWllxZvEhyBrdXJzb3IgdHXFvCBwb3d5xbxlaiB0ZWogbGluaWkuCiAKIFVXQUdBOiBQbyB3eWtvbmFuaXUga3Jva3UgMi4gem9iYWN6eXN6IHRla3N0IHogTGVrY2ppIDUuMy4gUG90ZW0gcHJ6ZWpkxboKLSAgICAgICBkbyBET8WBVSBieSB6b2JhY3p5xIcgcG9ub3duaWUgdMSZIGxla2NqxJkuCisgICAgICAgZG8gRE/FgVUsIGJ5IHpvYmFjennEhyBwb25vd25pZSB0xJkgbGVrY2rEmS4KIAogICAyLiBUZXJheiB3Y3p5dGFqIHBsaWsgVEVTVCB1xbx5d2FqxIVjIHBvbGVjZW5pYSAgOnIgVEVTVCAsIGdkemllIFRFU1QKICAgICAgamVzdCBuYXp3xIUgcGxpa3UuCiAgICAgIFdjenl0YW55IHBsaWsgamVzdCB1bWllc3pjem9ueSBwb25pxbxlaiBsaW5paSB6IGt1cnNvcmVtLgogCi0gIDMuIEJ5IHNwcmF3ZHppxIcgY3p5IHBsaWsgem9zdGHFgiB3Y3p5dGFueSBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCDFvGUKKyAgMy4gQnkgc3ByYXdkemnEhyBjenkgcGxpayB6b3N0YcWCIHdjenl0YW55LCBjb2ZuaWoga3Vyc29yIGkgem9iYWN6LCDFvGUKICAgICAgdGVyYXogc8SFIGR3aWUga29waWUgTGVrY2ppIDUuMy4sIG9yeWdpbmHFgiBpIGtvcGlhIHogcGxpa3UuCiAKIFVXQUdBOiBNb8W8ZXN6IHRlxbwgd2N6eXRhxIcgd3lqxZtjaWUgemV3bsSZdHJ6bmVnbyBwb2xlY2VuaWEuIE5hIHByenlrxYJhZApAQCAtNzIzLDE0ICs3MjMsMTQgQEAKIAogICAxLiBQcnplbmllxZsga3Vyc29yIGRvIGxpbmlpIHBvbmnFvGVqIG96bmFjem9uZWogLS0tPi4KIAotICAyLiBXcGlzeiAgbyAgKG1hxYJlKSBieSBvdHdvcnp5xIcgbGluacSZIFBPTknFu0VKIGt1cnNvcmEgaSBwcnplbmllxZvEhyBzacSZCisgIDIuIFdwaXN6ICBvICAobWHFgmUpLCBieSBvdHdvcnp5xIcgbGluacSZIFBPTknFu0VKIGt1cnNvcmEgaSBwcnplbmllxZvEhyBzacSZCiAgICAgIGRvIHRyeWJ1IEluc2VydCAod3Byb3dhZHphbmllKS4KIAogICAzLiBXcGlzeiB0cm9jaMSZIHRla3N0dSBpIHdjacWbbmlqIDxFU0M+IGJ5IHd5asWbxIcgeiB0cnlidSBJbnNlcnQgKHdwcm93YWR6YW5pZSkuCiAKIC0tLT4gUG8gd2NpxZtuacSZY2l1ICBvICBrdXJzb3Igem5hamR6aWUgc2nEmSB3IG90d2FydGVqIGxpbmlpIHcgdHJ5YmllIEluc2VydC4KIAotICA0LiBCeSBvdHdvcnp5xIcgbGluacSZIFBPV1nFu0VKIGt1cnNvcmEgd2NpxZtuaWogd2llbGtpZSAgTyAgemFtaWFzdCBtYcWCZWdvCisgIDQuIEJ5IG90d29yennEhyBsaW5pxJkgUE9XWcW7RUoga3Vyc29yYSwgd2NpxZtuaWogd2llbGtpZSAgTyAgemFtaWFzdCBtYcWCZWdvCiAgICAgIG8gLiBXeXByw7NidWogdG8gbmEgbGluaWkgcG9uacW8ZWouCiAKIC0tLT4gT3R3w7NyeiBsaW5pxJkgcG93ecW8ZWogd2Npc2thasSFYyBTSElGVC1PIGdkeSBrdXJzb3IgYsSZZHppZSBuYSB0ZWogbGluaWkuCkBAIC03NDcsOSArNzQ3LDkgQEAKIAogICAyLiBXY2lza2FqICBlICBkb3DDs2tpIGt1cnNvciBuaWUgYsSZZHppZSBuYSBrb8WEY3UgbGkgLgogCi0gIDMuIFdwaXN6ICBhICAobWHFgmUpIGFieSBkb2RhxIcgdGVrc3QgWkEgem5ha2llbSBwb2Qga3Vyc29yZW0uCisgIDMuIFdwaXN6ICBhICAobWHFgmUpLCBhYnkgZG9kYcSHIHRla3N0IFpBIHpuYWtpZW0gcG9kIGt1cnNvcmVtLgogCi0gIDQuIERva2/FhGN6IHd5cmF6IHRhayBqYWsgdyBsaW5paSBwb25pxbxlai4gV2NpxZtuaWogPEVTQz4gYWJ5IG9wdcWbY2nEhyB0cnliCisgIDQuIERva2/FhGN6IHd5cmF6IHRhaywgamFrIHcgbGluaWkgcG9uacW8ZWouIFdjacWbbmlqIDxFU0M+IGFieSBvcHXFm2NpxIcgdHJ5YgogICAgICBJbnNlcnQuCiAKICAgNS4gVcW8eWogIGUgIGJ5IHByemVqxZvEhyBkbyBrb2xlam5lZ28gbmllZG9rb8WEY3pvbmVnbyB3eXJhenUgaSBwb3d0YXJ6YWoga3Jva2kKQEAgLTc1OCw3ICs3NTgsNyBAQAogLS0tPiBUYSBsaSBwb3ogQ2kgxId3aSBkb2RhdyB0ZWtzIGRvIGtvxYQgbGluCiAtLS0+IFRhIGxpbmlhIHBvendvbGkgQ2kgxId3aWN6ecSHIGRvZGF3YW5pZSB0ZWtzdHUgZG8ga2/FhGNhIGxpbmlpLgogCi1Vd2FnYTogIGEgLCAgaSAgb3JheiAgQSAgcHJvd2FkesSFIGRvIHRyeWJ1IEluc2VydCwgamVkeW7EhSByw7PFvG5pY8SFIGplc3QgbWllanNjZQorVXdhZ2E6ICBhICwgIGkgIG9yYXogIEEgIHByb3dhZHrEhSBkbyB0cnlidSBJbnNlcnQsIGplZHluxIUgcsOzxbxuaWPEhSBqZXN0IG1pZWpzY2UsCiAgICAgICAgZ2R6aWUgbm93ZSB6bmFraSBixJlkxIUgZG9kYXdhbmUuCiB+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+fn4KIAkJICAgTGVrY2phIDYuMy46IElOTkEgV0VSU0pBIFJFUExBQ0UgKHphbWlhbmEpCkBAIC03OTEsMTYgKzc5MSwxNiBAQAogCiAgIDEuIFByemVqZMW6IGRvIGxpbmlpIG96bmFjem9uZWogLS0tPiBpIHVtaWXFm8SHIGt1cnNvciB6YSAiYSkiLgogCi0gIDIuIFdlamTFuiB3IHRyeWIgVmlzdWFsICB2ICBpIHByemVuaWXFmyBrdXJzb3IgbmEgcG9jesSFdGVrICJwaWVyd3N6eSIuCisgIDIuIFdlamTFuiB3IHRyeWIgV2l6dWFsbnkgIHYgIGkgcHJ6ZW5pZcWbIGt1cnNvciBuYSBwb2N6xIV0ZWsgInBpZXJ3c3p5Ii4KIAotICAzLiBXY2nFm25paiAgeSAgYWJ5IHlhbmtvd2HEhyAoa29waW93YcSHKSBwb2TFm3dpZXRsb255IHRla3N0LgorICAzLiBXY2nFm25paiAgeSAgYWJ5IGtvcGlvd2HEhyAoeWFua293YcSHKSBwb2TFm3dpZXRsb255IHRla3N0LgogCiAgIDQuIFByemVuaWXFmyBrdXJzb3IgZG8ga2/FhGNhIG5hc3TEmXBuZWogbGluaWk6ICBqJAogCi0gIDUuIFdjacWbbmlqICBwICBhYnkgd3Bha293YcSHIChwYXN0ZSkgdGVrc3QuICBEb2RhajogIGEgZHJ1Z2k8RVNDPiAuCisgIDUuIFdjacWbbmlqICBwICBhYnkgd2tsZWnEhyAod3Bha293YcSHKSB0ZWtzdC4gIERvZGFqOiAgYSBkcnVnaTxFU0M+IC4KIAotICA2LiBVxbx5aiB0cnlidSBXaXp1YWxuZWdvIGFieSB3eWJyYcSHICIgZWxlbWVudC4iLCB5YW5rdWogZ28gIHkgLCBwcnplamTFuiBkbwotICAgICBrb8WEY2EgbmFzdMSZcG5laiBsaW5paSAgaiQgaSB1cGFrdWogdGFtIHRla3N0IHogIHAgLgorICA2LiBVxbx5aiB0cnlidSBXaXp1YWxuZWdvLCBhYnkgd3licmHEhyAiIGVsZW1lbnQuIiwgeWFua3VqIGdvICB5ICwgcHJ6ZWpkxbogZG8KKyAgICAga2/FhGNhIG5hc3TEmXBuZWogbGluaWkgIGokICBpIHVwYWt1aiB0YW0gdGVrc3QgeiAgcCAuCiAKIC0tLT4gIGEpIHRvIGplc3QgcGllcndzenkgZWxlbWVudC4KICAgICAgIGIpCkBAIC04MTAsNyArODEwLDcgQEAKIAkJCSBMZWtjamEgNi41LjogVVNUQVdJQU5JRSBPUENKSQogCiAKLSoqIFVzdGF3aWFuaWUgb3BjamkgdGFrIGJ5IHN6dWthaiBsdWIgc3Vic3R5dHVjamEgaWdub3Jvd2HFgnkgd2llbGtvxZvEhyBsaXRlciAqKgorKiogVXN0YXdpYW5pZSBvcGNqaSB0YWssIGJ5IHN6dWthaiBsdWIgc3Vic3R5dHVjamEgaWdub3Jvd2HFgnkgd2llbGtvxZvEhyBsaXRlciAqKgogCiAgIDEuIFN6dWthaiAnaWdub3JlJyB3cGlzdWrEhWM6ICAgIC9pZ25vcmU8RU5URVI+CiAgICAgIFBvd3TDs3J6IHN6dWthbmllIGtpbGthIHJhenkgbmFjaXNrYWrEhWMga2xhd2lzeiAgbiAuCkBAIC04MjgsNyArODI4LDcgQEAKIAogICA2LiBBYnkgd3nFgsSFY3p5xIcgaWdub3Jvd2FuaWUgd2llbGtvxZtjaSBsaXRlcjogIDpzZXQgbm9pYwogCi1Vd2FnYTogQWJ5IHVzdW7EhcSHIHBvZMWbd2lldGxhbmllIGRvcGFzb3dhxYQgd3Bpc3o6ICAgOm5vaGxzZWFyY2gKK1V3YWdhOiBBYnkgdXN1bsSFxIcgcG9kxZt3aWV0bGFuaWUgZG9wYXNvd2HFhCwgd3Bpc3o6ICAgOm5vaGxzZWFyY2gKIFV3YWdhOiBBYnkgaWdub3Jvd2HEhyB3aWVsa2/Fm8SHIGxpdGVyIGRsYSBqZWRuZWdvIHd5c3p1a2l3YW5pYTogL2lnbm9yZVxjPEVOVEVSPgogfn5+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+CiAJCQkgICAgIExFS0NKQSA2LiBQT0RTVU1PV0FOSUUKQEAgLTgzNywzNiArODM3LDM2IEBACiAgIDEuIFdwaXNhbmllICBvICBvdHdpZXJhIGxpbmnEmSBQT05JxbtFSiBrdXJzb3JhLgogICAgICBXcGlzYW5pZSAgTyAgb3R3aWVyYSBsaW5pxJkgUE9XWcW7RUoga3Vyc29yYS4KIAotICAyLiBXcGlzYW5pZSAgYSAgYnkgd3N0YXdpxIcgdGVrc3QgWkEgem5ha2llbSBuYSwga3TDs3J5bSBqZXN0IGt1cnNvci4KKyAgMi4gV3Bpc2FuaWUgIGEgIHdzdGF3aWEgdGVrc3QgWkEgem5ha2llbSwgbmEga3TDs3J5bSBqZXN0IGt1cnNvci4KICAgICAgV3Bpc2FuaWUgIEEgIGRvZGFqZSB0ZWtzdCBuYSBrb8WEY3UgbGluaWkuCiAKICAgMy4gUG9sZWNlbmllICBlICBwcnplbm9zaSBkbyBrb8WEY2Egd3lyYXp1LgotICA0LiBPcGVyYXRvciAgeSAgeWFua3VqZSAoa29waXVqZSkgdGVrc3QsICBwICBwYWt1amUgKHdrbGVqYSwgcGFzdGUpIGdvLgorICA0LiBPcGVyYXRvciAgeSAgeWFua3VqZSAoa29waXVqZSkgdGVrc3QsICBwICBwYWt1amUgKHdrbGVqYSkgZ28uCiAgIDUuIFdwaXNhbmllIHdpZWxraWVnbyAgUiAgd3Byb3dhZHphIHcgdHJ5YiBSZXBsYWNlICh6YW1pYW5hKSBkb3DDs2tpCiAgICAgIG5pZSB6b3N0YW5pZSB3Y2nFm25pxJl0eSA8RVNDPi4KLSAgNi4gV3Bpc2FuaWUgIjpzZXQgeHh4IiB1c3Rhd2lhIG9wY2rEmSAieHh4Ii4gTmlldGvDs3JlIG9wY2plOgorICA2LiBXcGlzYW5pZSAiOnNldCB4eHgiIHVzdGF3aWEgb3BjasSZICJ4eHgiLiBOaWVrdMOzcmUgb3BjamU6CiAJJ2ljJyAgJ2lnbm9yZWNhc2UnCWlnbm9ydWogd2llbGtvxZvEhyB6bmFrw7N3CiAJJ2lzJyAgJ2luY3NlYXJjaCcJcG9rYcW8IGN6xJnFm2Npb3dlIGRvcGFzb3dhbmlhCiAJJ2hscycgJ2hsc2VhcmNoJwlwb2TFm3dpZXRsIHdzenlzdGtpZSBkb3Bhc293YW5pYQotICAgICBNb8W8ZXN6IHXFvHnEhyB6YXLDs3dubyBkxYJ1Z2llaiBqYWsgaSBrcsOzdGtpZWogZm9ybXkuCi0gIDcuIERvZGFqICJubyIgYWJ5IHd5xYLEhWN6ecSHIG9wY2rEmTogICA6c2V0IG5vaWMKKyAgICAgTW/FvGVzeiB1xbx5xIcgemFyw7N3bm8gZMWCdWdpZWosIGphayBpIGtyw7N0a2llaiBmb3JteS4KKyAgNy4gRG9kYWogIm5vIiwgYWJ5IHd5xYLEhWN6ecSHIG9wY2rEmTogICA6c2V0IG5vaWMKIAogCiAKIAogCiB+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+fn4KLQkJCUxFS0NKQSA3LjEuIEpBSyBVWllTS0HEhiBQT01PQworCQkJIExFS0NKQSA3LjEuIEpBSyBVWllTS0HEhiBQT01PQz8KIAogCQkgICAgICAqKiBVxbx5Y2llIHN5c3RlbXUgcG9tb2N5IG9uLWxpbmUgKioKIAotICBWaW0gcG9zaWFkYSBiYXJkem8gZG9icnkgc3lzdGVtIHBvbW9jeSBvbi1saW5lLiBCeSB6YWN6xIXEhyBzcHLDs2J1aiBqZWRuZWoKKyAgVmltIHBvc2lhZGEgYmFyZHpvIGRvYnJ5IHN5c3RlbSBwb21vY3kgb24tbGluZS4gQnkgemFjesSFxIcsIHNwcsOzYnVqIGplZG5lagogICB6IHRyemVjaCBtb8W8bGl3b8WbY2k6CiAJLSB3Y2nFm25paiBrbGF3aXN6IDxIRUxQPiAoamXFm2xpIHRha2kgbWFzeikKIAktIHdjacWbbmlqIGtsYXdpc3ogPEYxPiAoamXFm2xpIHRha2kgbWFzeikKIAktIHdwaXN6ICAgOmhlbHA8RU5URVI+CiAKLSAgUHJ6ZWN6eXRhaiB0ZWtzdCB3IG9rbmllIHBvbW9jeSAgYWJ5IGRvd2llZHppZcSHIHNpxJkgamFrIGR6aWHFgmEgcG9tb2MuCisgIFByemVjenl0YWogdGVrc3QgdyBva25pZSBwb21vY3ksIGFieSBkb3dpZWR6aWXEhyBzacSZIGphayBkemlhxYJhIHBvbW9jLgogICB3cGlzeiBDVFJMLVcgQ1RSTC1XICAgIGFieSBwcnplc2tvY3p5xIcgeiBqZWRuZWdvIG9rbmEgZG8gaW5uZWdvCiAgIHdwaXN6IDpxPEVOVEVSPiAgICAgICAgYWJ5IHphbWtuxIXEhyBva25vIHBvbW9jeS4KIApAQCAtODk0LDEwICs4OTQsMTAgQEAKICAgMy4gWmFwaXN6IHBsaWs6CiAgICAgIDp3CiAKLSAgTmFzdMSZcG55bSByYXplbSBnZHkgemFjem5pZXN6IHByYWPEmSB3IFZpbWllIGLEmWR6aWUgb24gdcW8eXdhxIcgcG9kxZt3aWV0bGFuaWEKKyAgTmFzdMSZcG55bSByYXplbSwgZ2R5IHphY3puaWVzeiBwcmFjxJkgdyBWaW1pZSBixJlkemllIG9uIHXFvHl3YcSHIHBvZMWbd2lldGxhbmlhCiAgIHNrxYJhZG5pLiBNb8W8ZXN6IGRvZGHEhyB3c3p5c3RraWUgc3dvamUgdWx1YmlvbmUgdXN0YXdpZW5pYSBkbyB0ZWdvIHBsaWt1CiAgICJ2aW1yYyIuCi0gIEFieSB1enlza2HEhyB3acSZY2VqIGluZm9ybWFjamkgd3Bpc3ogICAgIDpoZWxwIHZpbXJjLWludHJvCisgIEFieSB1enlza2HEhyB3acSZY2VqIGluZm9ybWFjamksIHdwaXN6ICAgICA6aGVscCB2aW1yYy1pbnRybwogCiB+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+fn4KIAkJCSAgTGVrY2phIDcuMy46IFVaVVBFxYFOSUFOSUUKQEAgLTkwNywxMSArOTA3LDExIEBACiAKICAgMS4gVXBld25paiBzacSZLCDFvGUgVmltIG5pZSBqZXN0IHcgdHJ5YmllIGtvbXBhdHliaWxub8WbY2k6ICAgOnNldCBub2NwCiAKLSAgMi4gWmVya25paiBqYWtpZSBwbGlraSBzxIUgdyBiaWXFvMSFY20ga2F0YWxvZ3U6ICAgOiFscyAgIGx1YiAgIDohZGlyCisgIDIuIFplcmtuaWosIGpha2llIHBsaWtpIHPEhSB3IGJpZcW8xIVjeW0ga2F0YWxvZ3U6ICAgOiFscyAgIGx1YiAgIDohZGlyCiAKICAgMy4gV3Bpc3ogcG9jesSFdGVrIHBvbGVjZW5pYTogICA6ZQogCi0gIDQuIFdjacWbbmlqICBDVFJMLUQgIGkgVmltIHBva2HFvGUgbGlzdMSZIHBvbGVjZcWEIGpha2llIHphY3p5bmFqxIUgc2nEmSBuYSAiZSIuCisgIDQuIFdjacWbbmlqICBDVFJMLUQgIGkgVmltIHBva2HFvGUgbGlzdMSZIHBvbGVjZcWELCBqYWtpZSB6YWN6eW5hasSFIHNpxJkgbmEgImUiLgogCiAgIDUuIFdjacWbbmlqICA8VEFCPiAgaSBWaW0gdXp1cGXFgm5pIHBvbGVjZW5pZSBkbyAiOmVkaXQiLgogCkBAIC05MjUsNyArOTI1LDcgQEAKIAkJCSAgICBMZWtjamEgNy4gUE9EU1VNT1dBTklFCiAKIAotICAxLiBXcGlzeiAgOmhlbHAgIGx1YiB3Y2nFm25paiA8RjE+IGx1YiA8SGVscD4gYWJ5IG90d29yennEhyBva25vIHBvbW9jeS4KKyAgMS4gV3Bpc3ogIDpoZWxwICBhbGJvIHdjacWbbmlqIDxGMT4gbHViIDxIZWxwPiBhYnkgb3R3b3J6ecSHIG9rbm8gcG9tb2N5LgogCiAgIDIuIFdwaXN6ICA6aGVscCBjbWQgIGFieSB1enlza2HEhyBwb21vYyBvICBjbWQgLgogCkBAIC05NDUsMTQgKzk0NSwxNCBAQAogCiB+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+fn4KIAotICBUdXRhaiBzacSZIGtvxYRjenkgdHV0b3JpYWwgVmltYS4gWm9zdGHFgiBvbiBwb215xZtsYW55IHRhayBhYnkgZGHEhyBrcsOzdGtpCisgIFR1dGFqIHNpxJkga2/FhGN6eSB0dXRvcmlhbCBWaW1hLiBab3N0YcWCIG9uIHBvbXnFm2xhbnkgdGFrLCBhYnkgZGHEhyBrcsOzdGtpCiAgIHByemVnbMSFZCBqZWdvIG1vxbxsaXdvxZtjaSwgd3lzdGFyY3phasSFY3kgYnnFmyBtw7NnxYIgZ28gdcW8eXdhxIcuIEplc3Qgb24KLSAgZGFsZWtpIG9kIGtvbXBsZXRub8WbY2kgcG9uaWV3YcW8IFZpbSBtYSBvIHdpZWxlLCB3aWVsZSB3acSZY2VqIHBvbGVjZcWELgorICBkYWxla2kgb2Qga29tcGxldG5vxZtjaSwgcG9uaWV3YcW8IFZpbSBtYSBvIHdpZWxlLCB3aWVsZSB3acSZY2VqIHBvbGVjZcWELgogCiAgIERsYSBkYWxzemVqIG5hdWtpIHJla29tZW5kdWplbXkga3NpxIXFvGvEmToKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGF1dG9yIFN0ZXZlIE91YWxsaW5lCiAJV3lkYXdjYTogTmV3IFJpZGVycwotICBQaWVyd3N6YSBrc2nEhXprYSBjYcWCa293aWNpZSBwb8Wbd2nEmWNvbmEgVmltb3dpLiBVxbx5dGVjem5hIHp3xYJhc3pjemEgZGxhCisgIFBpZXJ3c3phIGtzacSFxbxrYSBjYcWCa293aWNpZSBwb8Wbd2nEmWNvbmEgVmltb3dpLiBVxbx5dGVjem5hIHp3xYJhc3pjemEgZGxhCiAgIHBvY3rEhXRrdWrEhWN5Y2guIFphd2llcmEgd2llbGUgcHJ6eWvFgmFkw7N3IGkgaWx1c3RyYWNqaS4KICAgWm9iYWN6IGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnLi9jbGljazUuaHRtbAogCkBAIC05NjAsNyArOTYwLDcgQEAKICAgcG9sZWNlbmlhOgogCUxlYXJuaW5nIHRoZSBWaSBFZGl0b3IgLSBhdXRvciBMaW5kYSBMYW1iCiAJV3lkYXdjYTogTydSZWlsbHkgJiBBc3NvY2lhdGVzIEluYy4KLSAgVG8gZG9icmEga3NpxIXFvGthIGJ5IGRvd2llZHppZcSHIHNpxJkgbmllbWFsIHdzenlzdGtpZWdvIGNvIGNoY2lhxYJiecWbIHpyb2JpxIcKKyAgVG8gZG9icmEga3NpxIXFvGthLCBieSBkb3dpZWR6aWXEhyBzacSZIG5pZW1hbCB3c3p5c3RraWVnbywgY28gY2hjaWHFgmJ5xZsgenJvYmnEhwogICB6IFZpLiBTesOzc3RhIGVkeWNqYSB6YXdpZXJhIHRlxbwgaW5mb3JtYWNqZSBvIFZpbWllLgogCiAgIFBvIHBvbHNrdSB3eWRhbm86CkBAIC05OTEsNCArOTkxLDUgQEAKICAgcmV2LiBNYXJ6ZWMgMjAwMgogICAybmQgcmV2LiBXcnplc2llxYQgMjAwNAogICAzcmQgcmV2LiBNYXJ6ZWMgMjAwNgorICA0dGggcmV2LiBHcnVkemllxYQgMjAwOAogICBXc3plbGtpZSB1d2FnaSBwcm9zesSZIGtpZXJvd2HEhyBuYTogbWlrbWFjaEB3cC5wbApkaWZmIC0tZ2l0IGEvcnVudGltZS92aW1yY19leGFtcGxlLnZpbSBiL3J1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0KaW5kZXggMmMwZGUzZC4uYjM1MTAwYyAxMDA2NDQKLS0tIGEvcnVudGltZS92aW1yY19leGFtcGxlLnZpbQorKysgYi9ydW50aW1lL3ZpbXJjX2V4YW1wbGUudmltCkBAIC0xLDcgKzEsNyBAQAogIiBBbiBleGFtcGxlIGZvciBhIHZpbXJjIGZpbGUuCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgY2hhbmdlOgkyMDA4IEp1bCAwMgorIiBMYXN0IGNoYW5nZToJMjAwOCBEZWMgMTcKICIKICIgVG8gdXNlIGl0LCBjb3B5IGl0IHRvCiAiICAgICBmb3IgVW5peCBhbmQgT1MvMjogIH4vLnZpbXJjCkBAIC0xNCw3ICsxNCw3IEBACiAgIGZpbmlzaAogZW5kaWYKIAotIiBVc2UgVmltIHNldHRpbmdzLCByYXRoZXIgdGhlbiBWaSBzZXR0aW5ncyAobXVjaCBiZXR0ZXIhKS4KKyIgVXNlIFZpbSBzZXR0aW5ncywgcmF0aGVyIHRoYW4gVmkgc2V0dGluZ3MgKG11Y2ggYmV0dGVyISkuCiAiIFRoaXMgbXVzdCBiZSBmaXJzdCwgYmVjYXVzZSBpdCBjaGFuZ2VzIG90aGVyIG9wdGlvbnMgYXMgYSBzaWRlIGVmZmVjdC4KIHNldCBub2NvbXBhdGlibGUKIAo=