ZGlmZiAtLWdpdCBhL0xpYi9zaGxleC5weSBiL0xpYi9zaGxleC5weQppbmRleCA1NWRiMjNjLi4zZWRkM2RiIDEwMDY0NAotLS0gYS9MaWIvc2hsZXgucHkKKysrIGIvTGliL3NobGV4LnB5CkBAIC0xLDQgKzEsMyBAQAotIyAtKi0gY29kaW5nOiBpc28tODg1OS0xIC0qLQogIiIiQSBsZXhpY2FsIGFuYWx5emVyIGNsYXNzIGZvciBzaW1wbGUgc2hlbGwtbGlrZSBzeW50YXhlcy4iIiIKIAogIyBNb2R1bGUgYW5kIGRvY3VtZW50YXRpb24gYnkgRXJpYyBTLiBSYXltb25kLCAyMSBEZWMgMTk5OApAQCAtMzUsOCArMzQsOCBAQAogICAgICAgICBzZWxmLndvcmRjaGFycyA9ICgnYWJjZGZlZ2hpamtsbW5vcHFyc3R1dnd4eXonCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODlfJykKICAgICAgICAgaWYgc2VsZi5wb3NpeDoKLSAgICAgICAgICAgIHNlbGYud29yZGNoYXJzICs9ICgn3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3icpCisgICAgICAgICAgICBzZWxmLndvcmRjaGFycyArPSAoJ8Ofw6DDocOiw6PDpMOlw6bDp8Oow6nDqsOrw6zDrcOuw6/DsMOxw7LDs8O0w7XDtsO4w7nDusO7w7zDvcO+w78nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ8OAw4HDgsODw4TDhcOGw4fDiMOJw4rDi8OMw43DjsOPw5DDkcOSw5PDlMOVw5bDmMOZw5rDm8Ocw53DnicpCiAgICAgICAgIHNlbGYud2hpdGVzcGFjZSA9ICcgXHRcclxuJwogICAgICAgICBzZWxmLndoaXRlc3BhY2Vfc3BsaXQgPSBGYWxzZQogICAgICAgICBzZWxmLnF1b3RlcyA9ICdcJyInCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NheC5weSBiL0xpYi90ZXN0L3Rlc3Rfc2F4LnB5CmluZGV4IGM0YjIxMWYuLjZhMjA1MTMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc2F4LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2F4LnB5CkBAIC0xLDQgKzEsNCBAQAotIyByZWdyZXNzaW9uIHRlc3QgZm9yIFNBWCAyLjAgICAgICAgICAgICAtKi0gY29kaW5nOiBpc28tODg1OS0xIC0qLQorIyByZWdyZXNzaW9uIHRlc3QgZm9yIFNBWCAyLjAKICMgJElkJAogCiBmcm9tIHhtbC5zYXggaW1wb3J0IG1ha2VfcGFyc2VyLCBDb250ZW50SGFuZGxlciwgXApAQCAtMTE0LDcgKzExNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICImbHQ7RG9uYWxkIER1Y2sgJmFtcDsgQ28mZ3Q7IikKIAogICAgIGRlZiB0ZXN0X2VzY2FwZV9leHRyYShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXNjYXBlKCJIZWkgcOUgZGVnIiwgeyLlIiA6ICImYXJpbmc7In0pLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlc2NhcGUoIkhlaSBww6UgZGVnIiwgeyLDpSIgOiAiJmFyaW5nOyJ9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhlaSBwJmFyaW5nOyBkZWciKQogCiAgICAgIyA9PT09PSB1bmVzY2FwZQpAQCAtMTI2LDcgKzEyNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICI8RG9uYWxkIER1Y2sgJiBDbz4iKQogCiAgICAgZGVmIHRlc3RfdW5lc2NhcGVfZXh0cmEoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHVuZXNjYXBlKCJIZWkgcOUgZGVnIiwgeyLlIiA6ICImYXJpbmc7In0pLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh1bmVzY2FwZSgiSGVpIHDDpSBkZWciLCB7IsOlIiA6ICImYXJpbmc7In0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiSGVpIHAmYXJpbmc7IGRlZyIpCiAKICAgICBkZWYgdGVzdF91bmVzY2FwZV9hbXBfZXh0cmEoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NobGV4LnB5IGIvTGliL3Rlc3QvdGVzdF9zaGxleC5weQppbmRleCAxNjg1OTM4Li4yNWU0YjZkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NobGV4LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2hsZXgucHkKQEAgLTEsNCArMSwzIEBACi0jIC0qLSBjb2Rpbmc6IGlzby04ODU5LTEgLSotCiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCBvcywgc3lzLCBpbwogaW1wb3J0IHNobGV4CkBAIC02OCw3ICs2Nyw3IEBACiBmb29cIGJhcnxmb298XHxiYXJ8CiBmb28jYmFyXG5iYXp8Zm9vYmF6fAogOi0pIDstKXw6fC18KXw7fC18KXwKLeHp7fP6fOF86XztfPN8+nwKK8Ohw6nDrcOzw7p8w6F8w6l8w618w7N8w7p8CiAiIiIKIAogcG9zaXhfZGF0YSA9IHIiIiJ4fHh8CkBAIC0xMzIsNyArMTMxLDcgQEAKIGZvb1wgYmFyfGZvbyBiYXJ8CiBmb28jYmFyXG5iYXp8Zm9vfGJhenwKIDotKSA7LSl8Oi0pfDstKXwKLeHp7fP6fOHp7fP6fAorw6HDqcOtw7PDunzDocOpw63Ds8O6fAogIiIiCiAKIGNsYXNzIFNobGV4VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3VuaWNvZGUucHkgYi9MaWIvdGVzdC90ZXN0X3VuaWNvZGUucHkKaW5kZXggOTQwMzVlZi4uNzkyNzgzNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF91bmljb2RlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdW5pY29kZS5weQpAQCAtMSw0ICsxLDMgQEAKLSMgLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICIiIiBUZXN0IHNjcmlwdCBmb3IgdGhlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24uCiAKIFdyaXR0ZW4gYnkgTWFyYy1BbmRyZSBMZW1idXJnIChtYWxAbGVtYnVyZy5jb20pLgpAQCAtNDAzLDExICs0MDIsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJiMCIuaXNpZGVudGlmaWVyKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiYmMiLmlzaWRlbnRpZmllcigpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoImJfIi5pc2lkZW50aWZpZXIoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCK1Ii5pc2lkZW50aWZpZXIoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCLCtSIuaXNpZGVudGlmaWVyKCkpCiAKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgiICIuaXNpZGVudGlmaWVyKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoIlsiLmlzaWRlbnRpZmllcigpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCKpIi5pc2lkZW50aWZpZXIoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgiwqkiLmlzaWRlbnRpZmllcigpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCIwIi5pc2lkZW50aWZpZXIoKSkKIAogICAgIGRlZiB0ZXN0X2lzcHJpbnRhYmxlKHNlbGYpOgo=