LS0gJElkOiB0ZXN0ZXMvc29ydC5sdWEgJAotLSBTZWUgQ29weXJpZ2h0IE5vdGljZSBpbiBmaWxlIGFsbC5sdWEKCnByaW50ICJ0ZXN0aW5nIChwYXJ0cyBvZikgdGFibGUgbGlicmFyeSIKCnByaW50ICJ0ZXN0aW5nIHVucGFjayIKCmxvY2FsIHVucGFjayA9IHRhYmxlLnVucGFjawoKbG9jYWwgbWF4SSA9IG1hdGgubWF4aW50ZWdlcgpsb2NhbCBtaW5JID0gbWF0aC5taW5pbnRlZ2VyCgoKbG9jYWwgZnVuY3Rpb24gY2hlY2tlcnJvciAobXNnLCBmLCAuLi4pCiAgbG9jYWwgcywgZXJyID0gcGNhbGwoZiwgLi4uKQogIGFzc2VydChub3QgcyBhbmQgc3RyaW5nLmZpbmQoZXJyLCBtc2cpKQplbmQKCgpjaGVja2Vycm9yKCJ3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIiwgdGFibGUuaW5zZXJ0LCB7fSwgMiwgMywgNCkKCmxvY2FsIHgseSx6LGEsbgphID0ge307IGxpbSA9IF9zb2Z0IGFuZCAyMDAgb3IgMjAwMApmb3IgaT0xLCBsaW0gZG8gYVtpXT1pIGVuZAphc3NlcnQoc2VsZWN0KGxpbSwgdW5wYWNrKGEpKSA9PSBsaW0gYW5kIHNlbGVjdCgnIycsIHVucGFjayhhKSkgPT0gbGltKQp4ID0gdW5wYWNrKGEpCmFzc2VydCh4ID09IDEpCnggPSB7dW5wYWNrKGEpfQphc3NlcnQoI3ggPT0gbGltIGFuZCB4WzFdID09IDEgYW5kIHhbbGltXSA9PSBsaW0pCnggPSB7dW5wYWNrKGEsIGxpbS0yKX0KYXNzZXJ0KCN4ID09IDMgYW5kIHhbMV0gPT0gbGltLTIgYW5kIHhbM10gPT0gbGltKQp4ID0ge3VucGFjayhhLCAxMCwgNil9CmFzc2VydChuZXh0KHgpID09IG5pbCkgICAtLSBubyBlbGVtZW50cwp4ID0ge3VucGFjayhhLCAxMSwgMTApfQphc3NlcnQobmV4dCh4KSA9PSBuaWwpICAgLS0gbm8gZWxlbWVudHMKeCx5ID0gdW5wYWNrKGEsIDEwLCAxMCkKYXNzZXJ0KHggPT0gMTAgYW5kIHkgPT0gbmlsKQp4LHkseiA9IHVucGFjayhhLCAxMCwgMTEpCmFzc2VydCh4ID09IDEwIGFuZCB5ID09IDExIGFuZCB6ID09IG5pbCkKYSx4ID0gdW5wYWNrezF9CmFzc2VydChhPT0xIGFuZCB4PT1uaWwpCmEseCA9IHVucGFjayh7MSwyfSwgMSwgMSkKYXNzZXJ0KGE9PTEgYW5kIHg9PW5pbCkKCmRvCiAgbG9jYWwgbWF4aSA9ICgxIDw8IDMxKSAtIDEgICAgICAgICAgLS0gbWF4aW11bSB2YWx1ZSBmb3IgYW4gaW50ICh1c3VhbGx5KQogIGxvY2FsIG1pbmkgPSAtKDEgPDwgMzEpICAgICAgICAgICAgIC0tIG1pbmltdW0gdmFsdWUgZm9yIGFuIGludCAodXN1YWxseSkKICBjaGVja2Vycm9yKCJ0b28gbWFueSByZXN1bHRzIiwgdW5wYWNrLCB7fSwgMCwgbWF4aSkKICBjaGVja2Vycm9yKCJ0b28gbWFueSByZXN1bHRzIiwgdW5wYWNrLCB7fSwgMSwgbWF4aSkKICBjaGVja2Vycm9yKCJ0b28gbWFueSByZXN1bHRzIiwgdW5wYWNrLCB7fSwgMCwgbWF4SSkKICBjaGVja2Vycm9yKCJ0b28gbWFueSByZXN1bHRzIiwgdW5wYWNrLCB7fSwgMSwgbWF4SSkKICBjaGVja2Vycm9yKCJ0b28gbWFueSByZXN1bHRzIiwgdW5wYWNrLCB7fSwgbWluaSwgbWF4aSkKICBjaGVja2Vycm9yKCJ0b28gbWFueSByZXN1bHRzIiwgdW5wYWNrLCB7fSwgLW1heGksIG1heGkpCiAgY2hlY2tlcnJvcigidG9vIG1hbnkgcmVzdWx0cyIsIHVucGFjaywge30sIG1pbkksIG1heEkpCiAgdW5wYWNrKHt9LCBtYXhpLCAwKQogIHVucGFjayh7fSwgbWF4aSwgMSkKICB1bnBhY2soe30sIG1heEksIG1pbkkpCiAgcGNhbGwodW5wYWNrLCB7fSwgMSwgbWF4aSArIDEpCiAgbG9jYWwgYSwgYiA9IHVucGFjayh7W21heGldID0gMjB9LCBtYXhpLCBtYXhpKQogIGFzc2VydChhID09IDIwIGFuZCBiID09IG5pbCkKICBhLCBiID0gdW5wYWNrKHtbbWF4aV0gPSAyMH0sIG1heGkgLSAxLCBtYXhpKQogIGFzc2VydChhID09IG5pbCBhbmQgYiA9PSAyMCkKICBsb2NhbCB0ID0ge1ttYXhJIC0gMV0gPSAxMiwgW21heEldID0gMjN9CiAgYSwgYiA9IHVucGFjayh0LCBtYXhJIC0gMSwgbWF4SSk7IGFzc2VydChhID09IDEyIGFuZCBiID09IDIzKQogIGEsIGIgPSB1bnBhY2sodCwgbWF4SSwgbWF4SSk7IGFzc2VydChhID09IDIzIGFuZCBiID09IG5pbCkKICBhLCBiID0gdW5wYWNrKHQsIG1heEksIG1heEkgLSAxKTsgYXNzZXJ0KGEgPT0gbmlsIGFuZCBiID09IG5pbCkKICB0ID0ge1ttaW5JXSA9IDEyLjMsIFttaW5JICsgMV0gPSAyMy41fQogIGEsIGIgPSB1bnBhY2sodCwgbWluSSwgbWluSSArIDEpOyBhc3NlcnQoYSA9PSAxMi4zIGFuZCBiID09IDIzLjUpCiAgYSwgYiA9IHVucGFjayh0LCBtaW5JLCBtaW5JKTsgYXNzZXJ0KGEgPT0gMTIuMyBhbmQgYiA9PSBuaWwpCiAgYSwgYiA9IHVucGFjayh0LCBtaW5JICsgMSwgbWluSSk7IGFzc2VydChhID09IG5pbCBhbmQgYiA9PSBuaWwpCmVuZAoKZG8gICAtLSBsZW5ndGggaXMgbm90IGFuIGludGVnZXIKICBsb2NhbCB0ID0gc2V0bWV0YXRhYmxlKHt9LCB7X19sZW4gPSBmdW5jdGlvbiAoKSByZXR1cm4gJ2FiYycgZW5kfSkKICBhc3NlcnQoI3QgPT0gJ2FiYycpCiAgY2hlY2tlcnJvcigib2JqZWN0IGxlbmd0aCBpcyBub3QgYW4gaW50ZWdlciIsIHRhYmxlLmluc2VydCwgdCwgMSkKZW5kCgpwcmludCAidGVzdGluZyBwYWNrIgoKYSA9IHRhYmxlLnBhY2soKQphc3NlcnQoYVsxXSA9PSB1bmRlZiBhbmQgYS5uID09IDApIAoKYSA9IHRhYmxlLnBhY2sodGFibGUpCmFzc2VydChhWzFdID09IHRhYmxlIGFuZCBhLm4gPT0gMSkKCmEgPSB0YWJsZS5wYWNrKG5pbCwgbmlsLCBuaWwsIG5pbCkKYXNzZXJ0KGFbMV0gPT0gbmlsIGFuZCBhLm4gPT0gNCkKCgotLSB0ZXN0aW5nIG1vdmUKZG8KCiAgY2hlY2tlcnJvcigidGFibGUgZXhwZWN0ZWQiLCB0YWJsZS5tb3ZlLCAxLCAyLCAzLCA0KQoKICBsb2NhbCBmdW5jdGlvbiBlcVQgKGEsIGIpCiAgICBmb3IgaywgdiBpbiBwYWlycyhhKSBkbyBhc3NlcnQoYltrXSA9PSB2KSBlbmQgCiAgICBmb3IgaywgdiBpbiBwYWlycyhiKSBkbyBhc3NlcnQoYVtrXSA9PSB2KSBlbmQgCiAgZW5kCgogIGxvY2FsIGEgPSB0YWJsZS5tb3ZlKHsxMCwyMCwzMH0sIDEsIDMsIDIpICAtLSBtb3ZlIGZvcndhcmQKICBlcVQoYSwgezEwLDEwLDIwLDMwfSkKCiAgLS0gbW92ZSBmb3J3YXJkIHdpdGggb3ZlcmxhcCBvZiAxCiAgYSA9IHRhYmxlLm1vdmUoezEwLCAyMCwgMzB9LCAxLCAzLCAzKQogIGVxVChhLCB7MTAsIDIwLCAxMCwgMjAsIDMwfSkKCiAgLS0gbW92aW5nIHRvIHRoZSBzYW1lIHRhYmxlIChub3QgYmVpbmcgZXhwbGljaXQgYWJvdXQgaXQpCiAgYSA9IHsxMCwgMjAsIDMwLCA0MH0KICB0YWJsZS5tb3ZlKGEsIDEsIDQsIDIsIGEpCiAgZXFUKGEsIHsxMCwgMTAsIDIwLCAzMCwgNDB9KQoKICBhID0gdGFibGUubW92ZSh7MTAsMjAsMzB9LCAyLCAzLCAxKSAgIC0tIG1vdmUgYmFja3dhcmQKICBlcVQoYSwgezIwLDMwLDMwfSkKCiAgYSA9IHt9ICAgLS0gbW92ZSB0byBuZXcgdGFibGUKICBhc3NlcnQodGFibGUubW92ZSh7MTAsMjAsMzB9LCAxLCAzLCAxLCBhKSA9PSBhKQogIGVxVChhLCB7MTAsMjAsMzB9KQoKICBhID0ge30KICBhc3NlcnQodGFibGUubW92ZSh7MTAsMjAsMzB9LCAxLCAwLCAzLCBhKSA9PSBhKSAgLS0gZW1wdHkgbW92ZSAobm8gbW92ZSkKICBlcVQoYSwge30pCgogIGEgPSB0YWJsZS5tb3ZlKHsxMCwyMCwzMH0sIDEsIDEwLCAxKSAgIC0tIG1vdmUgdG8gdGhlIHNhbWUgcGxhY2UKICBlcVQoYSwgezEwLDIwLDMwfSkKCiAgLS0gbW92aW5nIG9uIHRoZSBmcmluZ2VzCiAgYSA9IHRhYmxlLm1vdmUoe1ttYXhJIC0gMl0gPSAxLCBbbWF4SSAtIDFdID0gMiwgW21heEldID0gM30sCiAgICAgICAgICAgICAgICAgbWF4SSAtIDIsIG1heEksIC0xMCwge30pCiAgZXFUKGEsIHtbLTEwXSA9IDEsIFstOV0gPSAyLCBbLThdID0gM30pCgogIGEgPSB0YWJsZS5tb3ZlKHtbbWluSV0gPSAxLCBbbWluSSArIDFdID0gMiwgW21pbkkgKyAyXSA9IDN9LAogICAgICAgICAgICAgICAgIG1pbkksIG1pbkkgKyAyLCAtMTAsIHt9KQogIGVxVChhLCB7Wy0xMF0gPSAxLCBbLTldID0gMiwgWy04XSA9IDN9KQoKICBhID0gdGFibGUubW92ZSh7NDV9LCAxLCAxLCBtYXhJKQogIGVxVChhLCB7NDUsIFttYXhJXSA9IDQ1fSkKCiAgYSA9IHRhYmxlLm1vdmUoe1ttYXhJXSA9IDEwMH0sIG1heEksIG1heEksIG1pbkkpCiAgZXFUKGEsIHtbbWluSV0gPSAxMDAsIFttYXhJXSA9IDEwMH0pCgogIGEgPSB0YWJsZS5tb3ZlKHtbbWluSV0gPSAxMDB9LCBtaW5JLCBtaW5JLCBtYXhJKQogIGVxVChhLCB7W21pbkldID0gMTAwLCBbbWF4SV0gPSAxMDB9KQoKICBhID0gc2V0bWV0YXRhYmxlKHt9LCB7CiAgICAgICAgX19pbmRleCA9IGZ1bmN0aW9uIChfLGspIHJldHVybiBrICogMTAgZW5kLAogICAgICAgIF9fbmV3aW5kZXggPSBlcnJvcn0pCiAgbG9jYWwgYiA9IHRhYmxlLm1vdmUoYSwgMSwgMTAsIDMsIHt9KQogIGVxVChhLCB7fSkKICBlcVQoYiwge25pbCxuaWwsMTAsMjAsMzAsNDAsNTAsNjAsNzAsODAsOTAsMTAwfSkKCiAgYiA9IHNldG1ldGF0YWJsZSh7IiJ9LCB7CiAgICAgICAgX19pbmRleCA9IGVycm9yLAogICAgICAgIF9fbmV3aW5kZXggPSBmdW5jdGlvbiAodCxrLHYpCiAgICAgICAgICB0WzFdID0gc3RyaW5nLmZvcm1hdCgiJXMoJWQsJWQpIiwgdFsxXSwgaywgdikKICAgICAgZW5kfSkKICB0YWJsZS5tb3ZlKGEsIDEwLCAxMywgMywgYikKICBhc3NlcnQoYlsxXSA9PSAiKDMsMTAwKSg0LDExMCkoNSwxMjApKDYsMTMwKSIpCiAgbG9jYWwgc3RhdCwgbXNnID0gcGNhbGwodGFibGUubW92ZSwgYiwgMTAsIDEzLCAzLCBiKQogIGFzc2VydChub3Qgc3RhdCBhbmQgbXNnID09IGIpCmVuZAoKZG8KICAtLSBmb3IgdmVyeSBsb25nIG1vdmVzLCBqdXN0IGNoZWNrIGluaXRpYWwgYWNjZXNzZXMgYW5kIGludGVycnVwdAogIC0tIG1vdmUgd2l0aCBhbiBlcnJvcgogIGxvY2FsIGZ1bmN0aW9uIGNoZWNrbW92ZSAoZiwgZSwgdCwgeCwgeSkKICAgIGxvY2FsIHBvczEsIHBvczIKICAgIGxvY2FsIGEgPSBzZXRtZXRhdGFibGUoe30sIHsKICAgICAgICAgICAgICAgIF9faW5kZXggPSBmdW5jdGlvbiAoXyxrKSBwb3MxID0gayBlbmQsCiAgICAgICAgICAgICAgICBfX25ld2luZGV4ID0gZnVuY3Rpb24gKF8saykgcG9zMiA9IGs7IGVycm9yKCkgZW5kLCB9KQogICAgbG9jYWwgc3QsIG1zZyA9IHBjYWxsKHRhYmxlLm1vdmUsIGEsIGYsIGUsIHQpCiAgICBhc3NlcnQobm90IHN0IGFuZCBub3QgbXNnIGFuZCBwb3MxID09IHggYW5kIHBvczIgPT0geSkKICBlbmQKICBjaGVja21vdmUoMSwgbWF4SSwgMCwgMSwgMCkKICBjaGVja21vdmUoMCwgbWF4SSAtIDEsIDEsIG1heEkgLSAxLCBtYXhJKQogIGNoZWNrbW92ZShtaW5JLCAtMiwgLTUsIC0yLCBtYXhJIC0gNikKICBjaGVja21vdmUobWluSSArIDEsIC0xLCAtMiwgLTEsIG1heEkgLSAzKQogIGNoZWNrbW92ZShtaW5JLCAtMiwgMCwgbWluSSwgMCkgIC0tIG5vbiBvdmVybGFwcGluZwogIGNoZWNrbW92ZShtaW5JICsgMSwgLTEsIDEsIG1pbkkgKyAxLCAxKSAgLS0gbm9uIG92ZXJsYXBwaW5nCmVuZAoKY2hlY2tlcnJvcigidG9vIG1hbnkiLCB0YWJsZS5tb3ZlLCB7fSwgMCwgbWF4SSwgMSkKY2hlY2tlcnJvcigidG9vIG1hbnkiLCB0YWJsZS5tb3ZlLCB7fSwgLTEsIG1heEkgLSAxLCAxKQpjaGVja2Vycm9yKCJ0b28gbWFueSIsIHRhYmxlLm1vdmUsIHt9LCBtaW5JLCAtMSwgMSkKY2hlY2tlcnJvcigidG9vIG1hbnkiLCB0YWJsZS5tb3ZlLCB7fSwgbWluSSwgbWF4SSwgMSkKY2hlY2tlcnJvcigid3JhcCBhcm91bmQiLCB0YWJsZS5tb3ZlLCB7fSwgMSwgbWF4SSwgMikKY2hlY2tlcnJvcigid3JhcCBhcm91bmQiLCB0YWJsZS5tb3ZlLCB7fSwgMSwgMiwgbWF4SSkKY2hlY2tlcnJvcigid3JhcCBhcm91bmQiLCB0YWJsZS5tb3ZlLCB7fSwgbWluSSwgLTIsIDIpCgoKcHJpbnQidGVzdGluZyBzb3J0IgoKCi0tIHN0cmFuZ2UgbGVuZ3Rocwpsb2NhbCBhID0gc2V0bWV0YXRhYmxlKHt9LCB7X19sZW4gPSBmdW5jdGlvbiAoKSByZXR1cm4gLTEgZW5kfSkKYXNzZXJ0KCNhID09IC0xKQp0YWJsZS5zb3J0KGEsIGVycm9yKSAgICAtLSBzaG91bGQgbm90IGNvbXBhcmUgYW55dGhpbmcKYSA9IHNldG1ldGF0YWJsZSh7fSwge19fbGVuID0gZnVuY3Rpb24gKCkgcmV0dXJuIG1heEkgZW5kfSkKY2hlY2tlcnJvcigidG9vIGJpZyIsIHRhYmxlLnNvcnQsIGEpCgotLSB0ZXN0IGNoZWNrcyBmb3IgaW52YWxpZCBvcmRlciBmdW5jdGlvbnMKbG9jYWwgZnVuY3Rpb24gY2hlY2sgKHQpCiAgbG9jYWwgZnVuY3Rpb24gZihhLCBiKSBhc3NlcnQoYSBhbmQgYik7IHJldHVybiB0cnVlIGVuZAogIGNoZWNrZXJyb3IoImludmFsaWQgb3JkZXIgZnVuY3Rpb24iLCB0YWJsZS5zb3J0LCB0LCBmKQplbmQKCmNoZWNrezEsMiwzLDR9CmNoZWNrezEsMiwzLDQsNX0KY2hlY2t7MSwyLDMsNCw1LDZ9CgoKZnVuY3Rpb24gY2hlY2sgKGEsIGYpCiAgZiA9IGYgb3IgZnVuY3Rpb24gKHgseSkgcmV0dXJuIHg8eSBlbmQ7CiAgZm9yIG4gPSAjYSwgMiwgLTEgZG8KICAgIGFzc2VydChub3QgZihhW25dLCBhW24tMV0pKQogIGVuZAplbmQKCmEgPSB7IkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwKICAgICAiT2N0IiwgIk5vdiIsICJEZWMifQoKdGFibGUuc29ydChhKQpjaGVjayhhKQoKZnVuY3Rpb24gcGVybSAocywgbikKICBuID0gbiBvciAjcwogIGlmIG4gPT0gMSB0aGVuCiAgICBsb2NhbCB0ID0ge3VucGFjayhzKX0KICAgIHRhYmxlLnNvcnQodCkKICAgIGNoZWNrKHQpCiAgZWxzZQogICAgZm9yIGkgPSAxLCBuIGRvCiAgICAgIHNbaV0sIHNbbl0gPSBzW25dLCBzW2ldCiAgICAgIHBlcm0ocywgbiAtIDEpCiAgICAgIHNbaV0sIHNbbl0gPSBzW25dLCBzW2ldCiAgICBlbmQKICBlbmQKZW5kCgpwZXJte30KcGVybXsxfQpwZXJtezEsMn0KcGVybXsxLDIsM30KcGVybXsxLDIsMyw0fQpwZXJtezIsMiwzLDR9CnBlcm17MSwyLDMsNCw1fQpwZXJtezEsMiwzLDMsNX0KcGVybXsxLDIsMyw0LDUsNn0KcGVybXsyLDIsMywzLDUsNn0KCmZ1bmN0aW9uIHRpbWVzb3J0IChhLCBuLCBmdW5jLCBtc2csIHByZSkKICBsb2NhbCB4ID0gb3MuY2xvY2soKQogIHRhYmxlLnNvcnQoYSwgZnVuYykKICB4ID0gKG9zLmNsb2NrKCkgLSB4KSAqIDEwMDAKICBwcmUgPSBwcmUgb3IgIiIKICBwcmludChzdHJpbmcuZm9ybWF0KCIlc3NvcnRpbmcgJWQgJXMgZWxlbWVudHMgaW4gJS4yZiBtc2VjLiIsIHByZSwgbiwgbXNnLCB4KSkKICBjaGVjayhhLCBmdW5jKQplbmQKCmxpbWl0ID0gNTAwMDAKaWYgX3NvZnQgdGhlbiBsaW1pdCA9IDUwMDAgZW5kCgphID0ge30KZm9yIGk9MSxsaW1pdCBkbwogIGFbaV0gPSBtYXRoLnJhbmRvbSgpCmVuZAoKdGltZXNvcnQoYSwgbGltaXQsIG5pbCwgInJhbmRvbSIpCgp0aW1lc29ydChhLCBsaW1pdCwgbmlsLCAic29ydGVkIiwgInJlLSIpCgphID0ge30KZm9yIGk9MSxsaW1pdCBkbwogIGFbaV0gPSBtYXRoLnJhbmRvbSgpCmVuZAoKeCA9IG9zLmNsb2NrKCk7IGk9MAp0YWJsZS5zb3J0KGEsIGZ1bmN0aW9uKHgseSkgaT1pKzE7IHJldHVybiB5PHggZW5kKQp4ID0gKG9zLmNsb2NrKCkgLSB4KSAqIDEwMDAKcHJpbnQoc3RyaW5nLmZvcm1hdCgiSW52ZXJ0LXNvcnRpbmcgb3RoZXIgJWQgZWxlbWVudHMgaW4gJS4yZiBtc2VjLiwgd2l0aCAlaSBjb21wYXJpc29ucyIsCiAgICAgIGxpbWl0LCB4LCBpKSkKY2hlY2soYSwgZnVuY3Rpb24oeCx5KSByZXR1cm4geTx4IGVuZCkKCgp0YWJsZS5zb3J0e30gIC0tIGVtcHR5IGFycmF5Cgpmb3IgaT0xLGxpbWl0IGRvIGFbaV0gPSBmYWxzZSBlbmQKdGltZXNvcnQoYSwgbGltaXQsICBmdW5jdGlvbih4LHkpIHJldHVybiBuaWwgZW5kLCAiZXF1YWwiKQoKZm9yIGksdiBpbiBwYWlycyhhKSBkbyBhc3NlcnQodiA9PSBmYWxzZSkgZW5kCgpBID0geyLhbG8iLCAiXDBmaXJzdCA6LSkiLCAiYWxvIiwgInRoZW4gdGhpcyBvbmUiLCAiNDUiLCAiYW5kIGEgbmV3In0KdGFibGUuc29ydChBKQpjaGVjayhBKQoKdGFibGUuc29ydChBLCBmdW5jdGlvbiAoeCwgeSkKICAgICAgICAgIGxvYWQoc3RyaW5nLmZvcm1hdCgiQVslcV0gPSAnJyIsIHgpLCAiIikoKQogICAgICAgICAgY29sbGVjdGdhcmJhZ2UoKQogICAgICAgICAgcmV0dXJuIHg8eQogICAgICAgIGVuZCkKCgp0dCA9IHtfX2x0ID0gZnVuY3Rpb24gKGEsYikgcmV0dXJuIGEudmFsIDwgYi52YWwgZW5kfQphID0ge30KZm9yIGk9MSwxMCBkbyAgYVtpXSA9IHt2YWw9bWF0aC5yYW5kb20oMTAwKX07IHNldG1ldGF0YWJsZShhW2ldLCB0dCk7IGVuZAp0YWJsZS5zb3J0KGEpCmNoZWNrKGEsIHR0Ll9fbHQpCmNoZWNrKGEpCgpwcmludCJPSyIK