KGZ1bmN0aW9uKCl7CnZhciBOTD1TdHJpbmcuZnJvbUNoYXJDb2RlKDEwKTsKdmFyIEM9W1snTGltcGlhZG9yZXMgZSBoaWdpZW5lJywvbGltcGlhZG9yfGxpbXBpZXphfGhpZ2llbmV8c3luZGV0fGdlbCBkZSBkdWNoYXxnZWwgbGltcGlhZG9yfGFjZWl0ZSBsaW1waWFkb3J8YWNlaXRlIGRlIGR1Y2hhfGFndWEgbWljZWxhcnxnZWwgbW91c3NhbnR8Z2VsIHB1cmlmaWNhbnRlfGdlbCBkZSBiYS9pXSwKWydDaGFtcMO6cyB5IGNhcGlsYXInLC9jaGFtcHxjYXBpbGFyfGN1ZXJvIGNhYmVsbHVkb3xhbXBvbGxhfGFuYXBoYXNlfHBpbGV4aWx8bGFtYmRhcGlsfGRlcmNvc3xrZXJ0eW9sfGlyYWx0b25lfHRyaXBoYXNpY3xhbWluZXhpbC9pXSwKWydFbW9saWVudGVzIGUgaGlkcmF0YW50ZXMnLC9lbW9saWVudGV8aGlkcmF0YW50ZXx1cmVhfGLDoWxzYW1vfGxvY2nDs258bGVjaGV8cmVsaXBpZGl6YW50ZXxjZXJhdmV8Y2V0YXBoaWx8Y2VyYW1vbHx4w6ltb3NlfGF0b2Rlcm18bGlwaWthcnx4ZXJhY2FsbXxhdG9waWNvbnRyb2x8ZXhvbWVnYXxzdGVsYXRvcGlhfHJlc3RvcmFkZXJtfHVyZWFkaW58dXJlYXJlcGFpcnx4w6lyaWFsfGFrZXJhdC9pXSwKWydGb3RvcHJvdGVjY2nDs24nLC9mb3RvcHJvdGVjfHNwZnxzb2xhcnxlcnlmb3RvbmF8YW50aGVsaW9zfGhlbGlvY2FyZXxwaG90b2Rlcm18YmFyacOpc3VufGNhcGl0YWwgc29sZWlsfHN1biBzZWN1cmV8ZnVzaW9uIHdhdGVyfGZ1c2lvbiBmbHVpZHxhY3RpdmUgdW5pZnkvaV0sClsnQmFycmVyYSB5IG9jbHVzaXZvcycsL2JhcnJlcmF8cGHDsWFsfMOzeGlkbyBkZSB6aW5jfHBhc3RhIGFsIGFndWF8dmFzZWxpbmF8YXF1YXBob3J8bWl0b3N5bHwxZXIgY2hhbmdlfGJhYnluYXR1cmFsc3xiYXJpw6lkZXJtfHRyaWdvcGF4fGFiY2Rlcm0vaV0sClsnU09TIHkgYW50aXBpY29yJywvc29zfGFudGlwaWNvcnxhbnRpLXBpY29yfGJydW1hfGhpZHJvZ2VsfHNwcmF5IGNhbG1hbnRlfHBydXJpY2VkL2ldLApbJ1JlcGFyYWRvcmVzIHkgY2ljYXRyaXonLC9yZXBhcmFkb3J8Y2ljYWxmYXRlfGNpY2FwbGFzdHxjaWNhYmlvfGNpY2F2aXR8ZXBpdGhlbGlhbGV8Y2ljYXN0aW18Y2ljYWRpYW5lfGRlcm1hbGlib3VyfGNpY2F0cml6fGN5dGVsaXVtL2ldLApbJ0FudGl0cmFuc3BpcmFudGVzJywvYW50aXRyYW5zcGlyYW50ZXxoaWRyb3Npc3xkcmlvc2VjfGRyeXNlc3xzcGlyaWFsfGNsaW5pY2FsIGNvbnRyb2wvaV0sClsnRGVzcGlnbWVudGFudGVzJywvZGVzcGlnbWVudHxuZW9yZXRpbnxhemVsYWN8bWVsYSBiM3xhbnRpLXBpZ21lbnR8dGhpYW1pZG9sfGRpc2NvbG9yYXRpb258ZMOpcGl3aGl0ZXxwaWdtZW50IHplcm98ZC1jbGFyfGlrbGVufHNwb3QgY29ycmVjdG9yL2ldLApbJ01lZGlkYXMgeSBjb25zZWpvcycsL15ow6FiaXRvfF50w6ljbmljYXxeY29uc2Vqb3xecmVnbGF8XnF1w6kgfF5ldml0YXJ8XnByZXNldHxebWVkaWRhc3xkZXNlbmNhZGVuYW50ZXxecHJvdGVjY2nDs24geXxeaGlnaWVuZSwgYWlyZWFkb3xec2VjYWRvfF5ub3JtYXN8XnJ1dGluYSBtw61uaW1hfF5sbyBxdWUgcXVlZGF8Xm9uaWPDs2xpc2lzIMK3IG1lZGlkYXMvaV0sClsnVHJhdGFtaWVudG8gZXNwZWPDrWZpY28nLC8uL11dOwpmdW5jdGlvbiBjdCh0KXtmb3IodmFyIGk9MDtpPEMubGVuZ3RoO2krKyl7aWYoQ1tpXVsxXS50ZXN0KHQpKXJldHVybiBDW2ldWzBdO31yZXR1cm4gJ1RyYXRhbWllbnRvIGVzcGVjw61maWNvJzt9CmZ1bmN0aW9uIGJyKG4pe3ZhciBtPW4ucmVwbGFjZSgvXltewrddKsK3XHMqLywnJykudHJpbSgpLnNwbGl0KC9ccysvKVswXTtpZigvXmxhJC9pLnRlc3QobSkpcmV0dXJuICdMYSBSb2NoZS1Qb3NheSc7cmV0dXJuIG0ucmVwbGFjZSgvW8KuLDpdLiokLywnJyk7fQpmdW5jdGlvbiB0ZyhzKXtzPXMudG9Mb3dlckNhc2UoKTt2YXIgdD1bXTsKIGlmKC9zaW4gcGVyZnVtZXxzaW4gY29uc2VydmFudGVzfGVudmFzZSBlc3TDqXJpbHxwaWVsIHNlbnNpYmxlfGludG9sZXJhbnRlLy50ZXN0KHMpKXQucHVzaCgncGllbCBzZW5zaWJsZScpOwogaWYoL2xhY3RhbnRlfGJlYsOpfHBlZGnDoXRyaWN8ZGVzZGUgMCBtZXNlcy8udGVzdChzKSl0LnB1c2goJ3BlZGnDoXRyaWNvJyk7CiBpZigvZW1iYXJhem98cG9zcGFydG98Z2VzdGFudGUvLnRlc3QocykpdC5wdXNoKCdlbWJhcmF6bycpOwogaWYoL29pbC1mcmVlfG5vIGNvbWVkb2cvLnRlc3QocykpdC5wdXNoKCdubyBjb21lZG9nw6luaWNvJyk7CiBpZigvdXJlYSBcZHxzYWxpY8OtbGljb3xxdWVyYXRvbC8udGVzdChzKSl0LnB1c2goJ3F1ZXJhdG9sw610aWNvJyk7CiByZXR1cm4gdDt9CnZhciBEPVtdLGVsLFI9W10scz17cDowLGM6MCxyOjAscTonJyxiOicnLHY6J2YnfTsKZnVuY3Rpb24gZSh4KXtyZXR1cm4gU3RyaW5nKHgpLnNwbGl0KCcmJykuam9pbignJmFtcDsnKS5zcGxpdCgnPCcpLmpvaW4oJyZsdDsnKTt9CmZ1bmN0aW9uIHR4KHApe3JldHVybiBwLm4rTkwrTkwrcC5mLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gKGZbMF0/ZlswXSsnOiAnOicnKStmWzFdO30pLmpvaW4oTkwrTkwpO30KZnVuY3Rpb24gY3AodCxiLGwpe3ZhciBrPWZ1bmN0aW9uKCl7Yi50ZXh0Q29udGVudD0nQ29waWFkbyc7Yi5jbGFzc0xpc3QuYWRkKCdvaycpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtiLnRleHRDb250ZW50PWw7Yi5jbGFzc0xpc3QucmVtb3ZlKCdvaycpO30sMTUwMCk7fTsKIHZhciBmYj1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7YS52YWx1ZT10O2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7YS5zZWxlY3QoKTt0cnl7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtrKCk7fWNhdGNoKHgpe31kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO307CiBpZihuYXZpZ2F0b3IuY2xpcGJvYXJkJiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCl7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodCkudGhlbihrKS5jYXRjaChmYik7fWVsc2V7ZmIoKTt9fQpmdW5jdGlvbiBwcyhkb2Mpe3ZhciBvPVtdOwogZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMuZHJ4LW1hY3JvLWRldGFpbCcpLmZvckVhY2goZnVuY3Rpb24oZCl7CiAgdmFyIG5tPSgoZC5xdWVyeVNlbGVjdG9yKCdzdW1tYXJ5Jyl8fHt9KS50ZXh0Q29udGVudHx8JycpLnRyaW0oKTtpZighbm0pcmV0dXJuO3ZhciBwcj1bXTsKICBkLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcngtY29zbW8nKS5mb3JFYWNoKGZ1bmN0aW9uKGMpewogICB2YXIgdD1jLnF1ZXJ5U2VsZWN0b3IoJy5kcngtY29zbW9fX3RhZycpO2lmKCF0KXJldHVybjt2YXIgZj1bXTsKICAgYy5xdWVyeVNlbGVjdG9yQWxsKCdwJykuZm9yRWFjaChmdW5jdGlvbihwKXtpZihwLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpKXJldHVybjsKICAgIHZhciBiPXAucXVlcnlTZWxlY3RvcignYi5kcngtZicpOwogICAgaWYoYil7Zi5wdXNoKFtiLnRleHRDb250ZW50LnRyaW0oKSxwLnRleHRDb250ZW50LnNsaWNlKGIudGV4dENvbnRlbnQubGVuZ3RoKS50cmltKCldKTt9CiAgICBlbHNle3ZhciBxPXAudGV4dENvbnRlbnQudHJpbSgpO2lmKHEpZi5wdXNoKFsnJyxxXSk7fX0pOwogICBpZighZi5sZW5ndGgpcmV0dXJuO3ZhciBuPXQudGV4dENvbnRlbnQudHJpbSgpLGFsbD1uKycgJytmLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geFsxXTt9KS5qb2luKCcgJyk7CiAgIHByLnB1c2goe246bixmOmYsYzpjLmdldEF0dHJpYnV0ZSgnZGF0YS1jYXRlZ29yeScpfHxjdChuKycgJythbGwuc2xpY2UoMCwyNDApKSxiOmJyKG4pLHQ6dGcoYWxsKSwKICAgIHBhOihmLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gL3BhdXRhL2kudGVzdCh4WzBdKTt9KVswXXx8WycnLCcnXSlbMV0sCiAgICBkdTooZi5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIC9kdXJhY2kvaS50ZXN0KHhbMF0pO30pWzBdfHxbJycsJyddKVsxXX0pO30pOwogIGlmKHByLmxlbmd0aClvLnB1c2goe3A6bm0saWQ6ZC5pZCxwcm9kczpwcn0pO30pOwogby5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucC5sb2NhbGVDb21wYXJlKGIucCwnZXMnKTt9KTtyZXR1cm4gbzt9CmZ1bmN0aW9uIGhzKCl7dmFyIGM9RFtzLnBdO2lmKGMpaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwnJywnIycrZW5jb2RlVVJJQ29tcG9uZW50KGMucCkrJ34nK3MuYysnficrcy5yKTt9CmZ1bmN0aW9uIGZoKCl7dmFyIGg9ZGVjb2RlVVJJQ29tcG9uZW50KChsb2NhdGlvbi5oYXNofHwnJykucmVwbGFjZSgvXiMvLCcnKSk7aWYoIWgpcmV0dXJuIGZhbHNlOwogdmFyIGE9aC5zcGxpdCgnficpLGk9RC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucC50b0xvd2VyQ2FzZSgpO30pLmluZGV4T2YoYVswXS50b0xvd2VyQ2FzZSgpKTsKIGlmKGk8MClyZXR1cm4gZmFsc2U7cy5wPWk7cy5jPSthWzFdfHwwO3Mucj0rYVsyXXx8MDtyZXR1cm4gdHJ1ZTt9CmZ1bmN0aW9uIHJkKCl7CiB2YXIgTD1ELmZpbHRlcihmdW5jdGlvbih4KXtpZighcy5xKXJldHVybiB0cnVlO3ZhciBxPXMucS50b0xvd2VyQ2FzZSgpOwogIHJldHVybiB4LnAudG9Mb3dlckNhc2UoKS5pbmRleE9mKHEpPi0xfHx4LnByb2RzLnNvbWUoZnVuY3Rpb24ocCl7cmV0dXJuIChwLm4rJyAnK3AuYikudG9Mb3dlckNhc2UoKS5pbmRleE9mKHEpPi0xO30pO30pOwogdmFyIG5hdj0nJyxsdD0nJzsKIEwuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgQT14LnAuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7CiAgaWYoQSE9PWx0KXtsdD1BO25hdis9JzxkaXYgY2xhc3M9ImRjLWxldHRlciI+JytBKyc8L2Rpdj4nO30KICBuYXYrPSc8YnV0dG9uIGNsYXNzPSJkYy1pdGVtJysoRC5pbmRleE9mKHgpPT09cy5wPycgb24nOicnKSsnIiBkYXRhLWk9IicrRC5pbmRleE9mKHgpKyciPicrZSh4LnApKyc8c3Bhbj4nK3gucHJvZHMubGVuZ3RoKyc8L3NwYW4+PC9idXR0b24+Jzt9KTsKIHZhciBjdT1EW3MucF18fERbMF07CiB2YXIgcG9vbD1jdS5wcm9kcy5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuICFzLmJ8fHAuYj09PXMuYjt9KTtpZighcG9vbC5sZW5ndGgpe3Bvb2w9Y3UucHJvZHM7cy5iPScnO30KIHZhciBjcz1bXTtwb29sLmZvckVhY2goZnVuY3Rpb24ocCl7aWYoY3MuaW5kZXhPZihwLmMpPDApY3MucHVzaChwLmMpO30pO2NzLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsJ2VzJyk7fSk7CiBpZihzLmM+PWNzLmxlbmd0aClzLmM9MDsKIHZhciBpbmM9cG9vbC5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAuYz09PWNzW3MuY107fSk7aWYocy5yPj1pbmMubGVuZ3RoKXMucj0wOwogdmFyIHByPWluY1tzLnJdOwogdmFyIGJzPVtdO2N1LnByb2RzLmZvckVhY2goZnVuY3Rpb24ocCl7aWYoYnMuaW5kZXhPZihwLmIpPDApYnMucHVzaChwLmIpO30pO2JzLnNvcnQoKTsKIHZhciB0cmF5PSc8ZGl2IGNsYXNzPSJkYy10cmF5Ij48Yj5SdXRpbmE8L2I+JysoUi5sZW5ndGg/Ui5tYXAoZnVuY3Rpb24oeCxpKXtyZXR1cm4gJzxzcGFuIGNsYXNzPSJpdCI+JytlKHgubikrJzxpIGRhdGEtcj0iJytpKyciPuKclTwvaT48L3NwYW4+Jzt9KS5qb2luKCcnKTonPHNwYW4gc3R5bGU9Im9wYWNpdHk6Ljg1O2ZvbnQtc2l6ZToxMi41cHgiPmHDsWFkYSBwcm9kdWN0b3MgY29uIOKAnEHDsWFkaXIgYSBsYSBydXRpbmHigJ0gcGFyYSBlbnRyZWdhciB1bmEgcGF1dGEgY29tcGxldGE8L3NwYW4+JykrCiAgKFIubGVuZ3RoPyc8YnV0dG9uIGNsYXNzPSJkYy1yYyI+Q29waWFyIHJ1dGluYSAoJytSLmxlbmd0aCsnKTwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImRjLXJwIGdoIj5JbXByaW1pcjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImRjLXJ4IGdoIj5WYWNpYXI8L2J1dHRvbj4nOicnKSsnPC9kaXY+JzsKIHZhciB0b29scz0nPGRpdiBjbGFzcz0iZGMtdG9vbHMiPjxzZWxlY3QgY2xhc3M9ImRjLWIiPjxvcHRpb24gdmFsdWU9IiI+VG9kYXMgbGFzIG1hcmNhcyAoJyticy5sZW5ndGgrJyk8L29wdGlvbj4nK2JzLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gJzxvcHRpb24nKyhiPT09cy5iPycgc2VsZWN0ZWQnOicnKSsnPicrZShiKSsnPC9vcHRpb24+Jzt9KS5qb2luKCcnKSsnPC9zZWxlY3Q+PGJ1dHRvbiBjbGFzcz0iZGMtdmYnKyhzLnY9PT0nZic/JyBvbic6JycpKyciPkZpY2hhPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZGMtdnQnKyhzLnY9PT0ndCc/JyBvbic6JycpKyciPlRhYmxhIGNvbXBhcmF0aXZhPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZGMtc2giPkNvcGlhciBlbmxhY2U8L2J1dHRvbj48L2Rpdj4nOwogdmFyIGJvZHk7CiBpZihzLnY9PT0ndCcpe2JvZHk9Jzx0YWJsZSBjbGFzcz0iZGMtdGFiIj48dHI+PHRoPlByb2R1Y3RvPC90aD48dGg+Q2F0ZWdvcsOtYTwvdGg+PHRoPlBhdXRhPC90aD48dGg+RHVyYWNpw7NuPC90aD48L3RyPicrcG9vbC5tYXAoZnVuY3Rpb24ocCl7dmFyIGNpPWNzLmluZGV4T2YocC5jKSxwaT1wb29sLmZpbHRlcihmdW5jdGlvbih6KXtyZXR1cm4gei5jPT09cC5jO30pLmluZGV4T2YocCk7CiAgcmV0dXJuICc8dHIgZGF0YS1jPSInK2NpKyciIGRhdGEtcD0iJytwaSsnIj48dGQ+PGI+JytlKHAubikrJzwvYj48L3RkPjx0ZD4nK2UocC5jKSsnPC90ZD48dGQ+JytlKHAucGF8fCfigJQnKSsnPC90ZD48dGQ+JytlKHAuZHV8fCfigJQnKSsnPC90ZD48L3RyPic7fSkuam9pbignJykrJzwvdGFibGU+Jzt9CiBlbHNle2JvZHk9JzxkaXYgY2xhc3M9ImRjLXRhYnMiPjxzcGFuIGNsYXNzPSJsYiI+Q2F0ZWdvcsOtYTwvc3Bhbj4nK2NzLm1hcChmdW5jdGlvbihjLGkpe3JldHVybiAnPGJ1dHRvbiBjbGFzcz0iZGMtYycrKGk9PT1zLmM/JyBvbic6JycpKyciIGRhdGEtaT0iJytpKyciPicrZShjKSsnICgnK3Bvb2wuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiBwLmM9PT1jO30pLmxlbmd0aCsnKTwvYnV0dG9uPic7fSkuam9pbignJykrJzwvZGl2PicrCiAgJzxkaXYgY2xhc3M9ImRjLXRhYnMiPjxzcGFuIGNsYXNzPSJsYiI+UHJvZHVjdG88L3NwYW4+JytpbmMubWFwKGZ1bmN0aW9uKHAsaSl7cmV0dXJuICc8YnV0dG9uIGNsYXNzPSJkYy1wJysoaT09PXMucj8nIG9uJzonJykrJyIgZGF0YS1pPSInK2krJyI+JytlKHAubikrJzwvYnV0dG9uPic7fSkuam9pbignJykrJzwvZGl2PicrCiAgJzxkaXYgY2xhc3M9ImRjLWNhcmQiPjxoMz4nK2UocHIubikrJzwvaDM+JysocHIudC5sZW5ndGg/JzxkaXYgY2xhc3M9ImRjLXRhZ3MiPicrcHIudC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuICc8c3Bhbj4nK2UodCkrJzwvc3Bhbj4nO30pLmpvaW4oJycpKyc8L2Rpdj4nOicnKSsKICBwci5mLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gJzxwIGNsYXNzPSJkYy1mIj4nKyhmWzBdPyc8Yj4nK2UoZlswXSkrJzwvYj4nOicnKSsoZlswXT09PSdGdWVudGUgb2ZpY2lhbCcmJi9eaHR0cHM6XC9cL3JpbGFzdGlsXC5lc1wvZXNcL1thLXpBLVowLTlcL18tXSskLy50ZXN0KGZbMV0pPyc8YSBjbGFzcz0iZGMtbGluayIgaHJlZj0iJytmWzFdKyciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPkNvbnN1bHRhciBmaWNoYSBkZSBSaWxhc3RpbCDihpc8L2E+JzplKGZbMV0pKSsnPC9wPic7fSkuam9pbignJykrCiAgICAnPGJ1dHRvbiBjbGFzcz0iZGMtY29weSI+Q29waWFyIHBhcmEgZWwgcGFjaWVudGU8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJkYy1hZGQiPkHDsWFkaXIgYSBsYSBydXRpbmE8L2J1dHRvbj48YnI+JysoY3UuaWQ9PT0nZHJ4LXBhcnBhZG9zJz8nPGEgY2xhc3M9ImRjLWxpbmsiIGhyZWY9Ii92YWRlbWVjdW0tdG9waWNvLyI+VmVyIHZhZGVtw6ljdW0gY29tcGxldG8g4oaSPC9hPic6Y3UuaWQ/JzxhIGNsYXNzPSJkYy1saW5rIiBocmVmPSIvbWFjcm9zLyMnK2N1LmlkKyciPlZlciBtYWNybyBjb21wbGV0YSDihpI8L2E+JzonJykrJzwvZGl2Pic7fQogZWwuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJkYy1iYXIiPjxpbnB1dCBjbGFzcz0iZGMtc2VhcmNoIiBwbGFjZWhvbGRlcj0iQnVzY2FyIHBhdG9sb2fDrWEsIHByb2R1Y3RvIG8gbWFyY2HigKYiIHZhbHVlPSInK2Uocy5xKSsnIj48c3BhbiBjbGFzcz0iZGMtY291bnQiPicrRC5sZW5ndGgrJyBwYXRvbG9nw61hcyDCtyAnK0QucmVkdWNlKGZ1bmN0aW9uKGEseCl7cmV0dXJuIGEreC5wcm9kcy5sZW5ndGg7fSwwKSsnIHByb2R1Y3Rvczwvc3Bhbj48L2Rpdj4nK3RyYXkrCiAgJzxkaXYgY2xhc3M9ImRjLWxheW91dCI+PGRpdiBjbGFzcz0iZGMtbGlzdCI+JytuYXYrJzwvZGl2PjxkaXYgY2xhc3M9ImRjLXBhbmVsIj48aDIgY2xhc3M9ImRjLWgiPicrZShjdS5wKSsnPC9oMj48cCBjbGFzcz0iZGMtc3ViIj4nK3Bvb2wubGVuZ3RoKycgb3BjaW9uZXMgwrcgJytjcy5sZW5ndGgrJyBjYXRlZ29yw61hcycrKHMuYj8nIMK3ICcrZShzLmIpOicnKSsnPC9wPicrdG9vbHMrYm9keSsnPC9kaXY+PC9kaXY+JzsKIGJkKGN1LHByKTt9CmZ1bmN0aW9uIGJkKGN1LHByKXsKIHZhciBxPWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy1zZWFyY2gnKTsKIHEuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLGZ1bmN0aW9uKCl7cy5xPXRoaXMudmFsdWU7cmQoKTt2YXIgbj1lbC5xdWVyeVNlbGVjdG9yKCcuZGMtc2VhcmNoJyk7bi5mb2N1cygpO24uc2V0U2VsZWN0aW9uUmFuZ2Uobi52YWx1ZS5sZW5ndGgsbi52YWx1ZS5sZW5ndGgpO30pOwogZWwucXVlcnlTZWxlY3RvckFsbCgnLmRjLWl0ZW0nKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7cy5wPSt0aGlzLmRhdGFzZXQuaTtzLmM9MDtzLnI9MDtocygpO3JkKCk7fSk7fSk7CiBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZGMtYycpLmZvckVhY2goZnVuY3Rpb24oYil7Yi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtzLmM9K3RoaXMuZGF0YXNldC5pO3Mucj0wO2hzKCk7cmQoKTt9KTt9KTsKIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kYy1wJykuZm9yRWFjaChmdW5jdGlvbihiKXtiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3Mucj0rdGhpcy5kYXRhc2V0Lmk7aHMoKTtyZCgpO30pO30pOwogdmFyIHNiPWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy1iJyk7aWYoc2Ipc2IuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJyxmdW5jdGlvbigpe3MuYj10aGlzLnZhbHVlO3MuYz0wO3Mucj0wO3JkKCk7fSk7CiB2YXIgdmY9ZWwucXVlcnlTZWxlY3RvcignLmRjLXZmJyk7aWYodmYpdmYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7cy52PSdmJztyZCgpO30pOwogdmFyIHZ0PWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy12dCcpO2lmKHZ0KXZ0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3Mudj0ndCc7cmQoKTt9KTsKIHZhciBzaD1lbC5xdWVyeVNlbGVjdG9yKCcuZGMtc2gnKTtpZihzaClzaC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtjcChsb2NhdGlvbi5vcmlnaW4rbG9jYXRpb24ucGF0aG5hbWUrJyMnK2VuY29kZVVSSUNvbXBvbmVudChjdS5wKSxzaCwnQ29waWFyIGVubGFjZScpO30pOwogZWwucXVlcnlTZWxlY3RvckFsbCgndGFibGUuZGMtdGFiIHRyW2RhdGEtY10nKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7cy5jPSt0aGlzLmRhdGFzZXQuYztzLnI9K3RoaXMuZGF0YXNldC5wO3Mudj0nZic7aHMoKTtyZCgpO30pO30pOwogdmFyIGMxPWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy1jb3B5Jyk7aWYoYzEpYzEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7Y3AodHgocHIpLGMxLCdDb3BpYXIgcGFyYSBlbCBwYWNpZW50ZScpO30pOwogdmFyIGFkPWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy1hZGQnKTtpZihhZClhZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtpZighUi5zb21lKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1wci5uO30pKVIucHVzaChwcik7cmQoKTt9KTsKIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kYy10cmF5IGlbZGF0YS1yXScpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtSLnNwbGljZSgrdGhpcy5kYXRhc2V0LnIsMSk7cmQoKTt9KTt9KTsKIHZhciByYz1lbC5xdWVyeVNlbGVjdG9yKCcuZGMtcmMnKTtpZihyYylyYy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICBjcCgnUEFVVEEgREVSTU9DT1NNw4lUSUNBIOKAlCAnK2N1LnArTkwrTkwrUi5tYXAoZnVuY3Rpb24ocCxpKXtyZXR1cm4gKGkrMSkrJy4gJyt0eChwKTt9KS5qb2luKE5MK05MKyfigJTigJTigJQnK05MK05MKSxyYywnQ29waWFyIHJ1dGluYSAoJytSLmxlbmd0aCsnKScpO30pOwogdmFyIHJwPWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy1ycCcpO2lmKHJwKXJwLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3ZhciB3PXdpbmRvdy5vcGVuKCcnLCdfYmxhbmsnKTsKICB3LmRvY3VtZW50LndyaXRlKCc8aHRtbD48aGVhZD48dGl0bGU+UGF1dGEgZGVybW9jb3Ntw6l0aWNhPC90aXRsZT48c3R5bGU+Ym9keXtmb250LWZhbWlseTpTZWdvZSBVSSxBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMxNjIzMmU7bWF4LXdpZHRoOjcyMHB4O21hcmdpbjoyOHB4IGF1dG87cGFkZGluZzowIDE4cHg7bGluZS1oZWlnaHQ6MS41fWgxe2NvbG9yOiMwZjRjODE7Zm9udC1zaXplOjIwcHg7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzBmNGM4MTtwYWRkaW5nLWJvdHRvbTo4cHh9aDJ7Zm9udC1zaXplOjE1cHg7Y29sb3I6IzBmNGM4MTttYXJnaW46MjJweCAwIDZweH1we21hcmdpbjo0cHggMDtmb250LXNpemU6MTMuNXB4fWJ7Y29sb3I6IzVmN2M5Mztmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouMDhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9ja308L3N0eWxlPjwvaGVhZD48Ym9keT48aDE+UGF1dGEgZGVybW9jb3Ntw6l0aWNhIMK3ICcrZShjdS5wKSsnPC9oMT4nK1IubWFwKGZ1bmN0aW9uKHApe3JldHVybiAnPGgyPicrZShwLm4pKyc8L2gyPicrcC5mLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gJzxwPicrKGZbMF0/JzxiPicrZShmWzBdKSsnPC9iPic6JycpK2UoZlsxXSkrJzwvcD4nO30pLmpvaW4oJycpO30pLmpvaW4oJycpKyc8cCBzdHlsZT0ibWFyZ2luLXRvcDoyNnB4O2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiM4YTZkMmYiPlJldmlzYXIgc2llbXByZSBpbmRpY2FjacOzbiwgY29udHJhaW5kaWNhY2lvbmVzLCBpbnRlcmFjY2lvbmVzLCBmaWNoYSB0w6ljbmljYSB5IGNvbnRleHRvIGluZGl2aWR1YWwuPC9wPjwvYm9keT48L2h0bWw+Jyk7CiAgdy5kb2N1bWVudC5jbG9zZSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt3LnByaW50KCk7fSwzNTApO30pOwogdmFyIHJ4PWVsLnF1ZXJ5U2VsZWN0b3IoJy5kYy1yeCcpO2lmKHJ4KXJ4LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe1I9W107cmQoKTt9KTt9CgpmdW5jdGlvbiBhcGQoKXsKIGZ1bmN0aW9uIHAobixjLGIsYWN0LGluZCxtb2RvLHBhLGR1LGNvLHQpewogIHZhciBmPVtbJ0FjdGl2b3MnLGFjdF0sWydJbmRpY2FjacOzbicsaW5kXSxbJ01vZG8gZGUgZW1wbGVvJyxtb2RvXSxbJ1BhdXRhJyxwYV0sWydEdXJhY2nDs24nLGR1XSxbJ0NvbnNlam9zJyxjb11dOwogIHJldHVybiB7bjpuLGY6ZixjOmMsYjpiLHQ6dHx8W10scGE6cGEsZHU6ZHV9OwogfQogdmFyIHByPVsKICBwKCdOYXZpYmxlZsKuIEN1aWRhZG8gRGlhcmlvIEVzcHVtYSBkZSBQw6FycGFkb3MnLCdIaWdpZW5lIHBhbHBlYnJhbCcsJ05hdmlibGVmJywnUGFudGVub2wgeSBhZ2VudGVzIGxpbXBpYWRvcmVzIHN1YXZlcycsJ0hpZ2llbmUgcGFscGVicmFsIGRpYXJpYTsgYmxlZmFyaXRpcyB5IGRpc2Z1bmNpw7NuIGRlIGdsw6FuZHVsYXMgZGUgTWVpYm9taW8gY29tbyBjb2FkeXV2YW50ZScsJ0NvbiBsb3Mgb2pvcyBjZXJyYWRvcywgYXBsaWNhciBsYSBlc3B1bWEgc29icmUgbG9zIHDDoXJwYWRvcyB5IGxhIGJhc2UgZGUgbGFzIHBlc3Rhw7FhcywgbWFzYWplYXIgc3VhdmVtZW50ZSB5IHJldGlyYXIgc2Vnw7puIGxhcyBpbnN0cnVjY2lvbmVzIGRlbCBlbnZhc2UuJywnMuKAkzMgYXBsaWNhY2lvbmVzIGFsIGTDrWEuJywnVXNvIGNvbnRpbnVhZG8gbWllbnRyYXMgc2UgcHJlY2lzZSBoaWdpZW5lIHBhbHBlYnJhbC4nLCdObyBpbnRyb2R1Y2lyIGVuIGVsIG9qbzsgc3VzcGVuZGVyIHNpIHByb2R1Y2UgaXJyaXRhY2nDs24gcGVyc2lzdGVudGUuJyxbJ2hpZ2llbmUgcGFscGVicmFsJ10pLAogIHAoJ05hdmlibGVmwq4gQ3VpZGFkbyBJbnRlbnNpdm8gRXNwdW1hIGRlIFDDoXJwYWRvcycsJ0hpZ2llbmUgcGFscGVicmFsJywnTmF2aWJsZWYnLCdQYW50ZW5vbCB5IGNvbXBsZWpvIGxpbXBpYWRvciBpbnRlbnNpdm8nLCdIaWdpZW5lIHBhbHBlYnJhbCBpbnRlbnNpdmEgZW4gZmFzZXMgc2ludG9tw6F0aWNhcycsJ0FwbGljYXIgc29icmUgcMOhcnBhZG9zIGNlcnJhZG9zIHkgcGVzdGHDsWFzLCBtYXNhamVhciBzdWF2ZW1lbnRlIHkgcmV0aXJhciBzZWfDum4gbGFzIGluc3RydWNjaW9uZXMgZGVsIGVudmFzZS4nLCcy4oCTMyBhcGxpY2FjaW9uZXMgYWwgZMOtYS4nLCc34oCTMTQgZMOtYXM7IGRlc3B1w6lzIHBhc2FyIGEgaGlnaWVuZSBkZSBtYW50ZW5pbWllbnRvLicsJ05vIHByb2xvbmdhciBsYSBwYXV0YSBpbnRlbnNpdmEgc2kgcGVyc2lzdGVuIGluZmxhbWFjacOzbiwgc2VjcmVjacOzbiBvIGRvbG9yIG9jdWxhci4nLFsnaGlnaWVuZSBwYWxwZWJyYWwnXSksCiAgcCgnTGVwaGFuZXTCriBUb2FsbGl0YXMgRXN0w6lyaWxlcycsJ0hpZ2llbmUgcGFscGVicmFsJywnVGjDqWEnLCfDgWNpZG8gaGlhbHVyw7NuaWNvLCB6aW5jIHkgQ2VudGVsbGEgYXNpYXRpY2EnLCdIaWdpZW5lIGRlIHDDoXJwYWRvcyB5IHBlc3Rhw7FhcycsJ0NvbiBlbCBvam8gY2VycmFkbywgbGltcGlhciBzdWF2ZW1lbnRlIHDDoXJwYWRvLCBib3JkZSBwYWxwZWJyYWwgeSBwZXN0YcOxYXMgY29uIHVuYSB0b2FsbGl0YSBkaXN0aW50YSBwYXJhIGNhZGEgb2pvLiBObyByZXF1aWVyZSBhY2xhcmFkby4nLCcyIHZlY2VzIGFsIGTDrWEgZHVyYW50ZSAzIHNlbWFuYXM7IGRlc3B1w6lzIDEgdmV6IGFsIGTDrWEuJywnTWFudGVuaW1pZW50byBoYXN0YSAzIG1lc2VzOyBlbiBwcmVwYXJhY2nDs24gZGUgY2lydWfDrWEgb2N1bGFyLCBzZWd1aXIgbGEgcGF1dGEgaW5kaWNhZGEuJywnTm8gcmV1dGlsaXphciBsYSB0b2FsbGl0YSBuaSBjb21wYXJ0aXJsYSBlbnRyZSBhbWJvcyBvam9zLicsWydoaWdpZW5lIHBhbHBlYnJhbCcsJ3BpZWwgc2Vuc2libGUnXSksCiAgcCgnU2Vuc2lsaXPCriBQYWxwZWJyYWwgUmVsaWVmIEVDWicsJ0hpZ2llbmUgcGFscGVicmFsJywnU2Vuc2lsaXMnLCdNYW50ZWNhIGRlIGthcml0w6kgeSBhZ2VudGVzIGNhbG1hbnRlcycsJ0xpbXBpZXphIHkgY3VpZGFkbyBkZSBww6FycGFkb3Mgc2Vuc2libGVzLCBzZWNvcyBvIGNvbiB0ZW5kZW5jaWEgZWNjZW1hdG9zYScsJ0FwbGljYXIgc29icmUgcMOhcnBhZG9zIGNlcnJhZG9zIGNvbiBtYXNhamUgbXV5IHN1YXZlIHkgcmV0aXJhciBzaW4gZnJpY2Npw7NuLicsJzHigJMyIGFwbGljYWNpb25lcyBhbCBkw61hLicsJ1VzbyBjb250aW51YWRvIHNlZ8O6biBuZWNlc2lkYWQgeSB0b2xlcmFuY2lhLicsJ0V2aXRhciBlbCBpbnRlcmlvciBkZWwgb2pvIHkgZWwgYm9yZGUgbGlicmUgcGFscGVicmFsLicsWydwaWVsIHNlbnNpYmxlJ10pLAogIHAoJ0Jpb2Rlcm1hIEF0b2Rlcm0gSW50ZW5zaXZlIEV5ZScsJ0VjY2VtYSB5IGJhcnJlcmEgcGFscGVicmFsJywnQmlvZGVybWEnLCdBZ2VudGVzIGVtb2xpZW50ZXMsIGh1bWVjdGFudGVzIHkgcmVwYXJhZG9yZXMgZGUgYmFycmVyYScsJ1NlcXVlZGFkLCBpcnJpdGFjacOzbiB5IHRlbmRlbmNpYSBhdMOzcGljYSBwZXJpb2N1bGFyJywnQXBsaWNhciB1bmEgY2FwYSBmaW5hIHNvYnJlIHDDoXJwYWRvcyB5IGNvbnRvcm5vIG9jdWxhciBsaW1waW9zLCBzaW4gaW50cm9kdWNpciBlbCBwcm9kdWN0byBlbiBlbCBvam8uJywnMeKAkzIgYXBsaWNhY2lvbmVzIGFsIGTDrWEuJywnRHVyYW50ZSBlbCBicm90ZSB5IGNvbW8gbWFudGVuaW1pZW50by4nLCdTaSBleGlzdGUgZWRlbWEgbWFyY2FkbywgZG9sb3IsIHNlY3JlY2nDs24gbyBhbHRlcmFjacOzbiB2aXN1YWwsIHJlcXVpZXJlIHZhbG9yYWNpw7NuIG3DqWRpY2EuJyxbJ3BpZWwgc2Vuc2libGUnLCdiYXJyZXJhIGN1dMOhbmVhJ10pLAogIHAoJ0R1Y3JheSBEZXh5YW5lIE1lRCBQYWxwZWJyYWwnLCdFY2NlbWEgeSBiYXJyZXJhIHBhbHBlYnJhbCcsJ0R1Y3JheScsJ0NvbXBsZWpvIGNhbG1hbnRlIHkgcmVwYXJhZG9yIGRlIGJhcnJlcmEnLCdFY2NlbWEgbyBpcnJpdGFjacOzbiBwYWxwZWJyYWwgbGV2ZSBjb21vIGN1aWRhZG8gY29hZHl1dmFudGUnLCdBcGxpY2FyIHVuYSBjYXBhIG11eSBmaW5hIHNvYnJlIHDDoXJwYWRvcyBsaW1waW9zIHkgc2Vjb3MsIGV2aXRhbmRvIGVsIGNvbnRhY3RvIGRpcmVjdG8gY29uIGVsIG9qby4nLCcyIGFwbGljYWNpb25lcyBhbCBkw61hLicsJzXigJM3IGTDrWFzIGVuIGZhc2UgYWd1ZGE7IGhhc3RhIDIgc2VtYW5hcyBzaSBwZXJzaXN0ZSBpcnJpdGFjacOzbiBsZXZlLicsJ05vIHN1c3RpdHV5ZSBlbCB0cmF0YW1pZW50byBtw6lkaWNvIGRlbCBlY2NlbWEgcGFscGVicmFsIG1vZGVyYWRvIG8gZ3JhdmUuJyxbJ3BpZWwgc2Vuc2libGUnLCdiYXJyZXJhIGN1dMOhbmVhJ10pLAogIHAoJ0xFVElBVDQgR2VsIFBlcmlvY3VsYXInLCdFY2NlbWEgeSBiYXJyZXJhIHBhbHBlYnJhbCcsJ0xFVEknLCdBZ2VudGVzIGhpZHJhdGFudGVzIHkgY2FsbWFudGVzJywnUGllbCBwZXJpb2N1bGFyIGF0w7NwaWNhLCBzZWNhIG8gcmVhY3RpdmEnLCdBcGxpY2FyIHVuYSBjYXBhIGZpbmEgc29icmUgZWwgY29udG9ybm8gb2N1bGFyIGxpbXBpbywgc2luIGZyb3RhciB5IGV2aXRhbmRvIGxhIGNvbmp1bnRpdmEuJywnMeKAkzIgYXBsaWNhY2lvbmVzIGFsIGTDrWEuJywnVXNvIGNvbnRpbnVhZG8gZHVyYW50ZSBmYXNlcyBkZSBzZXF1ZWRhZCBvIHJlYWN0aXZpZGFkLicsJ1B1ZWRlIGNvbnNlcnZhcnNlIGVuIGZyw61vIHBhcmEgYXVtZW50YXIgZWwgZWZlY3RvIGNhbG1hbnRlIHNpIGVsIGZhYnJpY2FudGUgbG8gcGVybWl0ZS4nLFsncGllbCBzZW5zaWJsZScsJ2JhcnJlcmEgY3V0w6FuZWEnXSksCiAgcCgnRW1vbGllbnRhIFBhbHBlYnJhbCcsJ0VjY2VtYSB5IGJhcnJlcmEgcGFscGVicmFsJywnRW1vbGllbnRhJywnw4FjaWRvIGhpYWx1csOzbmljbyB5IGdsaWNlcmluYScsJ1NlcXVlZGFkIHkgdGlyYW50ZXogcGFscGVicmFsJywnQXBsaWNhciB1bmEgcGVxdWXDsWEgY2FudGlkYWQgc29icmUgZWwgcMOhcnBhZG8gY2VycmFkbyB5IGVsIGNvbnRvcm5vIG9jdWxhciBtZWRpYW50ZSB0b3F1ZXMgc3VhdmVzLicsJzIgYXBsaWNhY2lvbmVzIGFsIGTDrWEsIG1hw7FhbmEgeSBub2NoZS4nLCdVc28gY29udGludWFkbyBzZWfDum4gbmVjZXNpZGFkLicsJ0V2aXRhciBhcGxpY2FyIHNvYnJlIGVyb3Npb25lcywgaW5mZWNjacOzbiBhY3RpdmEgbyBkZW50cm8gZGVsIG9qby4nLFsncGllbCBzZW5zaWJsZScsJ2hpZHJhdGFjacOzbiddKSwKICBwKCdCaW9kZXJtYSBTZW5zaWJpbyBFeWUrJywnSGlkcmF0YWNpw7NuIHkgcGllbCBzZW5zaWJsZScsJ0Jpb2Rlcm1hJywnQWdlbnRlcyBoaWRyYXRhbnRlcyB5IGNhbG1hbnRlcycsJ0NvbnRvcm5vIG9jdWxhciBzZW5zaWJsZSBvIHJlYWN0aXZvJywnQXBsaWNhciB1bmEgY2FwYSBmaW5hIGNvbiBwZXF1ZcOxb3MgdG9xdWVzIHNvYnJlIGVsIGNvbnRvcm5vIG9jdWxhciBsaW1waW8uJywnMiBhcGxpY2FjaW9uZXMgYWwgZMOtYSwgbWHDsWFuYSB5IG5vY2hlLicsJ1VzbyBjb250aW51YWRvLicsJ0V2aXRhciBmcmljY2nDs24geSBkZXNtYXF1aWxsYWRvIGFncmVzaXZvLicsWydwaWVsIHNlbnNpYmxlJywnaGlkcmF0YWNpw7NuJ10pLAogIHAoJ0NlcmFWZSBDcmVtYSBSZXBhcmFkb3JhIENvbnRvcm5vIGRlIE9qb3MnLCdIaWRyYXRhY2nDs24geSBwaWVsIHNlbnNpYmxlJywnQ2VyYVZlJywnQ2VyYW1pZGFzLCBuaWFjaW5hbWlkYSB5IMOhY2lkbyBoaWFsdXLDs25pY28nLCdEZXNoaWRyYXRhY2nDs24geSBhbHRlcmFjacOzbiBkZSBiYXJyZXJhIGRlbCBjb250b3JubyBvY3VsYXInLCdBcGxpY2FyIG1lZGlhbnRlIHRvcXVlcyBzdWF2ZXMgYWxyZWRlZG9yIGRlbCBjb250b3JubyBkZSBvam9zLCBzaW4gYWxjYW56YXIgbGEgY29uanVudGl2YS4nLCcx4oCTMiBhcGxpY2FjaW9uZXMgYWwgZMOtYS4nLCdVc28gY29udGludWFkby4nLCdBZGVjdWFkbyBjb21vIGhpZHJhdGFudGUgZGUgbWFudGVuaW1pZW50byBzaSBleGlzdGUgYnVlbmEgdG9sZXJhbmNpYS4nLFsnY2VyYW1pZGFzJywnaGlkcmF0YWNpw7NuJ10pLAogIHAoJzVwdW50bzUgQ29udG9ybm8gZGUgT2pvcyB5IExhYmlvcycsJ0hpZHJhdGFjacOzbiB5IHBpZWwgc2Vuc2libGUnLCc1cHVudG81Jywnw4FjaWRvIGhpYWx1csOzbmljbywgdml0YW1pbmEgRSB5IGFjZWl0ZXMgZW1vbGllbnRlcycsJ1NlcXVlZGFkIHkgc2Vuc2liaWxpZGFkIGRlIGNvbnRvcm5vIG9jdWxhciB5IGxhYmlvcycsJ0FwbGljYXIgdW5hIHBlcXVlw7FhIGNhbnRpZGFkIG1lZGlhbnRlIHRvcXVlcyBzdWF2ZXMsIHNpbiBhcnJhc3RyYXIgbGEgcGllbC4nLCcyIGFwbGljYWNpb25lcyBhbCBkw61hLCBtYcOxYW5hIHkgbm9jaGUuJywnVXNvIGNvbnRpbnVhZG8uJywnRXZpdGFyIGVsIGJvcmRlIGxpYnJlIHBhbHBlYnJhbC4nLFsncGllbCBzZW5zaWJsZScsJ2hpZHJhdGFjacOzbiddKSwKICBwKCdMRVRJU1IgQ29udG9ybm8gZGUgT2pvcycsJ0hpZHJhdGFjacOzbiB5IHBpZWwgc2Vuc2libGUnLCdMRVRJJywnQWdlbnRlcyBoaWRyYXRhbnRlcyB5IGNhbG1hbnRlcycsJ0NvbnRvcm5vIG9jdWxhciBzZW5zaWJsZSBjb24gdGVuZGVuY2lhIGFsIGVucm9qZWNpbWllbnRvJywnQXBsaWNhciB1bmEgZmluYSBjYXBhIGVuIGVsIGNvbnRvcm5vIG9jdWxhciBzaW4gZnJvdGFyLicsJzHigJMyIGFwbGljYWNpb25lcyBhbCBkw61hLicsJ1VzbyBjb250aW51YWRvIHNlZ8O6biB0b2xlcmFuY2lhLicsJ0FwbGljYXIgc29icmUgcGllbCDDrW50ZWdyYTsgZXZpdGFyIGNvbnRhY3RvIGRpcmVjdG8gY29uIGVsIG9qby4nLFsncGllbCBzZW5zaWJsZSddKSwKICBwKCdHSCBLLUFUIFPDqXJ1bSBDb250b3JubyBkZSBPam9zJywnT2plcmFzIHkgYm9sc2FzJywnR0gnLCfDgWNpZG8gdHJhbmV4w6FtaWNvIHkgYWN0aXZvcyBkZXNjb25nZXN0aXZvcycsJ09qZXJhcyBwaWdtZW50YXJpYXMgbyB2YXNjdWxhcmVzIHkgYm9sc2FzIGxldmVzJywnQXBsaWNhciB1bmEgcGVxdWXDsWEgY2FudGlkYWQgY29uIGVsIGFwbGljYWRvciB5IGNvbXBsZXRhciBjb24gdG9xdWVzIHN1YXZlcy4nLCcyIGFwbGljYWNpb25lcyBhbCBkw61hLicsJzggc2VtYW5hcyBhbnRlcyBkZSB2YWxvcmFyIHJlc3B1ZXN0YS4nLCdMYXMgb2plcmFzIGVzdHJ1Y3R1cmFsZXMgbyBwb3IgcMOpcmRpZGEgZGUgdm9sdW1lbiByZXNwb25kZW4gZGUgZm9ybWEgbGltaXRhZGEgYSBjb3Ntw6l0aWNvcy4nLFsnb2plcmFzJywnYm9sc2FzJ10pLAogIHAoJ0JlbGNpbHMgUmVkdWN0b3IgZGUgQm9sc2FzIGRlIE9qb3MnLCdPamVyYXMgeSBib2xzYXMnLCdCZWxjaWxzJywnQWdlbnRlcyBkZXNjb25nZXN0aXZvcyBlIGhpZHJhdGFudGVzJywnQm9sc2FzIHBhbHBlYnJhbGVzIGxldmVzJywnQXBsaWNhciB1bmEgcGVxdWXDsWEgY2FudGlkYWQgY29uIHRvcXVlcyBkZXNkZSBlbCDDoW5ndWxvIGludGVybm8gaGFjaWEgZWwgZXh0ZXJuby4nLCcyIGFwbGljYWNpb25lcyBhbCBkw61hLCBtYcOxYW5hIHkgbm9jaGUuJywnVXNvIGNvbnRpbnVhZG87IHJlZXZhbHVhciBhIGxhcyA44oCTMTIgc2VtYW5hcy4nLCdMYXMgYm9sc2FzIHBlcnNpc3RlbnRlcyBwb3IgaGVybmlhY2nDs24gZ3Jhc2Egbm8gc2UgY29ycmlnZW4gY29uIGRlcm1vY29zbcOpdGljYS4nLFsnYm9sc2FzJ10pLAogIHAoJzVwdW50bzUgRXllIFJldml2YWwgQm9vc3RlcicsJ09qZXJhcyB5IGJvbHNhcycsJzVwdW50bzUnLCdDYWZlw61uYSwgcGFudGVub2wgeSB2aXRhbWluYSBDIGVzdGFibGUnLCdEZXNjb25nZXN0acOzbiBwdW50dWFsIHkgYXNwZWN0byBkZSBmYXRpZ2EgcGVyaW9jdWxhcicsJ0NvbG9jYXIgbG9zIHBhcmNoZXMgc29icmUgcGllbCBsaW1waWEgYmFqbyBlbCByZWJvcmRlIG9yYml0YXJpbyBkdXJhbnRlIGVsIHRpZW1wbyBpbmRpY2FkbyBwb3IgZWwgZmFicmljYW50ZSB5IHJldGlyYXIuJywnMuKAkzMgYXBsaWNhY2lvbmVzIHBvciBzZW1hbmEuJywnVXNvIHB1bnR1YWwuJywnTm8gY29sb2NhciBzb2JyZSBww6FycGFkbyBtw7N2aWwgbmkgcGllbCBlcm9zaW9uYWRhLicsWydvamVyYXMnLCdib2xzYXMnXSksCiAgcCgnR0ggRnVuY2nDs24gR2xvYmFsIENvbnRvcm5vIGRlIE9qb3MnLCdGb3RvZW52ZWplY2ltaWVudG8gcGVyaW9jdWxhcicsJ0dIJywnUMOpcHRpZG9zLCBhZ2VudGVzIGVtb2xpZW50ZXMgeSBtYW50ZWNhIGRlIGthcml0w6knLCdBcnJ1Z2FzIGZpbmFzLCBkZXNoaWRyYXRhY2nDs24geSBww6lyZGlkYSBkZSBmaXJtZXphIHBlcmlvY3VsYXInLCdBcGxpY2FyIHVuYSBwZXF1ZcOxYSBjYW50aWRhZCBjb24gdG9xdWVzIHN1YXZlcyBzb2JyZSBlbCByZWJvcmRlIG9yYml0YXJpby4nLCcyIGFwbGljYWNpb25lcyBhbCBkw61hLicsJzggc2VtYW5hcyBhbnRlcyBkZSB2YWxvcmFyIHJlc3B1ZXN0YS4nLCdNYW50ZW5lciBmb3RvcHJvdGVjY2nDs24geSBldml0YXIgbGEgZnJpY2Npw7NuIHJlcGV0aWRhLicsWydmb3RvZW52ZWplY2ltaWVudG8nXSksCiAgcCgnNXB1bnRvNSBBYnNvbHV0IEV5ZSBDb250b3VyJywnRm90b2VudmVqZWNpbWllbnRvIHBlcmlvY3VsYXInLCc1cHVudG81JywnUmV0aW5vbCAwLDEgJSwgcMOpcHRpZG9zLCBuaWFjaW5hbWlkYSwgY2FmZcOtbmEsIMOhY2lkbyB0cmFuZXjDoW1pY28geSDDoWNpZG8gaGlhbHVyw7NuaWNvJywnRm90b2VudmVqZWNpbWllbnRvLCBvamVyYXMgeSBhcnJ1Z2FzIGZpbmFzIHBlcmlvY3VsYXJlcycsJ0FwbGljYXIgcG9yIGxhIG5vY2hlIGVuIGNhbnRpZGFkIG3DrW5pbWEgc29icmUgZWwgcmVib3JkZSBvcmJpdGFyaW8sIGV2aXRhbmRvIHDDoXJwYWRvIG3Ds3ZpbCB5IGJvcmRlIGxpYnJlLicsJ0luaWNpYXIgMuKAkzMgbm9jaGVzIHBvciBzZW1hbmEgZHVyYW50ZSAyIHNlbWFuYXM7IGF1bWVudGFyIHByb2dyZXNpdmFtZW50ZSBoYXN0YSAxIGFwbGljYWNpw7NuIG5vY3R1cm5hIHNlZ8O6biB0b2xlcmFuY2lhLicsJ0VzY2FsYWRhIGluaWNpYWwgZGUgMiBzZW1hbmFzOyB2YWxvcmFyIHJlc3B1ZXN0YSBhIGxhcyA44oCTMTIgc2VtYW5hcy4nLCdObyB1dGlsaXphciByZXRpbm9pZGVzIGNvc23DqXRpY29zIGR1cmFudGUgZWwgZW1iYXJhem87IHJlZHVjaXIgZnJlY3VlbmNpYSBzaSBpcnJpdGEuJyxbJ3JldGlub2lkZSBwZXJpb2N1bGFyJywnZm90b2VudmVqZWNpbWllbnRvJ10pLAogIHAoJ01lZGlrOCBDcnlzdGFsIFJldGluYWwgQ2VyYW1pZGUgRXllIDMnLCdGb3RvZW52ZWplY2ltaWVudG8gcGVyaW9jdWxhcicsJ01lZGlrOCcsJ1JldGluYWxkZWjDrWRvLCBjZXJhbWlkYXMgeSDDoWNpZG8gaGlhbHVyw7NuaWNvJywnQXJydWdhcyBmaW5hcyB5IHRleHR1cmEgcGVyaW9jdWxhciBlbiBwYWNpZW50ZXMgcXVlIHNlIGluaWNpYW4gY29uIHJldGluYWwnLCdBcGxpY2FyIHBvciBsYSBub2NoZSB1bmEgY2FudGlkYWQgbcOtbmltYSBzb2JyZSBlbCByZWJvcmRlIG9yYml0YXJpbywgZXZpdGFuZG8gZWwgcMOhcnBhZG8gbcOzdmlsIHkgbGEgY29uanVudGl2YS4nLCcyIG5vY2hlcyBwb3Igc2VtYW5hIGR1cmFudGUgMiBzZW1hbmFzOyBub2NoZXMgYWx0ZXJuYXMgbGFzIDIgc2lndWllbnRlczsgZGVzcHXDqXMgY2FkYSBub2NoZSBzaSBleGlzdGUgdG9sZXJhbmNpYS4nLCcxMiBzZW1hbmFzIGFudGVzIGRlIHZhbG9yYXIgcmVzcHVlc3RhLicsJ05vIHV0aWxpemFyIGR1cmFudGUgZWwgZW1iYXJhem87IHN1c3BlbmRlciBzaSBhcGFyZWNlIGRlcm1hdGl0aXMgcGVyc2lzdGVudGUuJyxbJ3JldGlub2lkZSBwZXJpb2N1bGFyJywnZm90b2VudmVqZWNpbWllbnRvJ10pLAogIHAoJ05lb1N0cmF0YSBTa2luIEFjdGl2ZSBJbnRlbnNpdmUgRXllIFRoZXJhcHknLCdGb3RvZW52ZWplY2ltaWVudG8gcGVyaW9jdWxhcicsJ05lb1N0cmF0YScsJ1DDqXB0aWRvcyB5IGFjdGl2b3MgYW50aWVkYWQnLCdBcnJ1Z2FzIGZpbmFzIHkgcMOpcmRpZGEgZGUgZmlybWV6YSBwZXJpb2N1bGFyJywnQXBsaWNhciBtZWRpYW50ZSB0b3F1ZXMgc3VhdmVzIHNvYnJlIGVsIGNvbnRvcm5vIG9jdWxhciBsaW1waW8uJywnMiBhcGxpY2FjaW9uZXMgYWwgZMOtYSwgbWHDsWFuYSB5IG5vY2hlLicsJzEyIHNlbWFuYXMgYW50ZXMgZGUgdmFsb3JhciByZXNwdWVzdGEuJywnRXZpdGFyIGxhIGFwbGljYWNpw7NuIGRlbWFzaWFkbyBwcsOzeGltYSBhbCBib3JkZSBsaWJyZS4nLFsnZm90b2VudmVqZWNpbWllbnRvJ10pLAogIHAoJ0NlcmFWZSBTa2luIFJlbmV3aW5nIENyZW1hIFJlYWZpcm1hbnRlIENvbnRvcm5vIGRlIE9qb3MnLCdGb3RvZW52ZWplY2ltaWVudG8gcGVyaW9jdWxhcicsJ0NlcmFWZScsJ0NlcmFtaWRhcywgbmlhY2luYW1pZGEsIMOhY2lkbyBoaWFsdXLDs25pY28geSBjYWZlw61uYScsJ0FycnVnYXMgZmluYXMsIGJvbHNhcyBsZXZlcyB5IGRlc2hpZHJhdGFjacOzbiBwZXJpb2N1bGFyJywnQXBsaWNhciB1bmEgcGVxdWXDsWEgY2FudGlkYWQgbWVkaWFudGUgdG9xdWVzIHN1YXZlcy4nLCcyIGFwbGljYWNpb25lcyBhbCBkw61hLCBtYcOxYW5hIHkgbm9jaGUuJywnVXNvIGNvbnRpbnVhZG87IHJlZXZhbHVhciBhIGxhcyA44oCTMTIgc2VtYW5hcy4nLCdBc29jaWFyIGZvdG9wcm90ZWNjacOzbiBmYWNpYWwgZGlhcmlhLicsWydmb3RvZW52ZWplY2ltaWVudG8nLCdib2xzYXMnXSkKIF07CiBELnB1c2goe3A6J1DDoXJwYWRvcyB5IGNvbnRvcm5vIG9jdWxhcicsaWQ6J2RyeC1wYXJwYWRvcycscHJvZHM6cHJ9KTsKIEQuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhLnAubG9jYWxlQ29tcGFyZShiLnAsJ2VzJyk7fSk7Cn0KZnVuY3Rpb24gaW5pdCgpe2VsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcngtZGMtYXBwJyl8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcngtZGMnKTtpZighZWwpcmV0dXJuOwogZWwuaWQ9J2RyeC1kYyc7ZWwuaW5uZXJIVE1MPSc8cCBzdHlsZT0iY29sb3I6IzVmN2M5MyI+Q2FyZ2FuZG8gZGVybW9jb3Ntw6l0aWNh4oCmPC9wPic7CiBmZXRjaCgnL3dwLWpzb24vZGVybXJ4L3YxL2Rlcm1vY29zbWV0aWNhP3Y9MjAyNjEwMTByJyx7Y3JlZGVudGlhbHM6J29taXQnfSkudGhlbihmdW5jdGlvbihyKXtpZighci5vayl0aHJvdyBuZXcgRXJyb3IoJ0hUVFAgJytyLnN0YXR1cyk7cmV0dXJuIHIuanNvbigpO30pLnRoZW4oZnVuY3Rpb24ocGF5bG9hZCl7dmFyIHQ9cGF5bG9hZCYmcGF5bG9hZC5odG1sP3BheWxvYWQuaHRtbDonJzsKICBEPXBzKG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodCwndGV4dC9odG1sJykpO2FwZCgpOwogIGlmKCFELmxlbmd0aCl7ZWwuaW5uZXJIVE1MPSc8cD5ObyBzZSBoYW4gcG9kaWRvIGNhcmdhciBsb3MgZGF0b3MuPC9wPic7cmV0dXJuO30KICBmaCgpO3JkKCk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLGZ1bmN0aW9uKCl7aWYoZmgoKSlyZCgpO30pOwogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLGZ1bmN0aW9uKGV2KXtpZigvaW5wdXR8c2VsZWN0fHRleHRhcmVhL2kudGVzdChldi50YXJnZXQudGFnTmFtZXx8JycpKXJldHVybjsKICAgaWYoZXYua2V5PT09J0Fycm93RG93bid8fGV2LmtleT09PSdBcnJvd1VwJyl7dmFyIG49cy5wKyhldi5rZXk9PT0nQXJyb3dEb3duJz8xOi0xKTsKICAgIGlmKG4+PTAmJm48RC5sZW5ndGgpe3MucD1uO3MuYz0wO3Mucj0wO2hzKCk7cmQoKTtldi5wcmV2ZW50RGVmYXVsdCgpO319fSk7CiB9KS5jYXRjaChmdW5jdGlvbigpe2VsLmlubmVySFRNTD0nPHA+Tm8gc2UgaGFuIHBvZGlkbyBjYXJnYXIgbG9zIGRhdG9zLjwvcD4nO30pO30KaWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSdjb21wbGV0ZScpe2luaXQoKTt9ZWxzZXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsaW5pdCk7fQp9KSgpOwo=
DermRXDermatología clínica