3NCUbh7cABzRyEMEXAcGCAozSuxvUTf75ms · data · bootstrap.bundle.min.js_3
{
    "bootstrap.bundle.min.js_3": "base64:KCIoXnxcXHMpIit6bisiXFxTKyIsImciKSxHbj1sKHt9LHFuLkRlZmF1bHQse3BsYWNlbWVudDoicmlnaHQiLHRyaWdnZXI6ImNsaWNrIixjb250ZW50OiIiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJwb3BvdmVyIiByb2xlPSJ0b29sdGlwIj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PGgzIGNsYXNzPSJwb3BvdmVyLWhlYWRlciI+PC9oMz48ZGl2IGNsYXNzPSJwb3BvdmVyLWJvZHkiPjwvZGl2PjwvZGl2Pid9KSwkbj1sKHt9LHFuLkRlZmF1bHRUeXBlLHtjb250ZW50OiIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pIn0pLEpuPSJmYWRlIixabj0ic2hvdyIsdGk9Ii5wb3BvdmVyLWhlYWRlciIsZWk9Ii5wb3BvdmVyLWJvZHkiLG5pPXtISURFOiJoaWRlIitWbixISURERU46ImhpZGRlbiIrVm4sU0hPVzoic2hvdyIrVm4sU0hPV046InNob3duIitWbixJTlNFUlRFRDoiaW5zZXJ0ZWQiK1ZuLENMSUNLOiJjbGljayIrVm4sRk9DVVNJTjoiZm9jdXNpbiIrVm4sRk9DVVNPVVQ6ImZvY3Vzb3V0IitWbixNT1VTRUVOVEVSOiJtb3VzZWVudGVyIitWbixNT1VTRUxFQVZFOiJtb3VzZWxlYXZlIitWbn0saWk9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciBvPWkucHJvdG90eXBlO3JldHVybiBvLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LG8uYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3AodGhpcy5nZXRUaXBFbGVtZW50KCkpLmFkZENsYXNzKHpuKyItIit0KX0sby5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxwKHRoaXMuY29uZmlnLnRlbXBsYXRlKVswXSx0aGlzLnRpcH0sby5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQodGkpLHRoaXMuZ2V0VGl0bGUoKSk7dmFyIGU9dGhpcy5fZ2V0Q29udGVudCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lLmNhbGwodGhpcy5lbGVtZW50KSksdGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoZWkpLGUpLHQucmVtb3ZlQ2xhc3MoSm4rIiAiK1puKX0sby5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbnRlbnQiKXx8dGhpcy5jb25maWcuY29udGVudH0sby5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PXAodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKCJjbGFzcyIpLm1hdGNoKFhuKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oIiIpKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1wKHRoaXMpLmRhdGEoUW4pLGU9Im9iamVjdCI9PXR5cGVvZiBuP246bnVsbDtpZigodHx8IS9kaXNwb3NlfGhpZGUvLnRlc3QobikpJiYodHx8KHQ9bmV3IGkodGhpcyxlKSxwKHRoaXMpLmRhdGEoUW4sdCkpLCJzdHJpbmciPT10eXBlb2Ygbikpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO3Rbbl0oKX19KX0scyhpLG51bGwsW3trZXk6IlZFUlNJT04iLGdldDpmdW5jdGlvbigpe3JldHVybiI0LjMuMSJ9fSx7a2V5OiJEZWZhdWx0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR259fSx7a2V5OiJOQU1FIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gS259fSx7a2V5OiJEQVRBX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFFufX0se2tleToiRXZlbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBuaX19LHtrZXk6IkVWRU5UX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZufX0se2tleToiRGVmYXVsdFR5cGUiLGdldDpmdW5jdGlvbigpe3JldHVybiAkbn19XSksaX0ocW4pO3AuZm5bS25dPWlpLl9qUXVlcnlJbnRlcmZhY2UscC5mbltLbl0uQ29uc3RydWN0b3I9aWkscC5mbltLbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBwLmZuW0tuXT1ZbixpaS5falF1ZXJ5SW50ZXJmYWNlfTt2YXIgb2k9InNjcm9sbHNweSIscmk9ImJzLnNjcm9sbHNweSIsc2k9Ii4iK3JpLGFpPXAuZm5bb2ldLGxpPXtvZmZzZXQ6MTAsbWV0aG9kOiJhdXRvIix0YXJnZXQ6IiJ9LGNpPXtvZmZzZXQ6Im51bWJlciIsbWV0aG9kOiJzdHJpbmciLHRhcmdldDoiKHN0cmluZ3xlbGVtZW50KSJ9LGhpPXtBQ1RJVkFURToiYWN0aXZhdGUiK3NpLFNDUk9MTDoic2Nyb2xsIitzaSxMT0FEX0RBVEFfQVBJOiJsb2FkIitzaSsiLmRhdGEtYXBpIn0sdWk9ImRyb3Bkb3duLWl0ZW0iLGZpPSJhY3RpdmUiLGRpPSdbZGF0YS1zcHk9InNjcm9sbCJdJyxwaT0iLm5hdiwgLmxpc3QtZ3JvdXAiLG1pPSIubmF2LWxpbmsiLGdpPSIubmF2LWl0ZW0iLF9pPSIubGlzdC1ncm91cC1pdGVtIix2aT0iLmRyb3Bkb3duIix5aT0iLmRyb3Bkb3duLWl0ZW0iLEVpPSIuZHJvcGRvd24tdG9nZ2xlIixiaT0ib2Zmc2V0Iix3aT0icG9zaXRpb24iLENpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZWxlbWVudD10LHRoaXMuX3Njcm9sbEVsZW1lbnQ9IkJPRFkiPT09dC50YWdOYW1lP3dpbmRvdzp0LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fc2VsZWN0b3I9dGhpcy5fY29uZmlnLnRhcmdldCsiICIrbWkrIiwiK3RoaXMuX2NvbmZpZy50YXJnZXQrIiAiK19pKyIsIit0aGlzLl9jb25maWcudGFyZ2V0KyIgIit5aSx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAscCh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihoaS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/Ymk6d2ksbz0iYXV0byI9PT10aGlzLl9jb25maWcubWV0aG9kP3Q6dGhpcy5fY29uZmlnLm1ldGhvZCxyPW89PT13aT90aGlzLl9nZXRTY3JvbGxUb3AoKTowO3RoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuX3NlbGVjdG9yKSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlLG49bS5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IobikpLGUpe3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaS53aWR0aHx8aS5oZWlnaHQpcmV0dXJuW3AoZSlbb10oKS50b3ArcixuXX1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9vZmZzZXRzLnB1c2godFswXSksZS5fdGFyZ2V0cy5wdXNoKHRbMV0pfSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3AucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHJpKSxwKHRoaXMuX3Njcm9sbEVsZW1lbnQpLm9mZihzaSksdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3Njcm9sbEVsZW1lbnQ9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9zZWxlY3Rvcj1udWxsLHRoaXMuX29mZnNldHM9bnVsbCx0aGlzLl90YXJnZXRzPW51bGwsdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtpZigic3RyaW5nIiE9dHlwZW9mKHQ9bCh7fSxsaSwib2JqZWN0Ij09dHlwZW9mIHQmJnQ/dDp7fSkpLnRhcmdldCl7dmFyIGU9cCh0LnRhcmdldCkuYXR0cigiaWQiKTtlfHwoZT1tLmdldFVJRChvaSkscCh0LnRhcmdldCkuYXR0cigiaWQiLGUpKSx0LnRhcmdldD0iIyIrZX1yZXR1cm4gbS50eXBlQ2hlY2tDb25maWcob2ksdCxjaSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciBvPXRoaXMuX29mZnNldHMubGVuZ3RoO28tLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbb10mJnQ+PXRoaXMuX29mZnNldHNbb10mJigidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMuX29mZnNldHNbbysxXXx8dDx0aGlzLl9vZmZzZXRzW28rMV0pJiZ0aGlzLl9hY3RpdmF0ZSh0aGlzLl90YXJnZXRzW29dKX19fSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbihlKXt0aGlzLl9hY3RpdmVUYXJnZXQ9ZSx0aGlzLl9jbGVhcigpO3ZhciB0PXRoaXMuX3NlbGVjdG9yLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KydbZGF0YS10YXJnZXQ9IicrZSsnIl0sJyt0KydbaHJlZj0iJytlKyciXSd9KSxuPXAoW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQuam9pbigiLCIpKSkpO24uaGFzQ2xhc3ModWkpPyhuLmNsb3Nlc3QodmkpLmZpbmQoRWkpLmFkZENsYXNzKGZpKSxuLmFkZENsYXNzKGZpKSk6KG4uYWRkQ2xhc3MoZmkpLG4ucGFyZW50cyhwaSkucHJldihtaSsiLCAiK19pKS5hZGRDbGFzcyhmaSksbi5wYXJlbnRzKHBpKS5wcmV2KGdpKS5jaGlsZHJlbihtaSkuYWRkQ2xhc3MoZmkpKSxwKHRoaXMuX3Njcm9sbEVsZW1lbnQpLnRyaWdnZXIoaGkuQUNUSVZBVEUse3JlbGF0ZWRUYXJnZXQ6ZX0pfSx0Ll9jbGVhcj1mdW5jdGlvbigpe1tdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLl9zZWxlY3RvcikpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoZmkpfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKGZpKX0pfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXAodGhpcykuZGF0YShyaSk7aWYodHx8KHQ9bmV3IG4odGhpcywib2JqZWN0Ij09dHlwZW9mIGUmJmUpLHAodGhpcykuZGF0YShyaSx0KSksInN0cmluZyI9PXR5cGVvZiBlKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkICInK2UrJyInKTt0W2VdKCl9fSl9LHMobixudWxsLFt7a2V5OiJWRVJTSU9OIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iNC4zLjEifX0se2tleToiRGVmYXVsdCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxpfX1dKSxufSgpO3Aod2luZG93KS5vbihoaS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkaSkpLGU9dC5sZW5ndGg7ZS0tOyl7dmFyIG49cCh0W2VdKTtDaS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSkscC5mbltvaV09Q2kuX2pRdWVyeUludGVyZmFjZSxwLmZuW29pXS5Db25zdHJ1Y3Rvcj1DaSxwLmZuW29pXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHAuZm5bb2ldPWFpLENpLl9qUXVlcnlJbnRlcmZhY2V9O3ZhciBUaT0iYnMudGFiIixTaT0iLiIrVGksRGk9cC5mbi50YWIsSWk9e0hJREU6ImhpZGUiK1NpLEhJRERFTjoiaGlkZGVuIitTaSxTSE9XOiJzaG93IitTaSxTSE9XTjoic2hvd24iK1NpLENMSUNLX0RBVEFfQVBJOiJjbGljayIrU2krIi5kYXRhLWFwaSJ9LEFpPSJkcm9wZG93bi1tZW51IixPaT0iYWN0aXZlIixOaT0iZGlzYWJsZWQiLGtpPSJmYWRlIixMaT0ic2hvdyIseGk9Ii5kcm9wZG93biIsUGk9Ii5uYXYsIC5saXN0LWdyb3VwIixIaT0iLmFjdGl2ZSIsamk9Ij4gbGkgPiAuYWN0aXZlIixSaT0nW2RhdGEtdG9nZ2xlPSJ0YWIiXSwgW2RhdGEtdG9nZ2xlPSJwaWxsIl0sIFtkYXRhLXRvZ2dsZT0ibGlzdCJdJyxGaT0iLmRyb3Bkb3duLXRvZ2dsZSIsTWk9Ij4gLmRyb3Bkb3duLW1lbnUgLmFjdGl2ZSIsV2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZighKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnAodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoT2kpfHxwKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKE5pKSkpe3ZhciB0LGksZT1wKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoUGkpWzBdLG89bS5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciByPSJVTCI9PT1lLm5vZGVOYW1lfHwiT0wiPT09ZS5ub2RlTmFtZT9qaTpIaTtpPShpPXAubWFrZUFycmF5KHAoZSkuZmluZChyKSkpW2kubGVuZ3RoLTFdfXZhciBzPXAuRXZlbnQoSWkuSElERSx7cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSksYT1wLkV2ZW50KElpLlNIT1cse3JlbGF0ZWRUYXJnZXQ6aX0pO2lmKGkmJnAoaSkudHJpZ2dlcihzKSxwKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoYSksIWEuaXNEZWZhdWx0UHJldmVudGVkKCkmJiFzLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtvJiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG8pKSx0aGlzLl9hY3RpdmF0ZSh0aGlzLl9lbGVtZW50LGUpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIHQ9cC5FdmVudChJaS5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cC5FdmVudChJaS5TSE9XTix7cmVsYXRlZFRhcmdldDppfSk7cChpKS50cmlnZ2VyKHQpLHAobi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsVGkpLHRoaXMuX2VsZW1lbnQ9bnVsbH0sdC5fYWN0aXZhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMsbz0oIWV8fCJVTCIhPT1lLm5vZGVOYW1lJiYiT0wiIT09ZS5ub2RlTmFtZT9wKGUpLmNoaWxkcmVuKEhpKTpwKGUpLmZpbmQoamkpKVswXSxyPW4mJm8mJnAobykuaGFzQ2xhc3Moa2kpLHM9ZnVuY3Rpb24oKXtyZXR1cm4gaS5fdHJhbnNpdGlvbkNvbXBsZXRlKHQsbyxuKX07aWYobyYmcil7dmFyIGE9bS5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChvKTtwKG8pLnJlbW92ZUNsYXNzKExpKS5vbmUobS5UUkFOU0lUSU9OX0VORCxzKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIHMoKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtwKGUpLnJlbW92ZUNsYXNzKE9pKTt2YXIgaT1wKGUucGFyZW50Tm9kZSkuZmluZChNaSlbMF07aSYmcChpKS5yZW1vdmVDbGFzcyhPaSksInRhYiI9PT1lLmdldEF0dHJpYnV0ZSgicm9sZSIpJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsITEpfWlmKHAodCkuYWRkQ2xhc3MoT2kpLCJ0YWIiPT09dC5nZXRBdHRyaWJ1dGUoInJvbGUiKSYmdC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKSxtLnJlZmxvdyh0KSx0LmNsYXNzTGlzdC5jb250YWlucyhraSkmJnQuY2xhc3NMaXN0LmFkZChMaSksdC5wYXJlbnROb2RlJiZwKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoQWkpKXt2YXIgbz1wKHQpLmNsb3Nlc3QoeGkpWzBdO2lmKG8pe3ZhciByPVtdLnNsaWNlLmNhbGwoby5xdWVyeVNlbGVjdG9yQWxsKEZpKSk7cChyKS5hZGRDbGFzcyhPaSl9dC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCEwKX1uJiZuKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzKSxlPXQuZGF0YShUaSk7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKFRpLGUpKSwic3RyaW5nIj09dHlwZW9mIG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO2Vbbl0oKX19KX0scyhpLG51bGwsW3trZXk6IlZFUlNJT04iLGdldDpmdW5jdGlvbigpe3JldHVybiI0LjMuMSJ9fV0pLGl9KCk7cChkb2N1bWVudCkub24oSWkuQ0xJQ0tfREFUQV9BUEksUmksZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLFdpLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChwKHRoaXMpLCJzaG93Iil9KSxwLmZuLnRhYj1XaS5falF1ZXJ5SW50ZXJmYWNlLHAuZm4udGFiLkNvbnN0cnVjdG9yPVdpLHAuZm4udGFiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcC5mbi50YWI9RGksV2kuX2pRdWVyeUludGVyZmFjZX07dmFyIFVpPSJ0b2FzdCIsQmk9ImJzLnRvYXN0IixxaT0iLiIrQmksS2k9cC5mbltVaV0sUWk9e0NMSUNLX0RJU01JU1M6ImNsaWNrLmRpc21pc3MiK3FpLEhJREU6ImhpZGUiK3FpLEhJRERFTjoiaGlkZGVuIitxaSxTSE9XOiJzaG93IitxaSxTSE9XTjoic2hvd24iK3FpfSxWaT0iZmFkZSIsWWk9ImhpZGUiLHppPSJzaG93IixYaT0ic2hvd2luZyIsR2k9e2FuaW1hdGlvbjoiYm9vbGVhbiIsYXV0b2hpZGU6ImJvb2xlYW4iLGRlbGF5OiJudW1iZXIifSwkaT17YW5pbWF0aW9uOiEwLGF1dG9oaWRlOiEwLGRlbGF5OjUwMH0sSmk9J1tkYXRhLWRpc21pc3M9InRvYXN0Il0nLFppPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztwKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoUWkuU0hPVyksdGhpcy5fY29uZmlnLmFuaW1hdGlvbiYmdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFZpKTt2YXIgZT1mdW5jdGlvbigpe3QuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShYaSksdC5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKHppKSxwKHQuX2VsZW1lbnQpLnRyaWdnZXIoUWkuU0hPV04pLHQuX2NvbmZpZy5hdXRvaGlkZSYmdC5oaWRlKCl9O2lmKHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShZaSksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFhpKSx0aGlzLl9jb25maWcuYW5pbWF0aW9uKXt2YXIgbj1tLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3AodGhpcy5fZWxlbWVudCkub25lKG0uVFJBTlNJVElPTl9FTkQsZSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobil9ZWxzZSBlKCl9LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKHppKSYmKHAodGhpcy5fZWxlbWVudCkudHJpZ2dlcihRaS5ISURFKSx0P3RoaXMuX2Nsb3NlKCk6dGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fY2xvc2UoKX0sdGhpcy5fY29uZmlnLmRlbGF5KSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoemkpJiZ0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoemkpLHAodGhpcy5fZWxlbWVudCkub2ZmKFFpLkNMSUNLX0RJU01JU1MpLHAucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJpKSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1sKHt9LCRpLHAodGhpcy5fZWxlbWVudCkuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgdCYmdD90Ont9KSxtLnR5cGVDaGVja0NvbmZpZyhVaSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX3NldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cCh0aGlzLl9lbGVtZW50KS5vbihRaS5DTElDS19ESVNNSVNTLEppLGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGlkZSghMCl9KX0sdC5fY2xvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZnVuY3Rpb24oKXt0Ll9lbGVtZW50LmNsYXNzTGlzdC5hZGQoWWkpLHAodC5fZWxlbWVudCkudHJpZ2dlcihRaS5ISURERU4pfTtpZih0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoemkpLHRoaXMuX2NvbmZpZy5hbmltYXRpb24pe3ZhciBuPW0uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7cCh0aGlzLl9lbGVtZW50KS5vbmUobS5UUkFOU0lUSU9OX0VORCxlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChuKX1lbHNlIGUoKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1wKHRoaXMpLGU9dC5kYXRhKEJpKTtpZihlfHwoZT1uZXcgaSh0aGlzLCJvYmplY3QiPT10eXBlb2YgbiYmbiksdC5kYXRhKEJpLGUpKSwic3RyaW5nIj09dHlwZW9mIG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO2Vbbl0odGhpcyl9fSl9LHMoaSxudWxsLFt7a2V5OiJWRVJTSU9OIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iNC4zLjEifX0se2tleToiRGVmYXVsdFR5cGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBHaX19LHtrZXk6IkRlZmF1bHQiLGdldDpmdW5jdGlvbigpe3JldHVybiAkaX19XSksaX0oKTtwLmZuW1VpXT1aaS5falF1ZXJ5SW50ZXJmYWNlLHAuZm5bVWldLkNvbnN0cnVjdG9yPVppLHAuZm5bVWldLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcC5mbltVaV09S2ksWmkuX2pRdWVyeUludGVyZmFjZX0sZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHApdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LiIpO3ZhciB0PXAuZm4uanF1ZXJ5LnNwbGl0KCIgIilbMF0uc3BsaXQoIi4iKTtpZih0WzBdPDImJnRbMV08OXx8MT09PXRbMF0mJjk9PT10WzFdJiZ0WzJdPDF8fDQ8PXRbMF0pdGhyb3cgbmV3IEVycm9yKCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjAiKX0oKSx0LlV0aWw9bSx0LkFsZXJ0PWcsdC5CdXR0b249ayx0LkNhcm91c2VsPWF0LHQuQ29sbGFwc2U9Q3QsdC5Ecm9wZG93bj1YZSx0Lk1vZGFsPWduLHQuUG9wb3Zlcj1paSx0LlNjcm9sbHNweT1DaSx0LlRhYj1XaSx0LlRvYXN0PVppLHQuVG9vbHRpcD1xbixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLmJ1bmRsZS5taW4uanMubWFw"
}

