xiaomianao666

插件名:global_极速解析

Oct 31st, 2024
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:网页插件¥js_url¥global_极速解析@base64://Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICAgICAgIOaegemAn+ino+aekAovLyBAbmFtZXNwYWNlICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3FpdXN1bnNoaW5lL21vdmllbm93Ci8vIEB2ZXJzaW9uICAgICAgICAgICAxLjEuMAovLyBAaWNvbiAgICAgICAgICAgICAgaHR0cHM6Ly93d3cuYmFpZHUuY29tL2Zhdmljb24uaWNvCi8vIEBkZXNjcmlwdGlvbiAgICAgICBWSVDmjqXlj6Pop6PmnpAKLy8gQGF1dGhvciAgICAgICAgICAgIOS4gOWPtumjmOmbtgovLyBAbGljZW5zZSAgICAgICAgICAgTUlUCi8vIEBzdXBwb3J0VVJMICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcWl1c3Vuc2hpbmUvbW92aWVub3cKLy8gQG1hdGNoICAgICAgICAgICAgICoubGUuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICouaXFpeWkuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoueW91a3UuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoubGV0di5jb20vKgovLyBAbWF0Y2ggICAgICAgICAgICAgKnYucXEuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoudHVkb3UuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoubWd0di5jb20vKgovLyBAbWF0Y2ggICAgICAgICAgICAgKi5zb2h1LmNvbS8qCi8vIEBydW4tYXQgICAgICAgICAgICBkb2N1bWVudC1pZGxlCi8vIEBncmFudCAgICAgICAgICAgICB1bnNhZmVXaW5kb3cKLy8gQGRvd25sb2FkVVJMIGh0dHBzOi8vdXBkYXRlLmdyZWFzeWZvcmsub3JnL3NjcmlwdHMvMzg5Mjk5LyVFNiU5RSU4MSVFOSU4MCU5RiVFOCVBNyVBMyVFNiU5RSU5MC51c2VyLmpzCi8vIEB1cGRhdGVVUkwgaHR0cHM6Ly91cGRhdGUuZ3JlYXN5Zm9yay5vcmcvc2NyaXB0cy8zODkyOTkvJUU2JTlFJTgxJUU5JTgwJTlGJUU4JUE3JUEzJUU2JTlFJTkwLm1ldGEuanMKLy8gPT0vVXNlclNjcmlwdD09CihmdW5jdGlvbigpIHsKICAgIHZhciBhcGlzID0gWwogICAgeyJuYW1lIjogIjg55YWN6LS56Kej5p6QIiwidXJsIjoiaHR0cDovL3d3dy5rYTYxYi5jbi9qeC5waHA/dXJsPSJ9LAogICAgeyJuYW1lIjogIuiKkuaenOiTneWFieino+aekCIsICJ1cmwiOiAiaHR0cDovL3d3dy5ndWFuZGlhbnpoaWt1LmNvbS92L3MvP3VybD0ifSwKICAgIHsibmFtZSI6ICLmmbrog73op6PmnpAiLCAidXJsIjogImh0dHBzOi8vYXBpLnNtcTEuY29tLz91cmw9In0sCiAgICB7Im5hbWUiOiAi5aSf5Lmw6Kej5p6QIiwgInVybCI6ICJodHRwOi8vangudmlwc2hhcmVzLnh5ei9pbmRleDEucGhwP3VybD0ifSwKICAgIHsibmFtZSI6ICLmnoHpgJ/op6PmnpAiLCAidXJsIjogImh0dHA6Ly9qeC5penR5eS5jb20vc3ZpcC8/dXJsPSJ9LAogICAgeyJuYW1lIjogIjE3S+ino+aekCIsICJ1cmwiOiAiaHR0cDovLzE3a3l1bi5jb20vYXBpLnBocD91cmw9In0sCiAgICB7Im5hbWUiOiAi5bCP55m95YWU6Kej5p6QIiwgInVybCI6ICJodHRwczovL3ZpcC5ibGppZXguY29tLz92PSJ9LAogICAgeyJuYW1lIjogIuS8mOmFt+S4k+WxniIsICJ1cmwiOiAiaHR0cDovL3AucDQwLnRvcC8/dj0ifSwKICAgIHsibmFtZSI6ICLosarljY7op6PmnpAiLCAidXJsIjogImh0dHA6Ly9hcGkueHlpbmd5dS5jb20vP3VybD0ifSwKICAgIHsibmFtZSI6ICJBVOino+aekCIsICJ1cmwiOiAiaHR0cDovL2F0NTIwLmNuL2p4Lz91cmw9aHR0cDovL3d3dy5jbXlzLnR2Lz91cmw9In0sCiAgICB7Im5hbWUiOiAi56We6ams6Kej5p6QIiwgInVybCI6ICJodHRwOi8vYmVhYWNjLmNvbS9hcGkucGhwP3VybD0ifSwKICAgIHsibmFtZSI6ICLnjKvnjKvniLHop6PmnpAiLCAidXJsIjogImh0dHA6Ly9iYWlkdS5jb20ubWlhb21pYW9haS5jbi92aXAvaW5kZXgucGhwP3VybD0ifSwKICAgIHsibmFtZSI6ICLntKvkupHop6PmnpAiLCAidXJsIjogImh0dHA6Ly9hcGkuc21xMS5jb20vP3VybD0ifSwKICAgIHsibmFtZSI6ICLlkL7niLHop6PmnpAiLCAidXJsIjogImh0dHBzOi8vd3d3LmZhbnRlZS5uZXQvZmFudGVlLz91cmw9In0sCiAgICB7Im5hbWUiOiAi57Sr6ZmM6Kej5p6QIiwgInVybCI6ICJodHRwOi8vanguNTk4MTEwLmNvbS96dWlkYS5waHA/dXJsPSJ9LAogICAgeyJuYW1lIjogIuWIneW/g+ino+aekCIsICJ1cmwiOiAiaHR0cDovL2p4LmJ3Y3h5LmNvbS8/dj0ifSwKICAgIHsibmFtZSI6ICLnp5HmioDop6PmnpAiLCAidXJsIjogImh0dHA6Ly9rYTYxYi5jbi9qeC5waHA/dXJsPSJ9LAogICAgeyJuYW1lIjogIjE5MDflvbHop4YiLCAidXJsIjogImh0dHBzOi8vejEubTE5MDcuY24vP2p4PSJ9LAogICAgeyJuYW1lIjogIua4hemjjuaYjuaciCIsICJ1cmwiOiAiaHR0cDovL2ZhdGVnLnh5ei8/dXJsPSJ9LAoJeyJuYW1lIjogIuS4h+iDvSIsICJ1cmwiOiAiaHR0cDovL2FwaS5sa2Rta2ouY29tL2p4L2p4MDAvaW5kZXgucGhwP3VybD0ifSwKCXsibmFtZSI6ICJ2aXDlpJrnur/ot68iLCAidXJsIjogImh0dHA6Ly9hcGkubGVkYm9rZS5jb20vdmlwLz91cmw9In0sCiAgICB7Im5hbWUiOiAiNjE4RyIsICJ1cmwiOiAiaHR0cHM6Ly9qeC42MThnLmNvbS8/dXJsPSJ9XTsKICAgIGxvYWRWaXBGdW5jKCk7CgoJZnVuY3Rpb24gbG9hZFZpcEZ1bmMoKXsKCSAgICB2YXIgZG9tYWluID0gbG9jYXRpb24uaHJlZi5zcGxpdCgiPyIpOwoJICAgIHZhciB5ZSA9ICI8c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O3dpZHRoOjV2dztoZWlnaHQ6NXZ3O2ZvbnQtc2l6ZToyLjV2dztjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjV2dzt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjEwMCU7Ym94LXNoYWRvdzowcHggMHB4IDNweCAjYTlhOWE5O2JhY2tncm91bmQ6IzAwNzhGRjttYXJnaW46My43OHZ3IDIuMXZ3Oyc+4piFPC9zcGFuPiI7CgkgICAgaWYgKGRvbWFpblswXS5tYXRjaCgiLmlxaXlpLmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLnlvdWt1LmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLmxlLmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLmxldHYuY29tIikgfHwgZG9tYWluWzBdLm1hdGNoKCJ2LnFxLmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLnR1ZG91LmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLm1ndHYuY29tIikgfHwgZG9tYWluWzBdLm1hdGNoKCIuc29odS5jb20iKSkgewogICAgCQl2YXIgbXlCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCSAgICAJbXlCdG4uaWQgPSAibXlCdG4yMDE5IjsKICAgIAkJbXlCdG4uaW5uZXJIVE1MID0gIuKYhiI7CiAgICAJCW15QnRuLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAid2lkdGg6MTJ2dztoZWlnaHQ6MTJ2dztwb3NpdGlvbjpmaXhlZDtib3R0b206MjV2aDtyaWdodDoxMHZ3O3otaW5kZXg6MTAwMDAwO2JvcmRlci1yYWRpdXM6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxMnZ3O2JveC1zaGFkb3c6MHB4IDFweCAzcHggcmdiYSgwLDAsMCwwLjMpO2ZvbnQtc2l6ZTo0LjV2dztiYWNrZ3JvdW5kOiNmYWZhZmE7Iik7CiAgICAJCW15QnRuLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKCQkJICAgIGxvYWRWaXAobG9jYXRpb24uaHJlZik7CgkJICAgIH07CgkgICAgCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobXlCdG4pOwogICAgCQl2YXIgbXl1bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7CgkJICAgIG15dWwuaWQgPSAibXl1bDIwMTkiOwoJICAgIAlteXVsLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTpub25lO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjBweCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMyk7bWFyZ2luOjA7cGFkZGluZzowIDQuMnZ3O3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTozNXZoO3JpZ2h0OjEydnc7ei1pbmRleDo5OTk5OTtoZWlnaHQ6NjB2aDtvdmVyZmxvdzpzY3JvbGw7Ym9yZGVyLXJhZGl1czoxLjI2dnc7Iik7CgkgICAgCWZvciAodmFyIGkgPSAwOyBpIDwgYXBpcy5sZW5ndGg7IGkrKykgewoJICAgIAkJdmFyIG15bGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwoJICAgIAkJdmFyIHRoYXQgPSB0aGlzOwogICAgCQkJbXlsaS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgIm1hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO2xpc3Qtc3R5bGU6bm9uZTtmb250LXNpemU6NC4ydnc7d2lkdGg6MzMuNnZ3O3RleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxMi42dnc7bGV0dGVyLXNwYWNpbmc6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjBmMGYwO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7Iik7CiAgICAJCQkoZnVuY3Rpb24obnVtKSB7CgkJCSAgICAJbXlsaS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CgkJCSAgICAJCXdpbmRvdy5vcGVuKGFwaXNbbnVtXS51cmwgKyB0cnlHZXRSZWFsVXJsKGxvY2F0aW9uLmhyZWYpLCAnX2JsYW5rJyk7CgkJICAgIAkJfTsKCQkgICAgCQlteWxpLm9udG91Y2hzdGFydCA9IGZ1bmN0aW9uKCkgewoJCQkJICAgIAl0aGlzLnN0eWxlLmNzc1RleHQgKz0gImNvbG9yOnllbGxvdztiYWNrZ3JvdW5kOiMzNzM3Mzc7Ym9yZGVyLXJhZGl1czoxLjI2dnc7IjsKCQkJICAgIAl9OwoJCQkgICAgCW15bGkub250b3VjaGVuZCA9IGZ1bmN0aW9uKCkgewoJCQkJICAgIAl0aGlzLnN0eWxlLmNzc1RleHQgKz0gImNvbG9yOmJsYWNrO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowOyI7CgkJCSAgICAJfTsKCQkgICAgCX0pKGkpOwoJCSAgICAJbXlsaS5pbm5lckhUTUwgPSBhcGlzW2ldLm5hbWU7CgkJICAgIAlteXVsLmFwcGVuZENoaWxkKG15bGkpOwoJICAgIAl9CgkgICAgCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobXl1bCk7CiAgICAJCS8v6K6p6KeG6aKR5Yy65Z+f5pi+56S65paH5a2X77yM55u05o6l6Kej5p6QCgkJICAgIHNob3dWaXBUaXRsZShsb2NhdGlvbi5ocmVmKTsKCSAgICB9Cgl9CglmdW5jdGlvbiBzaG93VmlwVGl0bGUodXJsKSB7CgkJdmFyIHRpdGxlU3RyID0gIuinhumikei/nuaOpeaIkOWKn++8geeCueWHu+mAieaLqeino+aekOaOpeWPoyI7CgkJaWYgKHVybC5pbmRleE9mKCJpcWl5aS5jb20iKSAhPSAtMSkgewoJCQl2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19pZicpOwoJCQlpZiAoaWZyYW1lKSB7CgkJCQl3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CgkJCQlyZXR1cm47CgkJCX0KCQkJdmFyIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtLXZpZGVvLXBsYXllci13cmFwJylbMF07CgkJCWlmICh0eXBlb2YoaSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWkuc3R5bGUuaGVpZ2h0ID0gJzIyMHB4JzsKCQkJCWkuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQlpLnN0eWxlLmxpbmVIZWlnaHQgPSAnMTUnOwoJCQkJaS5zdHlsZS5wb3NpdGlvbiA9ICdzdGF0aWMnOwoJCQkJaS5zdHlsZS5wYWRkaW5nVG9wID0gJzAlJzsKCQkJCWkuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWkuc3R5bGUudGV4dEFsaWduID0gJ2NlbnRlcic7CgkJCQlpLmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJaS5hZGRFdmVudExpc3RlbmVyKCd0YXAnLAoJCQkJZnVuY3Rpb24oKSB7CgkJCQkJbG9hZFZpcCh3aW5kb3cubG9jYXRpb24uaHJlZik7CgkJCQl9KTsKCQkJfQoJCX0gZWxzZSBpZiAodXJsLmluZGV4T2YoInYucXEuY29tIikgIT0gLTEpIHsKCQkJdmFyIGcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzaXRlX3BsYXllcicpWzBdOwoJCQlpZiAodHlwZW9mKGcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQlnLnN0eWxlLmhlaWdodCA9ICcyMTBweCc7CgkJCQlnLnN0eWxlLmJhY2tncm91bmQgPSAnIzAwMDAwMCc7CgkJCQlnLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJZy5zdHlsZS5jb2xvciA9ICcjZmZmJzsKCQkJCWcuc3R5bGUubGluZUhlaWdodCA9ICcxNCc7CgkJCQlnLmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJZy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywKCQkJCWZ1bmN0aW9uKGUpIHsKCQkJCQlsb2FkVmlwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKCQkJCX0pOwoJCQl9CgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigibS5sZS5jb20iKSAhPSAtMSkgewoJCQl2YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3BsYXlCJylbMF07CgkJCWlmICh0eXBlb2YoZikgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWYuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWYuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQlmLnN0eWxlLndpZHRoID0gJzEwMCUnOwoJCQkJZi5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsKCQkJCWYuc3R5bGUubGluZUhlaWdodCA9ICcxNCc7CgkJCQlmLnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJZi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywKCQkJCWZ1bmN0aW9uKGUpIHsKCQkJCQlsb2FkVmlwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKCQkJCX0pOwoJCQl9CgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigieW91a3UuY29tIikgIT0gLTEpIHsKCQkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxheWVyQm94Jyk7CgkJCWlmICh0eXBlb2YoZSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWUuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWUuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQllLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJZS5zdHlsZS5saW5lSGVpZ2h0ID0gJzE1JzsKCQkJCWUuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQllLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0KCQkJCgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigieW91a3UuY29tIikgIT0gLTEpIHsKCQkJdmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxheWVyQm94Jyk7CgkJCWlmICh0eXBlb2YoZCkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWQuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWQuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQlkLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJZC5zdHlsZS5saW5lSGVpZ2h0ID0gJzE1JzsKCQkJCWQuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQlkLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0KCQl9IGVsc2UgaWYgKHVybC5pbmRleE9mKCJtZ3R2LmNvbSIpICE9IC0xKSB7CgkJCXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndmlkZW8tYXJlYScpWzBdOwoJCQlpZiAodHlwZW9mKGMpICE9ICd1bmRlZmluZWQnKSB7CgkJCQljLnN0eWxlLmJhY2tncm91bmQgPSAnIzAwMDAwMCc7CgkJCQljLnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJYy5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsKCQkJCWMuc3R5bGUubGluZUhlaWdodCA9ICcxNic7CgkJCQljLmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJYy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsCgkJCQlmdW5jdGlvbihlKSB7CgkJCQkJbG9hZFZpcCh3aW5kb3cubG9jYXRpb24uaHJlZik7CgkJCQl9KTsKCQkJfQoJCX0gZWxzZSBpZiAodXJsLmluZGV4T2YoInNvaHUuY29tIikgIT0gLTEpIHsKCQkJdmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd4LXBsYXllcicpWzBdOwoJCQl2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AtcG9zdGVyJyk7CgkJCWlmICh0eXBlb2YoYikgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWIuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWIuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQliLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJYi5zdHlsZS5saW5lSGVpZ2h0ID0gJzEzJzsKCQkJCWIuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQliLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0gZWxzZSBpZiAodHlwZW9mKHgpICE9ICd1bmRlZmluZWQnKSB7CgkJCQl4LnN0eWxlLmJhY2tncm91bmQgPSAnIzAwMDAwMCc7CgkJCQl4LnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJeC5zdHlsZS5oZWlnaHQgPSAnMjEwcHgnOwoJCQkJeC5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsKCQkJCXguc3R5bGUubGluZUhlaWdodCA9ICcxMyc7CgkJCQl4LmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJeC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsCgkJCQlmdW5jdGlvbigpIHsKCQkJCQlsb2FkVmlwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKCQkJCX0pOwoJCQl9CgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigiYmFvZmVuZy5jb20iKSAhPSAtMSkgewoJCQl2YXIgbXlWaWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOwoJCQlteVZpZGVvLnBhdXNlKCk7CgkJCXZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvcGxheWVyJyk7CgkJCWlmICh0eXBlb2YoYSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWEuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWEuc3R5bGUudGV4dEFsaWduID0gJ2NlbnRlcic7CgkJCQlhLnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJYS5zdHlsZS5saW5lSGVpZ2h0ID0gJzE3JzsKCQkJCWEuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQlhLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0KCQl9Cgl9CglmdW5jdGlvbiB0cnlHZXRSZWFsVXJsKHVybCkgewoJCXZhciByZWFsVXJsID0gdXJsOwoJCXRyeSB7CgkJCXJlYWxVcmwgPSBnZXRSZWFsVXJsKHVybCk7CgkJfSBjYXRjaChlcnIpIHsKCQkJY29uc29sZS5sb2coZXJyKTsKCQl9CgkJcmV0dXJuIHJlYWxVcmw7Cgl9CglmdW5jdGlvbiBnZXRZb3VrdVJlYWxVcmwodXJsKSB7CgkJdmFyIGxpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaG90LXJvdy1ib3R0b20nKVswXS5jaGlsZHJlblswXTsKCQl2YXIgZGF0YSA9IGxpLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXJhbScpOwoJCXZhciBzID0gZGF0YS5zcGxpdCgnc3ZpZD0nKTsKCQlpZiAocy5sZW5ndGggPiAxKSB7CgkJCXZhciBzdmlkID0gc1sxXS5zcGxpdCgnJicpWzBdOwoJCQlyZXR1cm4gJ2h0dHBzOi8vdi55b3VrdS5jb20vdl9zaG93L2lkXycgKyBzdmlkICsgJy5odG1sJzsKCQl9CgkJcmV0dXJuIHVybDsKCX0KCWZ1bmN0aW9uIGdldFJlYWxVcmwodXJsKSB7CgkJdmFyIGRhdGF1cmwyID0gdXJsOwoJCXZhciB0eHVybGMgPSBkYXRhdXJsMi5zcGxpdCgiOiIpOwoJCXZhciB0eHVybCA9IHR4dXJsY1sxXS5zbGljZSgwLCAxMik7CgkJdmFyIHlrdXJsID0gdHh1cmxjWzFdLnNsaWNlKDAsIDEzKTsKCQl2YXIgeWtkYXRhID0gdHh1cmxjWzFdLnNsaWNlKDEzKTsKCQl2YXIgZnVudXJsID0gdHh1cmxjWzFdLnNsaWNlKDAsIDExKTsKCQlpZiAoeWt1cmwgPT0gJy8vbS55b3VrdS5jb20nKSB7CgkJCXJldHVybiBnZXRZb3VrdVJlYWxVcmwodXJsKTsKCQl9CgkJaWYgKHlrdXJsID09ICcvL20ueW91a3UuY29tJykgewoJCQl2YXIgdHh1cmxjMCA9IGRhdGF1cmwyLnNwbGl0KCI6Iik7CgkJCXZhciB5a3VybDAgPSB0eHVybGNbMV0uc2xpY2UoMCwgMTMpOwoJCQl2YXIgeWtkYXRhMCA9IHR4dXJsY1sxXS5zbGljZSgxMyk7CgkJCWRhdGF1cmwyID0gJ2h0dHA6Ly93d3cueW91a3UuY29tJyArIHlrZGF0YTsKCQl9IGVsc2UgaWYgKHlrdXJsID09ICcvL20uaXFpeWkuY29tJykgewoJCQl2YXIgdHh1cmwwID0gZGF0YXVybDIuc3BsaXQoIjoiKTsKCQkJdmFyIHlrdXJsMDAgPSB0eHVybGNbMV0uc2xpY2UoMCwgMTMpOwoJCQl2YXIgeWtkYXRhMDAgPSB0eHVybGNbMV0uc2xpY2UoMTMpOwoJCQlkYXRhdXJsMiA9ICdodHRwczovL3d3dy5pcWl5aS5jb20nICsgeWtkYXRhOwoJCX0gZWxzZSBpZiAodHh1cmwgPT0gJy8vbS52LnFxLmNvbScpIHsKCQkJdmFyIHZpZCA9IGdldFBhcmFtKGRhdGF1cmwyLCAidmlkIik7CgkJCXZhciBjaWQgPSBnZXRQYXJhbShkYXRhdXJsMiwgImNpZCIpOwoJCQl2YXIgdHhkYXRhMiA9IGRhdGF1cmwyLnNwbGl0KCI/Iik7CgkJCXZhciBzdHIgPSAicGxheS5odG1sIjsKCQkJaWYgKHR4ZGF0YTJbMF0uc2xpY2UodHhkYXRhMlswXS5sZW5ndGggLSBzdHIubGVuZ3RoKSA9PSBzdHIpIHsKCQkJCWlmIChjaWQubGVuZ3RoID4gMSkgewoJCQkJCWRhdGF1cmwyID0gImh0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8iICsgY2lkICsgIi5odG1sIjsKCQkJCQlyZXR1cm4gZGF0YXVybDI7CgkJCQl9IGVsc2UgaWYgKHZpZC5sZW5ndGggPT0gMTEpIHsKCQkJCQlyZXR1cm4gImh0dHBzOi8vdi5xcS5jb20veC9wYWdlLyIgKyB2aWQgKyAiLmh0bWwiOwoJCQkJfQoJCQl9CgkJCWNpZCA9IHR4ZGF0YTJbMF0uc2xpY2UoIC0gMjAsIC01KTsKCQkJaWYgKHZpZC5sZW5ndGggPT0gMTEpIHsKCQkJCWRhdGF1cmwyID0gJ2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nICsgY2lkICsgJy8nICsgdmlkICsgJy5odG1sJzsKCQkJfSBlbHNlIHsKCQkJCWRhdGF1cmwyID0gJ2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nICsgY2lkICsgJy5odG1sJzsKCQkJfQoJCX0gZWxzZSBpZiAoeWt1cmwgPT0gJy8vbS5sZS5jb20vdnAnKSB7CgkJCXZhciBsZXVybGMgPSBkYXRhdXJsMi5zcGxpdCgiXyIpOwoJCQl2YXIgbGV1cmwgPSBsZXVybGNbMV07CgkJCWRhdGF1cmwyID0gJ2h0dHA6Ly93d3cubGUuY29tL3B0di92cGxheS8nICsgbGV1cmw7CgkJfQoJCXJldHVybiBkYXRhdXJsMjsKCX0KCWZ1bmN0aW9uIGdldFBhcmFtKGRhdGF1cmwyLCBuYW1lKSB7CgkJcmV0dXJuIGRhdGF1cmwyLm1hdGNoKG5ldyBSZWdFeHAoJ1s/Jl0nICsgbmFtZSArICc9KFtePyZdKyknLCAnaScpKSA/IGRlY29kZVVSSUNvbXBvbmVudChSZWdFeHAuJDEpIDogJyc7Cgl9CglmdW5jdGlvbiBsb2FkVmlwKHVybCkgewoJCXZhciBteUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteUJ0bjIwMTkiKTsKCQl2YXIgbXl1bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteXVsMjAxOSIpOwoJCWlmIChteXVsLnN0eWxlLmRpc3BsYXkgPT0gIm5vbmUiKSB7CgkJCW15dWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCW15QnRuLmlubmVySFRNTCA9ICLinpUiOwoJCQlteUJ0bi5zdHlsZS50cmFuc2Zvcm0gPSAicm90YXRlWig0NWRlZykiOwoJCX0gZWxzZSB7CgkJCW15dWwuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJbXlCdG4uaW5uZXJIVE1MID0gIuKYhiI7CgkJCW15QnRuLnN0eWxlLnRyYW5zZm9ybSA9ICJyb3RhdGVaKDBkZWcpIjsKCQl9Cgl9Cn0pKCk7Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICAgICAgIOaegemAn+ino+aekAovLyBAbmFtZXNwYWNlICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3FpdXN1bnNoaW5lL21vdmllbm93Ci8vIEB2ZXJzaW9uICAgICAgICAgICAxLjEuMAovLyBAaWNvbiAgICAgICAgICAgICAgaHR0cHM6Ly93d3cuYmFpZHUuY29tL2Zhdmljb24uaWNvCi8vIEBkZXNjcmlwdGlvbiAgICAgICBWSVDmjqXlj6Pop6PmnpAKLy8gQGF1dGhvciAgICAgICAgICAgIOS4gOWPtumjmOmbtgovLyBAbGljZW5zZSAgICAgICAgICAgTUlUCi8vIEBzdXBwb3J0VVJMICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcWl1c3Vuc2hpbmUvbW92aWVub3cKLy8gQG1hdGNoICAgICAgICAgICAgICoubGUuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICouaXFpeWkuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoueW91a3UuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoubGV0di5jb20vKgovLyBAbWF0Y2ggICAgICAgICAgICAgKnYucXEuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoudHVkb3UuY29tLyoKLy8gQG1hdGNoICAgICAgICAgICAgICoubWd0di5jb20vKgovLyBAbWF0Y2ggICAgICAgICAgICAgKi5zb2h1LmNvbS8qCi8vIEBydW4tYXQgICAgICAgICAgICBkb2N1bWVudC1pZGxlCi8vIEBncmFudCAgICAgICAgICAgICB1bnNhZmVXaW5kb3cKLy8gPT0vVXNlclNjcmlwdD09CihmdW5jdGlvbigpIHsKICAgIHZhciBhcGlzID0gWwogICAgeyJuYW1lIjogIjg55YWN6LS56Kej5p6QIiwidXJsIjoiaHR0cDovL3d3dy5rYTYxYi5jbi9qeC5waHA/dXJsPSJ9LAogICAgeyJuYW1lIjogIuiKkuaenOiTneWFieino+aekCIsICJ1cmwiOiAiaHR0cDovL3d3dy5ndWFuZGlhbnpoaWt1LmNvbS92L3MvP3VybD0ifSwKICAgIHsibmFtZSI6ICLmmbrog73op6PmnpAiLCAidXJsIjogImh0dHBzOi8vYXBpLnNtcTEuY29tLz91cmw9In0sCiAgICB7Im5hbWUiOiAi5aSf5Lmw6Kej5p6QIiwgInVybCI6ICJodHRwOi8vangudmlwc2hhcmVzLnh5ei9pbmRleDEucGhwP3VybD0ifSwKICAgIHsibmFtZSI6ICLmnoHpgJ/op6PmnpAiLCAidXJsIjogImh0dHA6Ly9qeC5penR5eS5jb20vc3ZpcC8/dXJsPSJ9LAogICAgeyJuYW1lIjogIjE3S+ino+aekCIsICJ1cmwiOiAiaHR0cDovLzE3a3l1bi5jb20vYXBpLnBocD91cmw9In0sCiAgICB7Im5hbWUiOiAi5bCP55m95YWU6Kej5p6QIiwgInVybCI6ICJodHRwczovL3ZpcC5ibGppZXguY29tLz92PSJ9LAogICAgeyJuYW1lIjogIuS8mOmFt+S4k+WxniIsICJ1cmwiOiAiaHR0cDovL3AucDQwLnRvcC8/dj0ifSwKICAgIHsibmFtZSI6ICLosarljY7op6PmnpAiLCAidXJsIjogImh0dHA6Ly9hcGkueHlpbmd5dS5jb20vP3VybD0ifSwKICAgIHsibmFtZSI6ICJBVOino+aekCIsICJ1cmwiOiAiaHR0cDovL2F0NTIwLmNuL2p4Lz91cmw9aHR0cDovL3d3dy5jbXlzLnR2Lz91cmw9In0sCiAgICB7Im5hbWUiOiAi56We6ams6Kej5p6QIiwgInVybCI6ICJodHRwOi8vYmVhYWNjLmNvbS9hcGkucGhwP3VybD0ifSwKICAgIHsibmFtZSI6ICLnjKvnjKvniLHop6PmnpAiLCAidXJsIjogImh0dHA6Ly9iYWlkdS5jb20ubWlhb21pYW9haS5jbi92aXAvaW5kZXgucGhwP3VybD0ifSwKICAgIHsibmFtZSI6ICLntKvkupHop6PmnpAiLCAidXJsIjogImh0dHA6Ly9hcGkuc21xMS5jb20vP3VybD0ifSwKICAgIHsibmFtZSI6ICLlkL7niLHop6PmnpAiLCAidXJsIjogImh0dHBzOi8vd3d3LmZhbnRlZS5uZXQvZmFudGVlLz91cmw9In0sCiAgICB7Im5hbWUiOiAi57Sr6ZmM6Kej5p6QIiwgInVybCI6ICJodHRwOi8vanguNTk4MTEwLmNvbS96dWlkYS5waHA/dXJsPSJ9LAogICAgeyJuYW1lIjogIuWIneW/g+ino+aekCIsICJ1cmwiOiAiaHR0cDovL2p4LmJ3Y3h5LmNvbS8/dj0ifSwKICAgIHsibmFtZSI6ICLnp5HmioDop6PmnpAiLCAidXJsIjogImh0dHA6Ly9rYTYxYi5jbi9qeC5waHA/dXJsPSJ9LAogICAgeyJuYW1lIjogIjE5MDflvbHop4YiLCAidXJsIjogImh0dHBzOi8vejEubTE5MDcuY24vP2p4PSJ9LAogICAgeyJuYW1lIjogIua4hemjjuaYjuaciCIsICJ1cmwiOiAiaHR0cDovL2ZhdGVnLnh5ei8/dXJsPSJ9LAoJeyJuYW1lIjogIuS4h+iDvSIsICJ1cmwiOiAiaHR0cDovL2FwaS5sa2Rta2ouY29tL2p4L2p4MDAvaW5kZXgucGhwP3VybD0ifSwKCXsibmFtZSI6ICJ2aXDlpJrnur/ot68iLCAidXJsIjogImh0dHA6Ly9hcGkubGVkYm9rZS5jb20vdmlwLz91cmw9In0sCiAgICB7Im5hbWUiOiAiNjE4RyIsICJ1cmwiOiAiaHR0cHM6Ly9qeC42MThnLmNvbS8/dXJsPSJ9XTsKICAgIGxvYWRWaXBGdW5jKCk7CgoJZnVuY3Rpb24gbG9hZFZpcEZ1bmMoKXsKCSAgICB2YXIgZG9tYWluID0gbG9jYXRpb24uaHJlZi5zcGxpdCgiPyIpOwoJICAgIHZhciB5ZSA9ICI8c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O3dpZHRoOjV2dztoZWlnaHQ6NXZ3O2ZvbnQtc2l6ZToyLjV2dztjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjV2dzt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjEwMCU7Ym94LXNoYWRvdzowcHggMHB4IDNweCAjYTlhOWE5O2JhY2tncm91bmQ6IzAwNzhGRjttYXJnaW46My43OHZ3IDIuMXZ3Oyc+4piFPC9zcGFuPiI7CgkgICAgaWYgKGRvbWFpblswXS5tYXRjaCgiLmlxaXlpLmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLnlvdWt1LmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLmxlLmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLmxldHYuY29tIikgfHwgZG9tYWluWzBdLm1hdGNoKCJ2LnFxLmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLnR1ZG91LmNvbSIpIHx8IGRvbWFpblswXS5tYXRjaCgiLm1ndHYuY29tIikgfHwgZG9tYWluWzBdLm1hdGNoKCIuc29odS5jb20iKSkgewogICAgCQl2YXIgbXlCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCSAgICAJbXlCdG4uaWQgPSAibXlCdG4yMDE5IjsKICAgIAkJbXlCdG4uaW5uZXJIVE1MID0gIuKYhiI7CiAgICAJCW15QnRuLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAid2lkdGg6MTJ2dztoZWlnaHQ6MTJ2dztwb3NpdGlvbjpmaXhlZDtib3R0b206MjV2aDtyaWdodDoxMHZ3O3otaW5kZXg6MTAwMDAwO2JvcmRlci1yYWRpdXM6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxMnZ3O2JveC1zaGFkb3c6MHB4IDFweCAzcHggcmdiYSgwLDAsMCwwLjMpO2ZvbnQtc2l6ZTo0LjV2dztiYWNrZ3JvdW5kOiNmYWZhZmE7Iik7CiAgICAJCW15QnRuLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKCQkJICAgIGxvYWRWaXAobG9jYXRpb24uaHJlZik7CgkJICAgIH07CgkgICAgCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobXlCdG4pOwogICAgCQl2YXIgbXl1bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7CgkJICAgIG15dWwuaWQgPSAibXl1bDIwMTkiOwoJICAgIAlteXVsLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTpub25lO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjBweCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMyk7bWFyZ2luOjA7cGFkZGluZzowIDQuMnZ3O3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTozNXZoO3JpZ2h0OjEydnc7ei1pbmRleDo5OTk5OTtoZWlnaHQ6NjB2aDtvdmVyZmxvdzpzY3JvbGw7Ym9yZGVyLXJhZGl1czoxLjI2dnc7Iik7CgkgICAgCWZvciAodmFyIGkgPSAwOyBpIDwgYXBpcy5sZW5ndGg7IGkrKykgewoJICAgIAkJdmFyIG15bGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwoJICAgIAkJdmFyIHRoYXQgPSB0aGlzOwogICAgCQkJbXlsaS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgIm1hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO2xpc3Qtc3R5bGU6bm9uZTtmb250LXNpemU6NC4ydnc7d2lkdGg6MzMuNnZ3O3RleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxMi42dnc7bGV0dGVyLXNwYWNpbmc6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjBmMGYwO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7Iik7CiAgICAJCQkoZnVuY3Rpb24obnVtKSB7CgkJCSAgICAJbXlsaS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CgkJCSAgICAJCXdpbmRvdy5vcGVuKGFwaXNbbnVtXS51cmwgKyB0cnlHZXRSZWFsVXJsKGxvY2F0aW9uLmhyZWYpLCAnX2JsYW5rJyk7CgkJICAgIAkJfTsKCQkgICAgCQlteWxpLm9udG91Y2hzdGFydCA9IGZ1bmN0aW9uKCkgewoJCQkJICAgIAl0aGlzLnN0eWxlLmNzc1RleHQgKz0gImNvbG9yOnllbGxvdztiYWNrZ3JvdW5kOiMzNzM3Mzc7Ym9yZGVyLXJhZGl1czoxLjI2dnc7IjsKCQkJICAgIAl9OwoJCQkgICAgCW15bGkub250b3VjaGVuZCA9IGZ1bmN0aW9uKCkgewoJCQkJICAgIAl0aGlzLnN0eWxlLmNzc1RleHQgKz0gImNvbG9yOmJsYWNrO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowOyI7CgkJCSAgICAJfTsKCQkgICAgCX0pKGkpOwoJCSAgICAJbXlsaS5pbm5lckhUTUwgPSBhcGlzW2ldLm5hbWU7CgkJICAgIAlteXVsLmFwcGVuZENoaWxkKG15bGkpOwoJICAgIAl9CgkgICAgCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobXl1bCk7CiAgICAJCS8v6K6p6KeG6aKR5Yy65Z+f5pi+56S65paH5a2X77yM55u05o6l6Kej5p6QCgkJICAgIHNob3dWaXBUaXRsZShsb2NhdGlvbi5ocmVmKTsKCSAgICB9Cgl9CglmdW5jdGlvbiBzaG93VmlwVGl0bGUodXJsKSB7CgkJdmFyIHRpdGxlU3RyID0gIuinhumikei/nuaOpeaIkOWKn++8geeCueWHu+mAieaLqeino+aekOaOpeWPoyI7CgkJaWYgKHVybC5pbmRleE9mKCJpcWl5aS5jb20iKSAhPSAtMSkgewoJCQl2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19pZicpOwoJCQlpZiAoaWZyYW1lKSB7CgkJCQl3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CgkJCQlyZXR1cm47CgkJCX0KCQkJdmFyIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtLXZpZGVvLXBsYXllci13cmFwJylbMF07CgkJCWlmICh0eXBlb2YoaSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWkuc3R5bGUuaGVpZ2h0ID0gJzIyMHB4JzsKCQkJCWkuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQlpLnN0eWxlLmxpbmVIZWlnaHQgPSAnMTUnOwoJCQkJaS5zdHlsZS5wb3NpdGlvbiA9ICdzdGF0aWMnOwoJCQkJaS5zdHlsZS5wYWRkaW5nVG9wID0gJzAlJzsKCQkJCWkuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWkuc3R5bGUudGV4dEFsaWduID0gJ2NlbnRlcic7CgkJCQlpLmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJaS5hZGRFdmVudExpc3RlbmVyKCd0YXAnLAoJCQkJZnVuY3Rpb24oKSB7CgkJCQkJbG9hZFZpcCh3aW5kb3cubG9jYXRpb24uaHJlZik7CgkJCQl9KTsKCQkJfQoJCX0gZWxzZSBpZiAodXJsLmluZGV4T2YoInYucXEuY29tIikgIT0gLTEpIHsKCQkJdmFyIGcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzaXRlX3BsYXllcicpWzBdOwoJCQlpZiAodHlwZW9mKGcpICE9ICd1bmRlZmluZWQnKSB7CgkJCQlnLnN0eWxlLmhlaWdodCA9ICcyMTBweCc7CgkJCQlnLnN0eWxlLmJhY2tncm91bmQgPSAnIzAwMDAwMCc7CgkJCQlnLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJZy5zdHlsZS5jb2xvciA9ICcjZmZmJzsKCQkJCWcuc3R5bGUubGluZUhlaWdodCA9ICcxNCc7CgkJCQlnLmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJZy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywKCQkJCWZ1bmN0aW9uKGUpIHsKCQkJCQlsb2FkVmlwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKCQkJCX0pOwoJCQl9CgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigibS5sZS5jb20iKSAhPSAtMSkgewoJCQl2YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3BsYXlCJylbMF07CgkJCWlmICh0eXBlb2YoZikgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWYuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWYuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQlmLnN0eWxlLndpZHRoID0gJzEwMCUnOwoJCQkJZi5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsKCQkJCWYuc3R5bGUubGluZUhlaWdodCA9ICcxNCc7CgkJCQlmLnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJZi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywKCQkJCWZ1bmN0aW9uKGUpIHsKCQkJCQlsb2FkVmlwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKCQkJCX0pOwoJCQl9CgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigieW91a3UuY29tIikgIT0gLTEpIHsKCQkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxheWVyQm94Jyk7CgkJCWlmICh0eXBlb2YoZSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWUuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWUuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQllLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJZS5zdHlsZS5saW5lSGVpZ2h0ID0gJzE1JzsKCQkJCWUuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQllLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0KCQkJCgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigieW91a3UuY29tIikgIT0gLTEpIHsKCQkJdmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxheWVyQm94Jyk7CgkJCWlmICh0eXBlb2YoZCkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWQuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWQuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQlkLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJZC5zdHlsZS5saW5lSGVpZ2h0ID0gJzE1JzsKCQkJCWQuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQlkLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0KCQl9IGVsc2UgaWYgKHVybC5pbmRleE9mKCJtZ3R2LmNvbSIpICE9IC0xKSB7CgkJCXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndmlkZW8tYXJlYScpWzBdOwoJCQlpZiAodHlwZW9mKGMpICE9ICd1bmRlZmluZWQnKSB7CgkJCQljLnN0eWxlLmJhY2tncm91bmQgPSAnIzAwMDAwMCc7CgkJCQljLnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJYy5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsKCQkJCWMuc3R5bGUubGluZUhlaWdodCA9ICcxNic7CgkJCQljLmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJYy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsCgkJCQlmdW5jdGlvbihlKSB7CgkJCQkJbG9hZFZpcCh3aW5kb3cubG9jYXRpb24uaHJlZik7CgkJCQl9KTsKCQkJfQoJCX0gZWxzZSBpZiAodXJsLmluZGV4T2YoInNvaHUuY29tIikgIT0gLTEpIHsKCQkJdmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd4LXBsYXllcicpWzBdOwoJCQl2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AtcG9zdGVyJyk7CgkJCWlmICh0eXBlb2YoYikgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWIuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWIuc3R5bGUuY29sb3IgPSAnI2ZmZic7CgkJCQliLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInOwoJCQkJYi5zdHlsZS5saW5lSGVpZ2h0ID0gJzEzJzsKCQkJCWIuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQliLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0gZWxzZSBpZiAodHlwZW9mKHgpICE9ICd1bmRlZmluZWQnKSB7CgkJCQl4LnN0eWxlLmJhY2tncm91bmQgPSAnIzAwMDAwMCc7CgkJCQl4LnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJeC5zdHlsZS5oZWlnaHQgPSAnMjEwcHgnOwoJCQkJeC5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsKCQkJCXguc3R5bGUubGluZUhlaWdodCA9ICcxMyc7CgkJCQl4LmlubmVySFRNTCA9ICc8ZGl2PicgKyB0aXRsZVN0ciArICc8L2Rpdj4nOwoJCQkJeC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsCgkJCQlmdW5jdGlvbigpIHsKCQkJCQlsb2FkVmlwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKCQkJCX0pOwoJCQl9CgkJfSBlbHNlIGlmICh1cmwuaW5kZXhPZigiYmFvZmVuZy5jb20iKSAhPSAtMSkgewoJCQl2YXIgbXlWaWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOwoJCQlteVZpZGVvLnBhdXNlKCk7CgkJCXZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvcGxheWVyJyk7CgkJCWlmICh0eXBlb2YoYSkgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCWEuc3R5bGUuYmFja2dyb3VuZCA9ICcjMDAwMDAwJzsKCQkJCWEuc3R5bGUudGV4dEFsaWduID0gJ2NlbnRlcic7CgkJCQlhLnN0eWxlLmNvbG9yID0gJyNmZmYnOwoJCQkJYS5zdHlsZS5saW5lSGVpZ2h0ID0gJzE3JzsKCQkJCWEuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRpdGxlU3RyICsgJzwvZGl2Pic7CgkJCQlhLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLAoJCQkJZnVuY3Rpb24oZSkgewoJCQkJCWxvYWRWaXAod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCQkJfSk7CgkJCX0KCQl9Cgl9CglmdW5jdGlvbiB0cnlHZXRSZWFsVXJsKHVybCkgewoJCXZhciByZWFsVXJsID0gdXJsOwoJCXRyeSB7CgkJCXJlYWxVcmwgPSBnZXRSZWFsVXJsKHVybCk7CgkJfSBjYXRjaChlcnIpIHsKCQkJY29uc29sZS5sb2coZXJyKTsKCQl9CgkJcmV0dXJuIHJlYWxVcmw7Cgl9CglmdW5jdGlvbiBnZXRZb3VrdVJlYWxVcmwodXJsKSB7CgkJdmFyIGxpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaG90LXJvdy1ib3R0b20nKVswXS5jaGlsZHJlblswXTsKCQl2YXIgZGF0YSA9IGxpLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXJhbScpOwoJCXZhciBzID0gZGF0YS5zcGxpdCgnc3ZpZD0nKTsKCQlpZiAocy5sZW5ndGggPiAxKSB7CgkJCXZhciBzdmlkID0gc1sxXS5zcGxpdCgnJicpWzBdOwoJCQlyZXR1cm4gJ2h0dHBzOi8vdi55b3VrdS5jb20vdl9zaG93L2lkXycgKyBzdmlkICsgJy5odG1sJzsKCQl9CgkJcmV0dXJuIHVybDsKCX0KCWZ1bmN0aW9uIGdldFJlYWxVcmwodXJsKSB7CgkJdmFyIGRhdGF1cmwyID0gdXJsOwoJCXZhciB0eHVybGMgPSBkYXRhdXJsMi5zcGxpdCgiOiIpOwoJCXZhciB0eHVybCA9IHR4dXJsY1sxXS5zbGljZSgwLCAxMik7CgkJdmFyIHlrdXJsID0gdHh1cmxjWzFdLnNsaWNlKDAsIDEzKTsKCQl2YXIgeWtkYXRhID0gdHh1cmxjWzFdLnNsaWNlKDEzKTsKCQl2YXIgZnVudXJsID0gdHh1cmxjWzFdLnNsaWNlKDAsIDExKTsKCQlpZiAoeWt1cmwgPT0gJy8vbS55b3VrdS5jb20nKSB7CgkJCXJldHVybiBnZXRZb3VrdVJlYWxVcmwodXJsKTsKCQl9CgkJaWYgKHlrdXJsID09ICcvL20ueW91a3UuY29tJykgewoJCQl2YXIgdHh1cmxjMCA9IGRhdGF1cmwyLnNwbGl0KCI6Iik7CgkJCXZhciB5a3VybDAgPSB0eHVybGNbMV0uc2xpY2UoMCwgMTMpOwoJCQl2YXIgeWtkYXRhMCA9IHR4dXJsY1sxXS5zbGljZSgxMyk7CgkJCWRhdGF1cmwyID0gJ2h0dHA6Ly93d3cueW91a3UuY29tJyArIHlrZGF0YTsKCQl9IGVsc2UgaWYgKHlrdXJsID09ICcvL20uaXFpeWkuY29tJykgewoJCQl2YXIgdHh1cmwwID0gZGF0YXVybDIuc3BsaXQoIjoiKTsKCQkJdmFyIHlrdXJsMDAgPSB0eHVybGNbMV0uc2xpY2UoMCwgMTMpOwoJCQl2YXIgeWtkYXRhMDAgPSB0eHVybGNbMV0uc2xpY2UoMTMpOwoJCQlkYXRhdXJsMiA9ICdodHRwczovL3d3dy5pcWl5aS5jb20nICsgeWtkYXRhOwoJCX0gZWxzZSBpZiAodHh1cmwgPT0gJy8vbS52LnFxLmNvbScpIHsKCQkJdmFyIHZpZCA9IGdldFBhcmFtKGRhdGF1cmwyLCAidmlkIik7CgkJCXZhciBjaWQgPSBnZXRQYXJhbShkYXRhdXJsMiwgImNpZCIpOwoJCQl2YXIgdHhkYXRhMiA9IGRhdGF1cmwyLnNwbGl0KCI/Iik7CgkJCXZhciBzdHIgPSAicGxheS5odG1sIjsKCQkJaWYgKHR4ZGF0YTJbMF0uc2xpY2UodHhkYXRhMlswXS5sZW5ndGggLSBzdHIubGVuZ3RoKSA9PSBzdHIpIHsKCQkJCWlmIChjaWQubGVuZ3RoID4gMSkgewoJCQkJCWRhdGF1cmwyID0gImh0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8iICsgY2lkICsgIi5odG1sIjsKCQkJCQlyZXR1cm4gZGF0YXVybDI7CgkJCQl9IGVsc2UgaWYgKHZpZC5sZW5ndGggPT0gMTEpIHsKCQkJCQlyZXR1cm4gImh0dHBzOi8vdi5xcS5jb20veC9wYWdlLyIgKyB2aWQgKyAiLmh0bWwiOwoJCQkJfQoJCQl9CgkJCWNpZCA9IHR4ZGF0YTJbMF0uc2xpY2UoIC0gMjAsIC01KTsKCQkJaWYgKHZpZC5sZW5ndGggPT0gMTEpIHsKCQkJCWRhdGF1cmwyID0gJ2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nICsgY2lkICsgJy8nICsgdmlkICsgJy5odG1sJzsKCQkJfSBlbHNlIHsKCQkJCWRhdGF1cmwyID0gJ2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nICsgY2lkICsgJy5odG1sJzsKCQkJfQoJCX0gZWxzZSBpZiAoeWt1cmwgPT0gJy8vbS5sZS5jb20vdnAnKSB7CgkJCXZhciBsZXVybGMgPSBkYXRhdXJsMi5zcGxpdCgiXyIpOwoJCQl2YXIgbGV1cmwgPSBsZXVybGNbMV07CgkJCWRhdGF1cmwyID0gJ2h0dHA6Ly93d3cubGUuY29tL3B0di92cGxheS8nICsgbGV1cmw7CgkJfQoJCXJldHVybiBkYXRhdXJsMjsKCX0KCWZ1bmN0aW9uIGdldFBhcmFtKGRhdGF1cmwyLCBuYW1lKSB7CgkJcmV0dXJuIGRhdGF1cmwyLm1hdGNoKG5ldyBSZWdFeHAoJ1s/Jl0nICsgbmFtZSArICc9KFtePyZdKyknLCAnaScpKSA/IGRlY29kZVVSSUNvbXBvbmVudChSZWdFeHAuJDEpIDogJyc7Cgl9CglmdW5jdGlvbiBsb2FkVmlwKHVybCkgewoJCXZhciBteUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteUJ0bjIwMTkiKTsKCQl2YXIgbXl1bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteXVsMjAxOSIpOwoJCWlmIChteXVsLnN0eWxlLmRpc3BsYXkgPT0gIm5vbmUiKSB7CgkJCW15dWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCW15QnRuLmlubmVySFRNTCA9ICLinpUiOwoJCQlteUJ0bi5zdHlsZS50cmFuc2Zvcm0gPSAicm90YXRlWig0NWRlZykiOwoJCX0gZWxzZSB7CgkJCW15dWwuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJbXlCdG4uaW5uZXJIVE1MID0gIuKYhiI7CgkJCW15QnRuLnN0eWxlLnRyYW5zZm9ybSA9ICJyb3RhdGVaKDBkZWcpIjsKCQl9Cgl9Cn0pKCk7
Add Comment
Please, Sign In to add comment