ZGlmZiAtLWdpdCBhL0xpYi9zcWxpdGUzL3Rlc3QvaG9va3MucHkgYi9MaWIvc3FsaXRlMy90ZXN0L2hvb2tzLnB5CmluZGV4IGNhZmZmOTMuLmY4ZWY0ZDggMTAwNjQ0Ci0tLSBhL0xpYi9zcWxpdGUzL3Rlc3QvaG9va3MucHkKKysrIGIvTGliL3NxbGl0ZTMvdGVzdC9ob29rcy5weQpAQCAtMjUsNiArMjUsMTEgQEAKIGltcG9ydCBzcWxpdGUzIGFzIHNxbGl0ZQogCiBjbGFzcyBDb2xsYXRpb25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIENoZWNrQ3JlYXRlQ29sbGF0aW9uTm90U3RyaW5nKHNlbGYpOgorICAgICAgICBjb24gPSBzcWxpdGUuY29ubmVjdCgiOm1lbW9yeToiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBjb24uY3JlYXRlX2NvbGxhdGlvbihOb25lLCBsYW1iZGEgeCwgeTogKHggPiB5KSAtICh4IDwgeSkpCisKICAgICBkZWYgQ2hlY2tDcmVhdGVDb2xsYXRpb25Ob3RDYWxsYWJsZShzZWxmKToKICAgICAgICAgY29uID0gc3FsaXRlLmNvbm5lY3QoIjptZW1vcnk6IikKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpIGFzIGNtOgpAQCAtMzYsNiArNDEsMjMgQEAKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzcWxpdGUuUHJvZ3JhbW1pbmdFcnJvcik6CiAgICAgICAgICAgICBjb24uY3JlYXRlX2NvbGxhdGlvbigiY29sbOQiLCBsYW1iZGEgeCwgeTogKHggPiB5KSAtICh4IDwgeSkpCiAKKyAgICBkZWYgQ2hlY2tDcmVhdGVDb2xsYXRpb25CYWRVcHBlcihzZWxmKToKKyAgICAgICAgY2xhc3MgQmFkVXBwZXJTdHIoc3RyKToKKyAgICAgICAgICAgIGRlZiB1cHBlcihzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBjb24gPSBzcWxpdGUuY29ubmVjdCgiOm1lbW9yeToiKQorICAgICAgICBteWNvbGwgPSBsYW1iZGEgeCwgeTogLSgoeCA+IHkpIC0gKHggPCB5KSkKKyAgICAgICAgY29uLmNyZWF0ZV9jb2xsYXRpb24oQmFkVXBwZXJTdHIoIm15Y29sbCIpLCBteWNvbGwpCisgICAgICAgIHJlc3VsdCA9IGNvbi5leGVjdXRlKCIiIgorICAgICAgICAgICAgc2VsZWN0IHggZnJvbSAoCisgICAgICAgICAgICBzZWxlY3QgJ2EnIGFzIHgKKyAgICAgICAgICAgIHVuaW9uCisgICAgICAgICAgICBzZWxlY3QgJ2InIGFzIHgKKyAgICAgICAgICAgICkgb3JkZXIgYnkgeCBjb2xsYXRlIG15Y29sbAorICAgICAgICAgICAgIiIiKS5mZXRjaGFsbCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0WzBdWzBdLCAnYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0WzFdWzBdLCAnYScpCisKICAgICBAdW5pdHRlc3Quc2tpcElmKHNxbGl0ZS5zcWxpdGVfdmVyc2lvbl9pbmZvIDwgKDMsIDIsIDEpLAogICAgICAgICAgICAgICAgICAgICAgJ29sZCBTUUxpdGUgdmVyc2lvbnMgY3Jhc2ggb24gdGhpcyB0ZXN0JykKICAgICBkZWYgQ2hlY2tDb2xsYXRpb25Jc1VzZWQoc2VsZik6Cg==