Changelog:

{
    "2020.04.17 15:38": "base64:KCIoXnxcXHMpIit6bisiXFxTKyIsImciKSxHbj1sKHt9LHFuLkRlZmF1bHQse3BsYWNlbWVudDoicmlnaHQiLHRyaWdnZXI6ImNsaWNrIixjb250ZW50OiIiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJwb3BvdmVyIiByb2xlPSJ0b29sdGlwIj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PGgzIGNsYXNzPSJwb3BvdmVyLWhlYWRlciI+PC9oMz48ZGl2IGNsYXNzPSJwb3BvdmVyLWJvZHkiPjwvZGl2PjwvZGl2Pid9KSwkbj1sKHt9LHFuLkRlZmF1bHRUeXBlLHtjb250ZW50OiIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pIn0pLEpuPSJmYWRlIixabj0ic2hvdyIsdGk9Ii5wb3BvdmVyLWhlYWRlciIsZWk9Ii5wb3BvdmVyLWJvZHkiLG5pPXtISURFOiJoaWRlIitWbixISURERU46ImhpZGRlbiIrVm4sU0hPVzoic2hvdyIrVm4sU0hPV046InNob3duIitWbixJTlNFUlRFRDoiaW5zZXJ0ZWQiK1ZuLENMSUNLOiJjbGljayIrVm4sRk9DVVNJTjoiZm9jdXNpbiIrVm4sRk9DVVNPVVQ6ImZvY3Vzb3V0IitWbixNT1VTRUVOVEVSOiJtb3VzZWVudGVyIitWbixNT1VTRUxFQVZFOiJtb3VzZWxlYXZlIitWbn0saWk9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciBvPWkucHJvdG90eXBlO3JldHVybiBvLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LG8uYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3AodGhpcy5nZXRUaXBFbGVtZW50KCkpLmFkZENsYXNzKHpuKyItIit0KX0sby5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxwKHRoaXMuY29uZmlnLnRlbXBsYXRlKVswXSx0aGlzLnRpcH0sby5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQodGkpLHRoaXMuZ2V0VGl0bGUoKSk7dmFyIGU9dGhpcy5fZ2V0Q29udGVudCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lLmNhbGwodGhpcy5lbGVtZW50KSksdGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoZWkpLGUpLHQucmVtb3ZlQ2xhc3MoSm4rIiAiK1puKX0sby5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbnRlbnQiKXx8dGhpcy5jb25maWcuY29udGVudH0sby5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PXAodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKCJjbGFzcyIpLm1hdGNoKFhuKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oIiIpKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1wKHRoaXMpLmRhdGEoUW4pLGU9Im9iamVjdCI9PXR5cGVvZiBuP246bnVsbDtpZigodHx8IS9kaXNwb3NlfGhpZGUvLnRlc3QobikpJiYodHx8KHQ9bmV3IGkodGhpcyxlKSxwKHRoaXMpLmRhdGEoUW4sdCkpLCJzdHJpbmciPT10eXBlb2Ygbikpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO3Rbbl0oKX19KX0scyhpLG51bGwsW3trZXk6IlZFUlNJT04iLGdldDpmdW5jdGlvbigpe3JldHVybiI0LjMuMSJ9fSx7a2V5OiJEZWZhdWx0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR259fSx7a2V5OiJOQU1FIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gS259fSx7a2V5OiJEQVRBX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFFufX0se2tleToiRXZlbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBuaX19LHtrZXk6IkVWRU5UX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZufX0se2tleToiRGVmYXVsdFR5cGUiLGdldDpmdW5jdGlvbigpe3JldHVybiAkbn19XSksaX0ocW4pO3AuZm5bS25dPWlpLl9qUXVlcnlJbnRlcmZhY2UscC5mbltLbl0uQ29uc3RydWN0b3I9aWkscC5mbltLbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBwLmZuW0tuXT1ZbixpaS5falF1ZXJ5SW50ZXJmYWNlfTt2YXIgb2k9InNjcm9sbHNweSIscmk9ImJzLnNjcm9sbHNweSIsc2k9Ii4iK3JpLGFpPXAuZm5bb2ldLGxpPXtvZmZzZXQ6MTAsbWV0aG9kOiJhdXRvIix0YXJnZXQ6IiJ9LGNpPXtvZmZzZXQ6Im51bWJlciIsbWV0aG9kOiJzdHJpbmciLHRhcmdldDoiKHN0cmluZ3xlbGVtZW50KSJ9LGhpPXtBQ1RJVkFURToiYWN0aXZhdGUiK3NpLFNDUk9MTDoic2Nyb2xsIitzaSxMT0FEX0RBVEFfQVBJOiJsb2FkIitzaSsiLmRhdGEtYXBpIn0sdWk9ImRyb3Bkb3duLWl0ZW0iLGZpPSJhY3RpdmUiLGRpPSdbZGF0YS1zcHk9InNjcm9sbCJdJyxwaT0iLm5hdiwgLmxpc3QtZ3JvdXAiLG1pPSIubmF2LWxpbmsiLGdpPSIubmF2LWl0ZW0iLF9pPSIubGlzdC1ncm91cC1pdGVtIix2aT0iLmRyb3Bkb3duIix5aT0iLmRyb3Bkb3duLWl0ZW0iLEVpPSIuZHJvcGRvd24tdG9nZ2xlIixiaT0ib2Zmc2V0Iix3aT0icG9zaXRpb24iLENpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZWxlbWVudD10LHRoaXMuX3Njcm9sbEVsZW1lbnQ9IkJPRFkiPT09dC50YWdOYW1lP3dpbmRvdzp0LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fc2VsZWN0b3I9dGhpcy5fY29uZmlnLnRhcmdldCsiICIrbWkrIiwiK3RoaXMuX2NvbmZpZy50YXJnZXQrIiAiK19pKyIsIit0aGlzLl9jb25maWcudGFyZ2V0KyIgIit5aSx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAscCh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihoaS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/Ymk6d2ksbz0iYXV0byI9PT10aGlzLl9jb25maWcubWV0aG9kP3Q6dGhpcy5fY29uZmlnLm1ldGhvZCxyPW89PT13aT90aGlzLl9nZXRTY3JvbGxUb3AoKTowO3RoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuX3NlbGVjdG9yKSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlLG49bS5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IobikpLGUpe3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaS53aWR0aHx8aS5oZWlnaHQpcmV0dXJuW3AoZSlbb10oKS50b3ArcixuXX1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9vZmZzZXRzLnB1c2godFswXSksZS5fdGFyZ2V0cy5wdXNoKHRbMV0pfSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3AucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHJpKSxwKHRoaXMuX3Njcm9sbEVsZW1lbnQpLm9mZihzaSksdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3Njcm9sbEVsZW1lbnQ9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9zZWxlY3Rvcj1udWxsLHRoaXMuX29mZnNldHM9bnVsbCx0aGlzLl90YXJnZXRzPW51bGwsdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtpZigic3RyaW5nIiE9dHlwZW9mKHQ9bCh7fSxsaSwib2JqZWN0Ij09dHlwZW9mIHQmJnQ/dDp7fSkpLnRhcmdldCl7dmFyIGU9cCh0LnRhcmdldCkuYXR0cigiaWQiKTtlfHwoZT1tLmdldFVJRChvaSkscCh0LnRhcmdldCkuYXR0cigiaWQiLGUpKSx0LnRhcmdldD0iIyIrZX1yZXR1cm4gbS50eXBlQ2hlY2tDb25maWcob2ksdCxjaSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciBvPXRoaXMuX29mZnNldHMubGVuZ3RoO28tLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbb10mJnQ+PXRoaXMuX29mZnNldHNbb10mJigidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMuX29mZnNldHNbbysxXXx8dDx0aGlzLl9vZmZzZXRzW28rMV0pJiZ0aGlzLl9hY3RpdmF0ZSh0aGlzLl90YXJnZXRzW29dKX19fSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbihlKXt0aGlzLl9hY3RpdmVUYXJnZXQ9ZSx0aGlzLl9jbGVhcigpO3ZhciB0PXRoaXMuX3NlbGVjdG9yLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KydbZGF0YS10YXJnZXQ9IicrZSsnIl0sJyt0KydbaHJlZj0iJytlKyciXSd9KSxuPXAoW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQuam9pbigiLCIpKSkpO24uaGFzQ2xhc3ModWkpPyhuLmNsb3Nlc3QodmkpLmZpbmQoRWkpLmFkZENsYXNzKGZpKSxuLmFkZENsYXNzKGZpKSk6KG4uYWRkQ2xhc3MoZmkpLG4ucGFyZW50cyhwaSkucHJldihtaSsiLCAiK19pKS5hZGRDbGFzcyhmaSksbi5wYXJlbnRzKHBpKS5wcmV2KGdpKS5jaGlsZHJlbihtaSkuYWRkQ2xhc3MoZmkpKSxwKHRoaXMuX3Njcm9sbEVsZW1lbnQpLnRyaWdnZXIoaGkuQUNUSVZBVEUse3JlbGF0ZWRUYXJnZXQ6ZX0pfSx0Ll9jbGVhcj1mdW5jdGlvbigpe1tdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLl9zZWxlY3RvcikpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoZmkpfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKGZpKX0pfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXAodGhpcykuZGF0YShyaSk7aWYodHx8KHQ9bmV3IG4odGhpcywib2JqZWN0Ij09dHlwZW9mIGUmJmUpLHAodGhpcykuZGF0YShyaSx0KSksInN0cmluZyI9PXR5cGVvZiBlKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkICInK2UrJyInKTt0W2VdKCl9fSl9LHMobixudWxsLFt7a2V5OiJWRVJTSU9OIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iNC4zLjEifX0se2tleToiRGVmYXVsdCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxpfX1dKSxufSgpO3Aod2luZG93KS5vbihoaS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkaSkpLGU9dC5sZW5ndGg7ZS0tOyl7dmFyIG49cCh0W2VdKTtDaS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSkscC5mbltvaV09Q2kuX2pRdWVyeUludGVyZmFjZSxwLmZuW29pXS5Db25zdHJ1Y3Rvcj1DaSxwLmZuW29pXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHAuZm5bb2ldPWFpLENpLl9qUXVlcnlJbnRlcmZhY2V9O3ZhciBUaT0iYnMudGFiIixTaT0iLiIrVGksRGk9cC5mbi50YWIsSWk9e0hJREU6ImhpZGUiK1NpLEhJRERFTjoiaGlkZGVuIitTaSxTSE9XOiJzaG93IitTaSxTSE9XTjoic2hvd24iK1NpLENMSUNLX0RBVEFfQVBJOiJjbGljayIrU2krIi5kYXRhLWFwaSJ9LEFpPSJkcm9wZG93bi1tZW51IixPaT0iYWN0aXZlIixOaT0iZGlzYWJsZWQiLGtpPSJmYWRlIixMaT0ic2hvdyIseGk9Ii5kcm9wZG93biIsUGk9Ii5uYXYsIC5saXN0LWdyb3VwIixIaT0iLmFjdGl2ZSIsamk9Ij4gbGkgPiAuYWN0aXZlIixSaT0nW2RhdGEtdG9nZ2xlPSJ0YWIiXSwgW2RhdGEtdG9nZ2xlPSJwaWxsIl0sIFtkYXRhLXRvZ2dsZT0ibGlzdCJdJyxGaT0iLmRyb3Bkb3duLXRvZ2dsZSIsTWk9Ij4gLmRyb3Bkb3duLW1lbnUgLmFjdGl2ZSIsV2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZighKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnAodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoT2kpfHxwKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKE5pKSkpe3ZhciB0LGksZT1wKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoUGkpWzBdLG89bS5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciByPSJVTCI9PT1lLm5vZGVOYW1lfHwiT0wiPT09ZS5ub2RlTmFtZT9qaTpIaTtpPShpPXAubWFrZUFycmF5KHAoZSkuZmluZChyKSkpW2kubGVuZ3RoLTFdfXZhciBzPXAuRXZlbnQoSWkuSElERSx7cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSksYT1wLkV2ZW50KElpLlNIT1cse3JlbGF0ZWRUYXJnZXQ6aX0pO2lmKGkmJnAoaSkudHJpZ2dlcihzKSxwKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoYSksIWEuaXNEZWZhdWx0UHJldmVudGVkKCkmJiFzLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtvJiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG8pKSx0aGlzLl9hY3RpdmF0ZSh0aGlzLl9lbGVtZW50LGUpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIHQ9cC5FdmVudChJaS5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cC5FdmVudChJaS5TSE9XTix7cmVsYXRlZFRhcmdldDppfSk7cChpKS50cmlnZ2VyKHQpLHAobi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsVGkpLHRoaXMuX2VsZW1lbnQ9bnVsbH0sdC5fYWN0aXZhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMsbz0oIWV8fCJVTCIhPT1lLm5vZGVOYW1lJiYiT0wiIT09ZS5ub2RlTmFtZT9wKGUpLmNoaWxkcmVuKEhpKTpwKGUpLmZpbmQoamkpKVswXSxyPW4mJm8mJnAobykuaGFzQ2xhc3Moa2kpLHM9ZnVuY3Rpb24oKXtyZXR1cm4gaS5fdHJhbnNpdGlvbkNvbXBsZXRlKHQsbyxuKX07aWYobyYmcil7dmFyIGE9bS5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChvKTtwKG8pLnJlbW92ZUNsYXNzKExpKS5vbmUobS5UUkFOU0lUSU9OX0VORCxzKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIHMoKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtwKGUpLnJlbW92ZUNsYXNzKE9pKTt2YXIgaT1wKGUucGFyZW50Tm9kZSkuZmluZChNaSlbMF07aSYmcChpKS5yZW1vdmVDbGFzcyhPaSksInRhYiI9PT1lLmdldEF0dHJpYnV0ZSgicm9sZSIpJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsITEpfWlmKHAodCkuYWRkQ2xhc3MoT2kpLCJ0YWIiPT09dC5nZXRBdHRyaWJ1dGUoInJvbGUiKSYmdC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKSxtLnJlZmxvdyh0KSx0LmNsYXNzTGlzdC5jb250YWlucyhraSkmJnQuY2xhc3NMaXN0LmFkZChMaSksdC5wYXJlbnROb2RlJiZwKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoQWkpKXt2YXIgbz1wKHQpLmNsb3Nlc3QoeGkpWzBdO2lmKG8pe3ZhciByPVtdLnNsaWNlLmNhbGwoby5xdWVyeVNlbGVjdG9yQWxsKEZpKSk7cChyKS5hZGRDbGFzcyhPaSl9dC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCEwKX1uJiZuKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzKSxlPXQuZGF0YShUaSk7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKFRpLGUpKSwic3RyaW5nIj09dHlwZW9mIG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO2Vbbl0oKX19KX0scyhpLG51bGwsW3trZXk6IlZFUlNJT04iLGdldDpmdW5jdGlvbigpe3JldHVybiI0LjMuMSJ9fV0pLGl9KCk7cChkb2N1bWVudCkub24oSWkuQ0xJQ0tfREFUQV9BUEksUmksZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLFdpLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChwKHRoaXMpLCJzaG93Iil9KSxwLmZuLnRhYj1XaS5falF1ZXJ5SW50ZXJmYWNlLHAuZm4udGFiLkNvbnN0cnVjdG9yPVdpLHAuZm4udGFiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcC5mbi50YWI9RGksV2kuX2pRdWVyeUludGVyZmFjZX07dmFyIFVpPSJ0b2FzdCIsQmk9ImJzLnRvYXN0IixxaT0iLiIrQmksS2k9cC5mbltVaV0sUWk9e0NMSUNLX0RJU01JU1M6ImNsaWNrLmRpc21pc3MiK3FpLEhJREU6ImhpZGUiK3FpLEhJRERFTjoiaGlkZGVuIitxaSxTSE9XOiJzaG93IitxaSxTSE9XTjoic2hvd24iK3FpfSxWaT0iZmFkZSIsWWk9ImhpZGUiLHppPSJzaG93IixYaT0ic2hvd2luZyIsR2k9e2FuaW1hdGlvbjoiYm9vbGVhbiIsYXV0b2hpZGU6ImJvb2xlYW4iLGRlbGF5OiJudW1iZXIifSwkaT17YW5pbWF0aW9uOiEwLGF1dG9oaWRlOiEwLGRlbGF5OjUwMH0sSmk9J1tkYXRhLWRpc21pc3M9InRvYXN0Il0nLFppPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztwKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoUWkuU0hPVyksdGhpcy5fY29uZmlnLmFuaW1hdGlvbiYmdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFZpKTt2YXIgZT1mdW5jdGlvbigpe3QuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShYaSksdC5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKHppKSxwKHQuX2VsZW1lbnQpLnRyaWdnZXIoUWkuU0hPV04pLHQuX2NvbmZpZy5hdXRvaGlkZSYmdC5oaWRlKCl9O2lmKHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShZaSksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFhpKSx0aGlzLl9jb25maWcuYW5pbWF0aW9uKXt2YXIgbj1tLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3AodGhpcy5fZWxlbWVudCkub25lKG0uVFJBTlNJVElPTl9FTkQsZSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobil9ZWxzZSBlKCl9LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKHppKSYmKHAodGhpcy5fZWxlbWVudCkudHJpZ2dlcihRaS5ISURFKSx0P3RoaXMuX2Nsb3NlKCk6dGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fY2xvc2UoKX0sdGhpcy5fY29uZmlnLmRlbGF5KSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoemkpJiZ0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoemkpLHAodGhpcy5fZWxlbWVudCkub2ZmKFFpLkNMSUNLX0RJU01JU1MpLHAucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJpKSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1sKHt9LCRpLHAodGhpcy5fZWxlbWVudCkuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgdCYmdD90Ont9KSxtLnR5cGVDaGVja0NvbmZpZyhVaSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX3NldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cCh0aGlzLl9lbGVtZW50KS5vbihRaS5DTElDS19ESVNNSVNTLEppLGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGlkZSghMCl9KX0sdC5fY2xvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZnVuY3Rpb24oKXt0Ll9lbGVtZW50LmNsYXNzTGlzdC5hZGQoWWkpLHAodC5fZWxlbWVudCkudHJpZ2dlcihRaS5ISURERU4pfTtpZih0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoemkpLHRoaXMuX2NvbmZpZy5hbmltYXRpb24pe3ZhciBuPW0uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7cCh0aGlzLl9lbGVtZW50KS5vbmUobS5UUkFOU0lUSU9OX0VORCxlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChuKX1lbHNlIGUoKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1wKHRoaXMpLGU9dC5kYXRhKEJpKTtpZihlfHwoZT1uZXcgaSh0aGlzLCJvYmplY3QiPT10eXBlb2YgbiYmbiksdC5kYXRhKEJpLGUpKSwic3RyaW5nIj09dHlwZW9mIG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO2Vbbl0odGhpcyl9fSl9LHMoaSxudWxsLFt7a2V5OiJWRVJTSU9OIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iNC4zLjEifX0se2tleToiRGVmYXVsdFR5cGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBHaX19LHtrZXk6IkRlZmF1bHQiLGdldDpmdW5jdGlvbigpe3JldHVybiAkaX19XSksaX0oKTtwLmZuW1VpXT1aaS5falF1ZXJ5SW50ZXJmYWNlLHAuZm5bVWldLkNvbnN0cnVjdG9yPVppLHAuZm5bVWldLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcC5mbltVaV09S2ksWmkuX2pRdWVyeUludGVyZmFjZX0sZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHApdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LiIpO3ZhciB0PXAuZm4uanF1ZXJ5LnNwbGl0KCIgIilbMF0uc3BsaXQoIi4iKTtpZih0WzBdPDImJnRbMV08OXx8MT09PXRbMF0mJjk9PT10WzFdJiZ0WzJdPDF8fDQ8PXRbMF0pdGhyb3cgbmV3IEVycm9yKCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjAiKX0oKSx0LlV0aWw9bSx0LkFsZXJ0PWcsdC5CdXR0b249ayx0LkNhcm91c2VsPWF0LHQuQ29sbGFwc2U9Q3QsdC5Ecm9wZG93bj1YZSx0Lk1vZGFsPWduLHQuUG9wb3Zlcj1paSx0LlNjcm9sbHNweT1DaSx0LlRhYj1XaSx0LlRvYXN0PVppLHQuVG9vbHRpcD1xbixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLmJ1bmRsZS5taW4uanMubWFw",
    "2020.04.17 15:37": "base64:KCIoXnxcXHMpIit6bisiXFxTKyIsImciKSxHbj1sKHt9LHFuLkRlZmF1bHQse3BsYWNlbWVudDoicmlnaHQiLHRyaWdnZXI6ImNsaWNrIixjb250ZW50OiIiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJwb3BvdmVyIiByb2xlPSJ0b29sdGlwIj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PGgzIGNsYXNzPSJwb3BvdmVyLWhlYWRlciI+PC9oMz48ZGl2IGNsYXNzPSJwb3BvdmVyLWJvZHkiPjwvZGl2PjwvZGl2Pid9KSwkbj1sKHt9LHFuLkRlZmF1bHRUeXBlLHtjb250ZW50OiIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pIn0pLEpuPSJmYWRlIixabj0ic2hvdyIsdGk9Ii5wb3BvdmVyLWhlYWRlciIsZWk9Ii5wb3BvdmVyLWJvZHkiLG5pPXtISURFOiJoaWRlIitWbixISURERU46ImhpZGRlbiIrVm4sU0hPVzoic2hvdyIrVm4sU0hPV046InNob3duIitWbixJTlNFUlRFRDoiaW5zZXJ0ZWQiK1ZuLENMSUNLOiJjbGljayIrVm4sRk9DVVNJTjoiZm9jdXNpbiIrVm4sRk9DVVNPVVQ6ImZvY3Vzb3V0IitWbixNT1VTRUVOVEVSOiJtb3VzZWVudGVyIitWbixNT1VTRUxFQVZFOiJtb3VzZWxlYXZlIitWbn0saWk9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciBvPWkucHJvdG90eXBlO3JldHVybiBvLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LG8uYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3AodGhpcy5nZXRUaXBFbGVtZW50KCkpLmFkZENsYXNzKHpuKyItIit0KX0sby5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxwKHRoaXMuY29uZmlnLnRlbXBsYXRlKVswXSx0aGlzLnRpcH0sby5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQodGkpLHRoaXMuZ2V0VGl0bGUoKSk7dmFyIGU9dGhpcy5fZ2V0Q29udGVudCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lLmNhbGwodGhpcy5lbGVtZW50KSksdGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoZWkpLGUpLHQucmVtb3ZlQ2xhc3MoSm4rIiAiK1puKX0sby5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbnRlbnQiKXx8dGhpcy5jb25maWcuY29udGVudH0sby5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PXAodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKCJjbGFzcyIpLm1hdGNoKFhuKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oIiIpKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1wKHRoaXMpLmRhdGEoUW4pLGU9Im9iamVjdCI9PXR5cGVvZiBuP246bnVsbDtpZigodHx8IS9kaXNwb3NlfGhpZGUvLnRlc3QobikpJiYodHx8KHQ9bmV3IGkodGhpcyxlKSxwKHRoaXMpLmRhdGEoUW4sdCkpLCJzdHJpbmciPT10eXBlb2Ygbikpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO3Rbbl0oKX19KX0scyhpLG51bGwsW3trZXk6IlZFUlNJT04iLGdldDpmdW5jdGlvbigpe3JldHVybiI0LjMuMSJ9fSx7a2V5OiJEZWZhdWx0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR259fSx7a2V5OiJOQU1FIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gS259fSx7a2V5OiJEQVRBX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFFufX0se2tleToiRXZlbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBuaX19LHtrZXk6IkVWRU5UX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZufX0se2tleToiRGVmYXVsdFR5cGUiLGdldDpmdW5jdGlvbigpe3JldHVybiAkbn19XSksaX0ocW4pO3AuZm5bS25dPWlpLl9qUXVlcnlJbnRlcmZhY2UscC5mbltLbl0uQ29uc3RydWN0b3I9aWkscC5mbltLbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBwLmZuW0tuXT1ZbixpaS5falF1ZXJ5SW50ZXJmYWNlfTt2YXIgb2k9InNjcm9sbHNweSIscmk9ImJzLnNjcm9sbHNweSIsc2k9Ii4iK3JpLGFpPXAuZm5bb2ldLGxpPXtvZmZzZXQ6MTAsbWV0aG9kOiJhdXRvIix0YXJnZXQ6IiJ9LGNpPXtvZmZzZXQ6Im51bWJlciIsbWV0aG9kOiJzdHJpbmciLHRhcmdldDoiKHN0cmluZ3xlbGVtZW50KSJ9LGhpPXtBQ1RJVkFURToiYWN0aXZhdGUiK3NpLFNDUk9MTDoic2Nyb2xsIitzaSxMT0FEX0RBVEFfQVBJOiJsb2FkIitzaSsiLmRhdGEtYXBpIn0sdWk9ImRyb3Bkb3duLWl0ZW0iLGZpPSJhY3RpdmUiLGRpPSdbZGF0YS1zcHk9InNjcm9sbCJdJyxwaT0iLm5hdiwgLmxpc3QtZ3JvdXAiLG1pPSIubmF2LWxpbmsiLGdpPSIubmF2LWl0ZW0iLF9pPSIubGlzdC1ncm91cC1pdGVtIix2aT0iLmRyb3Bkb3duIix5aT0iLmRyb3Bkb3duLWl0ZW0iLEVpPSIuZHJvcGRvd24tdG9nZ2xlIixiaT0ib2Zmc2V0Iix3aT0icG9zaXRpb24iLENpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZWxlbWVudD10LHRoaXMuX3Njcm9sbEVsZW1lbnQ9IkJPRFkiPT09dC50YWdOYW1lP3dpbmRvdzp0LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fc2VsZWN0b3I9dGhpcy5fY29uZmlnLnRhcmdldCsiICIrbWkrIiwiK3RoaXMuX2NvbmZpZy50YXJnZXQrIiAiK19pKyIsIit0aGlzLl9jb25maWcudGFyZ2V0KyIgIit5aSx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAscCh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihoaS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/Ymk6d2ksbz0iYXV0byI9PT10aGlzLl9jb25maWcubWV0aG9kP3Q6dGhpcy5fY29uZmlnLm1ldGhvZCxyPW89PT13aT90aGlzLl9nZXRTY3JvbGxUb3AoKTowO3RoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuX3NlbGVjdG9yKSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlLG49bS5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IobikpLGUpe3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaS53aWR0aHx8aS5oZWlnaHQpcmV0dXJuW3AoZSlbb10oKS50b3ArcixuXX1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9vZmZzZXRzLnB1c2godFswXSksZS5fdGFyZ2V0cy5wdXNoKHRbMV0pfSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3AucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHJpKSxwKHRoaXMuX3Njcm9sbEVsZW1lbnQpLm9mZihzaSksdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3Njcm9sbEVsZW1lbnQ9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9zZWxlY3Rvcj1udWxsLHRoaXMuX29mZnNldHM9bnVsbCx0aGlzLl90YXJnZXRzPW51bGwsdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtpZigic3RyaW5nIiE9dHlwZW9mKHQ9bCh7fSxsaSwib2JqZWN0Ij09dHlwZW9mIHQmJnQ/dDp7fSkpLnRhcmdldCl7dmFyIGU9cCh0LnRhcmdldCkuYXR0cigiaWQiKTtlfHwoZT1tLmdldFVJRChvaSkscCh0LnRhcmdldCkuYXR0cigiaWQiLGUpKSx0LnRhcmdldD0iIyIrZX1yZXR1cm4gbS50eXBlQ2hlY2tDb25maWcob2ksdCxjaSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciBvPXRoaXMuX29mZnNldHMubGVuZ3RoO28tLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbb10mJnQ+PXRoaXMuX29mZnNldHNbb10mJigidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMuX29mZnNldHNbbysxXXx8dDx0aGlzLl9vZmZzZXRzW28rMV0pJiZ0aGlzLl9hY3RpdmF0ZSh0aGlzLl90YXJnZXRzW29dKX19fSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbihlKXt0aGlzLl9hY3RpdmVUYXJnZXQ9ZSx0aGlzLl9jbGVhcigpO3ZhciB0PXRoaXMuX3NlbGVjdG9yLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KydbZGF0YS10YXJnZXQ9IicrZSsnIl0sJyt0KydbaHJlZj0iJytlKyciXSd9KSxuPXAoW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQuam9pbigiLCIpKSkpO24uaGFzQ2xhc3ModWkpPyhuLmNsb3Nlc3QodmkpLmZpbmQoRWkpLmFkZENsYXNzKGZpKSxuLmFkZENsYXNzKGZpKSk6KG4uYWRkQ2xhc3MoZmkpLG4ucGFyZW50cyhwaSkucHJldihtaSsiLCAiK19pKS5hZGRDbGFzcyhmaSksbi5wYXJlbnRzKHBpKS5wcmV2KGdpKS5jaGlsZHJlbihtaSkuYWRkQ2xhc3MoZmkpKSxwKHRoaXMuX3Njcm9sbEVsZW1lbnQpLnRyaWdnZXIoaGkuQUNUSVZBVEUse3JlbGF0ZWRUYXJnZXQ6ZX0pfSx0Ll9jbGVhcj1mdW5jdGlvbigpe1tdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLl9zZWxlY3RvcikpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoZmkpfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKGZpKX0pfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXAodGhpcykuZGF0YShyaSk7aWYodHx8KHQ9bmV3IG4odGhpcywib2JqZWN0Ij09dHlwZW9mIGUmJmUpLHAodGhpcykuZGF0YShyaSx0KSksInN0cmluZyI9PXR5cGVvZiBlKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkICInK2UrJyInKTt0W2VdKCl9fSl9LHMobixudWxsLFt7a2V5OiJWRVJTSU9OIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iNC4zLjEifX0se2tleToiRGVmYXVsdCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxpfX1dKSxufSgpO3Aod2luZG93KS5vbihoaS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkaSkpLGU9dC5sZW5ndGg7ZS0tOyl7dmFyIG49cCh0W2VdKTtDaS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSkscC5mbltvaV09Q2kuX2pRdWVyeUludGVyZmFjZSxwLmZuW29pXS5Db25zdHJ1Y3Rvcj1DaSxwLmZuW29pXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHAuZm5bb2ldPWFpLENpLl9qUXVlcnlJbnRlcmZhY2V9O3ZhciBUaT0iYnMudGFiIixTaT0iLiIrVGksRGk9cC5mbi50YWIsSWk9e0hJREU6ImhpZGUiK1NpLEhJRERFTjoiaGlkZGVuIitTaSxTSE9XOiJzaG93IitTaSxTSE9XTjoic2hvd24iK1NpLENMSUNLX0RBVEFfQVBJOiJjbGljayIrU2krIi5kYXRhLWFwaSJ9LEFpPSJkcm9wZG93bi1tZW51IixPaT0iYWN0aXZlIixOaT0iZGlzYWJsZWQiLGtpPSJmYWRlIixMaT0ic2hvdyIseGk9Ii5kcm9wZG93biIsUGk9Ii5uYXYsIC5saXN0LWdyb3VwIixIaT0iLmFjdGl2ZSIsamk9Ij4gbGkgPiAuYWN0aXZlIixSaT0nW2RhdGEtdG9nZ2xlPSJ0YWIiXSwgW2RhdGEtdG9nZ2xlPSJwaWxsIl0sIFtkYXRhLXRvZ2dsZT0ibGlzdCJdJyxGaT0iLmRyb3Bkb3duLXRvZ2dsZSIsTWk9Ij4gLmRyb3Bkb3duLW1lbnUgLmFjdGl2ZSIsV2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZighKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnAodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoT2kpfHxwKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKE5pKSkpe3ZhciB0LGksZT1wKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoUGkpWzBdLG89bS5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciByPSJVTCI9PT1lLm5vZGVOYW1lfHwiT0wiPT09ZS5ub2RlTmFtZT9qaTpIaTtpPShpPXAubWFrZUFycmF5KHAoZSkuZmluZChyKSkpW2kubGVuZ3RoLTFdfXZhciBzPXAuRXZlbnQoSWkuSElERSx7cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSksYT1wLkV2ZW50KElpLlNIT1cse3JlbGF0ZWRUYXJnZXQ6aX0pO2lmKGkmJnAoaSkudHJpZ2dlcihzKSxwKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoYSksIWEuaXNEZWZhdWx0UHJldmVudGVkKCkmJiFzLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtvJiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG8pKSx0aGlzLl9hY3RpdmF0ZSh0aGlzLl9lbGVtZW50LGUpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIHQ9cC5FdmVudChJaS5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cC5FdmVudChJaS5TSE9XTix7cmVsYXRlZFRhcmdldDppfSk7cChpKS50cmlnZ2VyKHQpLHAobi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsVGkpLHRoaXMuX2VsZW1lbnQ9bnVsbH0sdC5fYWN0aXZhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMsbz0oIWV8fCJVTCIhPT1lLm5vZGVOYW1lJiYiT0wiIT09ZS5ub2RlTmFtZT9wKGUpLmNoaWxkcmVuKEhpKTpwKGUpLmZpbmQoamkpKVswXSxyPW4mJm8mJnAobykuaGFzQ2xhc3Moa2kpLHM9ZnVuY3Rpb24oKXtyZXR1cm4gaS5fdHJhbnNpdGlvbkNvbXBsZXRlKHQsbyxuKX07aWYobyYmcil7dmFyIGE9bS5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChvKTtwKG8pLnJlbW92ZUNsYXNzKExpKS5vbmUobS5UUkFOU0lUSU9OX0VORCxzKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIHMoKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtwKGUpLnJlbW92ZUNsYXNzKE9pKTt2YXIgaT1wKGUucGFyZW50Tm9kZSkuZmluZChNaSlbMF07aSYmcChpKS5yZW1vdmVDbGFzcyhPaSksInRhYiI9PT1lLmdldEF0dHJpYnV0ZSgicm9sZSIpJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsITEpfWlmKHAodCkuYWRkQ2xhc3MoT2kpLCJ0YWIiPT09dC5nZXRBdHRyaWJ1dGUoInJvbGUiKSYmdC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKSxtLnJlZmxvdyh0KSx0LmNsYXNzTGlzdC5jb250YWlucyhraSkmJnQuY2xhc3NMaXN0LmFkZChMaSksdC5wYXJlbnROb2RlJiZwKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoQWkpKXt2YXIgbz1wKHQpLmNsb3Nlc3QoeGkpWzBdO2lmKG8pe3ZhciByPVtdLnNsaWNlLmNhbGwoby5xdWVyeVNlbGVjdG9yQWxsKEZpKSk7cChyKS5hZGRDbGFzcyhPaSl9dC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCEwKX1uJiZuKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cCh0aGlzKSxlPXQuZGF0YShUaSk7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKFRpLGUpKSwic3RyaW5nIj09dHlwZW9mIG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO2Vbbl0oKX19KX0scyhpLG51bGwsW3trZXk6IlZFUlNJT04iLGdldDpmdW5jdGlvbigpe3JldHVybiI0LjMuMSJ9fV0pLGl9KCk7cChkb2N1bWVudCkub24oSWkuQ0xJQ0tfREFUQV9BUEksUmksZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLFdpLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChwKHRoaXMpLCJzaG93Iil9KSxwLmZuLnRhYj1XaS5falF1ZXJ5SW50ZXJmYWNlLHAuZm4udGFiLkNvbnN0cnVjdG9yPVdpLHAuZm4udGFiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcC5mbi50YWI9RGksV2kuX2pRdWVyeUludGVyZmFjZX07dmFyIFVpPSJ0b2FzdCIsQmk9ImJzLnRvYXN0IixxaT0iLiIrQmksS2k9cC5mbltVaV0sUWk9e0NMSUNLX0RJU01JU1M6ImNsaWNrLmRpc21pc3MiK3FpLEhJREU6ImhpZGUiK3FpLEhJRERFTjoiaGlkZGVuIitxaSxTSE9XOiJzaG93IitxaSxTSE9XTjoic2hvd24iK3FpfSxWaT0iZmFkZSIsWWk9ImhpZGUiLHppPSJzaG93IixYaT0ic2hvd2luZyIsR2k9e2FuaW1hdGlvbjoiYm9vbGVhbiIsYXV0b2hpZGU6ImJvb2xlYW4iLGRlbGF5OiJudW1iZXIifSwkaT17YW5pbWF0aW9uOiEwLGF1dG9oaWRlOiEwLGRlbGF5OjUwMH0sSmk9J1tkYXRhLWRpc21pc3M9InRvYXN0Il0nLFppPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztwKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoUWkuU0hPVyksdGhpcy5fY29uZmlnLmFuaW1hdGlvbiYmdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFZpKTt2YXIgZT1mdW5jdGlvbigpe3QuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShYaSksdC5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKHppKSxwKHQuX2VsZW1lbnQpLnRyaWdnZXIoUWkuU0hPV04pLHQuX2NvbmZpZy5hdXRvaGlkZSYmdC5oaWRlKCl9O2lmKHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShZaSksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFhpKSx0aGlzLl9jb25maWcuYW5pbWF0aW9uKXt2YXIgbj1tLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3AodGhpcy5fZWxlbWVudCkub25lKG0uVFJBTlNJVElPTl9FTkQsZSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobil9ZWxzZSBlKCl9LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKHppKSYmKHAodGhpcy5fZWxlbWVudCkudHJpZ2dlcihRaS5ISURFKSx0P3RoaXMuX2Nsb3NlKCk6dGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fY2xvc2UoKX0sdGhpcy5fY29uZmlnLmRlbGF5KSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoemkpJiZ0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoemkpLHAodGhpcy5fZWxlbWVudCkub2ZmKFFpLkNMSUNLX0RJU01JU1MpLHAucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJpKSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1sKHt9LCRpLHAodGhpcy5fZWxlbWVudCkuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgdCYmdD90Ont9KSxtLnR5cGVDaGVja0NvbmZpZyhVaSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX3NldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cCh0aGlzLl9lbGVtZW50KS5vbihRaS5DTElDS19ESVNNSVNTLEppLGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGlkZSghMCl9KX0sdC5fY2xvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZnVuY3Rpb24oKXt0Ll9lbGVtZW50LmNsYXNzTGlzdC5hZGQoWWkpLHAodC5fZWxlbWVudCkudHJpZ2dlcihRaS5ISURERU4pfTtpZih0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoemkpLHRoaXMuX2NvbmZpZy5hbmltYXRpb24pe3ZhciBuPW0uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7cCh0aGlzLl9lbGVtZW50KS5vbmUobS5UUkFOU0lUSU9OX0VORCxlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChuKX1lbHNlIGUoKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1wKHRoaXMpLGU9dC5kYXRhKEJpKTtpZihlfHwoZT1uZXcgaSh0aGlzLCJvYmplY3QiPT10eXBlb2YgbiYmbiksdC5kYXRhKEJpLGUpKSwic3RyaW5nIj09dHlwZW9mIG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgIicrbisnIicpO2Vbbl0odGhpcyl9fSl9LHMoaSxudWxsLFt7a2V5OiJWRVJTSU9OIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iNC4zLjEifX0se2tleToiRGVmYXVsdFR5cGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBHaX19LHtrZXk6IkRlZmF1bHQiLGdldDpmdW5jdGlvbigpe3JldHVybiAkaX19XSksaX0oKTtwLmZuW1VpXT1aaS5falF1ZXJ5SW50ZXJmYWNlLHAuZm5bVWldLkNvbnN0cnVjdG9yPVppLHAuZm5bVWldLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcC5mbltVaV09S2ksWmkuX2pRdWVyeUludGVyZmFjZX0sZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHApdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LiIpO3ZhciB0PXAuZm4uanF1ZXJ5LnNwbGl0KCIgIilbMF0uc3BsaXQoIi4iKTtpZih0WzBdPDImJnRbMV08OXx8MT09PXRbMF0mJjk9PT10WzFdJiZ0WzJdPDF8fDQ8PXRbMF0pdGhyb3cgbmV3IEVycm9yKCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjAiKX0oKSx0LlV0aWw9bSx0LkFsZXJ0PWcsdC5CdXR0b249ayx0LkNhcm91c2VsPWF0LHQuQ29sbGFwc2U9Q3QsdC5Ecm9wZG93bj1YZSx0Lk1vZGFsPWduLHQuUG9wb3Zlcj1paSx0LlNjcm9sbHNweT1DaSx0LlRhYj1XaSx0LlRvYXN0PVppLHQuVG9vbHRpcD1xbixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLmJ1bmRsZS5taW4uanMubWFw"
}

github/deemru/w8io/169f3d6 
2.71 ms