UNPKG

w-component-vue

Version:
2 lines (1 loc) 46.8 kB
const d="function"==typeof Buffer,l="function"==typeof TextDecoder?new TextDecoder:void 0,I=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),m=(d=>{let l={};return I.forEach(((d,I)=>l[d]=I)),l})(),Z=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,b=String.fromCharCode.bind(String),i="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),c=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),X=d=>{let l,m,Z,b,i="";const c=d.length%3;for(let c=0;c<d.length;){if((m=d.charCodeAt(c++))>255||(Z=d.charCodeAt(c++))>255||(b=d.charCodeAt(c++))>255)throw new TypeError("invalid character found");l=m<<16|Z<<8|b,i+=I[l>>18&63]+I[l>>12&63]+I[l>>6&63]+I[63&l]}return c?i.slice(0,c-3)+"===".substring(c):i},y=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,C=d=>{switch(d.length){case 4:var l=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return b(55296+(l>>>10))+b(56320+(1023&l));case 3:return b((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return b((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},K=d=>d.replace(y,C),G=d=>{if(d=d.replace(/\s+/g,""),!Z.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let l,I,i,c="";for(let Z=0;Z<d.length;)l=m[d.charAt(Z++)]<<18|m[d.charAt(Z++)]<<12|(I=m[d.charAt(Z++)])<<6|(i=m[d.charAt(Z++)]),c+=64===I?b(l>>16&255):64===i?b(l>>16&255,l>>8&255):b(l>>16&255,l>>8&255,255&l);return c},W="function"==typeof atob?d=>atob(c(d)):d?d=>Buffer.from(d,"base64").toString("binary"):G,p=d?d=>i(Buffer.from(d,"base64")):d=>i(W(d).split("").map((d=>d.charCodeAt(0)))),h=d?d=>Buffer.from(d,"base64").toString("utf8"):l?d=>l.decode(p(d)):d=>K(W(d)),V=d=>c(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),o=d=>h(V(d)),u=o;var g={};!function(d){var l=Object.prototype.hasOwnProperty,I="~";function m(){}function Z(d,l,I){this.fn=d,this.context=l,this.once=I||!1}function b(d,l,m,b,i){if("function"!=typeof m)throw new TypeError("The listener must be a function");var c=new Z(m,b||d,i),X=I?I+l:l;return d._events[X]?d._events[X].fn?d._events[X]=[d._events[X],c]:d._events[X].push(c):(d._events[X]=c,d._eventsCount++),d}function i(d,l){0==--d._eventsCount?d._events=new m:delete d._events[l]}function c(){this._events=new m,this._eventsCount=0}Object.create&&(m.prototype=Object.create(null),(new m).__proto__||(I=!1)),c.prototype.eventNames=function(){var d,m,Z=[];if(0===this._eventsCount)return Z;for(m in d=this._events)l.call(d,m)&&Z.push(I?m.slice(1):m);return Object.getOwnPropertySymbols?Z.concat(Object.getOwnPropertySymbols(d)):Z},c.prototype.listeners=function(d){var l=I?I+d:d,m=this._events[l];if(!m)return[];if(m.fn)return[m.fn];for(var Z=0,b=m.length,i=new Array(b);Z<b;Z++)i[Z]=m[Z].fn;return i},c.prototype.listenerCount=function(d){var l=I?I+d:d,m=this._events[l];return m?m.fn?1:m.length:0},c.prototype.emit=function(d,l,m,Z,b,i){var c=I?I+d:d;if(!this._events[c])return!1;var X,y,C=this._events[c],K=arguments.length;if(C.fn){switch(C.once&&this.removeListener(d,C.fn,void 0,!0),K){case 1:return C.fn.call(C.context),!0;case 2:return C.fn.call(C.context,l),!0;case 3:return C.fn.call(C.context,l,m),!0;case 4:return C.fn.call(C.context,l,m,Z),!0;case 5:return C.fn.call(C.context,l,m,Z,b),!0;case 6:return C.fn.call(C.context,l,m,Z,b,i),!0}for(y=1,X=new Array(K-1);y<K;y++)X[y-1]=arguments[y];C.fn.apply(C.context,X)}else{var G,W=C.length;for(y=0;y<W;y++)switch(C[y].once&&this.removeListener(d,C[y].fn,void 0,!0),K){case 1:C[y].fn.call(C[y].context);break;case 2:C[y].fn.call(C[y].context,l);break;case 3:C[y].fn.call(C[y].context,l,m);break;case 4:C[y].fn.call(C[y].context,l,m,Z);break;default:if(!X)for(G=1,X=new Array(K-1);G<K;G++)X[G-1]=arguments[G];C[y].fn.apply(C[y].context,X)}}return!0},c.prototype.on=function(d,l,I){return b(this,d,l,I,!1)},c.prototype.once=function(d,l,I){return b(this,d,l,I,!0)},c.prototype.removeListener=function(d,l,m,Z){var b=I?I+d:d;if(!this._events[b])return this;if(!l)return i(this,b),this;var c=this._events[b];if(c.fn)c.fn!==l||Z&&!c.once||m&&c.context!==m||i(this,b);else{for(var X=0,y=[],C=c.length;X<C;X++)(c[X].fn!==l||Z&&!c[X].once||m&&c[X].context!==m)&&y.push(c[X]);y.length?this._events[b]=1===y.length?y[0]:y:i(this,b)}return this},c.prototype.removeAllListeners=function(d){var l;return d?(l=I?I+d:d,this._events[l]&&i(this,l)):(this._events=new m,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=I,c.EventEmitter=c,d.exports=c}({get exports(){return g},set exports(d){g=d}});var Y=g;let n;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=u("CgoKInVzZSBzdHJpY3QiO3ZhciB0PUFycmF5LmlzQXJyYXkscj0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsZT0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLG49cnx8ZXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxvPW4uU3ltYm9sLHU9T2JqZWN0LnByb3RvdHlwZSxpPXUuaGFzT3duUHJvcGVydHksYz11LnRvU3RyaW5nLGE9bz9vLnRvU3RyaW5nVGFnOnZvaWQgMDt2YXIgZj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBsPSJbb2JqZWN0IE51bGxdIixzPSJbb2JqZWN0IFVuZGVmaW5lZF0iLHA9bz9vLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiB2KHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/czpsOnAmJnAgaW4gT2JqZWN0KHQpP2Z1bmN0aW9uKHQpe3ZhciByPWkuY2FsbCh0LGEpLGU9dFthXTt0cnl7dFthXT12b2lkIDA7dmFyIG49ITB9Y2F0Y2godCl7fXZhciBvPWMuY2FsbCh0KTtyZXR1cm4gbiYmKHI/dFthXT1lOmRlbGV0ZSB0W2FdKSxvfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gZi5jYWxsKHQpfSh0KX1mdW5jdGlvbiBiKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9dmFyIHk9IltvYmplY3QgU3ltYm9sXSI7ZnVuY3Rpb24gaCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fGIodCkmJnYodCk9PXl9dmFyIGQ9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8saj0vXlx3KiQvO2Z1bmN0aW9uIGcocixlKXtpZih0KHIpKXJldHVybiExO3ZhciBuPXR5cGVvZiByO3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXImJiFoKHIpKXx8KGoudGVzdChyKXx8IWQudGVzdChyKXx8bnVsbCE9ZSYmciBpbiBPYmplY3QoZSkpfWZ1bmN0aW9uIF8odCl7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09cnx8ImZ1bmN0aW9uIj09cil9dmFyIE89IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLHc9IltvYmplY3QgRnVuY3Rpb25dIixtPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsQT0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHgodCl7aWYoIV8odCkpcmV0dXJuITE7dmFyIHI9dih0KTtyZXR1cm4gcj09d3x8cj09bXx8cj09T3x8cj09QX12YXIgUyxQPW5bIl9fY29yZS1qc19zaGFyZWRfXyJdLHo9KFM9L1teLl0rJC8uZXhlYyhQJiZQLmtleXMmJlAua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK1M6IiI7dmFyIEU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIEkodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBFLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifXZhciBOPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFQ9RnVuY3Rpb24ucHJvdG90eXBlLCQ9T2JqZWN0LnByb3RvdHlwZSxDPVQudG9TdHJpbmcsRj0kLmhhc093blByb3BlcnR5LE09UmVnRXhwKCJeIitDLmNhbGwoRikucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gVSh0KXtyZXR1cm4hKCFfKHQpfHwocj10LHomJnogaW4gcikpJiYoeCh0KT9NOk4pLnRlc3QoSSh0KSk7dmFyIHJ9ZnVuY3Rpb24gayh0LHIpe3ZhciBlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbcl19KHQscik7cmV0dXJuIFUoZSk/ZTp2b2lkIDB9dmFyIEI9ayhPYmplY3QsImNyZWF0ZSIpO3ZhciBEPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIFYodCxyKXtyZXR1cm4gdD09PXJ8fHQhPXQmJnIhPXJ9ZnVuY3Rpb24gSyh0LHIpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS07KWlmKFYodFtlXVswXSxyKSlyZXR1cm4gZTtyZXR1cm4tMX1MLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189Qj9CKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxMLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKEIpe3ZhciBlPXJbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09ZT92b2lkIDA6ZX1yZXR1cm4gRC5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LEwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBCP3ZvaWQgMCE9PXJbdF06Ui5jYWxsKHIsdCl9LEwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLGVbdF09QiYmdm9pZCAwPT09cj8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6cix0aGlzfTt2YXIgVz1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIHEodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19cS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxxLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPUsocix0KTtyZXR1cm4hKGU8MCkmJihlPT1yLmxlbmd0aC0xP3IucG9wKCk6Vy5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LHEucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9SyhyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LHEucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gSyh0aGlzLl9fZGF0YV9fLHQpPi0xfSxxLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fLG49SyhlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTt2YXIgRz1rKG4sIk1hcCIpO2Z1bmN0aW9uIEgodCxyKXt2YXIgZSxuLG89dC5fX2RhdGFfXztyZXR1cm4oInN0cmluZyI9PShuPXR5cGVvZihlPXIpKXx8Im51bWJlciI9PW58fCJzeW1ib2wiPT1ufHwiYm9vbGVhbiI9PW4/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lKT9vWyJzdHJpbmciPT10eXBlb2Ygcj8ic3RyaW5nIjoiaGFzaCJdOm8ubWFwfWZ1bmN0aW9uIEoodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19Si5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBMLG1hcDpuZXcoR3x8cSksc3RyaW5nOm5ldyBMfX0sSi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPUgodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sSi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBIKHRoaXMsdCkuZ2V0KHQpfSxKLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEgodGhpcyx0KS5oYXModCl9LEoucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPUgodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc307dmFyIFE9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIFgodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihRKTt2YXIgZT1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPXI/ci5hcHBseSh0aGlzLG4pOm5bMF0sdT1lLmNhY2hlO2lmKHUuaGFzKG8pKXJldHVybiB1LmdldChvKTt2YXIgaT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIGUuY2FjaGU9dS5zZXQobyxpKXx8dSxpfTtyZXR1cm4gZS5jYWNoZT1uZXcoWC5DYWNoZXx8SiksZX1YLkNhY2hlPUo7dmFyIFksWix0dCxydD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxldD0vXFwoXFwpPy9nLG50PShZPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UocnQsKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShldCwiJDEiKTplfHx0KX0pKSxyfSxaPVgoWSwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PXR0LnNpemUmJnR0LmNsZWFyKCksdH0pKSx0dD1aLmNhY2hlLFopLG90PW50O2Z1bmN0aW9uIHV0KHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99dmFyIGl0PTEvMCxjdD1vP28ucHJvdG90eXBlOnZvaWQgMCxhdD1jdD9jdC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gZnQocil7aWYoInN0cmluZyI9PXR5cGVvZiByKXJldHVybiByO2lmKHQocikpcmV0dXJuIHV0KHIsZnQpKyIiO2lmKGgocikpcmV0dXJuIGF0P2F0LmNhbGwocik6IiI7dmFyIGU9cisiIjtyZXR1cm4iMCI9PWUmJjEvcj09LWl0PyItMCI6ZX1mdW5jdGlvbiBsdChyLGUpe3JldHVybiB0KHIpP3I6ZyhyLGUpP1tyXTpvdChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjpmdCh0KX0ocikpfXZhciBzdD0xLzA7ZnVuY3Rpb24gcHQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxoKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1zdD8iLTAiOnJ9ZnVuY3Rpb24gdnQodCxyKXtmb3IodmFyIGU9MCxuPShyPWx0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtwdChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH1mdW5jdGlvbiBidCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6dnQodCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59ZnVuY3Rpb24geXQodCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gaHQodCl7cmV0dXJuISgheXQodCl8fCIiPT09dCl9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24ganQodCl7aWYoZHQodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiEwO3JldHVybiExfXJldHVybiExfWZ1bmN0aW9uIGd0KHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gX3QodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gT3QodCl7cmV0dXJuISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBVbmRlZmluZWRdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bGxdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe2lmKGR0KHQpKXtmb3IobGV0IHIgaW4gdClyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiEoIXl0KHQpfHwiIiE9PXQpfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISFndCh0KSYmMD09PXQubGVuZ3RofSh0KXx8ISFfdCh0KSkpKSl9ZnVuY3Rpb24gd3QodCl7cmV0dXJuISFndCh0KSYmKDAhPT10Lmxlbmd0aCYmKDEhPT10Lmxlbmd0aHx8IU90KHRbMF0pKSl9dmFyIG10PSJbb2JqZWN0IEJvb2xlYW5dIjtmdW5jdGlvbiBBdCh0KXtyZXR1cm4hMD09PShyPXQpfHwhMT09PXJ8fGIocikmJnYocik9PW10O3ZhciByfWZ1bmN0aW9uIHh0KHQpe3ZhciByPXRoaXMuX19kYXRhX189bmV3IHEodCk7dGhpcy5zaXplPXIuc2l6ZX14dC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBxLHRoaXMuc2l6ZT0wfSx4dC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1yLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPXIuc2l6ZSxlfSx4dC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX0seHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LHh0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGUgaW5zdGFuY2VvZiBxKXt2YXIgbj1lLl9fZGF0YV9fO2lmKCFHfHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxyXSksdGhpcy5zaXplPSsrZS5zaXplLHRoaXM7ZT10aGlzLl9fZGF0YV9fPW5ldyBKKG4pfXJldHVybiBlLnNldCh0LHIpLHRoaXMuc2l6ZT1lLnNpemUsdGhpc307ZnVuY3Rpb24gU3QodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IEo7KytyPGU7KXRoaXMuYWRkKHRbcl0pfWZ1bmN0aW9uIFB0KHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoOysrZTxuOylpZihyKHRbZV0sZSx0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB6dCh0LHIpe3JldHVybiB0LmhhcyhyKX1TdC5wcm90b3R5cGUuYWRkPVN0LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIiksdGhpc30sU3QucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9O3ZhciBFdD0xLEl0PTI7ZnVuY3Rpb24gTnQodCxyLGUsbixvLHUpe3ZhciBpPWUmRXQsYz10Lmxlbmd0aCxhPXIubGVuZ3RoO2lmKGMhPWEmJiEoaSYmYT5jKSlyZXR1cm4hMTt2YXIgZj11LmdldCh0KSxsPXUuZ2V0KHIpO2lmKGYmJmwpcmV0dXJuIGY9PXImJmw9PXQ7dmFyIHM9LTEscD0hMCx2PWUmSXQ/bmV3IFN0OnZvaWQgMDtmb3IodS5zZXQodCxyKSx1LnNldChyLHQpOysrczxjOyl7dmFyIGI9dFtzXSx5PXJbc107aWYobil2YXIgaD1pP24oeSxiLHMscix0LHUpOm4oYix5LHMsdCxyLHUpO2lmKHZvaWQgMCE9PWgpe2lmKGgpY29udGludWU7cD0hMTticmVha31pZih2KXtpZighUHQociwoZnVuY3Rpb24odCxyKXtpZighenQodixyKSYmKGI9PT10fHxvKGIsdCxlLG4sdSkpKXJldHVybiB2LnB1c2gocil9KSkpe3A9ITE7YnJlYWt9fWVsc2UgaWYoYiE9PXkmJiFvKGIseSxlLG4sdSkpe3A9ITE7YnJlYWt9fXJldHVybiB1LmRlbGV0ZSh0KSx1LmRlbGV0ZShyKSxwfXZhciBUdD1uLlVpbnQ4QXJyYXk7ZnVuY3Rpb24gJHQodCl7dmFyIHI9LTEsZT1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsbil7ZVsrK3JdPVtuLHRdfSkpLGV9ZnVuY3Rpb24gQ3QodCl7dmFyIHI9LTEsZT1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbKytyXT10fSkpLGV9dmFyIEZ0PTEsTXQ9MixVdD0iW29iamVjdCBCb29sZWFuXSIsa3Q9IltvYmplY3QgRGF0ZV0iLEJ0PSJbb2JqZWN0IEVycm9yXSIsRHQ9IltvYmplY3QgTWFwXSIsUnQ9IltvYmplY3QgTnVtYmVyXSIsTHQ9IltvYmplY3QgUmVnRXhwXSIsVnQ9IltvYmplY3QgU2V0XSIsS3Q9IltvYmplY3QgU3RyaW5nXSIsV3Q9IltvYmplY3QgU3ltYm9sXSIscXQ9IltvYmplY3QgQXJyYXlCdWZmZXJdIixHdD0iW29iamVjdCBEYXRhVmlld10iLEh0PW8/by5wcm90b3R5cGU6dm9pZCAwLEp0PUh0P0h0LnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIFF0KHQscil7Zm9yKHZhciBlPS0xLG49ci5sZW5ndGgsbz10Lmxlbmd0aDsrK2U8bjspdFtvK2VdPXJbZV07cmV0dXJuIHR9ZnVuY3Rpb24gWHQocixlLG4pe3ZhciBvPWUocik7cmV0dXJuIHQocik/bzpRdChvLG4ocikpfWZ1bmN0aW9uIFl0KCl7cmV0dXJuW119dmFyIFp0PU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsdHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxycj10cj9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz0wLHU9W107KytlPG47KXt2YXIgaT10W2VdO3IoaSxlLHQpJiYodVtvKytdPWkpfXJldHVybiB1fSh0cih0KSwoZnVuY3Rpb24ocil7cmV0dXJuIFp0LmNhbGwodCxyKX0pKSl9Oll0LGVyPXJyO2Z1bmN0aW9uIG5yKHQpe3JldHVybiBiKHQpJiYiW29iamVjdCBBcmd1bWVudHNdIj09dih0KX12YXIgb3I9T2JqZWN0LnByb3RvdHlwZSx1cj1vci5oYXNPd25Qcm9wZXJ0eSxpcj1vci5wcm9wZXJ0eUlzRW51bWVyYWJsZSxjcj1ucihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP25yOmZ1bmN0aW9uKHQpe3JldHVybiBiKHQpJiZ1ci5jYWxsKHQsImNhbGxlZSIpJiYhaXIuY2FsbCh0LCJjYWxsZWUiKX07dmFyIGFyPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsZnI9YXImJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxscj1mciYmZnIuZXhwb3J0cz09PWFyP24uQnVmZmVyOnZvaWQgMCxzcj0obHI/bHIuaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24oKXtyZXR1cm4hMX0scHI9OTAwNzE5OTI1NDc0MDk5MSx2cj0vXig/OjB8WzEtOV1cZCopJC87ZnVuY3Rpb24gYnIodCxyKXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIShyPW51bGw9PXI/cHI6cikmJigibnVtYmVyIj09ZXx8InN5bWJvbCIhPWUmJnZyLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8cn12YXIgeXI9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBocih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+LTEmJnQlMT09MCYmdDw9eXJ9dmFyIGRyPXt9O2Z1bmN0aW9uIGpyKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdChyKX19ZHJbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPWRyWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1kclsiW29iamVjdCBJbnQ4QXJyYXldIl09ZHJbIltvYmplY3QgSW50MTZBcnJheV0iXT1kclsiW29iamVjdCBJbnQzMkFycmF5XSJdPWRyWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09ZHJbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09ZHJbIltvYmplY3QgVWludDE2QXJyYXldIl09ZHJbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsZHJbIltvYmplY3QgQXJndW1lbnRzXSJdPWRyWyJbb2JqZWN0IEFycmF5XSJdPWRyWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPWRyWyJbb2JqZWN0IEJvb2xlYW5dIl09ZHJbIltvYmplY3QgRGF0YVZpZXddIl09ZHJbIltvYmplY3QgRGF0ZV0iXT1kclsiW29iamVjdCBFcnJvcl0iXT1kclsiW29iamVjdCBGdW5jdGlvbl0iXT1kclsiW29iamVjdCBNYXBdIl09ZHJbIltvYmplY3QgTnVtYmVyXSJdPWRyWyJbb2JqZWN0IE9iamVjdF0iXT1kclsiW29iamVjdCBSZWdFeHBdIl09ZHJbIltvYmplY3QgU2V0XSJdPWRyWyJbb2JqZWN0IFN0cmluZ10iXT1kclsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBncj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLF9yPWdyJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsT3I9X3ImJl9yLmV4cG9ydHM9PT1nciYmci5wcm9jZXNzLHdyPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PV9yJiZfci5yZXF1aXJlJiZfci5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHR8fE9yJiZPci5iaW5kaW5nJiZPci5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKSxtcj13ciYmd3IuaXNUeXBlZEFycmF5LEFyPW1yP2pyKG1yKTpmdW5jdGlvbih0KXtyZXR1cm4gYih0KSYmaHIodC5sZW5ndGgpJiYhIWRyW3YodCldfSx4cj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFNyKHIsZSl7dmFyIG49dChyKSxvPSFuJiZjcihyKSx1PSFuJiYhbyYmc3IociksaT0hbiYmIW8mJiF1JiZBcihyKSxjPW58fG98fHV8fGksYT1jP2Z1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49QXJyYXkodCk7KytlPHQ7KW5bZV09cihlKTtyZXR1cm4gbn0oci5sZW5ndGgsU3RyaW5nKTpbXSxmPWEubGVuZ3RoO2Zvcih2YXIgbCBpbiByKSFlJiYheHIuY2FsbChyLGwpfHxjJiYoImxlbmd0aCI9PWx8fHUmJigib2Zmc2V0Ij09bHx8InBhcmVudCI9PWwpfHxpJiYoImJ1ZmZlciI9PWx8fCJieXRlTGVuZ3RoIj09bHx8ImJ5dGVPZmZzZXQiPT1sKXx8YnIobCxmKSl8fGEucHVzaChsKTtyZXR1cm4gYX12YXIgUHI9T2JqZWN0LnByb3RvdHlwZTtmdW5jdGlvbiB6cih0KXt2YXIgcj10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLnByb3RvdHlwZXx8UHIpfWZ1bmN0aW9uIEVyKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KHIoZSkpfX12YXIgSXI9RXIoT2JqZWN0LmtleXMsT2JqZWN0KSxOcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFRyKHQpe2lmKCF6cih0KSlyZXR1cm4gSXIodCk7dmFyIHI9W107Zm9yKHZhciBlIGluIE9iamVjdCh0KSlOci5jYWxsKHQsZSkmJiJjb25zdHJ1Y3RvciIhPWUmJnIucHVzaChlKTtyZXR1cm4gcn1mdW5jdGlvbiAkcih0KXtyZXR1cm4gbnVsbCE9dCYmaHIodC5sZW5ndGgpJiYheCh0KX1mdW5jdGlvbiBDcih0KXtyZXR1cm4gJHIodCk/U3IodCk6VHIodCl9ZnVuY3Rpb24gRnIodCl7cmV0dXJuIFh0KHQsQ3IsZXIpfXZhciBNcj0xLFVyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGtyPWsobiwiRGF0YVZpZXciKSxCcj1rKG4sIlByb21pc2UiKSxEcj1rKG4sIlNldCIpLFJyPWsobiwiV2Vha01hcCIpLExyPSJbb2JqZWN0IE1hcF0iLFZyPSJbb2JqZWN0IFByb21pc2VdIixLcj0iW29iamVjdCBTZXRdIixXcj0iW29iamVjdCBXZWFrTWFwXSIscXI9IltvYmplY3QgRGF0YVZpZXddIixHcj1JKGtyKSxIcj1JKEcpLEpyPUkoQnIpLFFyPUkoRHIpLFhyPUkoUnIpLFlyPXY7KGtyJiZZcihuZXcga3IobmV3IEFycmF5QnVmZmVyKDEpKSkhPXFyfHxHJiZZcihuZXcgRykhPUxyfHxCciYmWXIoQnIucmVzb2x2ZSgpKSE9VnJ8fERyJiZZcihuZXcgRHIpIT1Lcnx8UnImJllyKG5ldyBScikhPVdyKSYmKFlyPWZ1bmN0aW9uKHQpe3ZhciByPXYodCksZT0iW29iamVjdCBPYmplY3RdIj09cj90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPWU/SShlKToiIjtpZihuKXN3aXRjaChuKXtjYXNlIEdyOnJldHVybiBxcjtjYXNlIEhyOnJldHVybiBMcjtjYXNlIEpyOnJldHVybiBWcjtjYXNlIFFyOnJldHVybiBLcjtjYXNlIFhyOnJldHVybiBXcn1yZXR1cm4gcn0pO3ZhciBacj1Zcix0ZT0xLHJlPSJbb2JqZWN0IEFyZ3VtZW50c10iLGVlPSJbb2JqZWN0IEFycmF5XSIsbmU9IltvYmplY3QgT2JqZWN0XSIsb2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB1ZShyLGUsbixvLHUsaSl7dmFyIGM9dChyKSxhPXQoZSksZj1jP2VlOlpyKHIpLGw9YT9lZTpacihlKSxzPShmPWY9PXJlP25lOmYpPT1uZSxwPShsPWw9PXJlP25lOmwpPT1uZSx2PWY9PWw7aWYodiYmc3Iocikpe2lmKCFzcihlKSlyZXR1cm4hMTtjPSEwLHM9ITF9aWYodiYmIXMpcmV0dXJuIGl8fChpPW5ldyB4dCksY3x8QXIocik/TnQocixlLG4sbyx1LGkpOmZ1bmN0aW9uKHQscixlLG4sbyx1LGkpe3N3aXRjaChlKXtjYXNlIEd0OmlmKHQuYnl0ZUxlbmd0aCE9ci5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPXIuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLHI9ci5idWZmZXI7Y2FzZSBxdDpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ci5ieXRlTGVuZ3RofHwhdShuZXcgVHQodCksbmV3IFR0KHIpKSk7Y2FzZSBVdDpjYXNlIGt0OmNhc2UgUnQ6cmV0dXJuIFYoK3QsK3IpO2Nhc2UgQnQ6cmV0dXJuIHQubmFtZT09ci5uYW1lJiZ0Lm1lc3NhZ2U9PXIubWVzc2FnZTtjYXNlIEx0OmNhc2UgS3Q6cmV0dXJuIHQ9PXIrIiI7Y2FzZSBEdDp2YXIgYz0kdDtjYXNlIFZ0OnZhciBhPW4mRnQ7aWYoY3x8KGM9Q3QpLHQuc2l6ZSE9ci5zaXplJiYhYSlyZXR1cm4hMTt2YXIgZj1pLmdldCh0KTtpZihmKXJldHVybiBmPT1yO258PU10LGkuc2V0KHQscik7dmFyIGw9TnQoYyh0KSxjKHIpLG4sbyx1LGkpO3JldHVybiBpLmRlbGV0ZSh0KSxsO2Nhc2UgV3Q6aWYoSnQpcmV0dXJuIEp0LmNhbGwodCk9PUp0LmNhbGwocil9cmV0dXJuITF9KHIsZSxmLG4sbyx1LGkpO2lmKCEobiZ0ZSkpe3ZhciBiPXMmJm9lLmNhbGwociwiX193cmFwcGVkX18iKSx5PXAmJm9lLmNhbGwoZSwiX193cmFwcGVkX18iKTtpZihifHx5KXt2YXIgaD1iP3IudmFsdWUoKTpyLGQ9eT9lLnZhbHVlKCk6ZTtyZXR1cm4gaXx8KGk9bmV3IHh0KSx1KGgsZCxuLG8saSl9fXJldHVybiEhdiYmKGl8fChpPW5ldyB4dCksZnVuY3Rpb24odCxyLGUsbixvLHUpe3ZhciBpPWUmTXIsYz1Gcih0KSxhPWMubGVuZ3RoO2lmKGEhPUZyKHIpLmxlbmd0aCYmIWkpcmV0dXJuITE7Zm9yKHZhciBmPWE7Zi0tOyl7dmFyIGw9Y1tmXTtpZighKGk/bCBpbiByOlVyLmNhbGwocixsKSkpcmV0dXJuITF9dmFyIHM9dS5nZXQodCkscD11LmdldChyKTtpZihzJiZwKXJldHVybiBzPT1yJiZwPT10O3ZhciB2PSEwO3Uuc2V0KHQsciksdS5zZXQocix0KTtmb3IodmFyIGI9aTsrK2Y8YTspe3ZhciB5PXRbbD1jW2ZdXSxoPXJbbF07aWYobil2YXIgZD1pP24oaCx5LGwscix0LHUpOm4oeSxoLGwsdCxyLHUpO2lmKCEodm9pZCAwPT09ZD95PT09aHx8byh5LGgsZSxuLHUpOmQpKXt2PSExO2JyZWFrfWJ8fChiPSJjb25zdHJ1Y3RvciI9PWwpfWlmKHYmJiFiKXt2YXIgaj10LmNvbnN0cnVjdG9yLGc9ci5jb25zdHJ1Y3RvcjtqPT1nfHwhKCJjb25zdHJ1Y3RvciJpbiB0KXx8ISgiY29uc3RydWN0b3IiaW4gcil8fCJmdW5jdGlvbiI9PXR5cGVvZiBqJiZqIGluc3RhbmNlb2YgaiYmImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcgaW5zdGFuY2VvZiBnfHwodj0hMSl9cmV0dXJuIHUuZGVsZXRlKHQpLHUuZGVsZXRlKHIpLHZ9KHIsZSxuLG8sdSxpKSl9ZnVuY3Rpb24gaWUodCxyLGUsbixvKXtyZXR1cm4gdD09PXJ8fChudWxsPT10fHxudWxsPT1yfHwhYih0KSYmIWIocik/dCE9dCYmciE9cjp1ZSh0LHIsZSxuLGllLG8pKX12YXIgY2U9MSxhZT0yO2Z1bmN0aW9uIGZlKHQpe3JldHVybiB0PT10JiYhXyh0KX1mdW5jdGlvbiBsZSh0LHIpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmKGVbdF09PT1yJiYodm9pZCAwIT09cnx8dCBpbiBPYmplY3QoZSkpKX19ZnVuY3Rpb24gc2UodCl7dmFyIHI9ZnVuY3Rpb24odCl7Zm9yKHZhciByPUNyKHQpLGU9ci5sZW5ndGg7ZS0tOyl7dmFyIG49cltlXSxvPXRbbl07cltlXT1bbixvLGZlKG8pXX1yZXR1cm4gcn0odCk7cmV0dXJuIDE9PXIubGVuZ3RoJiZyWzBdWzJdP2xlKHJbMF1bMF0sclswXVsxXSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fHxmdW5jdGlvbih0LHIsZSxuKXt2YXIgbz1lLmxlbmd0aCx1PW8saT0hbjtpZihudWxsPT10KXJldHVybiF1O2Zvcih0PU9iamVjdCh0KTtvLS07KXt2YXIgYz1lW29dO2lmKGkmJmNbMl0/Y1sxXSE9PXRbY1swXV06IShjWzBdaW4gdCkpcmV0dXJuITF9Zm9yKDsrK288dTspe3ZhciBhPShjPWVbb10pWzBdLGY9dFthXSxsPWNbMV07aWYoaSYmY1syXSl7aWYodm9pZCAwPT09ZiYmIShhIGluIHQpKXJldHVybiExfWVsc2V7dmFyIHM9bmV3IHh0O2lmKG4pdmFyIHA9bihmLGwsYSx0LHIscyk7aWYoISh2b2lkIDA9PT1wP2llKGwsZixjZXxhZSxuLHMpOnApKXJldHVybiExfX1yZXR1cm4hMH0oZSx0LHIpfX1mdW5jdGlvbiBwZSh0LHIpe3JldHVybiBudWxsIT10JiZyIGluIE9iamVjdCh0KX1mdW5jdGlvbiB2ZShyLGUpe3JldHVybiBudWxsIT1yJiZmdW5jdGlvbihyLGUsbil7Zm9yKHZhciBvPS0xLHU9KGU9bHQoZSxyKSkubGVuZ3RoLGk9ITE7KytvPHU7KXt2YXIgYz1wdChlW29dKTtpZighKGk9bnVsbCE9ciYmbihyLGMpKSlicmVhaztyPXJbY119cmV0dXJuIGl8fCsrbyE9dT9pOiEhKHU9bnVsbD09cj8wOnIubGVuZ3RoKSYmaHIodSkmJmJyKGMsdSkmJih0KHIpfHxjcihyKSl9KHIsZSxwZSl9dmFyIGJlPTEseWU9MjtmdW5jdGlvbiBoZSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIG51bGw9PXI/dm9pZCAwOnJbdF19fWZ1bmN0aW9uIGplKHQpe3JldHVybiBnKHQpP2RlKHB0KHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHZ0KHIsdCl9fSh0KX1mdW5jdGlvbiBnZShyKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOm51bGw9PXI/aGU6Im9iamVjdCI9PXR5cGVvZiByP3Qocik/KGU9clswXSxuPXJbMV0sZyhlKSYmZmUobik/bGUocHQoZSksbik6ZnVuY3Rpb24odCl7dmFyIHI9YnQodCxlKTtyZXR1cm4gdm9pZCAwPT09ciYmcj09PW4/dmUodCxlKTppZShuLHIsYmV8eWUpfSk6c2Uocik6amUocik7dmFyIGUsbn12YXIgX2UsT2U9ZnVuY3Rpb24odCxyLGUpe2Zvcih2YXIgbj0tMSxvPU9iamVjdCh0KSx1PWUodCksaT11Lmxlbmd0aDtpLS07KXt2YXIgYz11W19lP2k6KytuXTtpZighMT09PXIob1tjXSxjLG8pKWJyZWFrfXJldHVybiB0fTt2YXIgd2U9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybiBlO2lmKCEkcihlKSlyZXR1cm4gdChlLG4pO2Zvcih2YXIgbz1lLmxlbmd0aCx1PXI/bzotMSxpPU9iamVjdChlKTsocj91LS06Kyt1PG8pJiYhMSE9PW4oaVt1XSx1LGkpOyk7cmV0dXJuIGV9fSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmT2UodCxyLENyKX0pKSxtZT13ZTtmdW5jdGlvbiBBZSh0LHIpe3ZhciBlPS0xLG49JHIodCk/QXJyYXkodC5sZW5ndGgpOltdO3JldHVybiBtZSh0LChmdW5jdGlvbih0LG8sdSl7blsrK2VdPXIodCxvLHUpfSkpLG59dmFyIHhlPUFycmF5LnByb3RvdHlwZS5qb2luO3ZhciBTZT0iW29iamVjdCBTdHJpbmddIjt2YXIgUGU9ZGUoImxlbmd0aCIpLHplPVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTt2YXIgRWU9IlxcdWQ4MDAtXFx1ZGZmZiIsSWU9IlsiK0VlKyJdIixOZT0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLFRlPSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLCRlPSJbXiIrRWUrIl0iLENlPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixGZT0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsTWU9Iig/OiIrTmUrInwiK1RlKyIpIisiPyIsVWU9IltcXHVmZTBlXFx1ZmUwZl0/IixrZT1VZStNZSsoIig/OlxcdTIwMGQoPzoiK1skZSxDZSxGZV0uam9pbigifCIpKyIpIitVZStNZSsiKSoiKSxCZT0iKD86IitbJGUrTmUrIj8iLE5lLENlLEZlLEllXS5qb2luKCJ8IikrIikiLERlPVJlZ0V4cChUZSsiKD89IitUZSsiKXwiK0JlK2tlLCJnIik7ZnVuY3Rpb24gUmUodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB6ZS50ZXN0KHQpfSh0KT9mdW5jdGlvbih0KXtmb3IodmFyIHI9RGUubGFzdEluZGV4PTA7RGUudGVzdCh0KTspKytyO3JldHVybiByfSh0KTpQZSh0KX12YXIgTGU9IltvYmplY3QgTWFwXSIsVmU9IltvYmplY3QgU2V0XSI7ZnVuY3Rpb24gS2Uocil7aWYobnVsbD09cilyZXR1cm4gMDtpZigkcihyKSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mKGU9cil8fCF0KGUpJiZiKGUpJiZ2KGUpPT1TZT9SZShyKTpyLmxlbmd0aDt2YXIgZSxuPVpyKHIpO3JldHVybiBuPT1MZXx8bj09VmU/ci5zaXplOlRyKHIpLmxlbmd0aH12YXIgV2U9IltvYmplY3QgTnVtYmVyXSI7ZnVuY3Rpb24gcWUodCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytlPG4mJiExIT09cih0W2VdLGUsdCk7KTtyZXR1cm4gdH12YXIgR2U9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9ayhPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIHQoe30sIiIse30pLHR9Y2F0Y2godCl7fX0oKSxIZT1HZTtmdW5jdGlvbiBKZSh0LHIsZSl7Il9fcHJvdG9fXyI9PXImJkhlP0hlKHQscix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZSx3cml0YWJsZTohMH0pOnRbcl09ZX12YXIgUWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBYZSh0LHIsZSl7dmFyIG49dFtyXTtRZS5jYWxsKHQscikmJlYobixlKSYmKHZvaWQgMCE9PWV8fHIgaW4gdCl8fEplKHQscixlKX1mdW5jdGlvbiBZZSh0LHIsZSxuKXt2YXIgbz0hZTtlfHwoZT17fSk7Zm9yKHZhciB1PS0xLGk9ci5sZW5ndGg7Kyt1PGk7KXt2YXIgYz1yW3VdLGE9bj9uKGVbY10sdFtjXSxjLGUsdCk6dm9pZCAwO3ZvaWQgMD09PWEmJihhPXRbY10pLG8/SmUoZSxjLGEpOlhlKGUsYyxhKX1yZXR1cm4gZX12YXIgWmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB0bih0KXtpZighXyh0KSlyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9W107aWYobnVsbCE9dClmb3IodmFyIGUgaW4gT2JqZWN0KHQpKXIucHVzaChlKTtyZXR1cm4gcn0odCk7dmFyIHI9enIodCksZT1bXTtmb3IodmFyIG4gaW4gdCkoImNvbnN0cnVjdG9yIiE9bnx8IXImJlplLmNhbGwodCxuKSkmJmUucHVzaChuKTtyZXR1cm4gZX1mdW5jdGlvbiBybih0KXtyZXR1cm4gJHIodCk/U3IodCwhMCk6dG4odCl9dmFyIGVuPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsbm49ZW4mJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxvbj1ubiYmbm4uZXhwb3J0cz09PWVuP24uQnVmZmVyOnZvaWQgMCx1bj1vbj9vbi5hbGxvY1Vuc2FmZTp2b2lkIDA7dmFyIGNuPUVyKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpLGFuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7Zm9yKHZhciByPVtdO3Q7KVF0KHIsZXIodCkpLHQ9Y24odCk7cmV0dXJuIHJ9Oll0LGZuPWFuO2Z1bmN0aW9uIGxuKHQpe3JldHVybiBYdCh0LHJuLGZuKX12YXIgc249T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBwbih0KXt2YXIgcj1uZXcgdC5jb25zdHJ1Y3Rvcih0LmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgVHQocikuc2V0KG5ldyBUdCh0KSkscn12YXIgdm49L1x3KiQvO3ZhciBibj1vP28ucHJvdG90eXBlOnZvaWQgMCx5bj1ibj9ibi52YWx1ZU9mOnZvaWQgMDt2YXIgaG49IltvYmplY3QgQm9vbGVhbl0iLGRuPSJbb2JqZWN0IERhdGVdIixqbj0iW29iamVjdCBNYXBdIixnbj0iW29iamVjdCBOdW1iZXJdIixfbj0iW29iamVjdCBSZWdFeHBdIixPbj0iW29iamVjdCBTZXRdIix3bj0iW29iamVjdCBTdHJpbmddIixtbj0iW29iamVjdCBTeW1ib2xdIixBbj0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLHhuPSJbb2JqZWN0IERhdGFWaWV3XSIsU249IltvYmplY3QgRmxvYXQzMkFycmF5XSIsUG49IltvYmplY3QgRmxvYXQ2NEFycmF5XSIsem49IltvYmplY3QgSW50OEFycmF5XSIsRW49IltvYmplY3QgSW50MTZBcnJheV0iLEluPSJbb2JqZWN0IEludDMyQXJyYXldIixObj0iW29iamVjdCBVaW50OEFycmF5XSIsVG49IltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIiwkbj0iW29iamVjdCBVaW50MTZBcnJheV0iLENuPSJbb2JqZWN0IFVpbnQzMkFycmF5XSI7ZnVuY3Rpb24gRm4odCxyLGUpe3ZhciBuLG89dC5jb25zdHJ1Y3Rvcjtzd2l0Y2gocil7Y2FzZSBBbjpyZXR1cm4gcG4odCk7Y2FzZSBobjpjYXNlIGRuOnJldHVybiBuZXcgbygrdCk7Y2FzZSB4bjpyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgZT1yP3BuKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3IoZSx0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX0odCxlKTtjYXNlIFNuOmNhc2UgUG46Y2FzZSB6bjpjYXNlIEVuOmNhc2UgSW46Y2FzZSBObjpjYXNlIFRuOmNhc2UgJG46Y2FzZSBDbjpyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgZT1yP3BuKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3IoZSx0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfSh0LGUpO2Nhc2Ugam46cmV0dXJuIG5ldyBvO2Nhc2UgZ246Y2FzZSB3bjpyZXR1cm4gbmV3IG8odCk7Y2FzZSBfbjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5zb3VyY2Usdm4uZXhlYyh0KSk7cmV0dXJuIHIubGFzdEluZGV4PXQubGFzdEluZGV4LHJ9KHQpO2Nhc2UgT246cmV0dXJuIG5ldyBvO2Nhc2UgbW46cmV0dXJuIG49dCx5bj9PYmplY3QoeW4uY2FsbChuKSk6e319fXZhciBNbj1PYmplY3QuY3JlYXRlLFVuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7aWYoIV8ocikpcmV0dXJue307aWYoTW4pcmV0dXJuIE1uKHIpO3QucHJvdG90eXBlPXI7dmFyIGU9bmV3IHQ7cmV0dXJuIHQucHJvdG90eXBlPXZvaWQgMCxlfX0oKSxrbj1Vbjt2YXIgQm49d3ImJndyLmlzTWFwLERuPUJuP2pyKEJuKTpmdW5jdGlvbih0KXtyZXR1cm4gYih0KSYmIltvYmplY3QgTWFwXSI9PVpyKHQpfTt2YXIgUm49d3ImJndyLmlzU2V0LExuPVJuP2pyKFJuKTpmdW5jdGlvbih0KXtyZXR1cm4gYih0KSYmIltvYmplY3QgU2V0XSI9PVpyKHQpfSxWbj0xLEtuPTIsV249NCxxbj0iW29iamVjdCBBcmd1bWVudHNdIixHbj0iW29iamVjdCBGdW5jdGlvbl0iLEhuPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsSm49IltvYmplY3QgT2JqZWN0XSIsUW49e307ZnVuY3Rpb24gWG4ocixlLG4sbyx1LGkpe3ZhciBjLGE9ZSZWbixmPWUmS24sbD1lJlduO2lmKG4mJihjPXU/bihyLG8sdSxpKTpuKHIpKSx2b2lkIDAhPT1jKXJldHVybiBjO2lmKCFfKHIpKXJldHVybiByO3ZhciBzPXQocik7aWYocyl7aWYoYz1mdW5jdGlvbih0KXt2YXIgcj10Lmxlbmd0aCxlPW5ldyB0LmNvbnN0cnVjdG9yKHIpO3JldHVybiByJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJnNuLmNhbGwodCwiaW5kZXgiKSYmKGUuaW5kZXg9dC5pbmRleCxlLmlucHV0PXQuaW5wdXQpLGV9KHIpLCFhKXJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBlPS0xLG49dC5sZW5ndGg7Zm9yKHJ8fChyPUFycmF5KG4pKTsrK2U8bjspcltlXT10W2VdO3JldHVybiByfShyLGMpfWVsc2V7dmFyIHA9WnIociksdj1wPT1Hbnx8cD09SG47aWYoc3IocikpcmV0dXJuIGZ1bmN0aW9uKHQscil7aWYocilyZXR1cm4gdC5zbGljZSgpO3ZhciBlPXQubGVuZ3RoLG49dW4/dW4oZSk6bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIHQuY29weShuKSxufShyLGEpO2lmKHA9PUpufHxwPT1xbnx8diYmIXUpe2lmKGM9Znx8dj97fTpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdC5jb25zdHJ1Y3Rvcnx8enIodCk/e306a24oY24odCkpfShyKSwhYSlyZXR1cm4gZj9mdW5jdGlvbih0LHIpe3JldHVybiBZZSh0LGZuKHQpLHIpfShyLGZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJlllKHIscm4ociksdCl9KGMscikpOmZ1bmN0aW9uKHQscil7cmV0dXJuIFllKHQsZXIodCkscil9KHIsZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmWWUocixDcihyKSx0KX0oYyxyKSl9ZWxzZXtpZighUW5bcF0pcmV0dXJuIHU/cjp7fTtjPUZuKHIscCxhKX19aXx8KGk9bmV3IHh0KTt2YXIgYj1pLmdldChyKTtpZihiKXJldHVybiBiO2kuc2V0KHIsYyksTG4ocik/ci5mb3JFYWNoKChmdW5jdGlvbih0KXtjLmFkZChYbih0LGUsbix0LHIsaSkpfSkpOkRuKHIpJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQsbyl7Yy5zZXQobyxYbih0LGUsbixvLHIsaSkpfSkpO3ZhciB5PXM/dm9pZCAwOihsP2Y/bG46RnI6Zj9ybjpDcikocik7cmV0dXJuIHFlKHl8fHIsKGZ1bmN0aW9uKHQsbyl7eSYmKHQ9cltvPXRdKSxYZShjLG8sWG4odCxlLG4sbyxyLGkpKX0pKSxjfVFuW3FuXT1RblsiW29iamVjdCBBcnJheV0iXT1RblsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1RblsiW29iamVjdCBEYXRhVmlld10iXT1RblsiW29iamVjdCBCb29sZWFuXSJdPVFuWyJbb2JqZWN0IERhdGVdIl09UW5bIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPVFuWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1RblsiW29iamVjdCBJbnQ4QXJyYXldIl09UW5bIltvYmplY3QgSW50MTZBcnJheV0iXT1RblsiW29iamVjdCBJbnQzMkFycmF5XSJdPVFuWyJbb2JqZWN0IE1hcF0iXT1RblsiW29iamVjdCBOdW1iZXJdIl09UW5bSm5dPVFuWyJbb2JqZWN0IFJlZ0V4cF0iXT1RblsiW29iamVjdCBTZXRdIl09UW5bIltvYmplY3QgU3RyaW5nXSJdPVFuWyJbb2JqZWN0IFN5bWJvbF0iXT1RblsiW29iamVjdCBVaW50OEFycmF5XSJdPVFuWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPVFuWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPVFuWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLFFuWyJbb2JqZWN0IEVycm9yXSJdPVFuW0duXT1RblsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBZbj0xLFpuPTQ7ZnVuY3Rpb24gdG8odCl7cmV0dXJuIFhuKHQsWW58Wm4pfWZ1bmN0aW9uIHJvKHQpe2xldCByPSExO2lmKGh0KHQpKXI9IWlzTmFOKE51bWJlcih0KSk7ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2lmKF90KHQpKXJldHVybiExO3I9ITB9cmV0dXJuIHJ9ZnVuY3Rpb24gZW8odCl7aWYoIWh0KHQpJiYhcm8odCkmJiFoKHQpKXJldHVybiIiO2xldCByPSIiO3RyeXtyPVN0cmluZyh0KX1jYXRjaCh0KXt9dHJ5e3I9dC50b1N0cmluZygpfWNhdGNoKHQpe31yZXR1cm4gcn12YXIgbm89TWF0aC5jZWlsLG9vPU1hdGgubWF4O3ZhciB1bz0vXHMvO3ZhciBpbz0vXlxzKy87ZnVuY3Rpb24gY28odCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJnVvLnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UoaW8sIiIpOnR9dmFyIGFvPU5hTixmbz0vXlstK10weFswLTlhLWZdKyQvaSxsbz0vXjBiWzAxXSskL2ksc289L14wb1swLTddKyQvaSxwbz1wYXJzZUludDt2YXIgdm89MS8wLGJvPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiB5byh0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoaCh0KSlyZXR1cm4gYW87aWYoXyh0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9XyhyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9Y28odCk7dmFyIGU9bG8udGVzdCh0KTtyZXR1cm4gZXx8c28udGVzdCh0KT9wbyh0LnNsaWNlKDIpLGU/Mjo4KTpmby50ZXN0KHQpP2FvOit0fSh0KSk9PT12b3x8dD09PS12bz8odDwwPy0xOjEpKmJvOnQ9PXQ/dDowOjA9PT10P3Q6MH12YXIgaG89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSxuKXtyZXR1cm4gbiYmIm51bWJlciIhPXR5cGVvZiBuJiZmdW5jdGlvbih0LHIsZSl7aWYoIV8oZSkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHI7cmV0dXJuISEoIm51bWJlciI9PW4/JHIoZSkmJmJyKHIsZS5sZW5ndGgpOiJzdHJpbmciPT1uJiZyIGluIGUpJiZWKGVbcl0sdCl9KHIsZSxuKSYmKGU9bj12b2lkIDApLHI9eW8ociksdm9pZCAwPT09ZT8oZT1yLHI9MCk6ZT15byhlKSxmdW5jdGlvbih0LHIsZSxuKXtmb3IodmFyIG89LTEsdT1vbyhubygoci10KS8oZXx8MSkpLDApLGk9QXJyYXkodSk7dS0tOylpW24/dTorK29dPXQsdCs9ZTtyZXR1cm4gaX0ocixlLG49dm9pZCAwPT09bj9yPGU/MTotMTp5byhuKSx0KX19KCksam89aG87ZnVuY3Rpb24gZ28odCxyPW51bGwsZT17fSl7eChyKXx8KHI9dD0+dCk7bGV0IG49YnQoZSwiZm9yY2UiLCExKTtyZXR1cm4gQXQobil8fChuPSExKSxmdW5jdGlvbih0LHIsZT0hMSl7bGV0IG49W107aWYoIWd0KHQpJiYhZHQodCkpcmV0dXJuIHIodCxudWxsLFtdKTtmdW5jdGlvbiBvKHQpe2lmKGd0KHQpKXJldHVybiBqbyhLZSh0KSk7aWYoZHQodCkpe2xldCByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLG49bnVsbDtyZXR1cm4gZSYmKG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KSksZ3Qocil8fChyPVtdKSxndChuKXx8KG49W10pLFsuLi5yLC4uLm5dfXJldHVybiB0fXJldHVybiBmdW5jdGlvbiB0KGUsdSl7aWYoZ3QoZSkpcmV0dXJuIG8oZSkubWFwKChvPT57bGV0IHU9ZVtvXSxpPXRvKG4pO3JldHVybiBuLnB1c2gobyksdT1yKHUsbyxpKSx1PXQodSksbi5wb3AoKSx1fSkpO2lmKGR0KGUpKXtsZXQgdT1vKGUpLGk9e307cmV0dXJuIHUubWFwKChvPT57bGV0IHU9ZVtvXSxjPXRvKG4pO24ucHVzaChvKSx1PXIodSxvLGMpLHU9dCh1KSxuLnBvcCgpLGlbb109dX0pKSxpfXJldHVybiBlfSh0KX0odCxyLG4pfWZ1bmN0aW9uIF9vKHIsZT17fSl7aWYoIWp0KHIpJiYhd3QocikpcmV0dXJuW107bGV0IG49YnQoZSwiYmluZEtleSIsbnVsbCk7aHQobil8fChuPSJpZCIpO2xldCBvPWJ0KGUsImJpbmRQYXJlbnQiLG51bGwpO2h0KG8pfHwobz0icGFyZW50SWQiKTtsZXQgdT1idChlLCJiaW5kQmVsb25nIixudWxsKTtodCh1KXx8KHU9ImtleSIpO2xldCBpPWJ0KGUsImJpbmRUZXh0IixudWxsKTtodChpKXx8KGk9InRleHQiKTtsZXQgYz1idChlLCJiaW5kVHlwZSIsbnVsbCk7aHQoYyl8fChjPSJ0eXBlIik7bGV0IGE9YnQoZSwiYmluZE51bU9mQ2hpbHJlbiIsbnVsbCk7ZnVuY3Rpb24gZihyLGUpe3ZhciBuLG87dmFyIHUsaTtyZXR1cm4gcj10byhyKSxvPXQ9PmgodCk/ZW8odCk6dCxyPSh0KG49cik/dXQ6QWUpKG4sZ2UobykpLGgoZSkmJihlPWVvKGUpKSwoaHQoZSl8fHJvKGUpKSYmci5wdXNoKGUpLGk9Ii0iLG51bGw9PSh1PXIpPyIiOnhlLmNhbGwodSxpKX1odChhKXx8KGE9Im51bU9mQ2hpbHJlbiIpO2xldCBsPVtdO3JldHVybiBnbyhyLCgodCxyLGUpPT57bGV0IHM9ZihlLHIpLHA9ZihlLG51bGwpLHk9Im5vZGUiO2R0KHQpP3k9Im9iamVjdCI6Z3QodCkmJih5PSJhcnJheSIpO2xldCBoPXtbbl06cyxbb106cCxbY106eX07aWYoKGh0KHIpfHxmdW5jdGlvbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR8fGIodCkmJnYodCk9PVdlfShyKSkmJihoW3VdPXIpLGR0KHQpfHxndCh0KXx8KGhbaV09dCksZHQodCl8fGd0KHQpKXtsZXQgcj1udWxsO2R0KHQpP3I9S2UoQ3IodCkpOmd0KHQpJiYocj1LZSh0KSksaFthXT1yfXJldHVybiBsLnB1c2goaCksdH0pLHtmb3JjZTohMH0pLGx9ZnVuY3Rpb24gT28ocixlKXt2YXIgbjtyZXR1cm4odChyKT9xZTptZSkociwiZnVuY3Rpb24iPT10eXBlb2Yobj1lKT9uOmhlKX1mdW5jdGlvbiB3byh0LHIsZSl7cmV0dXJuIG51bGw9PXQ/dDpmdW5jdGlvbih0LHIsZSxuKXtpZighXyh0KSlyZXR1cm4gdDtmb3IodmFyIG89LTEsdT0ocj1sdChyLHQpKS5sZW5ndGgsaT11LTEsYz10O251bGwhPWMmJisrbzx1Oyl7dmFyIGE9cHQocltvXSksZj1lO2lmKCJfX3Byb3RvX18iPT09YXx8ImNvbnN0cnVjdG9yIj09PWF8fCJwcm90b3R5cGUiPT09YSlyZXR1cm4gdDtpZihvIT1pKXt2YXIgbD1jW2FdO3ZvaWQgMD09PShmPW4/bihsLGEsYyk6dm9pZCAwKSYmKGY9XyhsKT9sOmJyKHJbbysxXSk/W106e30pfVhlKGMsYSxmKSxjPWNbYV19cmV0dXJuIHR9KHQscixlKX1mdW5jdGlvbiBtbyh0LHIpe3JldHVybiByLmxlbmd0aDwyP3Q6dnQodCxmdW5jdGlvbih0LHIsZSl7dmFyIG49LTEsbz10Lmxlbmd0aDtyPDAmJihyPS1yPm8/MDpvK3IpLChlPWU+bz9vOmUpPDAmJihlKz1vKSxvPXI+ZT8wOmUtcj4+PjAscj4+Pj0wO2Zvcih2YXIgdT1BcnJheShvKTsrK248bzspdVtuXT10W24rcl07cmV0dXJuIHV9KHIsMCwtMSkpfWZ1bmN0aW9uIEFvKHQscil7cmV0dXJuIG51bGw9PSh0PW1vKHQscj1sdChyLHQpKSl8fGRlbGV0ZSB0W3B0KChlPXIsbj1udWxsPT1lPzA6ZS5sZW5ndGgsbj9lW24tMV06dm9pZCAwKSldO3ZhciBlLG59dmFyIHhvPSJbb2JqZWN0IE9iamVjdF0iLFNvPUZ1bmN0aW9uLnByb3RvdHlwZSxQbz1PYmplY3QucHJvdG90eXBlLHpvPVNvLnRvU3RyaW5nLEVvPVBvLmhhc093blByb3BlcnR5LElvPXpvLmNhbGwoT2JqZWN0KTtmdW5jdGlvbiBObyh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoIWIodCl8fHYodCkhPXhvKXJldHVybiExO3ZhciByPWNuKHQpO2lmKG51bGw9PT1yKXJldHVybiEwO3ZhciBlPUVvLmNhbGwociwiY29uc3RydWN0b3IiKSYmci5jb25zdHJ1Y3RvcjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSBpbnN0YW5jZW9mIGUmJnpvLmNhbGwoZSk9PUlvfSh0KT92b2lkIDA6dH12YXIgVG89bz9vLmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDA7ZnVuY3Rpb24gJG8ocil7cmV0dXJuIHQocil8fGNyKHIpfHwhIShUbyYmciYmcltUb10pfWZ1bmN0aW9uIENvKHQscixlLG4sbyl7dmFyIHU9LTEsaT10Lmxlbmd0aDtmb3IoZXx8KGU9JG8pLG98fChvPVtdKTsrK3U8aTspe3ZhciBjPXRbdV07cj4wJiZlKGMpP3I+MT9DbyhjLHItMSxlLG4sbyk6UXQobyxjKTpufHwob1tvLmxlbmd0aF09Yyl9cmV0dXJuIG99ZnVuY3Rpb24gRm8odCl7cmV0dXJuKG51bGw9PXQ/MDp0Lmxlbmd0aCk/Q28odCwxKTpbXX12YXIgTW89TWF0aC5tYXg7dmFyIFVvPUhlP2Z1bmN0aW9uKHQscil7cmV0dXJuIEhlKHQsInRvU3RyaW5nIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6KGU9cixmdW5jdGlvbigpe3JldHVybiBlfSksd3JpdGFibGU6ITB9KTt2YXIgZX06aGUsa289VW8sQm89RGF0ZS5ub3c7dmFyIERvPWZ1bmN0aW9uKHQpe3ZhciByPTAsZT0wO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPUJvKCksbz0xNi0obi1lKTtpZihlPW4sbz4wKXtpZigrK3I+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2Ugcj0wO3JldHVybiB0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0oa28pLFJvPURvO3ZhciBMbz1mdW5jdGlvbih0KXtyZXR1cm4gUm8oZnVuY3Rpb24odCxyLGUpe3JldHVybiByPU1vKHZvaWQgMD09PXI/dC5sZW5ndGgtMTpyLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPWFyZ3VtZW50cyxvPS0xLHU9TW8obi5sZW5ndGgtciwwKSxpPUFycmF5KHUpOysrbzx1OylpW29dPW5bcitvXTtvPS0xO2Zvcih2YXIgYz1BcnJheShyKzEpOysrbzxyOyljW29dPW5bb107cmV0dXJuIGNbcl09ZShpKSxmdW5jdGlvbih0LHIsZSl7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChyKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChyLGVbMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKHIsZVswXSxlWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChyLGVbMF0sZVsxXSxlWzJdKX1yZXR1cm4gdC5hcHBseShyLGUpfSh0LHRoaXMsYyl9fSh0LHZvaWQgMCxGbyksdCsiIil9KChmdW5jdGlvbih0LHIpe3ZhciBlPXt9O2lmKG51bGw9PXQpcmV0dXJuIGU7dmFyIG49ITE7cj11dChyLChmdW5jdGlvbihyKXtyZXR1cm4gcj1sdChyLHQpLG58fChuPXIubGVuZ3RoPjEpLHJ9KSksWWUodCxsbih0KSxlKSxuJiYoZT1YbihlLDcsTm8pKTtmb3IodmFyIG89ci5sZW5ndGg7by0tOylBbyhlLHJbb10pO3JldHVybiBlfSkpLFZvPUxvO2Z1bmN0aW9uIEtvKHQscj17fSl7bGV0IGU9IiRsZXZlbCIsbj0iJHBhcmVudHMiO2lmKCF3dCh0KSlyZXR1cm5bXTtsZXQgbz1idChyLCJiaW5kS2V5IixudWxsKTtodChvKXx8KG89ImlkIik7bGV0IHU9YnQociwiYmluZFBhcmVudCIsbnVsbCk7aHQodSl8fCh1PSJwYXJlbnRJZCIpO2xldCBpPWJ0KHIsImJpbmRDaGlsZHJlbiIsbnVsbCk7aHQoaSl8fChpPSJjaGlsZHJlbiIpO2xldCBjPWJ0KHIsInNhdmVFeHRQcm9wcyIsbnVsbCk7QXQoYyl8fChjPSExKSx0PWZ1bmN0aW9uKHQpe2xldCByPVtdO2Z1bmN0aW9uIGkoaSl7bGV0IGM9W107T28odCwoKHQsYSk9PntsZXQgZj1idCh0LHUpLGw9YnQoaSxvKTtpZihmJiZsJiZmPT09bCl7bGV0IHU9YnQoaSxuLFtdKTt1PXRvKHUpLHUucHVzaChpW29dKSxyLnB1c2goe1tlXTppW2VdKzEsW25dOnUsLi4udH0pfWVsc2UgYy5wdXNoKHQpfSkpLHQ9Y31pZih0PXRvKHQpLGZ1bmN0aW9uKCl7bGV0IG89W107T28odCwoKHQsaSk9PntPdCh0W3VdKT9yLnB1c2goe1tlXTowLFtuXTpbXSwuLi50fSk6by5wdXNoKHQpfSkpLHQ9b30oKSwwPT09ci5sZW5ndGgpcmV0dXJuIHI7bGV0IGM9LTE7Zm9yKDtjKz0xLCEoYz5yLmxlbmd0aC0xKTspe2lmKGkocltjXSksMD09PXQubGVuZ3RoKWJyZWFrfXJldHVybiByfSh0KTtsZXQgYT1mdW5jdGlvbih0KXtsZXQgcj1bXTtmdW5jdGlvbiBhKHQpe3JldHVybiBjP3Q6Vm8odCxbZSxuXSl9bGV0IGY9e307cmV0dXJuIE9vKHQsKChuLGMpPT57aWYoMD09PW5bZV0pe2xldCB0PWEobik7ci5wdXNoKHQpLGZbbltvXV09W2NdfWVsc2V7bGV0IGU9ZnVuY3Rpb24ocil7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07aWYoclt1XT09PW5bb10pcmV0dXJuIG59cmV0dXJuIG51bGx9KG4pO2lmKG51bGwhPT1lKXtsZXQgdD1mW2Vbb11dO3Q9Wy4uLnQsaV07bGV0IHU9YnQocix0LFtdKSxjPWEobik7dS5wdXNoKGMpLGZbbltvXV09Wy4uLnQsdS5sZW5ndGgtMV0sd28ocix0LHUpfWVsc2UgY29uc29sZS5sb2coYGNhbiBub3QgZmluZCBwYXJlbnQgZm9yICR7YnQobix1KX1gKX19KSkscn0odCk7cmV0dXJuIGF9bGV0IGNvbnZlcnRUb1RyZWVXaz1hc3luYyBmdW5jdGlvbih0LHI9e30pe3JldHVybiBmdW5jdGlvbih0LHI9e30pe2lmKCFqdCh0KSYmIXd0KHQpKXJldHVybltdO2xldCBlPWJ0KHIsImJpbmRLZXkiLG51bGwpO2h0KGUpfHwoZT0iaWQiKTtsZXQgbj1idChyLCJiaW5kUGFyZW50IixudWxsKTtodChuKXx8KG49InBhcmVudElkIik7bGV0IG89YnQociwiYmluZFRleHQiLG51bGwpO2h0KG8pfHwobz0idGV4dCIpO2xldCB1PWJ0KHIsImJpbmRDaGlsZHJlbiIsbnVsbCk7aHQodSl8fCh1PSJjaGlsZHJlbiIpO2xldCBpPWJ0KHIsImJpbmRUeXBlIixudWxsKTtodChpKXx8KGk9InR5cGUiKTtsZXQgYz1idChyLCJiaW5kTnVtT2ZDaGlscmVuIixudWxsKTtodChjKXx8KGM9Im51bU9mQ2hpbHJlbiIpO2xldCBhPWJ0KHIsImJpbmRSb290IixudWxsKTtodChhKXx8KGE9InJvb3QiKTtsZXQgZj1idChyLCJzYXZlRXh0UHJvcHMiLG51bGwpO3JldHVybiBBdChmKXx8KGY9ITEpLGh0KGEpJiYodD17W2FdOnR9KSxLbyhfbyh0LHtiaW5kS2V5OmUsYmluZFBhcmVudDpuLGJpbmRUZXh0Om8sYmluZFR5cGU6aSxiaW5kTnVtT2ZDaGlscmVuOmN9KSx7YmluZEtleTplLGJpbmRQYXJlbnQ6bixiaW5kQ2hpbGRyZW46dSxzYXZlRXh0UHJvcHM6Zn0pfSh0LHIpfTsKCgpsZXQgaW5zdGFuY2UgPSBudWxsCmZ1bmN0aW9uIGluaXQoaW5wdXQpewoKICAgIC8vaW5pdAogICAgbGV0IHIKICAgIAogICAgICAgIHIgPSB7CiAgICAgICAgICAgIG1haW46IGNvbnZlcnRUb1RyZWVXawogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBjb252ZXJ0VG9UcmVlV2sKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmVjdk1lc3NhZ2UoZS5kYXRhKQogICAgICAgIH0KICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=");function l(){let l=new Y;let I=function(d){try{let l=new Blob([d]),I=window.URL||window.webkitURL;return new Worker(I.createObjectURL(l))}catch(d){Z(d)}}(d);if(!I)return Z("invalid worker"),null;function m(){let d=function(){let d,l,I=new Promise((function(){d=arguments[0],l=arguments[1]}));return I.resolve=d,I.reject=l,I}(),m=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,l=[],I="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),m=I.length;for(let Z=0;Z<d;Z++)l[Z]=I[0|Math.random()*m];return l.join("")}(),Z={mode:"call",id:m,fun:"main",input:[...arguments]};return I.postMessage(Z),l.once(m,(l=>{"success"===l.state?d.resolve(l.msg):d.reject(l.msg)})),d}function Z(d){l.emit("error",d)}return I.onmessage=function(d){!function(d){let I=d,m=I.mode;"emit"!==m&&"return"!==m||("emit"===m&&l.emit(I.evName,I.msg),"return"===m&&l.emit(I.id,I))}(d.data)},I.onerror=Z,I.onmessageerror=function(d){Z(d.data)},function(){let d={mode:"init",type:"function",input:[...arguments]};I.postMessage(d)}([...arguments]),l.main=m,l.main=m,l.terminate=function(){I?(I.terminate(),I=void 0):Z("worker has been terminated")},l}n=async function(){let d=[...arguments],I=l();return await I.main(...d).finally((()=>{I.terminate()}))}}();try{process.on("unhandledRejection",(d=>{console.log("outer:unhandledRejection",d)})),process.on("uncaughtException",(d=>{console.log("outer:uncaughtException",d)})),process.on("uncaughtExceptionMonitor",(d=>{console.log("outer:uncaughtExceptionMonitor",d)}))}catch(d){}var t=n;export{t as default};