ZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3Rfd2luYmFyLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3Rfd2luYmFyLnZpbQppbmRleCA3OTcyYmMzLi5iOTQ2YmNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3dpbmJhci52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF93aW5iYXIudmltCkBAIC0xMzIsMTMgKzEzMiwxMiBAQAogICAgICAgd2luY21kIGoKICAgICAgIHdpbmNtZCBfCiAgIEVORAotICBjYWxsIHdyaXRlZmlsZShsaW5lcywgJ1h0ZXN0V2luYmFyTm90VmlzYmxlJykKKyAgY2FsbCB3cml0ZWZpbGUobGluZXMsICdYdGVzdFdpbmJhck5vdFZpc2JsZScsICdEJykKICAgbGV0IGJ1ZiA9IFJ1blZpbUluVGVybWluYWwoJy1TIFh0ZXN0V2luYmFyTm90VmlzYmxlJywgI3tyb3dzOiAxMH0pCiAgIGNhbGwgVmVyaWZ5U2NyZWVuRHVtcChidWYsICdUZXN0X3dpbmJhcl9ub3RfdmlzaWJsZScsIHt9KQogCiAgICIgY2xlYW4gdXAKICAgY2FsbCBTdG9wVmltSW5UZXJtaW5hbChidWYpCi0gIGNhbGwgZGVsZXRlKCdYdGVzdFdpbmJhck5vdFZpc2JsZScpCiBlbmRmdW5jdGlvbgogCiBmdW5jIFRlc3Rfd2luYmFyX25vdF92aXNpYmxlX2N1c3RvbV9zdGF0dXNsaW5lKCkKQEAgLTE1MiwxMyArMTUxLDEyIEBACiAgICAgICB3aW5jbWQgagogICAgICAgd2luY21kIF8KICAgRU5ECi0gIGNhbGwgd3JpdGVmaWxlKGxpbmVzLCAnWHRlc3RXaW5iYXJOb3RWaXNibGUnKQorICBjYWxsIHdyaXRlZmlsZShsaW5lcywgJ1h0ZXN0V2luYmFyTm90VmlzYmxlJywgJ0QnKQogICBsZXQgYnVmID0gUnVuVmltSW5UZXJtaW5hbCgnLVMgWHRlc3RXaW5iYXJOb3RWaXNibGUnLCAje3Jvd3M6IDEwfSkKICAgY2FsbCBWZXJpZnlTY3JlZW5EdW1wKGJ1ZiwgJ1Rlc3Rfd2luYmFyX25vdF92aXNpYmxlX2N1c3RvbV9zdGF0dXNsaW5lJywge30pCiAKICAgIiBjbGVhbiB1cAogICBjYWxsIFN0b3BWaW1JblRlcm1pbmFsKGJ1ZikKLSAgY2FsbCBkZWxldGUoJ1h0ZXN0V2luYmFyTm90VmlzYmxlJykKIGVuZGZ1bmN0aW9uCiAKIGZ1bmMgVGVzdF9kcmFnX3N0YXR1c2xpbmVfd2l0aF93aW5iYXIoKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF93aW5idWZfY2xvc2UudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF93aW5idWZfY2xvc2UudmltCmluZGV4IDI1MzBiZTAuLjE3ZTMxZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Rfd2luYnVmX2Nsb3NlLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3dpbmJ1Zl9jbG9zZS52aW0KQEAgLTEyLDkgKzEyLDkgQEAKIGZ1bmMgVGVzdF93aW5idWZfY2xvc2UoKQogICBlbmV3IHwgb25seQogCi0gIGNhbGwgd3JpdGVmaWxlKFsndGVzdHRleHQgMSddLCAnWHRlc3QxJykKLSAgY2FsbCB3cml0ZWZpbGUoWyd0ZXN0dGV4dCAyJ10sICdYdGVzdDInKQotICBjYWxsIHdyaXRlZmlsZShbJ3Rlc3R0ZXh0IDMnXSwgJ1h0ZXN0MycpCisgIGNhbGwgd3JpdGVmaWxlKFsndGVzdHRleHQgMSddLCAnWHRlc3QxJywgJ0QnKQorICBjYWxsIHdyaXRlZmlsZShbJ3Rlc3R0ZXh0IDInXSwgJ1h0ZXN0MicsICdEJykKKyAgY2FsbCB3cml0ZWZpbGUoWyd0ZXN0dGV4dCAzJ10sICdYdGVzdDMnLCAnRCcpCiAKICAgbmV4dCEgWHRlc3QxIFh0ZXN0MgogICBjYWxsIHNldGxpbmUoMSwgJ3Rlc3R0ZXh0IDEgMScpCkBAIC0xMTcsMTAgKzExNyw2IEBACiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdYdGVzdDMnLCBidWZuYW1lKCclJykpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdzaWxlbnQhIHF1aXQhJywgJ0UzNzonKQogICBjYWxsIGFzc2VydF9lcXVhbCgnWHRlc3QxJywgYnVmbmFtZSgnJScpKQotCi0gIGNhbGwgZGVsZXRlKCdYdGVzdDEnKQotICBjYWxsIGRlbGV0ZSgnWHRlc3QyJykKLSAgY2FsbCBkZWxldGUoJ1h0ZXN0MycpCiBlbmRmdW5jCiAKICIgVGVzdCB0aGF0ICI6Y2xvc2UiIHdpbGwgcmVzcGVjdCAnd2luZml4aGVpZ2h0JyB3aGVuIHBvc3NpYmxlLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF93aW5kb3dfY21kLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3Rfd2luZG93X2NtZC52aW0KaW5kZXggNjFkYWE4ZC4uNjM2ODg4OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF93aW5kb3dfY21kLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3dpbmRvd19jbWQudmltCkBAIC02OSw4ICs2OSw4IEBACiBmdW5jIFRlc3Rfd2luZG93X2NtZF93aW5jbWRfZ2YoKQogICBsZXQgZm5hbWUgPSAndGVzdF9nZi50eHQnCiAgIGxldCBzd3BfZm5hbWUgPSAnLicgLiBmbmFtZSAuICcuc3dwJwotICBjYWxsIHdyaXRlZmlsZShbXSwgZm5hbWUpCi0gIGNhbGwgd3JpdGVmaWxlKFtdLCBzd3BfZm5hbWUpCisgIGNhbGwgd3JpdGVmaWxlKFtdLCBmbmFtZSwgJ0QnKQorICBjYWxsIHdyaXRlZmlsZShbXSwgc3dwX2ZuYW1lLCAnRCcpCiAgIGZ1bmN0aW9uIHM6c3dhcF9leGlzdHMoKQogICAgIGxldCB2OnN3YXBjaG9pY2UgPSBzOnN3YXBfY2hvaWNlCiAgIGVuZGZ1bmMKQEAgLTk2LDggKzk2LDYgQEAKICAgY2FsbCBhc3NlcnRfbm90ZXF1YWwoZm5hbWUsIGJ1Zm5hbWUoIiUiKSkKICAgbmV3IHwgb25seSEKIAotICBjYWxsIGRlbGV0ZShmbmFtZSkKLSAgY2FsbCBkZWxldGUoc3dwX2ZuYW1lKQogICBhdWdyb3VwISB0ZXN0X3dpbmRvd19jbWRfd2luY21kX2dmCiBlbmRmdW5jCiAKQEAgLTc0MCw3ICs3MzgsNyBAQAogICBDaGVja1VuaXgKIAogICBzZXQgaGlkZGVuIGF1dG9yZWFkCi0gIGNhbGwgd3JpdGVmaWxlKFsnMiddLCAndG1wLnR4dCcpCisgIGNhbGwgd3JpdGVmaWxlKFsnMiddLCAndG1wLnR4dCcsICdEJykKICAgbmV3IHRtcC50eHQKICAgcQogICBjYWxsIEZ1bl9SZW5ld0ZpbGUoKQpAQCAtNzU2LDcgKzc1NCw2IEBACiAgIHdpbmNtZCBwCiAgICIgcmVzZXQKICAgcQotICBjYWxsIGRlbGV0ZSgndG1wLnR4dCcpCiAgIHNldCBoaWRkZW4mdmltIGF1dG9yZWFkJnZpbQogICBkZWxmdW5jIEZ1bl9SZW5ld0ZpbGUKIGVuZGZ1bmMKQEAgLTEwODIsOSArMTA3OSw5IEBACiAgICAgZW5kdHJ5CiAgIGVuZHdoaWxlCiAKLSAgY2FsbCB3cml0ZWZpbGUoWydmaXJzdCcsICdzZWNvbmQnLCAndGhpcmQnXSwgJ1hub3JmaWxlMScpCi0gIGNhbGwgd3JpdGVmaWxlKFtdLCAnWG5vcmZpbGUyJykKLSAgY2FsbCB3cml0ZWZpbGUoW10sICdYbm9yZmlsZTMnKQorICBjYWxsIHdyaXRlZmlsZShbJ2ZpcnN0JywgJ3NlY29uZCcsICd0aGlyZCddLCAnWG5vcmZpbGUxJywgJ0QnKQorICBjYWxsIHdyaXRlZmlsZShbXSwgJ1hub3JmaWxlMicsICdEJykKKyAgY2FsbCB3cml0ZWZpbGUoW10sICdYbm9yZmlsZTMnLCAnRCcpCiAKICAgIiBBcmd1bWVudCBsaXN0IHJlbGF0ZWQgY29tbWFuZHMKICAgYXJncyBYbm9yZmlsZTEgWG5vcmZpbGUyIFhub3JmaWxlMwpAQCAtMTE2NSw5ICsxMTYyLDYgQEAKICAgZW5kaWYKIAogICAlYndpcGUhCi0gIGNhbGwgZGVsZXRlKCdYbm9yZmlsZTEnKQotICBjYWxsIGRlbGV0ZSgnWG5vcmZpbGUyJykKLSAgY2FsbCBkZWxldGUoJ1hub3JmaWxlMycpCiAgIG9ubHkKIGVuZGZ1bmMKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF93cml0ZWZpbGUudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF93cml0ZWZpbGUudmltCmluZGV4IGZkNmIwMmQuLjE0MGIyZWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Rfd3JpdGVmaWxlLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3dyaXRlZmlsZS52aW0KQEAgLTUsOCArNSw4IEBACiAKIGZ1bmMgVGVzdF93cml0ZWZpbGUoKQogICBsZXQgZiA9IHRlbXBuYW1lKCkKLSAgY2FsbCB3cml0ZWZpbGUoWyJvdmVyIiwid3JpdHRlbiJdLCBmLCAiYiIpCi0gIGNhbGwgd3JpdGVmaWxlKFsiaGVsbG8iLCJ3b3JsZCJdLCBmLCAiYiIpCisgIGNhbGwgd3JpdGVmaWxlKFsib3ZlciIsICJ3cml0dGVuIl0sIGYsICJiRCIpCisgIGNhbGwgd3JpdGVmaWxlKFsiaGVsbG8iLCAid29ybGQiXSwgZiwgImIiKQogICBjYWxsIHdyaXRlZmlsZShbIiEiLCAiZ29vZCJdLCBmLCAiYSIpCiAgIGNhbGwgd3JpdGVmaWxlKFsibW9ybmluZyJdLCBmLCAiYWIiKQogICBjYWxsIHdyaXRlZmlsZShbIiIsICJ2aW1tZXJzIl0sIGYsICJhYiIpCkBAIC0xNiw3ICsxNiw2IEBACiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCJnb29kIiwgbFsyXSkKICAgY2FsbCBhc3NlcnRfZXF1YWwoIm1vcm5pbmciLCBsWzNdKQogICBjYWxsIGFzc2VydF9lcXVhbCgidmltbWVycyIsIGxbNF0pCi0gIGNhbGwgZGVsZXRlKGYpCiAKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgd3JpdGVmaWxlKCJ0ZXh0IiwgIlh3ZmZpbGUiKScsICdFNDc1OiBJbnZhbGlkIGFyZ3VtZW50OiB3cml0ZWZpbGUoKSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgTGlzdCBvciBhIEJsb2InKQogZW5kZnVuYwpAQCAtNTIsNyArNTEsNyBAQAogICBzZXQgbm9iYWNrdXAgbm93cml0ZWJhY2t1cCBiYWNrdXBkaXI9LiBiYWNrdXBza2lwPQogICBuZXcKICAgbGV0IGNvbnRlbnRzID0gWyJsaW5lIG9uZSIsICJsaW5lIHR3byJdCi0gIGNhbGwgd3JpdGVmaWxlKGNvbnRlbnRzLCAnWHdmY2ZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShjb250ZW50cywgJ1h3ZmNmaWxlJywgJ0QnKQogICBlZGl0IFh3ZmNmaWxlCiAgIGNhbGwgc2V0bGluZSgxLCBbImZpcnN0IGxpbmUiLCAiY2Fubm90IGNvbnZlcnQgXHUwMTBiIiwgInRoaXJkIGxpbmUiXSkKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3dyaXRlICsrZW5jPWNwOTMyJywgJ0U1MTM6JykKQEAgLTc5LDcgKzc4LDYgQEAKICAgY2FsbCBkZWxldGUoJ1h3ZmNmaWx5ficpCiAgICVidyEKIAotICBjYWxsIGRlbGV0ZSgnWHdmY2ZpbGUnKQogICBjYWxsIGRlbGV0ZSgnWHdmY2ZpbGUnIC4uICZiYWNrdXBleHQpCiAgIGJ3aXBlIQogICBzZXQgYmFja3VwJiB3cml0ZWJhY2t1cCYgYmFja3VwZGlyJnZpbSBiYWNrdXBza2lwJnZpbQpAQCAtOTQsNyArOTIsNyBAQAogICAiIGJ1dCB0aGVuIHRoZSBiYWNrdXAgZmlsZSBtdXN0IHJlbWFpbgogICBzZXQgbm9iYWNrdXAgd3JpdGViYWNrdXAgYmFja3VwZGlyPS4gYmFja3Vwc2tpcD0KICAgbGV0IGNvbnRlbnRzID0gWyJsaW5lIG9uZSIsICJsaW5lIHR3byJdCi0gIGNhbGwgd3JpdGVmaWxlKGNvbnRlbnRzLCAnWHdmMmZpbGVfY29udmVyc2lvbl9lcnInKQorICBjYWxsIHdyaXRlZmlsZShjb250ZW50cywgJ1h3ZjJmaWxlX2NvbnZlcnNpb25fZXJyJywgJ0QnKQogICBlZGl0IFh3ZjJmaWxlX2NvbnZlcnNpb25fZXJyCiAgIGNhbGwgc2V0bGluZSgxLCBbImZpcnN0IGxpbmUiLCAiY2Fubm90IGNvbnZlcnQgXHUwMTBiIiwgInRoaXJkIGxpbmUiXSkKICAgc2V0IGZpbGVlbmNvZGluZz1sYXRpbjEKQEAgLTEwMiw3ICsxMDAsNiBAQAogICBjYWxsIGFzc2VydF9tYXRjaCgnQ09OVkVSU0lPTiBFUlJPUicsIG91dHB1dCkKICAgY2FsbCBhc3NlcnRfZXF1YWwoY29udGVudHMsIHJlYWRmaWxlKCdYd2YyZmlsZV9jb252ZXJzaW9uX2Vycn4nKSkKIAotICBjYWxsIGRlbGV0ZSgnWHdmMmZpbGVfY29udmVyc2lvbl9lcnInKQogICBjYWxsIGRlbGV0ZSgnWHdmMmZpbGVfY29udmVyc2lvbl9lcnJ+JykKICAgYndpcGUhCiAgIHNldCBiYWNrdXAmIHdyaXRlYmFja3VwJiBiYWNrdXBkaXImdmltIGJhY2t1cHNraXAmdmltCkBAIC0xNTQsOSArMTUxLDggQEAKIAogZnVuYyBUZXN0X3dyaXRlZmlsZV9zeW5jX2FyZygpCiAgICIgVGhpcyBkb2Vzbid0IGNoZWNrIGlmIGZzeW5jKCkgd29ya3MsIG9ubHkgdGhhdCB0aGUgYXJndW1lbnQgaXMgYWNjZXB0ZWQuCi0gIGNhbGwgd3JpdGVmaWxlKFsnb25lJ10sICdYdGVzdCcsICdzJykKKyAgY2FsbCB3cml0ZWZpbGUoWydvbmUnXSwgJ1h0ZXN0JywgJ3NEJykKICAgY2FsbCB3cml0ZWZpbGUoWyd0d28nXSwgJ1h0ZXN0JywgJ1MnKQotICBjYWxsIGRlbGV0ZSgnWHRlc3QnKQogZW5kZnVuYwogCiBmdW5jIFRlc3Rfd3JpdGVmaWxlX3N5bmNfZGV2X3N0ZG91dCgpCkBAIC0zMTEsNyArMzA3LDcgQEAKICAgQ2hlY2tSdW5WaW1JblRlcm1pbmFsCiAKICAgIiBGaXJzdCByZWFkIHRoZSBmaWxlIGludG8gYSBidWZmZXIKLSAgY2FsbCB3cml0ZWZpbGUoWyJMaW5lMSIsICJMaW5lMiJdLCAnWHdmbWZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbIkxpbmUxIiwgIkxpbmUyIl0sICdYd2ZtZmlsZScsICdEJykKICAgbGV0IG9sZF9mdGltZSA9IGdldGZ0aW1lKCdYd2ZtZmlsZScpCiAgIGxldCBidWYgPSBSdW5WaW1JblRlcm1pbmFsKCdYd2ZtZmlsZScsICN7cm93cyA6IDEwfSkKICAgY2FsbCBUZXJtV2FpdChidWYpCkBAIC0zNDcsNyArMzQzLDYgQEAKIAogICAiIGNsZWFuIHVwCiAgIGNhbGwgU3RvcFZpbUluVGVybWluYWwoYnVmKQotICBjYWxsIGRlbGV0ZSgnWHdmbWZpbGUnKQogZW5kZnVuYwogCiAiIFRlc3QgZm9yIGFuIGF1dG9jbWQgdW5sb2FkaW5nIGEgYnVmZmVyIGR1cmluZyBhIHdyaXRlIGNvbW1hbmQKQEAgLTQxNyw3ICs0MTIsNyBAQAogCiAiIFRlc3QgZm9yIHdyaXRpbmcgdG8gYSByZWFkb25seSBmaWxlCiBmdW5jIFRlc3Rfd3JpdGVfcmVhZG9ubHkoKQotICBjYWxsIHdyaXRlZmlsZShbXSwgJ1h3cm9maWxlJykKKyAgY2FsbCB3cml0ZWZpbGUoW10sICdYd3JvZmlsZScsICdEJykKICAgY2FsbCBzZXRmcGVybSgnWHdyb2ZpbGUnLCAici0tLS0tLS0tIikKICAgZWRpdCBYd3JvZmlsZQogICBzZXQgbm9yZWFkb25seSBiYWNrdXBza2lwPQpAQCAtNDQyLDEzICs0MzcsMTIgQEAKICAgc2V0IGF1dG93cml0ZWFsbCYKIAogICBzZXQgYmFja3Vwc2tpcCYKLSAgY2FsbCBkZWxldGUoJ1h3cm9maWxlJykKICAgJWJ3IQogZW5kZnVuYwogCiAiIFRlc3QgZm9yICdwYXRjaG1vZGUnCiBmdW5jIFRlc3RfcGF0Y2htb2RlKCkKLSAgY2FsbCB3cml0ZWZpbGUoWydvbmUnXSwgJ1hwYWZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJ29uZSddLCAnWHBhZmlsZScsICdEJykKICAgc2V0IHBhdGNobW9kZT0ub3JpZyBub2JhY2t1cCBiYWNrdXBza2lwPSB3cml0ZWJhY2t1cAogICBuZXcgWHBhZmlsZQogICBjYWxsIHNldGxpbmUoMSwgJ3R3bycpCkBAIC00NzMsNyArNDY3LDYgQEAKICAgY2FsbCBhc3NlcnRfZXF1YWwoW10sIHJlYWRmaWxlKCdYcGFmaWxlLm9yaWcnKSkKIAogICBzZXQgcGF0Y2htb2RlJiBiYWNrdXAmIGJhY2t1cHNraXAmIHdyaXRlYmFja3VwJgotICBjYWxsIGRlbGV0ZSgnWHBhZmlsZScpCiAgIGNhbGwgZGVsZXRlKCdYcGFmaWxlLm9yaWcnKQogZW5kZnVuYwogCkBAIC00ODUsNyArNDc4LDcgQEAKICAgIiBSb290IGNhbiBkbyBpdCB0b28uCiAgIENoZWNrTm90Um9vdAogCi0gIGNhbGwgbWtkaXIoJ1hyb2Rpci8nKQorICBjYWxsIG1rZGlyKCdYcm9kaXIvJywgJ1InKQogICBjYWxsIHdyaXRlZmlsZShbJ29uZSddLCAnWHJvZGlyL1hmaWxlMScpCiAgIGNhbGwgc2V0ZnBlcm0oJ1hyb2RpcicsICdyLXhyLS1yLS0nKQogICAiIHRyeSB0byBjcmVhdGUgYSBuZXcgZmlsZSBpbiB0aGUgZGlyZWN0b3J5CkBAIC00OTgsNyArNDkxLDYgQEAKICAgc2V0IHBhdGNobW9kZT0ub3JpZwogICBjYWxsIGFzc2VydF9mYWlscygnd3JpdGUnLCAnRTUwOTonKQogICBjYWxsIHNldGZwZXJtKCdYcm9kaXInLCAncnd4ci0tci0tJykKLSAgY2FsbCBkZWxldGUoJ1hyb2RpcicsICdyZicpCiAgIHNldCBiYWNrdXBkaXImIGJhY2t1cHNraXAmIHBhdGNobW9kZSYKIGVuZGZ1bmMKIApAQCAtNTIxLDcgKzUxMyw3IEBACiAgICAgMiBjcDEyNTEgdGV4dDogxOv/IFZpbSB2ZXJzaW9uIDYuMi4gIM/u8evl5O3l5SDo5+zl7eXt6OU6IDE5NzAgSmFuIDAxCiAgICAgMyBjcDg2NiB0ZXh0OiCEq+8gVmltIHZlcnNpb24gNi4yLiAgj67hq6WkraWlIKinrKWtpa2opTogMTk3MCBKYW4gMDEKICAgRU5ECi0gIGNhbGwgd3JpdGVmaWxlKHRleHQsICdYd2ZlZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKHRleHQsICdYd2ZlZmlsZScsICdEJykKICAgZWRpdCBYd2ZlZmlsZQogCiAgICIgd3JpdGUgdGVzdHM6CkBAIC02MTQsNyArNjA2LDYgQEAKICAgRU5ECiAgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCByZWFkZmlsZSgnWHdmZXRlc3QnKSkKIAotICBjYWxsIGRlbGV0ZSgnWHdmZWZpbGUnKQogICBjYWxsIGRlbGV0ZSgnWHdmZXRlc3QnKQogICBjYWxsIGRlbGV0ZSgnWHV0ZjgnKQogICBjYWxsIGRlbGV0ZSgnWGNwMTI1MScpCkBAIC02NDEsNyArNjMyLDcgQEAKICAgc2V0IGNwb3B0aW9ucys9UwogCiAgICIgQ2hlY2sgdGhhdCBlZGl0aW5nIGEgbGF0aW4xIGZpbGUgZG9lc24ndCBzZWUgYSBCT00KLSAgY2FsbCB3cml0ZWZpbGUoWyJceEZFXHhGRWxhdGluLTEiXSwgJ1hyd3Rlc3QxJykKKyAgY2FsbCB3cml0ZWZpbGUoWyJceEZFXHhGRWxhdGluLTEiXSwgJ1hyd3Rlc3QxJywgJ0QnKQogICBlZGl0IFhyd3Rlc3QxCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdsYXRpbjEnLCAmZmlsZWVuY29kaW5nKQogICBjYWxsIGFzc2VydF9lcXVhbCgwLCAmYm9tYikKQEAgLTc0Niw3ICs3MzcsNiBAQAogCiAgIHNldCBjcG9wdGlvbnMtPVMKICAgbGV0ICZmaWxlZW5jb2RpbmcgPSBzYXZlX2ZpbGVlbmNvZGluZwotICBjYWxsIGRlbGV0ZSgnWHJ3dGVzdDEnKQogICBjYWxsIGRlbGV0ZSgnWHJ3ZmlsZTInKQogICBjYWxsIGRlbGV0ZSgnWHJ3dGVzdDMnKQogICAlYnchCkBAIC03NTQsNyArNzQ0LDcgQEAKIAogZnVuYyBUZXN0X3JlYWRfd3JpdGVfYmluKCkKICAgIiB3cml0ZSBmaWxlIG1pc3NpbmcgRU9MCi0gIGNhbGwgd3JpdGVmaWxlKFsnbm9lb2wnXSwgIlhOb0VvbFNldEVvbCIsICdiUycpCisgIGNhbGwgd3JpdGVmaWxlKFsnbm9lb2wnXSwgIlhOb0VvbFNldEVvbCIsICdiU0QnKQogICBjYWxsIGFzc2VydF9lcXVhbCgwejZFNkY2NTZGNkMsIHJlYWRmaWxlKCdYTm9Fb2xTZXRFb2wnLCAnQicpKQogCiAgICIgd2hlbiBmaWxlIGlzIHJlYWQgJ2VvbCcgaXMgb2ZmCkBAIC03NjcsNyArNzU3LDYgQEAKICAgdwogICBjYWxsIGFzc2VydF9lcXVhbCgwejZFNkY2NTZGNkMwQSwgcmVhZGZpbGUoJ1hOb0VvbFNldEVvbCcsICdCJykpCiAKLSAgY2FsbCBkZWxldGUoJ1hOb0VvbFNldEVvbCcpCiAgIHNldCBmZiYgZml4ZW9sJgogICBid2lwZSEgWE5vRW9sU2V0RW9sCiBlbmRmdW5jCkBAIC04OTksNyArODg4LDcgQEAKICAgY2FsbCBta2RpcignWGJhY2t1cCcpCiAgIGxldCBzYXZlX2JhY2t1cGRpciA9ICZiYWNrdXBkaXIKICAgc2V0IGJhY2t1cGRpcj0uLC4vWGJhY2t1cAotICBjYWxsIHdyaXRlZmlsZShbJzExMTEnXSwgJ1h3YnNmaWxlJykKKyAgY2FsbCB3cml0ZWZpbGUoWycxMTExJ10sICdYd2JzZmlsZScsICdEJykKICAgc2lsZW50ICFsbiAtcyBYd2JzZmlsZSBYd2JzZmlsZS5iYWsKIAogICBuZXcgWHdic2ZpbGUKQEAgLTkxNSw3ICs5MDQsNiBAQAogICBzZXQgYmFja3VwJiBiYWNrdXBjb3B5JiBiYWNrdXBleHQmCiAgICVidwogCi0gIGNhbGwgZGVsZXRlKCdYd2JzZmlsZScpCiAgIGNhbGwgZGVsZXRlKCdYd2JzZmlsZS5iYWsnKQogICBjYWxsIGRlbGV0ZSgnWGJhY2t1cCcsICdyZicpCiAgIGxldCAmYmFja3VwZGlyID0gc2F2ZV9iYWNrdXBkaXIKQEAgLTkyNCw3ICs5MTIsNyBAQAogIiBUZXN0IGZvciAnOndyaXRlICsrYmluJyBhbmQgJzp3cml0ZSArK25vYmluJwogZnVuYyBUZXN0X3dyaXRlX2JpbmFyeV9maWxlKCkKICAgIiBjcmVhdGUgYSBmaWxlIHdpdGhvdXQgYW4gZW9sL2VvZiBjaGFyYWN0ZXIKLSAgY2FsbCB3cml0ZWZpbGUoMHo2MTYxNjEsICdYd2JmaWxlMScsICdiJykKKyAgY2FsbCB3cml0ZWZpbGUoMHo2MTYxNjEsICdYd2JmaWxlMScsICdiRCcpCiAgIG5ldyBYd2JmaWxlMQogICB3cml0ZSArK2JpbiBYd2JmaWxlMgogICB3cml0ZSArK25vYmluIFh3YmZpbGUzCkBAIC05MzQsNyArOTIyLDYgQEAKICAgZWxzZQogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKDB6NjE2MTYxMEEsIHJlYWRibG9iKCdYd2JmaWxlMycpKQogICBlbmRpZgotICBjYWxsIGRlbGV0ZSgnWHdiZmlsZTEnKQogICBjYWxsIGRlbGV0ZSgnWHdiZmlsZTInKQogICBjYWxsIGRlbGV0ZSgnWHdiZmlsZTMnKQogZW5kZnVuYwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF94eGQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF94eGQudmltCmluZGV4IGIyNzYzOWQuLmI3OWQ1MmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfeHhkLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3h4ZC52aW0KQEAgLTI3NCw4ICsyNzQsOCBAQAogZnVuYyBUZXN0X3h4ZF9wYXRjaCgpCiAgIGxldCBjbWQxID0gJ3NpbGVudCAhJyAuLiBzOnh4ZF9jbWQgLi4gJyAtciBYeHhkaW4gWHh4ZGZpbGUnCiAgIGxldCBjbWQyID0gJ3NpbGVudCAhJyAuLiBzOnh4ZF9jbWQgLi4gJyAtZzEgWHh4ZGZpbGUgPiBYeHhkb3V0JwotICBjYWxsIHdyaXRlZmlsZShbIjI6IDQxIDQxIiwgIjg6IDQyIDQyIl0sICdYeHhkaW4nKQotICBjYWxsIHdyaXRlZmlsZShbJzo6Ojo6Ojo6J10sICdYeHhkZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsiMjogNDEgNDEiLCAiODogNDIgNDIiXSwgJ1h4eGRpbicsICdEJykKKyAgY2FsbCB3cml0ZWZpbGUoWyc6Ojo6Ojo6OiddLCAnWHh4ZGZpbGUnLCAnRCcpCiAgIGV4ZSBjbWQxCiAgIGV4ZSBjbWQyCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnMDAwMDAwMDA6IDNhIDNhIDQxIDQxIDNhIDNhIDNhIDNhIDQyIDQyICAgICAgICAgICAgICAgICAgICA6OkFBOjo6OkJCJ10sIHJlYWRmaWxlKCdYeHhkb3V0JykpCkBAIC0zMDYsOCArMzA2LDYgQEAKICAgZXhlIGNtZDIKICAgY2FsbCBhc3NlcnRfZXF1YWwoWycwMDAwMDAwMDogM2EgM2EgNDUgNDUgM2EgM2EgM2EgM2EgNDIgNDQgNDYgNDYgICAgICAgICAgICAgIDo6RUU6Ojo6QkRGRiddLCByZWFkZmlsZSgnWHh4ZG91dCcpKQogICAKLSAgY2FsbCBkZWxldGUoJ1h4eGRpbicpCi0gIGNhbGwgZGVsZXRlKCdYeHhkZmlsZScpCiAgIGNhbGwgZGVsZXRlKCdYeHhkb3V0JykKIGVuZGZ1bmMKIApAQCAtMzY5LDcgKzM2Nyw3IEBACiAiIC1jMCBzZWxlY3RzIHRoZSBmb3JtYXQgc3BlY2lmaWMgZGVmYXVsdCBjb2x1bW4gdmFsdWUsIGFzIGlmIG5vIC1jIHdhcyBnaXZlbgogIiBleGNlcHQgZm9yIC1wcywgd2hlcmUgaXQgZGlzYWJsZXMgZXh0cmEgbmV3bGluZXMKIGZ1bmMgVGVzdF94eGRfYzBfaXNfZGVmX2NvbHMoKQotICBjYWxsIHdyaXRlZmlsZShbImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSJdLCAnWHhkaW4nKQorICBjYWxsIHdyaXRlZmlsZShbImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSJdLCAnWHhkaW4nLCAnRCcpCiAgIGZvciBjb2xzIGluIFsnLWMwJywgJy1jIDAnLCAnLWNvbHMgMCddCiAgICAgZm9yIGZtdCBpbiBbJycsICctYicsICctZScsICctaSddCiAgICAgICBleGUgJ3IhICcgLiBzOnh4ZF9jbWQgLiAnICcgLiBmbXQgJyBYeGRpbiA+IFh4ZG91dDEnCkBAIC0zNzcsNyArMzc1LDYgQEAKICAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsZmlsZSgnWHhkb3V0MScsICdYeGRvdXQyJykKICAgICBlbmRmb3IKICAgZW5kZm9yCi0gIGNhbGwgZGVsZXRlKCdYeGRpbicpCiAgIGNhbGwgZGVsZXRlKCdYeGRvdXQxJykKICAgY2FsbCBkZWxldGUoJ1h4ZG91dDInKQogZW5kZnVuYwpAQCAtMzkxLDcgKzM4OCw3IEBACiAgICAgICAgIFwgImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5IiwKICAgICAgICAgXCAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkiLAogICAgICAgICBcICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSJdLAotICAgICAgICBcICdYeGRpbicpCisgICAgICAgIFwgJ1h4ZGluJywgJ0QnKQogICBmb3IgY29scyBpbiBbJy1jMCcsICctYyAwJywgJy1jb2xzIDAnXQogICAgIGV4ZSAnciEgJyAuIHM6eHhkX2NtZCAuICcgLXBzICcgLiBjb2xzICcgWHhkaW4nCiAgICAgIiBvdXRwdXQgc2VlbXMgdG8gc3RhcnQgaW4gbGluZSAyCkBAIC00MDIsNyArMzk5LDYgQEAKICAgICAiIHh4ZCBvdXRwdXQgbXVzdCBiZSBub24tZW1wdHkgYW5kIGNvbXByaXNlIG9ubHkgbG93ZXIgY2FzZSBoZXggZGlnaXRzCiAgICAgY2FsbCBhc3NlcnRfbWF0Y2goIl5bMC05YS1mXVswLTlhLWZdKiQiLCBvdXQpCiAgIGVuZGZvcgotICBjYWxsIGRlbGV0ZSgnWHhkaW4nKQogZW5kZnVuYwogCiAiIHZpbTogc2hpZnR3aWR0aD0yIHN0cz0yIGV4cGFuZHRhYgpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uYyBiL3NyYy92ZXJzaW9uLmMKaW5kZXggMTBkZGVmYy4uNzNiMzk3YyAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uYworKysgYi9zcmMvdmVyc2lvbi5jCkBAIC02OTYsNiArNjk2LDggQEAKIHN0YXRpYyBpbnQgaW5jbHVkZWRfcGF0Y2hlc1tdID0KIHsgICAvKiBBZGQgbmV3IHBhdGNoIG51bWJlciBiZWxvdyB0aGlzIGxpbmUgKi8KIC8qKi8KKyAgICA3NjksCisvKiovCiAgICAgNzY4LAogLyoqLwogICAgIDc2NywK