w-converhp 2.0.44 → 2.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(I,d){"object"==typeof exports&&"undefined"!=typeof module?module.exports=d(require("worker_threads")):"function"==typeof define&&define.amd?define(["worker_threads"],d):(I="undefined"!=typeof globalThis?globalThis:I||self).mergeSlices=d(I.worker_threads)}(this,(function(I){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var d={};!function(d,C){d.exports=function(I){var d={};!function(I){var d=Object.prototype.hasOwnProperty,C="~";function l(){}function c(I,d,C){this.fn=I,this.context=d,this.once=C||!1}function g(I,d,l,g,i){if("function"!=typeof l)throw new TypeError("The listener must be a function");var m=new c(l,g||I,i),n=C?C+d:d;return I._events[n]?I._events[n].fn?I._events[n]=[I._events[n],m]:I._events[n].push(m):(I._events[n]=m,I._eventsCount++),I}function i(I,d){0==--I._eventsCount?I._events=new l:delete I._events[d]}function m(){this._events=new l,this._eventsCount=0}Object.create&&(l.prototype=Object.create(null),(new l).__proto__||(C=!1)),m.prototype.eventNames=function(){var I,l,c=[];if(0===this._eventsCount)return c;for(l in I=this._events)d.call(I,l)&&c.push(C?l.slice(1):l);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(I)):c},m.prototype.listeners=function(I){var d=C?C+I:I,l=this._events[d];if(!l)return[];if(l.fn)return[l.fn];for(var c=0,g=l.length,i=new Array(g);c<g;c++)i[c]=l[c].fn;return i},m.prototype.listenerCount=function(I){var d=C?C+I:I,l=this._events[d];return l?l.fn?1:l.length:0},m.prototype.emit=function(I,d,l,c,g,i){var m=C?C+I:I;if(!this._events[m])return!1;var n,o,t=this._events[m],X=arguments.length;if(t.fn){switch(t.once&&this.removeListener(I,t.fn,void 0,!0),X){case 1:return t.fn.call(t.context),!0;case 2:return t.fn.call(t.context,d),!0;case 3:return t.fn.call(t.context,d,l),!0;case 4:return t.fn.call(t.context,d,l,c),!0;case 5:return t.fn.call(t.context,d,l,c,g),!0;case 6:return t.fn.call(t.context,d,l,c,g,i),!0}for(o=1,n=new Array(X-1);o<X;o++)n[o-1]=arguments[o];t.fn.apply(t.context,n)}else{var e,b=t.length;for(o=0;o<b;o++)switch(t[o].once&&this.removeListener(I,t[o].fn,void 0,!0),X){case 1:t[o].fn.call(t[o].context);break;case 2:t[o].fn.call(t[o].context,d);break;case 3:t[o].fn.call(t[o].context,d,l);break;case 4:t[o].fn.call(t[o].context,d,l,c);break;default:if(!n)for(e=1,n=new Array(X-1);e<X;e++)n[e-1]=arguments[e];t[o].fn.apply(t[o].context,n)}}return!0},m.prototype.on=function(I,d,C){return g(this,I,d,C,!1)},m.prototype.once=function(I,d,C){return g(this,I,d,C,!0)},m.prototype.removeListener=function(I,d,l,c){var g=C?C+I:I;if(!this._events[g])return this;if(!d)return i(this,g),this;var m=this._events[g];if(m.fn)m.fn!==d||c&&!m.once||l&&m.context!==l||i(this,g);else{for(var n=0,o=[],t=m.length;n<t;n++)(m[n].fn!==d||c&&!m[n].once||l&&m[n].context!==l)&&o.push(m[n]);o.length?this._events[g]=1===o.length?o[0]:o:i(this,g)}return this},m.prototype.removeAllListeners=function(I){var d;return I?(d=C?C+I:I,this._events[d]&&i(this,d)):(this._events=new l,this._eventsCount=0),this},m.prototype.off=m.prototype.removeListener,m.prototype.addListener=m.prototype.on,m.prefixed=C,m.EventEmitter=m,I.exports=m}({get exports(){return d},set exports(I){d=I}});var C=d;let l;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=(c="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5Xnt6jora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5Xnt6jora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5Xnt6jora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxzPWEudG9TdHJpbmcsZj11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQsZiksZT10W2ZdO3RyeXt0W2ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89cy5jYWxsKHQpO3JldHVybiBuJiYocj90W2ZdPWU6ZGVsZXRlIHRbZl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgUz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsTz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQseD1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSxSPSgkPS9bXi5dKyQvLmV4ZWMoeCYmeC5rZXlzJiZ4LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB6PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxBPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1BLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQsUiYmUiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PU98fHI9PW18fHI9PVN8fHI9PXd9KHQpP0U6RjtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gei5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gc3QodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gZnQodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbc3QocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBTdD1OYU4sT3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24geHQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIFN0O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6T3QudGVzdCh0KT9TdDordH12YXIgUnQ9MS8wLHp0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBGdCh0KXtyZXR1cm4gdD8odD14dCh0KSk9PT1SdHx8dD09PS1SdD8odDwwPy0xOjEpKnp0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBBdCh0KXt2YXIgcj1GdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEZ0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09QXQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9eHQodCksKGU9bnVsbD09ZT8wOkN0KEF0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfSh0PXIucGF0aCk7aWYoIWR0KGUpKXJldHVybiB0O2xldCBuPUR0KHQ9VXQodCxlLmxlbmd0aCkpO3JldHVybiBuLmlzUm9vdCxuLnBhdGh9ZnVuY3Rpb24gV3QodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKCFlLmV4aXN0c1N5bmModCkpcmV0dXJuITE7bGV0IG49ZS5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gQnQodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO3JldHVybiEhZS5leGlzdHNTeW5jKHQpJiYoIWUubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFlLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm57c3VjY2VzczoiZmlsZSBkb2VzIG5vdCBleGlzdDogIit0fTtpZighQnQodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBpcyBub3QgYSBmaWxlOiAiK3R9O3RyeXtlLnVubGlua1N5bmModCl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fXJldHVybntzdWNjZXNzOiJkb25lOiAiK3R9fWFzeW5jIGZ1bmN0aW9uIEp0KHQscixlLG49e30pe2xldCBvPSIiLGk9ZnQobiwiZnMiKTtpZighcHQodT1yKXx8MD09PXUubGVuZ3RofHwxPT09dS5sZW5ndGgmJl90KHVbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciB1O2xldCBhPUd0KGUpO1d0KGEse2ZzOml9KXx8ZnVuY3Rpb24odCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKFd0KHQse2ZzOmV9KSlyZXR1cm57c3VjY2VzczoiaW5wdXQgZm9sZGVyIGlzIGFscmVhZHkgZXhpc3RzOiAiK3R9O2lmKGUuZXhpc3RzU3luYyh0KSlyZXR1cm57ZXJyb3I6ImlucHV0IHBhdGggYWxyZWFkeSBleGlzdHM6ICIrdH07dHJ5e2UubWtkaXJTeW5jKHQse3JlY3Vyc2l2ZTohMH0pfWNhdGNoKHQpe3JldHVybntlcnJvcjp0fX19KGEse2ZzOml9KTtsZXQgYz1sdCgpO3RyeXtsZXQgbj1pLmNyZWF0ZVdyaXRlU3RyZWFtKGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtsZXQgZT1yW3RdO2lmKCFCdChlLHtmczppfSkpdGhyb3cgbmV3IEVycm9yKGBmcEluWyR7ZX1dIGlzIG5vdCBhIGZpbGVgKTtsZXQgdT0oKT0+e2xldCB0PWx0KCkscj1pLmNyZWF0ZVJlYWRTdHJlYW0oZSk7cmV0dXJuIHIub24oImVycm9yIiwocj0+e289ci5tZXNzYWdlLHQucmVqZWN0KHIpfSkpLHIub24oImVuZCIsKCgpPT57SHQoZSx7ZnM6aX0pLHQucmVzb2x2ZSgpfSkpLHIucGlwZShuLHtlbmQ6ITF9KSx0fTthd2FpdCB1KCl9bi5lbmQoKSxuLm9uKCJlcnJvciIsKHQ9PntvPXQubWVzc2FnZSxjLnJlamVjdChvKX0pKSxuLm9uKCJmaW5pc2giLCgoKT0+e2xldCByPXtmaWxlbmFtZTp0LHBhdGg6ZX07Yy5yZXNvbHZlKHIpfSkpfWNhdGNoKHQpe289dC5tZXNzYWdlLGMucmVqZWN0KG8pfXJldHVybiBjfWxldCBtZXJnZVNsaWNlcz1hc3luYyhlLG4sbyk9PntsZXQgaT1bXTtmb3IobGV0IHI9MDtyPG47cisrKXtsZXQgbj10LmpvaW4obyxgJHtlfV8ke3J9YCk7aS5wdXNoKG4pfWxldCB1PXQuam9pbihvLGUpLGE9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLG4pe3JldHVybiBKdCh0LGUsbix7ZnM6cn0pfShlLGksdSk7cmV0dXJuIHIud3JpdGVGaWxlU3luYyhgJHt1fS5kb25lYCwiIiwidXRmOCIpLGF9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VTbGljZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VTbGljZXMKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHBhcmVudFBvcnQub24oJ21lc3NhZ2UnLCByZWN2TWVzc2FnZSkKICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=",Buffer.from(c,"base64").toString("utf8"));var c;function g(){let l=new C,c=function(d){try{return new I.Worker(d,{eval:!0})}catch(I){i(I)}}(d);if(!c)return i("invalid worker"),null;function g(){let I=function(){let I,d,C=new Promise((function(){I=arguments[0],d=arguments[1]}));return C.resolve=I,C.reject=d,C}(),d=function(){let I=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,d=[],C="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=C.length;for(let c=0;c<I;c++)d[c]=C[0|Math.random()*l];return d.join("")}(),C={mode:"call",id:d,fun:"main",input:[...arguments]};return c.postMessage(C),l.once(d,(d=>{"success"===d.state?I.resolve(d.msg):I.reject(d.msg)})),I}function i(I){l.emit("error",I)}return c.on("message",(function(I){let d=I,C=d.mode;"emit"!==C&&"return"!==C||("emit"===C&&l.emit(d.evName,d.msg),"return"===C&&l.emit(d.id,d))})),c.on("error",i),c.on("exit",(I=>{1!==I&&i("exit code["+I+"] !== 1")})),function(){let I={mode:"init",type:"function",input:[...arguments]};c.postMessage(I)}([...arguments]),l.main=g,l.main=g,l.terminate=function(){c?(c.terminate(),c=void 0):i("worker has been terminated")},l}l=async function(){let I=[...arguments],d=g();return await d.main(...I).finally((()=>{d.terminate()}))}}();try{process.on("unhandledRejection",(I=>{console.log("outer:unhandledRejection",I)})),process.on("uncaughtException",(I=>{console.log("outer:uncaughtException",I)})),process.on("uncaughtExceptionMonitor",(I=>{console.log("outer:uncaughtExceptionMonitor",I)}))}catch(I){}return l}(I)}({get exports(){return d},set exports(I){d=I}});var C=d,l={};!function(I,d){I.exports=function(){const I="function"==typeof Buffer,d="function"==typeof TextDecoder?new TextDecoder:void 0,C=(I=>{let d={};return I.forEach(((I,C)=>d[I]=C)),d})(("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="))),l=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,c=String.fromCharCode.bind(String),g="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):I=>new Uint8Array(Array.prototype.slice.call(I,0)),i=I=>I.replace(/[^A-Za-z0-9\+\/]/g,""),m=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,n=I=>{switch(I.length){case 4:var d=((7&I.charCodeAt(0))<<18|(63&I.charCodeAt(1))<<12|(63&I.charCodeAt(2))<<6|63&I.charCodeAt(3))-65536;return c(55296+(d>>>10))+c(56320+(1023&d));case 3:return c((15&I.charCodeAt(0))<<12|(63&I.charCodeAt(1))<<6|63&I.charCodeAt(2));default:return c((31&I.charCodeAt(0))<<6|63&I.charCodeAt(1))}},o=I=>I.replace(m,n),t=I=>{if(I=I.replace(/\s+/g,""),!l.test(I))throw new TypeError("malformed base64.");I+="==".slice(2-(3&I.length));let d,g,i,m="";for(let l=0;l<I.length;)d=C[I.charAt(l++)]<<18|C[I.charAt(l++)]<<12|(g=C[I.charAt(l++)])<<6|(i=C[I.charAt(l++)]),m+=64===g?c(d>>16&255):64===i?c(d>>16&255,d>>8&255):c(d>>16&255,d>>8&255,255&d);return m},X="function"==typeof atob?I=>atob(i(I)):I?I=>Buffer.from(I,"base64").toString("binary"):t,e=I?I=>g(Buffer.from(I,"base64")):I=>g(X(I).split("").map((I=>I.charCodeAt(0)))),b=I?I=>Buffer.from(I,"base64").toString("utf8"):d?I=>d.decode(e(I)):I=>o(X(I)),Z=I=>i(I.replace(/[-_]/g,(I=>"-"==I?"+":"/"))),p=I=>b(Z(I)),u=p;var K={};!function(I){var d=Object.prototype.hasOwnProperty,C="~";function l(){}function c(I,d,C){this.fn=I,this.context=d,this.once=C||!1}function g(I,d,l,g,i){if("function"!=typeof l)throw new TypeError("The listener must be a function");var m=new c(l,g||I,i),n=C?C+d:d;return I._events[n]?I._events[n].fn?I._events[n]=[I._events[n],m]:I._events[n].push(m):(I._events[n]=m,I._eventsCount++),I}function i(I,d){0==--I._eventsCount?I._events=new l:delete I._events[d]}function m(){this._events=new l,this._eventsCount=0}Object.create&&(l.prototype=Object.create(null),(new l).__proto__||(C=!1)),m.prototype.eventNames=function(){var I,l,c=[];if(0===this._eventsCount)return c;for(l in I=this._events)d.call(I,l)&&c.push(C?l.slice(1):l);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(I)):c},m.prototype.listeners=function(I){var d=C?C+I:I,l=this._events[d];if(!l)return[];if(l.fn)return[l.fn];for(var c=0,g=l.length,i=new Array(g);c<g;c++)i[c]=l[c].fn;return i},m.prototype.listenerCount=function(I){var d=C?C+I:I,l=this._events[d];return l?l.fn?1:l.length:0},m.prototype.emit=function(I,d,l,c,g,i){var m=C?C+I:I;if(!this._events[m])return!1;var n,o,t=this._events[m],X=arguments.length;if(t.fn){switch(t.once&&this.removeListener(I,t.fn,void 0,!0),X){case 1:return t.fn.call(t.context),!0;case 2:return t.fn.call(t.context,d),!0;case 3:return t.fn.call(t.context,d,l),!0;case 4:return t.fn.call(t.context,d,l,c),!0;case 5:return t.fn.call(t.context,d,l,c,g),!0;case 6:return t.fn.call(t.context,d,l,c,g,i),!0}for(o=1,n=new Array(X-1);o<X;o++)n[o-1]=arguments[o];t.fn.apply(t.context,n)}else{var e,b=t.length;for(o=0;o<b;o++)switch(t[o].once&&this.removeListener(I,t[o].fn,void 0,!0),X){case 1:t[o].fn.call(t[o].context);break;case 2:t[o].fn.call(t[o].context,d);break;case 3:t[o].fn.call(t[o].context,d,l);break;case 4:t[o].fn.call(t[o].context,d,l,c);break;default:if(!n)for(e=1,n=new Array(X-1);e<X;e++)n[e-1]=arguments[e];t[o].fn.apply(t[o].context,n)}}return!0},m.prototype.on=function(I,d,C){return g(this,I,d,C,!1)},m.prototype.once=function(I,d,C){return g(this,I,d,C,!0)},m.prototype.removeListener=function(I,d,l,c){var g=C?C+I:I;if(!this._events[g])return this;if(!d)return i(this,g),this;var m=this._events[g];if(m.fn)m.fn!==d||c&&!m.once||l&&m.context!==l||i(this,g);else{for(var n=0,o=[],t=m.length;n<t;n++)(m[n].fn!==d||c&&!m[n].once||l&&m[n].context!==l)&&o.push(m[n]);o.length?this._events[g]=1===o.length?o[0]:o:i(this,g)}return this},m.prototype.removeAllListeners=function(I){var d;return I?(d=C?C+I:I,this._events[d]&&i(this,d)):(this._events=new l,this._eventsCount=0),this},m.prototype.off=m.prototype.removeListener,m.prototype.addListener=m.prototype.on,m.prefixed=C,m.EventEmitter=m,I.exports=m}({get exports(){return K},set exports(I){K=I}});var y=K;let G;!function(){if("browser"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let I=u("CgoKInVzZSBzdHJpY3QiO3ZhciB0PXJlcXVpcmUoInBhdGgiKSxyPXJlcXVpcmUoImZzIiksZT1BcnJheS5pc0FycmF5LG49Im9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLG89Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixpPW58fG98fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdT1pLlN5bWJvbCxhPU9iamVjdC5wcm90b3R5cGUsYz1hLmhhc093blByb3BlcnR5LHM9YS50b1N0cmluZyxmPXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGw9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgcD0iW29iamVjdCBOdWxsXSIsaD0iW29iamVjdCBVbmRlZmluZWRdIix5PXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7ZnVuY3Rpb24gdih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA9PT10P2g6cDp5JiZ5IGluIE9iamVjdCh0KT9mdW5jdGlvbih0KXt2YXIgcj1jLmNhbGwodCxmKSxlPXRbZl07dHJ5e3RbZl09dm9pZCAwO3ZhciBuPSEwfWNhdGNoKHQpe312YXIgbz1zLmNhbGwodCk7cmV0dXJuIG4mJihyP3RbZl09ZTpkZWxldGUgdFtmXSksb30odCk6ZnVuY3Rpb24odCl7cmV0dXJuIGwuY2FsbCh0KX0odCl9dmFyIF89IltvYmplY3QgU3ltYm9sXSI7ZnVuY3Rpb24gZCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9KHQpJiZ2KHQpPT1ffXZhciBiPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGc9L15cdyokLztmdW5jdGlvbiBqKHQpe3ZhciByPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PXJ8fCJmdW5jdGlvbiI9PXIpfXZhciBTPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixPPSJbb2JqZWN0IEZ1bmN0aW9uXSIsbT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHc9IltvYmplY3QgUHJveHldIjt2YXIgJCx4PWlbIl9fY29yZS1qc19zaGFyZWRfXyJdLFI9KCQ9L1teLl0rJC8uZXhlYyh4JiZ4LmtleXMmJngua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iKyQ6IiI7dmFyIHo9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBGPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEE9RnVuY3Rpb24ucHJvdG90eXBlLE49T2JqZWN0LnByb3RvdHlwZSxQPUEudG9TdHJpbmcsaz1OLmhhc093blByb3BlcnR5LEU9UmVnRXhwKCJeIitQLmNhbGwoaykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gQyh0KXtpZighaih0KXx8KHI9dCxSJiZSIGluIHIpKXJldHVybiExO3ZhciByLGU9ZnVuY3Rpb24odCl7aWYoIWoodCkpcmV0dXJuITE7dmFyIHI9dih0KTtyZXR1cm4gcj09T3x8cj09bXx8cj09U3x8cj09d30odCk/RTpGO3JldHVybiBlLnRlc3QoZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiB6LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifSh0KSl9ZnVuY3Rpb24gSSh0LHIpe3ZhciBlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbcl19KHQscik7cmV0dXJuIEMoZSk/ZTp2b2lkIDB9dmFyIFQ9SShPYmplY3QsImNyZWF0ZSIpO3ZhciBNPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIFUodCxyKXtmb3IodmFyIGUsbixvPXQubGVuZ3RoO28tLTspaWYoKGU9dFtvXVswXSk9PT0obj1yKXx8ZSE9ZSYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1MLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189VD9UKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxMLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKFQpe3ZhciBlPXJbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09ZT92b2lkIDA6ZX1yZXR1cm4gTS5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LEwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBUP3ZvaWQgMCE9PXJbdF06cS5jYWxsKHIsdCl9LEwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLGVbdF09VCYmdm9pZCAwPT09cj8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6cix0aGlzfTt2YXIgRD1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIEcodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19Ry5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxHLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4hKGU8MCkmJihlPT1yLmxlbmd0aC0xP3IucG9wKCk6RC5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LEcucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9VShyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LEcucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxHLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fLG49VShlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTt2YXIgVz1JKGksIk1hcCIpO2Z1bmN0aW9uIEIodCxyKXt2YXIgZSxuLG89dC5fX2RhdGFfXztyZXR1cm4oInN0cmluZyI9PShuPXR5cGVvZihlPXIpKXx8Im51bWJlciI9PW58fCJzeW1ib2wiPT1ufHwiYm9vbGVhbiI9PW4/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lKT9vWyJzdHJpbmciPT10eXBlb2Ygcj8ic3RyaW5nIjoiaGFzaCJdOm8ubWFwfWZ1bmN0aW9uIEgodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19SC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBMLG1hcDpuZXcoV3x8Ryksc3RyaW5nOm5ldyBMfX0sSC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPUIodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sSC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuZ2V0KHQpfSxILnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEIodGhpcyx0KS5oYXModCl9LEgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPUIodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc307dmFyIEo9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIEsodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihKKTt2YXIgZT1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPXI/ci5hcHBseSh0aGlzLG4pOm5bMF0saT1lLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIGUuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gZS5jYWNoZT1uZXcoSy5DYWNoZXx8SCksZX1LLkNhY2hlPUg7dmFyIFEsVixYLFk9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csWj0vXFwoXFwpPy9nLHR0PShRPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UoWSwoZnVuY3Rpb24odCxlLG4sbyl7ci5wdXNoKG4/by5yZXBsYWNlKFosIiQxIik6ZXx8dCl9KSkscn0sVj1LKFEsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1YLnNpemUmJlguY2xlYXIoKSx0fSkpLFg9Vi5jYWNoZSxWKSxydD10dDt2YXIgZXQ9MS8wLG50PXU/dS5wcm90b3R5cGU6dm9pZCAwLG90PW50P250LnRvU3RyaW5nOnZvaWQgMDtmdW5jdGlvbiBpdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZSh0KSlyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK2U8bjspb1tlXT1yKHRbZV0sZSx0KTtyZXR1cm4gb30odCxpdCkrIiI7aWYoZCh0KSlyZXR1cm4gb3Q/b3QuY2FsbCh0KToiIjt2YXIgcj10KyIiO3JldHVybiIwIj09ciYmMS90PT0tZXQ/Ii0wIjpyfWZ1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsPT10PyIiOml0KHQpfWZ1bmN0aW9uIGF0KHQscil7cmV0dXJuIGUodCk/dDpmdW5jdGlvbih0LHIpe2lmKGUodCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIWQodCkpfHxnLnRlc3QodCl8fCFiLnRlc3QodCl8fG51bGwhPXImJnQgaW4gT2JqZWN0KHIpfSh0LHIpP1t0XTpydCh1dCh0KSl9dmFyIGN0PTEvMDtmdW5jdGlvbiBzdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fGQodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWN0PyItMCI6cn1mdW5jdGlvbiBmdCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9MCxuPShyPWF0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtzdChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH0odCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59ZnVuY3Rpb24gbHQoKXtsZXQgdCxyLGU9bmV3IFByb21pc2UoKGZ1bmN0aW9uKCl7dD1hcmd1bWVudHNbMF0scj1hcmd1bWVudHNbMV19KSk7cmV0dXJuIGUucmVzb2x2ZT10LGUucmVqZWN0PXIsZX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGh0KHQpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7Zm9yKGxldCByIGluIHQpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24geXQodCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gdnQodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gX3QodCl7cmV0dXJuISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBVbmRlZmluZWRdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bGxdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWh0KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hKCF5dCh0KXx8IiIhPT10KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiEhcHQodCkmJjA9PT10Lmxlbmd0aH0odCl8fCEhdnQodCkpKSkpfWZ1bmN0aW9uIGR0KHQpe3JldHVybiEoIXl0KHQpfHwiIj09PXQpfXZhciBidD0vXHMvO3ZhciBndD0vXlxzKy87ZnVuY3Rpb24ganQodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJmJ0LnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UoZ3QsIiIpOnR9dmFyIFN0PU5hTixPdD0vXlstK10weFswLTlhLWZdKyQvaSxtdD0vXjBiWzAxXSskL2ksd3Q9L14wb1swLTddKyQvaSwkdD1wYXJzZUludDtmdW5jdGlvbiB4dCh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZCh0KSlyZXR1cm4gU3Q7aWYoaih0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9aihyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9anQodCk7dmFyIGU9bXQudGVzdCh0KTtyZXR1cm4gZXx8d3QudGVzdCh0KT8kdCh0LnNsaWNlKDIpLGU/Mjo4KTpPdC50ZXN0KHQpP1N0Oit0fXZhciBSdD0xLzAsenQ9MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2Z1bmN0aW9uIEZ0KHQpe3JldHVybiB0Pyh0PXh0KHQpKT09PVJ0fHx0PT09LVJ0Pyh0PDA/LTE6MSkqenQ6dD09dD90OjA6MD09PXQ/dDowfWZ1bmN0aW9uIEF0KHQpe3ZhciByPUZ0KHQpLGU9ciUxO3JldHVybiByPT1yP2U/ci1lOnI6MH1mdW5jdGlvbiBOdCh0KXtsZXQgcj0hMTtpZihkdCh0KSlyPSFpc05hTihOdW1iZXIodCkpO2Vsc2UgaWYoZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpKXtpZih2dCh0KSlyZXR1cm4hMTtyPSEwfXJldHVybiByfWZ1bmN0aW9uIFB0KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDtyZXR1cm4gRnQodCl9ZnVuY3Rpb24ga3QodCl7cmV0dXJuISFOdCh0KSYmKHQ9UHQodCksIm51bWJlciI9PXR5cGVvZihyPXQpJiZyPT1BdChyKSk7dmFyIHJ9dmFyIEV0PWkuaXNGaW5pdGUsQ3Q9TWF0aC5taW47dmFyIEl0PWZ1bmN0aW9uKHQpe3ZhciByPU1hdGhbdF07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYodD14dCh0KSwoZT1udWxsPT1lPzA6Q3QoQXQoZSksMjkyKSkmJkV0KHQpKXt2YXIgbj0odXQodCkrImUiKS5zcGxpdCgiZSIpO3JldHVybisoKG49KHV0KHIoblswXSsiZSIrKCtuWzFdK2UpKSkrImUiKS5zcGxpdCgiZSIpKVswXSsiZSIrKCtuWzFdLWUpKX1yZXR1cm4gcih0KX19KCJyb3VuZCIpLFR0PUl0O2Z1bmN0aW9uIE10KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDt0PVB0KHQpO2xldCByPVR0KHQpO3JldHVybiIwIj09PVN0cmluZyhyKT8wOnJ9ZnVuY3Rpb24gcXQodCl7aWYoIWt0KHQpKXJldHVybiExO3JldHVybiBNdCh0KT49MH1mdW5jdGlvbiBMdCh0LHIpe2lmKCFkdCh0KSlyZXR1cm4iIjtpZighcXQocikpcmV0dXJuIiI7aWYoMD09PShyPU10KHIpKSlyZXR1cm4iIjtsZXQgZT10Lmxlbmd0aC1yO3JldHVybiBlPDAmJihlPTApLHQuc3Vic3RyaW5nKGUsZStyKX1mdW5jdGlvbiBVdCh0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT90OmZ1bmN0aW9uKHQscil7cmV0dXJuIGR0KHQpJiZxdChyKT8wPT09KHI9TXQocikpPyIiOnQuc3Vic3RyaW5nKDAscik6IiJ9KHQsdC5sZW5ndGgtcik6IiJ9ZnVuY3Rpb24gRHQodCl7aWYoIWR0KHQpKXJldHVybntwYXRoOiIiLGlzUm9vdDohMX07Zm9yKDt0LmluZGV4T2YoIlxcXFwiKT49MDspdD10LnJlcGxhY2UoIlxcXFwiLCJcXCIpO2Zvcig7dC5pbmRleE9mKCIvLyIpPj0wOyl0PXQucmVwbGFjZSgiLy8iLCIvIik7aWYoIjoiPT09THQodCwxKSlyZXR1cm57cGF0aDpgJHt0fVxcYCxpc1Jvb3Q6ITB9O2lmKCJcXCI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiI6Ij09PUx0KHIsMSk/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1pZigiLyI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiAwPT09ci5sZW5ndGg/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1yZXR1cm57cGF0aDp0LGlzUm9vdDohMX19ZnVuY3Rpb24gR3QodCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ZnVuY3Rpb24odCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ci5wYXRoO3RyeXtlPWUuc3BsaXQoIlxcIikucG9wKCkuc3BsaXQoIi8iKS5wb3AoKX1jYXRjaCh0KXt9cmV0dXJuIGV9KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH1mdW5jdGlvbiBXdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7cmV0dXJuISFlLmV4aXN0c1N5bmModCkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEh0KHQscj17fSl7bGV0IGU9ZnQociwiZnMiKTtpZighZS5leGlzdHNTeW5jKHQpKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFCdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gSnQodCxyLGUsbj17fSl7bGV0IG89IiIsaT1mdChuLCJmcyIpO2lmKCFwdCh1PXIpfHwwPT09dS5sZW5ndGh8fDE9PT11Lmxlbmd0aCYmX3QodVswXSkpdGhyb3cgbmV3IEVycm9yKCJmcHNJbiBpbiBub3QgYW4gZWZmZWN0aXZlIGFycmF5Iik7dmFyIHU7bGV0IGE9R3QoZSk7V3QoYSx7ZnM6aX0pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoZS5leGlzdHNTeW5jKHQpKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0oYSx7ZnM6aX0pO2xldCBjPWx0KCk7dHJ5e2xldCBuPWkuY3JlYXRlV3JpdGVTdHJlYW0oZSk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBlPXJbdF07aWYoIUJ0KGUse2ZzOml9KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtlfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPWkuY3JlYXRlUmVhZFN0cmVhbShlKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bz1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntIdChlLHtmczppfSksdC5yZXNvbHZlKCl9KSksci5waXBlKG4se2VuZDohMX0pLHR9O2F3YWl0IHUoKX1uLmVuZCgpLG4ub24oImVycm9yIiwodD0+e289dC5tZXNzYWdlLGMucmVqZWN0KG8pfSkpLG4ub24oImZpbmlzaCIsKCgpPT57bGV0IHI9e2ZpbGVuYW1lOnQscGF0aDplfTtjLnJlc29sdmUocil9KSl9Y2F0Y2godCl7bz10Lm1lc3NhZ2UsYy5yZWplY3Qobyl9cmV0dXJuIGN9bGV0IG1lcmdlU2xpY2VzPWFzeW5jKGUsbixvKT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBuPXQuam9pbihvLGAke2V9XyR7cn1gKTtpLnB1c2gobil9bGV0IHU9dC5qb2luKG8sZSksYT1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsbil7cmV0dXJuIEp0KHQsZSxuLHtmczpyfSl9KGUsaSx1KTtyZXR1cm4gci53cml0ZUZpbGVTeW5jKGAke3V9LmRvbmVgLCIiLCJ1dGY4IiksYX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBtZXJnZVNsaWNlcwogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBtZXJnZVNsaWNlcwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZWN2TWVzc2FnZShlLmRhdGEpCiAgICAgICAgfQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==");function d(){let d=new y,C=function(I){try{let d=new Blob([I]),C=window.URL||window.webkitURL;return new Worker(C.createObjectURL(d))}catch(I){c(I)}}(I);if(!C)return c("invalid worker"),null;function l(){let I=function(){let I,d,C=new Promise((function(){I=arguments[0],d=arguments[1]}));return C.resolve=I,C.reject=d,C}(),l=function(){let I=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,d=[],C="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=C.length;for(let c=0;c<I;c++)d[c]=C[0|Math.random()*l];return d.join("")}(),c={mode:"call",id:l,fun:"main",input:[...arguments]};return C.postMessage(c),d.once(l,(d=>{"success"===d.state?I.resolve(d.msg):I.reject(d.msg)})),I}function c(I){d.emit("error",I)}return C.onmessage=function(I){!function(I){let C=I,l=C.mode;"emit"!==l&&"return"!==l||("emit"===l&&d.emit(C.evName,C.msg),"return"===l&&d.emit(C.id,C))}(I.data)},C.onerror=c,C.onmessageerror=function(I){c(I.data)},function(){let I={mode:"init",type:"function",input:[...arguments]};C.postMessage(I)}([...arguments]),d.main=l,d.main=l,d.terminate=function(){C?(C.terminate(),C=void 0):c("worker has been terminated")},d}G=async function(){let I=[...arguments],C=d();return await C.main(...I).finally((()=>{C.terminate()}))}}();try{process.on("unhandledRejection",(I=>{console.log("outer:unhandledRejection",I)})),process.on("uncaughtException",(I=>{console.log("outer:uncaughtException",I)})),process.on("uncaughtExceptionMonitor",(I=>{console.log("outer:uncaughtExceptionMonitor",I)}))}catch(I){}return G}()}({get exports(){return l},set exports(I){l=I}});var c=l;let g;return g="undefined"!=typeof window&&void 0!==window.document?c:C,g}));
1
+ !function(I,d){"object"==typeof exports&&"undefined"!=typeof module?module.exports=d(require("worker_threads")):"function"==typeof define&&define.amd?define(["worker_threads"],d):(I="undefined"!=typeof globalThis?globalThis:I||self).mergeSlices=d(I.worker_threads)}(this,(function(I){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var d={};!function(d,C){d.exports=function(I){var d={};!function(I){var d=Object.prototype.hasOwnProperty,C="~";function l(){}function c(I,d,C){this.fn=I,this.context=d,this.once=C||!1}function g(I,d,l,g,i){if("function"!=typeof l)throw new TypeError("The listener must be a function");var m=new c(l,g||I,i),n=C?C+d:d;return I._events[n]?I._events[n].fn?I._events[n]=[I._events[n],m]:I._events[n].push(m):(I._events[n]=m,I._eventsCount++),I}function i(I,d){0==--I._eventsCount?I._events=new l:delete I._events[d]}function m(){this._events=new l,this._eventsCount=0}Object.create&&(l.prototype=Object.create(null),(new l).__proto__||(C=!1)),m.prototype.eventNames=function(){var I,l,c=[];if(0===this._eventsCount)return c;for(l in I=this._events)d.call(I,l)&&c.push(C?l.slice(1):l);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(I)):c},m.prototype.listeners=function(I){var d=C?C+I:I,l=this._events[d];if(!l)return[];if(l.fn)return[l.fn];for(var c=0,g=l.length,i=new Array(g);c<g;c++)i[c]=l[c].fn;return i},m.prototype.listenerCount=function(I){var d=C?C+I:I,l=this._events[d];return l?l.fn?1:l.length:0},m.prototype.emit=function(I,d,l,c,g,i){var m=C?C+I:I;if(!this._events[m])return!1;var n,o,X=this._events[m],t=arguments.length;if(X.fn){switch(X.once&&this.removeListener(I,X.fn,void 0,!0),t){case 1:return X.fn.call(X.context),!0;case 2:return X.fn.call(X.context,d),!0;case 3:return X.fn.call(X.context,d,l),!0;case 4:return X.fn.call(X.context,d,l,c),!0;case 5:return X.fn.call(X.context,d,l,c,g),!0;case 6:return X.fn.call(X.context,d,l,c,g,i),!0}for(o=1,n=new Array(t-1);o<t;o++)n[o-1]=arguments[o];X.fn.apply(X.context,n)}else{var e,b=X.length;for(o=0;o<b;o++)switch(X[o].once&&this.removeListener(I,X[o].fn,void 0,!0),t){case 1:X[o].fn.call(X[o].context);break;case 2:X[o].fn.call(X[o].context,d);break;case 3:X[o].fn.call(X[o].context,d,l);break;case 4:X[o].fn.call(X[o].context,d,l,c);break;default:if(!n)for(e=1,n=new Array(t-1);e<t;e++)n[e-1]=arguments[e];X[o].fn.apply(X[o].context,n)}}return!0},m.prototype.on=function(I,d,C){return g(this,I,d,C,!1)},m.prototype.once=function(I,d,C){return g(this,I,d,C,!0)},m.prototype.removeListener=function(I,d,l,c){var g=C?C+I:I;if(!this._events[g])return this;if(!d)return i(this,g),this;var m=this._events[g];if(m.fn)m.fn!==d||c&&!m.once||l&&m.context!==l||i(this,g);else{for(var n=0,o=[],X=m.length;n<X;n++)(m[n].fn!==d||c&&!m[n].once||l&&m[n].context!==l)&&o.push(m[n]);o.length?this._events[g]=1===o.length?o[0]:o:i(this,g)}return this},m.prototype.removeAllListeners=function(I){var d;return I?(d=C?C+I:I,this._events[d]&&i(this,d)):(this._events=new l,this._eventsCount=0),this},m.prototype.off=m.prototype.removeListener,m.prototype.addListener=m.prototype.on,m.prefixed=C,m.EventEmitter=m,I.exports=m}({get exports(){return d},set exports(I){d=I}});var C=d;let l;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=(c="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxzPWEudG9TdHJpbmcsZj11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQsZiksZT10W2ZdO3RyeXt0W2ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89cy5jYWxsKHQpO3JldHVybiBuJiYocj90W2ZdPWU6ZGVsZXRlIHRbZl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgUz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsTz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQseD1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSxSPSgkPS9bXi5dKyQvLmV4ZWMoeCYmeC5rZXlzJiZ4LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB6PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxBPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1BLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQsUiYmUiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PU98fHI9PW18fHI9PVN8fHI9PXd9KHQpP0U6RjtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gei5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gc3QodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gZnQodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbc3QocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBTdD1OYU4sT3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24geHQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIFN0O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6T3QudGVzdCh0KT9TdDordH12YXIgUnQ9MS8wLHp0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBGdCh0KXtyZXR1cm4gdD8odD14dCh0KSk9PT1SdHx8dD09PS1SdD8odDwwPy0xOjEpKnp0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBBdCh0KXt2YXIgcj1GdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEZ0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09QXQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9eHQodCksKGU9bnVsbD09ZT8wOkN0KEF0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfSh0PXIucGF0aCk7aWYoIWR0KGUpKXJldHVybiB0O2xldCBuPUR0KHQ9VXQodCxlLmxlbmd0aCkpO3JldHVybiBuLmlzUm9vdCxuLnBhdGh9ZnVuY3Rpb24gV3QodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKCFlLmV4aXN0c1N5bmModCkpcmV0dXJuITE7bGV0IG49ZS5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gQnQodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO3JldHVybiEhZS5leGlzdHNTeW5jKHQpJiYoIWUubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFlLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm57c3VjY2VzczoiZmlsZSBkb2VzIG5vdCBleGlzdDogIit0fTtpZighQnQodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBpcyBub3QgYSBmaWxlOiAiK3R9O3RyeXtlLnVubGlua1N5bmModCl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fXJldHVybntzdWNjZXNzOiJkb25lOiAiK3R9fWFzeW5jIGZ1bmN0aW9uIEp0KHQscixlLG49e30pe2xldCBvPSIiLGk9ZnQobiwiZnMiKTtpZighcHQodT1yKXx8MD09PXUubGVuZ3RofHwxPT09dS5sZW5ndGgmJl90KHVbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciB1O2xldCBhPUd0KGUpO1d0KGEse2ZzOml9KXx8ZnVuY3Rpb24odCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKFd0KHQse2ZzOmV9KSlyZXR1cm57c3VjY2VzczoiaW5wdXQgZm9sZGVyIGlzIGFscmVhZHkgZXhpc3RzOiAiK3R9O2lmKGUuZXhpc3RzU3luYyh0KSlyZXR1cm57ZXJyb3I6ImlucHV0IHBhdGggYWxyZWFkeSBleGlzdHM6ICIrdH07dHJ5e2UubWtkaXJTeW5jKHQse3JlY3Vyc2l2ZTohMH0pfWNhdGNoKHQpe3JldHVybntlcnJvcjp0fX19KGEse2ZzOml9KTtsZXQgYz1sdCgpO3RyeXtsZXQgbj1pLmNyZWF0ZVdyaXRlU3RyZWFtKGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtsZXQgZT1yW3RdO2lmKCFCdChlLHtmczppfSkpdGhyb3cgbmV3IEVycm9yKGBmcEluWyR7ZX1dIGlzIG5vdCBhIGZpbGVgKTtsZXQgdT0oKT0+e2xldCB0PWx0KCkscj1pLmNyZWF0ZVJlYWRTdHJlYW0oZSk7cmV0dXJuIHIub24oImVycm9yIiwocj0+e289ci5tZXNzYWdlLHQucmVqZWN0KHIpfSkpLHIub24oImVuZCIsKCgpPT57SHQoZSx7ZnM6aX0pLHQucmVzb2x2ZSgpfSkpLHIucGlwZShuLHtlbmQ6ITF9KSx0fTthd2FpdCB1KCl9bi5lbmQoKSxuLm9uKCJlcnJvciIsKHQ9PntvPXQubWVzc2FnZSxjLnJlamVjdChvKX0pKSxuLm9uKCJmaW5pc2giLCgoKT0+e2xldCByPXtmaWxlbmFtZTp0LHBhdGg6ZX07Yy5yZXNvbHZlKHIpfSkpfWNhdGNoKHQpe289dC5tZXNzYWdlLGMucmVqZWN0KG8pfXJldHVybiBjfWxldCBtZXJnZVNsaWNlcz1hc3luYyhlLG4sbyk9PntsZXQgaT1bXTtmb3IobGV0IHI9MDtyPG47cisrKXtsZXQgbj10LmpvaW4obyxgJHtlfV8ke3J9YCk7aS5wdXNoKG4pfWxldCB1PXQuam9pbihvLGUpLGE9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLG4pe3JldHVybiBKdCh0LGUsbix7ZnM6cn0pfShlLGksdSk7cmV0dXJuIHIud3JpdGVGaWxlU3luYyhgJHt1fS5kb25lYCwiIiwidXRmOCIpLGF9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VTbGljZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VTbGljZXMKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHBhcmVudFBvcnQub24oJ21lc3NhZ2UnLCByZWN2TWVzc2FnZSkKICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=",Buffer.from(c,"base64").toString("utf8"));var c;function g(){let l=new C,c=function(d){try{return new I.Worker(d,{eval:!0})}catch(I){i(I)}}(d);if(!c)return i("invalid worker"),null;function g(){let I=function(){let I,d,C=new Promise((function(){I=arguments[0],d=arguments[1]}));return C.resolve=I,C.reject=d,C}(),d=function(){let I=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,d=[],C="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=C.length;for(let c=0;c<I;c++)d[c]=C[0|Math.random()*l];return d.join("")}(),C={mode:"call",id:d,fun:"main",input:[...arguments]};return c.postMessage(C),l.once(d,(d=>{"success"===d.state?I.resolve(d.msg):I.reject(d.msg)})),I}function i(I){l.emit("error",I)}return c.on("message",(function(I){let d=I,C=d.mode;"emit"!==C&&"return"!==C||("emit"===C&&l.emit(d.evName,d.msg),"return"===C&&l.emit(d.id,d))})),c.on("error",i),c.on("exit",(I=>{1!==I&&i("exit code["+I+"] !== 1")})),function(){let I={mode:"init",type:"function",input:[...arguments]};c.postMessage(I)}([...arguments]),l.main=g,l.main=g,l.terminate=function(){c?(c.terminate(),c=void 0):i("worker has been terminated")},l}l=async function(){let I=[...arguments],d=g();return await d.main(...I).finally((()=>{d.terminate()}))}}();try{process.on("unhandledRejection",(I=>{console.log("outer:unhandledRejection",I)})),process.on("uncaughtException",(I=>{console.log("outer:uncaughtException",I)})),process.on("uncaughtExceptionMonitor",(I=>{console.log("outer:uncaughtExceptionMonitor",I)}))}catch(I){}return l}(I)}({get exports(){return d},set exports(I){d=I}});var C=d,l={};!function(I,d){I.exports=function(){const I="function"==typeof Buffer,d="function"==typeof TextDecoder?new TextDecoder:void 0,C=(I=>{let d={};return I.forEach(((I,C)=>d[I]=C)),d})(("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="))),l=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,c=String.fromCharCode.bind(String),g="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):I=>new Uint8Array(Array.prototype.slice.call(I,0)),i=I=>I.replace(/[^A-Za-z0-9\+\/]/g,""),m=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,n=I=>{switch(I.length){case 4:var d=((7&I.charCodeAt(0))<<18|(63&I.charCodeAt(1))<<12|(63&I.charCodeAt(2))<<6|63&I.charCodeAt(3))-65536;return c(55296+(d>>>10))+c(56320+(1023&d));case 3:return c((15&I.charCodeAt(0))<<12|(63&I.charCodeAt(1))<<6|63&I.charCodeAt(2));default:return c((31&I.charCodeAt(0))<<6|63&I.charCodeAt(1))}},o=I=>I.replace(m,n),X=I=>{if(I=I.replace(/\s+/g,""),!l.test(I))throw new TypeError("malformed base64.");I+="==".slice(2-(3&I.length));let d,g,i,m="";for(let l=0;l<I.length;)d=C[I.charAt(l++)]<<18|C[I.charAt(l++)]<<12|(g=C[I.charAt(l++)])<<6|(i=C[I.charAt(l++)]),m+=64===g?c(d>>16&255):64===i?c(d>>16&255,d>>8&255):c(d>>16&255,d>>8&255,255&d);return m},t="function"==typeof atob?I=>atob(i(I)):I?I=>Buffer.from(I,"base64").toString("binary"):X,e=I?I=>g(Buffer.from(I,"base64")):I=>g(t(I).split("").map((I=>I.charCodeAt(0)))),b=I?I=>Buffer.from(I,"base64").toString("utf8"):d?I=>d.decode(e(I)):I=>o(t(I)),Z=I=>i(I.replace(/[-_]/g,(I=>"-"==I?"+":"/"))),p=I=>b(Z(I)),u=p;var K={};!function(I){var d=Object.prototype.hasOwnProperty,C="~";function l(){}function c(I,d,C){this.fn=I,this.context=d,this.once=C||!1}function g(I,d,l,g,i){if("function"!=typeof l)throw new TypeError("The listener must be a function");var m=new c(l,g||I,i),n=C?C+d:d;return I._events[n]?I._events[n].fn?I._events[n]=[I._events[n],m]:I._events[n].push(m):(I._events[n]=m,I._eventsCount++),I}function i(I,d){0==--I._eventsCount?I._events=new l:delete I._events[d]}function m(){this._events=new l,this._eventsCount=0}Object.create&&(l.prototype=Object.create(null),(new l).__proto__||(C=!1)),m.prototype.eventNames=function(){var I,l,c=[];if(0===this._eventsCount)return c;for(l in I=this._events)d.call(I,l)&&c.push(C?l.slice(1):l);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(I)):c},m.prototype.listeners=function(I){var d=C?C+I:I,l=this._events[d];if(!l)return[];if(l.fn)return[l.fn];for(var c=0,g=l.length,i=new Array(g);c<g;c++)i[c]=l[c].fn;return i},m.prototype.listenerCount=function(I){var d=C?C+I:I,l=this._events[d];return l?l.fn?1:l.length:0},m.prototype.emit=function(I,d,l,c,g,i){var m=C?C+I:I;if(!this._events[m])return!1;var n,o,X=this._events[m],t=arguments.length;if(X.fn){switch(X.once&&this.removeListener(I,X.fn,void 0,!0),t){case 1:return X.fn.call(X.context),!0;case 2:return X.fn.call(X.context,d),!0;case 3:return X.fn.call(X.context,d,l),!0;case 4:return X.fn.call(X.context,d,l,c),!0;case 5:return X.fn.call(X.context,d,l,c,g),!0;case 6:return X.fn.call(X.context,d,l,c,g,i),!0}for(o=1,n=new Array(t-1);o<t;o++)n[o-1]=arguments[o];X.fn.apply(X.context,n)}else{var e,b=X.length;for(o=0;o<b;o++)switch(X[o].once&&this.removeListener(I,X[o].fn,void 0,!0),t){case 1:X[o].fn.call(X[o].context);break;case 2:X[o].fn.call(X[o].context,d);break;case 3:X[o].fn.call(X[o].context,d,l);break;case 4:X[o].fn.call(X[o].context,d,l,c);break;default:if(!n)for(e=1,n=new Array(t-1);e<t;e++)n[e-1]=arguments[e];X[o].fn.apply(X[o].context,n)}}return!0},m.prototype.on=function(I,d,C){return g(this,I,d,C,!1)},m.prototype.once=function(I,d,C){return g(this,I,d,C,!0)},m.prototype.removeListener=function(I,d,l,c){var g=C?C+I:I;if(!this._events[g])return this;if(!d)return i(this,g),this;var m=this._events[g];if(m.fn)m.fn!==d||c&&!m.once||l&&m.context!==l||i(this,g);else{for(var n=0,o=[],X=m.length;n<X;n++)(m[n].fn!==d||c&&!m[n].once||l&&m[n].context!==l)&&o.push(m[n]);o.length?this._events[g]=1===o.length?o[0]:o:i(this,g)}return this},m.prototype.removeAllListeners=function(I){var d;return I?(d=C?C+I:I,this._events[d]&&i(this,d)):(this._events=new l,this._eventsCount=0),this},m.prototype.off=m.prototype.removeListener,m.prototype.addListener=m.prototype.on,m.prefixed=C,m.EventEmitter=m,I.exports=m}({get exports(){return K},set exports(I){K=I}});var y=K;let G;!function(){if("browser"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let I=u("CgoKInVzZSBzdHJpY3QiO3ZhciB0PXJlcXVpcmUoInBhdGgiKSxyPXJlcXVpcmUoImZzIiksZT1BcnJheS5pc0FycmF5LG49Im9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLG89Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixpPW58fG98fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdT1pLlN5bWJvbCxhPU9iamVjdC5wcm90b3R5cGUsYz1hLmhhc093blByb3BlcnR5LHM9YS50b1N0cmluZyxmPXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGw9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgcD0iW29iamVjdCBOdWxsXSIsaD0iW29iamVjdCBVbmRlZmluZWRdIix5PXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7ZnVuY3Rpb24gdih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA9PT10P2g6cDp5JiZ5IGluIE9iamVjdCh0KT9mdW5jdGlvbih0KXt2YXIgcj1jLmNhbGwodCxmKSxlPXRbZl07dHJ5e3RbZl09dm9pZCAwO3ZhciBuPSEwfWNhdGNoKHQpe312YXIgbz1zLmNhbGwodCk7cmV0dXJuIG4mJihyP3RbZl09ZTpkZWxldGUgdFtmXSksb30odCk6ZnVuY3Rpb24odCl7cmV0dXJuIGwuY2FsbCh0KX0odCl9dmFyIF89IltvYmplY3QgU3ltYm9sXSI7ZnVuY3Rpb24gZCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9KHQpJiZ2KHQpPT1ffXZhciBiPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGc9L15cdyokLztmdW5jdGlvbiBqKHQpe3ZhciByPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PXJ8fCJmdW5jdGlvbiI9PXIpfXZhciBTPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixPPSJbb2JqZWN0IEZ1bmN0aW9uXSIsbT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHc9IltvYmplY3QgUHJveHldIjt2YXIgJCx4PWlbIl9fY29yZS1qc19zaGFyZWRfXyJdLFI9KCQ9L1teLl0rJC8uZXhlYyh4JiZ4LmtleXMmJngua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iKyQ6IiI7dmFyIHo9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBGPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEE9RnVuY3Rpb24ucHJvdG90eXBlLE49T2JqZWN0LnByb3RvdHlwZSxQPUEudG9TdHJpbmcsaz1OLmhhc093blByb3BlcnR5LEU9UmVnRXhwKCJeIitQLmNhbGwoaykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gQyh0KXtpZighaih0KXx8KHI9dCxSJiZSIGluIHIpKXJldHVybiExO3ZhciByLGU9ZnVuY3Rpb24odCl7aWYoIWoodCkpcmV0dXJuITE7dmFyIHI9dih0KTtyZXR1cm4gcj09T3x8cj09bXx8cj09U3x8cj09d30odCk/RTpGO3JldHVybiBlLnRlc3QoZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiB6LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifSh0KSl9ZnVuY3Rpb24gSSh0LHIpe3ZhciBlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbcl19KHQscik7cmV0dXJuIEMoZSk/ZTp2b2lkIDB9dmFyIFQ9SShPYmplY3QsImNyZWF0ZSIpO3ZhciBNPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIFUodCxyKXtmb3IodmFyIGUsbixvPXQubGVuZ3RoO28tLTspaWYoKGU9dFtvXVswXSk9PT0obj1yKXx8ZSE9ZSYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1MLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189VD9UKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxMLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKFQpe3ZhciBlPXJbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09ZT92b2lkIDA6ZX1yZXR1cm4gTS5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LEwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBUP3ZvaWQgMCE9PXJbdF06cS5jYWxsKHIsdCl9LEwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLGVbdF09VCYmdm9pZCAwPT09cj8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6cix0aGlzfTt2YXIgRD1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIEcodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19Ry5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxHLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4hKGU8MCkmJihlPT1yLmxlbmd0aC0xP3IucG9wKCk6RC5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LEcucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9VShyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LEcucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxHLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fLG49VShlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTt2YXIgVz1JKGksIk1hcCIpO2Z1bmN0aW9uIEIodCxyKXt2YXIgZSxuLG89dC5fX2RhdGFfXztyZXR1cm4oInN0cmluZyI9PShuPXR5cGVvZihlPXIpKXx8Im51bWJlciI9PW58fCJzeW1ib2wiPT1ufHwiYm9vbGVhbiI9PW4/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lKT9vWyJzdHJpbmciPT10eXBlb2Ygcj8ic3RyaW5nIjoiaGFzaCJdOm8ubWFwfWZ1bmN0aW9uIEgodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19SC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBMLG1hcDpuZXcoV3x8Ryksc3RyaW5nOm5ldyBMfX0sSC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPUIodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sSC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuZ2V0KHQpfSxILnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEIodGhpcyx0KS5oYXModCl9LEgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPUIodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc307dmFyIEo9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIEsodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihKKTt2YXIgZT1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPXI/ci5hcHBseSh0aGlzLG4pOm5bMF0saT1lLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIGUuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gZS5jYWNoZT1uZXcoSy5DYWNoZXx8SCksZX1LLkNhY2hlPUg7dmFyIFEsVixYLFk9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csWj0vXFwoXFwpPy9nLHR0PShRPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UoWSwoZnVuY3Rpb24odCxlLG4sbyl7ci5wdXNoKG4/by5yZXBsYWNlKFosIiQxIik6ZXx8dCl9KSkscn0sVj1LKFEsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1YLnNpemUmJlguY2xlYXIoKSx0fSkpLFg9Vi5jYWNoZSxWKSxydD10dDt2YXIgZXQ9MS8wLG50PXU/dS5wcm90b3R5cGU6dm9pZCAwLG90PW50P250LnRvU3RyaW5nOnZvaWQgMDtmdW5jdGlvbiBpdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZSh0KSlyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK2U8bjspb1tlXT1yKHRbZV0sZSx0KTtyZXR1cm4gb30odCxpdCkrIiI7aWYoZCh0KSlyZXR1cm4gb3Q/b3QuY2FsbCh0KToiIjt2YXIgcj10KyIiO3JldHVybiIwIj09ciYmMS90PT0tZXQ/Ii0wIjpyfWZ1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsPT10PyIiOml0KHQpfWZ1bmN0aW9uIGF0KHQscil7cmV0dXJuIGUodCk/dDpmdW5jdGlvbih0LHIpe2lmKGUodCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIWQodCkpfHxnLnRlc3QodCl8fCFiLnRlc3QodCl8fG51bGwhPXImJnQgaW4gT2JqZWN0KHIpfSh0LHIpP1t0XTpydCh1dCh0KSl9dmFyIGN0PTEvMDtmdW5jdGlvbiBzdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fGQodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWN0PyItMCI6cn1mdW5jdGlvbiBmdCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9MCxuPShyPWF0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtzdChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH0odCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59ZnVuY3Rpb24gbHQoKXtsZXQgdCxyLGU9bmV3IFByb21pc2UoKGZ1bmN0aW9uKCl7dD1hcmd1bWVudHNbMF0scj1hcmd1bWVudHNbMV19KSk7cmV0dXJuIGUucmVzb2x2ZT10LGUucmVqZWN0PXIsZX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGh0KHQpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7Zm9yKGxldCByIGluIHQpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24geXQodCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gdnQodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gX3QodCl7cmV0dXJuISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBVbmRlZmluZWRdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bGxdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWh0KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hKCF5dCh0KXx8IiIhPT10KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiEhcHQodCkmJjA9PT10Lmxlbmd0aH0odCl8fCEhdnQodCkpKSkpfWZ1bmN0aW9uIGR0KHQpe3JldHVybiEoIXl0KHQpfHwiIj09PXQpfXZhciBidD0vXHMvO3ZhciBndD0vXlxzKy87ZnVuY3Rpb24ganQodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJmJ0LnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UoZ3QsIiIpOnR9dmFyIFN0PU5hTixPdD0vXlstK10weFswLTlhLWZdKyQvaSxtdD0vXjBiWzAxXSskL2ksd3Q9L14wb1swLTddKyQvaSwkdD1wYXJzZUludDtmdW5jdGlvbiB4dCh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZCh0KSlyZXR1cm4gU3Q7aWYoaih0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9aihyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9anQodCk7dmFyIGU9bXQudGVzdCh0KTtyZXR1cm4gZXx8d3QudGVzdCh0KT8kdCh0LnNsaWNlKDIpLGU/Mjo4KTpPdC50ZXN0KHQpP1N0Oit0fXZhciBSdD0xLzAsenQ9MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2Z1bmN0aW9uIEZ0KHQpe3JldHVybiB0Pyh0PXh0KHQpKT09PVJ0fHx0PT09LVJ0Pyh0PDA/LTE6MSkqenQ6dD09dD90OjA6MD09PXQ/dDowfWZ1bmN0aW9uIEF0KHQpe3ZhciByPUZ0KHQpLGU9ciUxO3JldHVybiByPT1yP2U/ci1lOnI6MH1mdW5jdGlvbiBOdCh0KXtsZXQgcj0hMTtpZihkdCh0KSlyPSFpc05hTihOdW1iZXIodCkpO2Vsc2UgaWYoZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpKXtpZih2dCh0KSlyZXR1cm4hMTtyPSEwfXJldHVybiByfWZ1bmN0aW9uIFB0KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDtyZXR1cm4gRnQodCl9ZnVuY3Rpb24ga3QodCl7cmV0dXJuISFOdCh0KSYmKHQ9UHQodCksIm51bWJlciI9PXR5cGVvZihyPXQpJiZyPT1BdChyKSk7dmFyIHJ9dmFyIEV0PWkuaXNGaW5pdGUsQ3Q9TWF0aC5taW47dmFyIEl0PWZ1bmN0aW9uKHQpe3ZhciByPU1hdGhbdF07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYodD14dCh0KSwoZT1udWxsPT1lPzA6Q3QoQXQoZSksMjkyKSkmJkV0KHQpKXt2YXIgbj0odXQodCkrImUiKS5zcGxpdCgiZSIpO3JldHVybisoKG49KHV0KHIoblswXSsiZSIrKCtuWzFdK2UpKSkrImUiKS5zcGxpdCgiZSIpKVswXSsiZSIrKCtuWzFdLWUpKX1yZXR1cm4gcih0KX19KCJyb3VuZCIpLFR0PUl0O2Z1bmN0aW9uIE10KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDt0PVB0KHQpO2xldCByPVR0KHQpO3JldHVybiIwIj09PVN0cmluZyhyKT8wOnJ9ZnVuY3Rpb24gcXQodCl7aWYoIWt0KHQpKXJldHVybiExO3JldHVybiBNdCh0KT49MH1mdW5jdGlvbiBMdCh0LHIpe2lmKCFkdCh0KSlyZXR1cm4iIjtpZighcXQocikpcmV0dXJuIiI7aWYoMD09PShyPU10KHIpKSlyZXR1cm4iIjtsZXQgZT10Lmxlbmd0aC1yO3JldHVybiBlPDAmJihlPTApLHQuc3Vic3RyaW5nKGUsZStyKX1mdW5jdGlvbiBVdCh0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT90OmZ1bmN0aW9uKHQscil7cmV0dXJuIGR0KHQpJiZxdChyKT8wPT09KHI9TXQocikpPyIiOnQuc3Vic3RyaW5nKDAscik6IiJ9KHQsdC5sZW5ndGgtcik6IiJ9ZnVuY3Rpb24gRHQodCl7aWYoIWR0KHQpKXJldHVybntwYXRoOiIiLGlzUm9vdDohMX07Zm9yKDt0LmluZGV4T2YoIlxcXFwiKT49MDspdD10LnJlcGxhY2UoIlxcXFwiLCJcXCIpO2Zvcig7dC5pbmRleE9mKCIvLyIpPj0wOyl0PXQucmVwbGFjZSgiLy8iLCIvIik7aWYoIjoiPT09THQodCwxKSlyZXR1cm57cGF0aDpgJHt0fVxcYCxpc1Jvb3Q6ITB9O2lmKCJcXCI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiI6Ij09PUx0KHIsMSk/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1pZigiLyI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiAwPT09ci5sZW5ndGg/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1yZXR1cm57cGF0aDp0LGlzUm9vdDohMX19ZnVuY3Rpb24gR3QodCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ZnVuY3Rpb24odCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ci5wYXRoO3RyeXtlPWUuc3BsaXQoIlxcIikucG9wKCkuc3BsaXQoIi8iKS5wb3AoKX1jYXRjaCh0KXt9cmV0dXJuIGV9KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH1mdW5jdGlvbiBXdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7cmV0dXJuISFlLmV4aXN0c1N5bmModCkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEh0KHQscj17fSl7bGV0IGU9ZnQociwiZnMiKTtpZighZS5leGlzdHNTeW5jKHQpKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFCdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gSnQodCxyLGUsbj17fSl7bGV0IG89IiIsaT1mdChuLCJmcyIpO2lmKCFwdCh1PXIpfHwwPT09dS5sZW5ndGh8fDE9PT11Lmxlbmd0aCYmX3QodVswXSkpdGhyb3cgbmV3IEVycm9yKCJmcHNJbiBpbiBub3QgYW4gZWZmZWN0aXZlIGFycmF5Iik7dmFyIHU7bGV0IGE9R3QoZSk7V3QoYSx7ZnM6aX0pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoZS5leGlzdHNTeW5jKHQpKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0oYSx7ZnM6aX0pO2xldCBjPWx0KCk7dHJ5e2xldCBuPWkuY3JlYXRlV3JpdGVTdHJlYW0oZSk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBlPXJbdF07aWYoIUJ0KGUse2ZzOml9KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtlfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPWkuY3JlYXRlUmVhZFN0cmVhbShlKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bz1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntIdChlLHtmczppfSksdC5yZXNvbHZlKCl9KSksci5waXBlKG4se2VuZDohMX0pLHR9O2F3YWl0IHUoKX1uLmVuZCgpLG4ub24oImVycm9yIiwodD0+e289dC5tZXNzYWdlLGMucmVqZWN0KG8pfSkpLG4ub24oImZpbmlzaCIsKCgpPT57bGV0IHI9e2ZpbGVuYW1lOnQscGF0aDplfTtjLnJlc29sdmUocil9KSl9Y2F0Y2godCl7bz10Lm1lc3NhZ2UsYy5yZWplY3Qobyl9cmV0dXJuIGN9bGV0IG1lcmdlU2xpY2VzPWFzeW5jKGUsbixvKT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBuPXQuam9pbihvLGAke2V9XyR7cn1gKTtpLnB1c2gobil9bGV0IHU9dC5qb2luKG8sZSksYT1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsbil7cmV0dXJuIEp0KHQsZSxuLHtmczpyfSl9KGUsaSx1KTtyZXR1cm4gci53cml0ZUZpbGVTeW5jKGAke3V9LmRvbmVgLCIiLCJ1dGY4IiksYX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBtZXJnZVNsaWNlcwogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBtZXJnZVNsaWNlcwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZWN2TWVzc2FnZShlLmRhdGEpCiAgICAgICAgfQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==");function d(){let d=new y,C=function(I){try{let d=new Blob([I]),C=window.URL||window.webkitURL;return new Worker(C.createObjectURL(d))}catch(I){c(I)}}(I);if(!C)return c("invalid worker"),null;function l(){let I=function(){let I,d,C=new Promise((function(){I=arguments[0],d=arguments[1]}));return C.resolve=I,C.reject=d,C}(),l=function(){let I=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,d=[],C="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=C.length;for(let c=0;c<I;c++)d[c]=C[0|Math.random()*l];return d.join("")}(),c={mode:"call",id:l,fun:"main",input:[...arguments]};return C.postMessage(c),d.once(l,(d=>{"success"===d.state?I.resolve(d.msg):I.reject(d.msg)})),I}function c(I){d.emit("error",I)}return C.onmessage=function(I){!function(I){let C=I,l=C.mode;"emit"!==l&&"return"!==l||("emit"===l&&d.emit(C.evName,C.msg),"return"===l&&d.emit(C.id,C))}(I.data)},C.onerror=c,C.onmessageerror=function(I){c(I.data)},function(){let I={mode:"init",type:"function",input:[...arguments]};C.postMessage(I)}([...arguments]),d.main=l,d.main=l,d.terminate=function(){C?(C.terminate(),C=void 0):c("worker has been terminated")},d}G=async function(){let I=[...arguments],C=d();return await C.main(...I).finally((()=>{C.terminate()}))}}();try{process.on("unhandledRejection",(I=>{console.log("outer:unhandledRejection",I)})),process.on("uncaughtException",(I=>{console.log("outer:uncaughtException",I)})),process.on("uncaughtExceptionMonitor",(I=>{console.log("outer:uncaughtExceptionMonitor",I)}))}catch(I){}return G}()}({get exports(){return l},set exports(I){l=I}});var c=l;let g;return g="undefined"!=typeof window&&void 0!==window.document?c:C,g}));