IyBMYW1iZGEgbGlicmFyeQoKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMyBKYWFra28gSuRydmkKCiMgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKIyBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKIyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpIAoKIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLwoKaW1wb3J0IHRlc3RpbmcgOwoKcHJvamVjdCAKICA6IHJlcXVpcmVtZW50cyA8dG9vbHNldD5tc3ZjOjxhc3luY2gtZXhjZXB0aW9ucz5vbgogIDsKICAgICAgICAgIAp0ZXN0LXN1aXRlIGxhbWJkYQogIDogWyBydW4gYWxnb3JpdGhtX3Rlc3QuY3BwIF0KICAgIFsgcnVuIGJpbmRfdGVzdHNfc2ltcGxlLmNwcCBdCiAgICBbIHJ1biBiaW5kX3Rlc3RzX2FkdmFuY2VkLmNwcCBdCiAgICBbIHJ1biBiaW5kX3Rlc3RzX3NpbXBsZV9mX3JlZnMuY3BwIF0KICAgIFsgcnVuIGJsbF9hbmRfZnVuY3Rpb24uY3BwIF0KICAgIFsgcnVuIGNhc3RfdGVzdC5jcHAgOiA6IDogOiBsYW1iZGFfY2FzdF90ZXN0IF0KICAgIFsgcnVuIGNvbnN0cnVjdG9yX3Rlc3RzLmNwcCBdCiAgICBbIHJ1biBjb250cm9sX3N0cnVjdHVyZXMuY3BwIF0KICAgIFsgcnVuIGV4Y2VwdGlvbl90ZXN0LmNwcCBdCiAgICBbIHJ1biBleHRlbmRpbmdfcnRfdHJhaXRzLmNwcCBdCiAgICBbIHJ1biBpc19pbnN0YW5jZV9vZl90ZXN0LmNwcCBdCiAgICBbIHJ1biBtZW1iZXJfcG9pbnRlcl90ZXN0LmNwcCBdCiAgICBbIHJ1biBvcGVyYXRvcl90ZXN0c19zaW1wbGUuY3BwIF0KICAgIFsgcnVuIHBob2VuaXhfY29udHJvbF9zdHJ1Y3R1cmVzLmNwcCBdCiAgICBbIHJ1biBzd2l0Y2hfY29uc3RydWN0LmNwcCBdCiAgICBbIHJ1biByZXN1bHRfb2ZfdGVzdHMuY3BwIF0KICAgIFsgcnVuIHJldF90ZXN0LmNwcCBdCiAgOyAgICAgIAo=