ZGlmZiAtLWdpdCBhL0xpYi90ZXN0L291dHB1dC90ZXN0X3NheCBiL0xpYi90ZXN0L291dHB1dC90ZXN0X3NheAppbmRleCA1M2M1Zjk3Li5kMmNjZjg4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC9vdXRwdXQvdGVzdF9zYXgKKysrIGIvTGliL3Rlc3Qvb3V0cHV0L3Rlc3Rfc2F4CkBAIC0xNCw2ICsxNCw3IEBACiBQYXNzZWQgdGVzdF9leHBhdF9uc2F0dHJzX2VtcHR5CiBQYXNzZWQgdGVzdF9leHBhdF9uc2F0dHJzX3dhdHRyCiBQYXNzZWQgdGVzdF9maWx0ZXJfYmFzaWMKK1Bhc3NlZCB0ZXN0X21ha2VfcGFyc2VyCiBQYXNzZWQgdGVzdF9uc2F0dHJzX2VtcHR5CiBQYXNzZWQgdGVzdF9uc2F0dHJzX3dhdHRyCiBQYXNzZWQgdGVzdF94bWxnZW5fYmFzaWMKQEAgLTIyLDQgKzIzLDQgQEAKIFBhc3NlZCB0ZXN0X3htbGdlbl9pZ25vcmFibGUKIFBhc3NlZCB0ZXN0X3htbGdlbl9ucwogUGFzc2VkIHRlc3RfeG1sZ2VuX3BpCi0yMyB0ZXN0cywgMCBmYWlsdXJlcworMjQgdGVzdHMsIDAgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2F4LnB5IGIvTGliL3Rlc3QvdGVzdF9zYXgucHkKaW5kZXggMTc2MGViMi4uYjM1NzZhYiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zYXgucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zYXgucHkKQEAgLTIsMTAgKzIsMTUgQEAKICMgcmVncmVzc2lvbiB0ZXN0IGZvciBTQVggMi4wCiAjICRJZCQKIAorZnJvbSB4bWwuc2F4IGltcG9ydCBtYWtlX3BhcnNlciwgQ29udGVudEhhbmRsZXIKK3RyeToKKyAgICBtYWtlX3BhcnNlcigpCitleGNlcHQgeG1sLnNheC5TQVhSZWFkZXJOb3RBdmFpbGFibGU6CisgICAgIyBkb24ndCB0cnkgdG8gdGVzdCB0aGlzIG1vZHVsZSBpZiB3ZSBjYW5ub3QgY3JlYXRlIGEgcGFyc2VyCisgICAgcmFpc2UgSW1wb3J0RXJyb3IoIm5vIFhNTCBwYXJzZXJzIGF2YWlsYWJsZSIpCiBmcm9tIHhtbC5zYXguc2F4dXRpbHMgaW1wb3J0IFhNTEdlbmVyYXRvciwgZXNjYXBlLCBYTUxGaWx0ZXJCYXNlCiBmcm9tIHhtbC5zYXguZXhwYXRyZWFkZXIgaW1wb3J0IGNyZWF0ZV9wYXJzZXIKIGZyb20geG1sLnNheC54bWxyZWFkZXIgaW1wb3J0IElucHV0U291cmNlLCBBdHRyaWJ1dGVzSW1wbCwgQXR0cmlidXRlc05TSW1wbAotZnJvbSB4bWwuc2F4LmhhbmRsZXIgaW1wb3J0IENvbnRlbnRIYW5kbGVyCiBmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KIGZyb20gdGVzdF9zdXBwb3J0IGltcG9ydCB2ZXJib3NlLCBUZXN0RmFpbGVkLCBmaW5kZmlsZQogCkBAIC00MSw2ICs0NiwxNyBAQAogZGVmIHRlc3RfZXNjYXBlX2V4dHJhKCk6CiAgICAgcmV0dXJuIGVzY2FwZSgiSGVpIHDlIGRlZyIsIHsi5SIgOiAiJmFyaW5nOyJ9KSA9PSAiSGVpIHAmYXJpbmc7IGRlZyIKIAorZGVmIHRlc3RfbWFrZV9wYXJzZXIoKToKKyAgICB0cnk6CisgICAgICAgICMgQ3JlYXRpbmcgYSBwYXJzZXIgc2hvdWxkIHN1Y2NlZWQgLSBpdCBzaG91bGQgZmFsbCBiYWNrCisgICAgICAgICMgdG8gdGhlIGV4cGF0cmVhZGVyCisgICAgICAgIHAgPSBtYWtlX3BhcnNlcihbJ3htbC5wYXJzZXJzLm5vX3N1Y2hfcGFyc2VyJ10pCisgICAgZXhjZXB0OgorICAgICAgICByZXR1cm4gMAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBwCisKKwogIyA9PT09PSBYTUxHZW5lcmF0b3IKIAogc3RhcnQgPSAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PlxuJwpkaWZmIC0tZ2l0IGEvTGliL3htbC9zYXgvX19pbml0X18ucHkgYi9MaWIveG1sL3NheC9fX2luaXRfXy5weQppbmRleCAxZjFmNThlLi40NDc0MjBlIDEwMDY0NAotLS0gYS9MaWIveG1sL3NheC9fX2luaXRfXy5weQorKysgYi9MaWIveG1sL3NheC9fX2luaXRfXy5weQpAQCAtMjIsNyArMjIsOCBAQAogZnJvbSB4bWxyZWFkZXIgaW1wb3J0IElucHV0U291cmNlCiBmcm9tIGhhbmRsZXIgaW1wb3J0IENvbnRlbnRIYW5kbGVyLCBFcnJvckhhbmRsZXIKIGZyb20gX2V4Y2VwdGlvbnMgaW1wb3J0IFNBWEV4Y2VwdGlvbiwgU0FYTm90UmVjb2duaXplZEV4Y2VwdGlvbiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgU0FYUGFyc2VFeGNlcHRpb24sIFNBWE5vdFN1cHBvcnRlZEV4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgU0FYUGFyc2VFeGNlcHRpb24sIFNBWE5vdFN1cHBvcnRlZEV4Y2VwdGlvbiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgU0FYUmVhZGVyTm90QXZhaWxhYmxlCiAKIAogZGVmIHBhcnNlKHNvdXJjZSwgaGFuZGxlciwgZXJyb3JIYW5kbGVyPUVycm9ySGFuZGxlcigpKToKQEAgLTc0LDkgKzc1LDE3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJldHVybiBfY3JlYXRlX3BhcnNlcihwYXJzZXJfbmFtZSkKICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yLGU6CisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBpZiBzeXMubW9kdWxlcy5oYXNfa2V5KHBhcnNlcl9uYW1lKToKKyAgICAgICAgICAgICAgICAjIFRoZSBwYXJzZXIgbW9kdWxlIHdhcyBmb3VuZCwgYnV0IGltcG9ydGluZyBpdAorICAgICAgICAgICAgICAgICMgZmFpbGVkIHVuZXhwZWN0ZWRseSwgcGFzcyB0aGlzIGV4Y2VwdGlvbiB0aHJvdWdoCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IFNBWFJlYWRlck5vdEF2YWlsYWJsZToKKyAgICAgICAgICAgICMgVGhlIHBhcnNlciBtb2R1bGUgZGV0ZWN0ZWQgdGhhdCBpdCB3b24ndCB3b3JrIHByb3Blcmx5LAorICAgICAgICAgICAgIyBzbyB0cnkgdGhlIG5leHQgb25lCiAgICAgICAgICAgICBwYXNzCiAKLSAgICByYWlzZSBTQVhFeGNlcHRpb24oIk5vIHBhcnNlcnMgZm91bmQiLCBOb25lKSAgCisgICAgcmFpc2UgU0FYUmVhZGVyTm90QXZhaWxhYmxlKCJObyBwYXJzZXJzIGZvdW5kIiwgTm9uZSkgIAogICAgIAogIyAtLS0gSW50ZXJuYWwgdXRpbGl0eSBtZXRob2RzIHVzZWQgYnkgbWFrZV9wYXJzZXIKIApkaWZmIC0tZ2l0IGEvTGliL3htbC9zYXgvX2V4Y2VwdGlvbnMucHkgYi9MaWIveG1sL3NheC9fZXhjZXB0aW9ucy5weQppbmRleCBjMDI5NzRmLi4xODA0ZjNmIDEwMDY0NAotLS0gYS9MaWIveG1sL3NheC9fZXhjZXB0aW9ucy5weQorKysgYi9MaWIveG1sL3NheC9fZXhjZXB0aW9ucy5weQpAQCAtMTA0LDMgKzEwNCwxMyBAQAogICAgIHBlcmZvcm0gaXMgcmVxdWVzdGVkIChzcGVjaWZpY2FsbHkgc2V0dGluZyBhIHN0YXRlIG9yIHZhbHVlKS4gU0FYCiAgICAgYXBwbGljYXRpb25zIGFuZCBleHRlbnNpb25zIG1heSB1c2UgdGhpcyBjbGFzcyBmb3Igc2ltaWxhcgogICAgIHB1cnBvc2VzLiIiIgorCisjID09PT09IFNBWE5PVFNVUFBPUlRFREVYQ0VQVElPTiA9PT09PQorCitjbGFzcyBTQVhSZWFkZXJOb3RBdmFpbGFibGUoU0FYTm90U3VwcG9ydGVkRXhjZXB0aW9uKToKKyAgICAiIiJFeGNlcHRpb24gY2xhc3MgZm9yIGEgbWlzc2luZyBkcml2ZXIuCisKKyAgICBBbiBYTUxSZWFkZXIgbW9kdWxlIChkcml2ZXIpIHNob3VsZCByYWlzZSB0aGlzIGV4Y2VwdGlvbiB3aGVuIGl0CisgICAgaXMgZmlyc3QgaW1wb3J0ZWQsIGUuZy4gd2hlbiBhIHN1cHBvcnQgbW9kdWxlIGNhbm5vdCBiZSBpbXBvcnRlZC4KKyAgICBJdCBhbHNvIG1heSBiZSByYWlzZWQgZHVyaW5nIHBhcnNpbmcsIGUuZy4gaWYgZXhlY3V0aW5nIGFuIGV4dGVybmFsCisgICAgcHJvZ3JhbSBpcyBub3QgcGVybWl0dGVkLiIiIgpkaWZmIC0tZ2l0IGEvTGliL3htbC9zYXgvZXhwYXRyZWFkZXIucHkgYi9MaWIveG1sL3NheC9leHBhdHJlYWRlci5weQppbmRleCAyZmMyYjdjLi5lYjQ2YmNkIDEwMDY0NAotLS0gYS9MaWIveG1sL3NheC9leHBhdHJlYWRlci5weQorKysgYi9MaWIveG1sL3NheC9leHBhdHJlYWRlci5weQpAQCAtNiw3ICs2LDEwIEBACiB2ZXJzaW9uID0gIjAuMjAiCiAKIGZyb20geG1sLnNheC5fZXhjZXB0aW9ucyBpbXBvcnQgKgotZnJvbSB4bWwucGFyc2VycyBpbXBvcnQgZXhwYXQKK3RyeToKKyAgICBmcm9tIHhtbC5wYXJzZXJzIGltcG9ydCBleHBhdAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHJhaXNlIFNBWFJlYWRlck5vdEF2YWlsYWJsZSgiZXhwYXQgbm90IHN1cHBvcnRlZCIsTm9uZSkgCiBmcm9tIHhtbC5zYXggaW1wb3J0IHhtbHJlYWRlciwgc2F4dXRpbHMsIGhhbmRsZXIKIAogQXR0cmlidXRlc0ltcGwgPSB4bWxyZWFkZXIuQXR0cmlidXRlc0ltcGwK