w-web-perm 1.0.72 → 1.0.74

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,7 +1,7 @@
1
1
  /*!
2
- * w-web-perm v1.0.72
2
+ * w-web-perm v1.0.74
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("path"),require("fs"),require("@hapi/hapi"),require("@hapi/inert"),require("stream"),require("worker_threads"),require("url"),require("pino"),require("readline")):"function"==typeof define&&define.amd?define(["path","fs","@hapi/hapi","@hapi/inert","stream","worker_threads","url","pino","readline"],t):(e="undefined"!=typeof globalThis?globalThis:e||self)["w-web-perm"]=t(e.path,e.fs,e["@hapi/hapi"],e["@hapi/inert"],e.stream,e.require$$0$1,e.url,e.pino,e.readline)}(this,function(e,t,n,r,i,s,u,o,c){"use strict";var l="undefined"!=typeof document?document.currentScript:null,a=Array.isArray,d="object"==typeof global&&global&&global.Object===Object&&global,D="object"==typeof self&&self&&self.Object===Object&&self,M=d||D||Function("return this")(),w=M.Symbol,y=Object.prototype,m=y.hasOwnProperty,g=y.toString,I=w?w.toStringTag:void 0;var C=Object.prototype.toString;var p=w?w.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":p&&p in Object(e)?function(e){var t=m.call(e,I),n=e[I];try{e[I]=void 0;var r=!0}catch(e){}var i=g.call(e);return r&&(t?e[I]=n:delete e[I]),i}(e):function(e){return C.call(e)}(e)}function L(e){return null!=e&&"object"==typeof e}function h(e){return"symbol"==typeof e||L(e)&&"[object Symbol]"==f(e)}var b=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/;function N(e,t){if(a(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!h(e))||(A.test(e)||!b.test(e)||null!=t&&e in Object(t))}function x(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function E(e){if(!x(e))return!1;var t=f(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var T,Z=M["__core-js_shared__"],v=(T=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+T:"";var X=Function.prototype.toString;function S(e){if(null!=e){try{return X.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Y=/^\[object .+?Constructor\]$/,G=Function.prototype,j=Object.prototype,F=G.toString,K=j.hasOwnProperty,z=RegExp("^"+F.call(K).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function W(e){return!(!x(e)||(t=e,v&&v in t))&&(E(e)?z:Y).test(S(e));var t}function B(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return W(n)?n:void 0}var V=B(Object,"create");var H=Object.prototype.hasOwnProperty;var U=Object.prototype.hasOwnProperty;function k(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Q(e,t){return e===t||e!=e&&t!=t}function P(e,t){for(var n=e.length;n--;)if(Q(e[n][0],t))return n;return-1}k.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},k.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},k.prototype.get=function(e){var t=this.__data__;if(V){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return H.call(t,e)?t[e]:void 0},k.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:U.call(t,e)},k.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=V&&void 0===t?"__lodash_hash_undefined__":t,this};var J=Array.prototype.splice;function R(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}R.prototype.clear=function(){this.__data__=[],this.size=0},R.prototype.delete=function(e){var t=this.__data__,n=P(t,e);return!(n<0)&&(n==t.length-1?t.pop():J.call(t,n,1),--this.size,!0)},R.prototype.get=function(e){var t=this.__data__,n=P(t,e);return n<0?void 0:t[n][1]},R.prototype.has=function(e){return P(this.__data__,e)>-1},R.prototype.set=function(e,t){var n=this.__data__,r=P(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var O=B(M,"Map");function _(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function $(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}$.prototype.clear=function(){this.size=0,this.__data__={hash:new k,map:new(O||R),string:new k}},$.prototype.delete=function(e){var t=_(this,e).delete(e);return this.size-=t?1:0,t},$.prototype.get=function(e){return _(this,e).get(e)},$.prototype.has=function(e){return _(this,e).has(e)},$.prototype.set=function(e,t){var n=_(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function q(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var u=e.apply(this,r);return n.cache=s.set(i,u)||s,u};return n.cache=new(q.Cache||$),n}q.Cache=$;var ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/\\(\\)?/g,ne=function(e){var t=q(e,function(e){return 500===n.size&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,function(e,n,r,i){t.push(r?i.replace(te,"$1"):n||e)}),t}),re=ne;function ie(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var se=w?w.prototype:void 0,ue=se?se.toString:void 0;function oe(e){if("string"==typeof e)return e;if(a(e))return ie(e,oe)+"";if(h(e))return ue?ue.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ce(e){return null==e?"":oe(e)}function le(e,t){return a(e)?e:N(e,t)?[e]:re(ce(e))}function ae(e){if("string"==typeof e||h(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function de(e,t){for(var n=0,r=(t=le(t,e)).length;null!=e&&n<r;)e=e[ae(t[n++])];return n&&n==r?e:void 0}function De(e,t,n){var r=null==e?void 0:de(e,t);return void 0===r?n:r}function Me(e){var t=this.__data__=new R(e);this.size=t.size}Me.prototype.clear=function(){this.__data__=new R,this.size=0},Me.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Me.prototype.get=function(e){return this.__data__.get(e)},Me.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.set=function(e,t){var n=this.__data__;if(n instanceof R){var r=n.__data__;if(!O||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new $(r)}return n.set(e,t),this.size=n.size,this};function we(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new $;++t<n;)this.add(e[t])}function ye(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function me(e,t){return e.has(t)}we.prototype.add=we.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},we.prototype.has=function(e){return this.__data__.has(e)};function ge(e,t,n,r,i,s){var u=1&n,o=e.length,c=t.length;if(o!=c&&!(u&&c>o))return!1;var l=s.get(e),a=s.get(t);if(l&&a)return l==t&&a==e;var d=-1,D=!0,M=2&n?new we:void 0;for(s.set(e,t),s.set(t,e);++d<o;){var w=e[d],y=t[d];if(r)var m=u?r(y,w,d,t,e,s):r(w,y,d,e,t,s);if(void 0!==m){if(m)continue;D=!1;break}if(M){if(!ye(t,function(e,t){if(!me(M,t)&&(w===e||i(w,e,n,r,s)))return M.push(t)})){D=!1;break}}else if(w!==y&&!i(w,y,n,r,s)){D=!1;break}}return s.delete(e),s.delete(t),D}var Ie=M.Uint8Array;function Ce(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function pe(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var fe=w?w.prototype:void 0,Le=fe?fe.valueOf:void 0;function he(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function be(e,t,n){var r=t(e);return a(e)?r:he(r,n(e))}function Ae(e,t){for(var n=-1,r=null==e?0:e.length,i=0,s=[];++n<r;){var u=e[n];t(u,n,e)&&(s[i++]=u)}return s}function Ne(){return[]}var xe=Object.prototype.propertyIsEnumerable,Ee=Object.getOwnPropertySymbols,Te=Ee?function(e){return null==e?[]:(e=Object(e),Ae(Ee(e),function(t){return xe.call(e,t)}))}:Ne;function Ze(e){return L(e)&&"[object Arguments]"==f(e)}var ve=Object.prototype,Xe=ve.hasOwnProperty,Se=ve.propertyIsEnumerable,Ye=Ze(function(){return arguments}())?Ze:function(e){return L(e)&&Xe.call(e,"callee")&&!Se.call(e,"callee")},Ge=Ye;var je="object"==typeof exports&&exports&&!exports.nodeType&&exports,Fe=je&&"object"==typeof module&&module&&!module.nodeType&&module,Ke=Fe&&Fe.exports===je?M.Buffer:void 0,ze=(Ke?Ke.isBuffer:void 0)||function(){return!1},We=/^(?:0|[1-9]\d*)$/;function Be(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&We.test(e))&&e>-1&&e%1==0&&e<t}function Ve(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var He={};function Ue(e){return function(t){return e(t)}}He["[object Float32Array]"]=He["[object Float64Array]"]=He["[object Int8Array]"]=He["[object Int16Array]"]=He["[object Int32Array]"]=He["[object Uint8Array]"]=He["[object Uint8ClampedArray]"]=He["[object Uint16Array]"]=He["[object Uint32Array]"]=!0,He["[object Arguments]"]=He["[object Array]"]=He["[object ArrayBuffer]"]=He["[object Boolean]"]=He["[object DataView]"]=He["[object Date]"]=He["[object Error]"]=He["[object Function]"]=He["[object Map]"]=He["[object Number]"]=He["[object Object]"]=He["[object RegExp]"]=He["[object Set]"]=He["[object String]"]=He["[object WeakMap]"]=!1;var ke="object"==typeof exports&&exports&&!exports.nodeType&&exports,Qe=ke&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=Qe&&Qe.exports===ke&&d.process,Je=function(){try{var e=Qe&&Qe.require&&Qe.require("util").types;return e||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),Re=Je&&Je.isTypedArray,Oe=Re?Ue(Re):function(e){return L(e)&&Ve(e.length)&&!!He[f(e)]},_e=Object.prototype.hasOwnProperty;function $e(e,t){var n=a(e),r=!n&&Ge(e),i=!n&&!r&&ze(e),s=!n&&!r&&!i&&Oe(e),u=n||r||i||s,o=u?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=o.length;for(var l in e)!t&&!_e.call(e,l)||u&&("length"==l||i&&("offset"==l||"parent"==l)||s&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Be(l,c))||o.push(l);return o}var qe=Object.prototype;function et(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||qe)}function tt(e,t){return function(n){return e(t(n))}}var nt=tt(Object.keys,Object),rt=Object.prototype.hasOwnProperty;function it(e){if(!et(e))return nt(e);var t=[];for(var n in Object(e))rt.call(e,n)&&"constructor"!=n&&t.push(n);return t}function st(e){return null!=e&&Ve(e.length)&&!E(e)}function ut(e){return st(e)?$e(e):it(e)}function ot(e){return be(e,ut,Te)}var ct=Object.prototype.hasOwnProperty;var lt=B(M,"DataView"),at=B(M,"Promise"),dt=B(M,"Set"),Dt=B(M,"WeakMap"),Mt="[object Map]",wt="[object Promise]",yt="[object Set]",mt="[object WeakMap]",gt="[object DataView]",It=S(lt),Ct=S(O),pt=S(at),ft=S(dt),Lt=S(Dt),ht=f;(lt&&ht(new lt(new ArrayBuffer(1)))!=gt||O&&ht(new O)!=Mt||at&&ht(at.resolve())!=wt||dt&&ht(new dt)!=yt||Dt&&ht(new Dt)!=mt)&&(ht=function(e){var t=f(e),n="[object Object]"==t?e.constructor:void 0,r=n?S(n):"";if(r)switch(r){case It:return gt;case Ct:return Mt;case pt:return wt;case ft:return yt;case Lt:return mt}return t});var bt=ht,At="[object Arguments]",Nt="[object Array]",xt="[object Object]",Et=Object.prototype.hasOwnProperty;function Tt(e,t,n,r,i,s){var u=a(e),o=a(t),c=u?Nt:bt(e),l=o?Nt:bt(t),d=(c=c==At?xt:c)==xt,D=(l=l==At?xt:l)==xt,M=c==l;if(M&&ze(e)){if(!ze(t))return!1;u=!0,d=!1}if(M&&!d)return s||(s=new Me),u||Oe(e)?ge(e,t,n,r,i,s):function(e,t,n,r,i,s,u){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!s(new Ie(e),new Ie(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Q(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var o=Ce;case"[object Set]":var c=1&r;if(o||(o=pe),e.size!=t.size&&!c)return!1;var l=u.get(e);if(l)return l==t;r|=2,u.set(e,t);var a=ge(o(e),o(t),r,i,s,u);return u.delete(e),a;case"[object Symbol]":if(Le)return Le.call(e)==Le.call(t)}return!1}(e,t,c,n,r,i,s);if(!(1&n)){var w=d&&Et.call(e,"__wrapped__"),y=D&&Et.call(t,"__wrapped__");if(w||y){var m=w?e.value():e,g=y?t.value():t;return s||(s=new Me),i(m,g,n,r,s)}}return!!M&&(s||(s=new Me),function(e,t,n,r,i,s){var u=1&n,o=ot(e),c=o.length;if(c!=ot(t).length&&!u)return!1;for(var l=c;l--;){var a=o[l];if(!(u?a in t:ct.call(t,a)))return!1}var d=s.get(e),D=s.get(t);if(d&&D)return d==t&&D==e;var M=!0;s.set(e,t),s.set(t,e);for(var w=u;++l<c;){var y=e[a=o[l]],m=t[a];if(r)var g=u?r(m,y,a,t,e,s):r(y,m,a,e,t,s);if(!(void 0===g?y===m||i(y,m,n,r,s):g)){M=!1;break}w||(w="constructor"==a)}if(M&&!w){var I=e.constructor,C=t.constructor;I==C||!("constructor"in e)||!("constructor"in t)||"function"==typeof I&&I instanceof I&&"function"==typeof C&&C instanceof C||(M=!1)}return s.delete(e),s.delete(t),M}(e,t,n,r,i,s))}function Zt(e,t,n,r,i){return e===t||(null==e||null==t||!L(e)&&!L(t)?e!=e&&t!=t:Tt(e,t,n,r,Zt,i))}function vt(e){return e==e&&!x(e)}function Xt(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}function St(e){var t=function(e){for(var t=ut(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,vt(i)]}return t}(e);return 1==t.length&&t[0][2]?Xt(t[0][0],t[0][1]):function(n){return n===e||function(e,t,n,r){var i=n.length,s=i,u=!r;if(null==e)return!s;for(e=Object(e);i--;){var o=n[i];if(u&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++i<s;){var c=(o=n[i])[0],l=e[c],a=o[1];if(u&&o[2]){if(void 0===l&&!(c in e))return!1}else{var d=new Me;if(r)var D=r(l,a,c,e,t,d);if(!(void 0===D?Zt(a,l,3,r,d):D))return!1}}return!0}(n,e,t)}}function Yt(e,t){return null!=e&&t in Object(e)}function Gt(e,t){return null!=e&&function(e,t,n){for(var r=-1,i=(t=le(t,e)).length,s=!1;++r<i;){var u=ae(t[r]);if(!(s=null!=e&&n(e,u)))break;e=e[u]}return s||++r!=i?s:!!(i=null==e?0:e.length)&&Ve(i)&&Be(u,i)&&(a(e)||Ge(e))}(e,t,Yt)}function jt(e){return e}function Ft(e){return function(t){return null==t?void 0:t[e]}}function Kt(e){return N(e)?Ft(ae(e)):function(e){return function(t){return de(t,e)}}(e)}function zt(e){return"function"==typeof e?e:null==e?jt:"object"==typeof e?a(e)?function(e,t){return N(e)&&vt(t)?Xt(ae(e),t):function(n){var r=De(n,e);return void 0===r&&r===t?Gt(n,e):Zt(t,r,3)}}(e[0],e[1]):St(e):Kt(e)}var Wt,Bt=function(e,t,n){for(var r=-1,i=Object(e),s=n(e),u=s.length;u--;){var o=s[Wt?u:++r];if(!1===t(i[o],o,i))break}return e};var Vt=function(e,t){return function(n,r){if(null==n)return n;if(!st(n))return e(n,r);for(var i=n.length,s=t?i:-1,u=Object(n);(t?s--:++s<i)&&!1!==r(u[s],s,u););return n}}(function(e,t){return e&&Bt(e,t,ut)}),Ht=Vt;function Ut(e,t){var n=-1,r=st(e)?Array(e.length):[];return Ht(e,function(e,i,s){r[++n]=t(e,i,s)}),r}function kt(e,t){return(a(e)?ie:Ut)(e,zt(t))}var Qt=Array.prototype.join;function Pt(e){return"[object Object]"===Object.prototype.toString.call(e)}function Jt(e){if(Pt(e)){for(let t in e)return!0;return!1}return!1}function Rt(e){return"[object String]"===Object.prototype.toString.call(e)}function Ot(e){return!(!Rt(e)||""===e)}var _t=/\s/;var $t=/^\s+/;function qt(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&_t.test(e.charAt(t)););return t}(e)+1).replace($t,""):e}var en=/^[-+]0x[0-9a-f]+$/i,tn=/^0b[01]+$/i,nn=/^0o[0-7]+$/i,rn=parseInt;function sn(e){if("number"==typeof e)return e;if(h(e))return NaN;if(x(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=x(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=qt(e);var n=tn.test(e);return n||nn.test(e)?rn(e.slice(2),n?2:8):en.test(e)?NaN:+e}var un=1/0;function on(e){return e?(e=sn(e))===un||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function cn(e){var t=on(e),n=t%1;return t==t?n?t-n:t:0}function ln(e){return e!=e}function an(e){let t=!1;if(Ot(e))t=!isNaN(Number(e));else if(function(e){return"[object Number]"===Object.prototype.toString.call(e)}(e)){if(ln(e))return!1;t=!0}return t}function dn(e){if(!an(e))return 0;return on(e)}function Dn(e){return!!an(e)&&(e=dn(e),"number"==typeof(t=e)&&t==cn(t));var t}var Mn=M.isFinite,wn=Math.min;var yn,mn=(yn=Math["round"],function(e,t){if(e=sn(e),(t=null==t?0:wn(cn(t),292))&&Mn(e)){var n=(ce(e)+"e").split("e");return+((n=(ce(yn(n[0]+"e"+(+n[1]+t)))+"e").split("e"))[0]+"e"+(+n[1]-t))}return yn(e)});function gn(e){if(!an(e))return 0;e=dn(e);let t=mn(e);return"0"===String(t)?0:t}function In(e){if(!Dn(e))return!1;return gn(e)>0}function Cn(e){return"[object Array]"===Object.prototype.toString.call(e)}function pn(e){return"[object Undefined]"===Object.prototype.toString.call(e)}function fn(e){if(Pt(e)){for(let t in e)return!1;return!0}return!1}function Ln(e){return!!pn(e)||(!!function(e){return"[object Null]"===Object.prototype.toString.call(e)}(e)||(!!fn(e)||(!!function(e){return!(!Rt(e)||""!==e)}(e)||(!!function(e){return!!Cn(e)&&0===e.length}(e)||!!ln(e)))))}function hn(e){return!!Cn(e)&&(0!==e.length&&(1!==e.length||!Ln(e[0])))}var bn=tt(Object.getPrototypeOf,Object),An=Function.prototype,Nn=Object.prototype,xn=An.toString,En=Nn.hasOwnProperty,Tn=xn.call(Object);function Zn(e){if(!L(e)||"[object Object]"!=f(e))return!1;var t=bn(e);if(null===t)return!0;var n=En.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&xn.call(n)==Tn}function vn(e){if(!L(e))return!1;var t=f(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Zn(e)}function Xn(e){return vn(e)}function Sn(e){let t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t}function Yn(e){let t,n=Object.prototype.toString.call(e);if(t="[object Promise]"===n,t)return!0;if("[object Function]"!==n)return!1;try{t="function"!=typeof e.subscribe&&"function"==typeof e.then}catch(e){}return t}function Gn(e){if(!Ot(e))return{};let t={};try{t=JSON.parse(e)}catch(e){t={}}return t}function jn(e){if(!Dn(e))return!1;return gn(e)>=0}function Fn(e,t){return Ot(e)&&jn(t)?0===(t=gn(t))?"":e.substring(0,t):""}function Kn(e,t){if(!Ot(e))return"";if(!jn(t))return"";if(0===(t=gn(t)))return"";let n=e.length-t;return n<0&&(n=0),e.substring(n,n+t)}function zn(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}let Wn=function(e){if(!Sn(e))throw new Error("fn is not a function");return function(){let t=zn(),n=null,r=null;try{n=e.apply(this,arguments)}catch(e){r=e}return null!==r?t.resolve({state:"error",msg:r}):Yn(n)?n.then(e=>{t.resolve({state:"success",msg:e})}).catch(e=>{"cancelled"===De(e,"reason")?t.resolve({state:"cancelled",msg:""}):t.resolve({state:"error",msg:e})}):t.resolve({state:"success",msg:n}),t}};function Bn(e,t={}){let n=De(t,"fs"),r=!1;try{n.statSync(e),r=!0}catch{r=!1}return r}function Vn(e,t={}){let n=De(t,"fs");if(!Bn(e,{fs:n}))return!1;let r=n.lstatSync(e);return!r.isFile()&&!r.isSymbolicLink()}function Hn(e){return Vn(e,{fs:t})}function Un(e,t={}){let n=De(t,"fs");return!!Bn(e,{fs:n})&&(!n.lstatSync(e).isDirectory()&&!n.lstatSync(e).isSymbolicLink())}function kn(e){return Un(e,{fs:t})}function Qn(e,t,n){if(!Ot(e))return"";if(!Ot(t))return"";if(!Rt(n))return"";return String(e).replaceAll(t,n)}function Pn(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function Jn(e,t){var n;return(a(e)?Pn:Ht)(e,"function"==typeof(n=t)?n:jt)}function Rn(e,t,n=""){if(!hn(t))return{};let r={};return Jn(t,function(t){r[t]=De(e,t,n)}),r}function On(e,t,n=""){if(!hn(e))return[];if(!hn(t))return[];return kt(e,e=>Rn(e,t,n))}var _n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function $n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function qn(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}),n}var er={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",o="day",c="week",l="month",a="quarter",d="year",D="date",M="Invalid Date",w=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},I={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+g(r,2,"0")+":"+g(i,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),s=n-i<0,u=t.clone().add(r+(s?-1:1),l);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:o,D:D,h:u,m:s,s:i,ms:r,Q:a}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},C="en",p={};p[C]=m;var f="$isDayjsObject",L=function(e){return e instanceof N||!(!e||!e[f])},h=function e(t,n,r){var i;if(!t)return C;if("string"==typeof t){var s=t.toLowerCase();p[s]&&(i=s),n&&(p[s]=n,i=s);var u=t.split("-");if(!i&&u.length>1)return e(u[0])}else{var o=t.name;p[o]=t,i=o}return!r&&i&&(C=i),i||!r&&C},b=function(e,t){if(L(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new N(n)},A=I;A.l=h,A.i=L,A.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var N=function(){function m(e){this.$L=h(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[f]=!0}var g=m.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(A.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(w);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return A},g.isValid=function(){return!(this.$d.toString()===M)},g.isSame=function(e,t){var n=b(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return b(e)<this.startOf(t)},g.isBefore=function(e,t){return this.endOf(t)<b(e)},g.$g=function(e,t,n){return A.u(e)?this[t]:this.set(n,e)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(e,t){var n=this,r=!!A.u(t)||t,a=A.p(e),M=function(e,t){var i=A.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(o)},w=function(e,t){return A.w(n.toDate()[e].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},y=this.$W,m=this.$M,g=this.$D,I="set"+(this.$u?"UTC":"");switch(a){case d:return r?M(1,0):M(31,11);case l:return r?M(1,m):M(0,m+1);case c:var C=this.$locale().weekStart||0,p=(y<C?y+7:y)-C;return M(r?g-p:g+(6-p),m);case o:case D:return w(I+"Hours",0);case u:return w(I+"Minutes",1);case s:return w(I+"Seconds",2);case i:return w(I+"Milliseconds",3);default:return this.clone()}},g.endOf=function(e){return this.startOf(e,!1)},g.$set=function(e,t){var n,c=A.p(e),a="set"+(this.$u?"UTC":""),M=(n={},n[o]=a+"Date",n[D]=a+"Date",n[l]=a+"Month",n[d]=a+"FullYear",n[u]=a+"Hours",n[s]=a+"Minutes",n[i]=a+"Seconds",n[r]=a+"Milliseconds",n)[c],w=c===o?this.$D+(t-this.$W):t;if(c===l||c===d){var y=this.clone().set(D,1);y.$d[M](w),y.init(),this.$d=y.set(D,Math.min(this.$D,y.daysInMonth())).$d}else M&&this.$d[M](w);return this.init(),this},g.set=function(e,t){return this.clone().$set(e,t)},g.get=function(e){return this[A.p(e)]()},g.add=function(r,a){var D,M=this;r=Number(r);var w=A.p(a),y=function(e){var t=b(M);return A.w(t.date(t.date()+Math.round(e*r)),M)};if(w===l)return this.set(l,this.$M+r);if(w===d)return this.set(d,this.$y+r);if(w===o)return y(1);if(w===c)return y(7);var m=(D={},D[s]=t,D[u]=n,D[i]=e,D)[w]||1,g=this.$d.getTime()+r*m;return A.w(g,this)},g.subtract=function(e,t){return this.add(-1*e,t)},g.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||M;var r=e||"YYYY-MM-DDTHH:mm:ssZ",i=A.z(this),s=this.$H,u=this.$m,o=this.$M,c=n.weekdays,l=n.months,a=n.meridiem,d=function(e,n,i,s){return e&&(e[n]||e(t,r))||i[n].slice(0,s)},D=function(e){return A.s(s%12||12,e,"0")},w=a||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return A.s(t.$y,4,"0");case"M":return o+1;case"MM":return A.s(o+1,2,"0");case"MMM":return d(n.monthsShort,o,l,3);case"MMMM":return d(l,o);case"D":return t.$D;case"DD":return A.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return d(n.weekdaysMin,t.$W,c,2);case"ddd":return d(n.weekdaysShort,t.$W,c,3);case"dddd":return c[t.$W];case"H":return String(s);case"HH":return A.s(s,2,"0");case"h":return D(1);case"hh":return D(2);case"a":return w(s,u,!0);case"A":return w(s,u,!1);case"m":return String(u);case"mm":return A.s(u,2,"0");case"s":return String(t.$s);case"ss":return A.s(t.$s,2,"0");case"SSS":return A.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(r,D,M){var w,y=this,m=A.p(D),g=b(r),I=(g.utcOffset()-this.utcOffset())*t,C=this-g,p=function(){return A.m(y,g)};switch(m){case d:w=p()/12;break;case l:w=p();break;case a:w=p()/3;break;case c:w=(C-I)/6048e5;break;case o:w=(C-I)/864e5;break;case u:w=C/n;break;case s:w=C/t;break;case i:w=C/e;break;default:w=C}return M?w:A.a(w)},g.daysInMonth=function(){return this.endOf(l).$D},g.$locale=function(){return p[this.$L]},g.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=h(e,t,!0);return r&&(n.$L=r),n},g.clone=function(){return A.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},m}(),x=N.prototype;return b.prototype=x,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",o],["$M",l],["$y",d],["$D",D]].forEach(function(e){x[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),b.extend=function(e,t){return e.$i||(e(t,N,b),e.$i=!0),b},b.locale=h,b.isDayjs=L,b.unix=function(e){return b(1e3*e)},b.en=p[C],b.Ls=p,b.p={},b}()}(er);var tr=$n(er.exports);function nr(){if(!Sn(tr))throw new Error("invalid dayjs");return tr().format("YYYY-MM-DDTHH:mm:ssZ")}let rr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),ir=rr.length;function sr(e=32){let t=[];e=In(e)?gn(e):32;for(let n=0;n<e;n++)t[n]=rr[0|Math.random()*ir];return t.join("")}function ur(e){return!0===(t=e)||!1===t||L(t)&&"[object Boolean]"==f(t);var t}var or={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}(or);var cr=$n(or.exports);function lr(){return new cr}async function ar(e,t={}){let n=null,r=zn();if(!Sn(e))return r.reject("waitfunction需輸入函數f"),r;let i=async()=>{let t=e();return Yn(t)&&(t=await t),t};if(n=await i(),!0===n)return r.resolve(),r;let s=De(t,"attemptNum",null);In(s)||(s=200);let u=De(t,"timeInterval",null);In(u)||(u=1e3);let o=0,c=setInterval(async()=>{o+=1,n=await i(),!0===n&&(clearInterval(c),r.resolve()),o>s&&(clearInterval(c),r.reject(`exceeded attemptNum[${s}]`))},u);return r}function dr(e){return function(e,t={}){let n=De(t,"fs");if(Vn(e,{fs:n}))return{success:"input folder is already exists: "+e};if(Bn(e,{fs:n}))return{error:"input path already exists: "+e};try{n.mkdirSync(e,{recursive:!0})}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}function Dr(e){return"number"==typeof e||L(e)&&"[object Number]"==f(e)}function Mr(e){if(!(Ot(e)||an(e)||h(e)||function(e){return"[object BigInt]"===Object.prototype.toString.call(e)}(e)))return"";let t="";try{t=String(e)}catch(e){}try{t=e.toString()}catch(e){}return t}var wr={exports:{}};var yr,mr={exports:{}},gr=qn(Object.freeze({__proto__:null,default:{}}));function Ir(){return yr||(yr=1,function(e){var t;e.exports=(t=t||function(e,t){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==_n&&_n.crypto&&(n=_n.crypto),!n)try{n=gr}catch(e){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},u=s.lib={},o=u.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=u.WordArray=o.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var s=0;s<i;s++){var u=n[s>>>2]>>>24-s%4*8&255;t[r+s>>>2]|=u<<24-(r+s)%4*8}else for(var o=0;o<i;o+=4)t[r+o>>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new c.init(t,e)}}),l=s.enc={},a=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},d=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},D=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},M=u.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=D.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,s=r.sigBytes,u=this.blockSize,o=s/(4*u),l=(o=t?e.ceil(o):e.max((0|o)-this._minBufferSize,0))*u,a=e.min(4*l,s);if(l){for(var d=0;d<l;d+=u)this._doProcessBlock(i,d);n=i.splice(0,l),r.sigBytes-=a}return new c.init(n,a)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});u.Hasher=M.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){M.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new w.HMAC.init(e,n).finalize(t)}}});var w=s.algo={};return s}(Math),t)}(mr)),mr.exports}!function(e){e.exports=Ir().enc.Utf8}(wr);var Cr=$n(wr.exports),pr={exports:{}};!function(e){var t;e.exports=(t=Ir(),function(){var e=t,n=e.lib.WordArray;function r(e,t,r){for(var i=[],s=0,u=0;u<t;u++)if(u%4){var o=r[e.charCodeAt(u-1)]<<u%4*2|r[e.charCodeAt(u)]>>>6-u%4*2;i[s>>>2]|=o<<24-s%4*8,s++}return n.create(i,s)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],s=0;s<n;s+=3)for(var u=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,o=0;o<4&&s+.75*o<n;o++)i.push(r.charAt(u>>>6*(3-o)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e){var t=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<n.length;s++)i[n.charCodeAt(s)]=s}var u=n.charAt(64);if(u){var o=e.indexOf(u);-1!==o&&(t=o)}return r(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),t.enc.Base64)}(pr);var fr=$n(pr.exports);function Lr(e){if(!Ot(e))return"";let t=Cr.parse(e);return fr.stringify(t)}function hr(e,t){return!!Pt(e)&&(!(!Ot(t)&&!an(t))&&t in e)}function br(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)}function Ar(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function Nr(e){return"[object Uint16Array]"===Object.prototype.toString.call(e)}function xr(e){if(!(br(e)||(t=e,"[object Blob]"===Object.prototype.toString.call(t))||Ar(e)||Nr(e)))return null;var t;try{if(e.byteLength)return e.byteLength}catch(e){}try{if(e.length)return e.length}catch(e){}try{if(e.size)return e.size}catch(e){}return null}function Er(e){if(!Ot(e))return new Uint8Array;let t;try{t=function(e){if(!Rt(e))return new Uint8Array;let t=fr.parse(e),n=t.words,r=t.sigBytes,i=new Uint8Array(r);for(let e=0;e<r;e++){let t=n[e>>>2]>>>24-e%4*8&255;i[e]=t}return i}(Lr(e))}catch(e){return new Uint8Array}return t}function Tr(e,t,n=0,r=!0,i=52,s=8){return function(e,t,n,r,i,s){if(!an(e))return null;if(!Ar(t))return null;if(!Dn(n))return null;if(!ur(r))return null;if(!Dn(i))return null;if(!Dn(s))return null;let u,o,c;e=dn(e);let l=8*s-i-1,a=(1<<l)-1,d=a>>1,D=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,M=r?s-1:0,w=r?-1:1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,u=a):(u=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-u))<1&&(u--,c*=2),(e+=u+d>=1?D/c:D*Math.pow(2,1-d))*c>=2&&(u++,c/=2),u+d>=a?(o=0,u=a):u+d>=1?(o=(e*c-1)*Math.pow(2,i),u+=d):(o=e*Math.pow(2,d-1)*Math.pow(2,i),u=0));i>=8;t[n+M]=255&o,M+=w,o/=256,i-=8);for(u=u<<i|o,l+=i;l>0;t[n+M]=255&u,M+=w,u/=256,l-=8);return t[n+M-w]|=128*y,null}(e,t,n,r,i,s)}function Zr(e){let t=[],n=[];if(!hn(e)&&!Jt(e))return null;let r=[],i=[];function s(e){r.push(xr(e)),i.push(e)}try{let u=function(e){if(!Pt(e))return{results:"",binarys:[]};if(fn(e))return{results:"",binarys:[]};let t="",n=[];try{let r=-1;t=JSON.stringify(e,function(e,t){if(Ar(t)){r+=1;let e=`[Uint8Array]::${r}`;return n.push(t),e}if(Nr(t)){r+=1;let e=`[Uint16Array]::${r}`;return n.push(t),e}if(br(t)){r+=1;let e=`[ArrayBuffer]::${r}`;return n.push(t),e}return vn(t)&&(t=t.toString()),t})}catch(e){}return{results:t,binarys:n}}(e);s(Er(u.results)),Jn(u.binarys,e=>{s(e)});let o=r,c=Er(JSON.stringify(o)),l=new Uint8Array(8);Tr(xr(c),l),t.push(l),t.push(c),Jn(i,e=>{t.push(e)}),Jn(t,e=>{n=function(e,t){let n=xr(e),r=xr(t),i=new Uint8Array(n+r);return i.set(new Uint8Array(e),0),i.set(new Uint8Array(t),n),i}(n,e)})}catch(e){return null}return n}function vr(e,t=0,n=!0,r=52,i=8){return function(e,t,n,r,i){if(!Ar(e))return null;if(!Dn(t))return null;if(!ur(n))return null;if(!Dn(r))return null;if(!Dn(i))return null;let s,u,o=8*i-r-1,c=(1<<o)-1,l=c>>1,a=-7,d=n?0:i-1,D=n?1:-1,M=e[t+d];for(d+=D,s=M&(1<<-a)-1,M>>=-a,a+=o;a>0;s=256*s+e[t+d],d+=D,a-=8);for(u=s&(1<<-a)-1,s>>=-a,a+=r;a>0;u=256*u+e[t+d],d+=D,a-=8);if(0===s)s=1-l;else{if(s===c)return u?NaN:1/0*(M?-1:1);u+=Math.pow(2,r),s-=l}return(M?-1:1)*u*Math.pow(2,s-r)}(e,t,n,r,i)}var Xr={exports:{}};!function(e){var t;e.exports=(t=Ir(),function(){if("function"==typeof ArrayBuffer){var e=t.lib.WordArray,n=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var t=e.byteLength,r=[],i=0;i<t;i++)r[i>>>2]|=e[i]<<24-i%4*8;n.call(this,r,t)}else n.apply(this,arguments)};r.prototype=e}}(),t.lib.WordArray)}(Xr);var Sr=$n(Xr.exports);function Yr(e){if(!Ar(e))return"";let t;try{n=function(e){return Ar(e)?Sr.create(e).toString(fr):""}(e),t=Ot(n)?fr.parse(n).toString(Cr):""}catch(e){return""}var n;return t}function Gr(e){let t=null;if(!Ar(e))return null;try{let n=8,r=e.slice(0,n),i=e.slice(n,xr(e)),s=vr(r),u=i.slice(0,s),o=i.slice(s,xr(i)),c=Yr(u),l=function(e,t){let n=0,r=0,i=[];return Jn(t,t=>{r=n+t;let s=e.slice(n,r);n=r,i.push(s)}),i}(o,JSON.parse(c));t=function(e){if(!Jt(e))return{};let{results:t,binarys:n}=e;if(!Ot(t))return{};if(!Cn(n))return{};let r={};try{r=JSON.parse(t,function(e,t){if(Ot(t)){if(t.indexOf("[Uint8Array]::")>=0){let e=gn(t.replace("[Uint8Array]::",""));return n[e]}if(t.indexOf("[Uint16Array]::")>=0){let e=gn(t.replace("[Uint16Array]::",""));return n[e]}if(t.indexOf("[ArrayBuffer]::")>=0){let e=gn(t.replace("[ArrayBuffer]::",""));return n[e]}}return t})}catch(e){}return r}({results:Yr(l.shift()),binarys:l})}catch(e){}return t}function jr(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(i);++r<i;)s[r]=e[r+t];return s}function Fr(e){return e!=e}function Kr(e,t,n){return t==t?function(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}(e,t,n):function(e,t,n,r){for(var i=e.length,s=n+(r?1:-1);r?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,Fr,n)}var zr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Wr(e){return zr.test(e)}var Br="\\ud800-\\udfff",Vr="["+Br+"]",Hr="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ur="\\ud83c[\\udffb-\\udfff]",kr="[^"+Br+"]",Qr="(?:\\ud83c[\\udde6-\\uddff]){2}",Pr="[\\ud800-\\udbff][\\udc00-\\udfff]",Jr="(?:"+Hr+"|"+Ur+")"+"?",Rr="[\\ufe0e\\ufe0f]?",Or=Rr+Jr+("(?:\\u200d(?:"+[kr,Qr,Pr].join("|")+")"+Rr+Jr+")*"),_r="(?:"+[kr+Hr+"?",Hr,Qr,Pr,Vr].join("|")+")",$r=RegExp(Ur+"(?="+Ur+")|"+_r+Or,"g");function qr(e){return Wr(e)?function(e){return e.match($r)||[]}(e):function(e){return e.split("")}(e)}function ei(e,t,n){if((e=ce(e))&&(n||void 0===t))return qt(e);if(!e||!(t=oe(t)))return e;var r=qr(e),i=qr(t),s=function(e,t){for(var n=-1,r=e.length;++n<r&&Kr(t,e[n],0)>-1;);return n}(r,i),u=function(e,t){for(var n=e.length;n--&&Kr(t,e[n],0)>-1;);return n}(r,i)+1;return function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:jr(e,t,n)}(r,s,u).join("")}function ti(e,t){if(!Ot(e))return[];if(!Ot(t))return[];let n=function(e,t){return Ot(e)&&Ot(t)?e.split(t):[]}(e,t);n=kt(n,ei);let r=[];return Jn(n,function(e){Ot(e)&&r.push(e)}),r}function ni(e){return function(e,t={}){let n=De(t,"fs");if(!Bn(e,{fs:n}))return{success:"file does not exist: "+e};if(!Un(e,{fs:n}))return{error:"input path is not a file: "+e};try{n.unlinkSync(e)}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}var ri={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxmPWEudG9TdHJpbmcscz11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQscyksZT10W3NdO3RyeXt0W3NdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Zi5jYWxsKHQpO3JldHVybiBuJiYocj90W3NdPWU6ZGVsZXRlIHRbc10pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgTz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsUz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQsUj1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSx6PSgkPS9bXi5dKyQvLmV4ZWMoUiYmUi5rZXlzJiZSLmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB4PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxBPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1BLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQseiYmeiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PVN8fHI9PW18fHI9PU98fHI9PXd9KHQpP0U6RjtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4geC5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gZnQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gc3QodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbZnQocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBPdD1OYU4sU3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24gUnQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIE90O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6U3QudGVzdCh0KT9PdDordH12YXIgenQ9MS8wLHh0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBGdCh0KXtyZXR1cm4gdD8odD1SdCh0KSk9PT16dHx8dD09PS16dD8odDwwPy0xOjEpKnh0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBBdCh0KXt2YXIgcj1GdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEZ0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09QXQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9UnQodCksKGU9bnVsbD09ZT8wOkN0KEF0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfWZ1bmN0aW9uIFd0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKSxuPSExO3RyeXtlLnN0YXRTeW5jKHQpLG49ITB9Y2F0Y2h7bj0hMX1yZXR1cm4gbn1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoIVd0KHQse2ZzOmV9KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7cmV0dXJuISFXdCh0LHtmczplfSkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEp0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKTtpZighV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFIdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gS3QodCxyLGU9e30pe2xldCBuPSIiLG89c3QoZSwiZnMiKTtpZighcHQoaT10KXx8MD09PWkubGVuZ3RofHwxPT09aS5sZW5ndGgmJl90KGlbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciBpO2xldCB1PWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPUd0KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH0ociksYT1zdChlLCJmbk91dCIsIiIpO2R0KGEpfHwoYT1HdChyKSksQnQodSx7ZnM6b30pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoQnQodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoV3QodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0odSx7ZnM6b30pO2xldCBjPWx0KCk7dHJ5e2xldCBlPW8uY3JlYXRlV3JpdGVTdHJlYW0ocik7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2xldCBpPXRbcl07aWYoIUh0KGkse2ZzOm99KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtpfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPW8uY3JlYXRlUmVhZFN0cmVhbShpKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bj1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntKdChpLHtmczpvfSksdC5yZXNvbHZlKCl9KSksci5waXBlKGUse2VuZDohMX0pLHR9O2F3YWl0IHUoKX1lLmVuZCgpLGUub24oImVycm9yIiwodD0+e249dC5tZXNzYWdlLGMucmVqZWN0KG4pfSkpLGUub24oImZpbmlzaCIsKCgpPT57bGV0IHQ9e2ZpbGVuYW1lOmEscGF0aDpyfTtjLnJlc29sdmUodCl9KSl9Y2F0Y2godCl7bj10Lm1lc3NhZ2UsYy5yZWplY3Qobil9cmV0dXJuIGN9bGV0IG1lcmdlU2xpY2VzPWFzeW5jKGUsbixvKT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBuPXQucmVzb2x2ZShvLGAke2V9XyR7cn1gKTtpLnB1c2gobil9bGV0IHU9dC5yZXNvbHZlKG8sZSksYT1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsbj17fSl7cmV0dXJuIEt0KHQsZSx7ZnM6ciwuLi5ufSl9KGksdSk7cmV0dXJuIHIud3JpdGVGaWxlU3luYyhgJHt1fS5kb25lYCwiIiwidXRmOCIpLGF9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VTbGljZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VTbGljZXMKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHBhcmVudFBvcnQub24oJ21lc3NhZ2UnLCByZWN2TWVzc2FnZSkKICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){u(e)}}(t);if(!i)return u("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function u(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",u),i.on("exit",e=>{1!==e&&u("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):u("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(ri);var ii=$n(ri.exports);let si=(e,t,n)=>{let r=`${function(){if(!Sn(tr))throw new Error("invalid dayjs");return tr().format("YYYYMMDDHHmmss")}()}|${sr(6)}|${e}`;return setTimeout(()=>{ii(e,t,n).catch(e=>{console.log(e)})},1),r},ui=(t,n)=>{let r="";if(!Ot(t))return r=`invalid id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let i=De(ti(t,"|"),2,"");if(!Ot(i))return r=`can not find fileHash in id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let s=e.resolve(n,i),u=e.resolve(n,`${i}.done`),o=kn(s),c=kn(u),l=o&&c;return!o&&c&&ni(u),{state:l?"success":"merging",msg:"",path:s}};var oi={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG4mJiExIT09ZSh0W3JdLHIsdCk7KTtyZXR1cm4gdH12YXIgbixvPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG89LTEsdT1PYmplY3QodCksaT1yKHQpLGE9aS5sZW5ndGg7YS0tOyl7dmFyIGM9aVtuP2E6KytvXTtpZighMT09PWUodVtjXSxjLHUpKWJyZWFrfXJldHVybiB0fTt2YXIgdT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsaT0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGE9dXx8aXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxjPWEuU3ltYm9sLGY9T2JqZWN0LnByb3RvdHlwZSxzPWYuaGFzT3duUHJvcGVydHksbD1mLnRvU3RyaW5nLHA9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciB2PSJbb2JqZWN0IE51bGxdIix5PSJbb2JqZWN0IFVuZGVmaW5lZF0iLGQ9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/eTp2OmQmJmQgaW4gT2JqZWN0KHQpP2Z1bmN0aW9uKHQpe3ZhciBlPXMuY2FsbCh0LHApLHI9dFtwXTt0cnl7dFtwXT12b2lkIDA7dmFyIG49ITB9Y2F0Y2godCl7fXZhciBvPWwuY2FsbCh0KTtyZXR1cm4gbiYmKGU/dFtwXT1yOmRlbGV0ZSB0W3BdKSxvfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gaC5jYWxsKHQpfSh0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZyh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PWIodCl9dmFyIGo9T2JqZWN0LnByb3RvdHlwZSx3PWouaGFzT3duUHJvcGVydHksbT1qLnByb3BlcnR5SXNFbnVtZXJhYmxlLE89XyhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP186ZnVuY3Rpb24odCl7cmV0dXJuIGcodCkmJncuY2FsbCh0LCJjYWxsZWUiKSYmIW0uY2FsbCh0LCJjYWxsZWUiKX0sUz1BcnJheS5pc0FycmF5O3ZhciBBPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsej1BJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUseD16JiZ6LmV4cG9ydHM9PT1BP2EuQnVmZmVyOnZvaWQgMCxFPSh4P3guaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24oKXtyZXR1cm4hMX0saz05MDA3MTk5MjU0NzQwOTkxLEY9L14oPzowfFsxLTldXGQqKSQvO2Z1bmN0aW9uICQodCxlKXt2YXIgcj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/azplKSYmKCJudW1iZXIiPT1yfHwic3ltYm9sIiE9ciYmRi50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9dmFyIFA9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBMKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD1QfXZhciBJPXt9O0lbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPUlbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPUlbIltvYmplY3QgSW50OEFycmF5XSJdPUlbIltvYmplY3QgSW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IEludDMyQXJyYXldIl09SVsiW29iamVjdCBVaW50OEFycmF5XSJdPUlbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09SVsiW29iamVjdCBVaW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLElbIltvYmplY3QgQXJndW1lbnRzXSJdPUlbIltvYmplY3QgQXJyYXldIl09SVsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1JWyJbb2JqZWN0IEJvb2xlYW5dIl09SVsiW29iamVjdCBEYXRhVmlld10iXT1JWyJbb2JqZWN0IERhdGVdIl09SVsiW29iamVjdCBFcnJvcl0iXT1JWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPUlbIltvYmplY3QgTWFwXSJdPUlbIltvYmplY3QgTnVtYmVyXSJdPUlbIltvYmplY3QgT2JqZWN0XSJdPUlbIltvYmplY3QgUmVnRXhwXSJdPUlbIltvYmplY3QgU2V0XSJdPUlbIltvYmplY3QgU3RyaW5nXSJdPUlbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgTSxUPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsUj1UJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsVT1SJiZSLmV4cG9ydHM9PT1UJiZ1LnByb2Nlc3MsTj1mdW5jdGlvbigpe3RyeXt2YXIgdD1SJiZSLnJlcXVpcmUmJlIucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiB0fHxVJiZVLmJpbmRpbmcmJlUuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KCksRD1OJiZOLmlzVHlwZWRBcnJheSxCPUQ/KE09RCxmdW5jdGlvbih0KXtyZXR1cm4gTSh0KX0pOmZ1bmN0aW9uKHQpe3JldHVybiBnKHQpJiZMKHQubGVuZ3RoKSYmISFJW2IodCldfSxDPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gVyh0LGUpe3ZhciByPVModCksbj0hciYmTyh0KSxvPSFyJiYhbiYmRSh0KSx1PSFyJiYhbiYmIW8mJkIodCksaT1yfHxufHxvfHx1LGE9aT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPUFycmF5KHQpOysrcjx0OyluW3JdPWUocik7cmV0dXJuIG59KHQubGVuZ3RoLFN0cmluZyk6W10sYz1hLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkhZSYmIUMuY2FsbCh0LGYpfHxpJiYoImxlbmd0aCI9PWZ8fG8mJigib2Zmc2V0Ij09Znx8InBhcmVudCI9PWYpfHx1JiYoImJ1ZmZlciI9PWZ8fCJieXRlTGVuZ3RoIj09Znx8ImJ5dGVPZmZzZXQiPT1mKXx8JChmLGMpKXx8YS5wdXNoKGYpO3JldHVybiBhfXZhciBxPU9iamVjdC5wcm90b3R5cGU7dmFyIFY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoZShyKSl9fShPYmplY3Qua2V5cyxPYmplY3QpLEc9VixIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSih0KXtpZihyPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHxxKSlyZXR1cm4gRyh0KTt2YXIgZSxyLG49W107Zm9yKHZhciBvIGluIE9iamVjdCh0KSlILmNhbGwodCxvKSYmImNvbnN0cnVjdG9yIiE9byYmbi5wdXNoKG8pO3JldHVybiBufWZ1bmN0aW9uIEsodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFE9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLFg9IltvYmplY3QgRnVuY3Rpb25dIixZPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsWj0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHR0KHQpe2lmKCFLKHQpKXJldHVybiExO3ZhciBlPWIodCk7cmV0dXJuIGU9PVh8fGU9PVl8fGU9PVF8fGU9PVp9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIG51bGwhPXQmJkwodC5sZW5ndGgpJiYhdHQodCl9ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGV0KHQpP1codCk6Sih0KX12YXIgbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihudWxsPT1yKXJldHVybiByO2lmKCFldChyKSlyZXR1cm4gdChyLG4pO2Zvcih2YXIgbz1yLmxlbmd0aCx1PWU/bzotMSxpPU9iamVjdChyKTsoZT91LS06Kyt1PG8pJiYhMSE9PW4oaVt1XSx1LGkpOyk7cmV0dXJuIHJ9fSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmbyh0LGUscnQpfSkpLG90PW50O2Z1bmN0aW9uIHV0KHQpe3JldHVybiB0fWZ1bmN0aW9uIGl0KHQsZSl7dmFyIG47cmV0dXJuKFModCk/cjpvdCkodCwiZnVuY3Rpb24iPT10eXBlb2Yobj1lKT9uOnV0KX12YXIgYXQsY3Q9YVsiX19jb3JlLWpzX3NoYXJlZF9fIl0sZnQ9KGF0PS9bXi5dKyQvLmV4ZWMoY3QmJmN0LmtleXMmJmN0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIithdDoiIjt2YXIgc3Q9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGx0KHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gc3QuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9dmFyIHB0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGh0PUZ1bmN0aW9uLnByb3RvdHlwZSx2dD1PYmplY3QucHJvdG90eXBlLHl0PWh0LnRvU3RyaW5nLGR0PXZ0Lmhhc093blByb3BlcnR5LGJ0PVJlZ0V4cCgiXiIreXQuY2FsbChkdCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gZ3QodCl7cmV0dXJuISghSyh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuISFmdCYmZnQgaW4gdH0odCkpJiYodHQodCk/YnQ6cHQpLnRlc3QobHQodCkpfWZ1bmN0aW9uIF90KHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX0odCxlKTtyZXR1cm4gZ3Qocik/cjp2b2lkIDB9dmFyIGp0PV90KGEsIkRhdGFWaWV3Iiksd3Q9X3QoYSwiTWFwIiksbXQ9X3QoYSwiUHJvbWlzZSIpLE90PV90KGEsIlNldCIpLFN0PV90KGEsIldlYWtNYXAiKSxBdD0iW29iamVjdCBNYXBdIix6dD0iW29iamVjdCBQcm9taXNlXSIseHQ9IltvYmplY3QgU2V0XSIsRXQ9IltvYmplY3QgV2Vha01hcF0iLGt0PSJbb2JqZWN0IERhdGFWaWV3XSIsRnQ9bHQoanQpLCR0PWx0KHd0KSxQdD1sdChtdCksTHQ9bHQoT3QpLEl0PWx0KFN0KSxNdD1iOyhqdCYmTXQobmV3IGp0KG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1rdHx8d3QmJk10KG5ldyB3dCkhPUF0fHxtdCYmTXQobXQucmVzb2x2ZSgpKSE9enR8fE90JiZNdChuZXcgT3QpIT14dHx8U3QmJk10KG5ldyBTdCkhPUV0KSYmKE10PWZ1bmN0aW9uKHQpe3ZhciBlPWIodCkscj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPXI/bHQocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBGdDpyZXR1cm4ga3Q7Y2FzZSAkdDpyZXR1cm4gQXQ7Y2FzZSBQdDpyZXR1cm4genQ7Y2FzZSBMdDpyZXR1cm4geHQ7Y2FzZSBJdDpyZXR1cm4gRXR9cmV0dXJuIGV9KTt2YXIgVHQ9TXQsUnQ9IltvYmplY3QgU3RyaW5nXSI7ZnVuY3Rpb24gVXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplW3RdfX12YXIgTnQ9VXQoImxlbmd0aCIpLER0PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTtmdW5jdGlvbiBCdCh0KXtyZXR1cm4gRHQudGVzdCh0KX12YXIgQ3Q9IlxcdWQ4MDAtXFx1ZGZmZiIsV3Q9IlsiK0N0KyJdIixxdD0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLFZ0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEd0PSJbXiIrQ3QrIl0iLEh0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixKdD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsS3Q9Iig/OiIrcXQrInwiK1Z0KyIpIisiPyIsUXQ9IltcXHVmZTBlXFx1ZmUwZl0/IixYdD1RdCtLdCsoIig/OlxcdTIwMGQoPzoiK1tHdCxIdCxKdF0uam9pbigifCIpKyIpIitRdCtLdCsiKSoiKSxZdD0iKD86IitbR3QrcXQrIj8iLHF0LEh0LEp0LFd0XS5qb2luKCJ8IikrIikiLFp0PVJlZ0V4cChWdCsiKD89IitWdCsiKXwiK1l0K1h0LCJnIik7ZnVuY3Rpb24gdGUodCl7cmV0dXJuIEJ0KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1adC5sYXN0SW5kZXg9MDtadC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOk50KHQpfWZ1bmN0aW9uIGVlKHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYoZXQodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhUyhlKSYmZyhlKSYmYihlKT09UnQ/dGUodCk6dC5sZW5ndGg7dmFyIGUscj1UdCh0KTtyZXR1cm4iW29iamVjdCBNYXBdIj09cnx8IltvYmplY3QgU2V0XSI9PXI/dC5zaXplOkoodCkubGVuZ3RofWZ1bmN0aW9uIHJlKHQsZSl7Zm9yKHZhciByPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytyPG47KW9bcl09ZSh0W3JdLHIsdCk7cmV0dXJuIG99ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gdD09PWV8fHQhPXQmJmUhPWV9ZnVuY3Rpb24gb2UodCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZihuZSh0W3JdWzBdLGUpKXJldHVybiByO3JldHVybi0xfXZhciB1ZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIGllKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWllLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LGllLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxyPW9lKGUsdCk7cmV0dXJuIShyPDApJiYocj09ZS5sZW5ndGgtMT9lLnBvcCgpOnVlLmNhbGwoZSxyLDEpLC0tdGhpcy5zaXplLCEwKX0saWUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9b2UoZSx0KTtyZXR1cm4gcjwwP3ZvaWQgMDplW3JdWzFdfSxpZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBvZSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxpZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXyxuPW9lKHIsdCk7cmV0dXJuIG48MD8oKyt0aGlzLnNpemUsci5wdXNoKFt0LGVdKSk6cltuXVsxXT1lLHRoaXN9O3ZhciBhZT1fdChPYmplY3QsImNyZWF0ZSIpO3ZhciBjZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBmZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHNlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIGxlKHQsZSl7dmFyIHIsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2Yocj1lKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09cjpudWxsPT09cik/b1sic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBwZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1zZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWFlP2FlKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxzZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxzZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoYWUpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gY2UuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxzZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGFlP3ZvaWQgMCE9PWVbdF06ZmUuY2FsbChlLHQpfSxzZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1hZSYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfSxwZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBzZSxtYXA6bmV3KHd0fHxpZSksc3RyaW5nOm5ldyBzZX19LHBlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9bGUodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0scGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbGUodGhpcyx0KS5nZXQodCl9LHBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIGxlKHRoaXMsdCkuaGFzKHQpfSxwZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bGUodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307ZnVuY3Rpb24gaGUodCl7dmFyIGU9dGhpcy5fX2RhdGFfXz1uZXcgaWUodCk7dGhpcy5zaXplPWUuc2l6ZX1oZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBpZSx0aGlzLnNpemU9MH0saGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUscn0saGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LGhlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgaWUpe3ZhciBuPXIuX19kYXRhX187aWYoIXd0fHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxlXSksdGhpcy5zaXplPSsrci5zaXplLHRoaXM7cj10aGlzLl9fZGF0YV9fPW5ldyBwZShuKX1yZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemU9ci5zaXplLHRoaXN9O2Z1bmN0aW9uIHZlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBwZTsrK2U8cjspdGhpcy5hZGQodFtlXSl9ZnVuY3Rpb24geWUodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG47KWlmKGUodFtyXSxyLHQpKXJldHVybiEwO3JldHVybiExfXZlLnByb3RvdHlwZS5hZGQ9dmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSx2ZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIGRlPTEsYmU9MjtmdW5jdGlvbiBnZSh0LGUscixuLG8sdSl7dmFyIGk9ciZkZSxhPXQubGVuZ3RoLGM9ZS5sZW5ndGg7aWYoYSE9YyYmIShpJiZjPmEpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLHM9dS5nZXQoZSk7aWYoZiYmcylyZXR1cm4gZj09ZSYmcz09dDt2YXIgbD0tMSxwPSEwLGg9ciZiZT9uZXcgdmU6dm9pZCAwO2Zvcih1LnNldCh0LGUpLHUuc2V0KGUsdCk7KytsPGE7KXt2YXIgdj10W2xdLHk9ZVtsXTtpZihuKXZhciBkPWk/bih5LHYsbCxlLHQsdSk6bih2LHksbCx0LGUsdSk7aWYodm9pZCAwIT09ZCl7aWYoZCljb250aW51ZTtwPSExO2JyZWFrfWlmKGgpe2lmKCF5ZShlLChmdW5jdGlvbih0LGUpe2lmKGk9ZSwhaC5oYXMoaSkmJih2PT09dHx8byh2LHQscixuLHUpKSlyZXR1cm4gaC5wdXNoKGUpO3ZhciBpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKHYhPT15JiYhbyh2LHkscixuLHUpKXtwPSExO2JyZWFrfX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSkscH12YXIgX2U9YS5VaW50OEFycmF5O2Z1bmN0aW9uIGplKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JbKytlXT1bbix0XX0pKSxyfWZ1bmN0aW9uIHdlKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyWysrZV09dH0pKSxyfXZhciBtZT0xLE9lPTIsU2U9IltvYmplY3QgQm9vbGVhbl0iLEFlPSJbb2JqZWN0IERhdGVdIix6ZT0iW29iamVjdCBFcnJvcl0iLHhlPSJbb2JqZWN0IE1hcF0iLEVlPSJbb2JqZWN0IE51bWJlcl0iLGtlPSJbb2JqZWN0IFJlZ0V4cF0iLEZlPSJbb2JqZWN0IFNldF0iLCRlPSJbb2JqZWN0IFN0cmluZ10iLFBlPSJbb2JqZWN0IFN5bWJvbF0iLExlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsSWU9IltvYmplY3QgRGF0YVZpZXddIixNZT1jP2MucHJvdG90eXBlOnZvaWQgMCxUZT1NZT9NZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBSZSh0LGUpe2Zvcih2YXIgcj0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPTAsdT1bXTsrK3I8bjspe3ZhciBpPXRbcl07ZShpLHIsdCkmJih1W28rK109aSl9cmV0dXJuIHV9dmFyIFVlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsTmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxEZT1OZT9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksUmUoTmUodCksKGZ1bmN0aW9uKGUpe3JldHVybiBVZS5jYWxsKHQsZSl9KSkpfTpmdW5jdGlvbigpe3JldHVybltdfTtmdW5jdGlvbiBCZSh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUodCk7cmV0dXJuIFModCk/bjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoLG89dC5sZW5ndGg7KytyPG47KXRbbytyXT1lW3JdO3JldHVybiB0fShuLHIodCkpfSh0LHJ0LERlKX12YXIgQ2U9MSxXZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxZT0xLFZlPSJbb2JqZWN0IEFyZ3VtZW50c10iLEdlPSJbb2JqZWN0IEFycmF5XSIsSGU9IltvYmplY3QgT2JqZWN0XSIsSmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBLZSh0LGUscixuLG8sdSl7dmFyIGk9Uyh0KSxhPVMoZSksYz1pP0dlOlR0KHQpLGY9YT9HZTpUdChlKSxzPShjPWM9PVZlP0hlOmMpPT1IZSxsPShmPWY9PVZlP0hlOmYpPT1IZSxwPWM9PWY7aWYocCYmRSh0KSl7aWYoIUUoZSkpcmV0dXJuITE7aT0hMCxzPSExfWlmKHAmJiFzKXJldHVybiB1fHwodT1uZXcgaGUpLGl8fEIodCk/Z2UodCxlLHIsbixvLHUpOmZ1bmN0aW9uKHQsZSxyLG4sbyx1LGkpe3N3aXRjaChyKXtjYXNlIEllOmlmKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPWUuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLGU9ZS5idWZmZXI7Y2FzZSBMZTpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhdShuZXcgX2UodCksbmV3IF9lKGUpKSk7Y2FzZSBTZTpjYXNlIEFlOmNhc2UgRWU6cmV0dXJuIG5lKCt0LCtlKTtjYXNlIHplOnJldHVybiB0Lm5hbWU9PWUubmFtZSYmdC5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSBrZTpjYXNlICRlOnJldHVybiB0PT1lKyIiO2Nhc2UgeGU6dmFyIGE9amU7Y2FzZSBGZTp2YXIgYz1uJm1lO2lmKGF8fChhPXdlKSx0LnNpemUhPWUuc2l6ZSYmIWMpcmV0dXJuITE7dmFyIGY9aS5nZXQodCk7aWYoZilyZXR1cm4gZj09ZTtufD1PZSxpLnNldCh0LGUpO3ZhciBzPWdlKGEodCksYShlKSxuLG8sdSxpKTtyZXR1cm4gaS5kZWxldGUodCkscztjYXNlIFBlOmlmKFRlKXJldHVybiBUZS5jYWxsKHQpPT1UZS5jYWxsKGUpfXJldHVybiExfSh0LGUsYyxyLG4sbyx1KTtpZighKHImcWUpKXt2YXIgaD1zJiZKZS5jYWxsKHQsIl9fd3JhcHBlZF9fIiksdj1sJiZKZS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoaHx8dil7dmFyIHk9aD90LnZhbHVlKCk6dCxkPXY/ZS52YWx1ZSgpOmU7cmV0dXJuIHV8fCh1PW5ldyBoZSksbyh5LGQscixuLHUpfX1yZXR1cm4hIXAmJih1fHwodT1uZXcgaGUpLGZ1bmN0aW9uKHQsZSxyLG4sbyx1KXt2YXIgaT1yJkNlLGE9QmUodCksYz1hLmxlbmd0aDtpZihjIT1CZShlKS5sZW5ndGgmJiFpKXJldHVybiExO2Zvcih2YXIgZj1jO2YtLTspe3ZhciBzPWFbZl07aWYoIShpP3MgaW4gZTpXZS5jYWxsKGUscykpKXJldHVybiExfXZhciBsPXUuZ2V0KHQpLHA9dS5nZXQoZSk7aWYobCYmcClyZXR1cm4gbD09ZSYmcD09dDt2YXIgaD0hMDt1LnNldCh0LGUpLHUuc2V0KGUsdCk7Zm9yKHZhciB2PWk7KytmPGM7KXt2YXIgeT10W3M9YVtmXV0sZD1lW3NdO2lmKG4pdmFyIGI9aT9uKGQseSxzLGUsdCx1KTpuKHksZCxzLHQsZSx1KTtpZighKHZvaWQgMD09PWI/eT09PWR8fG8oeSxkLHIsbix1KTpiKSl7aD0hMTticmVha312fHwodj0iY29uc3RydWN0b3IiPT1zKX1pZihoJiYhdil7dmFyIGc9dC5jb25zdHJ1Y3RvcixfPWUuY29uc3RydWN0b3I7Zz09X3x8ISgiY29uc3RydWN0b3IiaW4gdCl8fCEoImNvbnN0cnVjdG9yImluIGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZyYmZyBpbnN0YW5jZW9mIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBfJiZfIGluc3RhbmNlb2YgX3x8KGg9ITEpfXJldHVybiB1LmRlbGV0ZSh0KSx1LmRlbGV0ZShlKSxofSh0LGUscixuLG8sdSkpfWZ1bmN0aW9uIFFlKHQsZSxyLG4sbyl7cmV0dXJuIHQ9PT1lfHwobnVsbD09dHx8bnVsbD09ZXx8IWcodCkmJiFnKGUpP3QhPXQmJmUhPWU6S2UodCxlLHIsbixRZSxvKSl9dmFyIFhlPTEsWWU9MjtmdW5jdGlvbiBaZSh0KXtyZXR1cm4gdD09dCYmIUsodCl9ZnVuY3Rpb24gdHIodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIG51bGwhPXImJihyW3RdPT09ZSYmKHZvaWQgMCE9PWV8fHQgaW4gT2JqZWN0KHIpKSl9fWZ1bmN0aW9uIGVyKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1ydCh0KSxyPWUubGVuZ3RoO3ItLTspe3ZhciBuPWVbcl0sbz10W25dO2Vbcl09W24sbyxaZShvKV19cmV0dXJuIGV9KHQpO3JldHVybiAxPT1lLmxlbmd0aCYmZVswXVsyXT90cihlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKHIpe3JldHVybiByPT09dHx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89ci5sZW5ndGgsdT1vLGk9IW47aWYobnVsbD09dClyZXR1cm4hdTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGE9cltvXTtpZihpJiZhWzJdP2FbMV0hPT10W2FbMF1dOiEoYVswXWluIHQpKXJldHVybiExfWZvcig7KytvPHU7KXt2YXIgYz0oYT1yW29dKVswXSxmPXRbY10scz1hWzFdO2lmKGkmJmFbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBsPW5ldyBoZTtpZihuKXZhciBwPW4oZixzLGMsdCxlLGwpO2lmKCEodm9pZCAwPT09cD9RZShzLGYsWGV8WWUsbixsKTpwKSlyZXR1cm4hMX19cmV0dXJuITB9KHIsdCxlKX19dmFyIHJyPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIG5yKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8Zyh0KSYmYih0KT09cnJ9dmFyIG9yPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLHVyPS9eXHcqJC87ZnVuY3Rpb24gaXIodCxlKXtpZihTKHQpKXJldHVybiExO3ZhciByPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPXImJiJzeW1ib2wiIT1yJiYiYm9vbGVhbiIhPXImJm51bGwhPXQmJiFucih0KSl8fCh1ci50ZXN0KHQpfHwhb3IudGVzdCh0KXx8bnVsbCE9ZSYmdCBpbiBPYmplY3QoZSkpfXZhciBhcj0iRXhwZWN0ZWQgYSBmdW5jdGlvbiI7ZnVuY3Rpb24gY3IodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihhcik7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1lP2UuYXBwbHkodGhpcyxuKTpuWzBdLHU9ci5jYWNoZTtpZih1LmhhcyhvKSlyZXR1cm4gdS5nZXQobyk7dmFyIGk9dC5hcHBseSh0aGlzLG4pO3JldHVybiByLmNhY2hlPXUuc2V0KG8saSl8fHUsaX07cmV0dXJuIHIuY2FjaGU9bmV3KGNyLkNhY2hlfHxwZSkscn1jci5DYWNoZT1wZTt2YXIgZnI9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csc3I9L1xcKFxcKT8vZyxscj1mdW5jdGlvbih0KXt2YXIgZT1jcih0LChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09ci5zaXplJiZyLmNsZWFyKCksdH0pKSxyPWUuY2FjaGU7cmV0dXJuIGV9KChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJmUucHVzaCgiIiksdC5yZXBsYWNlKGZyLChmdW5jdGlvbih0LHIsbixvKXtlLnB1c2gobj9vLnJlcGxhY2Uoc3IsIiQxIik6cnx8dCl9KSksZX0pKSxwcj1scixocj0xLzAsdnI9Yz9jLnByb3RvdHlwZTp2b2lkIDAseXI9dnI/dnIudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIGRyKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihTKHQpKXJldHVybiByZSh0LGRyKSsiIjtpZihucih0KSlyZXR1cm4geXI/eXIuY2FsbCh0KToiIjt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0taHI/Ii0wIjplfWZ1bmN0aW9uIGJyKHQpe3JldHVybiBudWxsPT10PyIiOmRyKHQpfWZ1bmN0aW9uIGdyKHQsZSl7cmV0dXJuIFModCk/dDppcih0LGUpP1t0XTpwcihicih0KSl9dmFyIF9yPTEvMDtmdW5jdGlvbiBqcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fG5yKHQpKXJldHVybiB0O3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS1fcj8iLTAiOmV9ZnVuY3Rpb24gd3IodCxlKXtmb3IodmFyIHI9MCxuPShlPWdyKGUsdCkpLmxlbmd0aDtudWxsIT10JiZyPG47KXQ9dFtqcihlW3IrK10pXTtyZXR1cm4gciYmcj09bj90OnZvaWQgMH1mdW5jdGlvbiBtcih0LGUscil7dmFyIG49bnVsbD09dD92b2lkIDA6d3IodCxlKTtyZXR1cm4gdm9pZCAwPT09bj9yOm59ZnVuY3Rpb24gT3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZSBpbiBPYmplY3QodCl9ZnVuY3Rpb24gU3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0tMSxvPShlPWdyKGUsdCkpLmxlbmd0aCx1PSExOysrbjxvOyl7dmFyIGk9anIoZVtuXSk7aWYoISh1PW51bGwhPXQmJnIodCxpKSkpYnJlYWs7dD10W2ldfXJldHVybiB1fHwrK24hPW8/dTohIShvPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJkwobykmJiQoaSxvKSYmKFModCl8fE8odCkpfSh0LGUsT3IpfXZhciBBcj0xLHpyPTI7ZnVuY3Rpb24geHIodCl7cmV0dXJuIGlyKHQpP1V0KGpyKHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdyKGUsdCl9fSh0KX1mdW5jdGlvbiBFcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/dXQ6Im9iamVjdCI9PXR5cGVvZiB0P1ModCk/ZnVuY3Rpb24odCxlKXtyZXR1cm4gaXIodCkmJlplKGUpP3RyKGpyKHQpLGUpOmZ1bmN0aW9uKHIpe3ZhciBuPW1yKHIsdCk7cmV0dXJuIHZvaWQgMD09PW4mJm49PT1lP1NyKHIsdCk6UWUoZSxuLEFyfHpyKX19KHRbMF0sdFsxXSk6ZXIodCk6eHIodCl9ZnVuY3Rpb24ga3IodCxlKXt2YXIgcj0tMSxuPWV0KHQpP0FycmF5KHQubGVuZ3RoKTpbXTtyZXR1cm4gb3QodCwoZnVuY3Rpb24odCxvLHUpe25bKytyXT1lKHQsbyx1KX0pKSxufWZ1bmN0aW9uIEZyKHQsZSl7cmV0dXJuKFModCk/cmU6a3IpKHQsRXIoZSkpfXZhciAkcj0vXHMvO3ZhciBQcj0vXlxzKy87ZnVuY3Rpb24gTHIodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJiRyLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UoUHIsIiIpOnR9ZnVuY3Rpb24gSXIodCxlLHIpe3ZhciBuPXQubGVuZ3RoO3JldHVybiByPXZvaWQgMD09PXI/bjpyLCFlJiZyPj1uP3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPS0xLG89dC5sZW5ndGg7ZTwwJiYoZT0tZT5vPzA6bytlKSwocj1yPm8/bzpyKTwwJiYocis9byksbz1lPnI/MDpyLWU+Pj4wLGU+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK2VdO3JldHVybiB1fSh0LGUscil9ZnVuY3Rpb24gTXIodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gVHIodCxlLHIpe3JldHVybiBlPT1lP2Z1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ci0xLG89dC5sZW5ndGg7KytuPG87KWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfSh0LGUscik6ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBvPXQubGVuZ3RoLHU9cisobj8xOi0xKTtuP3UtLTorK3U8bzspaWYoZSh0W3VdLHUsdCkpcmV0dXJuIHU7cmV0dXJuLTF9KHQsTXIscil9dmFyIFJyPSJcXHVkODAwLVxcdWRmZmYiLFVyPSJbIitScisiXSIsTnI9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIixEcj0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixCcj0iW14iK1JyKyJdIixDcj0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsV3I9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLHFyPSIoPzoiK05yKyJ8IitEcisiKSIrIj8iLFZyPSJbXFx1ZmUwZVxcdWZlMGZdPyIsR3I9VnIrcXIrKCIoPzpcXHUyMDBkKD86IitbQnIsQ3IsV3JdLmpvaW4oInwiKSsiKSIrVnIrcXIrIikqIiksSHI9Iig/OiIrW0JyK05yKyI/IixOcixDcixXcixVcl0uam9pbigifCIpKyIpIixKcj1SZWdFeHAoRHIrIig/PSIrRHIrIil8IitIcitHciwiZyIpO2Z1bmN0aW9uIEtyKHQpe3JldHVybiBCdCh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXRjaChKcil8fFtdfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gdC5zcGxpdCgiIil9KHQpfWZ1bmN0aW9uIFFyKHQsZSxyKXtpZigodD1icih0KSkmJihyfHx2b2lkIDA9PT1lKSlyZXR1cm4gTHIodCk7aWYoIXR8fCEoZT1kcihlKSkpcmV0dXJuIHQ7dmFyIG49S3IodCksbz1LcihlKSx1PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xLG49dC5sZW5ndGg7KytyPG4mJlRyKGUsdFtyXSwwKT4tMTspO3JldHVybiByfShuLG8pLGk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZUcihlLHRbcl0sMCk+LTE7KTtyZXR1cm4gcn0obixvKSsxO3JldHVybiBJcihuLHUsaSkuam9pbigiIil9ZnVuY3Rpb24gWHIodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIFlyKHQsZSl7aWYoIVhyKHQpKXJldHVybltdO2lmKCFYcihlKSlyZXR1cm5bXTtsZXQgcj1mdW5jdGlvbih0LGUpe3JldHVybiBYcih0KSYmWHIoZSk/dC5zcGxpdChlKTpbXX0odCxlKTtyPUZyKHIsUXIpO2xldCBuPVtdO3JldHVybiBpdChyLChmdW5jdGlvbih0KXtYcih0KSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gWnIodCl7bGV0IGU9ITE7aWYoWHIodCkpZT0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYoZnVuY3Rpb24odCl7cmV0dXJuIHQhPXR9KHQpKXJldHVybiExO2U9ITB9cmV0dXJuIGV9dmFyIHRuPU5hTixlbj0vXlstK10weFswLTlhLWZdKyQvaSxybj0vXjBiWzAxXSskL2ksbm49L14wb1swLTddKyQvaSxvbj1wYXJzZUludDtmdW5jdGlvbiB1bih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYobnIodCkpcmV0dXJuIHRuO2lmKEsodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PUsoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PUxyKHQpO3ZhciByPXJuLnRlc3QodCk7cmV0dXJuIHJ8fG5uLnRlc3QodCk/b24odC5zbGljZSgyKSxyPzI6OCk6ZW4udGVzdCh0KT90bjordH12YXIgYW49MS8wLGNuPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBmbih0KXtyZXR1cm4gdD8odD11bih0KSk9PT1hbnx8dD09PS1hbj8odDwwPy0xOjEpKmNuOnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBzbih0KXt2YXIgZT1mbih0KSxyPWUlMTtyZXR1cm4gZT09ZT9yP2UtcjplOjB9ZnVuY3Rpb24gbG4odCl7aWYoIVpyKHQpKXJldHVybiAwO3JldHVybiBmbih0KX1mdW5jdGlvbiBwbih0KXtyZXR1cm4hIVpyKHQpJiYodD1sbih0KSwibnVtYmVyIj09dHlwZW9mKGU9dCkmJmU9PXNuKGUpKTt2YXIgZX12YXIgaG49YS5pc0Zpbml0ZSx2bj1NYXRoLm1pbjt2YXIgeW49ZnVuY3Rpb24odCl7dmFyIGU9TWF0aFt0XTtyZXR1cm4gZnVuY3Rpb24odCxyKXtpZih0PXVuKHQpLChyPW51bGw9PXI/MDp2bihzbihyKSwyOTIpKSYmaG4odCkpe3ZhciBuPShicih0KSsiZSIpLnNwbGl0KCJlIik7cmV0dXJuKygobj0oYnIoZShuWzBdKyJlIisoK25bMV0rcikpKSsiZSIpLnNwbGl0KCJlIikpWzBdKyJlIisoK25bMV0tcikpfXJldHVybiBlKHQpfX0oInJvdW5kIiksZG49eW47ZnVuY3Rpb24gYm4odCl7aWYoIVpyKHQpKXJldHVybiAwO3Q9bG4odCk7bGV0IGU9ZG4odCk7cmV0dXJuIjAiPT09U3RyaW5nKGUpPzA6ZX1mdW5jdGlvbiBnbih0LGU9e30pe2xldCByPW1yKGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59ZnVuY3Rpb24gX24odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO3JldHVybiEhZ24odCx7ZnM6cn0pJiYoIXIubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFyLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBqbih0KXtyZXR1cm4gX24odCx7ZnM6ZX0pfWZ1bmN0aW9uIHduKHQsZSl7dmFyIHI9W107cmV0dXJuIG90KHQsKGZ1bmN0aW9uKHQsbixvKXtlKHQsbixvKSYmci5wdXNoKHQpfSkpLHJ9ZnVuY3Rpb24gbW4odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO2lmKCFnbih0LHtmczpyfSkpcmV0dXJuITE7bGV0IG49ci5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gT24odCxlPTEscj17fSl7bGV0IG49MSxvPW1yKHIsInBhdGgiKSx1PW1yKHIsImZzIik7aWYoIW1uKHQse2ZzOnV9KSl0aHJvdyBuZXcgRXJyb3IoYGZkWyR7dH1dIGlzIG5vdCBhIGZvbGRlcmApO3ZhciBpO3JldHVybiBudWxsIT09ZSYmKHBuKGk9ZSkmJmJuKGkpPjApJiYoZT1ibihlKSk8MSYmKGU9MSksZnVuY3Rpb24gdChyKXtsZXQgaT1bXTtyZXR1cm4gbW4ocix7ZnM6dX0pPyhpdCh1LnJlYWRkaXJTeW5jKHIpLChmdW5jdGlvbihhKXtsZXQgYz1vLnJlc29sdmUocixhKSxmPW51bGw7dHJ5e2Y9dS5zdGF0U3luYyhjKX1jYXRjaCh0KXt9ZiYmZi5pc0RpcmVjdG9yeSgpPyhpLnB1c2goe2lzRm9sZGVyOiEwLGxldmVsOm4scGF0aDpjLG5hbWU6by5iYXNlbmFtZShjKX0pLG4rPTEsKG48PWV8fG51bGw9PT1lKSYmKGk9aS5jb25jYXQodChjKSkpLG4tPTEpOmkucHVzaCh7aXNGb2xkZXI6ITEsbGV2ZWw6bixwYXRoOmMsbmFtZTpvLmJhc2VuYW1lKGMpfSl9KSksaSk6aX0odCl9ZnVuY3Rpb24gU24odCxlPTEscj17fSl7bGV0IG49bXIociwicGF0aCIpLG89bXIociwiZnMiKTtpZighbW4odCx7ZnM6b30pKXRocm93IG5ldyBFcnJvcihgZmRbJHt0fV0gaXMgbm90IGEgZm9sZGVyYCk7bGV0IHU9W107dmFyIGksYTtyZXR1cm4gdT1Pbih0LGUse3BhdGg6bixmczpvfSksYT17aXNGb2xkZXI6ITF9LHU9KFMoaT11KT9SZTp3bikoaSxFcihhKSksdT1Gcih1LCh0PT4oZGVsZXRlIHQuaXNGb2xkZXIsdCkpKSx1fWNvbnN0IEFuPW5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDQ4LDgsOTYsMywxMjcsMTI3LDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI3LDAsOTYsMiwxMjcsMTI3LDAsOTYsMSwxMjcsMSwxMjcsOTYsMywxMjcsMTI3LDEyNiwxLDEyNiw5NiwzLDEyNiwxMjcsMTI3LDEsMTI2LDk2LDIsMTI3LDEyNiwwLDk2LDEsMTI3LDEsMTI2LDMsMTEsMTAsMCwwLDIsMSwzLDQsNSw2LDEsNyw1LDMsMSwwLDEsNyw4NSw5LDMsMTA5LDEwMSwxMDksMiwwLDUsMTIwLDEyMCwxMDQsNTEsNTAsMCwwLDYsMTA1LDExMCwxMDUsMTE2LDUxLDUwLDAsMiw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTEsNTAsMCwzLDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTEsNTAsMCw0LDUsMTIwLDEyMCwxMDQsNTQsNTIsMCw1LDYsMTA1LDExMCwxMDUsMTE2LDU0LDUyLDAsNyw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTQsNTIsMCw4LDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTQsNTIsMCw5LDEwLDI1MSwyMiwxMCwyNDIsMSwxLDQsMTI3LDMyLDAsMzIsMSwxMDYsMzMsMywzMiwxLDY1LDE2LDc5LDQsMTI3LDMyLDMsNjUsMTYsMTA3LDMzLDYsMzIsMiw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsMzMsMywzMiwyLDY1LDEzNywyMzUsMjA4LDIwOCw3LDEwNywzMyw0LDMyLDIsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDMzLDUsMyw2NCwzMiwzLDMyLDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw0LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw0LDMyLDIsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsNSwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNSwzMiw2LDMyLDAsNjUsNCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjUsMTIsMTE5LDMyLDUsNjUsMTgsMTE5LDEwNiwzMiw0LDY1LDcsMTE5LDEwNiwzMiwzLDY1LDEsMTE5LDEwNiw1LDMyLDIsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA2LDExLDMyLDEsMTA2LDMyLDAsMzIsMSw2NSwxNSwxMTMsMTYsMSwxMSwxNDYsMSwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDEsNjUsNCwxMDYsMzIsMiw3NSw2OSw0LDY0LDMyLDAsMzIsMSw0MCwyLDAsNjUsMTg5LDIyMCwyMDIsMTQ5LDEyNCwxMDgsMTA2LDY1LDE3LDExOSw2NSwxNzUsMjE0LDIxMSwxOTAsMiwxMDgsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTIsMSwxMSwxMSwzLDY0LDMyLDEsMzIsMiw3OSw2OSw0LDY0LDMyLDAsMzIsMSw0NSwwLDAsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA4LDEwNiw2NSwxMSwxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMCwzMiwxLDY1LDEsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwwLDMyLDAsNjUsMTUsMTE4LDExNSw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwzNCwwLDY1LDEzLDExOCwzMiwwLDExNSw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwzNCwwLDY1LDE2LDExOCwzMiwwLDExNSwxMSw2MywwLDMyLDAsNjUsOCwxMDYsMzIsMSw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDEsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDU0LDIsMCwzMiwwLDY1LDIwLDEwNiwzMiwxLDY1LDIwNywxNDAsMTYyLDE0Miw2LDEwNiw1NCwyLDAsMTEsMTk1LDQsMSw2LDEyNywzMiwxLDMyLDIsMTA2LDMzLDYsMzIsMCw2NSwyNCwxMDYsMzMsNCwzMiwwLDY1LDQwLDEwNiw0MCwyLDAsMzMsMywzMiwwLDMyLDAsNDAsMiwwLDMyLDIsMTA2LDU0LDIsMCwzMiwwLDY1LDQsMTA2LDM0LDUsMzIsNSw0MCwyLDAsMzIsMiw2NSwxNiw3OSwzMiwwLDQwLDIsMCw2NSwxNiw3OSwxMTQsMTE0LDU0LDIsMCwzMiwyLDMyLDMsMTA2LDY1LDE2LDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDE2LDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDQsMTA2LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsOCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSwxMiwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsNDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDMyLDYsNjUsMTYsMTA3LDc3LDQsNjQsMzIsNiw2NSwxNiwxMDcsMzMsOCwzMiwwLDY1LDgsMTA2LDQwLDIsMCwzMywyLDMyLDAsNjUsMTIsMTA2LDQwLDIsMCwzMywzLDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMyw1LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCwzMyw3LDMsNjQsMzIsMiwzMiwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsMywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw1LDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDcsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDcsMzIsOCwzMiwxLDY1LDQsMTA2LDM0LDEsNzksMTMsMCwxMSwzMiwwLDY1LDgsMTA2LDMyLDIsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDMsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDUsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDcsNTQsMiwwLDExLDMyLDEsMzIsNiw3Myw0LDY0LDMyLDQsMzIsMSwzMiw2LDMyLDEsMTA3LDM0LDEsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwxLDU0LDIsMCwxMSwxMSw5NywxLDEsMTI3LDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMywxLDMyLDAsNjUsNCwxMDYsNDAsMiwwLDQsMTI3LDMyLDEsNjUsMTIsMTE5LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCw2NSwxOCwxMTksMTA2LDMyLDAsNjUsMTIsMTA2LDQwLDIsMCw2NSw3LDExOSwxMDYsMzIsMCw2NSw4LDEwNiw0MCwyLDAsNjUsMSwxMTksMTA2LDUsMzIsMSw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMCw0MCwyLDAsMTA2LDMyLDAsNjUsMjQsMTA2LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwxNiwxLDExLDI1NSwzLDIsMywxMjYsMSwxMjcsMzIsMCwzMiwxLDEwNiwzMyw2LDMyLDEsNjUsMzIsNzksNCwxMjYsMzIsNiw2NSwzMiwxMDcsMzMsNiwzMiwyLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDMzLDMsMzIsMiw2NiwxNzcsMTY5LDE3MiwxOTMsMTczLDE4NCwyMTIsMTY2LDYxLDEyNSwzMyw0LDMyLDIsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDMsMzIsNCwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw0LDMyLDIsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMiwzMiw1LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDUsMzIsNiwzMiwwLDY1LDgsMTA2LDM0LDAsNzksMTMsMCwxMSwzMiwyLDY2LDEyLDEzNywzMiw1LDY2LDE4LDEzNywxMjQsMzIsNCw2Niw3LDEzNywxMjQsMzIsMyw2NiwxLDEzNywxMjQsMzIsMyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw0LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDIsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSw1LDMyLDIsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjQsMTEsMzIsMSwxNzMsMTI0LDMyLDAsMzIsMSw2NSwzMSwxMTMsMTYsNiwxMSwxMzQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDIsMzIsMSw2NSw4LDEwNiw3OSw0LDY0LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMyLDAsMTMzLDY2LDI3LDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMzLDAsMzIsMSw2NSw4LDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMSw2NSw0LDEwNiwzMiwyLDc3LDQsNjQsMzIsMCwzMiwxLDUzLDIsMCw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwyMywxMzcsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjQsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTEsMyw2NCwzMiwxLDMyLDIsNzMsNCw2NCwzMiwwLDMyLDEsNDksMCwwLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI2LDEzMyw2NiwxMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NiwzMywxMzYsMTMzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDM0LDAsMzIsMCw2NiwyOSwxMzYsMTMzLDY2LDI0OSwyNDMsMjIxLDI0MSwxNTMsMjQ2LDE1MywxNzEsMjIsMTI2LDM0LDAsMzIsMCw2NiwzMiwxMzYsMTMzLDExLDc3LDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiwxLDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiwxLDY2LDI0OSwyMzQsMjA4LDIwOCwyMzEsMjAxLDE2MSwyMjgsMjI1LDAsMTI0LDU1LDMsMCwxMSwyNDQsNCwyLDMsMTI3LDQsMTI2LDMyLDEsMzIsMiwxMDYsMzMsNSwzMiwwLDY1LDQwLDEwNiwzMyw0LDMyLDAsNjUsMjAwLDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MSwzLDAsMzIsMiwxNzMsMTI0LDU1LDMsMCwzMiwyLDMyLDMsMTA2LDY1LDMyLDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDIwMCwwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDMyLDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsOCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDY1LDE2LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMjQsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMjAwLDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDY1LDMyLDEwNiwzMiw1LDc3LDQsNjQsMzIsNSw2NSwzMiwxMDcsMzMsMiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzMyw2LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzMyw3LDMyLDAsNjUsMjQsMTA2LDQxLDMsMCwzMyw4LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzMyw5LDMsNjQsMzIsNiwzMiwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNiwzMiw3LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDcsMzIsOCwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw4LDMyLDksMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsOSwzMiwyLDMyLDEsNjUsOCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsNiw1NSwzLDAsMzIsMCw2NSwxNiwxMDYsMzIsNyw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzIsOCw1NSwzLDAsMzIsMCw2NSwzMiwxMDYsMzIsOSw1NSwzLDAsMTEsMzIsMSwzMiw1LDczLDQsNjQsMzIsNCwzMiwxLDMyLDUsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDE4OCwyLDEsNSwxMjYsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDEsMzIsMCw0MSwzLDAsMzQsMiw2NiwzMiw5MCw0LDEyNiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzNCwzLDY2LDEsMTM3LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzNCw0LDY2LDcsMTM3LDEyNCwzMiwxLDY2LDEyLDEzNywzMiwwLDY1LDMyLDEwNiw0MSwzLDAsMzQsNSw2NiwxOCwxMzcsMTI0LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMSw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwyLDEyNCwzMiwwLDY1LDQwLDEwNiwzMiwyLDY2LDMxLDEzMSwxNjcsMTYsNiwxMV0pO2FzeW5jIGZ1bmN0aW9uIHpuKHQsZT17fSl7bGV0IHI9bXIoZSwiZnMiKSxuPW1yKGUsImNodW5rU2l6ZSIpO2lmKFpyKG4pfHwobj02NzEwODg2NCksbj1sbihuKSwhX24odCx7ZnM6cn0pKXJldHVybiBQcm9taXNlLnJlamVjdCgiZnAgaXMgbm90IGEgZmlsZSIpO2xldCBvPWZ1bmN0aW9uKCl7bGV0IHQsZSxyPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLGU9YXJndW1lbnRzWzFdfSkpO3JldHVybiByLnJlc29sdmU9dCxyLnJlamVjdD1lLHJ9KCk7dHJ5e2xldHtjcmVhdGU2NDplfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6dSxkaWdlc3QzMjppLGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyx1KXtsKHQpO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KGkpLHIoMCxlKSxpLnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KGkpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9ZC5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLGkuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQoaSksdShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHY9Mm4qKjY0bi0xbjtmdW5jdGlvbiB5KHQpe3JldHVybiB0JnZ9Y29uc3QgZD1uZXcgVGV4dEVuY29kZXIsYj0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9Yil7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxkLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHkobigwLGQuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWIpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1iKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWIpPT5wKDQ4LHQsbyx1LGksaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCkseShuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix5KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShBbikpLmluc3RhbmNlKX0oKSx1PWUoKSxpPXIuY3JlYXRlUmVhZFN0cmVhbSh0LHtoaWdoV2F0ZXJNYXJrOm59KTtpLm9uKCJkYXRhIiwodD0+e3UudXBkYXRlKHQpfSkpLGkub24oImVuZCIsKCgpPT57bGV0IHQ9dS5kaWdlc3QoKS50b1N0cmluZygxNikucGFkU3RhcnQoMTYsIjAiKTtvLnJlc29sdmUodCl9KSksaS5vbigiZXJyb3IiLG8ucmVqZWN0KX1jYXRjaCh0KXtvLnJlamVjdCh0LnRvU3RyaW5nKCkpfXJldHVybiBvfWxldCBjaGVja1RvdGFsSGFzaD1hc3luYyhyLG4sbyx1KT0+e2xldCBpPXQucmVzb2x2ZSh1LG8pLGE9ITE7aWYoYT1qbihpKSwhWnIocikpe3JldHVybntlcnJvcjoiaW52YWxpZCBmaWxlU2l6ZSBpbiBwYXlsb2FkIn19bGV0IGM9ITE7aWYoYSl7bGV0IHQ9LTE7dHJ5e3Q9ZS5zdGF0U3luYyhpKS5zaXplfWNhdGNoKHQpe2NvbnNvbGUubG9nKCJjaGVjayB0b3RhbCBmaWxlIHNpemU6IGZzLnN0YXRTeW5jKHBhdGhGaWxlKSIsaSx0KX1jPXI9PT10fWxldCBmPSExO2EmJmMmJmF3YWl0IGZ1bmN0aW9uKHQscj17fSl7cmV0dXJuIHpuKHQse2ZzOmUsLi4ucn0pfShpKS50aGVuKCh0PT57Zj1vPT09dH0pKS5jYXRjaCgodD0+e2NvbnNvbGUubG9nKCJmc0lzRmlsZShwYXRoRmlsZSkiLGksam4oaSkpLGNvbnNvbGUubG9nKHQpLGY9ITF9KSk7bGV0IHM9W107aWYoIWYpe2l0KGZ1bmN0aW9uKHIsbj0xKXtyZXR1cm4gU24ocixuLHtwYXRoOnQsZnM6ZX0pfSh1KSwodD0+e2xldCByPXQubmFtZS5pbmRleE9mKGAke299X2ApPj0wLHU9ITE7dHJ5e3U9ZS5zdGF0U3luYyh0LnBhdGgpLnNpemU9PT1ufWNhdGNoKGUpe2NvbnNvbGUubG9nKCJjaGVjayBlYWNoIGZpbGUgc2l6ZTogZnMuc3RhdFN5bmMocGF0aEZpbGUpIix0LnBhdGgsZSl9aWYociYmdSl7bGV0IGU9WXIodC5uYW1lLGAke299X2ApLHI9KGE9bnVsbD09KGk9ZSk/MDppLmxlbmd0aCk/aVthLTFdOnZvaWQgMDtpZighZnVuY3Rpb24odCl7cmV0dXJuISFwbih0KSYmYm4odCk+PTB9KHIpKXRocm93IGNvbnNvbGUubG9nKCJ2Lm5hbWUiLHQubmFtZSksY29uc29sZS5sb2coInMiLGUpLG5ldyBFcnJvcihgY2FuIG5vdCBwYXJzZSBpbmRleCBpbiB2Lm5hbWVbJHt0Lm5hbWV9XWApO3I9Ym4ocikscy5wdXNoKHIpfXZhciBpLGF9KSl9bGV0IGw9ZWUocyk+MDtyZXR1cm57cGF0aDppLGJBbGxFeGlzdDphLGJBbGxTaXplOmMsYkFsbEhhc2g6ZixiU2xzOmwsc2xrczpzfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1RvdGFsSGFzaAogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBjaGVja1RvdGFsSGFzaAogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgcGFyZW50UG9ydC5vbignbWVzc2FnZScsIHJlY3ZNZXNzYWdlKQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){u(e)}}(t);if(!i)return u("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function u(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",u),i.on("exit",e=>{1!==e&&u("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):u("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(oi);var ci=$n(oi.exports),li={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpLHI9T2JqZWN0LnByb3RvdHlwZTt2YXIgbixvLGk9KG49T2JqZWN0LmtleXMsbz1PYmplY3QsZnVuY3Rpb24odCl7cmV0dXJuIG4obyh0KSl9KSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYSh0KXtpZihuPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4ucHJvdG90eXBlfHxyKSlyZXR1cm4gaSh0KTt2YXIgZSxuLG89W107Zm9yKHZhciBhIGluIE9iamVjdCh0KSl1LmNhbGwodCxhKSYmImNvbnN0cnVjdG9yIiE9YSYmby5wdXNoKGEpO3JldHVybiBvfXZhciBjPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxmPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYscz1jfHxmfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGw9cy5TeW1ib2wscD1PYmplY3QucHJvdG90eXBlLGg9cC5oYXNPd25Qcm9wZXJ0eSx5PXAudG9TdHJpbmcsdj1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBiPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIGQ9IltvYmplY3QgTnVsbF0iLGc9IltvYmplY3QgVW5kZWZpbmVkXSIsXz1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIGoodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9nOmQ6XyYmXyBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIGU9aC5jYWxsKHQsdikscj10W3ZdO3RyeXt0W3ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89eS5jYWxsKHQpO3JldHVybiBuJiYoZT90W3ZdPXI6ZGVsZXRlIHRbdl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBiLmNhbGwodCl9KHQpfWZ1bmN0aW9uIHcodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFM9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLE89IltvYmplY3QgRnVuY3Rpb25dIixtPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIseD0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHoodCl7aWYoIXcodCkpcmV0dXJuITE7dmFyIGU9aih0KTtyZXR1cm4gZT09T3x8ZT09bXx8ZT09U3x8ZT09eH12YXIgQSwkPXNbIl9fY29yZS1qc19zaGFyZWRfXyJdLEY9KEE9L1teLl0rJC8uZXhlYygkJiYkLmtleXMmJiQua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK0E6IiI7dmFyIFA9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIEwodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBQLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifXZhciBrPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEU9RnVuY3Rpb24ucHJvdG90eXBlLEk9T2JqZWN0LnByb3RvdHlwZSxOPUUudG9TdHJpbmcsVD1JLmhhc093blByb3BlcnR5LE09UmVnRXhwKCJeIitOLmNhbGwoVCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gUih0KXtyZXR1cm4hKCF3KHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hIUYmJkYgaW4gdH0odCkpJiYoeih0KT9NOmspLnRlc3QoTCh0KSl9ZnVuY3Rpb24gVSh0LGUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbZV19KHQsZSk7cmV0dXJuIFIocik/cjp2b2lkIDB9dmFyIEI9VShzLCJEYXRhVmlldyIpLEM9VShzLCJNYXAiKSxEPVUocywiUHJvbWlzZSIpLFc9VShzLCJTZXQiKSxxPVUocywiV2Vha01hcCIpLFY9IltvYmplY3QgTWFwXSIsRz0iW29iamVjdCBQcm9taXNlXSIsSD0iW29iamVjdCBTZXRdIixKPSJbb2JqZWN0IFdlYWtNYXBdIixLPSJbb2JqZWN0IERhdGFWaWV3XSIsUT1MKEIpLFg9TChDKSxZPUwoRCksWj1MKFcpLHR0PUwocSksZXQ9ajsoQiYmZXQobmV3IEIobmV3IEFycmF5QnVmZmVyKDEpKSkhPUt8fEMmJmV0KG5ldyBDKSE9Vnx8RCYmZXQoRC5yZXNvbHZlKCkpIT1HfHxXJiZldChuZXcgVykhPUh8fHEmJmV0KG5ldyBxKSE9SikmJihldD1mdW5jdGlvbih0KXt2YXIgZT1qKHQpLHI9IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsbj1yP0wocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBROnJldHVybiBLO2Nhc2UgWDpyZXR1cm4gVjtjYXNlIFk6cmV0dXJuIEc7Y2FzZSBaOnJldHVybiBIO2Nhc2UgdHQ6cmV0dXJuIEp9cmV0dXJuIGV9KTt2YXIgcnQ9ZXQsbnQ9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBvdCh0KXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PW50fSh0Lmxlbmd0aCkmJiF6KHQpfXZhciBpdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9dmFyIGF0PSJbb2JqZWN0IFN0cmluZ10iO3ZhciBjdCxmdD0oY3Q9Imxlbmd0aCIsZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbY3RdfSksc3Q9UmVnRXhwKCJbXFx1MjAwZFxcdWQ4MDAtXFx1ZGZmZlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZlxcdWZlMGVcXHVmZTBmXSIpO3ZhciBsdD0iXFx1ZDgwMC1cXHVkZmZmIixwdD0iWyIrbHQrIl0iLGh0PSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIseXQ9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsdnQ9IlteIitsdCsiXSIsYnQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLGR0PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixndD0iKD86IitodCsifCIreXQrIikiKyI/IixfdD0iW1xcdWZlMGVcXHVmZTBmXT8iLGp0PV90K2d0KygiKD86XFx1MjAwZCg/OiIrW3Z0LGJ0LGR0XS5qb2luKCJ8IikrIikiK190K2d0KyIpKiIpLHd0PSIoPzoiK1t2dCtodCsiPyIsaHQsYnQsZHQscHRdLmpvaW4oInwiKSsiKSIsU3Q9UmVnRXhwKHl0KyIoPz0iK3l0KyIpfCIrd3QranQsImciKTtmdW5jdGlvbiBPdCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHN0LnRlc3QodCl9KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1TdC5sYXN0SW5kZXg9MDtTdC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOmZ0KHQpfWZ1bmN0aW9uIG10KHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYob3QodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhaXQoZSkmJnV0KGUpJiZqKGUpPT1hdD9PdCh0KTp0Lmxlbmd0aDt2YXIgZSxyPXJ0KHQpO3JldHVybiJbb2JqZWN0IE1hcF0iPT1yfHwiW29iamVjdCBTZXRdIj09cj90LnNpemU6YSh0KS5sZW5ndGh9dmFyIHh0PSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIHp0KHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dXQodCkmJmoodCk9PXh0fXZhciBBdD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLywkdD0vXlx3KiQvO3ZhciBGdD1VKE9iamVjdCwiY3JlYXRlIik7dmFyIFB0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIEx0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24ga3QodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19ZnVuY3Rpb24gRXQodCxlKXtmb3IodmFyIHIsbixvPXQubGVuZ3RoO28tLTspaWYoKHI9dFtvXVswXSk9PT0obj1lKXx8ciE9ciYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1rdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPUZ0P0Z0KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxrdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoRnQpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gUHQuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxrdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIEZ0P3ZvaWQgMCE9PWVbdF06THQuY2FsbChlLHQpfSxrdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1GdCYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfTt2YXIgSXQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBOdCh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBUdCh0LGUpe3ZhciByLG4sbz10Ll9fZGF0YV9fO3JldHVybigic3RyaW5nIj09KG49dHlwZW9mKHI9ZSkpfHwibnVtYmVyIj09bnx8InN5bWJvbCI9PW58fCJib29sZWFuIj09bj8iX19wcm90b19fIiE9PXI6bnVsbD09PXIpP29bInN0cmluZyI9PXR5cGVvZiBlPyJzdHJpbmciOiJoYXNoIl06by5tYXB9ZnVuY3Rpb24gTXQodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19TnQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sTnQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9RXQoZSx0KTtyZXR1cm4hKHI8MCkmJihyPT1lLmxlbmd0aC0xP2UucG9wKCk6SXQuY2FsbChlLHIsMSksLS10aGlzLnNpemUsITApfSxOdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1FdChlLHQpO3JldHVybiByPDA/dm9pZCAwOmVbcl1bMV19LE50LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEV0KHRoaXMuX19kYXRhX18sdCk+LTF9LE50LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fLG49RXQocix0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxyLnB1c2goW3QsZV0pKTpyW25dWzFdPWUsdGhpc30sTXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcga3QsbWFwOm5ldyhDfHxOdCksc3RyaW5nOm5ldyBrdH19LE10LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9VHQodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sTXQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gVHQodGhpcyx0KS5nZXQodCl9LE10LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFR0KHRoaXMsdCkuaGFzKHQpfSxNdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9VHQodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307dmFyIFJ0PSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBVdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFJ0KTt2YXIgcj1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPWU/ZS5hcHBseSh0aGlzLG4pOm5bMF0saT1yLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIHIuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gci5jYWNoZT1uZXcoVXQuQ2FjaGV8fE10KSxyfVV0LkNhY2hlPU10O3ZhciBCdD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxDdD0vXFwoXFwpPy9nLER0PWZ1bmN0aW9uKHQpe3ZhciBlPVV0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1yLnNpemUmJnIuY2xlYXIoKSx0fSkpLHI9ZS5jYWNoZTtyZXR1cm4gZX0oKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoQnQsKGZ1bmN0aW9uKHQscixuLG8pe2UucHVzaChuP28ucmVwbGFjZShDdCwiJDEiKTpyfHx0KX0pKSxlfSkpLFd0PUR0O3ZhciBxdD0xLzAsVnQ9bD9sLnByb3RvdHlwZTp2b2lkIDAsR3Q9VnQ/VnQudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIEh0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihpdCh0KSlyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK3I8bjspb1tyXT1lKHRbcl0scix0KTtyZXR1cm4gb30odCxIdCkrIiI7aWYoenQodCkpcmV0dXJuIEd0P0d0LmNhbGwodCk6IiI7dmFyIGU9dCsiIjtyZXR1cm4iMCI9PWUmJjEvdD09LXF0PyItMCI6ZX1mdW5jdGlvbiBKdCh0LGUpe3JldHVybiBpdCh0KT90OmZ1bmN0aW9uKHQsZSl7aWYoaXQodCkpcmV0dXJuITE7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9ciYmInN5bWJvbCIhPXImJiJib29sZWFuIiE9ciYmbnVsbCE9dCYmIXp0KHQpKXx8JHQudGVzdCh0KXx8IUF0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpfSh0LGUpP1t0XTpXdChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjpIdCh0KX0odCkpfXZhciBLdD0xLzA7ZnVuY3Rpb24gUXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHx6dCh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tS3Q/Ii0wIjplfWZ1bmN0aW9uIFh0KHQsZSxyKXt2YXIgbj1udWxsPT10P3ZvaWQgMDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49KGU9SnQoZSx0KSkubGVuZ3RoO251bGwhPXQmJnI8bjspdD10W1F0KGVbcisrXSldO3JldHVybiByJiZyPT1uP3Q6dm9pZCAwfSh0LGUpO3JldHVybiB2b2lkIDA9PT1uP3I6bn1mdW5jdGlvbiBZdCh0LGU9e30pe2xldCByPVh0KGUsImZzIik7cmV0dXJuISFmdW5jdGlvbih0LGU9e30pe2xldCByPVh0KGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59KHQse2ZzOnJ9KSYmKCFyLmxzdGF0U3luYyh0KS5pc0RpcmVjdG9yeSgpJiYhci5sc3RhdFN5bmModCkuaXNTeW1ib2xpY0xpbmsoKSl9Y29uc3QgWnQ9bmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNDgsOCw5NiwzLDEyNywxMjcsMTI3LDEsMTI3LDk2LDMsMTI3LDEyNywxMjcsMCw5NiwyLDEyNywxMjcsMCw5NiwxLDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI2LDEsMTI2LDk2LDMsMTI2LDEyNywxMjcsMSwxMjYsOTYsMiwxMjcsMTI2LDAsOTYsMSwxMjcsMSwxMjYsMywxMSwxMCwwLDAsMiwxLDMsNCw1LDYsMSw3LDUsMywxLDAsMSw3LDg1LDksMywxMDksMTAxLDEwOSwyLDAsNSwxMjAsMTIwLDEwNCw1MSw1MCwwLDAsNiwxMDUsMTEwLDEwNSwxMTYsNTEsNTAsMCwyLDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1MSw1MCwwLDMsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1MSw1MCwwLDQsNSwxMjAsMTIwLDEwNCw1NCw1MiwwLDUsNiwxMDUsMTEwLDEwNSwxMTYsNTQsNTIsMCw3LDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1NCw1MiwwLDgsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1NCw1MiwwLDksMTAsMjUxLDIyLDEwLDI0MiwxLDEsNCwxMjcsMzIsMCwzMiwxLDEwNiwzMywzLDMyLDEsNjUsMTYsNzksNCwxMjcsMzIsMyw2NSwxNiwxMDcsMzMsNiwzMiwyLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiwzMywzLDMyLDIsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDMzLDQsMzIsMiw2NSwyMDcsMTQwLDE2MiwxNDIsNiwxMDYsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDQsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDQsMzIsMiwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiw1LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDYsMzIsMCw2NSw0LDEwNiwzNCwwLDc5LDEzLDAsMTEsMzIsMiw2NSwxMiwxMTksMzIsNSw2NSwxOCwxMTksMTA2LDMyLDQsNjUsNywxMTksMTA2LDMyLDMsNjUsMSwxMTksMTA2LDUsMzIsMiw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMSwxMDYsMzIsMCwzMiwxLDY1LDE1LDExMywxNiwxLDExLDE0NiwxLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMSw2NSw0LDEwNiwzMiwyLDc1LDY5LDQsNjQsMzIsMCwzMiwxLDQwLDIsMCw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwxMDYsNjUsMTcsMTE5LDY1LDE3NSwyMTQsMjExLDE5MCwyLDEwOCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMiwxLDExLDExLDMsNjQsMzIsMSwzMiwyLDc5LDY5LDQsNjQsMzIsMCwzMiwxLDQ1LDAsMCw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDgsMTA2LDY1LDExLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NSwxNSwxMTgsMTE1LDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDM0LDAsNjUsMTMsMTE4LDMyLDAsMTE1LDY1LDE4OSwyMjAsMjAyLDE0OSwxMjQsMTA4LDM0LDAsNjUsMTYsMTE4LDMyLDAsMTE1LDExLDYzLDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMSw2NSwxMzcsMjM1LDIwOCwyMDgsNywxMDcsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDEsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDU0LDIsMCwxMSwxOTUsNCwxLDYsMTI3LDMyLDEsMzIsMiwxMDYsMzMsNiwzMiwwLDY1LDI0LDEwNiwzMyw0LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MCwyLDAsMzIsMiwxMDYsNTQsMiwwLDMyLDAsNjUsNCwxMDYsMzQsNSwzMiw1LDQwLDIsMCwzMiwyLDY1LDE2LDc5LDMyLDAsNDAsMiwwLDY1LDE2LDc5LDExNCwxMTQsNTQsMiwwLDMyLDIsMzIsMywxMDYsNjUsMTYsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMTYsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDEyLDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsNCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSw4LDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDEyLDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSw0MCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsMzIsNiw2NSwxNiwxMDcsNzcsNCw2NCwzMiw2LDY1LDE2LDEwNywzMyw4LDMyLDAsNjUsOCwxMDYsNDAsMiwwLDMzLDIsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDMzLDMsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDUsMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDMzLDcsMyw2NCwzMiwyLDMyLDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiwzLDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDUsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDUsMzIsNywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNywzMiw4LDMyLDEsNjUsNCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsMiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMyw1NCwyLDAsMzIsMCw2NSwxNiwxMDYsMzIsNSw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzIsNyw1NCwyLDAsMTEsMzIsMSwzMiw2LDczLDQsNjQsMzIsNCwzMiwxLDMyLDYsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDk3LDEsMSwxMjcsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDEsMzIsMCw2NSw0LDEwNiw0MCwyLDAsNCwxMjcsMzIsMSw2NSwxMiwxMTksMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDY1LDE4LDExOSwxMDYsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDY1LDcsMTE5LDEwNiwzMiwwLDY1LDgsMTA2LDQwLDIsMCw2NSwxLDExOSwxMDYsNSwzMiwxLDY1LDE3NywyMDcsMjE3LDE3OCwxLDEwNiwxMSwzMiwwLDQwLDIsMCwxMDYsMzIsMCw2NSwyNCwxMDYsMzIsMCw2NSw0MCwxMDYsNDAsMiwwLDE2LDEsMTEsMjU1LDMsMiwzLDEyNiwxLDEyNywzMiwwLDMyLDEsMTA2LDMzLDYsMzIsMSw2NSwzMiw3OSw0LDEyNiwzMiw2LDY1LDMyLDEwNywzMyw2LDMyLDIsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsMzMsMywzMiwyLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDMzLDQsMzIsMiw2NiwyNDksMjM0LDIwOCwyMDgsMjMxLDIwMSwxNjEsMjI4LDIyNSwwLDEyNCwzMyw1LDMsNjQsMzIsMywzMiwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMywzMiw0LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDQsMzIsMiwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywyLDMyLDUsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNSwzMiw2LDMyLDAsNjUsOCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjYsMTIsMTM3LDMyLDUsNjYsMTgsMTM3LDEyNCwzMiw0LDY2LDcsMTM3LDEyNCwzMiwzLDY2LDEsMTM3LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMiw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMiw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwxLDE3MywxMjQsMzIsMCwzMiwxLDY1LDMxLDExMywxNiw2LDExLDEzNCwyLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMiwzMiwxLDY1LDgsMTA2LDc5LDQsNjQsMzIsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzIsMCwxMzMsNjYsMjcsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzMsMCwzMiwxLDY1LDgsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwxLDY1LDQsMTA2LDMyLDIsNzcsNCw2NCwzMiwwLDMyLDEsNTMsMiwwLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDIzLDEzNyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwyNDksMjQzLDIyMSwyNDEsMTUzLDI0NiwxNTMsMTcxLDIyLDEyNCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMSwzLDY0LDMyLDEsMzIsMiw3Myw0LDY0LDMyLDAsMzIsMSw0OSwwLDAsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjYsMTMzLDY2LDExLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDAsMzIsMSw2NSwxLDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMCwzMiwwLDY2LDMzLDEzNiwxMzMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMzQsMCwzMiwwLDY2LDI5LDEzNiwxMzMsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjYsMzQsMCwzMiwwLDY2LDMyLDEzNiwxMzMsMTEsNzcsMCwzMiwwLDY1LDgsMTA2LDMyLDEsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNjYsMTc3LDE2OSwxNzIsMTkzLDE3MywxODQsMjEyLDE2Niw2MSwxMjUsNTUsMywwLDMyLDAsNjUsMjQsMTA2LDMyLDEsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDMyLDEsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsNTUsMywwLDExLDI0NCw0LDIsMywxMjcsNCwxMjYsMzIsMSwzMiwyLDEwNiwzMyw1LDMyLDAsNjUsNDAsMTA2LDMzLDQsMzIsMCw2NSwyMDAsMCwxMDYsNDAsMiwwLDMzLDMsMzIsMCwzMiwwLDQxLDMsMCwzMiwyLDE3MywxMjQsNTUsMywwLDMyLDIsMzIsMywxMDYsNjUsMzIsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMzIsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSw4LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMTYsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSwyNCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyMDAsMCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsNjUsMzIsMTA2LDMyLDUsNzcsNCw2NCwzMiw1LDY1LDMyLDEwNywzMywyLDMyLDAsNjUsOCwxMDYsNDEsMywwLDMzLDYsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDMzLDcsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDgsMzIsMCw2NSwzMiwxMDYsNDEsMywwLDMzLDksMyw2NCwzMiw2LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw2LDMyLDcsMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNywzMiw4LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDgsMzIsOSwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw5LDMyLDIsMzIsMSw2NSw4LDEwNiwzNCwxLDc5LDEzLDAsMTEsMzIsMCw2NSw4LDEwNiwzMiw2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiw3LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiw4LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiw5LDU1LDMsMCwxMSwzMiwxLDMyLDUsNzMsNCw2NCwzMiw0LDMyLDEsMzIsNSwzMiwxLDEwNywzNCwxLDI1MiwxMCwwLDAsMzIsMCw2NSwyMDAsMCwxMDYsMzIsMSw1NCwyLDAsMTEsMTEsMTg4LDIsMSw1LDEyNiwzMiwwLDY1LDI0LDEwNiw0MSwzLDAsMzMsMSwzMiwwLDQxLDMsMCwzNCwyLDY2LDMyLDkwLDQsMTI2LDMyLDAsNjUsOCwxMDYsNDEsMywwLDM0LDMsNjYsMSwxMzcsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDM0LDQsNjYsNywxMzcsMTI0LDMyLDEsNjYsMTIsMTM3LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzNCw1LDY2LDE4LDEzNywxMjQsMTI0LDMyLDMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiwxLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDUsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsNSwzMiwxLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI0LDExLDMyLDIsMTI0LDMyLDAsNjUsNDAsMTA2LDMyLDIsNjYsMzEsMTMxLDE2NywxNiw2LDExXSk7ZnVuY3Rpb24gdGUodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIGVlKHQpe2xldCBlPSExO2lmKHRlKHQpKWU9IWlzTmFOKE51bWJlcih0KSk7ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiB0IT10fSh0KSlyZXR1cm4hMTtlPSEwfXJldHVybiBlfXZhciByZT0vXHMvO3ZhciBuZT0vXlxzKy87ZnVuY3Rpb24gb2UodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJnJlLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UobmUsIiIpOnR9dmFyIGllPU5hTix1ZT0vXlstK10weFswLTlhLWZdKyQvaSxhZT0vXjBiWzAxXSskL2ksY2U9L14wb1swLTddKyQvaSxmZT1wYXJzZUludDt2YXIgc2U9MS8wLGxlPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBwZSh0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoenQodCkpcmV0dXJuIGllO2lmKHcodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PXcoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PW9lKHQpO3ZhciByPWFlLnRlc3QodCk7cmV0dXJuIHJ8fGNlLnRlc3QodCk/ZmUodC5zbGljZSgyKSxyPzI6OCk6dWUudGVzdCh0KT9pZTordH0odCkpPT09c2V8fHQ9PT0tc2U/KHQ8MD8tMToxKSpsZTp0PT10P3Q6MDowPT09dD90OjB9YXN5bmMgZnVuY3Rpb24gaGUodCxlPXt9KXtpZihyPXQsIltvYmplY3QgQmxvYl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpJiYhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSlyZXR1cm4gY29uc29sZS5sb2coImlucCIsdCksUHJvbWlzZS5yZWplY3QoImlucCBpcyBub3QgYSBCbG9iIG9yIEZpbGUiKTt2YXIgcjtsZXQgbj1YdChlLCJjaHVua1NpemUiKTtlZShuKXx8KG49NjcxMDg4NjQpLG49ZnVuY3Rpb24odCl7cmV0dXJuIGVlKHQpP3BlKHQpOjB9KG4pO2xldHtjcmVhdGU2NDpvfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6aSxkaWdlc3QzMjp1LGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyxpKXtsKHQpO2NvbnN0IHU9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KHUpLHIoMCxlKSx1LnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KHUpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9Yi5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLHUuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQodSksaShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHk9Mm4qKjY0bi0xbjtmdW5jdGlvbiB2KHQpe3JldHVybiB0Jnl9Y29uc3QgYj1uZXcgVGV4dEVuY29kZXIsZD0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9ZCl7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxiLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHYobigwLGIuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWQpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1kKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWQpPT5wKDQ4LHQsbyxpLHUsaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCksdihuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix2KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShadCkpLmluc3RhbmNlKX0oKSxpPW8oKSx1PTA7Zm9yKDt1PHQuc2l6ZTspe2xldCBlPXQuc2xpY2UodSx1K24pLHI9YXdhaXQgZS5hcnJheUJ1ZmZlcigpO2kudXBkYXRlKG5ldyBVaW50OEFycmF5KHIpKSx1Kz1ufXJldHVybiBpLmRpZ2VzdCgpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpfWxldCBjaGVja1NsaWNlc0hhc2g9YXN5bmMocixuLG8pPT57aWYoMD09PW10KHIpKXtyZXR1cm57ZXJyb3I6Im5vIGZpbGVTbGljZUhhc2hzIn19bGV0IGk9W107Zm9yKGxldCB1PTA7dTxyLmxlbmd0aDt1Kyspe2xldCBhPXJbdV0sYz10LnJlc29sdmUobyxgJHtufV8ke2EuaX1gKSxmPSIiO2F3YWl0IGhlKG5ldyBCbG9iKFtlLnJlYWRGaWxlU3luYyhjKV0pKS50aGVuKCh0PT57Zj10fSkpLmNhdGNoKCh0PT57Y29uc29sZS5sb2coImZzSXNGaWxlKF9wYXRoRmlsZSkiLGMsWXQoYyx7ZnM6ZX0pKSxjb25zb2xlLmxvZyh0KX0pKSxhLmg9PT1mJiZpLnB1c2goYS5pKX1yZXR1cm57c2xrczppfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1NsaWNlc0hhc2gKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY2hlY2tTbGljZXNIYXNoCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBwYXJlbnRQb3J0Lm9uKCdtZXNzYWdlJywgcmVjdk1lc3NhZ2UpCiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){u(e)}}(t);if(!i)return u("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function u(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",u),i.on("exit",e=>{1!==e&&u("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):u("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(li);var ai=$n(li.exports);function di(s={}){let u=De(s,"port");In(u)||(u=8080);let o=De(s,"useInert");ur(o)||(o=!0);let c=De(s,"pathStaticFiles");Ot(c)||(c="dist");let l=De(s,"pathUploadTemp");Ot(l)||(l="./uploadTemp"),Hn(l)||dr(l);let a=De(s,"apiName");Ot(a)||(a="api");let d=De(s,"tokenType");Ot(d)||(d="Bearer");let D=De(s,"sizeSlice");In(D)||(D=1048576);let M=De(s,"verifyConn");Sn(M)||(M=()=>!0);let w=De(s,"corsOrigins",[]);hn(w)||(w=["*"]);let y=De(s,"delayForSlice","");jn(y)||(y=100),y=gn(y);let m=null;m=De(s,"serverHapi")?s.serverHapi:n.server({port:u,routes:{timeout:{server:!1,socket:!1},cors:{origin:w,credentials:!1}}});let g=lr(),I=(e,...t)=>{setTimeout(()=>{g.emit(e,...t)},1)};async function C(e){let t=zn(),n=zn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),I("upload",e,n),t}async function p(e){let t=zn(),n=zn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),I("download",e,n),t}function f(e,t,n={}){let r=new i.Readable;r._read=()=>{},r.push(t),r.push(null);let s=De(n,"returnType",""),u=De(n,"returnMsg",""),o=e.response(r).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",r.readableLength);return Ot(s)&&o.header("Return-Type",s),Ot(u)&&o.header("Return-Msg",u),o}function L(e,t){return Ot(t)||(console.log("msg",t),console.log("msg is not an effective string, set msg=''"),t=""),f(e,Zr({error:t}),{returnType:"error",returnMsg:t})}let h={path:`/${a}/main`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let s=De(n,"authorization","");s=Ot(s)?s:"";{let i=!1;try{i=M({apiType:"main",authorization:s,query:r,headers:n,req:e}),Yn(i)&&(i=await i.catch(e=>{console.log(e),i=!1}))}catch(e){console.log(e),i=!1}if(!0!==i)return L(t,"permission denied")}I("handler",{api:"apiMain",headers:n,query:r});let u=await(()=>{let t=zn(),n=[],r=new i.Writable({write(e,t,r){n.push(e),r()}});return r.on("finish",()=>{}),e.payload.pipe(r),e.payload.on("end",()=>{let e=Buffer.concat(n);n=[],t.resolve(e)}),e.payload.on("close",()=>{}),e.payload.on("error",e=>{console.log("apiMain req.payload err",e),I("error",`receive payload error: ${e.message}`),t.reject(`receive payload error: ${e.message}`)}),t})(),o=Gr(new Uint8Array(u)),c={},l="",a="";return await async function(e){let t=zn(),n=zn();n.then(n=>{e.output=n,delete e.input,t.resolve(e)}).catch(e=>{t.reject(e)});{let t=De(e,"func",""),r=De(e,"input",null);I("execute",t,r,n)}return t}(o).then(e=>{c.success=e,l="success",a="need to parse"}).catch(e=>{c.error=e,l="error",a="need to parse"}),f(t,Zr(c),{returnType:l,returnMsg:a})}},b={path:`/${a}/ulctr`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(n,"authorization","");i=Ot(i)?i:"";{let e=M({apiType:"upload-controller",authorization:i,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiUploadCheck",headers:n,query:r});let s=De(e,"payload.mode","");if("check-total-hash"!==s&&"check-slices-hash"!==s&&"merge-slices-push"!==s&&"merge-slices-get"!==s)return L(t,`invalid mode[${s}] in payload`);let u=De(e,"payload.fileHash","");if(!Ot(u))return L(t,"invalid fileHash in payload");let o={},c="",a="";return await(async()=>{let t=null;if("check-total-hash"===s){let n=De(e,"payload.filename",""),r=De(e,"payload.fileSize","");if(t=await ci(r,D,u,l),t.bAllHash){let e={from:"check-total-hash",filename:n,path:t.path},r=await C(e);t={...t,msg:r}}}else if("check-slices-hash"===s){let n=De(e,"payload.fileSliceHashs",[]);t=await ai(n,u,l)}else if("merge-slices-push"===s){let n=De(e,"payload.chunkTotal","");t={queueId:si(u,n,l)}}else if("merge-slices-get"===s){let n=De(e,"payload.filename",""),r=De(e,"payload.queueId",""),i=ui(r,l);if(t={state:i.state,msg:i.msg,queueId:r,filename:n,path:i.path},"success"===i.state){let e={from:"merge-slices-get",filename:n,path:i.path},r=await C(e);t={...t,msg:r}}}return t})().then(e=>{o.success=e,c="success",a="need to parse"}).catch(e=>{o.error=e,c="error",a="need to parse"}),f(t,Zr(o),{returnType:c,returnMsg:a})}},A={path:`/${a}/slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(n,r){let i=De(n,"headers");i=Jt(i)?i:"";let s=De(n,"query");s=Jt(s)?s:"";let u=De(i,"authorization","");u=Ot(u)?u:"";{let e=M({apiType:"upload-slice",authorization:u,headers:i,query:s});if(Yn(e)&&(e=await e),!0!==e)return L(r,"permission denied")}I("handler",{api:"apiUploadSlice",headers:i,query:s});let o=De(i,"chunk-index",""),c=De(i,"chunk-total",""),a=De(i,"package-id","");if(!jn(o))return L(r,"invalid chunkIndex in headers");if(o=gn(o),!jn(c))return L(r,"invalid chunkTotal in headers");if(c=gn(c),!Ot(a))return L(r,"invalid packageId in headers");let d=e.resolve(l,`${a}_${o}`),D=t.createWriteStream(d),w={},m="",g="";return await(()=>{let e=zn();return n.payload.pipe(D),n.payload.on("end",()=>{setTimeout(()=>{e.resolve(`chunk[${o+1}/${c}] of packageId[${a}] done`)},y)}),n.payload.on("error",t=>{console.log(`apiUploadSlice req.payload chunk[${o+1}/${c}] of packageId[${a}] err`,t),I("error",`receive chunk[${o+1}/${c}] of packageId[${a}] error: ${t.message}`),e.reject(`receive chunk[${o+1}/${c}] of packageId[${a}] error: ${t.message}`)}),e})().then(e=>{w.success=e,m="success",g="need to parse"}).catch(e=>{w.error=e,m="error",g="need to parse",I("error",e)}),f(r,Zr(w),{returnType:m,returnMsg:g})}},N={path:`/${a}/dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(n,"authorization","");i=Ot(i)?i:"";{let e=M({apiType:"download-get-filename",authorization:i,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let s=De(e,"payload.fileId","");if(!Ot(s))return L(t,"invalid fileId in payload");let u={fileId:s,token:Ot(i)?i.slice(Mr(d).length+1):""},o={},c="",l="";await p(u).then(e=>{o.success=e,c="success",l="need to parse"}).catch(e=>{o.error=e,c="error",l="need to parse"});let a=De(o,"success"),D=De(a,"streamRead");try{D.destroy()}catch(e){}let w=De(a,"filename");return Ot(w)?(o={success:{filename:w}},f(t,Zr(o),{returnType:c,returnMsg:l})):L(t,"invalid filename")}},x={path:`/${a}/dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(r,"token","");i=Ot(i)?i:"";let s="";Ot(i)&&(s=`${d} ${i}`);{let e=M({apiType:"download-get-file",authorization:s,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let u=De(r,"fileId","");if(u=Ot(u)?u:"",!Ot(u))return L(t,"invalid fileId in query");let o={fileId:u,token:i},c={};if(await p(o).then(e=>{c.success=e}).catch(e=>{c.error=e}),hr(c,"error"))return L(t,"can not get file from fileId");let l=De(c,"success"),a=De(l,"streamRead"),D=De(l,"fileSize");if(!Dr(D)){try{a.destroy()}catch(e){}return L(t,"invalid fileSize")}let w=De(l,"fileType");if(!Ot(w)){try{a.destroy()}catch(e){}return L(t,"invalid fileType")}return w=Mr(w),t.response(a).type(w).header("Content-Length",D)}},E={path:`/${a}/dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(n,"authorization","");i=Ot(i)?i:"";{let e=M({apiType:"download",authorization:i,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiDownload",headers:n,query:r});let s=De(e,"payload.fileId","");if(!Ot(s))return L(t,"invalid fileId in payload");let u={fileId:s,token:Ot(i)?i.slice(Mr(d).length+1):""},o={};if(await p(u).then(e=>{o.success=e}).catch(e=>{o.error=e}),hr(o,"error"))return L(t,"can not get file from fileId");let c=De(o,"success"),l=De(c,"streamRead"),a=De(c,"filename");if(!Ot(a)){try{l.destroy()}catch(e){}return L(t,"invalid filename")}a=Lr(a);let D=De(c,"fileSize");if(!Dr(D)){try{l.destroy()}catch(e){}return L(t,"invalid fileSize")}let w=De(c,"fileType");if(!Ot(w)){try{l.destroy()}catch(e){}return L(t,"invalid fileType")}return w=Mr(w),t.response(l).type(w).header("Content-Disposition",`attachment; filename="${a}"`).header("Content-Length",D)}};De(s,"serverHapi")?m.route([h,b,A,N,x,E]):async function(){o&&await m.register(r);let e=[];if(o){let t={method:"GET",path:"/{file*}",handler:{directory:{path:`${c}/`}}};e=[...e,t]}e=[...e,h,b,A,N,x,E],m.route(e),await m.start(),console.log(`Server running at: ${m.info.uri}`)}();return g.stop=()=>{m.stop()},g}var Di=function(){return M.Date.now()},Mi=Math.max,wi=Math.min;function yi(e,t,n){var r,i,s,u,o,c,l=0,a=!1,d=!1,D=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function M(t){var n=r,s=i;return r=i=void 0,l=t,u=e.apply(s,n)}function w(e){var n=e-c;return void 0===c||n>=t||n<0||d&&e-l>=s}function y(){var e=Di();if(w(e))return m(e);o=setTimeout(y,function(e){var n=t-(e-c);return d?wi(n,s-(e-l)):n}(e))}function m(e){return o=void 0,D&&r?M(e):(r=i=void 0,u)}function g(){var e=Di(),n=w(e);if(r=arguments,i=this,c=e,n){if(void 0===o)return function(e){return l=e,o=setTimeout(y,t),a?M(e):u}(c);if(d)return clearTimeout(o),o=setTimeout(y,t),M(c)}return void 0===o&&(o=setTimeout(y,t)),u}return t=sn(t)||0,x(n)&&(a=!!n.leading,s=(d="maxWait"in n)?Mi(sn(n.maxWait)||0,t):s,D="trailing"in n?!!n.trailing:D),g.cancel=function(){void 0!==o&&clearTimeout(o),l=0,r=c=i=o=void 0},g.flush=function(){return void 0===o?u:m(Di())},g}var mi=function(){try{var e=B(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),gi=mi;function Ii(e,t,n){"__proto__"==t&&gi?gi(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Ci(e,t,n){(void 0!==n&&!Q(e[t],n)||void 0===n&&!(t in e))&&Ii(e,t,n)}var pi="object"==typeof exports&&exports&&!exports.nodeType&&exports,fi=pi&&"object"==typeof module&&module&&!module.nodeType&&module,Li=fi&&fi.exports===pi?M.Buffer:void 0,hi=Li?Li.allocUnsafe:void 0;function bi(e,t){if(t)return e.slice();var n=e.length,r=hi?hi(n):new e.constructor(n);return e.copy(r),r}function Ai(e){var t=new e.constructor(e.byteLength);return new Ie(t).set(new Ie(e)),t}function Ni(e,t){var n=t?Ai(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function xi(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var Ei=Object.create,Ti=function(){function e(){}return function(t){if(!x(t))return{};if(Ei)return Ei(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Zi(e){return"function"!=typeof e.constructor||et(e)?{}:Ti(bn(e))}function vi(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Xi=Object.prototype.hasOwnProperty;function Si(e,t,n){var r=e[t];Xi.call(e,t)&&Q(r,n)&&(void 0!==n||t in e)||Ii(e,t,n)}function Yi(e,t,n,r){var i=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var o=t[s],c=r?r(n[o],e[o],o,n,e):void 0;void 0===c&&(c=e[o]),i?Ii(n,o,c):Si(n,o,c)}return n}var Gi=Object.prototype.hasOwnProperty;function ji(e){if(!x(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=et(e),n=[];for(var r in e)("constructor"!=r||!t&&Gi.call(e,r))&&n.push(r);return n}function Fi(e){return st(e)?$e(e,!0):ji(e)}function Ki(e,t,n,r,i,s,u){var o=vi(e,n),c=vi(t,n),l=u.get(c);if(l)Ci(e,n,l);else{var d,D=s?s(o,c,n+"",e,t,u):void 0,M=void 0===D;if(M){var w=a(c),y=!w&&ze(c),m=!w&&!y&&Oe(c);D=c,w||y||m?a(o)?D=o:L(d=o)&&st(d)?D=xi(o):y?(M=!1,D=bi(c,!0)):m?(M=!1,D=Ni(c,!0)):D=[]:Zn(c)||Ge(c)?(D=o,Ge(o)?D=function(e){return Yi(e,Fi(e))}(o):x(o)&&!E(o)||(D=Zi(c))):M=!1}M&&(u.set(c,D),i(D,c,r,s,u),u.delete(c)),Ci(e,n,D)}}function zi(e,t,n,r,i){e!==t&&Bt(t,function(s,u){if(i||(i=new Me),x(s))Ki(e,t,u,n,zi,r,i);else{var o=r?r(vi(e,u),s,u+"",e,t,i):void 0;void 0===o&&(o=s),Ci(e,u,o)}},Fi)}var Wi=Math.max;var Bi=gi?function(e,t){return gi(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:jt,Vi=Bi,Hi=Date.now;var Ui=function(e){var t=0,n=0;return function(){var r=Hi(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Vi),ki=Ui;function Qi(e,t){return ki(function(e,t,n){return t=Wi(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,s=Wi(r.length-t,0),u=Array(s);++i<s;)u[i]=r[t+i];i=-1;for(var o=Array(t+1);++i<t;)o[i]=r[i];return o[t]=n(u),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,o)}}(e,t,jt),e+"")}var Pi,Ji=(Pi=function(e,t,n){zi(e,t,n)},Qi(function(e,t){var n=-1,r=t.length,i=r>1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(i=Pi.length>3&&"function"==typeof i?(r--,i):void 0,s&&function(e,t,n){if(!x(n))return!1;var r=typeof t;return!!("number"==r?st(n)&&Be(t,n.length):"string"==r&&t in n)&&Q(n[t],e)}(t[0],t[1],s)&&(i=r<3?void 0:i,r=1),e=Object(e);++n<r;){var u=t[n];u&&Pi(e,u,n,i)}return e}));function Ri(e,n={}){let r={};if(Jt(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=lr()),!hr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let i=De(n,"fpTableTags","");Ot(i)||(i="./tableTags.json");let s=De(n,"genTag");Sn(s)||(s=()=>nr()+"|"+sr(6));let u=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)};function o(){let e={};try{if(t.existsSync(i)){let n=Gn(t.readFileSync(i,"utf8"));Jt(n)&&(e=n)}}catch(e){u("error",{msg:"readTableTags catch",err:e})}return e}function c(){try{let e=function(e,t=!1){if(pn(e))return"";let n="";try{n=t?JSON.stringify(e,null,2):JSON.stringify(e)}catch(e){n=""}return n}(r);t.writeFileSync(i,e,"utf8")}catch(e){u("error",{msg:"writeTableTags catch",err:e})}}let l=yi(()=>{c(),u("changeTableTags",r)},200);return e.readTableTags=o,e.writeTableTags=c,e.initTableTags=function(e={},t="useInputFirst"){if("useInputOnly"===t)r=e;else if("useStorageOnly"===t)r=o();else if("useInputFirst"===t)r=Ji(o(),e);else{if("useStorageFirst"!==t)throw new Error(`invalid mode[${t}]`);r=Ji(e,o())}c()},e.setTableTags=function(e={}){r=Ji(r,e),c()},e.getTableTags=function(){return r},e.updateTableTag=function(e){r[e]=s(),l()},e}var Oi=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)he(t,Te(e)),e=bn(e);return t}:Ne;function _i(e){return be(e,Fi,Oi)}var $i=Object.prototype.hasOwnProperty;var qi=/\w*$/;var es=w?w.prototype:void 0,ts=es?es.valueOf:void 0;function ns(e,t,n){var r,i,s,u=e.constructor;switch(t){case"[object ArrayBuffer]":return Ai(e);case"[object Boolean]":case"[object Date]":return new u(+e);case"[object DataView]":return function(e,t){var n=t?Ai(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Ni(e,n);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(e);case"[object RegExp]":return(s=new(i=e).constructor(i.source,qi.exec(i))).lastIndex=i.lastIndex,s;case"[object Symbol]":return r=e,ts?Object(ts.call(r)):{}}}var rs=Je&&Je.isMap,is=rs?Ue(rs):function(e){return L(e)&&"[object Map]"==bt(e)};var ss=Je&&Je.isSet,us=ss?Ue(ss):function(e){return L(e)&&"[object Set]"==bt(e)},os="[object Arguments]",cs="[object Function]",ls="[object Object]",as={};function ds(e,t,n,r,i,s){var u,o=1&t,c=2&t,l=4&t;if(n&&(u=i?n(e,r,i,s):n(e)),void 0!==u)return u;if(!x(e))return e;var d=a(e);if(d){if(u=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$i.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!o)return xi(e,u)}else{var D=bt(e),M=D==cs||"[object GeneratorFunction]"==D;if(ze(e))return bi(e,o);if(D==ls||D==os||M&&!i){if(u=c||M?{}:Zi(e),!o)return c?function(e,t){return Yi(e,Oi(e),t)}(e,function(e,t){return e&&Yi(t,Fi(t),e)}(u,e)):function(e,t){return Yi(e,Te(e),t)}(e,function(e,t){return e&&Yi(t,ut(t),e)}(u,e))}else{if(!as[D])return i?e:{};u=ns(e,D,o)}}s||(s=new Me);var w=s.get(e);if(w)return w;s.set(e,u),us(e)?e.forEach(function(r){u.add(ds(r,t,n,r,e,s))}):is(e)&&e.forEach(function(r,i){u.set(i,ds(r,t,n,i,e,s))});var y=d?void 0:(l?c?_i:ot:c?Fi:ut)(e);return Pn(y||e,function(r,i){y&&(r=e[i=r]),Si(u,i,ds(r,t,n,i,e,s))}),u}as[os]=as["[object Array]"]=as["[object ArrayBuffer]"]=as["[object DataView]"]=as["[object Boolean]"]=as["[object Date]"]=as["[object Float32Array]"]=as["[object Float64Array]"]=as["[object Int8Array]"]=as["[object Int16Array]"]=as["[object Int32Array]"]=as["[object Map]"]=as["[object Number]"]=as[ls]=as["[object RegExp]"]=as["[object Set]"]=as["[object String]"]=as["[object Symbol]"]=as["[object Uint8Array]"]=as["[object Uint8ClampedArray]"]=as["[object Uint16Array]"]=as["[object Uint32Array]"]=!0,as["[object Error]"]=as[cs]=as["[object WeakMap]"]=!1;function Ds(e){return ds(e,5)}var Ms=Ft("length"),ws="\\ud800-\\udfff",ys="["+ws+"]",ms="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",gs="\\ud83c[\\udffb-\\udfff]",Is="[^"+ws+"]",Cs="(?:\\ud83c[\\udde6-\\uddff]){2}",ps="[\\ud800-\\udbff][\\udc00-\\udfff]",fs="(?:"+ms+"|"+gs+")"+"?",Ls="[\\ufe0e\\ufe0f]?",hs=Ls+fs+("(?:\\u200d(?:"+[Is,Cs,ps].join("|")+")"+Ls+fs+")*"),bs="(?:"+[Is+ms+"?",ms,Cs,ps,ys].join("|")+")",As=RegExp(gs+"(?="+gs+")|"+bs+hs,"g");function Ns(e){return Wr(e)?function(e){for(var t=As.lastIndex=0;As.test(e);)++t;return t}(e):Ms(e)}function xs(e){if(null==e)return 0;if(st(e))return"string"==typeof(t=e)||!a(t)&&L(t)&&"[object String]"==f(t)?Ns(e):e.length;var t,n=bt(e);return"[object Map]"==n||"[object Set]"==n?e.size:it(e).length}function Es(e={}){let t=lr(),n={},r=null,i=De(e,"timeAlive");In(i)||(i=1e4),i=gn(i);let s=De(e,"timeDetect");return In(s)||(s=50),s=gn(s),t.trigger=function(e,u){Ot(e)?(hr(n,e)||setTimeout(()=>{t.emit("message",{eventName:"enter",key:e,data:u,now:xs(n)})},1),n[e]={data:u,time:Date.now()},null===r&&(r=setInterval(()=>{Jn(n,(e,r)=>{if(Date.now()-e.time>i){let e=Ds(n[r]);delete n[r],t.emit("message",{eventName:"leave",key:r,data:e.data,now:xs(n)})}}),Jt(n)||(clearInterval(r),r=null)},s))):console.log("trigger need key")},t.get=function(){let e=[];return Jn(n,(t,n)=>{e.push({key:n,data:t.data})}),e=Ds(e),e},t}function Ts(e,t={}){let n={};if(Jt(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=lr()),!hr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let r=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)},i=Es(),s=setInterval(()=>{let e=kt(i.get(),"key"),t={};Jn(e,e=>{t[e]=De(n,e,[])}),n=t},1e3);i.on("message",function({eventName:e,key:t,data:n,now:i}){"enter"===e?r("clientEnter",t,n):"leave"===e&&r("clientLeave",t,n),r("clientChange",i)}),e.on("execute",function(e,t,s){if("[sys:polling]"===e)try{let e=De(t,"clientId",""),r=De(n,e,[]);r=Ds(r),n[e]=[],i.trigger(e,t),s.resolve(r)}catch(e){r("error",e),s.reject("[sys:polling] error")}});return e.getClients=i.get,e.getMessages=()=>Ds(n),e.broadcast=e=>{if(!Jt(n))return;let t={};Jn(n,(n,r)=>{n.push({mode:"broadcast",data:e}),t[r]=n}),n=t},e.clearBroadcast=()=>{clearInterval(s)},e}let Zs=(e,t)=>{let n={};return Jn(e,e=>{let r=e,i=De(t,e,"");Ot(i)&&(n[r]=i)}),n};function vs(e,t,n,r={}){if(!Jt(e))throw new Error("invalid instWConverServer");if(0===xs(t))return e;if(!Jt(n))return e;let i=De(r,"genTag");Sn(i)||(i=()=>nr()+"|"+sr(6));let s={};return Jn(t,e=>{s[e]=i()}),e.initTableTags(s,"useInputOnly"),Jn(t,t=>{let r=n[t];if(!r)throw new Error(`invalid kpOrm[${t}]`);try{r.on("change",()=>{e.updateTableTag(t)})}catch(e){throw new Error(`kpOrm[${t}] can not listen to change events`)}}),e.on("changeTableTags",n=>{e.broadcast({mode:"syncKpTable",data:Zs(t,n)})}),e}function Xs(e,t,n,r){for(var i=n-1,s=e.length;++i<s;)if(r(e[i],t))return i;return-1}var Ss=Array.prototype.splice;function Ys(e,t){return e&&e.length&&t&&t.length?function(e,t,n,r){var i=r?Xs:Kr,s=-1,u=t.length,o=e;for(e===t&&(t=xi(t)),n&&(o=ie(e,Ue(n)));++s<u;)for(var c=0,l=t[s],a=n?n(l):l;(c=i(o,a,c,r))>-1;)o!==e&&Ss.call(o,c,1),Ss.call(e,c,1);return e}(e,t):e}function Gs(e,t={}){if(!Jt(e))throw new Error("invalid instWConverServer");let n=De(t,"getUserIdByToken",null);Sn(n)||(n=async()=>"");let r=De(t,"useDbOrm",null);ur(r)||(r=!1);let i=null;if(r&&(i=De(t,"operOrm",null),!Sn(i)))throw new Error("invalid opt.operOrm when useDbOrm=true");let s=[];if(r&&(s=De(t,"tableNames",null),!Cn(s)))throw new Error("invalid opt.tableNames when useDbOrm=true");let u=[];r&&(u=De(t,"methods",null),Cn(u)||(u=["select","insert","save","del"]));let o=De(t,"kpFunExt",null);let c={};async function l(e,t,r){if(!Ot(e))return r.resolve({state:"error",msg:"invalid func"}),r;let i="";if(!hr(t,"__sysToken__"))return r.resolve({state:"error",msg:"invalid token"}),r;if(i=Mr(t.__sysToken__),!hr(t,"__sysInputArgs__"))return r.resolve({state:"error",msg:"invalid input"}),r;t=t.__sysInputArgs__;let s="";if(s=n(i),Yn(s)&&(s=await s),Ot(s)||(s=""),"[sys:getFuncList]"===e){let e=ut(c);e=function(e,t){if(!hn(e))return[];if((Pt(t)||an(t)||Rt(t)||ur(t))&&(t=[t]),!hn(t))return e;let n=Ds(e);return Ys(n,t),n}(e,"[sys:getTableTags]");let t={state:"success",msg:e};return r.resolve(t),r}if(!hr(c,e))return r.resolve({state:"error",msg:`invalid func[${e}]`}),r;let u=c[e];try{let e=await Wn(u)(s,...t);r.resolve(e)}catch(t){r.resolve({state:"error",msg:`call func[${e}] has an error: ${t.message}`})}return r}return r&&(s=Ds(s),c=function(e,t,n){let r={};return Jn(e,e=>{Jn(t,t=>{r[`${e}.${t}`]=async function(r,i){return await n(r,e,t,i)}})}),r}(s,u,i)),Jt(o)&&Jn(o,(e,t)=>{c[t]=e}),e.on("execute",async function(t,n,r){await l(t,n,r).catch(n=>{e.emit("error",n),r.resolve({state:"error",msg:`execFun func[${t}] has an error: ${n.message}`})})}),e}function js(e,t={}){if(Jt(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=lr()),!hr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let n=De(t,"fpTableTags",null);Ot(n)||(n="./tableTags.json");let r=De(t,"genTag");Sn(r)||(r=()=>nr()+"|"+sr(6)),e=new Ts(e=new Ri(e,{fpTableTags:n,genTag:r}));let i=De(t,"useDbOrm",null);ur(i)||(i=!0);let s=De(t,"kpOrm",null),u=De(t,"operOrm",null),o=De(t,"tableNamesExec",null),c=De(t,"methodsExec",null),l=De(t,"tableNamesSync",null),a=De(t,"getUserIdByToken",null),d=De(t,"kpFunExt",null);if(Jt(d)||(d={}),d={...d,"[sys:getTableTags]":()=>{let t=e.getTableTags();return{mode:"syncKpTable",data:Zs(l,t)}}},e=new Gs(e,{getUserIdByToken:a,useDbOrm:i,operOrm:u,tableNames:o,methods:c,kpFunExt:d}),i){if(!Pt(s))return e.emit("error","invalid opt.kpOrm when useDbOrm=true"),e;e=new vs(e,l,s,{genTag:r})}return e}function Fs(e={}){let t=lr(),i=null,s=null,u=De(e,"port");Dn(u)||(u=8080);let o=De(e,"corsOrigins",[]);hn(o)||(o=["http://localhost"]);let c=De(e,"delayForSlice","");jn(c)||(c=100),c=gn(c);let l=De(e,"useInert");ur(l)||(l=!0);let a=De(e,"pathStaticFiles");Ot(a)||(a="dist");let d=De(e,"apis");hn(d)||(d=[]);let D=De(e,"apiName");Ot(D)||(D="api");let M=De(e,"pathUploadTemp");Ot(M)||(M="./uploadTemp"),Hn(M)||dr(M);let w=De(e,"tokenType");Ot(w)||(w="Bearer");let y=De(e,"sizeSlice");In(y)||(y=1048576);let m=De(e,"verifyConn");Sn(m)||(m=()=>!0);let g=De(e,"getUserIdByToken",null),I=De(e,"useDbOrm",null);ur(I)||(I=!0);let C=De(e,"kpOrm",null),p=De(e,"operOrm",null),f=De(e,"tableNamesExec",null),L=De(e,"methodsExec",null),h=De(e,"tableNamesSync",null),b=De(e,"kpFunExt",null),A=De(e,"fnTableTags",null),N=De(e,"genTag");Sn(N)||(N=()=>nr()+"|"+sr(6));let x=De(e,"showLog");ur(x)||(x=!0);(async()=>{await(async()=>{i=new n.Server({port:u,routes:{timeout:{server:!1,socket:!1},cors:{origin:o,credentials:!1}}}),l&&await i.register(r);let e=[];l&&(e=[{method:"GET",path:"/{file*}",handler:{directory:{path:`${a}/`}}}]),e=[...e,...d],i.route(e)})(),await(async()=>{s=new di({serverHapi:i,apiName:D,pathUploadTemp:M,tokenType:w,sizeSlice:y,verifyConn:m,corsOrigins:o,delayForSlice:c}),s.on("open",function(){x&&console.log(`Server[port:${u}]: open`)}),s.on("clientChange",function(e){x&&console.log(`Server[port:${u}]: now clients: ${e}`)})})(),await(async()=>{s=new js(s,{getUserIdByToken:g,useDbOrm:I,kpOrm:C,operOrm:p,tableNamesExec:f,tableNamesSync:h,methodsExec:L,kpFunExt:b,fnTableTags:A,genTag:N}),s.on("error",e=>{t.emit("error",e)})})(),await i.start(),x&&console.log(`Server running at: ${i.info.uri}`)})().catch(e=>{t.emit("error",e)}),process.on("unhandledRejection",e=>{console.log("unhandledRejection",e),t.emit("error",{mode:"unhandledRejection",err:e})}),process.on("uncaughtException",e=>{console.log("uncaughtException",e),t.emit("error",{mode:"uncaughtException",err:e})});return t.getServer=async()=>(await ar(()=>null!==i),i),t.getInstWConverServer=async()=>(await ar(()=>null!==s),s),t}function Ks(e,t){let n=zn();if(!Cn(e)&&!Pt(e))return n.reject("rs is not an array or object"),n;let r=!1;if(Pt(e)){r=!0;let t=[];Jn(e,(e,n)=>{t.push({k:n,v:e})}),e=t}Sn(t)||(t=function(e){return e});let i=-1,s=[];return e.reduce(function(e,n){return e.then(function(e){s.push(e),i+=1;let u=i,o=n;return r&&(u=n.k,o=n.v),Sn(t)?t(o,u):o})},Promise.resolve()).then(function(e){var t,r,i,u;s.push(e),u=null==(t=s)?0:t.length,s=u?jr(t,(r=i||void 0===r?1:cn(r))<0?0:r,u):[],n.resolve(s)}).catch(function(e){n.reject(e)}),n}let zs={backup:async function(e){return await Ks(e,async(e,t)=>(console.log("backup...",t),{name:t,data:await e.select()}))},recover:async function(e,n,r,i=!1){if(!kn(e))throw console.log("fp",e),new Error("fp is not exist");if(!Jt(n))throw console.log("woItems",n),new Error("invalid woItems");Sn(r)||(r=null),ur(i)||(i=!1);let s=t.readFileSync(e,"utf8");s=ei(s);let u=Gn(s);Sn(r)&&r(),await Ks(u,async e=>{console.log("recover...",e.name),i&&(console.log("needCreateStorage"),await n[e.name].createStorage());let t=null;return xs(e.data)>0&&(t=await n[e.name].insert(e.data)),t})}};function Ws(){if(!Sn(tr))throw new Error("invalid dayjs");return tr().format("YYYY-MM-DDTHH:mm:ss.SSSZ")}var Bs={exports:{}},Vs={},Hs={exports:{}},Us={};function ks(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var Qs=/javascript\s*\:/gim;Us.whiteList=ks(),Us.getDefaultWhiteList=ks,Us.onAttr=function(e,t,n){},Us.onIgnoreAttr=function(e,t,n){},Us.safeAttrValue=function(e,t){return Qs.test(t)?"":t};var Ps={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,i;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,i=e.length;r<i;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(e){return String.prototype.trimRight?e.trimRight():e.replace(/(\s*$)/g,"")}};var Js=function(e,t){";"!==(e=Ps.trimRight(e))[e.length-1]&&(e+=";");var n=e.length,r=!1,i=0,s=0,u="";function o(){if(!r){var n=Ps.trim(e.slice(i,s)),o=n.indexOf(":");if(-1!==o){var c=Ps.trim(n.slice(0,o)),l=Ps.trim(n.slice(o+1));if(c){var a=t(i,u.length,c,l,n);a&&(u+=a+"; ")}}}i=s+1}for(;s<n;s++){var c=e[s];if("/"===c&&"*"===e[s+1]){var l=e.indexOf("*/",s+2);if(-1===l)break;i=(s=l+1)+1,r=!1}else"("===c?r=!0:")"===c?r=!1:";"===c?r||o():"\n"===c&&o()}return Ps.trim(u)},Rs=Us,Os=Js;function _s(e){return null==e}function $s(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).whiteList=e.whiteList||Rs.whiteList,e.onAttr=e.onAttr||Rs.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||Rs.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||Rs.safeAttrValue,this.options=e}$s.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,n=t.whiteList,r=t.onAttr,i=t.onIgnoreAttr,s=t.safeAttrValue;return Os(e,function(e,t,u,o,c){var l=n[u],a=!1;if(!0===l?a=l:"function"==typeof l?a=l(o):l instanceof RegExp&&(a=l.test(o)),!0!==a&&(a=!1),o=s(u,o)){var d,D={position:t,sourcePosition:e,source:c,isWhite:a};return a?_s(d=r(u,o,D))?u+":"+o:d:_s(d=i(u,o,D))?void 0:d}})};var qs=$s;!function(e,t){var n=Us,r=qs;for(var i in(t=e.exports=function(e,t){return new r(t).process(e)}).FilterCSS=r,n)t[i]=n[i];"undefined"!=typeof window&&(window.filterCSS=e.exports)}(Hs,Hs.exports);var eu=Hs.exports,tu={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,i;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,i=e.length;r<i;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(e){var t=/\s|\n|\t/.exec(e);return t?t.index:-1}},nu=eu.FilterCSS,ru=eu.getDefaultWhiteList,iu=tu;function su(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var uu=new nu;function ou(e){return e.replace(cu,"&lt;").replace(lu,"&gt;")}var cu=/</g,lu=/>/g,au=/"/g,du=/&quot;/g,Du=/&#([a-zA-Z0-9]*);?/gim,Mu=/&colon;?/gim,wu=/&newline;?/gim,yu=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,mu=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,gu=/u\s*r\s*l\s*\(.*/gi;function Iu(e){return e.replace(au,"&quot;")}function Cu(e){return e.replace(du,'"')}function pu(e){return e.replace(Du,function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))})}function fu(e){return e.replace(Mu,":").replace(wu," ")}function Lu(e){for(var t="",n=0,r=e.length;n<r;n++)t+=e.charCodeAt(n)<32?" ":e.charAt(n);return iu.trim(t)}function hu(e){return e=Lu(e=fu(e=pu(e=Cu(e))))}function bu(e){return e=ou(e=Iu(e))}Vs.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]},Vs.getDefaultWhiteList=su,Vs.onTag=function(e,t,n){},Vs.onIgnoreTag=function(e,t,n){},Vs.onTagAttr=function(e,t,n){},Vs.onIgnoreTagAttr=function(e,t,n){},Vs.safeAttrValue=function(e,t,n,r){if(n=hu(n),"href"===t||"src"===t){if("#"===(n=iu.trim(n)))return"#";if("http://"!==n.substr(0,7)&&"https://"!==n.substr(0,8)&&"mailto:"!==n.substr(0,7)&&"tel:"!==n.substr(0,4)&&"data:image/"!==n.substr(0,11)&&"ftp://"!==n.substr(0,6)&&"./"!==n.substr(0,2)&&"../"!==n.substr(0,3)&&"#"!==n[0]&&"/"!==n[0])return""}else if("background"===t){if(yu.lastIndex=0,yu.test(n))return""}else if("style"===t){if(mu.lastIndex=0,mu.test(n))return"";if(gu.lastIndex=0,gu.test(n)&&(yu.lastIndex=0,yu.test(n)))return"";!1!==r&&(n=(r=r||uu).process(n))}return n=bu(n)},Vs.escapeHtml=ou,Vs.escapeQuote=Iu,Vs.unescapeQuote=Cu,Vs.escapeHtmlEntities=pu,Vs.escapeDangerHtml5Entities=fu,Vs.clearNonPrintableCharacter=Lu,Vs.friendlyAttrValue=hu,Vs.escapeAttrValue=bu,Vs.onIgnoreTagStripAll=function(){return""},Vs.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var n=!Array.isArray(e),r=[],i=!1;return{onIgnoreTag:function(s,u,o){if(function(t){return!!n||-1!==iu.indexOf(e,t)}(s)){if(o.isClosing){var c="[/removed]",l=o.position+10;return r.push([!1!==i?i:o.position,l]),i=!1,c}return i||(i=o.position),"[removed]"}return t(s,u,o)},remove:function(e){var t="",n=0;return iu.forEach(r,function(r){t+=e.slice(n,r[0]),n=r[1]}),t+=e.slice(n)}}},Vs.stripCommentTag=function(e){for(var t="",n=0;n<e.length;){var r=e.indexOf("\x3c!--",n);if(-1===r){t+=e.slice(n);break}t+=e.slice(n,r);var i=e.indexOf("--\x3e",r);if(-1===i)break;n=i+3}return t},Vs.stripBlankChar=function(e){var t=e.split("");return(t=t.filter(function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))})).join("")},Vs.attributeWrapSign='"',Vs.cssFilter=uu,Vs.getDefaultCSSWhiteList=ru;var Au={},Nu=tu;function xu(e){var t,n=Nu.spaceIndex(e);return t=-1===n?e.slice(1,-1):e.slice(1,n+1),"/"===(t=Nu.trim(t).toLowerCase()).slice(0,1)&&(t=t.slice(1)),"/"===t.slice(-1)&&(t=t.slice(0,-1)),t}function Eu(e){return"</"===e.slice(0,2)}var Tu=/[^a-zA-Z0-9\\_:.-]/gim;function Zu(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"="===n?t:-1}}function vu(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"'"===n||'"'===n?t:-1}}function Xu(e,t){for(;t>0;t--){var n=e[t];if(" "!==n)return"="===n?t:-1}}function Su(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}Au.parseTag=function(e,t,n){var r="",i=0,s=!1,u=!1,o=0,c=e.length,l="",a="";e:for(o=0;o<c;o++){var d=e.charAt(o);if(!1===s){if("<"===d){s=o;continue}}else if(!1===u){if("<"===d){r+=n(e.slice(i,o)),s=o,i=o;continue}if(">"===d||o===c-1){r+=n(e.slice(i,s)),l=xu(a=e.slice(s,o+1)),r+=t(s,r.length,l,a,Eu(a)),i=o+1,s=!1;continue}if('"'===d||"'"===d)for(var D=1,M=e.charAt(o-D);""===M.trim()||"="===M;){if("="===M){u=d;continue e}M=e.charAt(o-++D)}}else if(d===u){u=!1;continue}}return i<c&&(r+=n(e.substr(i))),r},Au.parseAttr=function(e,t){var n=0,r=0,i=[],s=!1,u=e.length;function o(e,n){if(!((e=(e=Nu.trim(e)).replace(Tu,"").toLowerCase()).length<1)){var r=t(e,n||"");r&&i.push(r)}}for(var c=0;c<u;c++){var l,a=e.charAt(c);if(!1!==s||"="!==a)if(!1===s||c!==r)if(/\s|\n|\t/.test(a)){if(e=e.replace(/\s|\n|\t/g," "),!1===s){if(-1===(l=Zu(e,c))){o(Nu.trim(e.slice(n,c))),s=!1,n=c+1;continue}c=l-1;continue}if(-1===(l=Xu(e,c-1))){o(s,Su(Nu.trim(e.slice(n,c)))),s=!1,n=c+1;continue}}else;else{if(-1===(l=e.indexOf(a,c+1)))break;o(s,Nu.trim(e.slice(r+1,l))),s=!1,n=(c=l)+1}else s=e.slice(n,c),n=c+1,r='"'===e.charAt(n)||"'"===e.charAt(n)?n:vu(e,c+1)}return n<e.length&&(!1===s?o(e.slice(n)):o(s,Su(Nu.trim(e.slice(n))))),Nu.trim(i.join(" "))};var Yu=eu.FilterCSS,Gu=Vs,ju=Au,Fu=ju.parseTag,Ku=ju.parseAttr,zu=tu;function Wu(e){return null==e}function Bu(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=Gu.onIgnoreTagStripAll),e.whiteList||e.allowList?e.whiteList=function(e){var t={};for(var n in e)Array.isArray(e[n])?t[n.toLowerCase()]=e[n].map(function(e){return e.toLowerCase()}):t[n.toLowerCase()]=e[n];return t}(e.whiteList||e.allowList):e.whiteList=Gu.whiteList,this.attributeWrapSign=!0===e.singleQuotedAttributeValue?"'":Gu.attributeWrapSign,e.onTag=e.onTag||Gu.onTag,e.onTagAttr=e.onTagAttr||Gu.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||Gu.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||Gu.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||Gu.safeAttrValue,e.escapeHtml=e.escapeHtml||Gu.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new Yu(e.css))}Bu.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this,n=t.options,r=n.whiteList,i=n.onTag,s=n.onIgnoreTag,u=n.onTagAttr,o=n.onIgnoreTagAttr,c=n.safeAttrValue,l=n.escapeHtml,a=t.attributeWrapSign,d=t.cssFilter;n.stripBlankChar&&(e=Gu.stripBlankChar(e)),n.allowCommentTag||(e=Gu.stripCommentTag(e));var D=!1;n.stripIgnoreTagBody&&(D=Gu.StripTagBody(n.stripIgnoreTagBody,s),s=D.onIgnoreTag);var M=Fu(e,function(e,t,n,D,M){var w={sourcePosition:e,position:t,isClosing:M,isWhite:Object.prototype.hasOwnProperty.call(r,n)},y=i(n,D,w);if(!Wu(y))return y;if(w.isWhite){if(w.isClosing)return"</"+n+">";var m=function(e){var t=zu.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=zu.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=zu.trim(e.slice(0,-1))),{html:e,closing:n}}(D),g=r[n],I=Ku(m.html,function(e,t){var r=-1!==zu.indexOf(g,e),i=u(n,e,t,r);return Wu(i)?r?(t=c(n,e,t,d))?e+"="+a+t+a:e:Wu(i=o(n,e,t,r))?void 0:i:i});return D="<"+n,I&&(D+=" "+I),m.closing&&(D+=" /"),D+=">"}return Wu(y=s(n,D,w))?l(D):y},l);return D&&(M=D.remove(M)),M};var Vu=Bu;!function(e,t){var n=Vs,r=Au,i=Vu;function s(e,t){return new i(t).process(e)}(t=e.exports=s).filterXSS=s,t.FilterXSS=i,function(){for(var e in n)t[e]=n[e];for(var i in r)t[i]=r[i]}(),"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)}(Bs,Bs.exports);var Hu=$n(Bs.exports);function Uu(){return"undefined"!=typeof self?self:"undefined"!=typeof window&&void 0!==window.document?window:"undefined"!=typeof global?global:null}function ku(e){let t=function(){let e=Uu();return Hu||e.xss}();let n=function e(n){return Cn(n)||Pt(n)?(Jn(n,function(t,r){n[r]=e(t)}),n):Ot(n)?t(n,{onIgnoreTagAttr:function(e,n,r,i){if("style"===n)return n+'="'+t.escapeAttrValue(r)+'"'}}):n}(Ds(e));return n}let Qu=null,Pu=null;function Ju(e,t,n,r="save"){if(!Jt(Qu))throw console.log("ds",Qu),new Error("invalid ds");let i=Qu[e].keys,s=!1;Cn(n)||(s=!0,n=[n]);let u=Ws();return r.indexOf("insert")>=0&&(i.indexOf("userId")>=0&&Jn(n,(e,r)=>{n[r].userId=t}),i.indexOf("timeCreate")>=0&&Jn(n,(e,t)=>{n[t].timeCreate=u}),i.indexOf("userIdUpdate")>=0&&Jn(n,(e,r)=>{n[r].userIdUpdate=t}),i.indexOf("timeUpdate")>=0&&Jn(n,(e,t)=>{n[t].timeUpdate=u})),(r.indexOf("insert")>=0||r.indexOf("save")>=0)&&(i.indexOf("userIdUpdate")>=0&&Jn(n,(e,r)=>{n[r].userIdUpdate=t}),i.indexOf("timeUpdate")>=0&&Jn(n,(e,t)=>{n[t].timeUpdate=u})),n=kt(n,(e,t)=>{let n={};return Jn(e,(e,t)=>{e=ku(e),n[t]=e}),n}),n=s?n[0]:n}async function Ru(e,t,n,r){let i,s=null;if(!Jt(Pu))return Promise.reject("無有效woItems");let u=De(Pu,t,null);if(null===u)return Promise.reject(`ORM找不到表名稱: ${t}`);if("select"===n){if(i=await u.select(r).catch(e=>{console.log(`${t}.select catch`,e),s="取得資料失敗"}),Ot(s))return Promise.reject(s)}else if("insert"===n||"save"===n){try{r=Ju(t,e,r,n)}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if("insert"===n?i=await u.insert(r).catch(e=>{console.log(`${t}.save catch`,e),s="新增資料失敗"}):"save"===n&&(i=await u.save(r).catch(e=>{console.log(`${t}.save catch`,e),s="儲存資料失敗"})),Ot(s))return Promise.reject(s);i=Cn(r)?kt(r,e=>({id:e.id})):{id:r.id}}else if("del"===n)i=await u.del(r).catch(e=>{console.log(`${t}.del catch`,e),s="刪除資料失敗"});else if("delAll"===n)i=await u.delAll(r).catch(e=>{console.log(`${t}.delAll catch`,e),s="刪除資料失敗"});else if("mix"===n){if(!Jt(r))return Promise.reject("mix僅支援輸入ltdtDiffByKey結果物件");let n;i=[];let o=De(r,"add",[]);if(xs(o)>0){try{o=Ju(t,e,o,"insert+save")}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if(await u.insert(o).catch(e=>{console.log(`${t}.save catch`,e),s="新增資料失敗"}),Ot(s))return Promise.reject(s);n=kt(o,e=>({id:e.id})),i=[...i,...n]}let c=De(r,"del",[]);if(xs(c)>0){if(await u.del(c).catch(e=>{console.log(`${t}.save catch`,e),s="刪除資料失敗"}),Ot(s))return Promise.reject(s);n=kt(c,e=>({id:e.id})),i=[...i,...n]}let l=De(r,"diff",[]);if(xs(l)>0){try{l=Ju(t,e,l)}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if(await u.save(l).catch(e=>{console.log(`${t}.save catch`,e),s="變更資料失敗"}),Ot(s))return Promise.reject(s);n=kt(l,e=>({id:e.id})),i=[...i,...n]}}else s=`invalid mode: ${n}`;return Ot(s)?Promise.reject(s):i}function Ou(e,t){return Qu=e,Pu=t,Ru}function _u(e,t){var n=[];return Ht(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function $u(e,t){return(a(e)?Ae:_u)(e,zt(t))}function qu(e,t=null){if(!Cn(e)){let e=zn();return e.reject("pms is not an array"),e}return e.reduce((e,t)=>e.then(t),Promise.resolve(t))}let eo=[],to=[],no=[],ro=null,io=null,so=!0,uo=!0;function oo(e){setTimeout(()=>{eo.push(e)},1)}function co(e){setTimeout(()=>{to.push(e)},1)}function lo(e){setTimeout(()=>{no.push(e)},1)}async function ao(e,t,n,r){if(!Sn(ro))return Promise.reject("invalid mapOrm");if(so&&!Ot(e))return console.log("userId",e),console.log("找不到使用者主鍵"),Promise.reject("找不到使用者主鍵");let i="n";if(so){if(!Sn(io))return Promise.reject("invalid getUserById");let t=await io(e);if(!t)return console.log("userId",e),console.log("找不到使用者資訊"),Promise.reject("找不到使用者資訊");i=De(t,"isAdmin"),"y"!==i&&"n"!==i&&(i="n");let n=De(t,"isActive");if("y"!==n&&"n"!==n&&(n="n"),"y"!==n)return console.log("userId",e),console.log("oSelf",t),console.log("使用者被停權或無有效使用者資訊"),Promise.reject("使用者被停權或無有效使用者資訊")}if(await Ks(eo,s=>s({woName:t,userId:e,isAdmin:i,mode:n,input:r})),xs(to)>0){let s={woName:t,userId:e,isAdmin:i,mode:n,input:r},u=await qu(to,s);r=u.input}let s=await ro(e,t,n,r);return uo&&"n"===i&&"select"===n&&Cn(s)&&(s=$u(s,e=>!hr(e,"isActive")||!("n"===e.isActive))),xs(no)>0&&(s=await qu(no,{woName:t,userId:e,isAdmin:i,mode:n,input:r,output:s})),s}function Do(e,t,n,r,i={}){let s=function(e,t,n,r){if(!Jt(e))throw console.log("ds",e),new Error("invalid ds");if(!Sn(t))throw console.log("WOrm",t),new Error("invalid WOrm");if(!Ot(n))throw console.log("url",n),new Error("invalid url");if(!Ot(r))throw console.log("db",r),new Error("invalid db");let i={};return Jn(ut(e),e=>{let s=new t({url:n,db:r,cl:e});i[e]=s}),i}(e,t,n,r),u=function(e,t={}){return Sn(e)?(ro=e,so=De(t,"useCheckUser"),ur(so)||(so=!0),io=De(t,"getUserById"),uo=De(t,"useExcludeWhenNotAdmin"),ur(uo)||(uo=!0),{addFunCheck:oo,addFunPreProcessing:co,addFunPostProcessing:lo,procOrm:ao}):Promise.reject("invalid mapOrm")}(Ou(e,s),i);return{...zs,woItems:s,closeAll:async()=>{await Ks(s,async e=>{e&&Sn(e.close)&&await e.close()})},...u}}const Mo=[];for(let e=0;e<256;++e)Mo.push((e+256).toString(16).slice(1));const wo=new Uint8Array(16);function yo(){return crypto.getRandomValues(wo)}const mo={};function go(e,t,n){let r;if(e)r=Io(e.random??e.rng?.()??yo(),e.msecs,e.seq,t,n);else{const e=Date.now(),i=yo();!function(e,t,n){e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=Co(n),e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(mo,e,i),r=Io(i,mo.msecs,mo.seq,t,n)}return t??function(e,t=0){return(Mo[e[t+0]]+Mo[e[t+1]]+Mo[e[t+2]]+Mo[e[t+3]]+"-"+Mo[e[t+4]]+Mo[e[t+5]]+"-"+Mo[e[t+6]]+Mo[e[t+7]]+"-"+Mo[e[t+8]]+Mo[e[t+9]]+"-"+Mo[e[t+10]]+Mo[e[t+11]]+Mo[e[t+12]]+Mo[e[t+13]]+Mo[e[t+14]]+Mo[e[t+15]]).toLowerCase()}(r)}function Io(e,t,n,r,i=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(i<0||i+16>r.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`)}else r=new Uint8Array(16),i=0;return t??=Date.now(),n??=Co(e),r[i++]=t/1099511627776&255,r[i++]=t/4294967296&255,r[i++]=t/16777216&255,r[i++]=t/65536&255,r[i++]=t/256&255,r[i++]=255&t,r[i++]=112|n>>>28&15,r[i++]=n>>>20&255,r[i++]=128|n>>>14&63,r[i++]=n>>>6&255,r[i++]=n<<2&255|3&e[10],r[i++]=e[11],r[i++]=e[12],r[i++]=e[13],r[i++]=e[14],r[i++]=e[15],r}function Co(e){return(127&e[6])<<24|e[7]<<16|e[8]<<8|e[9]}function po(){return go()}function fo(e,t){if(!Pt(e))return{};if(!hn(t))return{};let n={};return Jn(t,function(t){hr(e,t)&&(n[t]=De(e,t))}),n}let Lo="grups",ho={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"名稱",type:"STRING"},description:{name:"說明",type:"TEXT"},from:{name:"來源",type:"STRING"},cpemis:{name:"權限清單",type:"TEXT"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},bo=(e={})=>{let t=Rn(e,ut(ho));return t.id=`${po()}`,t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t},Ao="pemis",No={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"名稱",type:"STRING"},description:{name:"說明",type:"TEXT"},from:{name:"來源",type:"STRING"},crules:{name:"管控對象清單",type:"TEXT"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},xo=(e={})=>{let t=Rn(e,ut(No));return t.id=`${po()}`,t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t},Eo="targets",To={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},description:{name:"說明",type:"TEXT"},from:{name:"來源",type:"STRING"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},Zo=(e={})=>{let t=Rn(e,ut(To));return t.id=`${po()}`,t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t},vo="users",Xo={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"姓名",type:"STRING"},email:{name:"電子郵件",type:"STRING"},description:{name:"描述",type:"TEXT"},from:{name:"來源",type:"STRING"},cgrups:{name:"權限群組清單",type:"TEXT"},isAdmin:{name:"是否為系統管理員",type:"STRING"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"},isActive:{name:"是否有效",type:"STRING"}},So=(e={})=>{let t=Rn(e,ut(Xo));return t.id=`${po()}`,t.isAdmin="n",t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t.isActive="y",t};function Yo(e,t={}){let n=De(t,"useCreateStorage");ur(n)||(n=!1);let{keyTable:r,tableNameCht:i,tableNameEng:s,settings:u,parser:o,funNew:c,funTest:l,ext:a}=e;if(!Ot(r))throw new Error(`invalid keyTable[${r}]`);if(Ot(i)||(i=r),Ot(s)||(s=r),!Jt(u))throw new Error("invalid settings");Jt(a)||(a=null),Jt(o)||(o=null),Sn(c)||(c=null);let d=null;Sn(l)&&(d=async e=>{if(!Jt(e))throw new Error("invalid wo");if(!hr(e,r))throw console.log(e),new Error(`keyTable[${r}] is not in wo`);let t=[];try{t=l(),Yn(t)&&(t=await t)}catch(e){throw console.log(`keyTable[${r}] funTest catch`,e),new Error(e)}if(0!==xs(t))return n&&await e[r].createStorage(),await e[r].save(t),t});let D={},M={};return Jn(ut(u),e=>{let t=De(u,`${e}.name`,"");Ot(t)&&(D[e]=t);let n=De(u,`${e}.type`,"");Ot(n)&&(M[e]=n)}),{...e,keyTable:r,tableNameCht:i,tableNameEng:s,settings:u,keys:ut(u),kpType:M,kpHead:D,parser:o,funNew:c,funTest:l,funTestAndSave:d,ext:a}}let Go={grups:{keyTable:Lo,tableNameCht:"權限群組設定",tableNameEng:"Permission groups",settings:ho,funNew:bo,funTest:()=>{let e=[["權限群組M1","\n {\n '權限P1': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P2': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n }\n "],["權限群組M2","\n {\n '權限P2': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P3': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n }\n "],["權限群組M3","\n {\n '權限P2': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P3': {\n 'mode': 'AND',\n 'isActive': 'y',\n },\n }\n "],["權限群組M4","\n {\n '權限P3': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P4': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n }\n "]];return e=kt(e,([e,t],n)=>{let r=bo({userId:"id-for-admin",order:n,name:e,description:`${e}的說明`,cpemis:t});return r.id=`id-for-${e}`,r=fo(r,ut(ho)),r}),console.log(`已產生: ${Lo} 測試資料`,e),e}},pemis:{keyTable:Ao,tableNameCht:"權限設定",tableNameEng:"Permissions",settings:No,funNew:xo,funTest:()=>{let e=[["權限P1","{ \"專案A/頁A/區塊A\": 'y', \"專案A/頁B/區塊A\": 'n', \"專案A/頁C\": 'n' }"],["權限P2","{ \"專案A/頁C\": 'y', \"專案B/頁A/區塊A\": 'y', \"專案B/頁A/區塊B\": 'y' }"],["權限P3","{ \"專案A/頁C\": 'y', \"專案B/頁A/區塊A\": 'n', \"專案B/頁A/區塊B\": 'y', \"專案B/頁A/區塊C\": 'y' }"],["權限P4","{ \"專案B/頁B/區塊A/待辦事項清單\": 'y', \"專案B/頁B/區塊B/顯示後台按鈕\": 'n' }"]];return e=kt(e,([e,t],n)=>{let r=xo({userId:"id-for-admin",order:n,name:e,description:`${e}的說明`,crules:t});return r.id=`id-for-${e}`,r=fo(r,ut(No)),r}),console.log(`已產生: ${Ao} 測試資料`,e),e}},targets:{keyTable:Eo,tableNameCht:"管控對象",tableNameEng:"Targets",settings:To,funNew:Zo,funTest:()=>{let e=["專案A/頁A/區塊A","專案A/頁A/區塊A/執行按鈕","專案A/頁A/區塊A/分析按鈕","專案A/頁B/區塊A","專案A/頁B/區塊A/執行按鈕","專案A/頁B/區塊A/分析按鈕","專案A/頁B/區塊B/展開按鈕","專案A/頁B/區塊B/下載按鈕","專案A/頁C","專案B/頁A/區塊A","專案B/頁A/區塊A/顯示綜合報表","專案B/頁A/區塊A/顯示當前數據","專案B/頁A/區塊B","專案B/頁A/區塊B/下載報表按鈕","專案B/頁A/區塊B/下載數據按鈕","專案B/頁A/區塊C","專案B/頁B/區塊A","專案B/頁B/區塊A/待辦事項清單","專案B/頁B/區塊A/相關資源清單","專案B/頁B/區塊B","專案B/頁B/區塊B/顯示後台按鈕","專案B/頁B/區塊B/轉跳主站按鈕"];return e=kt(e,(e,t)=>{let n=Zo({userId:"id-for-admin",order:t,description:`${e}的說明`});return n.id=e,n=fo(n,ut(To)),n}),console.log(`已產生: ${Eo} 測試資料`,e),e}},users:{keyTable:vo,tableNameCht:"使用者",tableNameEng:"Users",settings:Xo,funNew:So,funTest:()=>{let e=[["peter","teamA","\n { \n '權限群組M1': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","n"],["mary","teamA","\n { \n '權限群組M2': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","n"],["john","teamA","\n { \n '權限群組M3': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","n"],["admin","","\n { \n '權限群組M4': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","y"]];return e=kt(e,([e,t,n,r],i)=>{let s=So({userId:"id-for-admin",order:i,name:e,email:`${e}@example.com`,from:t,cgrups:n,isAdmin:r});return s.id=`id-for-${e}`,s.isAdmin=r,s=fo(s,ut(Xo)),s}),console.log(`已產生: ${vo} 測試資料`,e),e}}},jo={};for(let e in Go)jo[e]=Yo(Go[e],{useCreateStorage:!1});var Fo={exports:{}};!function(e){e.exports=function(){function e(e,t){return e(t={exports:{}},t.exports),t.exports}var t=e(function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)}),n=e(function(e){var t=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=t)});n.version;var r=function(e){return"object"==typeof e?null!==e:"function"==typeof e},i=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e},s=function(e){try{return!!e()}catch(e){return!0}},u=!s(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),o=t.document,c=r(o)&&r(o.createElement),l=function(e){return c?o.createElement(e):{}},a=!u&&!s(function(){return 7!=Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a}),d=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")},D=Object.defineProperty,M={f:u?Object.defineProperty:function(e,t,n){if(i(e),t=d(t,!0),i(n),a)try{return D(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},w=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},y=u?function(e,t,n){return M.f(e,t,w(1,n))}:function(e,t,n){return e[t]=n,e},m={}.hasOwnProperty,g=function(e,t){return m.call(e,t)},I=0,C=Math.random(),p=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++I+C).toString(36))},f=e(function(e){var r="__core-js_shared__",i=t[r]||(t[r]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})}),L=f("native-function-to-string",Function.toString),h=e(function(e){var r=p("src"),i="toString",s=(""+L).split(i);n.inspectSource=function(e){return L.call(e)},(e.exports=function(e,n,i,u){var o="function"==typeof i;o&&(g(i,"name")||y(i,"name",n)),e[n]!==i&&(o&&(g(i,r)||y(i,r,e[n]?""+e[n]:s.join(String(n)))),e===t?e[n]=i:u?e[n]?e[n]=i:y(e,n,i):(delete e[n],y(e,n,i)))})(Function.prototype,i,function(){return"function"==typeof this&&this[r]||L.call(this)})}),b=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e},A=function(e,t,n){if(b(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},N="prototype",x=function(e,r,i){var s,u,o,c,l=e&x.F,a=e&x.G,d=e&x.S,D=e&x.P,M=e&x.B,w=a?t:d?t[r]||(t[r]={}):(t[r]||{})[N],m=a?n:n[r]||(n[r]={}),g=m[N]||(m[N]={});for(s in a&&(i=r),i)o=((u=!l&&w&&void 0!==w[s])?w:i)[s],c=M&&u?A(o,t):D&&"function"==typeof o?A(Function.call,o):o,w&&h(w,s,o,e&x.U),m[s]!=o&&y(m,s,c),D&&g[s]!=o&&(g[s]=o)};t.core=n,x.F=1,x.G=2,x.S=4,x.P=8,x.B=16,x.W=32,x.U=64,x.R=128;var E,T=x,Z=Math.ceil,v=Math.floor,X=function(e){return isNaN(e=+e)?0:(e>0?v:Z)(e)},S=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Y=(E=!1,function(e,t){var n,r,i=String(S(e)),s=X(t),u=i.length;return s<0||s>=u?E?"":void 0:(n=i.charCodeAt(s))<55296||n>56319||s+1===u||(r=i.charCodeAt(s+1))<56320||r>57343?E?i.charAt(s):n:E?i.slice(s,s+2):r-56320+(n-55296<<10)+65536});T(T.P,"String",{codePointAt:function(e){return Y(this,e)}}),n.String.codePointAt;var G=Math.max,j=Math.min,F=function(e,t){return(e=X(e))<0?G(e+t,0):j(e,t)},K=String.fromCharCode,z=String.fromCodePoint;T(T.S+T.F*(!!z&&1!=z.length),"String",{fromCodePoint:function(e){for(var t,n=arguments,r=[],i=arguments.length,s=0;i>s;){if(t=+n[s++],F(t,1114111)!==t)throw RangeError(t+" is not a valid code point");r.push(t<65536?K(t):K(55296+((t-=65536)>>10),t%1024+56320))}return r.join("")}}),n.String.fromCodePoint;var W,B,V,H,U,k,Q,P,J,R,O,_,$,q,ee={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},te={isSpaceSeparator:function(e){return"string"==typeof e&&ee.Space_Separator.test(e)},isIdStartChar:function(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||"$"===e||"_"===e||ee.ID_Start.test(e))},isIdContinueChar:function(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"$"===e||"_"===e||"‌"===e||"‍"===e||ee.ID_Continue.test(e))},isDigit:function(e){return"string"==typeof e&&/[0-9]/.test(e)},isHexDigit:function(e){return"string"==typeof e&&/[0-9A-Fa-f]/.test(e)}},ne=function(e,t){W=String(e),B="start",V=[],H=0,U=1,k=0,Q=void 0,P=void 0,J=void 0;do{Q=ie(),Me[B]()}while("eof"!==Q.type);return"function"==typeof t?re({"":J},"",t):J};function re(e,t,n){var r=e[t];if(null!=r&&"object"==typeof r)if(Array.isArray(r))for(var i=0;i<r.length;i++){var s=String(i),u=re(r,s,n);void 0===u?delete r[s]:Object.defineProperty(r,s,{value:u,writable:!0,enumerable:!0,configurable:!0})}else for(var o in r){var c=re(r,o,n);void 0===c?delete r[o]:Object.defineProperty(r,o,{value:c,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}function ie(){for(R="default",O="",_=!1,$=1;;){q=se();var e=oe[R]();if(e)return e}}function se(){if(W[H])return String.fromCodePoint(W.codePointAt(H))}function ue(){var e=se();return"\n"===e?(U++,k=0):e?k+=e.length:k++,e&&(H+=e.length),e}var oe={default:function(){switch(q){case"\t":case"\v":case"\f":case" ":case" ":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void ue();case"/":return ue(),void(R="comment");case void 0:return ue(),ce("eof")}if(!te.isSpaceSeparator(q))return oe[B]();ue()},comment:function(){switch(q){case"*":return ue(),void(R="multiLineComment");case"/":return ue(),void(R="singleLineComment")}throw me(ue())},multiLineComment:function(){switch(q){case"*":return ue(),void(R="multiLineCommentAsterisk");case void 0:throw me(ue())}ue()},multiLineCommentAsterisk:function(){switch(q){case"*":return void ue();case"/":return ue(),void(R="default");case void 0:throw me(ue())}ue(),R="multiLineComment"},singleLineComment:function(){switch(q){case"\n":case"\r":case"\u2028":case"\u2029":return ue(),void(R="default");case void 0:return ue(),ce("eof")}ue()},value:function(){switch(q){case"{":case"[":return ce("punctuator",ue());case"n":return ue(),le("ull"),ce("null",null);case"t":return ue(),le("rue"),ce("boolean",!0);case"f":return ue(),le("alse"),ce("boolean",!1);case"-":case"+":return"-"===ue()&&($=-1),void(R="sign");case".":return O=ue(),void(R="decimalPointLeading");case"0":return O=ue(),void(R="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return O=ue(),void(R="decimalInteger");case"I":return ue(),le("nfinity"),ce("numeric",1/0);case"N":return ue(),le("aN"),ce("numeric",NaN);case'"':case"'":return _='"'===ue(),O="",void(R="string")}throw me(ue())},identifierNameStartEscape:function(){if("u"!==q)throw me(ue());ue();var e=De();switch(e){case"$":case"_":break;default:if(!te.isIdStartChar(e))throw Ie()}O+=e,R="identifierName"},identifierName:function(){switch(q){case"$":case"_":case"‌":case"‍":return void(O+=ue());case"\\":return ue(),void(R="identifierNameEscape")}if(!te.isIdContinueChar(q))return ce("identifier",O);O+=ue()},identifierNameEscape:function(){if("u"!==q)throw me(ue());ue();var e=De();switch(e){case"$":case"_":case"‌":case"‍":break;default:if(!te.isIdContinueChar(e))throw Ie()}O+=e,R="identifierName"},sign:function(){switch(q){case".":return O=ue(),void(R="decimalPointLeading");case"0":return O=ue(),void(R="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return O=ue(),void(R="decimalInteger");case"I":return ue(),le("nfinity"),ce("numeric",$*(1/0));case"N":return ue(),le("aN"),ce("numeric",NaN)}throw me(ue())},zero:function(){switch(q){case".":return O+=ue(),void(R="decimalPoint");case"e":case"E":return O+=ue(),void(R="decimalExponent");case"x":case"X":return O+=ue(),void(R="hexadecimal")}return ce("numeric",0*$)},decimalInteger:function(){switch(q){case".":return O+=ue(),void(R="decimalPoint");case"e":case"E":return O+=ue(),void(R="decimalExponent")}if(!te.isDigit(q))return ce("numeric",$*Number(O));O+=ue()},decimalPointLeading:function(){if(te.isDigit(q))return O+=ue(),void(R="decimalFraction");throw me(ue())},decimalPoint:function(){switch(q){case"e":case"E":return O+=ue(),void(R="decimalExponent")}return te.isDigit(q)?(O+=ue(),void(R="decimalFraction")):ce("numeric",$*Number(O))},decimalFraction:function(){switch(q){case"e":case"E":return O+=ue(),void(R="decimalExponent")}if(!te.isDigit(q))return ce("numeric",$*Number(O));O+=ue()},decimalExponent:function(){switch(q){case"+":case"-":return O+=ue(),void(R="decimalExponentSign")}if(te.isDigit(q))return O+=ue(),void(R="decimalExponentInteger");throw me(ue())},decimalExponentSign:function(){if(te.isDigit(q))return O+=ue(),void(R="decimalExponentInteger");throw me(ue())},decimalExponentInteger:function(){if(!te.isDigit(q))return ce("numeric",$*Number(O));O+=ue()},hexadecimal:function(){if(te.isHexDigit(q))return O+=ue(),void(R="hexadecimalInteger");throw me(ue())},hexadecimalInteger:function(){if(!te.isHexDigit(q))return ce("numeric",$*Number(O));O+=ue()},string:function(){switch(q){case"\\":return ue(),void(O+=ae());case'"':return _?(ue(),ce("string",O)):void(O+=ue());case"'":return _?void(O+=ue()):(ue(),ce("string",O));case"\n":case"\r":throw me(ue());case"\u2028":case"\u2029":Ce(q);break;case void 0:throw me(ue())}O+=ue()},start:function(){switch(q){case"{":case"[":return ce("punctuator",ue())}R="value"},beforePropertyName:function(){switch(q){case"$":case"_":return O=ue(),void(R="identifierName");case"\\":return ue(),void(R="identifierNameStartEscape");case"}":return ce("punctuator",ue());case'"':case"'":return _='"'===ue(),void(R="string")}if(te.isIdStartChar(q))return O+=ue(),void(R="identifierName");throw me(ue())},afterPropertyName:function(){if(":"===q)return ce("punctuator",ue());throw me(ue())},beforePropertyValue:function(){R="value"},afterPropertyValue:function(){switch(q){case",":case"}":return ce("punctuator",ue())}throw me(ue())},beforeArrayValue:function(){if("]"===q)return ce("punctuator",ue());R="value"},afterArrayValue:function(){switch(q){case",":case"]":return ce("punctuator",ue())}throw me(ue())},end:function(){throw me(ue())}};function ce(e,t){return{type:e,value:t,line:U,column:k}}function le(e){for(var t=0,n=e;t<n.length;t+=1){var r=n[t];if(se()!==r)throw me(ue());ue()}}function ae(){switch(se()){case"b":return ue(),"\b";case"f":return ue(),"\f";case"n":return ue(),"\n";case"r":return ue(),"\r";case"t":return ue(),"\t";case"v":return ue(),"\v";case"0":if(ue(),te.isDigit(se()))throw me(ue());return"\0";case"x":return ue(),de();case"u":return ue(),De();case"\n":case"\u2028":case"\u2029":return ue(),"";case"\r":return ue(),"\n"===se()&&ue(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw me(ue())}return ue()}function de(){var e="",t=se();if(!te.isHexDigit(t))throw me(ue());if(e+=ue(),t=se(),!te.isHexDigit(t))throw me(ue());return e+=ue(),String.fromCodePoint(parseInt(e,16))}function De(){for(var e="",t=4;t-- >0;){var n=se();if(!te.isHexDigit(n))throw me(ue());e+=ue()}return String.fromCodePoint(parseInt(e,16))}var Me={start:function(){if("eof"===Q.type)throw ge();we()},beforePropertyName:function(){switch(Q.type){case"identifier":case"string":return P=Q.value,void(B="afterPropertyName");case"punctuator":return void ye();case"eof":throw ge()}},afterPropertyName:function(){if("eof"===Q.type)throw ge();B="beforePropertyValue"},beforePropertyValue:function(){if("eof"===Q.type)throw ge();we()},beforeArrayValue:function(){if("eof"===Q.type)throw ge();"punctuator"!==Q.type||"]"!==Q.value?we():ye()},afterPropertyValue:function(){if("eof"===Q.type)throw ge();switch(Q.value){case",":return void(B="beforePropertyName");case"}":ye()}},afterArrayValue:function(){if("eof"===Q.type)throw ge();switch(Q.value){case",":return void(B="beforeArrayValue");case"]":ye()}},end:function(){}};function we(){var e;switch(Q.type){case"punctuator":switch(Q.value){case"{":e={};break;case"[":e=[]}break;case"null":case"boolean":case"numeric":case"string":e=Q.value}if(void 0===J)J=e;else{var t=V[V.length-1];Array.isArray(t)?t.push(e):Object.defineProperty(t,P,{value:e,writable:!0,enumerable:!0,configurable:!0})}if(null!==e&&"object"==typeof e)V.push(e),B=Array.isArray(e)?"beforeArrayValue":"beforePropertyName";else{var n=V[V.length-1];B=null==n?"end":Array.isArray(n)?"afterArrayValue":"afterPropertyValue"}}function ye(){V.pop();var e=V[V.length-1];B=null==e?"end":Array.isArray(e)?"afterArrayValue":"afterPropertyValue"}function me(e){return fe(void 0===e?"JSON5: invalid end of input at "+U+":"+k:"JSON5: invalid character '"+pe(e)+"' at "+U+":"+k)}function ge(){return fe("JSON5: invalid end of input at "+U+":"+k)}function Ie(){return fe("JSON5: invalid identifier character at "+U+":"+(k-=5))}function Ce(e){console.warn("JSON5: '"+pe(e)+"' in strings is not valid ECMAScript; consider escaping")}function pe(e){var t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e])return t[e];if(e<" "){var n=e.charCodeAt(0).toString(16);return"\\x"+("00"+n).substring(n.length)}return e}function fe(e){var t=new SyntaxError(e);return t.lineNumber=U,t.columnNumber=k,t}var Le=function(e,t,n){var r,i,s,u=[],o="",c="";if(null==t||"object"!=typeof t||Array.isArray(t)||(n=t.space,s=t.quote,t=t.replacer),"function"==typeof t)i=t;else if(Array.isArray(t)){r=[];for(var l=0,a=t;l<a.length;l+=1){var d=a[l],D=void 0;"string"==typeof d?D=d:("number"==typeof d||d instanceof String||d instanceof Number)&&(D=String(d)),void 0!==D&&r.indexOf(D)<0&&r.push(D)}}return n instanceof Number?n=Number(n):n instanceof String&&(n=String(n)),"number"==typeof n?n>0&&(n=Math.min(10,Math.floor(n)),c=" ".substr(0,n)):"string"==typeof n&&(c=n.substr(0,10)),M("",{"":e});function M(e,t){var n=t[e];switch(null!=n&&("function"==typeof n.toJSON5?n=n.toJSON5(e):"function"==typeof n.toJSON&&(n=n.toJSON(e))),i&&(n=i.call(t,e,n)),n instanceof Number?n=Number(n):n instanceof String?n=String(n):n instanceof Boolean&&(n=n.valueOf()),n){case null:return"null";case!0:return"true";case!1:return"false"}return"string"==typeof n?w(n):"number"==typeof n?String(n):"object"==typeof n?Array.isArray(n)?g(n):y(n):void 0}function w(e){for(var t={"'":.1,'"':.2},n={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},r="",i=0;i<e.length;i++){var u=e[i];switch(u){case"'":case'"':t[u]++,r+=u;continue;case"\0":if(te.isDigit(e[i+1])){r+="\\x00";continue}}if(n[u])r+=n[u];else if(u<" "){var o=u.charCodeAt(0).toString(16);r+="\\x"+("00"+o).substring(o.length)}else r+=u}var c=s||Object.keys(t).reduce(function(e,n){return t[e]<t[n]?e:n});return c+(r=r.replace(new RegExp(c,"g"),n[c]))+c}function y(e){if(u.indexOf(e)>=0)throw TypeError("Converting circular structure to JSON5");u.push(e);var t=o;o+=c;for(var n,i,s=[],l=0,a=r||Object.keys(e);l<a.length;l+=1){var d=a[l],D=M(d,e);if(void 0!==D){var w=m(d)+":";""!==c&&(w+=" "),w+=D,s.push(w)}}if(0===s.length)n="{}";else if(""===c)n="{"+(i=s.join(","))+"}";else{var y=",\n"+o;i=s.join(y),n="{\n"+o+i+",\n"+t+"}"}return u.pop(),o=t,n}function m(e){if(0===e.length)return w(e);var t=String.fromCodePoint(e.codePointAt(0));if(!te.isIdStartChar(t))return w(e);for(var n=t.length;n<e.length;n++)if(!te.isIdContinueChar(String.fromCodePoint(e.codePointAt(n))))return w(e);return e}function g(e){if(u.indexOf(e)>=0)throw TypeError("Converting circular structure to JSON5");u.push(e);var t=o;o+=c;for(var n,r=[],i=0;i<e.length;i++){var s=M(String(i),e);r.push(void 0!==s?s:"null")}if(0===r.length)n="[]";else if(""===c)n="["+r.join(",")+"]";else{var l=",\n"+o,a=r.join(l);n="[\n"+o+a+",\n"+t+"]"}return u.pop(),o=t,n}},he={parse:ne,stringify:Le},be=he,Ae=be;return Ae}()}(Fo);var Ko=$n(Fo.exports);function zo(e,t,n,r){let i=e=>{let t={};try{t=Ko.parse(e)}catch(t){console.log("c",e),console.log(t)}let n=[];try{n=(e=>{let t=[];return Jn(e,(e,n)=>{let r={name:n};r=Jt(e)?{...r,...e}:{...r,isActive:e},t.push(r)}),t})(t)}catch(n){console.log("c",e),console.log("kp",t),console.log(n)}return n},s=(e,t,n)=>{let r=[];return Jn(e,e=>{let i=De(e,n,"");Jn(t,t=>{let s=De(t,n,"");if(i===s)return r.push({...e,data:t}),!1})}),r},u=e=>{let t=[];if(Jn(e,e=>{let n=De(e,"mode","");if("OR"!==n&&"AND"!==n)return!0;let r=De(e,"rules",[]),i={};Jn(r,e=>{i[e.name]=e.isActive}),t.push({mode:n,kpRule:i})}),0===xs(t))return[];let n=$u(t,{mode:"OR"}),r=$u(t,{mode:"AND"}),i=null;xs(n)>0?i=De(n,"0.kpRule"):xs(r)>0&&(i=De(r,"0.kpRule")),Jn(n,e=>{let t=De(e,"kpRule",{});i=((e,t)=>{let n={};return Jn([e,t],e=>{Jn(e,(e,t)=>{hr(n,t)||(n[t]="n"),"y"===n[t]||"y"===e?n[t]="y":n[t]="n"})}),n})(i,t)}),Jn(r,(e,t)=>{let n=De(e,"kpRule",{});i=((e,t)=>{let n=Ds(e);return Jn([t],e=>{Jn(e,(e,t)=>{hr(n,t)||(n[t]="n"),"y"===n[t]&&"y"===e?n[t]="y":n[t]="n"})}),n})(i,n)});let s=[];return Jn(i,(e,t)=>{s.push({name:t,isActive:e})}),s},o=De(e,"cgrups",""),c=i(o);c=s(c,t,"name"),c=$u(c,{isActive:"y"}),c=kt(c,e=>{let t=De(e,"data.cpemis",""),r=i(t);return r=$u(r,{isActive:"y"}),r=s(r,n,"name"),e.data._pemis=r,e}),c=kt(c,e=>{let t=De(e,"data._pemis",[]);return t=kt(t,e=>{let t=De(e,"data.crules",""),n=i(t);return e.data._rules=n,e}),e.data._pemis=t,e});let l=[];{let e=[];Jn(c,t=>{let n=t.mode,r=t.data._pemis,i=[];Jn(r,e=>{let t=e.mode,n=e.data._rules;i.push({mode:t,rules:n})});let s={mode:n,rules:u(i)};e.push(s)}),l=u(e)}{let e={};Jn(l,t=>{e[t.name]=t.isActive});let t=[];Jn(r,n=>{t.push({name:n.id,isActive:De(e,n.id,"n")})}),l=t}return{grups:c,rules:l}}function Wo(e,t){return Zt(e,t)}function Bo(e,t){function n(e){return Cn(e)?e:[e]}if(Ln(e))return!1;if(0===(e=n(e)).length)return!1;if(Ln(e))return!1;if(0===(t=n(t)).length)return!1;for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++)if(Wo(e[n],t[r]))return!0;return!1}function Vo(e,t,{srLog:n,kmx:r}){let i=async(i,s,u,o)=>await r("updateTabItems:"+i,async()=>{u=kt(u=On(u,jo[i].keys),(e,t)=>(e.order=t+1,e));let r=(e,t)=>{let r=null,s={};return Jn(e,(e,u)=>{let o=De(e,t,"");return Ot(o)?hr(s,o)?(n.error({event:"updateTabItems-ckKey-error",keyTable:i,key:t,msg:"saveRowFieldDuplicate",row:u,value:o}),r="saveRowFieldDuplicate",!1):void(s[o]=!0):(n.error({event:"updateTabItems-ckKey-error",keyTable:i,key:t,msg:"saveRowFieldInvalid",row:u}),r="saveRowFieldInvalid",!1)}),r},c=null;if(Bo(i,["targets"])&&(c=r(u,"id"),null!==c))return Promise.reject(c);if(Bo(i,["pemis","grups"])&&(c=r(u,"name"),null!==c))return Promise.reject(c);if(Bo(i,["users"])&&(c=r(u,"email"),null!==c))return Promise.reject(c);let l=await e[i].select(),a=u,d=function(e,t,n,r={}){let i=De(r,"withInfor");ur(i)||(i=!0);let s={del:[],add:[],same:[],diff:[]};if(!Ot(n))return console.log("invalid key"),i&&(s.infor={}),s;Cn(e)||(e=[e]),Cn(t)||(t=[t]),e=$u(e,e=>hr(e,n)),t=$u(t,e=>hr(e,n));let u=new Map(t.map(e=>[e[n],e]));for(let t of e){let e=u.get(t[n]);e?(JSON.stringify(t)===JSON.stringify(e)?s.same.push(e):s.diff.push(e),u.delete(t[n])):s.del.push(t)}if(s.add=Array.from(u.values()),i){let e={};for(let t of s.del)e[t[n]]="del";for(let t of s.add)e[t[n]]="add";for(let t of s.diff)e[t[n]]="diff";for(let t of s.same)e[t[n]]="same";s.infor=e}return s}(l,a,o);return xs(d.del)>0&&await t(s,i,"del",d.del),xs(d.add)>0&&await t(s,i,"insert",d.add),xs(d.diff)>0&&await t(s,i,"save",d.diff),a}),s=(e,t,r)=>{n.error({event:e,userId:t,msg:"string"==typeof r?r:r&&r.message||e})};return{updateTargets:async(e,t)=>{try{await i("targets",e,t,"id")}catch(t){throw s("updateTargets-error",e,t),t}return n.info({event:"updateTargets-success",userId:e}),"saveTabItemsSuccess"},updatePemis:async(e,t)=>{try{await i("pemis",e,t,"name")}catch(t){throw s("updatePemis-error",e,t),t}return n.info({event:"updatePemis-success",userId:e}),"saveTabItemsSuccess"},updateGrups:async(e,t)=>{try{await i("grups",e,t,"name")}catch(t){throw s("updateGrups-error",e,t),t}return n.info({event:"updateGrups-success",userId:e}),"saveTabItemsSuccess"},updateUsers:async(e,t)=>{try{await i("users",e,t,"id")}catch(t){throw s("updateUsers-error",e,t),t}return n.info({event:"updateUsers-success",userId:e}),"saveTabItemsSuccess"}}}let Ho={csIng:{eng:"Connecting...",cht:"連線中..."},csLogin:{eng:"Logged in",cht:"已登入"},csLogout:{eng:"Logged out",cht:"已登出"},csErrConn:{eng:"Unable to connect",cht:"無法連線"},csErrLogin:{eng:"Login denied",cht:"拒絕登入"},aggridLanguage:{eng:"en",cht:"zh-tw"},systemMessage:{eng:"System message",cht:"系統確認訊息"},ok:{eng:"OK",cht:"確認"},no:{eng:"No",cht:"取消"},yes:{eng:"Yes",cht:"確定"},empty:{eng:"Empty",cht:"無"},waitingData:{eng:"Waiting data...",cht:"等待數據中..."},saveChanges:{eng:"Save changes",cht:"儲存變更"},id:{eng:"Id",cht:"主鍵"},from:{eng:"From",cht:"來源"},save:{eng:"Save",cht:"儲存"},close:{eng:"Close",cht:"關閉"},delete:{eng:"Delete",cht:"刪除"},screenFull:{eng:"Max size",cht:"最大化尺寸"},screenNormal:{eng:"Normal size",cht:"預設尺寸"},checkAllYes:{eng:"Check all",cht:"全選使用"},checkAllNo:{eng:"Uncheck all",cht:"全不選使用"},checkAllInv:{eng:"Reverse all",cht:"全反選使用"},operMode:{eng:"Enable",cht:"是否使用"},operPemiEnable:{eng:"Operator",cht:"合併權限模式"},operGrupEnable:{eng:"Operator",cht:"合併權限群組模式"},processing:{eng:"Processing...",cht:"處理中請稍後..."},anUnexpectedErrorOccurred:{eng:"An unexpected error occurred, please contact the administrator",cht:"發生非預期錯誤,請洽管理員"},cannotConnectServer:{eng:"Cannot connect to server",cht:"無法連線至伺服器"},saveRowFieldInvalid:{eng:"Invalid field value in saved data",cht:"儲存資料的欄位值無效"},saveRowFieldDuplicate:{eng:"Duplicate field value in saved data",cht:"儲存資料的欄位值重複"},saveTabItemsSuccess:{eng:"Saved successfully",cht:"儲存成功"},cannotGetUserId:{eng:"Cannot get the user id",cht:"無法取得使用者 Id"},cannotGetUserEmail:{eng:"Cannot get the email of user",cht:"無法取得使用者 Email"},cannotGetUserName:{eng:"Cannot get the name of user",cht:"無法取得使用者名稱"},cannotGetUserRole:{eng:"Cannot get the role of user",cht:"無法取得使用者角色"},cannotFindUserFromToken:{eng:"Cannot identify the user from token",cht:"無法由 token 識別使用者"},cannotGetUserProp:{eng:"Cannot get the property of user",cht:"無法取得使用者對應屬性"},cannotGetUserFromPerm:{eng:"Cannot find the user in permission system",cht:"無法於權限系統取得使用者"},userNoPermission:{eng:"User does not have permission",cht:"使用者權限不足"},invalidPayload:{eng:"Invalid payload in request",cht:"請求內容無效"},invalidFromInPayload:{eng:"Invalid from in payload",cht:"請求來源欄位無效"},invalidRowsInPayload:{eng:"Invalid rows in payload",cht:"請求資料列無效"},invalidFrom:{eng:"Invalid from",cht:"來源欄位無效"},invalidRows:{eng:"Invalid rows",cht:"資料列無效"},cannotGetUserRules:{eng:"Cannot get rules of user",cht:"無法取得使用者權限規則"},tokenNoPermission:{eng:"Token does not have permission",cht:"權限不足"},userIdNoPermrules:{eng:"The user id does not have permission rules",cht:"此使用者沒有權限規則"},invalidKeyTable:{eng:"Invalid key table",cht:"資料表名稱無效"},cannotFindUserId:{eng:"Cannot find the user id",cht:"無法找到使用者 Id"},username:{eng:"Username",cht:"使用者姓名"},email:{eng:"Email",cht:"電子郵件"},name:{eng:"Name",cht:"名稱"},description:{eng:"Description",cht:"說明"},modeEdit:{eng:"Edit mode",cht:"編輯模式"},showTabCols:{eng:"Show columns",cht:"顯示欄位"},belongUsers:{eng:"Use users",cht:"管控所屬使用者"},belongGrups:{eng:"Use groups",cht:"所屬權限群組"},belongGrupsNames:{eng:"Use permission groups",cht:"所屬權限群組名稱"},belongPemisNames:{eng:"Use permissions",cht:"所屬權限名稱"},isAdmin:{eng:"Administrator",cht:"是否為系統管理員"},isActive:{eng:"Active",cht:"是否有效"},errInNames:{eng:"Name errors",cht:"名稱出現錯誤待修復"},errInIds:{eng:"ID errors",cht:"ID 出現錯誤待修復"},errInEmails:{eng:"Email errors",cht:"Email出現錯誤待修復"},menuTreeShow:{eng:"Show menu",cht:"顯示選單"},menuTreeHide:{eng:"Hide menu",cht:"隱藏選單"},mmTargets:{eng:"Targets",cht:"管理對象"},mmTargetsMsg:{eng:"Targets generally refer to entities such as pages, data, etc., and can also include features or services.",cht:"對象泛指實體的頁面、數據等,亦可為的功能或服務。"},mmPemis:{eng:"Permissions",cht:"管理權限"},mmPemisMsg:{eng:"Permissions are primarily used to set rules for enabling or disabling various objects.",cht:"權限主要為用來設定各種對象之使用或禁用規則。"},mmGrups:{eng:"Permission groups",cht:"管理權限群組"},mmGrupsMsg:{eng:"Permission groups are primarily used to configure combinations of different permissions.",cht:"權限群組主要為用來設定組合各種權限。"},mmUsers:{eng:"Users",cht:"管理使用者"},mmUsersMsg:{eng:"Users are primarily for providing or extending user information and can be configured with combinations of various permission groups.",cht:"使用者主要為提供或擴充使用者資訊,並可設定組合各種權限群組。"},targetId:{eng:"Target",cht:"對象名稱"},targetIdEmpty:{eng:"Invalid name",cht:"尚未給予有效對象名稱"},targetIdDuplicate:{eng:"Duplicate target",cht:"對象名稱出現重複"},targetAddEmpty:{eng:"No target",cht:"尚未新增管理資料"},targetAdd:{eng:"Add target",cht:"新增對象"},targetAddNameNew:{eng:"New target",cht:"新對象"},targetAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},targetCopy:{eng:"Copy target",cht:"複製對象"},targetCopyNameNew:{eng:"copy",cht:"複製"},targetDeleteCheckTargets:{eng:"Delete target(s)",cht:"刪除勾選對象"},targetEnable:{eng:"Enable",cht:"是否使用"},targetSaveTargetsFail:{eng:"Failed to save targets",cht:"儲存對象數據失敗"},targetSaveTargetsSuccess:{eng:"Save targets successfully",cht:"儲存對象數據成功"},pemiName:{eng:"Name of permission",cht:"權限名稱"},pemiNameEmpty:{eng:"Invalid name of permission",cht:"尚未給予有效權限名稱"},pemiNameDuplicate:{eng:"Duplicate name of permission",cht:"權限名稱出現重複"},pemiAddEmpty:{eng:"No permission",cht:"尚未新增權限資料"},pemiAdd:{eng:"Add permission",cht:"新增權限"},pemiAddNameNew:{eng:"New permission",cht:"新權限"},pemiAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},pemiCopy:{eng:"Copy permission",cht:"複製權限"},pemiCopyNameNew:{eng:"copy",cht:"複製"},pemiDeleteCheckPemis:{eng:"Delete permission(s)",cht:"刪除勾選權限"},pemiCrules:{eng:"Rules of permission",cht:"管控對象"},pemiEditBlngGrupsNoPemiId:{eng:"Can not find the id of permission",cht:"無法找到權限Id"},pemiEditBlngGrupsNoPemiData:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},pemiEditCrules:{eng:"Edit rules of permission",cht:"編輯使用對象"},pemiEditCrulesForDisplay:{eng:"Rules of permission",cht:"展示使用對象"},pemiEditCrulesNoPemiId:{eng:"Can not find the id of permission",cht:"無法找到權限Id"},pemiEditCrulesNoPemiData:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},pemiRnderCrulesNoRule:{eng:"No rule",cht:"無使用任何對象"},pemiRnderCrulesHasNRule:{eng:"Has {n} rule(s){nms}",cht:"使用共 {n} 項對象{nms}"},pemiSavePemisFail:{eng:"Failed to save permissions",cht:"儲存權限數據失敗"},pemiSavePemisSuccess:{eng:"Save permissions successfully",cht:"儲存權限數據成功"},pemiBlngEditGrups:{eng:"Edit permission groups",cht:"編輯所屬權限群組"},pemiBlngEditGrupsForDisplay:{eng:"Permission groups",cht:"展示所屬權限群組"},pemiBlngRnderNoGrup:{eng:"No users",cht:"無所屬權限群組"},pemiBlngRnderGrups:{eng:"Has {n} permission group(s){nms}",cht:"共被 {n} 個權限群組{nms}使用"},pemiBlngPemiNow:{eng:"Now permission",cht:"目前權限"},pemiBlngEditNoName:{eng:"Can not find the name of permission",cht:"無法找到權限名稱"},pemiBlngEditNoPemi:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},pemiBlngDeleteCheckPemis:{eng:"Delete permission(s)",cht:"刪除勾選權限"},cruleEditNoTargetId:{eng:"Can not find the id of target",cht:"無法找到對象Id"},cruleEditNoTargetData:{eng:"Can not find the data of target",cht:"無法找到對象資料"},cruleDeleteCheckTargets:{eng:"Delete target(s)",cht:"刪除勾選對象"},grupName:{eng:"Name of permission group",cht:"權限群組名稱"},grupNameEmpty:{eng:"Invalid name of permission group",cht:"尚未給予有效權限群組名稱"},grupNameDuplicate:{eng:"Duplicate name of permission group",cht:"權限群組名稱出現重複"},grupAddEmpty:{eng:"No permission group",cht:"尚未新增權限群組資料"},grupAdd:{eng:"Add permission group",cht:"新增權限群組"},grupAddNameNew:{eng:"New permission group",cht:"新權限群組"},grupAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},grupCopy:{eng:"Copy permission group",cht:"複製權限群組"},grupCopyNameNew:{eng:"copy",cht:"複製"},grupDeleteCheckGrups:{eng:"Delete permission group(s)",cht:"刪除勾選權限群組"},grupCpemis:{eng:"Permissions",cht:"管控使用權限"},grupEditBlngNoGrupId:{eng:"Can not find the id of permission group",cht:"無法找到權限群組Id"},grupEditBlngNoGrupData:{eng:"Can not find the data of permission group",cht:"無法找到權限群組資料"},grupEditCpemis:{eng:"Edit list of permission group",cht:"編輯使用權限"},grupEditCpemisForDisplay:{eng:"List of permission group",cht:"展示使用權限"},grupRnderCpemisNoPermission:{eng:"No permission",cht:"無使用任何權限"},grupRnderCpemisHasNPermissions:{eng:"Has {n} permission(s){nms}",cht:"使用 {n} 項權限{nms}"},grupSaveGrupsEmpty:{eng:"No user",cht:"未有變更權限群組資料"},grupSaveGrupsFail:{eng:"Failed to save permission groups",cht:"儲存權限群組數據失敗"},grupSaveGrupsSuccess:{eng:"Save permission groups successfully",cht:"儲存權限群組數據成功"},grupBlngEditUsers:{eng:"Edit permission group of users",cht:"編輯所屬使用者"},grupBlngEditUsersForDisplay:{eng:"Permission group of users",cht:"展示所屬使用者"},grupBlngRnderNoUser:{eng:"No users",cht:"無所屬使用者"},grupBlngRnderUsers:{eng:"Has {n} user(s){nms}",cht:"共被 {n} 位使用者{nms}使用"},grupBlngGrupNow:{eng:"Now permission group",cht:"目前權限群組"},grupBlngEditNoGrupName:{eng:"Can not find the name of permission group",cht:"無法找到權限群組名稱"},grupBlngEditNoGrupData:{eng:"Can not find the data of permission group",cht:"無法找到權限群組資料"},grupBlngDeleteCheckGrups:{eng:"Delete permission group(s)",cht:"刪除勾選權限群組"},cpemiEditNoName:{eng:"Can not find the name of target",cht:"無法找到對象名稱"},cpemiEditNoTarget:{eng:"Can not find the data of target",cht:"無法找到對象資料"},cpemiDeleteCheckTargets:{eng:"Delete targets(s)",cht:"刪除勾選對象"},userName:{eng:"Name of user",cht:"使用者名稱"},userNameEmpty:{eng:"Invalid name of user",cht:"尚未給予有效使用者名稱"},userNameDuplicate:{eng:"Duplicate name of user",cht:"使用者名稱出現重複"},userEmailEmpty:{eng:"Empty email of user",cht:"尚未給予使用者Email"},userEmailError:{eng:"Invalid email of user",cht:"使用者Email格式錯誤"},userEmailDuplicate:{eng:"Duplicate email of user",cht:"使用者Email出現重複"},userAddEmpty:{eng:"No user",cht:"尚未新增使用者資料"},userAdd:{eng:"Add user",cht:"新增使用者"},userAddNameNew:{eng:"New user",cht:"新使用者"},userAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},userCopy:{eng:"Copy user",cht:"複製使用者"},userCopyNameNew:{eng:"copy",cht:"複製"},userDeleteCheckUsers:{eng:"Delete user(s)",cht:"刪除勾選使用者"},userCgrups:{eng:"Permission groups",cht:"管控使用權限群組"},userEditCgrups:{eng:"Edit list of user",cht:"編輯使用權限群組"},userEditCgrupsForDisplay:{eng:"Permission groups of user",cht:"展示使用權限群組"},userEditCgrupsNoUserId:{eng:"Can not find the id of user",cht:"無法找到使用者Id"},userEditCgrupsNoUserData:{eng:"Can not find the data of user",cht:"無法找到使用者資料"},userSaveUsersEmpty:{eng:"No user",cht:"未有變更使用者資料"},userSaveUsersFail:{eng:"Failed to save users",cht:"儲存使用者數據失敗"},userSaveUsersSuccess:{eng:"Save users successfully",cht:"儲存使用者數據成功"},userEditNoUserId:{eng:"Can not find the id of user",cht:"無法找到使用者Id"},userEditNoUserData:{eng:"Can not find the data of user",cht:"無法找到使用者數據"},userRnderCgrupsNoGroup:{eng:"No permission group",cht:"無使用任何權限群組"},userRnderCgrupsHasNGroups:{eng:"Has {n} permission group(s){nms}",cht:"使用 {n} 項權限群組{nms}"},cgrupEditNoName:{eng:"Can not find the name of permission",cht:"無法找到權限名稱"},cgrupEditNoPemi:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},cgrupDeleteCheckPemis:{eng:"Delete permission(s)",cht:"刪除勾選權限"},show:{eng:"Show",cht:"顯示"},active:{eng:"Active",cht:"啟用"},userId:{eng:"ID of the created user",cht:"創建使用者主鍵"},timeCreate:{eng:"Created time",cht:"創建時間"},userIdUpdate:{eng:"ID of the updated user",cht:"最新變更使用者主鍵"},timeUpdate:{eng:"Updated time",cht:"更新時間"},invalidUrl:{eng:"Invalid url",cht:"網址無效"},invalidTokenTar:{eng:"Invalid target token",cht:"目標 token 無效"},invalidTokenSelf:{eng:"Invalid self token",cht:"自身 token 無效"},invalidUserIdTar:{eng:"Invalid target user id",cht:"目標使用者 Id 無效"},noTokenInUrl:{eng:"Missing token in url",cht:"網址缺少 token"},noTokenUserIdInUrl:{eng:"Missing token or userId in url",cht:"網址缺少 token 或 userId"},cannotGetUserByUrl:{eng:"Cannot get user by url",cht:"無法由網址取得使用者"},cannotGetUserDataByUrl:{eng:"Cannot get user data by url",cht:"無法由網址取得使用者資料"},noUserDataByUrl:{eng:"No user data by url",cht:"該網址無使用者資料"},noUserDataAfterConvert:{eng:"No user data after permission conversion",cht:"權限轉換後無使用者資料"},mmStaInfor:{eng:"Statistics",cht:"統計資訊"},staEventTitle:{eng:"Event Frequency",cht:"事件發生頻率"},staTimeHr:{eng:"Hourly",cht:"每小時"},staTimeDay:{eng:"Daily",cht:"每日"},staTotal:{eng:"Total",cht:"全部加總"},staNoData:{eng:"No event data",cht:"尚無事件資料"},getDataError:{eng:"Failed to load data",cht:"資料載入失敗"},staTableTitle:{eng:"Event Statistics",cht:"事件統計表"},staColEvent:{eng:"Event",cht:"事件"},staColLast1Day:{eng:"Last 1 Day",cht:"最近1日"},staColLast8Hour:{eng:"Last 8 Hours",cht:"最近8小時"},staColLast4Hour:{eng:"Last 4 Hours",cht:"最近4小時"},staColLast1Hour:{eng:"Last 1 Hour",cht:"最近1小時"}},Uo=(e={})=>{let t=De(e,"kpLangExt");Jt(t)||(t={});let n=De(e,"webName");Jt(n)||(n={});let r=De(e,"webDescription");Jt(r)||(r={});let i={};i={...i,...Ho},Jt(t)&&(i={...i,...t}),Jt(n)&&(i={...i,webName:{...n}}),Jt(r)&&(i={...i,webDescription:{...r}});let s={};return Jn(["eng","cht"],e=>{let t={};Jn(i,(n,r)=>{t[r]=n[e]}),s[e]=t}),s},ko=u.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(ac).href:"undefined"==typeof document?location.href:l&&"SCRIPT"===l.tagName.toUpperCase()&&l.src||new URL("w-web-perm.umd.js",document.baseURI).href),Qo=e.dirname(ko);let Po=(n={})=>{let r=De(n,"logFd","");Ot(r)||(r="./logs");let i=De(n,"logInterval","");Ot(i)||(i="hr");let s=De(n,"logNumKeep",null),u={fdLog:r,interval:i};if(null!=s&&""!==s){if(!In(s))throw new Error(`invalid logNumKeep[${s}], must be positive integer`);u.numKeep=gn(s)}let c=function(n={}){let r=lr(),i=De(n,"timeZone",null),s=De(n,"fdLog");Ot(s)||(s="./_logs");let u=De(n,"interval");"day"!==u&&"hr"!==u&&(u="day");let c=De(n,"numKeep");In(c)||(c="day"===u?365:8760),c=gn(c);let l=o.transport({targets:[{level:"info",target:e.resolve(Qo,"./formatter.mjs"),options:{interval:u,fdLog:s,timeZone:i}}]}),a=o(l),d=()=>{try{if(!Hn(s))return;let n="hr"===u?/^\d{4}-\d{2}-\d{2}T\d{2}\.log$/:/^\d{4}-\d{2}-\d{2}\.log$/,i=t.readdirSync(s).filter(e=>n.test(e));i.sort();let o=i.length-c;if(o<=0)return;let l=i.slice(0,o);for(let n of l){let i=e.join(s,n);try{t.unlinkSync(i),r.emit("delete",{fp:i,fn:n})}catch(e){}}}catch(e){console.error("WSyslog cleanLogs error:",e)}};d();let D=setInterval(d,36e5);D.unref();let M=null,w=e=>{let t=a[e].bind(a);return(...n)=>{try{r.emit(e,{args:n})}catch(e){}t(...n)}};return r.fatal=w("fatal"),r.error=w("error"),r.warn=w("warn"),r.info=w("info"),r.debug=w("debug"),r.trace=w("trace"),r.cleanLogs=d,r.clear=(e={})=>{if(null!==M)return M;let t=De(e,"timeLimit");In(t)||(t=6e4),M=zn();let n=!1,r=()=>{n||(n=!0,clearInterval(D),M.resolve())},i=setTimeout(()=>{try{l.worker.terminate()}catch(e){}r()},t);try{a.flush(e=>{if(e||l.closed)return clearTimeout(i),void r();l.once("close",()=>{clearTimeout(i),r()}),l.end()})}catch(e){clearTimeout(i),r()}return M},r}(u);return c};function Jo(){let e=lr(),t={};function n(t,n){setTimeout(()=>{e.emit(t,n)},1)}function r(e,r={}){if(hr(t,e))return;let i=De(r,"fun");Sn(i)||(i=async()=>{});let s=De(r,"inputs");Cn(s)||(s=[]);let u=De(r,"timeExpired");In(u)||(u=5e3),u=gn(u);let o=De(r,"timeFrom");"end"!==o&&(o="start");let c=De(r,"cacheError");!1!==c&&(c=!0),t[e]={needExec:!0,fun:i,pm:null,gen:0,inputs:s,value:null,time:null,timeExpired:u,timeFrom:o,cacheError:c},n("message",{fun:"set",key:e,timeExpired:u,timeFrom:o,cacheError:c})}async function i(e){if(hr(t,e)){let r=t[e];if(r.pm)return n("message",{fun:"get",key:e,msg:"waiting"}),await r.pm,Ds(r.value);let i=Date.now(),s=r.needExec,u=i-r.time;if(s?n("message",{fun:"get",key:e,msg:"execute first"}):r.timeExpired>0&&u>r.timeExpired&&(n("message",{fun:"get",key:e,msg:"execute by timeExpired",timeDiff:u}),s=!0),s){n("message",{fun:"get",key:e,msg:"fun start"}),r.needExec=!1;let t=r.gen,s=async()=>{try{let s;try{s=await r.fun(...r.inputs)}catch(i){if(n("error",{fun:"get",key:e,msg:i}),!r.cacheError)throw r.gen===t&&(r.needExec=!0),i;s=void 0}r.gen===t&&(r.value=s,r.time="end"===r.timeFrom?Date.now():i)}finally{r.pm=null,n("message",{fun:"get",key:e,msg:"fun end"})}};r.pm=s(),await r.pm}else n("message",{fun:"get",key:e,msg:"use cache"});return Ds(r.value)}return n("error",{fun:"get",key:e,msg:"invalid key"}),null}return e.set=r,e.getProxy=async function(e,t={}){return r(e,t),i(e)},e.get=i,e.update=function(e,r){hr(t,e)&&(n("message",{fun:"updateValue",key:e}),t[e].value=r,t[e].time=Date.now(),t[e].gen+=1)},e.clear=function(e){hr(t,e)&&(n("message",{fun:"clear",key:e}),t[e].needExec=!0)},e.remove=function(e){hr(t,e)&&(n("message",{fun:"remove",key:e}),delete t[e])},e}function Ro(n,r=1){return function(e,t=1,n={}){let r=1,i=De(n,"path"),s=De(n,"fs");if(!Vn(e,{fs:s}))throw new Error(`fd[${e}] is not a folder`);return null!==t&&In(t)&&(t=gn(t))<1&&(t=1),function e(n){let u=[];return Vn(n,{fs:s})?(Jn(s.readdirSync(n),function(o){let c=i.resolve(n,o),l=null;try{l=s.statSync(c)}catch(e){}l&&l.isDirectory()?(u.push({isFolder:!0,level:r,path:c,name:i.basename(c)}),r+=1,(r<=t||null===t)&&(u=u.concat(e(c))),r-=1):u.push({isFolder:!1,level:r,path:c,name:i.basename(c)})}),u):u}(e)}(n,r,{path:e,fs:t})}let Oo=new Map,_o=new Map;function $o(e){let t=De(e,"fdLog");return Ot(t)||(t="./logs"),t}function qo(e,n,r){let i=Ro(e);i=i.filter(e=>!De(e,"isFolder",!1)),i=function(e,t,n){let r=t.format(n);return $u(e,e=>{let t=De(e,"name","").replace(/\.log$/,"");return!/^\d{4}-\d{2}-\d{2}/.test(t)||t>=r.slice(0,t.length)})}(i,n,r);let s=[];for(let e of i)try{let n=t.statSync(e.path);if(!n.isFile())continue;s.push({path:e.path,name:e.name,size:n.size,mtimeMs:n.mtimeMs})}catch(e){}return s}function ec(e){let t=new Map;return n=>{let r=Math.floor(n/6e4),i=t.get(r);return void 0===i&&(i=tr(6e4*r).format(e),t.set(r,i)),i}}function tc(e,n){return new Promise((r,i)=>{let s=null,u=t.createReadStream(e,{encoding:"utf8"}),o=c.createInterface({input:u,crlfDelay:1/0});o.on("line",n);let l=e=>{s=e,o.close()};u.on("error",l),o.on("error",l),u.on("close",()=>{s?i(s):r()})})}function nc(e){let t=null;try{t=JSON.parse(e)}catch(e){return null}return null===t||"object"!=typeof t?null:t}async function rc(e,t,n,r=null){Sn(r)||(r=ec(n));let i={minTimeMs:null,ev:{}};return await tc(e,e=>{let n=nc(e);if(null===n)return;let s=n.event;if(!Ot(s))return;let u="number"==typeof(o=n.time)?o:Ot(o)?tr(o).valueOf():NaN;var o;if(Number.isNaN(u))return;if((null===i.minTimeMs||u<i.minTimeMs)&&(i.minTimeMs=u),!(u>t))return;let c=r(u),l=i.ev[c];void 0===l&&(l={count:0,kp:{}},i.ev[c]=l),l.count+=1,l.kp[s]=(l.kp[s]||0)+1}),i}async function ic(e,t,n){let r=ec(n),i=[];for(let s of e)try{let e=await rc(s.path,t,n,r);i.push({name:s.name,ok:!0,agg:e})}catch(e){i.push({name:s.name,ok:!1,err:String(De(e,"message",e))})}return i}function sc(e,t){for(let n in t.ev){let r=t.ev[n],i=e[n];void 0===i&&(i={count:0,kp:{}},e[n]=i),i.count+=r.count;for(let e in r.kp)i.kp[e]=(i.kp[e]||0)+r.kp[e]}return e}async function uc(t,n={}){let r=!1!==De(n,"useCache"),i=De(n,"scanFiles");Sn(i)||(i=ic);let s=De(n,"srLog",null),u=qo(t.fdLog,t.tStart,t.fmt),o=function(e){let t=Oo.get(e);return t||(t=new Map,Oo.set(e,t)),t}((c=t.fdLog,l=t.fmt,`${e.resolve(c)}|${l}`));var c,l;let a=[],d={};for(let e of u){let n=r?o.get(e.name):void 0;void 0!==n&&n.size===e.size&&n.mtimeMs===e.mtimeMs&&(null===n.minTimeMs||n.minTimeMs>n.scanTStartMs&&n.minTimeMs>t.tStartMs)?d[e.name]=n.agg:a.push(e)}if(r){let e=new Set(u.map(e=>e.name));for(let t of o.keys())e.has(t)||o.delete(t)}let D=[];if(a.length>0){let e=await i(a.map(e=>({path:e.path,name:e.name})),t.tStartMs,t.fmt),n={};for(let t of e)n[t.name]=t;for(let e of a){let i=n[e.name];if(i&&i.ok)d[e.name]=i.agg,r&&o.set(e.name,{size:e.size,mtimeMs:e.mtimeMs,minTimeMs:i.agg.minTimeMs,scanTStartMs:t.tStartMs,agg:i.agg});else{let t=De(i,"err","no result");D.push({name:e.name,err:t}),r&&o.delete(e.name),s&&Sn(s.warn)&&s.warn({event:"fun-staLogs",key:"staLogsFileSkipped",name:e.name,err:t})}}}let M={};for(let e of u){let t=d[e.name];t&&sc(M,t)}let w=function(e,t){let n={};for(let e of t)n[e]={count:0};for(let t in e){let r=e[t];n[t]={count:r.count,...r.kp}}return Object.keys(n).sort().map(e=>({time:e,data:n[e]}))}(M,t.kpTime);return{rs:w,stat:{nFiles:u.length,nScanned:a.length,nCached:u.length-a.length,errors:D}}}function oc(t=7,n="hr",r={}){let i=function(e=7,t="hr",n={}){let r=$o(n),i=function(e){return"day"===e?"day":"hr"}(t),s="day"===i?"YYYY-MM-DD":"YYYY-MM-DDTHH",u="day"===i?"day":"hour",o=De(n,"timeNow"),c="number"==typeof o?tr(o):tr(),l=c.subtract(e,"day"),a=l.valueOf(),d=l.startOf(u),D=c.startOf(u),M=[];for(;!d.isAfter(D);)M.push(d.format(s)),d=d.add(1,u);return{fdLog:r,timeInterval:i,fmt:s,unit:u,tStart:l,tStartMs:a,kpTime:M,timeNow:c.valueOf()}}(t,n,r),s=JSON.stringify([e.resolve(i.fdLog),t,i.timeInterval,De(r,"timeNow",null)]);if(_o.has(s))return _o.get(s);let u=uc(i,r).finally(()=>{_o.delete(s)});return _o.set(s,u),u}function cc(e,t){return null==e?t:"number"==typeof e?e:tr(e).valueOf()}async function lc(e,t){let n={},r=[];for(let i of e)try{await tc(i.path,e=>{let r=nc(e);if(null===r)return;let i=r.event;if(!Ot(i))return;let s=cc(r.time,t),u=(o=(t-s)/36e5)<0?Math.ceil(o)||0:Math.floor(o);var o;u<0||u>24||(n[i]||(n[i]={last1Day:0,last8Hour:0,last4Hour:0,last1Hour:0}),u<=24&&(n[i].last1Day+=1),u<=8&&(n[i].last8Hour+=1),u<=4&&(n[i].last4Hour+=1),u<=1&&(n[i].last1Hour+=1))})}catch(e){r.push({name:i.name,err:String(De(e,"message",e))})}return{kp:n,errors:r}}let ac=u.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(ac).href:"undefined"==typeof document?location.href:l&&"SCRIPT"===l.tagName.toUpperCase()&&l.src||new URL("w-web-perm.umd.js",document.baseURI).href),dc=e.dirname(ac),Dc=e.resolve(dc,"staLogsCore.shellWorker.mjs");function Mc(e,t=Dc){let n=zn(),r=new s.Worker(t),i=!1,u=(e,t)=>{i||(i=!0,e(t));try{r.terminate()}catch(e){}};return r.on("message",e=>{"done"===e.mode?u(n.resolve,e.payload):"error"===e.mode&&u(n.reject,e.payload)}),r.on("error",e=>{u(n.reject,e)}),r.on("exit",e=>{u(n.reject,new Error(`staLogs worker exited without result, code=${e}`))}),r.postMessage(e),n}async function wc(e,t,n){return 0===e.length?[]:Mc({kind:"scan",files:e,tStartMs:t,fmt:n})}async function yc(e,t){return 0===e.length?{kp:{},errors:[]}:Mc({kind:"table",files:e,nowMs:t})}function mc(e={}){return async function(e={}){let t=$o(e),n=De(e,"timeNow"),r="number"==typeof n?tr(n):tr(),i=r.valueOf(),s=De(e,"scanTableFiles");Sn(s)||(s=lc);let u=De(e,"srLog",null),o=qo(t,r.subtract(25,"hour"),"YYYY-MM-DDTHH"),{kp:c,errors:l}=await s(o.map(e=>({path:e.path,name:e.name})),i);for(let e of l)u&&Sn(u.warn)&&u.warn({event:"fun-staLogs",key:"staLogsFileSkipped",name:e.name,err:e.err});let a=[];for(let e in c)a.push({event:e,...c[e]});return a.sort((e,t)=>t.last1Day-e.last1Day),{rs:a,stat:{nFiles:o.length,errors:l}}}({...e,scanTableFiles:yc})}async function gc(e=7,t="hr",n={}){let r=await function(e=7,t="hr",n={}){return oc(e,t,{...n,scanFiles:wc})}(e,t,n);return r.rs}function Ic(e={}){let t=De(e,"fdLog","");Ot(t)||(t="./logs");let n=De(e,"mock",!1),r=De(e,"srLog",null),i=async(e=7,i="hr")=>{if(n)return function(e="hr"){let t="day"===e?"YYYY-MM-DD":"YYYY-MM-DDTHH",n="hr"===e?"hour":"day",r="hr"===e?48:7,i=["verifyConn","updateTargets-success","checkUser-error","api/getPerm-success","getWebInfor-success"],s=tr("2025-01-01T00:00:00"),u=[];for(let e=0;e<r;e++){let r=s.add(e,n),o={count:0};i.forEach((t,n)=>{let r=Math.round(20+15*Math.sin((e+3*n)/4));o[t]=r,o.count+=r}),u.push({time:r.format(t),data:o})}return u}(i);return await gc(e,i,{fdLog:t,srLog:r})},s=Jo(),u=async()=>{if(n)return[{event:"verifyConn",last1Day:240,last8Hour:90,last4Hour:50,last1Hour:15},{event:"updateTargets-success",last1Day:180,last8Hour:70,last4Hour:38,last1Hour:11},{event:"checkUser-error",last1Day:120,last8Hour:45,last4Hour:24,last1Hour:7},{event:"api/getPerm-success",last1Day:90,last8Hour:33,last4Hour:18,last1Hour:5},{event:"getWebInfor-success",last1Day:60,last8Hour:22,last4Hour:12,last1Hour:3}];let e=await async function(e={}){return(await mc(e)).rs}({fdLog:t,srLog:r});return e},o=Jo(),c={getStaEvent:async(e,t=7,n="hr")=>{let r=`${t}:${n}`,u=await s.getProxy(r,{fun:i,inputs:[t,n],timeExpired:3e4,timeFrom:"end",cacheError:!1}).catch(()=>Promise.reject("cannotGetStaEvent"));return Array.isArray(u)?u:Promise.reject("cannotGetStaEvent")},getStaEventTable:async e=>{let t=await o.getProxy("staEventTable",{fun:u,inputs:[],timeExpired:3e4,timeFrom:"end",cacheError:!1}).catch(()=>Promise.reject("cannotGetStaEventTable"));return Array.isArray(t)?t:Promise.reject("cannotGetStaEventTable")}};return c}return function(n,r,i,s,u,o,c={}){let l=null;if(!Sn(n))throw console.log("invalid WOrm",n),new Error("invalid WOrm");if(!Ot(r))throw console.log("invalid url",r),new Error("invalid url");if(!Ot(i))throw console.log("invalid db",i),new Error("invalid db");if(!Sn(s))throw console.log("invalid getUserByToken",s),new Error("invalid getUserByToken");if(!Sn(u))throw console.log("invalid verifyClientUser",u),new Error("invalid verifyClientUser");if(!Sn(o))throw console.log("invalid verifyAppUser",o),new Error("invalid verifyAppUser");let a=De(c,"serverPort");In(a)||(a=11006),a=gn(a);let d=De(c,"useCheckUser",!1),D=De(c,"getUserById",null),M=De(c,"useExcludeWhenNotAdmin",!1),w=De(c,"webName",{}),y=De(c,"webDescription",{}),m=De(c,"webLogo",""),g=De(c,"subfolder","");var I,C;Ot(g)&&("/"===Kn(g,1)&&(C=1,g=Ot(I=g)&&jn(C)?0===(C=gn(C))?I:Fn(I,I.length-C):""),"/"!==Fn(g,1)&&(g=`/${g}`));let p=De(c,"urlRedirect",""),f=De(c,"showLanguage","n"),L=De(c,"language","eng"),h=De(c,"showModeEditTargets","n"),b=De(c,"showModeEditPemis","n"),A=De(c,"showModeEditGrups","n"),N=De(c,"showModeEditUsers","n"),x=De(c,"modeEditTargets","n"),E=De(c,"modeEditPemis","n"),T=De(c,"modeEditGrups","n"),Z=De(c,"modeEditUsers","n"),v=De(c,"widthTargetId",""),X=De(c,"widthTargetDescription",""),S=De(c,"widthPemisName",""),Y=De(c,"widthPemisDescription",""),G=De(c,"widthGrupsName",""),j=De(c,"widthGrupsDescription",""),F=De(c,"widthUsersName",""),K=De(c,"widthUsersEmail",""),z=De(c,"widthUsersDescription",""),W=De(c,"mappingBy","");"id"!==W&&"email"!==W&&"name"!==W&&(W="id");let B=De(c,"kpLangExt",null),V=Uo({kpLangExt:B,webName:w,webDescription:y}),H=Po(c),U={useCheckUser:d,getUserById:D,useExcludeWhenNotAdmin:M},k={};try{k=Do(jo,n,r,i,U)}catch(e){throw console.log(e),H.error({event:"WServOrm-init-error",msg:e&&e.message||"WServOrmInitFailed"}),e}let{woItems:Q,procOrm:P}=k,J=new function(){let e=new Map,t=new Map;return async(n,r)=>{let i=(e.get(n)||Promise.resolve()).then(async()=>await r(),async()=>await r());e.set(n,i.catch(()=>{})),t.set(n,(t.get(n)||0)+1);try{return await i}finally{let r=t.get(n)-1;r<=0?(t.delete(n),e.delete(n)):t.set(n,r)}}},R=Vo(Q,P,{srLog:H,kmx:J}),O=De(c,"logFd","");Ot(O)||(O="./logs");let _=Ic({fdLog:O,mock:De(c,"staEventMock",!1),srLog:H}),$=async e=>{if(!Ot(De(e,"id","")))return console.log("user",e),H.error({event:"checkUser-error",msg:"cannotGetUserId"}),Promise.reject("cannotGetUserId");if(!Ot(De(e,"email","")))return console.log("user",e),H.error({event:"checkUser-error",msg:"cannotGetUserEmail"}),Promise.reject("cannotGetUserEmail");if(!Ot(De(e,"name","")))return console.log("user",e),H.error({event:"checkUser-error",msg:"cannotGetUserName"}),Promise.reject("cannotGetUserName");let t=De(e,"isAdmin","");return"y"===t||"n"===t||(console.log("user",e),console.log("user.isAdmin is not y or n",e.isAdmin),H.error({event:"checkUser-error",msg:"cannotGetUserRole"}),Promise.reject("cannotGetUserRole"))},q=async e=>{let t=await s(e);return await $(t),!0},ee=async(e,t="")=>{let n=await(async e=>{let t=null;if(Ot(e)&&(t=s(e),Yn(t)&&(t=await t)),!Jt(t))return console.log("token",e),H.error({event:"getTokenUser-error",msg:"cannotFindUserFromToken"}),Promise.reject("cannotFindUserFromToken");await $(t);let n=De(t,W,"");if(!Ot(n))return console.log("userSelf",t),console.log("mappingBy",W),H.error({event:"getTokenUser-error",msg:"cannotGetUserProp",mappingBy:W}),Promise.reject("cannotGetUserProp");let r=await Q.users.select({[W]:n,isActive:"y"});return r=De(r,0,null),Jt(r)?r:(console.log("userSelf",t),console.log("mappingBy",W),H.error({event:"getTokenUser-error",msg:"cannotGetUserFromPerm",mappingBy:W}),Promise.reject("cannotGetUserFromPerm"))})(e),r=u(n,t);return Yn(r)&&(r=await r),r?n:(console.log("user",n),H.error({event:"getAndVerifyClientUser-error",msg:"userNoPermission",from:t}),Promise.reject("userNoPermission"))},te=async(e,t="")=>{let n=null;if(Ot(e)&&(n=s(e),Yn(n)&&(n=await n)),!Jt(n))return console.log("token",e),H.error({event:"getAndVerifyAppUser-error",msg:"cannotFindUserFromToken"}),Promise.reject("cannotFindUserFromToken");let r=o(n,t);return Yn(r)&&(r=await r),r?n:(console.log("user",n),H.error({event:"getAndVerifyAppUser-error",msg:"userNoPermission",from:t}),Promise.reject("userNoPermission"))},ne=async e=>{let t=await(async(e,t)=>{let n=await Q.users.select({[e]:t,isActive:"y"});return n=De(n,0,null),Jt(n)?n:null})("id",e);return Jt(t)?t:null},re=async e=>{let t=await ne(e),n=zo(t,await Q.grups.select(),await Q.pemis.select(),await Q.targets.select());if(!Jt(n))return console.log("userId",e),H.error({event:"getGenUserAndRulesByUserId-error",msg:"cannotGetUserRules",userId:e}),Promise.reject("cannotGetUserRules");let r=kt(De(n,"grups",[]),"name");var i,s;return s=";",r=null==(i=r)?"":Qt.call(i,s),{user:{...t,grupsNames:r},rules:De(n,"rules",[])}},ie="dist",se="./node_modules/w-web-perm/dist";Hn(se)&&(ie=se);let ue="index.html";try{let n=e.resolve(ie,"index.tmp");if(kn(n)||(n=e.resolve(ie,ue)),!kn(n))throw console.log("fpEntryIn",n),new Error("invalid fpEntryIn");let r=e.resolve(ie,ue),i=t.readFileSync(n,"utf8");i=Qn(i,"/mperm/","{sfd}/"),i=Qn(i,"{sfd}",g),i=Qn(i,"{urlRedirect}",p),i=Qn(i,"{language}",L),t.writeFileSync(r,i,"utf8")}catch(e){console.log(e),console.log(`can not generate ${ue}`)}let oe=[{method:"GET",path:"/api/getUserByToken",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("token",t),console.log("[API]getUserByToken/check token: invalid token"),H.error({event:"api/getUserByToken-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=await ee(t,"getUserByToken");return Jt(n)?(H.info({event:"api/getUserByToken-success",userId:De(n,"id","")}),n):(console.log("token",t),console.log("[API]getUserByToken/check user: invalid user"),H.error({event:"api/getUserByToken-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission"))})();return Xn(n.msg)&&(n.msg=n.msg.message),n}},{method:"GET",path:"/api/getPerm",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("token",t),console.log("[API]getPerm/check token: invalid token"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=await ee(t,"getPerm");if(!Jt(n))return console.log("token",t),console.log("[API]getPerm/check userSelf: invalid userSelf"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let r=De(n,"id","");if(!Ot(r))return console.log("token",t),console.log("userSelf",n),console.log("[API]getPerm/check userIdSelf: invalid userIdSelf"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let i=await re(r);return Jt(i)?(H.info({event:"api/getPerm-success",userId:r}),i):(console.log("token",t),console.log("userSelf",n),console.log("userIdSelf",r),console.log("[API]getPerm/check userWithRulesSelf: invalid userWithRulesSelf"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission"))})();return Xn(n.msg)&&(n.msg=n.msg.message),n}},{method:"GET",path:"/api/getPermUserInfor",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("[API]getPermUserInfor/check tokenSelf: invalid tokenSelf"),H.error({event:"api/getPermUserInfor-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");if(!Jt(await te(t,"getPermUserInfor")))return console.log("req.query",De(e,"query")),console.log("tokenSelf",t),console.log("[API]getPermUserInfor/check userSelf: invalid userSelf"),H.error({event:"api/getPermUserInfor-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=De(e,"query.userId","");if(!Ot(n))return console.log("req.query",De(e,"query")),console.log("tokenSelf",t),console.log("[API]getPermUserInfor/check userIdFind: invalid userIdFind"),H.error({event:"api/getPermUserInfor-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let r=await re(n);return Jt(r)?(H.info({event:"api/getPermUserInfor-success",userId:n}),r):(console.log("userIdFind",n),console.log("[API]getPermUserInfor/check userWithRulesFind: invalid userWithRulesFind"),H.error({event:"api/getPermUserInfor-error",msg:"userIdNoPermrules"}),Promise.reject("userIdNoPermrules"))})();return Xn(n.msg)&&(n.msg=n.msg.message),n}},{method:"POST",path:"/syncAndReplaceTabs",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("token",t),console.log("[API]syncAndReplaceTabs/check token: invalid token"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=De(e,"query.keyTable","");if(!Ot(n))return console.log("req.query",De(e,"query")),console.log("keyTable",n),console.log("[API]syncAndReplaceTabs/check keyTable: invalid keyTable"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");if(!["targets","pemis","grups","users"].includes(n))return console.log("[API]syncAndReplaceTabs/check keyTable: unexpected keyTable",n),H.error({event:"api/syncAndReplaceTabs-error",msg:"invalidKeyTable",keyTable:n}),Promise.reject("invalidKeyTable");let r=await te(t,"syncAndReplaceTabs");if(!Jt(r))return console.log("token",t),console.log("[API]syncAndReplaceTabs/check user: invalid user"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let i=De(r,"id","");if(!Ot(i))return console.log("token",t),console.log("user",r),console.log("[API]syncAndReplaceTabs/check userId: invalid userId"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let s=await(async e=>{let t=De(e,"payload");if(Ot(t)&&(t=Gn(t)),!Jt(t))return console.log("payload",t),H.error({event:"parsePayload-error",msg:"invalidPayload"}),Promise.reject("invalidPayload");let n=De(t,"from","");if(!Ot(n))return console.log("payload",t),H.error({event:"parsePayload-error",msg:"invalidFromInPayload"}),Promise.reject("invalidFromInPayload");let r=De(t,"rows",[]);return hn(r)?{from:n,rows:r}:(console.log("payload",t),H.error({event:"parsePayload-error",msg:"invalidRowsInPayload"}),Promise.reject("invalidRowsInPayload"))})(e),u=await(async(e,t,n)=>await J("syncAndReplaceTabs:"+n,async()=>{let r=De(t,"from","");if(!Ot(r))return console.log("inp",t),H.error({event:"syncAndReplaceTabs-error",msg:"invalidFrom",keyTable:n}),Promise.reject("invalidFrom");let i=De(t,"rows",[]);return hn(i)?(i=kt(i,(e,t)=>(e.from=r,e)),i=On(i,jo[n].keys),await Q[n].delAll({from:r}),await P(e,n,"insert",i)):(console.log("inp",t),console.log("keyTable",n),H.error({event:"syncAndReplaceTabs-error",msg:"invalidRows",keyTable:n}),Promise.reject("invalidRows"))}))(i,s,n);return H.info({event:"api/syncAndReplaceTabs-success",userId:i,keyTable:n}),u})();return Xn(n.msg)&&(n.msg=n.msg.message),n}}],ce=ut(jo);return l=new Fs({port:a,pathStaticFiles:ie,apiName:"api",apis:oe,tokenType:"Bearer",verifyConn:async({apiType:e,authorization:t,query:n,headers:r,req:i})=>{let s=function(e,t){return Ot(e)&&jn(t)?0===(t=gn(t))?e:Kn(e,e.length-t):""}(t,7);if(!Ot(s))return console.log("apiType",e),console.log("authorization",t),console.log("invalid token"),!1;let u=await q(s),o=De(r,"x-forwarded-for","").split(",")[0].trim();Ot(o)||(o=De(i,"info.remoteAddress","")||De(i,"socket.remoteAddress","")||De(i,"connection.remoteAddress",""));let c=De(r,"origin",""),l=De(r,"referer","");return H.info({event:"verifyConn",ok:u,apiType:e,ip:o,origin:c,referer:l}),u},getUserIdByToken:async e=>{let t=De(await s(e),"id","");return Ot(t)?t:(console.log("token",e),console.log("userId",t),H.error({event:"getUserIdByToken-error",msg:"cannotFindUserId"}),Promise.reject("cannotFindUserId"))},corsOrigins:["*"],useDbOrm:!0,kpOrm:Q,operOrm:P,tableNamesExec:ce,methodsExec:["select","insert","save","del","delAll"],tableNamesSync:ce,kpFunExt:{getWebInfor:e=>(H.info({event:"getWebInfor-success",userId:e}),{webLogo:m,showLanguage:f,language:L,kpLang:V,showModeEditTargets:h,showModeEditPemis:b,showModeEditGrups:A,showModeEditUsers:N,modeEditTargets:x,modeEditPemis:E,modeEditGrups:T,modeEditUsers:Z,widthTargetId:v,widthTargetDescription:X,widthPemisName:S,widthPemisDescription:Y,widthGrupsName:G,widthGrupsDescription:j,widthUsersName:F,widthUsersEmail:K,widthUsersDescription:z}),updateTargets:R.updateTargets,updatePemis:R.updatePemis,updateGrups:R.updateGrups,updateUsers:R.updateUsers,getStaEvent:async(e,t,n)=>{try{let r=await _.getStaEvent(e,t,n);return H.info({event:"getStaEvent-success",userId:e}),r}catch(t){throw H.error({event:"getStaEvent-error",userId:e,msg:"string"==typeof t?t:t&&t.message||"cannotGetStaEvent"}),t}},getStaEventTable:async e=>{try{let t=await _.getStaEventTable(e);return H.info({event:"getStaEventTable-success",userId:e}),t}catch(t){throw H.error({event:"getStaEventTable-error",userId:e,msg:"string"==typeof t?t:t&&t.message||"cannotGetStaEventTable"}),t}}},fnTableTags:"tableTags-web-perm.json"}),l}});
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("path"),require("fs"),require("@hapi/hapi"),require("@hapi/inert"),require("stream"),require("worker_threads"),require("url"),require("pino"),require("readline")):"function"==typeof define&&define.amd?define(["path","fs","@hapi/hapi","@hapi/inert","stream","worker_threads","url","pino","readline"],t):(e="undefined"!=typeof globalThis?globalThis:e||self)["w-web-perm"]=t(e.path,e.fs,e["@hapi/hapi"],e["@hapi/inert"],e.stream,e.require$$0$1,e.url,e.pino,e.readline)}(this,function(e,t,n,r,i,s,u,o,c){"use strict";var l="undefined"!=typeof document?document.currentScript:null,a=Array.isArray,d="object"==typeof global&&global&&global.Object===Object&&global,D="object"==typeof self&&self&&self.Object===Object&&self,M=d||D||Function("return this")(),w=M.Symbol,y=Object.prototype,m=y.hasOwnProperty,g=y.toString,I=w?w.toStringTag:void 0;var C=Object.prototype.toString;var p=w?w.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":p&&p in Object(e)?function(e){var t=m.call(e,I),n=e[I];try{e[I]=void 0;var r=!0}catch(e){}var i=g.call(e);return r&&(t?e[I]=n:delete e[I]),i}(e):function(e){return C.call(e)}(e)}function L(e){return null!=e&&"object"==typeof e}function h(e){return"symbol"==typeof e||L(e)&&"[object Symbol]"==f(e)}var b=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/;function N(e,t){if(a(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!h(e))||(A.test(e)||!b.test(e)||null!=t&&e in Object(t))}function x(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function E(e){if(!x(e))return!1;var t=f(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var T,Z=M["__core-js_shared__"],v=(T=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+T:"";var X=Function.prototype.toString;function S(e){if(null!=e){try{return X.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Y=/^\[object .+?Constructor\]$/,G=Function.prototype,j=Object.prototype,F=G.toString,K=j.hasOwnProperty,z=RegExp("^"+F.call(K).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function W(e){return!(!x(e)||(t=e,v&&v in t))&&(E(e)?z:Y).test(S(e));var t}function B(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return W(n)?n:void 0}var V=B(Object,"create");var H=Object.prototype.hasOwnProperty;var U=Object.prototype.hasOwnProperty;function k(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Q(e,t){return e===t||e!=e&&t!=t}function P(e,t){for(var n=e.length;n--;)if(Q(e[n][0],t))return n;return-1}k.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},k.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},k.prototype.get=function(e){var t=this.__data__;if(V){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return H.call(t,e)?t[e]:void 0},k.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:U.call(t,e)},k.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=V&&void 0===t?"__lodash_hash_undefined__":t,this};var J=Array.prototype.splice;function R(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}R.prototype.clear=function(){this.__data__=[],this.size=0},R.prototype.delete=function(e){var t=this.__data__,n=P(t,e);return!(n<0)&&(n==t.length-1?t.pop():J.call(t,n,1),--this.size,!0)},R.prototype.get=function(e){var t=this.__data__,n=P(t,e);return n<0?void 0:t[n][1]},R.prototype.has=function(e){return P(this.__data__,e)>-1},R.prototype.set=function(e,t){var n=this.__data__,r=P(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var O=B(M,"Map");function _(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function $(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}$.prototype.clear=function(){this.size=0,this.__data__={hash:new k,map:new(O||R),string:new k}},$.prototype.delete=function(e){var t=_(this,e).delete(e);return this.size-=t?1:0,t},$.prototype.get=function(e){return _(this,e).get(e)},$.prototype.has=function(e){return _(this,e).has(e)},$.prototype.set=function(e,t){var n=_(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function q(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var u=e.apply(this,r);return n.cache=s.set(i,u)||s,u};return n.cache=new(q.Cache||$),n}q.Cache=$;var ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/\\(\\)?/g,ne=function(e){var t=q(e,function(e){return 500===n.size&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,function(e,n,r,i){t.push(r?i.replace(te,"$1"):n||e)}),t}),re=ne;function ie(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var se=w?w.prototype:void 0,ue=se?se.toString:void 0;function oe(e){if("string"==typeof e)return e;if(a(e))return ie(e,oe)+"";if(h(e))return ue?ue.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ce(e){return null==e?"":oe(e)}function le(e,t){return a(e)?e:N(e,t)?[e]:re(ce(e))}function ae(e){if("string"==typeof e||h(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function de(e,t){for(var n=0,r=(t=le(t,e)).length;null!=e&&n<r;)e=e[ae(t[n++])];return n&&n==r?e:void 0}function De(e,t,n){var r=null==e?void 0:de(e,t);return void 0===r?n:r}function Me(e){var t=this.__data__=new R(e);this.size=t.size}Me.prototype.clear=function(){this.__data__=new R,this.size=0},Me.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Me.prototype.get=function(e){return this.__data__.get(e)},Me.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.set=function(e,t){var n=this.__data__;if(n instanceof R){var r=n.__data__;if(!O||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new $(r)}return n.set(e,t),this.size=n.size,this};function we(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new $;++t<n;)this.add(e[t])}function ye(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function me(e,t){return e.has(t)}we.prototype.add=we.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},we.prototype.has=function(e){return this.__data__.has(e)};function ge(e,t,n,r,i,s){var u=1&n,o=e.length,c=t.length;if(o!=c&&!(u&&c>o))return!1;var l=s.get(e),a=s.get(t);if(l&&a)return l==t&&a==e;var d=-1,D=!0,M=2&n?new we:void 0;for(s.set(e,t),s.set(t,e);++d<o;){var w=e[d],y=t[d];if(r)var m=u?r(y,w,d,t,e,s):r(w,y,d,e,t,s);if(void 0!==m){if(m)continue;D=!1;break}if(M){if(!ye(t,function(e,t){if(!me(M,t)&&(w===e||i(w,e,n,r,s)))return M.push(t)})){D=!1;break}}else if(w!==y&&!i(w,y,n,r,s)){D=!1;break}}return s.delete(e),s.delete(t),D}var Ie=M.Uint8Array;function Ce(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function pe(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var fe=w?w.prototype:void 0,Le=fe?fe.valueOf:void 0;function he(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function be(e,t,n){var r=t(e);return a(e)?r:he(r,n(e))}function Ae(e,t){for(var n=-1,r=null==e?0:e.length,i=0,s=[];++n<r;){var u=e[n];t(u,n,e)&&(s[i++]=u)}return s}function Ne(){return[]}var xe=Object.prototype.propertyIsEnumerable,Ee=Object.getOwnPropertySymbols,Te=Ee?function(e){return null==e?[]:(e=Object(e),Ae(Ee(e),function(t){return xe.call(e,t)}))}:Ne;function Ze(e){return L(e)&&"[object Arguments]"==f(e)}var ve=Object.prototype,Xe=ve.hasOwnProperty,Se=ve.propertyIsEnumerable,Ye=Ze(function(){return arguments}())?Ze:function(e){return L(e)&&Xe.call(e,"callee")&&!Se.call(e,"callee")},Ge=Ye;var je="object"==typeof exports&&exports&&!exports.nodeType&&exports,Fe=je&&"object"==typeof module&&module&&!module.nodeType&&module,Ke=Fe&&Fe.exports===je?M.Buffer:void 0,ze=(Ke?Ke.isBuffer:void 0)||function(){return!1},We=/^(?:0|[1-9]\d*)$/;function Be(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&We.test(e))&&e>-1&&e%1==0&&e<t}function Ve(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var He={};function Ue(e){return function(t){return e(t)}}He["[object Float32Array]"]=He["[object Float64Array]"]=He["[object Int8Array]"]=He["[object Int16Array]"]=He["[object Int32Array]"]=He["[object Uint8Array]"]=He["[object Uint8ClampedArray]"]=He["[object Uint16Array]"]=He["[object Uint32Array]"]=!0,He["[object Arguments]"]=He["[object Array]"]=He["[object ArrayBuffer]"]=He["[object Boolean]"]=He["[object DataView]"]=He["[object Date]"]=He["[object Error]"]=He["[object Function]"]=He["[object Map]"]=He["[object Number]"]=He["[object Object]"]=He["[object RegExp]"]=He["[object Set]"]=He["[object String]"]=He["[object WeakMap]"]=!1;var ke="object"==typeof exports&&exports&&!exports.nodeType&&exports,Qe=ke&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=Qe&&Qe.exports===ke&&d.process,Je=function(){try{var e=Qe&&Qe.require&&Qe.require("util").types;return e||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),Re=Je&&Je.isTypedArray,Oe=Re?Ue(Re):function(e){return L(e)&&Ve(e.length)&&!!He[f(e)]},_e=Object.prototype.hasOwnProperty;function $e(e,t){var n=a(e),r=!n&&Ge(e),i=!n&&!r&&ze(e),s=!n&&!r&&!i&&Oe(e),u=n||r||i||s,o=u?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=o.length;for(var l in e)!t&&!_e.call(e,l)||u&&("length"==l||i&&("offset"==l||"parent"==l)||s&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Be(l,c))||o.push(l);return o}var qe=Object.prototype;function et(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||qe)}function tt(e,t){return function(n){return e(t(n))}}var nt=tt(Object.keys,Object),rt=Object.prototype.hasOwnProperty;function it(e){if(!et(e))return nt(e);var t=[];for(var n in Object(e))rt.call(e,n)&&"constructor"!=n&&t.push(n);return t}function st(e){return null!=e&&Ve(e.length)&&!E(e)}function ut(e){return st(e)?$e(e):it(e)}function ot(e){return be(e,ut,Te)}var ct=Object.prototype.hasOwnProperty;var lt=B(M,"DataView"),at=B(M,"Promise"),dt=B(M,"Set"),Dt=B(M,"WeakMap"),Mt="[object Map]",wt="[object Promise]",yt="[object Set]",mt="[object WeakMap]",gt="[object DataView]",It=S(lt),Ct=S(O),pt=S(at),ft=S(dt),Lt=S(Dt),ht=f;(lt&&ht(new lt(new ArrayBuffer(1)))!=gt||O&&ht(new O)!=Mt||at&&ht(at.resolve())!=wt||dt&&ht(new dt)!=yt||Dt&&ht(new Dt)!=mt)&&(ht=function(e){var t=f(e),n="[object Object]"==t?e.constructor:void 0,r=n?S(n):"";if(r)switch(r){case It:return gt;case Ct:return Mt;case pt:return wt;case ft:return yt;case Lt:return mt}return t});var bt=ht,At="[object Arguments]",Nt="[object Array]",xt="[object Object]",Et=Object.prototype.hasOwnProperty;function Tt(e,t,n,r,i,s){var u=a(e),o=a(t),c=u?Nt:bt(e),l=o?Nt:bt(t),d=(c=c==At?xt:c)==xt,D=(l=l==At?xt:l)==xt,M=c==l;if(M&&ze(e)){if(!ze(t))return!1;u=!0,d=!1}if(M&&!d)return s||(s=new Me),u||Oe(e)?ge(e,t,n,r,i,s):function(e,t,n,r,i,s,u){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!s(new Ie(e),new Ie(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Q(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var o=Ce;case"[object Set]":var c=1&r;if(o||(o=pe),e.size!=t.size&&!c)return!1;var l=u.get(e);if(l)return l==t;r|=2,u.set(e,t);var a=ge(o(e),o(t),r,i,s,u);return u.delete(e),a;case"[object Symbol]":if(Le)return Le.call(e)==Le.call(t)}return!1}(e,t,c,n,r,i,s);if(!(1&n)){var w=d&&Et.call(e,"__wrapped__"),y=D&&Et.call(t,"__wrapped__");if(w||y){var m=w?e.value():e,g=y?t.value():t;return s||(s=new Me),i(m,g,n,r,s)}}return!!M&&(s||(s=new Me),function(e,t,n,r,i,s){var u=1&n,o=ot(e),c=o.length;if(c!=ot(t).length&&!u)return!1;for(var l=c;l--;){var a=o[l];if(!(u?a in t:ct.call(t,a)))return!1}var d=s.get(e),D=s.get(t);if(d&&D)return d==t&&D==e;var M=!0;s.set(e,t),s.set(t,e);for(var w=u;++l<c;){var y=e[a=o[l]],m=t[a];if(r)var g=u?r(m,y,a,t,e,s):r(y,m,a,e,t,s);if(!(void 0===g?y===m||i(y,m,n,r,s):g)){M=!1;break}w||(w="constructor"==a)}if(M&&!w){var I=e.constructor,C=t.constructor;I==C||!("constructor"in e)||!("constructor"in t)||"function"==typeof I&&I instanceof I&&"function"==typeof C&&C instanceof C||(M=!1)}return s.delete(e),s.delete(t),M}(e,t,n,r,i,s))}function Zt(e,t,n,r,i){return e===t||(null==e||null==t||!L(e)&&!L(t)?e!=e&&t!=t:Tt(e,t,n,r,Zt,i))}function vt(e){return e==e&&!x(e)}function Xt(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}function St(e){var t=function(e){for(var t=ut(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,vt(i)]}return t}(e);return 1==t.length&&t[0][2]?Xt(t[0][0],t[0][1]):function(n){return n===e||function(e,t,n,r){var i=n.length,s=i,u=!r;if(null==e)return!s;for(e=Object(e);i--;){var o=n[i];if(u&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++i<s;){var c=(o=n[i])[0],l=e[c],a=o[1];if(u&&o[2]){if(void 0===l&&!(c in e))return!1}else{var d=new Me;if(r)var D=r(l,a,c,e,t,d);if(!(void 0===D?Zt(a,l,3,r,d):D))return!1}}return!0}(n,e,t)}}function Yt(e,t){return null!=e&&t in Object(e)}function Gt(e,t){return null!=e&&function(e,t,n){for(var r=-1,i=(t=le(t,e)).length,s=!1;++r<i;){var u=ae(t[r]);if(!(s=null!=e&&n(e,u)))break;e=e[u]}return s||++r!=i?s:!!(i=null==e?0:e.length)&&Ve(i)&&Be(u,i)&&(a(e)||Ge(e))}(e,t,Yt)}function jt(e){return e}function Ft(e){return function(t){return null==t?void 0:t[e]}}function Kt(e){return N(e)?Ft(ae(e)):function(e){return function(t){return de(t,e)}}(e)}function zt(e){return"function"==typeof e?e:null==e?jt:"object"==typeof e?a(e)?function(e,t){return N(e)&&vt(t)?Xt(ae(e),t):function(n){var r=De(n,e);return void 0===r&&r===t?Gt(n,e):Zt(t,r,3)}}(e[0],e[1]):St(e):Kt(e)}var Wt,Bt=function(e,t,n){for(var r=-1,i=Object(e),s=n(e),u=s.length;u--;){var o=s[Wt?u:++r];if(!1===t(i[o],o,i))break}return e};var Vt=function(e,t){return function(n,r){if(null==n)return n;if(!st(n))return e(n,r);for(var i=n.length,s=t?i:-1,u=Object(n);(t?s--:++s<i)&&!1!==r(u[s],s,u););return n}}(function(e,t){return e&&Bt(e,t,ut)}),Ht=Vt;function Ut(e,t){var n=-1,r=st(e)?Array(e.length):[];return Ht(e,function(e,i,s){r[++n]=t(e,i,s)}),r}function kt(e,t){return(a(e)?ie:Ut)(e,zt(t))}var Qt=Array.prototype.join;function Pt(e){return"[object Object]"===Object.prototype.toString.call(e)}function Jt(e){if(Pt(e)){for(let t in e)return!0;return!1}return!1}function Rt(e){return"[object String]"===Object.prototype.toString.call(e)}function Ot(e){return!(!Rt(e)||""===e)}var _t=/\s/;var $t=/^\s+/;function qt(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&_t.test(e.charAt(t)););return t}(e)+1).replace($t,""):e}var en=/^[-+]0x[0-9a-f]+$/i,tn=/^0b[01]+$/i,nn=/^0o[0-7]+$/i,rn=parseInt;function sn(e){if("number"==typeof e)return e;if(h(e))return NaN;if(x(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=x(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=qt(e);var n=tn.test(e);return n||nn.test(e)?rn(e.slice(2),n?2:8):en.test(e)?NaN:+e}var un=1/0;function on(e){return e?(e=sn(e))===un||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function cn(e){var t=on(e),n=t%1;return t==t?n?t-n:t:0}function ln(e){return e!=e}function an(e){let t=!1;if(Ot(e))t=!isNaN(Number(e));else if(function(e){return"[object Number]"===Object.prototype.toString.call(e)}(e)){if(ln(e))return!1;t=!0}return t}function dn(e){if(!an(e))return 0;return on(e)}function Dn(e){return!!an(e)&&(e=dn(e),"number"==typeof(t=e)&&t==cn(t));var t}var Mn=M.isFinite,wn=Math.min;var yn,mn=(yn=Math["round"],function(e,t){if(e=sn(e),(t=null==t?0:wn(cn(t),292))&&Mn(e)){var n=(ce(e)+"e").split("e");return+((n=(ce(yn(n[0]+"e"+(+n[1]+t)))+"e").split("e"))[0]+"e"+(+n[1]-t))}return yn(e)});function gn(e){if(!an(e))return 0;e=dn(e);let t=mn(e);return"0"===String(t)?0:t}function In(e){if(!Dn(e))return!1;return gn(e)>0}function Cn(e){return"[object Array]"===Object.prototype.toString.call(e)}function pn(e){return"[object Undefined]"===Object.prototype.toString.call(e)}function fn(e){if(Pt(e)){for(let t in e)return!1;return!0}return!1}function Ln(e){return!!pn(e)||(!!function(e){return"[object Null]"===Object.prototype.toString.call(e)}(e)||(!!fn(e)||(!!function(e){return!(!Rt(e)||""!==e)}(e)||(!!function(e){return!!Cn(e)&&0===e.length}(e)||!!ln(e)))))}function hn(e){return!!Cn(e)&&(0!==e.length&&(1!==e.length||!Ln(e[0])))}var bn=tt(Object.getPrototypeOf,Object),An=Function.prototype,Nn=Object.prototype,xn=An.toString,En=Nn.hasOwnProperty,Tn=xn.call(Object);function Zn(e){if(!L(e)||"[object Object]"!=f(e))return!1;var t=bn(e);if(null===t)return!0;var n=En.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&xn.call(n)==Tn}function vn(e){if(!L(e))return!1;var t=f(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Zn(e)}function Xn(e){return vn(e)}function Sn(e){let t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t}function Yn(e){let t,n=Object.prototype.toString.call(e);if(t="[object Promise]"===n,t)return!0;if("[object Function]"!==n)return!1;try{t="function"!=typeof e.subscribe&&"function"==typeof e.then}catch(e){}return t}function Gn(e){if(!Ot(e))return{};let t={};try{t=JSON.parse(e)}catch(e){t={}}return t}function jn(e){if(!Dn(e))return!1;return gn(e)>=0}function Fn(e,t){return Ot(e)&&jn(t)?0===(t=gn(t))?"":e.substring(0,t):""}function Kn(e,t){if(!Ot(e))return"";if(!jn(t))return"";if(0===(t=gn(t)))return"";let n=e.length-t;return n<0&&(n=0),e.substring(n,n+t)}function zn(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}let Wn=function(e){if(!Sn(e))throw new Error("fn is not a function");return function(){let t=zn(),n=null,r=null;try{n=e.apply(this,arguments)}catch(e){r=e}return null!==r?t.resolve({state:"error",msg:r}):Yn(n)?n.then(e=>{t.resolve({state:"success",msg:e})}).catch(e=>{"cancelled"===De(e,"reason")?t.resolve({state:"cancelled",msg:""}):t.resolve({state:"error",msg:e})}):t.resolve({state:"success",msg:n}),t}};function Bn(e,t={}){let n=De(t,"fs"),r=!1;try{n.statSync(e),r=!0}catch{r=!1}return r}function Vn(e,t={}){let n=De(t,"fs");if(!Bn(e,{fs:n}))return!1;let r=n.lstatSync(e);return!r.isFile()&&!r.isSymbolicLink()}function Hn(e){return Vn(e,{fs:t})}function Un(e,t={}){let n=De(t,"fs");return!!Bn(e,{fs:n})&&(!n.lstatSync(e).isDirectory()&&!n.lstatSync(e).isSymbolicLink())}function kn(e){return Un(e,{fs:t})}function Qn(e,t,n){if(!Ot(e))return"";if(!Ot(t))return"";if(!Rt(n))return"";return String(e).replaceAll(t,n)}function Pn(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function Jn(e,t){var n;return(a(e)?Pn:Ht)(e,"function"==typeof(n=t)?n:jt)}function Rn(e,t,n=""){if(!hn(t))return{};let r={};return Jn(t,function(t){r[t]=De(e,t,n)}),r}function On(e,t,n=""){if(!hn(e))return[];if(!hn(t))return[];return kt(e,e=>Rn(e,t,n))}var _n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function $n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function qn(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}),n}var er={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",o="day",c="week",l="month",a="quarter",d="year",D="date",M="Invalid Date",w=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},I={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+g(r,2,"0")+":"+g(i,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,l),s=n-i<0,u=t.clone().add(r+(s?-1:1),l);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:d,w:c,d:o,D:D,h:u,m:s,s:i,ms:r,Q:a}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},C="en",p={};p[C]=m;var f="$isDayjsObject",L=function(e){return e instanceof N||!(!e||!e[f])},h=function e(t,n,r){var i;if(!t)return C;if("string"==typeof t){var s=t.toLowerCase();p[s]&&(i=s),n&&(p[s]=n,i=s);var u=t.split("-");if(!i&&u.length>1)return e(u[0])}else{var o=t.name;p[o]=t,i=o}return!r&&i&&(C=i),i||!r&&C},b=function(e,t){if(L(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new N(n)},A=I;A.l=h,A.i=L,A.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var N=function(){function m(e){this.$L=h(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[f]=!0}var g=m.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(A.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(w);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return A},g.isValid=function(){return!(this.$d.toString()===M)},g.isSame=function(e,t){var n=b(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return b(e)<this.startOf(t)},g.isBefore=function(e,t){return this.endOf(t)<b(e)},g.$g=function(e,t,n){return A.u(e)?this[t]:this.set(n,e)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(e,t){var n=this,r=!!A.u(t)||t,a=A.p(e),M=function(e,t){var i=A.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(o)},w=function(e,t){return A.w(n.toDate()[e].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},y=this.$W,m=this.$M,g=this.$D,I="set"+(this.$u?"UTC":"");switch(a){case d:return r?M(1,0):M(31,11);case l:return r?M(1,m):M(0,m+1);case c:var C=this.$locale().weekStart||0,p=(y<C?y+7:y)-C;return M(r?g-p:g+(6-p),m);case o:case D:return w(I+"Hours",0);case u:return w(I+"Minutes",1);case s:return w(I+"Seconds",2);case i:return w(I+"Milliseconds",3);default:return this.clone()}},g.endOf=function(e){return this.startOf(e,!1)},g.$set=function(e,t){var n,c=A.p(e),a="set"+(this.$u?"UTC":""),M=(n={},n[o]=a+"Date",n[D]=a+"Date",n[l]=a+"Month",n[d]=a+"FullYear",n[u]=a+"Hours",n[s]=a+"Minutes",n[i]=a+"Seconds",n[r]=a+"Milliseconds",n)[c],w=c===o?this.$D+(t-this.$W):t;if(c===l||c===d){var y=this.clone().set(D,1);y.$d[M](w),y.init(),this.$d=y.set(D,Math.min(this.$D,y.daysInMonth())).$d}else M&&this.$d[M](w);return this.init(),this},g.set=function(e,t){return this.clone().$set(e,t)},g.get=function(e){return this[A.p(e)]()},g.add=function(r,a){var D,M=this;r=Number(r);var w=A.p(a),y=function(e){var t=b(M);return A.w(t.date(t.date()+Math.round(e*r)),M)};if(w===l)return this.set(l,this.$M+r);if(w===d)return this.set(d,this.$y+r);if(w===o)return y(1);if(w===c)return y(7);var m=(D={},D[s]=t,D[u]=n,D[i]=e,D)[w]||1,g=this.$d.getTime()+r*m;return A.w(g,this)},g.subtract=function(e,t){return this.add(-1*e,t)},g.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||M;var r=e||"YYYY-MM-DDTHH:mm:ssZ",i=A.z(this),s=this.$H,u=this.$m,o=this.$M,c=n.weekdays,l=n.months,a=n.meridiem,d=function(e,n,i,s){return e&&(e[n]||e(t,r))||i[n].slice(0,s)},D=function(e){return A.s(s%12||12,e,"0")},w=a||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return A.s(t.$y,4,"0");case"M":return o+1;case"MM":return A.s(o+1,2,"0");case"MMM":return d(n.monthsShort,o,l,3);case"MMMM":return d(l,o);case"D":return t.$D;case"DD":return A.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return d(n.weekdaysMin,t.$W,c,2);case"ddd":return d(n.weekdaysShort,t.$W,c,3);case"dddd":return c[t.$W];case"H":return String(s);case"HH":return A.s(s,2,"0");case"h":return D(1);case"hh":return D(2);case"a":return w(s,u,!0);case"A":return w(s,u,!1);case"m":return String(u);case"mm":return A.s(u,2,"0");case"s":return String(t.$s);case"ss":return A.s(t.$s,2,"0");case"SSS":return A.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(r,D,M){var w,y=this,m=A.p(D),g=b(r),I=(g.utcOffset()-this.utcOffset())*t,C=this-g,p=function(){return A.m(y,g)};switch(m){case d:w=p()/12;break;case l:w=p();break;case a:w=p()/3;break;case c:w=(C-I)/6048e5;break;case o:w=(C-I)/864e5;break;case u:w=C/n;break;case s:w=C/t;break;case i:w=C/e;break;default:w=C}return M?w:A.a(w)},g.daysInMonth=function(){return this.endOf(l).$D},g.$locale=function(){return p[this.$L]},g.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=h(e,t,!0);return r&&(n.$L=r),n},g.clone=function(){return A.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},m}(),x=N.prototype;return b.prototype=x,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",o],["$M",l],["$y",d],["$D",D]].forEach(function(e){x[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),b.extend=function(e,t){return e.$i||(e(t,N,b),e.$i=!0),b},b.locale=h,b.isDayjs=L,b.unix=function(e){return b(1e3*e)},b.en=p[C],b.Ls=p,b.p={},b}()}(er);var tr=$n(er.exports);function nr(){if(!Sn(tr))throw new Error("invalid dayjs");return tr().format("YYYY-MM-DDTHH:mm:ssZ")}let rr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),ir=rr.length;function sr(e=32){let t=[];e=In(e)?gn(e):32;for(let n=0;n<e;n++)t[n]=rr[0|Math.random()*ir];return t.join("")}function ur(e){return!0===(t=e)||!1===t||L(t)&&"[object Boolean]"==f(t);var t}var or={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}(or);var cr=$n(or.exports);function lr(){return new cr}async function ar(e,t={}){let n=null,r=zn();if(!Sn(e))return r.reject("waitfunction需輸入函數f"),r;let i=async()=>{let t=e();return Yn(t)&&(t=await t),t};if(n=await i(),!0===n)return r.resolve(),r;let s=De(t,"attemptNum",null);In(s)||(s=200);let u=De(t,"timeInterval",null);In(u)||(u=1e3);let o=0,c=setInterval(async()=>{o+=1,n=await i(),!0===n&&(clearInterval(c),r.resolve()),o>s&&(clearInterval(c),r.reject(`exceeded attemptNum[${s}]`))},u);return r}function dr(e){return function(e,t={}){let n=De(t,"fs");if(Vn(e,{fs:n}))return{success:"input folder is already exists: "+e};if(Bn(e,{fs:n}))return{error:"input path already exists: "+e};try{n.mkdirSync(e,{recursive:!0})}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}function Dr(e){return"number"==typeof e||L(e)&&"[object Number]"==f(e)}function Mr(e){if(!(Ot(e)||an(e)||h(e)||function(e){return"[object BigInt]"===Object.prototype.toString.call(e)}(e)))return"";let t="";try{t=String(e)}catch(e){}try{t=e.toString()}catch(e){}return t}var wr={exports:{}};var yr,mr={exports:{}},gr=qn(Object.freeze({__proto__:null,default:{}}));function Ir(){return yr||(yr=1,function(e){var t;e.exports=(t=t||function(e,t){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==_n&&_n.crypto&&(n=_n.crypto),!n)try{n=gr}catch(e){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},u=s.lib={},o=u.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=u.WordArray=o.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var s=0;s<i;s++){var u=n[s>>>2]>>>24-s%4*8&255;t[r+s>>>2]|=u<<24-(r+s)%4*8}else for(var o=0;o<i;o+=4)t[r+o>>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new c.init(t,e)}}),l=s.enc={},a=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},d=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},D=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},M=u.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=D.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,s=r.sigBytes,u=this.blockSize,o=s/(4*u),l=(o=t?e.ceil(o):e.max((0|o)-this._minBufferSize,0))*u,a=e.min(4*l,s);if(l){for(var d=0;d<l;d+=u)this._doProcessBlock(i,d);n=i.splice(0,l),r.sigBytes-=a}return new c.init(n,a)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});u.Hasher=M.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){M.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new w.HMAC.init(e,n).finalize(t)}}});var w=s.algo={};return s}(Math),t)}(mr)),mr.exports}!function(e){e.exports=Ir().enc.Utf8}(wr);var Cr=$n(wr.exports),pr={exports:{}};!function(e){var t;e.exports=(t=Ir(),function(){var e=t,n=e.lib.WordArray;function r(e,t,r){for(var i=[],s=0,u=0;u<t;u++)if(u%4){var o=r[e.charCodeAt(u-1)]<<u%4*2|r[e.charCodeAt(u)]>>>6-u%4*2;i[s>>>2]|=o<<24-s%4*8,s++}return n.create(i,s)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],s=0;s<n;s+=3)for(var u=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,o=0;o<4&&s+.75*o<n;o++)i.push(r.charAt(u>>>6*(3-o)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e){var t=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<n.length;s++)i[n.charCodeAt(s)]=s}var u=n.charAt(64);if(u){var o=e.indexOf(u);-1!==o&&(t=o)}return r(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),t.enc.Base64)}(pr);var fr=$n(pr.exports);function Lr(e){if(!Ot(e))return"";let t=Cr.parse(e);return fr.stringify(t)}function hr(e,t){return!!Pt(e)&&(!(!Ot(t)&&!an(t))&&t in e)}function br(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)}function Ar(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function Nr(e){return"[object Uint16Array]"===Object.prototype.toString.call(e)}function xr(e){if(!(br(e)||(t=e,"[object Blob]"===Object.prototype.toString.call(t))||Ar(e)||Nr(e)))return null;var t;try{if(e.byteLength)return e.byteLength}catch(e){}try{if(e.length)return e.length}catch(e){}try{if(e.size)return e.size}catch(e){}return null}function Er(e){if(!Ot(e))return new Uint8Array;let t;try{t=function(e){if(!Rt(e))return new Uint8Array;let t=fr.parse(e),n=t.words,r=t.sigBytes,i=new Uint8Array(r);for(let e=0;e<r;e++){let t=n[e>>>2]>>>24-e%4*8&255;i[e]=t}return i}(Lr(e))}catch(e){return new Uint8Array}return t}function Tr(e,t,n=0,r=!0,i=52,s=8){return function(e,t,n,r,i,s){if(!an(e))return null;if(!Ar(t))return null;if(!Dn(n))return null;if(!ur(r))return null;if(!Dn(i))return null;if(!Dn(s))return null;let u,o,c;e=dn(e);let l=8*s-i-1,a=(1<<l)-1,d=a>>1,D=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,M=r?s-1:0,w=r?-1:1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,u=a):(u=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-u))<1&&(u--,c*=2),(e+=u+d>=1?D/c:D*Math.pow(2,1-d))*c>=2&&(u++,c/=2),u+d>=a?(o=0,u=a):u+d>=1?(o=(e*c-1)*Math.pow(2,i),u+=d):(o=e*Math.pow(2,d-1)*Math.pow(2,i),u=0));i>=8;t[n+M]=255&o,M+=w,o/=256,i-=8);for(u=u<<i|o,l+=i;l>0;t[n+M]=255&u,M+=w,u/=256,l-=8);return t[n+M-w]|=128*y,null}(e,t,n,r,i,s)}function Zr(e){let t=[],n=[];if(!hn(e)&&!Jt(e))return null;let r=[],i=[];function s(e){r.push(xr(e)),i.push(e)}try{let u=function(e){if(!Pt(e))return{results:"",binarys:[]};if(fn(e))return{results:"",binarys:[]};let t="",n=[];try{let r=-1;t=JSON.stringify(e,function(e,t){if(Ar(t)){r+=1;let e=`[Uint8Array]::${r}`;return n.push(t),e}if(Nr(t)){r+=1;let e=`[Uint16Array]::${r}`;return n.push(t),e}if(br(t)){r+=1;let e=`[ArrayBuffer]::${r}`;return n.push(t),e}return vn(t)&&(t=t.toString()),t})}catch(e){}return{results:t,binarys:n}}(e);s(Er(u.results)),Jn(u.binarys,e=>{s(e)});let o=r,c=Er(JSON.stringify(o)),l=new Uint8Array(8);Tr(xr(c),l),t.push(l),t.push(c),Jn(i,e=>{t.push(e)}),Jn(t,e=>{n=function(e,t){let n=xr(e),r=xr(t),i=new Uint8Array(n+r);return i.set(new Uint8Array(e),0),i.set(new Uint8Array(t),n),i}(n,e)})}catch(e){return null}return n}function vr(e,t=0,n=!0,r=52,i=8){return function(e,t,n,r,i){if(!Ar(e))return null;if(!Dn(t))return null;if(!ur(n))return null;if(!Dn(r))return null;if(!Dn(i))return null;let s,u,o=8*i-r-1,c=(1<<o)-1,l=c>>1,a=-7,d=n?0:i-1,D=n?1:-1,M=e[t+d];for(d+=D,s=M&(1<<-a)-1,M>>=-a,a+=o;a>0;s=256*s+e[t+d],d+=D,a-=8);for(u=s&(1<<-a)-1,s>>=-a,a+=r;a>0;u=256*u+e[t+d],d+=D,a-=8);if(0===s)s=1-l;else{if(s===c)return u?NaN:1/0*(M?-1:1);u+=Math.pow(2,r),s-=l}return(M?-1:1)*u*Math.pow(2,s-r)}(e,t,n,r,i)}var Xr={exports:{}};!function(e){var t;e.exports=(t=Ir(),function(){if("function"==typeof ArrayBuffer){var e=t.lib.WordArray,n=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var t=e.byteLength,r=[],i=0;i<t;i++)r[i>>>2]|=e[i]<<24-i%4*8;n.call(this,r,t)}else n.apply(this,arguments)};r.prototype=e}}(),t.lib.WordArray)}(Xr);var Sr=$n(Xr.exports);function Yr(e){if(!Ar(e))return"";let t;try{n=function(e){return Ar(e)?Sr.create(e).toString(fr):""}(e),t=Ot(n)?fr.parse(n).toString(Cr):""}catch(e){return""}var n;return t}function Gr(e){let t=null;if(!Ar(e))return null;try{let n=8,r=e.slice(0,n),i=e.slice(n,xr(e)),s=vr(r),u=i.slice(0,s),o=i.slice(s,xr(i)),c=Yr(u),l=function(e,t){let n=0,r=0,i=[];return Jn(t,t=>{r=n+t;let s=e.slice(n,r);n=r,i.push(s)}),i}(o,JSON.parse(c));t=function(e){if(!Jt(e))return{};let{results:t,binarys:n}=e;if(!Ot(t))return{};if(!Cn(n))return{};let r={};try{r=JSON.parse(t,function(e,t){if(Ot(t)){if(t.indexOf("[Uint8Array]::")>=0){let e=gn(t.replace("[Uint8Array]::",""));return n[e]}if(t.indexOf("[Uint16Array]::")>=0){let e=gn(t.replace("[Uint16Array]::",""));return n[e]}if(t.indexOf("[ArrayBuffer]::")>=0){let e=gn(t.replace("[ArrayBuffer]::",""));return n[e]}}return t})}catch(e){}return r}({results:Yr(l.shift()),binarys:l})}catch(e){}return t}function jr(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(i);++r<i;)s[r]=e[r+t];return s}function Fr(e){return e!=e}function Kr(e,t,n){return t==t?function(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}(e,t,n):function(e,t,n,r){for(var i=e.length,s=n+(r?1:-1);r?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,Fr,n)}var zr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Wr(e){return zr.test(e)}var Br="\\ud800-\\udfff",Vr="["+Br+"]",Hr="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ur="\\ud83c[\\udffb-\\udfff]",kr="[^"+Br+"]",Qr="(?:\\ud83c[\\udde6-\\uddff]){2}",Pr="[\\ud800-\\udbff][\\udc00-\\udfff]",Jr="(?:"+Hr+"|"+Ur+")"+"?",Rr="[\\ufe0e\\ufe0f]?",Or=Rr+Jr+("(?:\\u200d(?:"+[kr,Qr,Pr].join("|")+")"+Rr+Jr+")*"),_r="(?:"+[kr+Hr+"?",Hr,Qr,Pr,Vr].join("|")+")",$r=RegExp(Ur+"(?="+Ur+")|"+_r+Or,"g");function qr(e){return Wr(e)?function(e){return e.match($r)||[]}(e):function(e){return e.split("")}(e)}function ei(e,t,n){if((e=ce(e))&&(n||void 0===t))return qt(e);if(!e||!(t=oe(t)))return e;var r=qr(e),i=qr(t),s=function(e,t){for(var n=-1,r=e.length;++n<r&&Kr(t,e[n],0)>-1;);return n}(r,i),u=function(e,t){for(var n=e.length;n--&&Kr(t,e[n],0)>-1;);return n}(r,i)+1;return function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:jr(e,t,n)}(r,s,u).join("")}function ti(e,t){if(!Ot(e))return[];if(!Ot(t))return[];let n=function(e,t){return Ot(e)&&Ot(t)?e.split(t):[]}(e,t);n=kt(n,ei);let r=[];return Jn(n,function(e){Ot(e)&&r.push(e)}),r}function ni(e){return function(e,t={}){let n=De(t,"fs");if(!Bn(e,{fs:n}))return{success:"file does not exist: "+e};if(!Un(e,{fs:n}))return{error:"input path is not a file: "+e};try{n.unlinkSync(e)}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:t})}var ri={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxmPWEudG9TdHJpbmcscz11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQscyksZT10W3NdO3RyeXt0W3NdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Zi5jYWxsKHQpO3JldHVybiBuJiYocj90W3NdPWU6ZGVsZXRlIHRbc10pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgTz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsUz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQsUj1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSx6PSgkPS9bXi5dKyQvLmV4ZWMoUiYmUi5rZXlzJiZSLmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB4PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxBPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1BLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQseiYmeiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PVN8fHI9PW18fHI9PU98fHI9PXd9KHQpP0U6RjtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4geC5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gZnQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gc3QodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbZnQocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBPdD1OYU4sU3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24gUnQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIE90O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6U3QudGVzdCh0KT9PdDordH12YXIgenQ9MS8wLHh0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBGdCh0KXtyZXR1cm4gdD8odD1SdCh0KSk9PT16dHx8dD09PS16dD8odDwwPy0xOjEpKnh0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBBdCh0KXt2YXIgcj1GdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEZ0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09QXQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9UnQodCksKGU9bnVsbD09ZT8wOkN0KEF0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfWZ1bmN0aW9uIFd0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKSxuPSExO3RyeXtlLnN0YXRTeW5jKHQpLG49ITB9Y2F0Y2h7bj0hMX1yZXR1cm4gbn1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoIVd0KHQse2ZzOmV9KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPXN0KHIsImZzIik7cmV0dXJuISFXdCh0LHtmczplfSkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEp0KHQscj17fSl7bGV0IGU9c3QociwiZnMiKTtpZighV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFIdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gS3QodCxyLGU9e30pe2xldCBuPSIiLG89c3QoZSwiZnMiKTtpZighcHQoaT10KXx8MD09PWkubGVuZ3RofHwxPT09aS5sZW5ndGgmJl90KGlbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciBpO2xldCB1PWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPUd0KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH0ociksYT1zdChlLCJmbk91dCIsIiIpO2R0KGEpfHwoYT1HdChyKSksQnQodSx7ZnM6b30pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPXN0KHIsImZzIik7aWYoQnQodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoV3QodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0odSx7ZnM6b30pO2xldCBjPWx0KCk7dHJ5e2xldCBlPW8uY3JlYXRlV3JpdGVTdHJlYW0ocik7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2xldCBpPXRbcl07aWYoIUh0KGkse2ZzOm99KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtpfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPW8uY3JlYXRlUmVhZFN0cmVhbShpKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bj1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntKdChpLHtmczpvfSksdC5yZXNvbHZlKCl9KSksci5waXBlKGUse2VuZDohMX0pLHR9O2F3YWl0IHUoKX1lLmVuZCgpLGUub24oImVycm9yIiwodD0+e249dC5tZXNzYWdlLGMucmVqZWN0KG4pfSkpLGUub24oImZpbmlzaCIsKCgpPT57bGV0IHQ9e2ZpbGVuYW1lOmEscGF0aDpyfTtjLnJlc29sdmUodCl9KSl9Y2F0Y2godCl7bj10Lm1lc3NhZ2UsYy5yZWplY3Qobil9cmV0dXJuIGN9bGV0IG1lcmdlU2xpY2VzPWFzeW5jKGUsbixvKT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBuPXQucmVzb2x2ZShvLGAke2V9XyR7cn1gKTtpLnB1c2gobil9bGV0IHU9dC5yZXNvbHZlKG8sZSksYT1hd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsbj17fSl7cmV0dXJuIEt0KHQsZSx7ZnM6ciwuLi5ufSl9KGksdSk7cmV0dXJuIHIud3JpdGVGaWxlU3luYyhgJHt1fS5kb25lYCwiIiwidXRmOCIpLGF9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VTbGljZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VTbGljZXMKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAKICAgICAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICAgICAgbW9kZTogJ2VtaXQnLAogICAgICAgICAgICAgICAgZXZOYW1lOiAnZXJyb3InLAogICAgICAgICAgICAgICAgbXNnOiBlcnIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgICAgICB9CiAgICAgICAgICAgIAogICAgfQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgPT09ICdjYWxsJyl7CiAgICAgICAgbGV0IHN0YXRlID0gJycKICAgICAgICBsZXQgbXNnID0gbnVsbAoKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL2Z1bgogICAgICAgICAgICBsZXQgZnVuID0gaW5zdGFuY2VbZGF0YS5mdW5dCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKCiAgICAgICAgICAgIC8vZXhlYwogICAgICAgICAgICBhd2FpdCBmdW4oLi4uaW5wdXQpCiAgICAgICAgICAgICAgICAudGhlbigoc3VjKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J3N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgbXNnPXN1YwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3RhdGU9J2Vycm9yJwogICAgICAgICAgICAgICAgICAgIG1zZz1lcnIKICAgICAgICAgICAgICAgIH0pCgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgICAgICBzdGF0ZSA9ICdlcnJvcicKICAgICAgICAgICAgbXNnID0gZXJyCiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICBsZXQgcmVzID0gewogICAgICAgICAgICBtb2RlOiAncmV0dXJuJywKICAgICAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIGZ1bjogZGF0YS5mdW4sCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBtc2csCiAgICAgICAgfQogICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICB9Cgp9CgpmdW5jdGlvbiByZWN2TWVzc2FnZShkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJlY3Y6JywgZGF0YSkKCiAgICAvL2RhdGFSZWN2CiAgICBsZXQgZGF0YVJlY3YgPSBkYXRhCgogICAgLy9ydW4KICAgIHJ1bihkYXRhUmVjdikKCn0KCgogICAgICAgIHBhcmVudFBvcnQub24oJ21lc3NhZ2UnLCByZWN2TWVzc2FnZSkKICAgICAgICAKCnRyeXsKICAgIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5oYW5kbGVkUmVqZWN0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIGVycikKICAgIH0pCn0KY2F0Y2goZXJyKXt9Cgo=",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){u(e)}}(t);if(!i)return u("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function u(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",u),i.on("exit",e=>{1!==e&&u("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):u("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(ri);var ii=$n(ri.exports);let si=(e,t,n)=>{let r=`${function(){if(!Sn(tr))throw new Error("invalid dayjs");return tr().format("YYYYMMDDHHmmss")}()}|${sr(6)}|${e}`;return setTimeout(()=>{ii(e,t,n).catch(e=>{console.log(e)})},1),r},ui=(t,n)=>{let r="";if(!Ot(t))return r=`invalid id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let i=De(ti(t,"|"),2,"");if(!Ot(i))return r=`can not find fileHash in id[${t}]`,console.log(r),{state:"error",msg:r,path:""};let s=e.resolve(n,i),u=e.resolve(n,`${i}.done`),o=kn(s),c=kn(u),l=o&&c;return!o&&c&&ni(u),{state:l?"success":"merging",msg:"",path:s}};var oi={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG4mJiExIT09ZSh0W3JdLHIsdCk7KTtyZXR1cm4gdH12YXIgbixvPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG89LTEsdT1PYmplY3QodCksaT1yKHQpLGE9aS5sZW5ndGg7YS0tOyl7dmFyIGM9aVtuP2E6KytvXTtpZighMT09PWUodVtjXSxjLHUpKWJyZWFrfXJldHVybiB0fTt2YXIgdT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsaT0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGE9dXx8aXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxjPWEuU3ltYm9sLGY9T2JqZWN0LnByb3RvdHlwZSxzPWYuaGFzT3duUHJvcGVydHksbD1mLnRvU3RyaW5nLHA9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciB2PSJbb2JqZWN0IE51bGxdIix5PSJbb2JqZWN0IFVuZGVmaW5lZF0iLGQ9Yz9jLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/eTp2OmQmJmQgaW4gT2JqZWN0KHQpP2Z1bmN0aW9uKHQpe3ZhciBlPXMuY2FsbCh0LHApLHI9dFtwXTt0cnl7dFtwXT12b2lkIDA7dmFyIG49ITB9Y2F0Y2godCl7fXZhciBvPWwuY2FsbCh0KTtyZXR1cm4gbiYmKGU/dFtwXT1yOmRlbGV0ZSB0W3BdKSxvfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gaC5jYWxsKHQpfSh0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZyh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PWIodCl9dmFyIGo9T2JqZWN0LnByb3RvdHlwZSx3PWouaGFzT3duUHJvcGVydHksbT1qLnByb3BlcnR5SXNFbnVtZXJhYmxlLE89XyhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP186ZnVuY3Rpb24odCl7cmV0dXJuIGcodCkmJncuY2FsbCh0LCJjYWxsZWUiKSYmIW0uY2FsbCh0LCJjYWxsZWUiKX0sUz1BcnJheS5pc0FycmF5O3ZhciBBPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsej1BJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUseD16JiZ6LmV4cG9ydHM9PT1BP2EuQnVmZmVyOnZvaWQgMCxFPSh4P3guaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24oKXtyZXR1cm4hMX0saz05MDA3MTk5MjU0NzQwOTkxLEY9L14oPzowfFsxLTldXGQqKSQvO2Z1bmN0aW9uICQodCxlKXt2YXIgcj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/azplKSYmKCJudW1iZXIiPT1yfHwic3ltYm9sIiE9ciYmRi50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9dmFyIFA9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBMKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD1QfXZhciBJPXt9O0lbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPUlbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPUlbIltvYmplY3QgSW50OEFycmF5XSJdPUlbIltvYmplY3QgSW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IEludDMyQXJyYXldIl09SVsiW29iamVjdCBVaW50OEFycmF5XSJdPUlbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09SVsiW29iamVjdCBVaW50MTZBcnJheV0iXT1JWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLElbIltvYmplY3QgQXJndW1lbnRzXSJdPUlbIltvYmplY3QgQXJyYXldIl09SVsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1JWyJbb2JqZWN0IEJvb2xlYW5dIl09SVsiW29iamVjdCBEYXRhVmlld10iXT1JWyJbb2JqZWN0IERhdGVdIl09SVsiW29iamVjdCBFcnJvcl0iXT1JWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPUlbIltvYmplY3QgTWFwXSJdPUlbIltvYmplY3QgTnVtYmVyXSJdPUlbIltvYmplY3QgT2JqZWN0XSJdPUlbIltvYmplY3QgUmVnRXhwXSJdPUlbIltvYmplY3QgU2V0XSJdPUlbIltvYmplY3QgU3RyaW5nXSJdPUlbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgTSxUPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsUj1UJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsVT1SJiZSLmV4cG9ydHM9PT1UJiZ1LnByb2Nlc3MsTj1mdW5jdGlvbigpe3RyeXt2YXIgdD1SJiZSLnJlcXVpcmUmJlIucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiB0fHxVJiZVLmJpbmRpbmcmJlUuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KCksRD1OJiZOLmlzVHlwZWRBcnJheSxCPUQ/KE09RCxmdW5jdGlvbih0KXtyZXR1cm4gTSh0KX0pOmZ1bmN0aW9uKHQpe3JldHVybiBnKHQpJiZMKHQubGVuZ3RoKSYmISFJW2IodCldfSxDPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gVyh0LGUpe3ZhciByPVModCksbj0hciYmTyh0KSxvPSFyJiYhbiYmRSh0KSx1PSFyJiYhbiYmIW8mJkIodCksaT1yfHxufHxvfHx1LGE9aT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPUFycmF5KHQpOysrcjx0OyluW3JdPWUocik7cmV0dXJuIG59KHQubGVuZ3RoLFN0cmluZyk6W10sYz1hLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkhZSYmIUMuY2FsbCh0LGYpfHxpJiYoImxlbmd0aCI9PWZ8fG8mJigib2Zmc2V0Ij09Znx8InBhcmVudCI9PWYpfHx1JiYoImJ1ZmZlciI9PWZ8fCJieXRlTGVuZ3RoIj09Znx8ImJ5dGVPZmZzZXQiPT1mKXx8JChmLGMpKXx8YS5wdXNoKGYpO3JldHVybiBhfXZhciBxPU9iamVjdC5wcm90b3R5cGU7dmFyIFY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoZShyKSl9fShPYmplY3Qua2V5cyxPYmplY3QpLEc9VixIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSih0KXtpZihyPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHxxKSlyZXR1cm4gRyh0KTt2YXIgZSxyLG49W107Zm9yKHZhciBvIGluIE9iamVjdCh0KSlILmNhbGwodCxvKSYmImNvbnN0cnVjdG9yIiE9byYmbi5wdXNoKG8pO3JldHVybiBufWZ1bmN0aW9uIEsodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFE9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLFg9IltvYmplY3QgRnVuY3Rpb25dIixZPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsWj0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHR0KHQpe2lmKCFLKHQpKXJldHVybiExO3ZhciBlPWIodCk7cmV0dXJuIGU9PVh8fGU9PVl8fGU9PVF8fGU9PVp9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIG51bGwhPXQmJkwodC5sZW5ndGgpJiYhdHQodCl9ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGV0KHQpP1codCk6Sih0KX12YXIgbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihudWxsPT1yKXJldHVybiByO2lmKCFldChyKSlyZXR1cm4gdChyLG4pO2Zvcih2YXIgbz1yLmxlbmd0aCx1PWU/bzotMSxpPU9iamVjdChyKTsoZT91LS06Kyt1PG8pJiYhMSE9PW4oaVt1XSx1LGkpOyk7cmV0dXJuIHJ9fSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmbyh0LGUscnQpfSkpLG90PW50O2Z1bmN0aW9uIHV0KHQpe3JldHVybiB0fWZ1bmN0aW9uIGl0KHQsZSl7dmFyIG47cmV0dXJuKFModCk/cjpvdCkodCwiZnVuY3Rpb24iPT10eXBlb2Yobj1lKT9uOnV0KX12YXIgYXQsY3Q9YVsiX19jb3JlLWpzX3NoYXJlZF9fIl0sZnQ9KGF0PS9bXi5dKyQvLmV4ZWMoY3QmJmN0LmtleXMmJmN0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIithdDoiIjt2YXIgc3Q9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGx0KHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gc3QuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9dmFyIHB0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGh0PUZ1bmN0aW9uLnByb3RvdHlwZSx2dD1PYmplY3QucHJvdG90eXBlLHl0PWh0LnRvU3RyaW5nLGR0PXZ0Lmhhc093blByb3BlcnR5LGJ0PVJlZ0V4cCgiXiIreXQuY2FsbChkdCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gZ3QodCl7cmV0dXJuISghSyh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuISFmdCYmZnQgaW4gdH0odCkpJiYodHQodCk/YnQ6cHQpLnRlc3QobHQodCkpfWZ1bmN0aW9uIF90KHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX0odCxlKTtyZXR1cm4gZ3Qocik/cjp2b2lkIDB9dmFyIGp0PV90KGEsIkRhdGFWaWV3Iiksd3Q9X3QoYSwiTWFwIiksbXQ9X3QoYSwiUHJvbWlzZSIpLE90PV90KGEsIlNldCIpLFN0PV90KGEsIldlYWtNYXAiKSxBdD0iW29iamVjdCBNYXBdIix6dD0iW29iamVjdCBQcm9taXNlXSIseHQ9IltvYmplY3QgU2V0XSIsRXQ9IltvYmplY3QgV2Vha01hcF0iLGt0PSJbb2JqZWN0IERhdGFWaWV3XSIsRnQ9bHQoanQpLCR0PWx0KHd0KSxQdD1sdChtdCksTHQ9bHQoT3QpLEl0PWx0KFN0KSxNdD1iOyhqdCYmTXQobmV3IGp0KG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1rdHx8d3QmJk10KG5ldyB3dCkhPUF0fHxtdCYmTXQobXQucmVzb2x2ZSgpKSE9enR8fE90JiZNdChuZXcgT3QpIT14dHx8U3QmJk10KG5ldyBTdCkhPUV0KSYmKE10PWZ1bmN0aW9uKHQpe3ZhciBlPWIodCkscj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPXI/bHQocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBGdDpyZXR1cm4ga3Q7Y2FzZSAkdDpyZXR1cm4gQXQ7Y2FzZSBQdDpyZXR1cm4genQ7Y2FzZSBMdDpyZXR1cm4geHQ7Y2FzZSBJdDpyZXR1cm4gRXR9cmV0dXJuIGV9KTt2YXIgVHQ9TXQsUnQ9IltvYmplY3QgU3RyaW5nXSI7ZnVuY3Rpb24gVXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplW3RdfX12YXIgTnQ9VXQoImxlbmd0aCIpLER0PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTtmdW5jdGlvbiBCdCh0KXtyZXR1cm4gRHQudGVzdCh0KX12YXIgQ3Q9IlxcdWQ4MDAtXFx1ZGZmZiIsV3Q9IlsiK0N0KyJdIixxdD0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLFZ0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEd0PSJbXiIrQ3QrIl0iLEh0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixKdD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsS3Q9Iig/OiIrcXQrInwiK1Z0KyIpIisiPyIsUXQ9IltcXHVmZTBlXFx1ZmUwZl0/IixYdD1RdCtLdCsoIig/OlxcdTIwMGQoPzoiK1tHdCxIdCxKdF0uam9pbigifCIpKyIpIitRdCtLdCsiKSoiKSxZdD0iKD86IitbR3QrcXQrIj8iLHF0LEh0LEp0LFd0XS5qb2luKCJ8IikrIikiLFp0PVJlZ0V4cChWdCsiKD89IitWdCsiKXwiK1l0K1h0LCJnIik7ZnVuY3Rpb24gdGUodCl7cmV0dXJuIEJ0KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1adC5sYXN0SW5kZXg9MDtadC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOk50KHQpfWZ1bmN0aW9uIGVlKHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYoZXQodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhUyhlKSYmZyhlKSYmYihlKT09UnQ/dGUodCk6dC5sZW5ndGg7dmFyIGUscj1UdCh0KTtyZXR1cm4iW29iamVjdCBNYXBdIj09cnx8IltvYmplY3QgU2V0XSI9PXI/dC5zaXplOkoodCkubGVuZ3RofWZ1bmN0aW9uIHJlKHQsZSl7Zm9yKHZhciByPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytyPG47KW9bcl09ZSh0W3JdLHIsdCk7cmV0dXJuIG99ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gdD09PWV8fHQhPXQmJmUhPWV9ZnVuY3Rpb24gb2UodCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZihuZSh0W3JdWzBdLGUpKXJldHVybiByO3JldHVybi0xfXZhciB1ZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIGllKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWllLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LGllLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxyPW9lKGUsdCk7cmV0dXJuIShyPDApJiYocj09ZS5sZW5ndGgtMT9lLnBvcCgpOnVlLmNhbGwoZSxyLDEpLC0tdGhpcy5zaXplLCEwKX0saWUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9b2UoZSx0KTtyZXR1cm4gcjwwP3ZvaWQgMDplW3JdWzFdfSxpZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBvZSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxpZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXyxuPW9lKHIsdCk7cmV0dXJuIG48MD8oKyt0aGlzLnNpemUsci5wdXNoKFt0LGVdKSk6cltuXVsxXT1lLHRoaXN9O3ZhciBhZT1fdChPYmplY3QsImNyZWF0ZSIpO3ZhciBjZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBmZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHNlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgbj10W2VdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIGxlKHQsZSl7dmFyIHIsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2Yocj1lKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09cjpudWxsPT09cik/b1sic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBwZSh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1zZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWFlP2FlKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxzZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxzZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoYWUpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gY2UuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxzZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGFlP3ZvaWQgMCE9PWVbdF06ZmUuY2FsbChlLHQpfSxzZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1hZSYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfSxwZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBzZSxtYXA6bmV3KHd0fHxpZSksc3RyaW5nOm5ldyBzZX19LHBlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9bGUodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0scGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbGUodGhpcyx0KS5nZXQodCl9LHBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIGxlKHRoaXMsdCkuaGFzKHQpfSxwZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bGUodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307ZnVuY3Rpb24gaGUodCl7dmFyIGU9dGhpcy5fX2RhdGFfXz1uZXcgaWUodCk7dGhpcy5zaXplPWUuc2l6ZX1oZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBpZSx0aGlzLnNpemU9MH0saGUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUscn0saGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9LGhlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgaWUpe3ZhciBuPXIuX19kYXRhX187aWYoIXd0fHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxlXSksdGhpcy5zaXplPSsrci5zaXplLHRoaXM7cj10aGlzLl9fZGF0YV9fPW5ldyBwZShuKX1yZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemU9ci5zaXplLHRoaXN9O2Z1bmN0aW9uIHZlKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBwZTsrK2U8cjspdGhpcy5hZGQodFtlXSl9ZnVuY3Rpb24geWUodCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytyPG47KWlmKGUodFtyXSxyLHQpKXJldHVybiEwO3JldHVybiExfXZlLnByb3RvdHlwZS5hZGQ9dmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSx2ZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIGRlPTEsYmU9MjtmdW5jdGlvbiBnZSh0LGUscixuLG8sdSl7dmFyIGk9ciZkZSxhPXQubGVuZ3RoLGM9ZS5sZW5ndGg7aWYoYSE9YyYmIShpJiZjPmEpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLHM9dS5nZXQoZSk7aWYoZiYmcylyZXR1cm4gZj09ZSYmcz09dDt2YXIgbD0tMSxwPSEwLGg9ciZiZT9uZXcgdmU6dm9pZCAwO2Zvcih1LnNldCh0LGUpLHUuc2V0KGUsdCk7KytsPGE7KXt2YXIgdj10W2xdLHk9ZVtsXTtpZihuKXZhciBkPWk/bih5LHYsbCxlLHQsdSk6bih2LHksbCx0LGUsdSk7aWYodm9pZCAwIT09ZCl7aWYoZCljb250aW51ZTtwPSExO2JyZWFrfWlmKGgpe2lmKCF5ZShlLChmdW5jdGlvbih0LGUpe2lmKGk9ZSwhaC5oYXMoaSkmJih2PT09dHx8byh2LHQscixuLHUpKSlyZXR1cm4gaC5wdXNoKGUpO3ZhciBpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKHYhPT15JiYhbyh2LHkscixuLHUpKXtwPSExO2JyZWFrfX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSkscH12YXIgX2U9YS5VaW50OEFycmF5O2Z1bmN0aW9uIGplKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JbKytlXT1bbix0XX0pKSxyfWZ1bmN0aW9uIHdlKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyWysrZV09dH0pKSxyfXZhciBtZT0xLE9lPTIsU2U9IltvYmplY3QgQm9vbGVhbl0iLEFlPSJbb2JqZWN0IERhdGVdIix6ZT0iW29iamVjdCBFcnJvcl0iLHhlPSJbb2JqZWN0IE1hcF0iLEVlPSJbb2JqZWN0IE51bWJlcl0iLGtlPSJbb2JqZWN0IFJlZ0V4cF0iLEZlPSJbb2JqZWN0IFNldF0iLCRlPSJbb2JqZWN0IFN0cmluZ10iLFBlPSJbb2JqZWN0IFN5bWJvbF0iLExlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsSWU9IltvYmplY3QgRGF0YVZpZXddIixNZT1jP2MucHJvdG90eXBlOnZvaWQgMCxUZT1NZT9NZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBSZSh0LGUpe2Zvcih2YXIgcj0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPTAsdT1bXTsrK3I8bjspe3ZhciBpPXRbcl07ZShpLHIsdCkmJih1W28rK109aSl9cmV0dXJuIHV9dmFyIFVlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsTmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxEZT1OZT9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksUmUoTmUodCksKGZ1bmN0aW9uKGUpe3JldHVybiBVZS5jYWxsKHQsZSl9KSkpfTpmdW5jdGlvbigpe3JldHVybltdfTtmdW5jdGlvbiBCZSh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUodCk7cmV0dXJuIFModCk/bjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoLG89dC5sZW5ndGg7KytyPG47KXRbbytyXT1lW3JdO3JldHVybiB0fShuLHIodCkpfSh0LHJ0LERlKX12YXIgQ2U9MSxXZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxZT0xLFZlPSJbb2JqZWN0IEFyZ3VtZW50c10iLEdlPSJbb2JqZWN0IEFycmF5XSIsSGU9IltvYmplY3QgT2JqZWN0XSIsSmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBLZSh0LGUscixuLG8sdSl7dmFyIGk9Uyh0KSxhPVMoZSksYz1pP0dlOlR0KHQpLGY9YT9HZTpUdChlKSxzPShjPWM9PVZlP0hlOmMpPT1IZSxsPShmPWY9PVZlP0hlOmYpPT1IZSxwPWM9PWY7aWYocCYmRSh0KSl7aWYoIUUoZSkpcmV0dXJuITE7aT0hMCxzPSExfWlmKHAmJiFzKXJldHVybiB1fHwodT1uZXcgaGUpLGl8fEIodCk/Z2UodCxlLHIsbixvLHUpOmZ1bmN0aW9uKHQsZSxyLG4sbyx1LGkpe3N3aXRjaChyKXtjYXNlIEllOmlmKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPWUuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLGU9ZS5idWZmZXI7Y2FzZSBMZTpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhdShuZXcgX2UodCksbmV3IF9lKGUpKSk7Y2FzZSBTZTpjYXNlIEFlOmNhc2UgRWU6cmV0dXJuIG5lKCt0LCtlKTtjYXNlIHplOnJldHVybiB0Lm5hbWU9PWUubmFtZSYmdC5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSBrZTpjYXNlICRlOnJldHVybiB0PT1lKyIiO2Nhc2UgeGU6dmFyIGE9amU7Y2FzZSBGZTp2YXIgYz1uJm1lO2lmKGF8fChhPXdlKSx0LnNpemUhPWUuc2l6ZSYmIWMpcmV0dXJuITE7dmFyIGY9aS5nZXQodCk7aWYoZilyZXR1cm4gZj09ZTtufD1PZSxpLnNldCh0LGUpO3ZhciBzPWdlKGEodCksYShlKSxuLG8sdSxpKTtyZXR1cm4gaS5kZWxldGUodCkscztjYXNlIFBlOmlmKFRlKXJldHVybiBUZS5jYWxsKHQpPT1UZS5jYWxsKGUpfXJldHVybiExfSh0LGUsYyxyLG4sbyx1KTtpZighKHImcWUpKXt2YXIgaD1zJiZKZS5jYWxsKHQsIl9fd3JhcHBlZF9fIiksdj1sJiZKZS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoaHx8dil7dmFyIHk9aD90LnZhbHVlKCk6dCxkPXY/ZS52YWx1ZSgpOmU7cmV0dXJuIHV8fCh1PW5ldyBoZSksbyh5LGQscixuLHUpfX1yZXR1cm4hIXAmJih1fHwodT1uZXcgaGUpLGZ1bmN0aW9uKHQsZSxyLG4sbyx1KXt2YXIgaT1yJkNlLGE9QmUodCksYz1hLmxlbmd0aDtpZihjIT1CZShlKS5sZW5ndGgmJiFpKXJldHVybiExO2Zvcih2YXIgZj1jO2YtLTspe3ZhciBzPWFbZl07aWYoIShpP3MgaW4gZTpXZS5jYWxsKGUscykpKXJldHVybiExfXZhciBsPXUuZ2V0KHQpLHA9dS5nZXQoZSk7aWYobCYmcClyZXR1cm4gbD09ZSYmcD09dDt2YXIgaD0hMDt1LnNldCh0LGUpLHUuc2V0KGUsdCk7Zm9yKHZhciB2PWk7KytmPGM7KXt2YXIgeT10W3M9YVtmXV0sZD1lW3NdO2lmKG4pdmFyIGI9aT9uKGQseSxzLGUsdCx1KTpuKHksZCxzLHQsZSx1KTtpZighKHZvaWQgMD09PWI/eT09PWR8fG8oeSxkLHIsbix1KTpiKSl7aD0hMTticmVha312fHwodj0iY29uc3RydWN0b3IiPT1zKX1pZihoJiYhdil7dmFyIGc9dC5jb25zdHJ1Y3RvcixfPWUuY29uc3RydWN0b3I7Zz09X3x8ISgiY29uc3RydWN0b3IiaW4gdCl8fCEoImNvbnN0cnVjdG9yImluIGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZyYmZyBpbnN0YW5jZW9mIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBfJiZfIGluc3RhbmNlb2YgX3x8KGg9ITEpfXJldHVybiB1LmRlbGV0ZSh0KSx1LmRlbGV0ZShlKSxofSh0LGUscixuLG8sdSkpfWZ1bmN0aW9uIFFlKHQsZSxyLG4sbyl7cmV0dXJuIHQ9PT1lfHwobnVsbD09dHx8bnVsbD09ZXx8IWcodCkmJiFnKGUpP3QhPXQmJmUhPWU6S2UodCxlLHIsbixRZSxvKSl9dmFyIFhlPTEsWWU9MjtmdW5jdGlvbiBaZSh0KXtyZXR1cm4gdD09dCYmIUsodCl9ZnVuY3Rpb24gdHIodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIG51bGwhPXImJihyW3RdPT09ZSYmKHZvaWQgMCE9PWV8fHQgaW4gT2JqZWN0KHIpKSl9fWZ1bmN0aW9uIGVyKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1ydCh0KSxyPWUubGVuZ3RoO3ItLTspe3ZhciBuPWVbcl0sbz10W25dO2Vbcl09W24sbyxaZShvKV19cmV0dXJuIGV9KHQpO3JldHVybiAxPT1lLmxlbmd0aCYmZVswXVsyXT90cihlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKHIpe3JldHVybiByPT09dHx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89ci5sZW5ndGgsdT1vLGk9IW47aWYobnVsbD09dClyZXR1cm4hdTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGE9cltvXTtpZihpJiZhWzJdP2FbMV0hPT10W2FbMF1dOiEoYVswXWluIHQpKXJldHVybiExfWZvcig7KytvPHU7KXt2YXIgYz0oYT1yW29dKVswXSxmPXRbY10scz1hWzFdO2lmKGkmJmFbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBsPW5ldyBoZTtpZihuKXZhciBwPW4oZixzLGMsdCxlLGwpO2lmKCEodm9pZCAwPT09cD9RZShzLGYsWGV8WWUsbixsKTpwKSlyZXR1cm4hMX19cmV0dXJuITB9KHIsdCxlKX19dmFyIHJyPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIG5yKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8Zyh0KSYmYih0KT09cnJ9dmFyIG9yPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLHVyPS9eXHcqJC87ZnVuY3Rpb24gaXIodCxlKXtpZihTKHQpKXJldHVybiExO3ZhciByPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPXImJiJzeW1ib2wiIT1yJiYiYm9vbGVhbiIhPXImJm51bGwhPXQmJiFucih0KSl8fCh1ci50ZXN0KHQpfHwhb3IudGVzdCh0KXx8bnVsbCE9ZSYmdCBpbiBPYmplY3QoZSkpfXZhciBhcj0iRXhwZWN0ZWQgYSBmdW5jdGlvbiI7ZnVuY3Rpb24gY3IodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihhcik7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1lP2UuYXBwbHkodGhpcyxuKTpuWzBdLHU9ci5jYWNoZTtpZih1LmhhcyhvKSlyZXR1cm4gdS5nZXQobyk7dmFyIGk9dC5hcHBseSh0aGlzLG4pO3JldHVybiByLmNhY2hlPXUuc2V0KG8saSl8fHUsaX07cmV0dXJuIHIuY2FjaGU9bmV3KGNyLkNhY2hlfHxwZSkscn1jci5DYWNoZT1wZTt2YXIgZnI9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csc3I9L1xcKFxcKT8vZyxscj1mdW5jdGlvbih0KXt2YXIgZT1jcih0LChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09ci5zaXplJiZyLmNsZWFyKCksdH0pKSxyPWUuY2FjaGU7cmV0dXJuIGV9KChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJmUucHVzaCgiIiksdC5yZXBsYWNlKGZyLChmdW5jdGlvbih0LHIsbixvKXtlLnB1c2gobj9vLnJlcGxhY2Uoc3IsIiQxIik6cnx8dCl9KSksZX0pKSxwcj1scixocj0xLzAsdnI9Yz9jLnByb3RvdHlwZTp2b2lkIDAseXI9dnI/dnIudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIGRyKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihTKHQpKXJldHVybiByZSh0LGRyKSsiIjtpZihucih0KSlyZXR1cm4geXI/eXIuY2FsbCh0KToiIjt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0taHI/Ii0wIjplfWZ1bmN0aW9uIGJyKHQpe3JldHVybiBudWxsPT10PyIiOmRyKHQpfWZ1bmN0aW9uIGdyKHQsZSl7cmV0dXJuIFModCk/dDppcih0LGUpP1t0XTpwcihicih0KSl9dmFyIF9yPTEvMDtmdW5jdGlvbiBqcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fG5yKHQpKXJldHVybiB0O3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS1fcj8iLTAiOmV9ZnVuY3Rpb24gd3IodCxlKXtmb3IodmFyIHI9MCxuPShlPWdyKGUsdCkpLmxlbmd0aDtudWxsIT10JiZyPG47KXQ9dFtqcihlW3IrK10pXTtyZXR1cm4gciYmcj09bj90OnZvaWQgMH1mdW5jdGlvbiBtcih0LGUscil7dmFyIG49bnVsbD09dD92b2lkIDA6d3IodCxlKTtyZXR1cm4gdm9pZCAwPT09bj9yOm59ZnVuY3Rpb24gT3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZSBpbiBPYmplY3QodCl9ZnVuY3Rpb24gU3IodCxlKXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0tMSxvPShlPWdyKGUsdCkpLmxlbmd0aCx1PSExOysrbjxvOyl7dmFyIGk9anIoZVtuXSk7aWYoISh1PW51bGwhPXQmJnIodCxpKSkpYnJlYWs7dD10W2ldfXJldHVybiB1fHwrK24hPW8/dTohIShvPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJkwobykmJiQoaSxvKSYmKFModCl8fE8odCkpfSh0LGUsT3IpfXZhciBBcj0xLHpyPTI7ZnVuY3Rpb24geHIodCl7cmV0dXJuIGlyKHQpP1V0KGpyKHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdyKGUsdCl9fSh0KX1mdW5jdGlvbiBFcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/dXQ6Im9iamVjdCI9PXR5cGVvZiB0P1ModCk/ZnVuY3Rpb24odCxlKXtyZXR1cm4gaXIodCkmJlplKGUpP3RyKGpyKHQpLGUpOmZ1bmN0aW9uKHIpe3ZhciBuPW1yKHIsdCk7cmV0dXJuIHZvaWQgMD09PW4mJm49PT1lP1NyKHIsdCk6UWUoZSxuLEFyfHpyKX19KHRbMF0sdFsxXSk6ZXIodCk6eHIodCl9ZnVuY3Rpb24ga3IodCxlKXt2YXIgcj0tMSxuPWV0KHQpP0FycmF5KHQubGVuZ3RoKTpbXTtyZXR1cm4gb3QodCwoZnVuY3Rpb24odCxvLHUpe25bKytyXT1lKHQsbyx1KX0pKSxufWZ1bmN0aW9uIEZyKHQsZSl7cmV0dXJuKFModCk/cmU6a3IpKHQsRXIoZSkpfXZhciAkcj0vXHMvO3ZhciBQcj0vXlxzKy87ZnVuY3Rpb24gTHIodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJiRyLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UoUHIsIiIpOnR9ZnVuY3Rpb24gSXIodCxlLHIpe3ZhciBuPXQubGVuZ3RoO3JldHVybiByPXZvaWQgMD09PXI/bjpyLCFlJiZyPj1uP3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPS0xLG89dC5sZW5ndGg7ZTwwJiYoZT0tZT5vPzA6bytlKSwocj1yPm8/bzpyKTwwJiYocis9byksbz1lPnI/MDpyLWU+Pj4wLGU+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK2VdO3JldHVybiB1fSh0LGUscil9ZnVuY3Rpb24gTXIodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gVHIodCxlLHIpe3JldHVybiBlPT1lP2Z1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ci0xLG89dC5sZW5ndGg7KytuPG87KWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfSh0LGUscik6ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBvPXQubGVuZ3RoLHU9cisobj8xOi0xKTtuP3UtLTorK3U8bzspaWYoZSh0W3VdLHUsdCkpcmV0dXJuIHU7cmV0dXJuLTF9KHQsTXIscil9dmFyIFJyPSJcXHVkODAwLVxcdWRmZmYiLFVyPSJbIitScisiXSIsTnI9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIixEcj0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixCcj0iW14iK1JyKyJdIixDcj0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsV3I9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLHFyPSIoPzoiK05yKyJ8IitEcisiKSIrIj8iLFZyPSJbXFx1ZmUwZVxcdWZlMGZdPyIsR3I9VnIrcXIrKCIoPzpcXHUyMDBkKD86IitbQnIsQ3IsV3JdLmpvaW4oInwiKSsiKSIrVnIrcXIrIikqIiksSHI9Iig/OiIrW0JyK05yKyI/IixOcixDcixXcixVcl0uam9pbigifCIpKyIpIixKcj1SZWdFeHAoRHIrIig/PSIrRHIrIil8IitIcitHciwiZyIpO2Z1bmN0aW9uIEtyKHQpe3JldHVybiBCdCh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXRjaChKcil8fFtdfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gdC5zcGxpdCgiIil9KHQpfWZ1bmN0aW9uIFFyKHQsZSxyKXtpZigodD1icih0KSkmJihyfHx2b2lkIDA9PT1lKSlyZXR1cm4gTHIodCk7aWYoIXR8fCEoZT1kcihlKSkpcmV0dXJuIHQ7dmFyIG49S3IodCksbz1LcihlKSx1PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xLG49dC5sZW5ndGg7KytyPG4mJlRyKGUsdFtyXSwwKT4tMTspO3JldHVybiByfShuLG8pLGk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZUcihlLHRbcl0sMCk+LTE7KTtyZXR1cm4gcn0obixvKSsxO3JldHVybiBJcihuLHUsaSkuam9pbigiIil9ZnVuY3Rpb24gWHIodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIFlyKHQsZSl7aWYoIVhyKHQpKXJldHVybltdO2lmKCFYcihlKSlyZXR1cm5bXTtsZXQgcj1mdW5jdGlvbih0LGUpe3JldHVybiBYcih0KSYmWHIoZSk/dC5zcGxpdChlKTpbXX0odCxlKTtyPUZyKHIsUXIpO2xldCBuPVtdO3JldHVybiBpdChyLChmdW5jdGlvbih0KXtYcih0KSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gWnIodCl7bGV0IGU9ITE7aWYoWHIodCkpZT0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYoZnVuY3Rpb24odCl7cmV0dXJuIHQhPXR9KHQpKXJldHVybiExO2U9ITB9cmV0dXJuIGV9dmFyIHRuPU5hTixlbj0vXlstK10weFswLTlhLWZdKyQvaSxybj0vXjBiWzAxXSskL2ksbm49L14wb1swLTddKyQvaSxvbj1wYXJzZUludDtmdW5jdGlvbiB1bih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYobnIodCkpcmV0dXJuIHRuO2lmKEsodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PUsoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PUxyKHQpO3ZhciByPXJuLnRlc3QodCk7cmV0dXJuIHJ8fG5uLnRlc3QodCk/b24odC5zbGljZSgyKSxyPzI6OCk6ZW4udGVzdCh0KT90bjordH12YXIgYW49MS8wLGNuPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBmbih0KXtyZXR1cm4gdD8odD11bih0KSk9PT1hbnx8dD09PS1hbj8odDwwPy0xOjEpKmNuOnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBzbih0KXt2YXIgZT1mbih0KSxyPWUlMTtyZXR1cm4gZT09ZT9yP2UtcjplOjB9ZnVuY3Rpb24gbG4odCl7aWYoIVpyKHQpKXJldHVybiAwO3JldHVybiBmbih0KX1mdW5jdGlvbiBwbih0KXtyZXR1cm4hIVpyKHQpJiYodD1sbih0KSwibnVtYmVyIj09dHlwZW9mKGU9dCkmJmU9PXNuKGUpKTt2YXIgZX12YXIgaG49YS5pc0Zpbml0ZSx2bj1NYXRoLm1pbjt2YXIgeW49ZnVuY3Rpb24odCl7dmFyIGU9TWF0aFt0XTtyZXR1cm4gZnVuY3Rpb24odCxyKXtpZih0PXVuKHQpLChyPW51bGw9PXI/MDp2bihzbihyKSwyOTIpKSYmaG4odCkpe3ZhciBuPShicih0KSsiZSIpLnNwbGl0KCJlIik7cmV0dXJuKygobj0oYnIoZShuWzBdKyJlIisoK25bMV0rcikpKSsiZSIpLnNwbGl0KCJlIikpWzBdKyJlIisoK25bMV0tcikpfXJldHVybiBlKHQpfX0oInJvdW5kIiksZG49eW47ZnVuY3Rpb24gYm4odCl7aWYoIVpyKHQpKXJldHVybiAwO3Q9bG4odCk7bGV0IGU9ZG4odCk7cmV0dXJuIjAiPT09U3RyaW5nKGUpPzA6ZX1mdW5jdGlvbiBnbih0LGU9e30pe2xldCByPW1yKGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59ZnVuY3Rpb24gX24odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO3JldHVybiEhZ24odCx7ZnM6cn0pJiYoIXIubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFyLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBqbih0KXtyZXR1cm4gX24odCx7ZnM6ZX0pfWZ1bmN0aW9uIHduKHQsZSl7dmFyIHI9W107cmV0dXJuIG90KHQsKGZ1bmN0aW9uKHQsbixvKXtlKHQsbixvKSYmci5wdXNoKHQpfSkpLHJ9ZnVuY3Rpb24gbW4odCxlPXt9KXtsZXQgcj1tcihlLCJmcyIpO2lmKCFnbih0LHtmczpyfSkpcmV0dXJuITE7bGV0IG49ci5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gT24odCxlPTEscj17fSl7bGV0IG49MSxvPW1yKHIsInBhdGgiKSx1PW1yKHIsImZzIik7aWYoIW1uKHQse2ZzOnV9KSl0aHJvdyBuZXcgRXJyb3IoYGZkWyR7dH1dIGlzIG5vdCBhIGZvbGRlcmApO3ZhciBpO3JldHVybiBudWxsIT09ZSYmKHBuKGk9ZSkmJmJuKGkpPjApJiYoZT1ibihlKSk8MSYmKGU9MSksZnVuY3Rpb24gdChyKXtsZXQgaT1bXTtyZXR1cm4gbW4ocix7ZnM6dX0pPyhpdCh1LnJlYWRkaXJTeW5jKHIpLChmdW5jdGlvbihhKXtsZXQgYz1vLnJlc29sdmUocixhKSxmPW51bGw7dHJ5e2Y9dS5zdGF0U3luYyhjKX1jYXRjaCh0KXt9ZiYmZi5pc0RpcmVjdG9yeSgpPyhpLnB1c2goe2lzRm9sZGVyOiEwLGxldmVsOm4scGF0aDpjLG5hbWU6by5iYXNlbmFtZShjKX0pLG4rPTEsKG48PWV8fG51bGw9PT1lKSYmKGk9aS5jb25jYXQodChjKSkpLG4tPTEpOmkucHVzaCh7aXNGb2xkZXI6ITEsbGV2ZWw6bixwYXRoOmMsbmFtZTpvLmJhc2VuYW1lKGMpfSl9KSksaSk6aX0odCl9ZnVuY3Rpb24gU24odCxlPTEscj17fSl7bGV0IG49bXIociwicGF0aCIpLG89bXIociwiZnMiKTtpZighbW4odCx7ZnM6b30pKXRocm93IG5ldyBFcnJvcihgZmRbJHt0fV0gaXMgbm90IGEgZm9sZGVyYCk7bGV0IHU9W107dmFyIGksYTtyZXR1cm4gdT1Pbih0LGUse3BhdGg6bixmczpvfSksYT17aXNGb2xkZXI6ITF9LHU9KFMoaT11KT9SZTp3bikoaSxFcihhKSksdT1Gcih1LCh0PT4oZGVsZXRlIHQuaXNGb2xkZXIsdCkpKSx1fWNvbnN0IEFuPW5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDQ4LDgsOTYsMywxMjcsMTI3LDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI3LDAsOTYsMiwxMjcsMTI3LDAsOTYsMSwxMjcsMSwxMjcsOTYsMywxMjcsMTI3LDEyNiwxLDEyNiw5NiwzLDEyNiwxMjcsMTI3LDEsMTI2LDk2LDIsMTI3LDEyNiwwLDk2LDEsMTI3LDEsMTI2LDMsMTEsMTAsMCwwLDIsMSwzLDQsNSw2LDEsNyw1LDMsMSwwLDEsNyw4NSw5LDMsMTA5LDEwMSwxMDksMiwwLDUsMTIwLDEyMCwxMDQsNTEsNTAsMCwwLDYsMTA1LDExMCwxMDUsMTE2LDUxLDUwLDAsMiw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTEsNTAsMCwzLDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTEsNTAsMCw0LDUsMTIwLDEyMCwxMDQsNTQsNTIsMCw1LDYsMTA1LDExMCwxMDUsMTE2LDU0LDUyLDAsNyw4LDExNywxMTIsMTAwLDk3LDExNiwxMDEsNTQsNTIsMCw4LDgsMTAwLDEwNSwxMDMsMTAxLDExNSwxMTYsNTQsNTIsMCw5LDEwLDI1MSwyMiwxMCwyNDIsMSwxLDQsMTI3LDMyLDAsMzIsMSwxMDYsMzMsMywzMiwxLDY1LDE2LDc5LDQsMTI3LDMyLDMsNjUsMTYsMTA3LDMzLDYsMzIsMiw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsMzMsMywzMiwyLDY1LDEzNywyMzUsMjA4LDIwOCw3LDEwNywzMyw0LDMyLDIsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDMzLDUsMyw2NCwzMiwzLDMyLDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw0LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw0LDMyLDIsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsNSwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNSwzMiw2LDMyLDAsNjUsNCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjUsMTIsMTE5LDMyLDUsNjUsMTgsMTE5LDEwNiwzMiw0LDY1LDcsMTE5LDEwNiwzMiwzLDY1LDEsMTE5LDEwNiw1LDMyLDIsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA2LDExLDMyLDEsMTA2LDMyLDAsMzIsMSw2NSwxNSwxMTMsMTYsMSwxMSwxNDYsMSwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDEsNjUsNCwxMDYsMzIsMiw3NSw2OSw0LDY0LDMyLDAsMzIsMSw0MCwyLDAsNjUsMTg5LDIyMCwyMDIsMTQ5LDEyNCwxMDgsMTA2LDY1LDE3LDExOSw2NSwxNzUsMjE0LDIxMSwxOTAsMiwxMDgsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTIsMSwxMSwxMSwzLDY0LDMyLDEsMzIsMiw3OSw2OSw0LDY0LDMyLDAsMzIsMSw0NSwwLDAsNjUsMTc3LDIwNywyMTcsMTc4LDEsMTA4LDEwNiw2NSwxMSwxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMCwzMiwxLDY1LDEsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwwLDMyLDAsNjUsMTUsMTE4LDExNSw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwzNCwwLDY1LDEzLDExOCwzMiwwLDExNSw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwzNCwwLDY1LDE2LDExOCwzMiwwLDExNSwxMSw2MywwLDMyLDAsNjUsOCwxMDYsMzIsMSw2NSwxNjgsMTM2LDE0MSwxNjEsMiwxMDYsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDEsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDU0LDIsMCwzMiwwLDY1LDIwLDEwNiwzMiwxLDY1LDIwNywxNDAsMTYyLDE0Miw2LDEwNiw1NCwyLDAsMTEsMTk1LDQsMSw2LDEyNywzMiwxLDMyLDIsMTA2LDMzLDYsMzIsMCw2NSwyNCwxMDYsMzMsNCwzMiwwLDY1LDQwLDEwNiw0MCwyLDAsMzMsMywzMiwwLDMyLDAsNDAsMiwwLDMyLDIsMTA2LDU0LDIsMCwzMiwwLDY1LDQsMTA2LDM0LDUsMzIsNSw0MCwyLDAsMzIsMiw2NSwxNiw3OSwzMiwwLDQwLDIsMCw2NSwxNiw3OSwxMTQsMTE0LDU0LDIsMCwzMiwyLDMyLDMsMTA2LDY1LDE2LDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDE2LDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDQsMTA2LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsOCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSwxMiwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsNDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDMyLDYsNjUsMTYsMTA3LDc3LDQsNjQsMzIsNiw2NSwxNiwxMDcsMzMsOCwzMiwwLDY1LDgsMTA2LDQwLDIsMCwzMywyLDMyLDAsNjUsMTIsMTA2LDQwLDIsMCwzMywzLDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMyw1LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCwzMyw3LDMsNjQsMzIsMiwzMiwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDIsMzIsMywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMywzMiw1LDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDcsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDcsMzIsOCwzMiwxLDY1LDQsMTA2LDM0LDEsNzksMTMsMCwxMSwzMiwwLDY1LDgsMTA2LDMyLDIsNTQsMiwwLDMyLDAsNjUsMTIsMTA2LDMyLDMsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDUsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDcsNTQsMiwwLDExLDMyLDEsMzIsNiw3Myw0LDY0LDMyLDQsMzIsMSwzMiw2LDMyLDEsMTA3LDM0LDEsMjUyLDEwLDAsMCwzMiwwLDY1LDQwLDEwNiwzMiwxLDU0LDIsMCwxMSwxMSw5NywxLDEsMTI3LDMyLDAsNjUsMTYsMTA2LDQwLDIsMCwzMywxLDMyLDAsNjUsNCwxMDYsNDAsMiwwLDQsMTI3LDMyLDEsNjUsMTIsMTE5LDMyLDAsNjUsMjAsMTA2LDQwLDIsMCw2NSwxOCwxMTksMTA2LDMyLDAsNjUsMTIsMTA2LDQwLDIsMCw2NSw3LDExOSwxMDYsMzIsMCw2NSw4LDEwNiw0MCwyLDAsNjUsMSwxMTksMTA2LDUsMzIsMSw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMCw0MCwyLDAsMTA2LDMyLDAsNjUsMjQsMTA2LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwxNiwxLDExLDI1NSwzLDIsMywxMjYsMSwxMjcsMzIsMCwzMiwxLDEwNiwzMyw2LDMyLDEsNjUsMzIsNzksNCwxMjYsMzIsNiw2NSwzMiwxMDcsMzMsNiwzMiwyLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDMzLDMsMzIsMiw2NiwxNzcsMTY5LDE3MiwxOTMsMTczLDE4NCwyMTIsMTY2LDYxLDEyNSwzMyw0LDMyLDIsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDMsMzIsNCwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw0LDMyLDIsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMiwzMiw1LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDUsMzIsNiwzMiwwLDY1LDgsMTA2LDM0LDAsNzksMTMsMCwxMSwzMiwyLDY2LDEyLDEzNywzMiw1LDY2LDE4LDEzNywxMjQsMzIsNCw2Niw3LDEzNywxMjQsMzIsMyw2NiwxLDEzNywxMjQsMzIsMyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw0LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDIsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSw1LDMyLDIsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjQsMTEsMzIsMSwxNzMsMTI0LDMyLDAsMzIsMSw2NSwzMSwxMTMsMTYsNiwxMSwxMzQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMiwzLDY0LDMyLDIsMzIsMSw2NSw4LDEwNiw3OSw0LDY0LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMyLDAsMTMzLDY2LDI3LDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMzLDAsMzIsMSw2NSw4LDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMSw2NSw0LDEwNiwzMiwyLDc3LDQsNjQsMzIsMCwzMiwxLDUzLDIsMCw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwyMywxMzcsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjQsMzMsMCwzMiwxLDY1LDQsMTA2LDMzLDEsMTEsMyw2NCwzMiwxLDMyLDIsNzMsNCw2NCwzMiwwLDMyLDEsNDksMCwwLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI2LDEzMyw2NiwxMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NiwzMywxMzYsMTMzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDM0LDAsMzIsMCw2NiwyOSwxMzYsMTMzLDY2LDI0OSwyNDMsMjIxLDI0MSwxNTMsMjQ2LDE1MywxNzEsMjIsMTI2LDM0LDAsMzIsMCw2NiwzMiwxMzYsMTMzLDExLDc3LDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY2LDIxNCwyMzUsMTMwLDIzOCwyMzQsMjUzLDEzNywyNDUsMjI0LDAsMTI0LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiwxLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiwxLDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiwxLDY2LDI0OSwyMzQsMjA4LDIwOCwyMzEsMjAxLDE2MSwyMjgsMjI1LDAsMTI0LDU1LDMsMCwxMSwyNDQsNCwyLDMsMTI3LDQsMTI2LDMyLDEsMzIsMiwxMDYsMzMsNSwzMiwwLDY1LDQwLDEwNiwzMyw0LDMyLDAsNjUsMjAwLDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MSwzLDAsMzIsMiwxNzMsMTI0LDU1LDMsMCwzMiwyLDMyLDMsMTA2LDY1LDMyLDczLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDMyLDIsMjUyLDEwLDAsMCwzMiwwLDY1LDIwMCwwLDEwNiwzMiwyLDMyLDMsMTA2LDU0LDIsMCwxNSwxMSwzMiwzLDQsNjQsMzIsMywzMiw0LDEwNiwzMiwxLDY1LDMyLDMyLDMsMTA3LDM0LDIsMjUyLDEwLDAsMCwzMiwwLDY1LDgsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsOCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDY1LDE2LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMjQsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMjAwLDAsMTA2LDY1LDAsNTQsMiwwLDMyLDEsMzIsMiwxMDYsMzMsMSwxMSwzMiwxLDY1LDMyLDEwNiwzMiw1LDc3LDQsNjQsMzIsNSw2NSwzMiwxMDcsMzMsMiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzMyw2LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzMyw3LDMyLDAsNjUsMjQsMTA2LDQxLDMsMCwzMyw4LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzMyw5LDMsNjQsMzIsNiwzMiwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNiwzMiw3LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDcsMzIsOCwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw4LDMyLDksMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsOSwzMiwyLDMyLDEsNjUsOCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsNiw1NSwzLDAsMzIsMCw2NSwxNiwxMDYsMzIsNyw1NSwzLDAsMzIsMCw2NSwyNCwxMDYsMzIsOCw1NSwzLDAsMzIsMCw2NSwzMiwxMDYsMzIsOSw1NSwzLDAsMTEsMzIsMSwzMiw1LDczLDQsNjQsMzIsNCwzMiwxLDMyLDUsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDE4OCwyLDEsNSwxMjYsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDEsMzIsMCw0MSwzLDAsMzQsMiw2NiwzMiw5MCw0LDEyNiwzMiwwLDY1LDgsMTA2LDQxLDMsMCwzNCwzLDY2LDEsMTM3LDMyLDAsNjUsMTYsMTA2LDQxLDMsMCwzNCw0LDY2LDcsMTM3LDEyNCwzMiwxLDY2LDEyLDEzNywzMiwwLDY1LDMyLDEwNiw0MSwzLDAsMzQsNSw2NiwxOCwxMzcsMTI0LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMSw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMSw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwyLDEyNCwzMiwwLDY1LDQwLDEwNiwzMiwyLDY2LDMxLDEzMSwxNjcsMTYsNiwxMV0pO2FzeW5jIGZ1bmN0aW9uIHpuKHQsZT17fSl7bGV0IHI9bXIoZSwiZnMiKSxuPW1yKGUsImNodW5rU2l6ZSIpO2lmKFpyKG4pfHwobj02NzEwODg2NCksbj1sbihuKSwhX24odCx7ZnM6cn0pKXJldHVybiBQcm9taXNlLnJlamVjdCgiZnAgaXMgbm90IGEgZmlsZSIpO2xldCBvPWZ1bmN0aW9uKCl7bGV0IHQsZSxyPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLGU9YXJndW1lbnRzWzFdfSkpO3JldHVybiByLnJlc29sdmU9dCxyLnJlamVjdD1lLHJ9KCk7dHJ5e2xldHtjcmVhdGU2NDplfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6dSxkaWdlc3QzMjppLGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyx1KXtsKHQpO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KGkpLHIoMCxlKSxpLnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KGkpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9ZC5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLGkuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQoaSksdShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHY9Mm4qKjY0bi0xbjtmdW5jdGlvbiB5KHQpe3JldHVybiB0JnZ9Y29uc3QgZD1uZXcgVGV4dEVuY29kZXIsYj0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9Yil7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxkLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHkobigwLGQuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWIpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1iKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWIpPT5wKDQ4LHQsbyx1LGksaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCkseShuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix5KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShBbikpLmluc3RhbmNlKX0oKSx1PWUoKSxpPXIuY3JlYXRlUmVhZFN0cmVhbSh0LHtoaWdoV2F0ZXJNYXJrOm59KTtpLm9uKCJkYXRhIiwodD0+e3UudXBkYXRlKHQpfSkpLGkub24oImVuZCIsKCgpPT57bGV0IHQ9dS5kaWdlc3QoKS50b1N0cmluZygxNikucGFkU3RhcnQoMTYsIjAiKTtvLnJlc29sdmUodCl9KSksaS5vbigiZXJyb3IiLG8ucmVqZWN0KX1jYXRjaCh0KXtvLnJlamVjdCh0LnRvU3RyaW5nKCkpfXJldHVybiBvfWxldCBjaGVja1RvdGFsSGFzaD1hc3luYyhyLG4sbyx1KT0+e2xldCBpPXQucmVzb2x2ZSh1LG8pLGE9ITE7aWYoYT1qbihpKSwhWnIocikpe3JldHVybntlcnJvcjoiaW52YWxpZCBmaWxlU2l6ZSBpbiBwYXlsb2FkIn19bGV0IGM9ITE7aWYoYSl7bGV0IHQ9LTE7dHJ5e3Q9ZS5zdGF0U3luYyhpKS5zaXplfWNhdGNoKHQpe2NvbnNvbGUubG9nKCJjaGVjayB0b3RhbCBmaWxlIHNpemU6IGZzLnN0YXRTeW5jKHBhdGhGaWxlKSIsaSx0KX1jPXI9PT10fWxldCBmPSExO2EmJmMmJmF3YWl0IGZ1bmN0aW9uKHQscj17fSl7cmV0dXJuIHpuKHQse2ZzOmUsLi4ucn0pfShpKS50aGVuKCh0PT57Zj1vPT09dH0pKS5jYXRjaCgodD0+e2NvbnNvbGUubG9nKCJmc0lzRmlsZShwYXRoRmlsZSkiLGksam4oaSkpLGNvbnNvbGUubG9nKHQpLGY9ITF9KSk7bGV0IHM9W107aWYoIWYpe2l0KGZ1bmN0aW9uKHIsbj0xKXtyZXR1cm4gU24ocixuLHtwYXRoOnQsZnM6ZX0pfSh1KSwodD0+e2xldCByPXQubmFtZS5pbmRleE9mKGAke299X2ApPj0wLHU9ITE7dHJ5e3U9ZS5zdGF0U3luYyh0LnBhdGgpLnNpemU9PT1ufWNhdGNoKGUpe2NvbnNvbGUubG9nKCJjaGVjayBlYWNoIGZpbGUgc2l6ZTogZnMuc3RhdFN5bmMocGF0aEZpbGUpIix0LnBhdGgsZSl9aWYociYmdSl7bGV0IGU9WXIodC5uYW1lLGAke299X2ApLHI9KGE9bnVsbD09KGk9ZSk/MDppLmxlbmd0aCk/aVthLTFdOnZvaWQgMDtpZighZnVuY3Rpb24odCl7cmV0dXJuISFwbih0KSYmYm4odCk+PTB9KHIpKXRocm93IGNvbnNvbGUubG9nKCJ2Lm5hbWUiLHQubmFtZSksY29uc29sZS5sb2coInMiLGUpLG5ldyBFcnJvcihgY2FuIG5vdCBwYXJzZSBpbmRleCBpbiB2Lm5hbWVbJHt0Lm5hbWV9XWApO3I9Ym4ocikscy5wdXNoKHIpfXZhciBpLGF9KSl9bGV0IGw9ZWUocyk+MDtyZXR1cm57cGF0aDppLGJBbGxFeGlzdDphLGJBbGxTaXplOmMsYkFsbEhhc2g6ZixiU2xzOmwsc2xrczpzfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1RvdGFsSGFzaAogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBjaGVja1RvdGFsSGFzaAogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgcGFyZW50UG9ydC5vbignbWVzc2FnZScsIHJlY3ZNZXNzYWdlKQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){u(e)}}(t);if(!i)return u("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function u(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",u),i.on("exit",e=>{1!==e&&u("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):u("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(oi);var ci=$n(oi.exports),li={exports:{}};!function(e){var t,n;e.exports=(t=s,n={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,u){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new i(r,s||e,u),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,u=new Array(s);i<s;i++)u[i]=r[i].fn;return u},o.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,i,s,u){var o=n?n+e:e;if(!this._events[o])return!1;var c,l,a=this._events[o],d=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),d){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,t),!0;case 3:return a.fn.call(a.context,t,r),!0;case 4:return a.fn.call(a.context,t,r,i),!0;case 5:return a.fn.call(a.context,t,r,i,s),!0;case 6:return a.fn.call(a.context,t,r,i,s,u),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];a.fn.apply(a.context,c)}else{var D,M=a.length;for(l=0;l<M;l++)switch(a[l].once&&this.removeListener(e,a[l].fn,void 0,!0),d){case 1:a[l].fn.call(a[l].context);break;case 2:a[l].fn.call(a[l].context,t);break;case 3:a[l].fn.call(a[l].context,t,r);break;case 4:a[l].fn.call(a[l].context,t,r,i);break;default:if(!c)for(D=1,c=new Array(d-1);D<d;D++)c[D-1]=arguments[D];a[l].fn.apply(a[l].context,c)}}return!0},o.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},o.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},o.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return u(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||i&&!o.once||r&&o.context!==r||u(this,s);else{for(var c=0,l=[],a=o.length;c<a;c++)(o[c].fn!==t||i&&!o[c].once||r&&o[c].context!==r)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:u(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&u(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,e.exports=o}({get exports(){return t},set exports(e){t=e}});var n=t;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5XovYnora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5XovYnora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5XovYnora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIiksZT1yZXF1aXJlKCJmcyIpLHI9T2JqZWN0LnByb3RvdHlwZTt2YXIgbixvLGk9KG49T2JqZWN0LmtleXMsbz1PYmplY3QsZnVuY3Rpb24odCl7cmV0dXJuIG4obyh0KSl9KSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYSh0KXtpZihuPShlPXQpJiZlLmNvbnN0cnVjdG9yLGUhPT0oImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4ucHJvdG90eXBlfHxyKSlyZXR1cm4gaSh0KTt2YXIgZSxuLG89W107Zm9yKHZhciBhIGluIE9iamVjdCh0KSl1LmNhbGwodCxhKSYmImNvbnN0cnVjdG9yIiE9YSYmby5wdXNoKGEpO3JldHVybiBvfXZhciBjPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxmPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYscz1jfHxmfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGw9cy5TeW1ib2wscD1PYmplY3QucHJvdG90eXBlLGg9cC5oYXNPd25Qcm9wZXJ0eSx5PXAudG9TdHJpbmcsdj1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBiPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIGQ9IltvYmplY3QgTnVsbF0iLGc9IltvYmplY3QgVW5kZWZpbmVkXSIsXz1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIGoodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9nOmQ6XyYmXyBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIGU9aC5jYWxsKHQsdikscj10W3ZdO3RyeXt0W3ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89eS5jYWxsKHQpO3JldHVybiBuJiYoZT90W3ZdPXI6ZGVsZXRlIHRbdl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBiLmNhbGwodCl9KHQpfWZ1bmN0aW9uIHcodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9dmFyIFM9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLE89IltvYmplY3QgRnVuY3Rpb25dIixtPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIseD0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIHoodCl7aWYoIXcodCkpcmV0dXJuITE7dmFyIGU9aih0KTtyZXR1cm4gZT09T3x8ZT09bXx8ZT09U3x8ZT09eH12YXIgQSwkPXNbIl9fY29yZS1qc19zaGFyZWRfXyJdLEY9KEE9L1teLl0rJC8uZXhlYygkJiYkLmtleXMmJiQua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK0E6IiI7dmFyIFA9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIEwodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBQLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifXZhciBrPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEU9RnVuY3Rpb24ucHJvdG90eXBlLEk9T2JqZWN0LnByb3RvdHlwZSxOPUUudG9TdHJpbmcsVD1JLmhhc093blByb3BlcnR5LE09UmVnRXhwKCJeIitOLmNhbGwoVCkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gUih0KXtyZXR1cm4hKCF3KHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hIUYmJkYgaW4gdH0odCkpJiYoeih0KT9NOmspLnRlc3QoTCh0KSl9ZnVuY3Rpb24gVSh0LGUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbZV19KHQsZSk7cmV0dXJuIFIocik/cjp2b2lkIDB9dmFyIEI9VShzLCJEYXRhVmlldyIpLEM9VShzLCJNYXAiKSxEPVUocywiUHJvbWlzZSIpLFc9VShzLCJTZXQiKSxxPVUocywiV2Vha01hcCIpLFY9IltvYmplY3QgTWFwXSIsRz0iW29iamVjdCBQcm9taXNlXSIsSD0iW29iamVjdCBTZXRdIixKPSJbb2JqZWN0IFdlYWtNYXBdIixLPSJbb2JqZWN0IERhdGFWaWV3XSIsUT1MKEIpLFg9TChDKSxZPUwoRCksWj1MKFcpLHR0PUwocSksZXQ9ajsoQiYmZXQobmV3IEIobmV3IEFycmF5QnVmZmVyKDEpKSkhPUt8fEMmJmV0KG5ldyBDKSE9Vnx8RCYmZXQoRC5yZXNvbHZlKCkpIT1HfHxXJiZldChuZXcgVykhPUh8fHEmJmV0KG5ldyBxKSE9SikmJihldD1mdW5jdGlvbih0KXt2YXIgZT1qKHQpLHI9IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsbj1yP0wocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBROnJldHVybiBLO2Nhc2UgWDpyZXR1cm4gVjtjYXNlIFk6cmV0dXJuIEc7Y2FzZSBaOnJldHVybiBIO2Nhc2UgdHQ6cmV0dXJuIEp9cmV0dXJuIGV9KTt2YXIgcnQ9ZXQsbnQ9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBvdCh0KXtyZXR1cm4gbnVsbCE9dCYmZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PW50fSh0Lmxlbmd0aCkmJiF6KHQpfXZhciBpdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9dmFyIGF0PSJbb2JqZWN0IFN0cmluZ10iO3ZhciBjdCxmdD0oY3Q9Imxlbmd0aCIsZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbY3RdfSksc3Q9UmVnRXhwKCJbXFx1MjAwZFxcdWQ4MDAtXFx1ZGZmZlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZlxcdWZlMGVcXHVmZTBmXSIpO3ZhciBsdD0iXFx1ZDgwMC1cXHVkZmZmIixwdD0iWyIrbHQrIl0iLGh0PSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIseXQ9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsdnQ9IlteIitsdCsiXSIsYnQ9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLGR0PSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixndD0iKD86IitodCsifCIreXQrIikiKyI/IixfdD0iW1xcdWZlMGVcXHVmZTBmXT8iLGp0PV90K2d0KygiKD86XFx1MjAwZCg/OiIrW3Z0LGJ0LGR0XS5qb2luKCJ8IikrIikiK190K2d0KyIpKiIpLHd0PSIoPzoiK1t2dCtodCsiPyIsaHQsYnQsZHQscHRdLmpvaW4oInwiKSsiKSIsU3Q9UmVnRXhwKHl0KyIoPz0iK3l0KyIpfCIrd3QranQsImciKTtmdW5jdGlvbiBPdCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHN0LnRlc3QodCl9KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1TdC5sYXN0SW5kZXg9MDtTdC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9KHQpOmZ0KHQpfWZ1bmN0aW9uIG10KHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYob3QodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihlPXQpfHwhaXQoZSkmJnV0KGUpJiZqKGUpPT1hdD9PdCh0KTp0Lmxlbmd0aDt2YXIgZSxyPXJ0KHQpO3JldHVybiJbb2JqZWN0IE1hcF0iPT1yfHwiW29iamVjdCBTZXRdIj09cj90LnNpemU6YSh0KS5sZW5ndGh9dmFyIHh0PSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIHp0KHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dXQodCkmJmoodCk9PXh0fXZhciBBdD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLywkdD0vXlx3KiQvO3ZhciBGdD1VKE9iamVjdCwiY3JlYXRlIik7dmFyIFB0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIEx0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24ga3QodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19ZnVuY3Rpb24gRXQodCxlKXtmb3IodmFyIHIsbixvPXQubGVuZ3RoO28tLTspaWYoKHI9dFtvXVswXSk9PT0obj1lKXx8ciE9ciYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1rdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPUZ0P0Z0KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxrdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxrdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoRnQpe3ZhciByPWVbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09cj92b2lkIDA6cn1yZXR1cm4gUHQuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxrdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIEZ0P3ZvaWQgMCE9PWVbdF06THQuY2FsbChlLHQpfSxrdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsclt0XT1GdCYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfTt2YXIgSXQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBOdCh0KXt2YXIgZT0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIG49dFtlXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBUdCh0LGUpe3ZhciByLG4sbz10Ll9fZGF0YV9fO3JldHVybigic3RyaW5nIj09KG49dHlwZW9mKHI9ZSkpfHwibnVtYmVyIj09bnx8InN5bWJvbCI9PW58fCJib29sZWFuIj09bj8iX19wcm90b19fIiE9PXI6bnVsbD09PXIpP29bInN0cmluZyI9PXR5cGVvZiBlPyJzdHJpbmciOiJoYXNoIl06by5tYXB9ZnVuY3Rpb24gTXQodCl7dmFyIGU9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8cjspe3ZhciBuPXRbZV07dGhpcy5zZXQoblswXSxuWzFdKX19TnQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sTnQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLHI9RXQoZSx0KTtyZXR1cm4hKHI8MCkmJihyPT1lLmxlbmd0aC0xP2UucG9wKCk6SXQuY2FsbChlLHIsMSksLS10aGlzLnNpemUsITApfSxOdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1FdChlLHQpO3JldHVybiByPDA/dm9pZCAwOmVbcl1bMV19LE50LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEV0KHRoaXMuX19kYXRhX18sdCk+LTF9LE50LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fLG49RXQocix0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxyLnB1c2goW3QsZV0pKTpyW25dWzFdPWUsdGhpc30sTXQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcga3QsbWFwOm5ldyhDfHxOdCksc3RyaW5nOm5ldyBrdH19LE10LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIGU9VHQodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sTXQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gVHQodGhpcyx0KS5nZXQodCl9LE10LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFR0KHRoaXMsdCkuaGFzKHQpfSxNdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9VHQodGhpcyx0KSxuPXIuc2l6ZTtyZXR1cm4gci5zZXQodCxlKSx0aGlzLnNpemUrPXIuc2l6ZT09bj8wOjEsdGhpc307dmFyIFJ0PSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBVdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFJ0KTt2YXIgcj1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPWU/ZS5hcHBseSh0aGlzLG4pOm5bMF0saT1yLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIHIuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gci5jYWNoZT1uZXcoVXQuQ2FjaGV8fE10KSxyfVV0LkNhY2hlPU10O3ZhciBCdD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxDdD0vXFwoXFwpPy9nLER0PWZ1bmN0aW9uKHQpe3ZhciBlPVV0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1yLnNpemUmJnIuY2xlYXIoKSx0fSkpLHI9ZS5jYWNoZTtyZXR1cm4gZX0oKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoQnQsKGZ1bmN0aW9uKHQscixuLG8pe2UucHVzaChuP28ucmVwbGFjZShDdCwiJDEiKTpyfHx0KX0pKSxlfSkpLFd0PUR0O3ZhciBxdD0xLzAsVnQ9bD9sLnByb3RvdHlwZTp2b2lkIDAsR3Q9VnQ/VnQudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIEh0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihpdCh0KSlyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK3I8bjspb1tyXT1lKHRbcl0scix0KTtyZXR1cm4gb30odCxIdCkrIiI7aWYoenQodCkpcmV0dXJuIEd0P0d0LmNhbGwodCk6IiI7dmFyIGU9dCsiIjtyZXR1cm4iMCI9PWUmJjEvdD09LXF0PyItMCI6ZX1mdW5jdGlvbiBKdCh0LGUpe3JldHVybiBpdCh0KT90OmZ1bmN0aW9uKHQsZSl7aWYoaXQodCkpcmV0dXJuITE7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9ciYmInN5bWJvbCIhPXImJiJib29sZWFuIiE9ciYmbnVsbCE9dCYmIXp0KHQpKXx8JHQudGVzdCh0KXx8IUF0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpfSh0LGUpP1t0XTpXdChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjpIdCh0KX0odCkpfXZhciBLdD0xLzA7ZnVuY3Rpb24gUXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHx6dCh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tS3Q/Ii0wIjplfWZ1bmN0aW9uIFh0KHQsZSxyKXt2YXIgbj1udWxsPT10P3ZvaWQgMDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49KGU9SnQoZSx0KSkubGVuZ3RoO251bGwhPXQmJnI8bjspdD10W1F0KGVbcisrXSldO3JldHVybiByJiZyPT1uP3Q6dm9pZCAwfSh0LGUpO3JldHVybiB2b2lkIDA9PT1uP3I6bn1mdW5jdGlvbiBZdCh0LGU9e30pe2xldCByPVh0KGUsImZzIik7cmV0dXJuISFmdW5jdGlvbih0LGU9e30pe2xldCByPVh0KGUsImZzIiksbj0hMTt0cnl7ci5zdGF0U3luYyh0KSxuPSEwfWNhdGNoe249ITF9cmV0dXJuIG59KHQse2ZzOnJ9KSYmKCFyLmxzdGF0U3luYyh0KS5pc0RpcmVjdG9yeSgpJiYhci5sc3RhdFN5bmModCkuaXNTeW1ib2xpY0xpbmsoKSl9Y29uc3QgWnQ9bmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNDgsOCw5NiwzLDEyNywxMjcsMTI3LDEsMTI3LDk2LDMsMTI3LDEyNywxMjcsMCw5NiwyLDEyNywxMjcsMCw5NiwxLDEyNywxLDEyNyw5NiwzLDEyNywxMjcsMTI2LDEsMTI2LDk2LDMsMTI2LDEyNywxMjcsMSwxMjYsOTYsMiwxMjcsMTI2LDAsOTYsMSwxMjcsMSwxMjYsMywxMSwxMCwwLDAsMiwxLDMsNCw1LDYsMSw3LDUsMywxLDAsMSw3LDg1LDksMywxMDksMTAxLDEwOSwyLDAsNSwxMjAsMTIwLDEwNCw1MSw1MCwwLDAsNiwxMDUsMTEwLDEwNSwxMTYsNTEsNTAsMCwyLDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1MSw1MCwwLDMsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1MSw1MCwwLDQsNSwxMjAsMTIwLDEwNCw1NCw1MiwwLDUsNiwxMDUsMTEwLDEwNSwxMTYsNTQsNTIsMCw3LDgsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw1NCw1MiwwLDgsOCwxMDAsMTA1LDEwMywxMDEsMTE1LDExNiw1NCw1MiwwLDksMTAsMjUxLDIyLDEwLDI0MiwxLDEsNCwxMjcsMzIsMCwzMiwxLDEwNiwzMywzLDMyLDEsNjUsMTYsNzksNCwxMjcsMzIsMyw2NSwxNiwxMDcsMzMsNiwzMiwyLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiwzMywzLDMyLDIsNjUsMTM3LDIzNSwyMDgsMjA4LDcsMTA3LDMzLDQsMzIsMiw2NSwyMDcsMTQwLDE2MiwxNDIsNiwxMDYsMzMsNSwzLDY0LDMyLDMsMzIsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDQsMzIsMCw2NSw0LDEwNiwzNCwwLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDQsMzIsMiwzMiwwLDY1LDQsMTA2LDM0LDAsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiw1LDMyLDAsNjUsNCwxMDYsMzQsMCw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMyw1LDMyLDYsMzIsMCw2NSw0LDEwNiwzNCwwLDc5LDEzLDAsMTEsMzIsMiw2NSwxMiwxMTksMzIsNSw2NSwxOCwxMTksMTA2LDMyLDQsNjUsNywxMTksMTA2LDMyLDMsNjUsMSwxMTksMTA2LDUsMzIsMiw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDYsMTEsMzIsMSwxMDYsMzIsMCwzMiwxLDY1LDE1LDExMywxNiwxLDExLDE0NiwxLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMSw2NSw0LDEwNiwzMiwyLDc1LDY5LDQsNjQsMzIsMCwzMiwxLDQwLDIsMCw2NSwxODksMjIwLDIwMiwxNDksMTI0LDEwOCwxMDYsNjUsMTcsMTE5LDY1LDE3NSwyMTQsMjExLDE5MCwyLDEwOCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMiwxLDExLDExLDMsNjQsMzIsMSwzMiwyLDc5LDY5LDQsNjQsMzIsMCwzMiwxLDQ1LDAsMCw2NSwxNzcsMjA3LDIxNywxNzgsMSwxMDgsMTA2LDY1LDExLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywwLDMyLDEsNjUsMSwxMDYsMzMsMSwxMiwxLDExLDExLDMyLDAsMzIsMCw2NSwxNSwxMTgsMTE1LDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDM0LDAsNjUsMTMsMTE4LDMyLDAsMTE1LDY1LDE4OSwyMjAsMjAyLDE0OSwxMjQsMTA4LDM0LDAsNjUsMTYsMTE4LDMyLDAsMTE1LDExLDYzLDAsMzIsMCw2NSw4LDEwNiwzMiwxLDY1LDE2OCwxMzYsMTQxLDE2MSwyLDEwNiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMSw2NSwxMzcsMjM1LDIwOCwyMDgsNywxMDcsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNTQsMiwwLDMyLDAsNjUsMjAsMTA2LDMyLDEsNjUsMjA3LDE0MCwxNjIsMTQyLDYsMTA2LDU0LDIsMCwxMSwxOTUsNCwxLDYsMTI3LDMyLDEsMzIsMiwxMDYsMzMsNiwzMiwwLDY1LDI0LDEwNiwzMyw0LDMyLDAsNjUsNDAsMTA2LDQwLDIsMCwzMywzLDMyLDAsMzIsMCw0MCwyLDAsMzIsMiwxMDYsNTQsMiwwLDMyLDAsNjUsNCwxMDYsMzQsNSwzMiw1LDQwLDIsMCwzMiwyLDY1LDE2LDc5LDMyLDAsNDAsMiwwLDY1LDE2LDc5LDExNCwxMTQsNTQsMiwwLDMyLDIsMzIsMywxMDYsNjUsMTYsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMTYsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDU0LDIsMCwzMiwwLDY1LDEyLDEwNiwzNCwzLDMyLDMsNDAsMiwwLDMyLDQsNjUsNCwxMDYsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsNTQsMiwwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MCwyLDAsMzIsNCw2NSw4LDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzQsMywzMiwzLDQwLDIsMCwzMiw0LDY1LDEyLDEwNiw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCw1NCwyLDAsMzIsMCw2NSw0MCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsMzIsNiw2NSwxNiwxMDcsNzcsNCw2NCwzMiw2LDY1LDE2LDEwNywzMyw4LDMyLDAsNjUsOCwxMDYsNDAsMiwwLDMzLDIsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDMzLDMsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDUsMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDMzLDcsMyw2NCwzMiwyLDMyLDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsMiwzMiwzLDMyLDEsNjUsNCwxMDYsMzQsMSw0MCwyLDAsNjUsMjQ3LDE0OCwxNzUsMTc1LDEyMCwxMDgsMTA2LDY1LDEzLDExOSw2NSwxNzcsMjQzLDIyMSwyNDEsMTIxLDEwOCwzMywzLDMyLDUsMzIsMSw2NSw0LDEwNiwzNCwxLDQwLDIsMCw2NSwyNDcsMTQ4LDE3NSwxNzUsMTIwLDEwOCwxMDYsNjUsMTMsMTE5LDY1LDE3NywyNDMsMjIxLDI0MSwxMjEsMTA4LDMzLDUsMzIsNywzMiwxLDY1LDQsMTA2LDM0LDEsNDAsMiwwLDY1LDI0NywxNDgsMTc1LDE3NSwxMjAsMTA4LDEwNiw2NSwxMywxMTksNjUsMTc3LDI0MywyMjEsMjQxLDEyMSwxMDgsMzMsNywzMiw4LDMyLDEsNjUsNCwxMDYsMzQsMSw3OSwxMywwLDExLDMyLDAsNjUsOCwxMDYsMzIsMiw1NCwyLDAsMzIsMCw2NSwxMiwxMDYsMzIsMyw1NCwyLDAsMzIsMCw2NSwxNiwxMDYsMzIsNSw1NCwyLDAsMzIsMCw2NSwyMCwxMDYsMzIsNyw1NCwyLDAsMTEsMzIsMSwzMiw2LDczLDQsNjQsMzIsNCwzMiwxLDMyLDYsMzIsMSwxMDcsMzQsMSwyNTIsMTAsMCwwLDMyLDAsNjUsNDAsMTA2LDMyLDEsNTQsMiwwLDExLDExLDk3LDEsMSwxMjcsMzIsMCw2NSwxNiwxMDYsNDAsMiwwLDMzLDEsMzIsMCw2NSw0LDEwNiw0MCwyLDAsNCwxMjcsMzIsMSw2NSwxMiwxMTksMzIsMCw2NSwyMCwxMDYsNDAsMiwwLDY1LDE4LDExOSwxMDYsMzIsMCw2NSwxMiwxMDYsNDAsMiwwLDY1LDcsMTE5LDEwNiwzMiwwLDY1LDgsMTA2LDQwLDIsMCw2NSwxLDExOSwxMDYsNSwzMiwxLDY1LDE3NywyMDcsMjE3LDE3OCwxLDEwNiwxMSwzMiwwLDQwLDIsMCwxMDYsMzIsMCw2NSwyNCwxMDYsMzIsMCw2NSw0MCwxMDYsNDAsMiwwLDE2LDEsMTEsMjU1LDMsMiwzLDEyNiwxLDEyNywzMiwwLDMyLDEsMTA2LDMzLDYsMzIsMSw2NSwzMiw3OSw0LDEyNiwzMiw2LDY1LDMyLDEwNywzMyw2LDMyLDIsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsMzMsMywzMiwyLDY2LDE3NywxNjksMTcyLDE5MywxNzMsMTg0LDIxMiwxNjYsNjEsMTI1LDMzLDQsMzIsMiw2NiwyNDksMjM0LDIwOCwyMDgsMjMxLDIwMSwxNjEsMjI4LDIyNSwwLDEyNCwzMyw1LDMsNjQsMzIsMywzMiwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsMywzMiw0LDMyLDAsNjUsOCwxMDYsMzQsMCw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDQsMzIsMiwzMiwwLDY1LDgsMTA2LDM0LDAsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMywyLDMyLDUsMzIsMCw2NSw4LDEwNiwzNCwwLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNSwzMiw2LDMyLDAsNjUsOCwxMDYsMzQsMCw3OSwxMywwLDExLDMyLDIsNjYsMTIsMTM3LDMyLDUsNjYsMTgsMTM3LDEyNCwzMiw0LDY2LDcsMTM3LDEyNCwzMiwzLDY2LDEsMTM3LDEyNCwzMiwzLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDQsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsMiw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiw1LDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDUsMzIsMiw2NiwxOTcsMjA3LDIxNywxNzgsMjQxLDIyOSwxODYsMjM0LDM5LDEyNCwxMSwzMiwxLDE3MywxMjQsMzIsMCwzMiwxLDY1LDMxLDExMywxNiw2LDExLDEzNCwyLDAsMzIsMSwzMiwyLDEwNiwzMywyLDMsNjQsMzIsMiwzMiwxLDY1LDgsMTA2LDc5LDQsNjQsMzIsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzIsMCwxMzMsNjYsMjcsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzMsMCwzMiwxLDY1LDgsMTA2LDMzLDEsMTIsMSwxMSwxMSwzMiwxLDY1LDQsMTA2LDMyLDIsNzcsNCw2NCwzMiwwLDMyLDEsNTMsMiwwLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDIzLDEzNyw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwyNDksMjQzLDIyMSwyNDEsMTUzLDI0NiwxNTMsMTcxLDIyLDEyNCwzMywwLDMyLDEsNjUsNCwxMDYsMzMsMSwxMSwzLDY0LDMyLDEsMzIsMiw3Myw0LDY0LDMyLDAsMzIsMSw0OSwwLDAsNjYsMTk3LDIwNywyMTcsMTc4LDI0MSwyMjksMTg2LDIzNCwzOSwxMjYsMTMzLDY2LDExLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDAsMzIsMSw2NSwxLDEwNiwzMywxLDEyLDEsMTEsMTEsMzIsMCwzMiwwLDY2LDMzLDEzNiwxMzMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMzQsMCwzMiwwLDY2LDI5LDEzNiwxMzMsNjYsMjQ5LDI0MywyMjEsMjQxLDE1MywyNDYsMTUzLDE3MSwyMiwxMjYsMzQsMCwzMiwwLDY2LDMyLDEzNiwxMzMsMTEsNzcsMCwzMiwwLDY1LDgsMTA2LDMyLDEsNjYsMjE0LDIzNSwxMzAsMjM4LDIzNCwyNTMsMTM3LDI0NSwyMjQsMCwxMjQsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDMyLDEsNjYsMTc3LDE2OSwxNzIsMTkzLDE3MywxODQsMjEyLDE2Niw2MSwxMjUsNTUsMywwLDMyLDAsNjUsMjQsMTA2LDMyLDEsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDMyLDEsNjYsMjQ5LDIzNCwyMDgsMjA4LDIzMSwyMDEsMTYxLDIyOCwyMjUsMCwxMjQsNTUsMywwLDExLDI0NCw0LDIsMywxMjcsNCwxMjYsMzIsMSwzMiwyLDEwNiwzMyw1LDMyLDAsNjUsNDAsMTA2LDMzLDQsMzIsMCw2NSwyMDAsMCwxMDYsNDAsMiwwLDMzLDMsMzIsMCwzMiwwLDQxLDMsMCwzMiwyLDE3MywxMjQsNTUsMywwLDMyLDIsMzIsMywxMDYsNjUsMzIsNzMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsMzIsMiwyNTIsMTAsMCwwLDMyLDAsNjUsMjAwLDAsMTA2LDMyLDIsMzIsMywxMDYsNTQsMiwwLDE1LDExLDMyLDMsNCw2NCwzMiwzLDMyLDQsMTA2LDMyLDEsNjUsMzIsMzIsMywxMDcsMzQsMiwyNTIsMTAsMCwwLDMyLDAsNjUsOCwxMDYsMzQsMywzMiwzLDQxLDMsMCwzMiw0LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMTYsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSw4LDEwNiw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzNCwzLDMyLDMsNDEsMywwLDMyLDQsNjUsMTYsMTA2LDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNTUsMywwLDMyLDAsNjUsMzIsMTA2LDM0LDMsMzIsMyw0MSwzLDAsMzIsNCw2NSwyNCwxMDYsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw1NSwzLDAsMzIsMCw2NSwyMDAsMCwxMDYsNjUsMCw1NCwyLDAsMzIsMSwzMiwyLDEwNiwzMywxLDExLDMyLDEsNjUsMzIsMTA2LDMyLDUsNzcsNCw2NCwzMiw1LDY1LDMyLDEwNywzMywyLDMyLDAsNjUsOCwxMDYsNDEsMywwLDMzLDYsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDMzLDcsMzIsMCw2NSwyNCwxMDYsNDEsMywwLDMzLDgsMzIsMCw2NSwzMiwxMDYsNDEsMywwLDMzLDksMyw2NCwzMiw2LDMyLDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw2LDMyLDcsMzIsMSw2NSw4LDEwNiwzNCwxLDQxLDMsMCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiwxMjQsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMzMsNywzMiw4LDMyLDEsNjUsOCwxMDYsMzQsMSw0MSwzLDAsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsMTI0LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDMzLDgsMzIsOSwzMiwxLDY1LDgsMTA2LDM0LDEsNDEsMywwLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDEyNCw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwzMyw5LDMyLDIsMzIsMSw2NSw4LDEwNiwzNCwxLDc5LDEzLDAsMTEsMzIsMCw2NSw4LDEwNiwzMiw2LDU1LDMsMCwzMiwwLDY1LDE2LDEwNiwzMiw3LDU1LDMsMCwzMiwwLDY1LDI0LDEwNiwzMiw4LDU1LDMsMCwzMiwwLDY1LDMyLDEwNiwzMiw5LDU1LDMsMCwxMSwzMiwxLDMyLDUsNzMsNCw2NCwzMiw0LDMyLDEsMzIsNSwzMiwxLDEwNywzNCwxLDI1MiwxMCwwLDAsMzIsMCw2NSwyMDAsMCwxMDYsMzIsMSw1NCwyLDAsMTEsMTEsMTg4LDIsMSw1LDEyNiwzMiwwLDY1LDI0LDEwNiw0MSwzLDAsMzMsMSwzMiwwLDQxLDMsMCwzNCwyLDY2LDMyLDkwLDQsMTI2LDMyLDAsNjUsOCwxMDYsNDEsMywwLDM0LDMsNjYsMSwxMzcsMzIsMCw2NSwxNiwxMDYsNDEsMywwLDM0LDQsNjYsNywxMzcsMTI0LDMyLDEsNjYsMTIsMTM3LDMyLDAsNjUsMzIsMTA2LDQxLDMsMCwzNCw1LDY2LDE4LDEzNywxMjQsMTI0LDMyLDMsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsMzIsNCw2NiwyMDcsMjE0LDIxMSwxOTAsMjEwLDE5OSwxNzEsMjE3LDY2LDEyNiw2NiwzMSwxMzcsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiwxMzMsNjYsMTM1LDE0OSwxNzUsMTc1LDE1MiwxODIsMjIyLDE1NSwxNTgsMTI3LDEyNiw2NiwxNTcsMTYzLDE4MSwyMzQsMTMxLDE3NywxNDEsMTM4LDI1MCwwLDEyNSwzMiwxLDY2LDIwNywyMTQsMjExLDE5MCwyMTAsMTk5LDE3MSwyMTcsNjYsMTI2LDY2LDMxLDEzNyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDEzMyw2NiwxMzUsMTQ5LDE3NSwxNzUsMTUyLDE4MiwyMjIsMTU1LDE1OCwxMjcsMTI2LDY2LDE1NywxNjMsMTgxLDIzNCwxMzEsMTc3LDE0MSwxMzgsMjUwLDAsMTI1LDMyLDUsNjYsMjA3LDIxNCwyMTEsMTkwLDIxMCwxOTksMTcxLDIxNyw2NiwxMjYsNjYsMzEsMTM3LDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsMTMzLDY2LDEzNSwxNDksMTc1LDE3NSwxNTIsMTgyLDIyMiwxNTUsMTU4LDEyNywxMjYsNjYsMTU3LDE2MywxODEsMjM0LDEzMSwxNzcsMTQxLDEzOCwyNTAsMCwxMjUsNSwzMiwxLDY2LDE5NywyMDcsMjE3LDE3OCwyNDEsMjI5LDE4NiwyMzQsMzksMTI0LDExLDMyLDIsMTI0LDMyLDAsNjUsNDAsMTA2LDMyLDIsNjYsMzEsMTMxLDE2NywxNiw2LDExXSk7ZnVuY3Rpb24gdGUodCl7cmV0dXJuISghZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwiIj09PXQpfWZ1bmN0aW9uIGVlKHQpe2xldCBlPSExO2lmKHRlKHQpKWU9IWlzTmFOKE51bWJlcih0KSk7ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiB0IT10fSh0KSlyZXR1cm4hMTtlPSEwfXJldHVybiBlfXZhciByZT0vXHMvO3ZhciBuZT0vXlxzKy87ZnVuY3Rpb24gb2UodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJnJlLnRlc3QodC5jaGFyQXQoZSkpOyk7cmV0dXJuIGV9KHQpKzEpLnJlcGxhY2UobmUsIiIpOnR9dmFyIGllPU5hTix1ZT0vXlstK10weFswLTlhLWZdKyQvaSxhZT0vXjBiWzAxXSskL2ksY2U9L14wb1swLTddKyQvaSxmZT1wYXJzZUludDt2YXIgc2U9MS8wLGxlPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBwZSh0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoenQodCkpcmV0dXJuIGllO2lmKHcodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PXcoZSk/ZSsiIjplfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PW9lKHQpO3ZhciByPWFlLnRlc3QodCk7cmV0dXJuIHJ8fGNlLnRlc3QodCk/ZmUodC5zbGljZSgyKSxyPzI6OCk6dWUudGVzdCh0KT9pZTordH0odCkpPT09c2V8fHQ9PT0tc2U/KHQ8MD8tMToxKSpsZTp0PT10P3Q6MDowPT09dD90OjB9YXN5bmMgZnVuY3Rpb24gaGUodCxlPXt9KXtpZihyPXQsIltvYmplY3QgQmxvYl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpJiYhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSlyZXR1cm4gY29uc29sZS5sb2coImlucCIsdCksUHJvbWlzZS5yZWplY3QoImlucCBpcyBub3QgYSBCbG9iIG9yIEZpbGUiKTt2YXIgcjtsZXQgbj1YdChlLCJjaHVua1NpemUiKTtlZShuKXx8KG49NjcxMDg4NjQpLG49ZnVuY3Rpb24odCl7cmV0dXJuIGVlKHQpP3BlKHQpOjB9KG4pO2xldHtjcmVhdGU2NDpvfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdHtleHBvcnRzOnttZW06ZSx4eGgzMjpyLHh4aDY0Om4saW5pdDMyOm8sdXBkYXRlMzI6aSxkaWdlc3QzMjp1LGluaXQ2NDphLHVwZGF0ZTY0OmMsZGlnZXN0NjQ6Zn19PXQ7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpO2Z1bmN0aW9uIGwodCxyKXtpZihlLmJ1ZmZlci5ieXRlTGVuZ3RoPHQrcil7Y29uc3Qgbj1NYXRoLmNlaWwoKHQrci1lLmJ1ZmZlci5ieXRlTGVuZ3RoKS82NTUzNik7ZS5ncm93KG4pLHM9bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1mdW5jdGlvbiBwKHQsZSxyLG4sbyxpKXtsKHQpO2NvbnN0IHU9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIHMuc2V0KHUpLHIoMCxlKSx1LnNldChzLnN1YmFycmF5KDAsdCkpLHt1cGRhdGUoZSl7bGV0IHI7cmV0dXJuIHMuc2V0KHUpLCJzdHJpbmciPT10eXBlb2YgZT8obCgzKmUubGVuZ3RoLHQpLHI9Yi5lbmNvZGVJbnRvKGUscy5zdWJhcnJheSh0KSkud3JpdHRlbik6KGwoZS5ieXRlTGVuZ3RoLHQpLHMuc2V0KGUsdCkscj1lLmJ5dGVMZW5ndGgpLG4oMCx0LHIpLHUuc2V0KHMuc3ViYXJyYXkoMCx0KSksdGhpc30sZGlnZXN0OigpPT4ocy5zZXQodSksaShvKDApKSl9fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ+Pj4wfWNvbnN0IHk9Mm4qKjY0bi0xbjtmdW5jdGlvbiB2KHQpe3JldHVybiB0Jnl9Y29uc3QgYj1uZXcgVGV4dEVuY29kZXIsZD0wLGc9MG47ZnVuY3Rpb24gXyh0LGU9ZCl7cmV0dXJuIGwoMyp0Lmxlbmd0aCwwKSxoKHIoMCxiLmVuY29kZUludG8odCxzKS53cml0dGVuLGUpKX1mdW5jdGlvbiBqKHQsZT1nKXtyZXR1cm4gbCgzKnQubGVuZ3RoLDApLHYobigwLGIuZW5jb2RlSW50byh0LHMpLndyaXR0ZW4sZSkpfXJldHVybntoMzI6XyxoMzJUb1N0cmluZzoodCxlPWQpPT5fKHQsZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSxoMzJSYXc6KHQsZT1kKT0+KGwodC5ieXRlTGVuZ3RoLDApLHMuc2V0KHQpLGgocigwLHQuYnl0ZUxlbmd0aCxlKSkpLGNyZWF0ZTMyOih0PWQpPT5wKDQ4LHQsbyxpLHUsaCksaDY0OmosaDY0VG9TdHJpbmc6KHQsZT1nKT0+aih0LGUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpLGg2NFJhdzoodCxlPWcpPT4obCh0LmJ5dGVMZW5ndGgsMCkscy5zZXQodCksdihuKDAsdC5ieXRlTGVuZ3RoLGUpKSksY3JlYXRlNjQ6KHQ9Zyk9PnAoODgsdCxhLGMsZix2KX19KChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShadCkpLmluc3RhbmNlKX0oKSxpPW8oKSx1PTA7Zm9yKDt1PHQuc2l6ZTspe2xldCBlPXQuc2xpY2UodSx1K24pLHI9YXdhaXQgZS5hcnJheUJ1ZmZlcigpO2kudXBkYXRlKG5ldyBVaW50OEFycmF5KHIpKSx1Kz1ufXJldHVybiBpLmRpZ2VzdCgpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwiMCIpfWxldCBjaGVja1NsaWNlc0hhc2g9YXN5bmMocixuLG8pPT57aWYoMD09PW10KHIpKXtyZXR1cm57ZXJyb3I6Im5vIGZpbGVTbGljZUhhc2hzIn19bGV0IGk9W107Zm9yKGxldCB1PTA7dTxyLmxlbmd0aDt1Kyspe2xldCBhPXJbdV0sYz10LnJlc29sdmUobyxgJHtufV8ke2EuaX1gKSxmPSIiO2F3YWl0IGhlKG5ldyBCbG9iKFtlLnJlYWRGaWxlU3luYyhjKV0pKS50aGVuKCh0PT57Zj10fSkpLmNhdGNoKCh0PT57Y29uc29sZS5sb2coImZzSXNGaWxlKF9wYXRoRmlsZSkiLGMsWXQoYyx7ZnM6ZX0pKSxjb25zb2xlLmxvZyh0KX0pKSxhLmg9PT1mJiZpLnB1c2goYS5pKX1yZXR1cm57c2xrczppfX07CgoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjaGVja1NsaWNlc0hhc2gKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY2hlY2tTbGljZXNIYXNoCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBwYXJlbnRQb3J0Lm9uKCdtZXNzYWdlJywgcmVjdk1lc3NhZ2UpCiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK",Buffer.from(i,"base64").toString("utf8"));var i;function s(){let r=new n,i=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){u(e)}}(t);if(!i)return u("invalid worker"),null;function s(){let e=function(){let e,t,n=new Promise(function(){e=arguments[0],t=arguments[1]});return n.resolve=e,n.reject=t,n}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<e;i++)t[i]=n[0|Math.random()*r];return t.join("")}(),n={mode:"call",id:t,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function u(e){r.emit("error",e)}return i.on("message",function(e){let t=e,n=t.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(t.evName,t.msg),"return"===n&&r.emit(t.id,t))}),i.on("error",u),i.on("exit",e=>{1!==e&&u("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};i.postMessage(e)}([...arguments]),r.main=s,r.main=s,r.terminate=function(){i?(i.terminate(),i=void 0):u("worker has been terminated")},r}r=async function(){let e=[...arguments],t=s();return await t.main(...e).finally(()=>{t.terminate()})}}();try{process.on("unhandledRejection",e=>{console.log("outer:unhandledRejection",e)}),process.on("uncaughtException",e=>{console.log("outer:uncaughtException",e)}),process.on("uncaughtExceptionMonitor",e=>{console.log("outer:uncaughtExceptionMonitor",e)})}catch(e){}return r}(t)}({get exports(){return n},set exports(e){n=e}}),n)}(li);var ai=$n(li.exports);function di(s={}){let u=De(s,"port");In(u)||(u=8080);let o=De(s,"useInert");ur(o)||(o=!0);let c=De(s,"pathStaticFiles");Ot(c)||(c="dist");let l=De(s,"pathUploadTemp");Ot(l)||(l="./uploadTemp"),Hn(l)||dr(l);let a=De(s,"apiName");Ot(a)||(a="api");let d=De(s,"tokenType");Ot(d)||(d="Bearer");let D=De(s,"sizeSlice");In(D)||(D=1048576);let M=De(s,"verifyConn");Sn(M)||(M=()=>!0);let w=De(s,"corsOrigins",[]);hn(w)||(w=["*"]);let y=De(s,"delayForSlice","");jn(y)||(y=100),y=gn(y);let m=null;m=De(s,"serverHapi")?s.serverHapi:n.server({port:u,routes:{timeout:{server:!1,socket:!1},cors:{origin:w,credentials:!1}}});let g=lr(),I=(e,...t)=>{setTimeout(()=>{g.emit(e,...t)},1)};async function C(e){let t=zn(),n=zn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),I("upload",e,n),t}async function p(e){let t=zn(),n=zn();return n.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),I("download",e,n),t}function f(e,t,n={}){let r=new i.Readable;r._read=()=>{},r.push(t),r.push(null);let s=De(n,"returnType",""),u=De(n,"returnMsg",""),o=e.response(r).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",r.readableLength);return Ot(s)&&o.header("Return-Type",s),Ot(u)&&o.header("Return-Msg",u),o}function L(e,t){return Ot(t)||(console.log("msg",t),console.log("msg is not an effective string, set msg=''"),t=""),f(e,Zr({error:t}),{returnType:"error",returnMsg:t})}let h={path:`/${a}/main`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let s=De(n,"authorization","");s=Ot(s)?s:"";{let i=!1;try{i=M({apiType:"main",authorization:s,query:r,headers:n,req:e}),Yn(i)&&(i=await i.catch(e=>{console.log(e),i=!1}))}catch(e){console.log(e),i=!1}if(!0!==i)return L(t,"permission denied")}I("handler",{api:"apiMain",headers:n,query:r});let u=await(()=>{let t=zn(),n=[],r=new i.Writable({write(e,t,r){n.push(e),r()}});return r.on("finish",()=>{}),e.payload.pipe(r),e.payload.on("end",()=>{let e=Buffer.concat(n);n=[],t.resolve(e)}),e.payload.on("close",()=>{}),e.payload.on("error",e=>{console.log("apiMain req.payload err",e),I("error",`receive payload error: ${e.message}`),t.reject(`receive payload error: ${e.message}`)}),t})(),o=Gr(new Uint8Array(u)),c={},l="",a="";return await async function(e){let t=zn(),n=zn();n.then(n=>{e.output=n,delete e.input,t.resolve(e)}).catch(e=>{t.reject(e)});{let t=De(e,"func",""),r=De(e,"input",null);I("execute",t,r,n)}return t}(o).then(e=>{c.success=e,l="success",a="need to parse"}).catch(e=>{c.error=e,l="error",a="need to parse"}),f(t,Zr(c),{returnType:l,returnMsg:a})}},b={path:`/${a}/ulctr`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(n,"authorization","");i=Ot(i)?i:"";{let e=M({apiType:"upload-controller",authorization:i,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiUploadCheck",headers:n,query:r});let s=De(e,"payload.mode","");if("check-total-hash"!==s&&"check-slices-hash"!==s&&"merge-slices-push"!==s&&"merge-slices-get"!==s)return L(t,`invalid mode[${s}] in payload`);let u=De(e,"payload.fileHash","");if(!Ot(u))return L(t,"invalid fileHash in payload");let o={},c="",a="";return await(async()=>{let t=null;if("check-total-hash"===s){let n=De(e,"payload.filename",""),r=De(e,"payload.fileSize","");if(t=await ci(r,D,u,l),t.bAllHash){let e={from:"check-total-hash",filename:n,path:t.path},r=await C(e);t={...t,msg:r}}}else if("check-slices-hash"===s){let n=De(e,"payload.fileSliceHashs",[]);t=await ai(n,u,l)}else if("merge-slices-push"===s){let n=De(e,"payload.chunkTotal","");t={queueId:si(u,n,l)}}else if("merge-slices-get"===s){let n=De(e,"payload.filename",""),r=De(e,"payload.queueId",""),i=ui(r,l);if(t={state:i.state,msg:i.msg,queueId:r,filename:n,path:i.path},"success"===i.state){let e={from:"merge-slices-get",filename:n,path:i.path},r=await C(e);t={...t,msg:r}}}return t})().then(e=>{o.success=e,c="success",a="need to parse"}).catch(e=>{o.error=e,c="error",a="need to parse"}),f(t,Zr(o),{returnType:c,returnMsg:a})}},A={path:`/${a}/slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(n,r){let i=De(n,"headers");i=Jt(i)?i:"";let s=De(n,"query");s=Jt(s)?s:"";let u=De(i,"authorization","");u=Ot(u)?u:"";{let e=M({apiType:"upload-slice",authorization:u,headers:i,query:s});if(Yn(e)&&(e=await e),!0!==e)return L(r,"permission denied")}I("handler",{api:"apiUploadSlice",headers:i,query:s});let o=De(i,"chunk-index",""),c=De(i,"chunk-total",""),a=De(i,"package-id","");if(!jn(o))return L(r,"invalid chunkIndex in headers");if(o=gn(o),!jn(c))return L(r,"invalid chunkTotal in headers");if(c=gn(c),!Ot(a))return L(r,"invalid packageId in headers");let d=e.resolve(l,`${a}_${o}`),D=t.createWriteStream(d),w={},m="",g="";return await(()=>{let e=zn();return n.payload.pipe(D),n.payload.on("end",()=>{setTimeout(()=>{e.resolve(`chunk[${o+1}/${c}] of packageId[${a}] done`)},y)}),n.payload.on("error",t=>{console.log(`apiUploadSlice req.payload chunk[${o+1}/${c}] of packageId[${a}] err`,t),I("error",`receive chunk[${o+1}/${c}] of packageId[${a}] error: ${t.message}`),e.reject(`receive chunk[${o+1}/${c}] of packageId[${a}] error: ${t.message}`)}),e})().then(e=>{w.success=e,m="success",g="need to parse"}).catch(e=>{w.error=e,m="error",g="need to parse",I("error",e)}),f(r,Zr(w),{returnType:m,returnMsg:g})}},N={path:`/${a}/dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(n,"authorization","");i=Ot(i)?i:"";{let e=M({apiType:"download-get-filename",authorization:i,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let s=De(e,"payload.fileId","");if(!Ot(s))return L(t,"invalid fileId in payload");let u={fileId:s,token:Ot(i)?i.slice(Mr(d).length+1):""},o={},c="",l="";await p(u).then(e=>{o.success=e,c="success",l="need to parse"}).catch(e=>{o.error=e,c="error",l="need to parse"});let a=De(o,"success"),D=De(a,"streamRead");try{D.destroy()}catch(e){}let w=De(a,"filename");return Ot(w)?(o={success:{filename:w}},f(t,Zr(o),{returnType:c,returnMsg:l})):L(t,"invalid filename")}},x={path:`/${a}/dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(r,"token","");i=Ot(i)?i:"";let s="";Ot(i)&&(s=`${d} ${i}`);{let e=M({apiType:"download-get-file",authorization:s,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let u=De(r,"fileId","");if(u=Ot(u)?u:"",!Ot(u))return L(t,"invalid fileId in query");let o={fileId:u,token:i},c={};if(await p(o).then(e=>{c.success=e}).catch(e=>{c.error=e}),hr(c,"error"))return L(t,"can not get file from fileId");let l=De(c,"success"),a=De(l,"streamRead"),D=De(l,"fileSize");if(!Dr(D)){try{a.destroy()}catch(e){}return L(t,"invalid fileSize")}let w=De(l,"fileType");if(!Ot(w)){try{a.destroy()}catch(e){}return L(t,"invalid fileType")}return w=Mr(w),t.response(a).type(w).header("Content-Length",D)}},E={path:`/${a}/dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let n=De(e,"headers");n=Jt(n)?n:"";let r=De(e,"query");r=Jt(r)?r:"";let i=De(n,"authorization","");i=Ot(i)?i:"";{let e=M({apiType:"download",authorization:i,headers:n,query:r});if(Yn(e)&&(e=await e),!0!==e)return L(t,"permission denied")}I("handler",{api:"apiDownload",headers:n,query:r});let s=De(e,"payload.fileId","");if(!Ot(s))return L(t,"invalid fileId in payload");let u={fileId:s,token:Ot(i)?i.slice(Mr(d).length+1):""},o={};if(await p(u).then(e=>{o.success=e}).catch(e=>{o.error=e}),hr(o,"error"))return L(t,"can not get file from fileId");let c=De(o,"success"),l=De(c,"streamRead"),a=De(c,"filename");if(!Ot(a)){try{l.destroy()}catch(e){}return L(t,"invalid filename")}a=Lr(a);let D=De(c,"fileSize");if(!Dr(D)){try{l.destroy()}catch(e){}return L(t,"invalid fileSize")}let w=De(c,"fileType");if(!Ot(w)){try{l.destroy()}catch(e){}return L(t,"invalid fileType")}return w=Mr(w),t.response(l).type(w).header("Content-Disposition",`attachment; filename="${a}"`).header("Content-Length",D)}};De(s,"serverHapi")?m.route([h,b,A,N,x,E]):async function(){o&&await m.register(r);let e=[];if(o){let t={method:"GET",path:"/{file*}",handler:{directory:{path:`${c}/`}}};e=[...e,t]}e=[...e,h,b,A,N,x,E],m.route(e),await m.start(),console.log(`Server running at: ${m.info.uri}`)}();return g.stop=()=>{m.stop()},g}var Di=function(){return M.Date.now()},Mi=Math.max,wi=Math.min;function yi(e,t,n){var r,i,s,u,o,c,l=0,a=!1,d=!1,D=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function M(t){var n=r,s=i;return r=i=void 0,l=t,u=e.apply(s,n)}function w(e){var n=e-c;return void 0===c||n>=t||n<0||d&&e-l>=s}function y(){var e=Di();if(w(e))return m(e);o=setTimeout(y,function(e){var n=t-(e-c);return d?wi(n,s-(e-l)):n}(e))}function m(e){return o=void 0,D&&r?M(e):(r=i=void 0,u)}function g(){var e=Di(),n=w(e);if(r=arguments,i=this,c=e,n){if(void 0===o)return function(e){return l=e,o=setTimeout(y,t),a?M(e):u}(c);if(d)return clearTimeout(o),o=setTimeout(y,t),M(c)}return void 0===o&&(o=setTimeout(y,t)),u}return t=sn(t)||0,x(n)&&(a=!!n.leading,s=(d="maxWait"in n)?Mi(sn(n.maxWait)||0,t):s,D="trailing"in n?!!n.trailing:D),g.cancel=function(){void 0!==o&&clearTimeout(o),l=0,r=c=i=o=void 0},g.flush=function(){return void 0===o?u:m(Di())},g}var mi=function(){try{var e=B(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),gi=mi;function Ii(e,t,n){"__proto__"==t&&gi?gi(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Ci(e,t,n){(void 0!==n&&!Q(e[t],n)||void 0===n&&!(t in e))&&Ii(e,t,n)}var pi="object"==typeof exports&&exports&&!exports.nodeType&&exports,fi=pi&&"object"==typeof module&&module&&!module.nodeType&&module,Li=fi&&fi.exports===pi?M.Buffer:void 0,hi=Li?Li.allocUnsafe:void 0;function bi(e,t){if(t)return e.slice();var n=e.length,r=hi?hi(n):new e.constructor(n);return e.copy(r),r}function Ai(e){var t=new e.constructor(e.byteLength);return new Ie(t).set(new Ie(e)),t}function Ni(e,t){var n=t?Ai(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function xi(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var Ei=Object.create,Ti=function(){function e(){}return function(t){if(!x(t))return{};if(Ei)return Ei(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Zi(e){return"function"!=typeof e.constructor||et(e)?{}:Ti(bn(e))}function vi(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Xi=Object.prototype.hasOwnProperty;function Si(e,t,n){var r=e[t];Xi.call(e,t)&&Q(r,n)&&(void 0!==n||t in e)||Ii(e,t,n)}function Yi(e,t,n,r){var i=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var o=t[s],c=r?r(n[o],e[o],o,n,e):void 0;void 0===c&&(c=e[o]),i?Ii(n,o,c):Si(n,o,c)}return n}var Gi=Object.prototype.hasOwnProperty;function ji(e){if(!x(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=et(e),n=[];for(var r in e)("constructor"!=r||!t&&Gi.call(e,r))&&n.push(r);return n}function Fi(e){return st(e)?$e(e,!0):ji(e)}function Ki(e,t,n,r,i,s,u){var o=vi(e,n),c=vi(t,n),l=u.get(c);if(l)Ci(e,n,l);else{var d,D=s?s(o,c,n+"",e,t,u):void 0,M=void 0===D;if(M){var w=a(c),y=!w&&ze(c),m=!w&&!y&&Oe(c);D=c,w||y||m?a(o)?D=o:L(d=o)&&st(d)?D=xi(o):y?(M=!1,D=bi(c,!0)):m?(M=!1,D=Ni(c,!0)):D=[]:Zn(c)||Ge(c)?(D=o,Ge(o)?D=function(e){return Yi(e,Fi(e))}(o):x(o)&&!E(o)||(D=Zi(c))):M=!1}M&&(u.set(c,D),i(D,c,r,s,u),u.delete(c)),Ci(e,n,D)}}function zi(e,t,n,r,i){e!==t&&Bt(t,function(s,u){if(i||(i=new Me),x(s))Ki(e,t,u,n,zi,r,i);else{var o=r?r(vi(e,u),s,u+"",e,t,i):void 0;void 0===o&&(o=s),Ci(e,u,o)}},Fi)}var Wi=Math.max;var Bi=gi?function(e,t){return gi(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:jt,Vi=Bi,Hi=Date.now;var Ui=function(e){var t=0,n=0;return function(){var r=Hi(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Vi),ki=Ui;function Qi(e,t){return ki(function(e,t,n){return t=Wi(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,s=Wi(r.length-t,0),u=Array(s);++i<s;)u[i]=r[t+i];i=-1;for(var o=Array(t+1);++i<t;)o[i]=r[i];return o[t]=n(u),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,o)}}(e,t,jt),e+"")}var Pi,Ji=(Pi=function(e,t,n){zi(e,t,n)},Qi(function(e,t){var n=-1,r=t.length,i=r>1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(i=Pi.length>3&&"function"==typeof i?(r--,i):void 0,s&&function(e,t,n){if(!x(n))return!1;var r=typeof t;return!!("number"==r?st(n)&&Be(t,n.length):"string"==r&&t in n)&&Q(n[t],e)}(t[0],t[1],s)&&(i=r<3?void 0:i,r=1),e=Object(e);++n<r;){var u=t[n];u&&Pi(e,u,n,i)}return e}));function Ri(e,n={}){let r={};if(Jt(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=lr()),!hr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let i=De(n,"fpTableTags","");Ot(i)||(i="./tableTags.json");let s=De(n,"genTag");Sn(s)||(s=()=>nr()+"|"+sr(6));let u=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)};function o(){let e={};try{if(t.existsSync(i)){let n=Gn(t.readFileSync(i,"utf8"));Jt(n)&&(e=n)}}catch(e){u("error",{msg:"readTableTags catch",err:e})}return e}function c(){try{let e=function(e,t=!1){if(pn(e))return"";let n="";try{n=t?JSON.stringify(e,null,2):JSON.stringify(e)}catch(e){n=""}return n}(r);t.writeFileSync(i,e,"utf8")}catch(e){u("error",{msg:"writeTableTags catch",err:e})}}let l=yi(()=>{c(),u("changeTableTags",r)},200);return e.readTableTags=o,e.writeTableTags=c,e.initTableTags=function(e={},t="useInputFirst"){if("useInputOnly"===t)r=e;else if("useStorageOnly"===t)r=o();else if("useInputFirst"===t)r=Ji(o(),e);else{if("useStorageFirst"!==t)throw new Error(`invalid mode[${t}]`);r=Ji(e,o())}c()},e.setTableTags=function(e={}){r=Ji(r,e),c()},e.getTableTags=function(){return r},e.updateTableTag=function(e){r[e]=s(),l()},e}var Oi=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)he(t,Te(e)),e=bn(e);return t}:Ne;function _i(e){return be(e,Fi,Oi)}var $i=Object.prototype.hasOwnProperty;var qi=/\w*$/;var es=w?w.prototype:void 0,ts=es?es.valueOf:void 0;function ns(e,t,n){var r,i,s,u=e.constructor;switch(t){case"[object ArrayBuffer]":return Ai(e);case"[object Boolean]":case"[object Date]":return new u(+e);case"[object DataView]":return function(e,t){var n=t?Ai(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Ni(e,n);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(e);case"[object RegExp]":return(s=new(i=e).constructor(i.source,qi.exec(i))).lastIndex=i.lastIndex,s;case"[object Symbol]":return r=e,ts?Object(ts.call(r)):{}}}var rs=Je&&Je.isMap,is=rs?Ue(rs):function(e){return L(e)&&"[object Map]"==bt(e)};var ss=Je&&Je.isSet,us=ss?Ue(ss):function(e){return L(e)&&"[object Set]"==bt(e)},os="[object Arguments]",cs="[object Function]",ls="[object Object]",as={};function ds(e,t,n,r,i,s){var u,o=1&t,c=2&t,l=4&t;if(n&&(u=i?n(e,r,i,s):n(e)),void 0!==u)return u;if(!x(e))return e;var d=a(e);if(d){if(u=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$i.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!o)return xi(e,u)}else{var D=bt(e),M=D==cs||"[object GeneratorFunction]"==D;if(ze(e))return bi(e,o);if(D==ls||D==os||M&&!i){if(u=c||M?{}:Zi(e),!o)return c?function(e,t){return Yi(e,Oi(e),t)}(e,function(e,t){return e&&Yi(t,Fi(t),e)}(u,e)):function(e,t){return Yi(e,Te(e),t)}(e,function(e,t){return e&&Yi(t,ut(t),e)}(u,e))}else{if(!as[D])return i?e:{};u=ns(e,D,o)}}s||(s=new Me);var w=s.get(e);if(w)return w;s.set(e,u),us(e)?e.forEach(function(r){u.add(ds(r,t,n,r,e,s))}):is(e)&&e.forEach(function(r,i){u.set(i,ds(r,t,n,i,e,s))});var y=d?void 0:(l?c?_i:ot:c?Fi:ut)(e);return Pn(y||e,function(r,i){y&&(r=e[i=r]),Si(u,i,ds(r,t,n,i,e,s))}),u}as[os]=as["[object Array]"]=as["[object ArrayBuffer]"]=as["[object DataView]"]=as["[object Boolean]"]=as["[object Date]"]=as["[object Float32Array]"]=as["[object Float64Array]"]=as["[object Int8Array]"]=as["[object Int16Array]"]=as["[object Int32Array]"]=as["[object Map]"]=as["[object Number]"]=as[ls]=as["[object RegExp]"]=as["[object Set]"]=as["[object String]"]=as["[object Symbol]"]=as["[object Uint8Array]"]=as["[object Uint8ClampedArray]"]=as["[object Uint16Array]"]=as["[object Uint32Array]"]=!0,as["[object Error]"]=as[cs]=as["[object WeakMap]"]=!1;function Ds(e){return ds(e,5)}var Ms=Ft("length"),ws="\\ud800-\\udfff",ys="["+ws+"]",ms="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",gs="\\ud83c[\\udffb-\\udfff]",Is="[^"+ws+"]",Cs="(?:\\ud83c[\\udde6-\\uddff]){2}",ps="[\\ud800-\\udbff][\\udc00-\\udfff]",fs="(?:"+ms+"|"+gs+")"+"?",Ls="[\\ufe0e\\ufe0f]?",hs=Ls+fs+("(?:\\u200d(?:"+[Is,Cs,ps].join("|")+")"+Ls+fs+")*"),bs="(?:"+[Is+ms+"?",ms,Cs,ps,ys].join("|")+")",As=RegExp(gs+"(?="+gs+")|"+bs+hs,"g");function Ns(e){return Wr(e)?function(e){for(var t=As.lastIndex=0;As.test(e);)++t;return t}(e):Ms(e)}function xs(e){if(null==e)return 0;if(st(e))return"string"==typeof(t=e)||!a(t)&&L(t)&&"[object String]"==f(t)?Ns(e):e.length;var t,n=bt(e);return"[object Map]"==n||"[object Set]"==n?e.size:it(e).length}function Es(e={}){let t=lr(),n={},r=null,i=De(e,"timeAlive");In(i)||(i=1e4),i=gn(i);let s=De(e,"timeDetect");return In(s)||(s=50),s=gn(s),t.trigger=function(e,u){Ot(e)?(hr(n,e)||setTimeout(()=>{t.emit("message",{eventName:"enter",key:e,data:u,now:xs(n)})},1),n[e]={data:u,time:Date.now()},null===r&&(r=setInterval(()=>{Jn(n,(e,r)=>{if(Date.now()-e.time>i){let e=Ds(n[r]);delete n[r],t.emit("message",{eventName:"leave",key:r,data:e.data,now:xs(n)})}}),Jt(n)||(clearInterval(r),r=null)},s))):console.log("trigger need key")},t.get=function(){let e=[];return Jn(n,(t,n)=>{e.push({key:n,data:t.data})}),e=Ds(e),e},t}function Ts(e,t={}){let n={};if(Jt(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=lr()),!hr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let r=(t,...n)=>{setTimeout(()=>{e.emit(t,...n)},1)},i=Es(),s=setInterval(()=>{let e=kt(i.get(),"key"),t={};Jn(e,e=>{t[e]=De(n,e,[])}),n=t},1e3);i.on("message",function({eventName:e,key:t,data:n,now:i}){"enter"===e?r("clientEnter",t,n):"leave"===e&&r("clientLeave",t,n),r("clientChange",i)}),e.on("execute",function(e,t,s){if("[sys:polling]"===e)try{let e=De(t,"clientId",""),r=De(n,e,[]);r=Ds(r),n[e]=[],i.trigger(e,t),s.resolve(r)}catch(e){r("error",e),s.reject("[sys:polling] error")}});return e.getClients=i.get,e.getMessages=()=>Ds(n),e.broadcast=e=>{if(!Jt(n))return;let t={};Jn(n,(n,r)=>{n.push({mode:"broadcast",data:e}),t[r]=n}),n=t},e.clearBroadcast=()=>{clearInterval(s)},e}let Zs=(e,t)=>{let n={};return Jn(e,e=>{let r=e,i=De(t,e,"");Ot(i)&&(n[r]=i)}),n};function vs(e,t,n,r={}){if(!Jt(e))throw new Error("invalid instWConverServer");if(0===xs(t))return e;if(!Jt(n))return e;let i=De(r,"genTag");Sn(i)||(i=()=>nr()+"|"+sr(6));let s={};return Jn(t,e=>{s[e]=i()}),e.initTableTags(s,"useInputOnly"),Jn(t,t=>{let r=n[t];if(!r)throw new Error(`invalid kpOrm[${t}]`);try{r.on("change",()=>{e.updateTableTag(t)})}catch(e){throw new Error(`kpOrm[${t}] can not listen to change events`)}}),e.on("changeTableTags",n=>{e.broadcast({mode:"syncKpTable",data:Zs(t,n)})}),e}function Xs(e,t,n,r){for(var i=n-1,s=e.length;++i<s;)if(r(e[i],t))return i;return-1}var Ss=Array.prototype.splice;function Ys(e,t){return e&&e.length&&t&&t.length?function(e,t,n,r){var i=r?Xs:Kr,s=-1,u=t.length,o=e;for(e===t&&(t=xi(t)),n&&(o=ie(e,Ue(n)));++s<u;)for(var c=0,l=t[s],a=n?n(l):l;(c=i(o,a,c,r))>-1;)o!==e&&Ss.call(o,c,1),Ss.call(e,c,1);return e}(e,t):e}function Gs(e,t={}){if(!Jt(e))throw new Error("invalid instWConverServer");let n=De(t,"getUserIdByToken",null);Sn(n)||(n=async()=>"");let r=De(t,"useDbOrm",null);ur(r)||(r=!1);let i=null;if(r&&(i=De(t,"operOrm",null),!Sn(i)))throw new Error("invalid opt.operOrm when useDbOrm=true");let s=[];if(r&&(s=De(t,"tableNames",null),!Cn(s)))throw new Error("invalid opt.tableNames when useDbOrm=true");let u=[];r&&(u=De(t,"methods",null),Cn(u)||(u=["select","insert","save","del"]));let o=De(t,"kpFunExt",null);let c={};async function l(e,t,r){if(!Ot(e))return r.resolve({state:"error",msg:"invalid func"}),r;let i="";if(!hr(t,"__sysToken__"))return r.resolve({state:"error",msg:"invalid token"}),r;if(i=Mr(t.__sysToken__),!hr(t,"__sysInputArgs__"))return r.resolve({state:"error",msg:"invalid input"}),r;t=t.__sysInputArgs__;let s="";if(s=n(i),Yn(s)&&(s=await s),Ot(s)||(s=""),"[sys:getFuncList]"===e){let e=ut(c);e=function(e,t){if(!hn(e))return[];if((Pt(t)||an(t)||Rt(t)||ur(t))&&(t=[t]),!hn(t))return e;let n=Ds(e);return Ys(n,t),n}(e,"[sys:getTableTags]");let t={state:"success",msg:e};return r.resolve(t),r}if(!hr(c,e))return r.resolve({state:"error",msg:`invalid func[${e}]`}),r;let u=c[e];try{let e=await Wn(u)(s,...t);r.resolve(e)}catch(t){r.resolve({state:"error",msg:`call func[${e}] has an error: ${t.message}`})}return r}return r&&(s=Ds(s),c=function(e,t,n){let r={};return Jn(e,e=>{Jn(t,t=>{r[`${e}.${t}`]=async function(r,i){return await n(r,e,t,i)}})}),r}(s,u,i)),Jt(o)&&Jn(o,(e,t)=>{c[t]=e}),e.on("execute",async function(t,n,r){await l(t,n,r).catch(n=>{e.emit("error",n),r.resolve({state:"error",msg:`execFun func[${t}] has an error: ${n.message}`})})}),e}function js(e,t={}){if(Jt(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=lr()),!hr(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let n=De(t,"fpTableTags",null);Ot(n)||(n="./tableTags.json");let r=De(t,"genTag");Sn(r)||(r=()=>nr()+"|"+sr(6)),e=new Ts(e=new Ri(e,{fpTableTags:n,genTag:r}));let i=De(t,"useDbOrm",null);ur(i)||(i=!0);let s=De(t,"kpOrm",null),u=De(t,"operOrm",null),o=De(t,"tableNamesExec",null),c=De(t,"methodsExec",null),l=De(t,"tableNamesSync",null),a=De(t,"getUserIdByToken",null),d=De(t,"kpFunExt",null);if(Jt(d)||(d={}),d={...d,"[sys:getTableTags]":()=>{let t=e.getTableTags();return{mode:"syncKpTable",data:Zs(l,t)}}},e=new Gs(e,{getUserIdByToken:a,useDbOrm:i,operOrm:u,tableNames:o,methods:c,kpFunExt:d}),i){if(!Pt(s))return e.emit("error","invalid opt.kpOrm when useDbOrm=true"),e;e=new vs(e,l,s,{genTag:r})}return e}function Fs(e={}){let t=lr(),i=null,s=null,u=De(e,"port");Dn(u)||(u=8080);let o=De(e,"corsOrigins",[]);hn(o)||(o=["http://localhost"]);let c=De(e,"delayForSlice","");jn(c)||(c=100),c=gn(c);let l=De(e,"useInert");ur(l)||(l=!0);let a=De(e,"pathStaticFiles");Ot(a)||(a="dist");let d=De(e,"apis");hn(d)||(d=[]);let D=De(e,"apiName");Ot(D)||(D="api");let M=De(e,"pathUploadTemp");Ot(M)||(M="./uploadTemp"),Hn(M)||dr(M);let w=De(e,"tokenType");Ot(w)||(w="Bearer");let y=De(e,"sizeSlice");In(y)||(y=1048576);let m=De(e,"verifyConn");Sn(m)||(m=()=>!0);let g=De(e,"getUserIdByToken",null),I=De(e,"useDbOrm",null);ur(I)||(I=!0);let C=De(e,"kpOrm",null),p=De(e,"operOrm",null),f=De(e,"tableNamesExec",null),L=De(e,"methodsExec",null),h=De(e,"tableNamesSync",null),b=De(e,"kpFunExt",null),A=De(e,"fnTableTags",null),N=De(e,"genTag");Sn(N)||(N=()=>nr()+"|"+sr(6));let x=De(e,"showLog");ur(x)||(x=!0);(async()=>{await(async()=>{i=new n.Server({port:u,routes:{timeout:{server:!1,socket:!1},cors:{origin:o,credentials:!1}}}),l&&await i.register(r);let e=[];l&&(e=[{method:"GET",path:"/{file*}",handler:{directory:{path:`${a}/`}}}]),e=[...e,...d],i.route(e)})(),await(async()=>{s=new di({serverHapi:i,apiName:D,pathUploadTemp:M,tokenType:w,sizeSlice:y,verifyConn:m,corsOrigins:o,delayForSlice:c}),s.on("open",function(){x&&console.log(`Server[port:${u}]: open`)}),s.on("clientChange",function(e){x&&console.log(`Server[port:${u}]: now clients: ${e}`)})})(),await(async()=>{s=new js(s,{getUserIdByToken:g,useDbOrm:I,kpOrm:C,operOrm:p,tableNamesExec:f,tableNamesSync:h,methodsExec:L,kpFunExt:b,fnTableTags:A,genTag:N}),s.on("error",e=>{t.emit("error",e)})})(),await i.start(),x&&console.log(`Server running at: ${i.info.uri}`)})().catch(e=>{t.emit("error",e)}),process.on("unhandledRejection",e=>{console.log("unhandledRejection",e),t.emit("error",{mode:"unhandledRejection",err:e})}),process.on("uncaughtException",e=>{console.log("uncaughtException",e),t.emit("error",{mode:"uncaughtException",err:e})});return t.getServer=async()=>(await ar(()=>null!==i),i),t.getInstWConverServer=async()=>(await ar(()=>null!==s),s),t}function Ks(e,t){let n=zn();if(!Cn(e)&&!Pt(e))return n.reject("rs is not an array or object"),n;let r=!1;if(Pt(e)){r=!0;let t=[];Jn(e,(e,n)=>{t.push({k:n,v:e})}),e=t}Sn(t)||(t=function(e){return e});let i=-1,s=[];return e.reduce(function(e,n){return e.then(function(e){s.push(e),i+=1;let u=i,o=n;return r&&(u=n.k,o=n.v),Sn(t)?t(o,u):o})},Promise.resolve()).then(function(e){var t,r,i,u;s.push(e),u=null==(t=s)?0:t.length,s=u?jr(t,(r=i||void 0===r?1:cn(r))<0?0:r,u):[],n.resolve(s)}).catch(function(e){n.reject(e)}),n}let zs={backup:async function(e){return await Ks(e,async(e,t)=>(console.log("backup...",t),{name:t,data:await e.select()}))},recover:async function(e,n,r,i=!1){if(!kn(e))throw console.log("fp",e),new Error("fp is not exist");if(!Jt(n))throw console.log("woItems",n),new Error("invalid woItems");Sn(r)||(r=null),ur(i)||(i=!1);let s=t.readFileSync(e,"utf8");s=ei(s);let u=Gn(s);Sn(r)&&r(),await Ks(u,async e=>{console.log("recover...",e.name),i&&(console.log("needCreateStorage"),await n[e.name].createStorage());let t=null;return xs(e.data)>0&&(t=await n[e.name].insert(e.data)),t})}};function Ws(){if(!Sn(tr))throw new Error("invalid dayjs");return tr().format("YYYY-MM-DDTHH:mm:ss.SSSZ")}var Bs={exports:{}},Vs={},Hs={exports:{}},Us={};function ks(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var Qs=/javascript\s*\:/gim;Us.whiteList=ks(),Us.getDefaultWhiteList=ks,Us.onAttr=function(e,t,n){},Us.onIgnoreAttr=function(e,t,n){},Us.safeAttrValue=function(e,t){return Qs.test(t)?"":t};var Ps={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,i;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,i=e.length;r<i;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(e){return String.prototype.trimRight?e.trimRight():e.replace(/(\s*$)/g,"")}};var Js=function(e,t){";"!==(e=Ps.trimRight(e))[e.length-1]&&(e+=";");var n=e.length,r=!1,i=0,s=0,u="";function o(){if(!r){var n=Ps.trim(e.slice(i,s)),o=n.indexOf(":");if(-1!==o){var c=Ps.trim(n.slice(0,o)),l=Ps.trim(n.slice(o+1));if(c){var a=t(i,u.length,c,l,n);a&&(u+=a+"; ")}}}i=s+1}for(;s<n;s++){var c=e[s];if("/"===c&&"*"===e[s+1]){var l=e.indexOf("*/",s+2);if(-1===l)break;i=(s=l+1)+1,r=!1}else"("===c?r=!0:")"===c?r=!1:";"===c?r||o():"\n"===c&&o()}return Ps.trim(u)},Rs=Us,Os=Js;function _s(e){return null==e}function $s(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).whiteList=e.whiteList||Rs.whiteList,e.onAttr=e.onAttr||Rs.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||Rs.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||Rs.safeAttrValue,this.options=e}$s.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,n=t.whiteList,r=t.onAttr,i=t.onIgnoreAttr,s=t.safeAttrValue;return Os(e,function(e,t,u,o,c){var l=n[u],a=!1;if(!0===l?a=l:"function"==typeof l?a=l(o):l instanceof RegExp&&(a=l.test(o)),!0!==a&&(a=!1),o=s(u,o)){var d,D={position:t,sourcePosition:e,source:c,isWhite:a};return a?_s(d=r(u,o,D))?u+":"+o:d:_s(d=i(u,o,D))?void 0:d}})};var qs=$s;!function(e,t){var n=Us,r=qs;for(var i in(t=e.exports=function(e,t){return new r(t).process(e)}).FilterCSS=r,n)t[i]=n[i];"undefined"!=typeof window&&(window.filterCSS=e.exports)}(Hs,Hs.exports);var eu=Hs.exports,tu={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t,n){var r,i;if(Array.prototype.forEach)return e.forEach(t,n);for(r=0,i=e.length;r<i;r++)t.call(n,e[r],r,e)},trim:function(e){return String.prototype.trim?e.trim():e.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(e){var t=/\s|\n|\t/.exec(e);return t?t.index:-1}},nu=eu.FilterCSS,ru=eu.getDefaultWhiteList,iu=tu;function su(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var uu=new nu;function ou(e){return e.replace(cu,"&lt;").replace(lu,"&gt;")}var cu=/</g,lu=/>/g,au=/"/g,du=/&quot;/g,Du=/&#([a-zA-Z0-9]*);?/gim,Mu=/&colon;?/gim,wu=/&newline;?/gim,yu=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,mu=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,gu=/u\s*r\s*l\s*\(.*/gi;function Iu(e){return e.replace(au,"&quot;")}function Cu(e){return e.replace(du,'"')}function pu(e){return e.replace(Du,function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))})}function fu(e){return e.replace(Mu,":").replace(wu," ")}function Lu(e){for(var t="",n=0,r=e.length;n<r;n++)t+=e.charCodeAt(n)<32?" ":e.charAt(n);return iu.trim(t)}function hu(e){return e=Lu(e=fu(e=pu(e=Cu(e))))}function bu(e){return e=ou(e=Iu(e))}Vs.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]},Vs.getDefaultWhiteList=su,Vs.onTag=function(e,t,n){},Vs.onIgnoreTag=function(e,t,n){},Vs.onTagAttr=function(e,t,n){},Vs.onIgnoreTagAttr=function(e,t,n){},Vs.safeAttrValue=function(e,t,n,r){if(n=hu(n),"href"===t||"src"===t){if("#"===(n=iu.trim(n)))return"#";if("http://"!==n.substr(0,7)&&"https://"!==n.substr(0,8)&&"mailto:"!==n.substr(0,7)&&"tel:"!==n.substr(0,4)&&"data:image/"!==n.substr(0,11)&&"ftp://"!==n.substr(0,6)&&"./"!==n.substr(0,2)&&"../"!==n.substr(0,3)&&"#"!==n[0]&&"/"!==n[0])return""}else if("background"===t){if(yu.lastIndex=0,yu.test(n))return""}else if("style"===t){if(mu.lastIndex=0,mu.test(n))return"";if(gu.lastIndex=0,gu.test(n)&&(yu.lastIndex=0,yu.test(n)))return"";!1!==r&&(n=(r=r||uu).process(n))}return n=bu(n)},Vs.escapeHtml=ou,Vs.escapeQuote=Iu,Vs.unescapeQuote=Cu,Vs.escapeHtmlEntities=pu,Vs.escapeDangerHtml5Entities=fu,Vs.clearNonPrintableCharacter=Lu,Vs.friendlyAttrValue=hu,Vs.escapeAttrValue=bu,Vs.onIgnoreTagStripAll=function(){return""},Vs.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var n=!Array.isArray(e),r=[],i=!1;return{onIgnoreTag:function(s,u,o){if(function(t){return!!n||-1!==iu.indexOf(e,t)}(s)){if(o.isClosing){var c="[/removed]",l=o.position+10;return r.push([!1!==i?i:o.position,l]),i=!1,c}return i||(i=o.position),"[removed]"}return t(s,u,o)},remove:function(e){var t="",n=0;return iu.forEach(r,function(r){t+=e.slice(n,r[0]),n=r[1]}),t+=e.slice(n)}}},Vs.stripCommentTag=function(e){for(var t="",n=0;n<e.length;){var r=e.indexOf("\x3c!--",n);if(-1===r){t+=e.slice(n);break}t+=e.slice(n,r);var i=e.indexOf("--\x3e",r);if(-1===i)break;n=i+3}return t},Vs.stripBlankChar=function(e){var t=e.split("");return(t=t.filter(function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))})).join("")},Vs.attributeWrapSign='"',Vs.cssFilter=uu,Vs.getDefaultCSSWhiteList=ru;var Au={},Nu=tu;function xu(e){var t,n=Nu.spaceIndex(e);return t=-1===n?e.slice(1,-1):e.slice(1,n+1),"/"===(t=Nu.trim(t).toLowerCase()).slice(0,1)&&(t=t.slice(1)),"/"===t.slice(-1)&&(t=t.slice(0,-1)),t}function Eu(e){return"</"===e.slice(0,2)}var Tu=/[^a-zA-Z0-9\\_:.-]/gim;function Zu(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"="===n?t:-1}}function vu(e,t){for(;t<e.length;t++){var n=e[t];if(" "!==n)return"'"===n||'"'===n?t:-1}}function Xu(e,t){for(;t>0;t--){var n=e[t];if(" "!==n)return"="===n?t:-1}}function Su(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}Au.parseTag=function(e,t,n){var r="",i=0,s=!1,u=!1,o=0,c=e.length,l="",a="";e:for(o=0;o<c;o++){var d=e.charAt(o);if(!1===s){if("<"===d){s=o;continue}}else if(!1===u){if("<"===d){r+=n(e.slice(i,o)),s=o,i=o;continue}if(">"===d||o===c-1){r+=n(e.slice(i,s)),l=xu(a=e.slice(s,o+1)),r+=t(s,r.length,l,a,Eu(a)),i=o+1,s=!1;continue}if('"'===d||"'"===d)for(var D=1,M=e.charAt(o-D);""===M.trim()||"="===M;){if("="===M){u=d;continue e}M=e.charAt(o-++D)}}else if(d===u){u=!1;continue}}return i<c&&(r+=n(e.substr(i))),r},Au.parseAttr=function(e,t){var n=0,r=0,i=[],s=!1,u=e.length;function o(e,n){if(!((e=(e=Nu.trim(e)).replace(Tu,"").toLowerCase()).length<1)){var r=t(e,n||"");r&&i.push(r)}}for(var c=0;c<u;c++){var l,a=e.charAt(c);if(!1!==s||"="!==a)if(!1===s||c!==r)if(/\s|\n|\t/.test(a)){if(e=e.replace(/\s|\n|\t/g," "),!1===s){if(-1===(l=Zu(e,c))){o(Nu.trim(e.slice(n,c))),s=!1,n=c+1;continue}c=l-1;continue}if(-1===(l=Xu(e,c-1))){o(s,Su(Nu.trim(e.slice(n,c)))),s=!1,n=c+1;continue}}else;else{if(-1===(l=e.indexOf(a,c+1)))break;o(s,Nu.trim(e.slice(r+1,l))),s=!1,n=(c=l)+1}else s=e.slice(n,c),n=c+1,r='"'===e.charAt(n)||"'"===e.charAt(n)?n:vu(e,c+1)}return n<e.length&&(!1===s?o(e.slice(n)):o(s,Su(Nu.trim(e.slice(n))))),Nu.trim(i.join(" "))};var Yu=eu.FilterCSS,Gu=Vs,ju=Au,Fu=ju.parseTag,Ku=ju.parseAttr,zu=tu;function Wu(e){return null==e}function Bu(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=Gu.onIgnoreTagStripAll),e.whiteList||e.allowList?e.whiteList=function(e){var t={};for(var n in e)Array.isArray(e[n])?t[n.toLowerCase()]=e[n].map(function(e){return e.toLowerCase()}):t[n.toLowerCase()]=e[n];return t}(e.whiteList||e.allowList):e.whiteList=Gu.whiteList,this.attributeWrapSign=!0===e.singleQuotedAttributeValue?"'":Gu.attributeWrapSign,e.onTag=e.onTag||Gu.onTag,e.onTagAttr=e.onTagAttr||Gu.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||Gu.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||Gu.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||Gu.safeAttrValue,e.escapeHtml=e.escapeHtml||Gu.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new Yu(e.css))}Bu.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this,n=t.options,r=n.whiteList,i=n.onTag,s=n.onIgnoreTag,u=n.onTagAttr,o=n.onIgnoreTagAttr,c=n.safeAttrValue,l=n.escapeHtml,a=t.attributeWrapSign,d=t.cssFilter;n.stripBlankChar&&(e=Gu.stripBlankChar(e)),n.allowCommentTag||(e=Gu.stripCommentTag(e));var D=!1;n.stripIgnoreTagBody&&(D=Gu.StripTagBody(n.stripIgnoreTagBody,s),s=D.onIgnoreTag);var M=Fu(e,function(e,t,n,D,M){var w={sourcePosition:e,position:t,isClosing:M,isWhite:Object.prototype.hasOwnProperty.call(r,n)},y=i(n,D,w);if(!Wu(y))return y;if(w.isWhite){if(w.isClosing)return"</"+n+">";var m=function(e){var t=zu.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=zu.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=zu.trim(e.slice(0,-1))),{html:e,closing:n}}(D),g=r[n],I=Ku(m.html,function(e,t){var r=-1!==zu.indexOf(g,e),i=u(n,e,t,r);return Wu(i)?r?(t=c(n,e,t,d))?e+"="+a+t+a:e:Wu(i=o(n,e,t,r))?void 0:i:i});return D="<"+n,I&&(D+=" "+I),m.closing&&(D+=" /"),D+=">"}return Wu(y=s(n,D,w))?l(D):y},l);return D&&(M=D.remove(M)),M};var Vu=Bu;!function(e,t){var n=Vs,r=Au,i=Vu;function s(e,t){return new i(t).process(e)}(t=e.exports=s).filterXSS=s,t.FilterXSS=i,function(){for(var e in n)t[e]=n[e];for(var i in r)t[i]=r[i]}(),"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)}(Bs,Bs.exports);var Hu=$n(Bs.exports);function Uu(){return"undefined"!=typeof self?self:"undefined"!=typeof window&&void 0!==window.document?window:"undefined"!=typeof global?global:null}function ku(e){let t=function(){let e=Uu();return Hu||e.xss}();let n=function e(n){return Cn(n)||Pt(n)?(Jn(n,function(t,r){n[r]=e(t)}),n):Ot(n)?t(n,{onIgnoreTagAttr:function(e,n,r,i){if("style"===n)return n+'="'+t.escapeAttrValue(r)+'"'}}):n}(Ds(e));return n}let Qu=null,Pu=null;function Ju(e,t,n,r="save"){if(!Jt(Qu))throw console.log("ds",Qu),new Error("invalid ds");let i=Qu[e].keys,s=!1;Cn(n)||(s=!0,n=[n]);let u=Ws();return r.indexOf("insert")>=0&&(i.indexOf("userId")>=0&&Jn(n,(e,r)=>{n[r].userId=t}),i.indexOf("timeCreate")>=0&&Jn(n,(e,t)=>{n[t].timeCreate=u}),i.indexOf("userIdUpdate")>=0&&Jn(n,(e,r)=>{n[r].userIdUpdate=t}),i.indexOf("timeUpdate")>=0&&Jn(n,(e,t)=>{n[t].timeUpdate=u})),(r.indexOf("insert")>=0||r.indexOf("save")>=0)&&(i.indexOf("userIdUpdate")>=0&&Jn(n,(e,r)=>{n[r].userIdUpdate=t}),i.indexOf("timeUpdate")>=0&&Jn(n,(e,t)=>{n[t].timeUpdate=u})),n=kt(n,(e,t)=>{let n={};return Jn(e,(e,t)=>{e=ku(e),n[t]=e}),n}),n=s?n[0]:n}async function Ru(e,t,n,r){let i,s=null;if(!Jt(Pu))return Promise.reject("無有效woItems");let u=De(Pu,t,null);if(null===u)return Promise.reject(`ORM找不到表名稱: ${t}`);if("select"===n){if(i=await u.select(r).catch(e=>{console.log(`${t}.select catch`,e),s="取得資料失敗"}),Ot(s))return Promise.reject(s)}else if("insert"===n||"save"===n){try{r=Ju(t,e,r,n)}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if("insert"===n?i=await u.insert(r).catch(e=>{console.log(`${t}.save catch`,e),s="新增資料失敗"}):"save"===n&&(i=await u.save(r).catch(e=>{console.log(`${t}.save catch`,e),s="儲存資料失敗"})),Ot(s))return Promise.reject(s);i=Cn(r)?kt(r,e=>({id:e.id})):{id:r.id}}else if("del"===n)i=await u.del(r).catch(e=>{console.log(`${t}.del catch`,e),s="刪除資料失敗"});else if("delAll"===n)i=await u.delAll(r).catch(e=>{console.log(`${t}.delAll catch`,e),s="刪除資料失敗"});else if("mix"===n){if(!Jt(r))return Promise.reject("mix僅支援輸入ltdtDiffByKey結果物件");let n;i=[];let o=De(r,"add",[]);if(xs(o)>0){try{o=Ju(t,e,o,"insert+save")}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if(await u.insert(o).catch(e=>{console.log(`${t}.save catch`,e),s="新增資料失敗"}),Ot(s))return Promise.reject(s);n=kt(o,e=>({id:e.id})),i=[...i,...n]}let c=De(r,"del",[]);if(xs(c)>0){if(await u.del(c).catch(e=>{console.log(`${t}.save catch`,e),s="刪除資料失敗"}),Ot(s))return Promise.reject(s);n=kt(c,e=>({id:e.id})),i=[...i,...n]}let l=De(r,"diff",[]);if(xs(l)>0){try{l=Ju(t,e,l)}catch(e){return console.log("adjustData catch",e.toString()),s="調整資料失敗",Promise.reject(s)}if(await u.save(l).catch(e=>{console.log(`${t}.save catch`,e),s="變更資料失敗"}),Ot(s))return Promise.reject(s);n=kt(l,e=>({id:e.id})),i=[...i,...n]}}else s=`invalid mode: ${n}`;return Ot(s)?Promise.reject(s):i}function Ou(e,t){return Qu=e,Pu=t,Ru}function _u(e,t){var n=[];return Ht(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function $u(e,t){return(a(e)?Ae:_u)(e,zt(t))}function qu(e,t=null){if(!Cn(e)){let e=zn();return e.reject("pms is not an array"),e}return e.reduce((e,t)=>e.then(t),Promise.resolve(t))}let eo=[],to=[],no=[],ro=null,io=null,so=!0,uo=!0;function oo(e){setTimeout(()=>{eo.push(e)},1)}function co(e){setTimeout(()=>{to.push(e)},1)}function lo(e){setTimeout(()=>{no.push(e)},1)}async function ao(e,t,n,r){if(!Sn(ro))return Promise.reject("invalid mapOrm");if(so&&!Ot(e))return console.log("userId",e),console.log("找不到使用者主鍵"),Promise.reject("找不到使用者主鍵");let i="n";if(so){if(!Sn(io))return Promise.reject("invalid getUserById");let t=await io(e);if(!t)return console.log("userId",e),console.log("找不到使用者資訊"),Promise.reject("找不到使用者資訊");i=De(t,"isAdmin"),"y"!==i&&"n"!==i&&(i="n");let n=De(t,"isActive");if("y"!==n&&"n"!==n&&(n="n"),"y"!==n)return console.log("userId",e),console.log("oSelf",t),console.log("使用者被停權或無有效使用者資訊"),Promise.reject("使用者被停權或無有效使用者資訊")}if(await Ks(eo,s=>s({woName:t,userId:e,isAdmin:i,mode:n,input:r})),xs(to)>0){let s={woName:t,userId:e,isAdmin:i,mode:n,input:r},u=await qu(to,s);r=u.input}let s=await ro(e,t,n,r);return uo&&"n"===i&&"select"===n&&Cn(s)&&(s=$u(s,e=>!hr(e,"isActive")||!("n"===e.isActive))),xs(no)>0&&(s=await qu(no,{woName:t,userId:e,isAdmin:i,mode:n,input:r,output:s})),s}function Do(e,t,n,r,i={}){let s=function(e,t,n,r){if(!Jt(e))throw console.log("ds",e),new Error("invalid ds");if(!Sn(t))throw console.log("WOrm",t),new Error("invalid WOrm");if(!Ot(n))throw console.log("url",n),new Error("invalid url");if(!Ot(r))throw console.log("db",r),new Error("invalid db");let i={};return Jn(ut(e),e=>{let s=new t({url:n,db:r,cl:e});i[e]=s}),i}(e,t,n,r),u=function(e,t={}){return Sn(e)?(ro=e,so=De(t,"useCheckUser"),ur(so)||(so=!0),io=De(t,"getUserById"),uo=De(t,"useExcludeWhenNotAdmin"),ur(uo)||(uo=!0),{addFunCheck:oo,addFunPreProcessing:co,addFunPostProcessing:lo,procOrm:ao}):Promise.reject("invalid mapOrm")}(Ou(e,s),i);return{...zs,woItems:s,closeAll:async()=>{await Ks(s,async e=>{e&&Sn(e.close)&&await e.close()})},...u}}const Mo=[];for(let e=0;e<256;++e)Mo.push((e+256).toString(16).slice(1));const wo=new Uint8Array(16);function yo(){return crypto.getRandomValues(wo)}const mo={};function go(e,t,n){let r;if(e)r=Io(e.random??e.rng?.()??yo(),e.msecs,e.seq,t,n);else{const e=Date.now(),i=yo();!function(e,t,n){e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=Co(n),e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(mo,e,i),r=Io(i,mo.msecs,mo.seq,t,n)}return t??function(e,t=0){return(Mo[e[t+0]]+Mo[e[t+1]]+Mo[e[t+2]]+Mo[e[t+3]]+"-"+Mo[e[t+4]]+Mo[e[t+5]]+"-"+Mo[e[t+6]]+Mo[e[t+7]]+"-"+Mo[e[t+8]]+Mo[e[t+9]]+"-"+Mo[e[t+10]]+Mo[e[t+11]]+Mo[e[t+12]]+Mo[e[t+13]]+Mo[e[t+14]]+Mo[e[t+15]]).toLowerCase()}(r)}function Io(e,t,n,r,i=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(i<0||i+16>r.length)throw new RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`)}else r=new Uint8Array(16),i=0;return t??=Date.now(),n??=Co(e),r[i++]=t/1099511627776&255,r[i++]=t/4294967296&255,r[i++]=t/16777216&255,r[i++]=t/65536&255,r[i++]=t/256&255,r[i++]=255&t,r[i++]=112|n>>>28&15,r[i++]=n>>>20&255,r[i++]=128|n>>>14&63,r[i++]=n>>>6&255,r[i++]=n<<2&255|3&e[10],r[i++]=e[11],r[i++]=e[12],r[i++]=e[13],r[i++]=e[14],r[i++]=e[15],r}function Co(e){return(127&e[6])<<24|e[7]<<16|e[8]<<8|e[9]}function po(){return go()}function fo(e,t){if(!Pt(e))return{};if(!hn(t))return{};let n={};return Jn(t,function(t){hr(e,t)&&(n[t]=De(e,t))}),n}let Lo="grups",ho={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"名稱",type:"STRING"},description:{name:"說明",type:"TEXT"},from:{name:"來源",type:"STRING"},cpemis:{name:"權限清單",type:"TEXT"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},bo=(e={})=>{let t=Rn(e,ut(ho));return t.id=`${po()}`,t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t},Ao="pemis",No={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"名稱",type:"STRING"},description:{name:"說明",type:"TEXT"},from:{name:"來源",type:"STRING"},crules:{name:"管控對象清單",type:"TEXT"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},xo=(e={})=>{let t=Rn(e,ut(No));return t.id=`${po()}`,t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t},Eo="targets",To={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},description:{name:"說明",type:"TEXT"},from:{name:"來源",type:"STRING"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},Zo=(e={})=>{let t=Rn(e,ut(To));return t.id=`${po()}`,t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t},vo="users",Xo={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},name:{name:"姓名",type:"STRING"},email:{name:"電子郵件",type:"STRING"},description:{name:"描述",type:"TEXT"},from:{name:"來源",type:"STRING"},cgrups:{name:"權限群組清單",type:"TEXT"},isAdmin:{name:"是否為系統管理員",type:"STRING"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"},isActive:{name:"是否有效",type:"STRING"}},So=(e={})=>{let t=Rn(e,ut(Xo));return t.id=`${po()}`,t.isAdmin="n",t.userIdUpdate=t.userId,t.timeCreate=Ws(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t.isActive="y",t};function Yo(e,t={}){let n=De(t,"useCreateStorage");ur(n)||(n=!1);let{keyTable:r,tableNameCht:i,tableNameEng:s,settings:u,parser:o,funNew:c,funTest:l,ext:a}=e;if(!Ot(r))throw new Error(`invalid keyTable[${r}]`);if(Ot(i)||(i=r),Ot(s)||(s=r),!Jt(u))throw new Error("invalid settings");Jt(a)||(a=null),Jt(o)||(o=null),Sn(c)||(c=null);let d=null;Sn(l)&&(d=async e=>{if(!Jt(e))throw new Error("invalid wo");if(!hr(e,r))throw console.log(e),new Error(`keyTable[${r}] is not in wo`);let t=[];try{t=l(),Yn(t)&&(t=await t)}catch(e){throw console.log(`keyTable[${r}] funTest catch`,e),new Error(e)}if(0!==xs(t))return n&&await e[r].createStorage(),await e[r].save(t),t});let D={},M={};return Jn(ut(u),e=>{let t=De(u,`${e}.name`,"");Ot(t)&&(D[e]=t);let n=De(u,`${e}.type`,"");Ot(n)&&(M[e]=n)}),{...e,keyTable:r,tableNameCht:i,tableNameEng:s,settings:u,keys:ut(u),kpType:M,kpHead:D,parser:o,funNew:c,funTest:l,funTestAndSave:d,ext:a}}let Go={grups:{keyTable:Lo,tableNameCht:"權限群組設定",tableNameEng:"Permission groups",settings:ho,funNew:bo,funTest:()=>{let e=[["權限群組M1","\n {\n '權限P1': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P2': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n }\n "],["權限群組M2","\n {\n '權限P2': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P3': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n }\n "],["權限群組M3","\n {\n '權限P2': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P3': {\n 'mode': 'AND',\n 'isActive': 'y',\n },\n }\n "],["權限群組M4","\n {\n '權限P3': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n '權限P4': {\n 'mode': 'OR',\n 'isActive': 'y',\n },\n }\n "]];return e=kt(e,([e,t],n)=>{let r=bo({userId:"id-for-admin",order:n,name:e,description:`${e}的說明`,cpemis:t});return r.id=`id-for-${e}`,r=fo(r,ut(ho)),r}),console.log(`已產生: ${Lo} 測試資料`,e),e}},pemis:{keyTable:Ao,tableNameCht:"權限設定",tableNameEng:"Permissions",settings:No,funNew:xo,funTest:()=>{let e=[["權限P1","{ \"專案A/頁A/區塊A\": 'y', \"專案A/頁B/區塊A\": 'n', \"專案A/頁C\": 'n' }"],["權限P2","{ \"專案A/頁C\": 'y', \"專案B/頁A/區塊A\": 'y', \"專案B/頁A/區塊B\": 'y' }"],["權限P3","{ \"專案A/頁C\": 'y', \"專案B/頁A/區塊A\": 'n', \"專案B/頁A/區塊B\": 'y', \"專案B/頁A/區塊C\": 'y' }"],["權限P4","{ \"專案B/頁B/區塊A/待辦事項清單\": 'y', \"專案B/頁B/區塊B/顯示後台按鈕\": 'n' }"]];return e=kt(e,([e,t],n)=>{let r=xo({userId:"id-for-admin",order:n,name:e,description:`${e}的說明`,crules:t});return r.id=`id-for-${e}`,r=fo(r,ut(No)),r}),console.log(`已產生: ${Ao} 測試資料`,e),e}},targets:{keyTable:Eo,tableNameCht:"管控對象",tableNameEng:"Targets",settings:To,funNew:Zo,funTest:()=>{let e=["專案A/頁A/區塊A","專案A/頁A/區塊A/執行按鈕","專案A/頁A/區塊A/分析按鈕","專案A/頁B/區塊A","專案A/頁B/區塊A/執行按鈕","專案A/頁B/區塊A/分析按鈕","專案A/頁B/區塊B/展開按鈕","專案A/頁B/區塊B/下載按鈕","專案A/頁C","專案B/頁A/區塊A","專案B/頁A/區塊A/顯示綜合報表","專案B/頁A/區塊A/顯示當前數據","專案B/頁A/區塊B","專案B/頁A/區塊B/下載報表按鈕","專案B/頁A/區塊B/下載數據按鈕","專案B/頁A/區塊C","專案B/頁B/區塊A","專案B/頁B/區塊A/待辦事項清單","專案B/頁B/區塊A/相關資源清單","專案B/頁B/區塊B","專案B/頁B/區塊B/顯示後台按鈕","專案B/頁B/區塊B/轉跳主站按鈕"];return e=kt(e,(e,t)=>{let n=Zo({userId:"id-for-admin",order:t,description:`${e}的說明`});return n.id=e,n=fo(n,ut(To)),n}),console.log(`已產生: ${Eo} 測試資料`,e),e}},users:{keyTable:vo,tableNameCht:"使用者",tableNameEng:"Users",settings:Xo,funNew:So,funTest:()=>{let e=[["peter","teamA","\n { \n '權限群組M1': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","n"],["mary","teamA","\n { \n '權限群組M2': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","n"],["john","teamA","\n { \n '權限群組M3': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","n"],["admin","","\n { \n '權限群組M4': {\n 'mode': 'OR',\n 'isActive': 'y',\n }\n }\n ","y"]];return e=kt(e,([e,t,n,r],i)=>{let s=So({userId:"id-for-admin",order:i,name:e,email:`${e}@example.com`,from:t,cgrups:n,isAdmin:r});return s.id=`id-for-${e}`,s.isAdmin=r,s=fo(s,ut(Xo)),s}),console.log(`已產生: ${vo} 測試資料`,e),e}}},jo={};for(let e in Go)jo[e]=Yo(Go[e],{useCreateStorage:!1});var Fo={exports:{}};!function(e){e.exports=function(){function e(e,t){return e(t={exports:{}},t.exports),t.exports}var t=e(function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)}),n=e(function(e){var t=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=t)});n.version;var r=function(e){return"object"==typeof e?null!==e:"function"==typeof e},i=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e},s=function(e){try{return!!e()}catch(e){return!0}},u=!s(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),o=t.document,c=r(o)&&r(o.createElement),l=function(e){return c?o.createElement(e):{}},a=!u&&!s(function(){return 7!=Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a}),d=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")},D=Object.defineProperty,M={f:u?Object.defineProperty:function(e,t,n){if(i(e),t=d(t,!0),i(n),a)try{return D(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},w=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},y=u?function(e,t,n){return M.f(e,t,w(1,n))}:function(e,t,n){return e[t]=n,e},m={}.hasOwnProperty,g=function(e,t){return m.call(e,t)},I=0,C=Math.random(),p=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++I+C).toString(36))},f=e(function(e){var r="__core-js_shared__",i=t[r]||(t[r]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})}),L=f("native-function-to-string",Function.toString),h=e(function(e){var r=p("src"),i="toString",s=(""+L).split(i);n.inspectSource=function(e){return L.call(e)},(e.exports=function(e,n,i,u){var o="function"==typeof i;o&&(g(i,"name")||y(i,"name",n)),e[n]!==i&&(o&&(g(i,r)||y(i,r,e[n]?""+e[n]:s.join(String(n)))),e===t?e[n]=i:u?e[n]?e[n]=i:y(e,n,i):(delete e[n],y(e,n,i)))})(Function.prototype,i,function(){return"function"==typeof this&&this[r]||L.call(this)})}),b=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e},A=function(e,t,n){if(b(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},N="prototype",x=function(e,r,i){var s,u,o,c,l=e&x.F,a=e&x.G,d=e&x.S,D=e&x.P,M=e&x.B,w=a?t:d?t[r]||(t[r]={}):(t[r]||{})[N],m=a?n:n[r]||(n[r]={}),g=m[N]||(m[N]={});for(s in a&&(i=r),i)o=((u=!l&&w&&void 0!==w[s])?w:i)[s],c=M&&u?A(o,t):D&&"function"==typeof o?A(Function.call,o):o,w&&h(w,s,o,e&x.U),m[s]!=o&&y(m,s,c),D&&g[s]!=o&&(g[s]=o)};t.core=n,x.F=1,x.G=2,x.S=4,x.P=8,x.B=16,x.W=32,x.U=64,x.R=128;var E,T=x,Z=Math.ceil,v=Math.floor,X=function(e){return isNaN(e=+e)?0:(e>0?v:Z)(e)},S=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Y=(E=!1,function(e,t){var n,r,i=String(S(e)),s=X(t),u=i.length;return s<0||s>=u?E?"":void 0:(n=i.charCodeAt(s))<55296||n>56319||s+1===u||(r=i.charCodeAt(s+1))<56320||r>57343?E?i.charAt(s):n:E?i.slice(s,s+2):r-56320+(n-55296<<10)+65536});T(T.P,"String",{codePointAt:function(e){return Y(this,e)}}),n.String.codePointAt;var G=Math.max,j=Math.min,F=function(e,t){return(e=X(e))<0?G(e+t,0):j(e,t)},K=String.fromCharCode,z=String.fromCodePoint;T(T.S+T.F*(!!z&&1!=z.length),"String",{fromCodePoint:function(e){for(var t,n=arguments,r=[],i=arguments.length,s=0;i>s;){if(t=+n[s++],F(t,1114111)!==t)throw RangeError(t+" is not a valid code point");r.push(t<65536?K(t):K(55296+((t-=65536)>>10),t%1024+56320))}return r.join("")}}),n.String.fromCodePoint;var W,B,V,H,U,k,Q,P,J,R,O,_,$,q,ee={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},te={isSpaceSeparator:function(e){return"string"==typeof e&&ee.Space_Separator.test(e)},isIdStartChar:function(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||"$"===e||"_"===e||ee.ID_Start.test(e))},isIdContinueChar:function(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"$"===e||"_"===e||"‌"===e||"‍"===e||ee.ID_Continue.test(e))},isDigit:function(e){return"string"==typeof e&&/[0-9]/.test(e)},isHexDigit:function(e){return"string"==typeof e&&/[0-9A-Fa-f]/.test(e)}},ne=function(e,t){W=String(e),B="start",V=[],H=0,U=1,k=0,Q=void 0,P=void 0,J=void 0;do{Q=ie(),Me[B]()}while("eof"!==Q.type);return"function"==typeof t?re({"":J},"",t):J};function re(e,t,n){var r=e[t];if(null!=r&&"object"==typeof r)if(Array.isArray(r))for(var i=0;i<r.length;i++){var s=String(i),u=re(r,s,n);void 0===u?delete r[s]:Object.defineProperty(r,s,{value:u,writable:!0,enumerable:!0,configurable:!0})}else for(var o in r){var c=re(r,o,n);void 0===c?delete r[o]:Object.defineProperty(r,o,{value:c,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}function ie(){for(R="default",O="",_=!1,$=1;;){q=se();var e=oe[R]();if(e)return e}}function se(){if(W[H])return String.fromCodePoint(W.codePointAt(H))}function ue(){var e=se();return"\n"===e?(U++,k=0):e?k+=e.length:k++,e&&(H+=e.length),e}var oe={default:function(){switch(q){case"\t":case"\v":case"\f":case" ":case" ":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void ue();case"/":return ue(),void(R="comment");case void 0:return ue(),ce("eof")}if(!te.isSpaceSeparator(q))return oe[B]();ue()},comment:function(){switch(q){case"*":return ue(),void(R="multiLineComment");case"/":return ue(),void(R="singleLineComment")}throw me(ue())},multiLineComment:function(){switch(q){case"*":return ue(),void(R="multiLineCommentAsterisk");case void 0:throw me(ue())}ue()},multiLineCommentAsterisk:function(){switch(q){case"*":return void ue();case"/":return ue(),void(R="default");case void 0:throw me(ue())}ue(),R="multiLineComment"},singleLineComment:function(){switch(q){case"\n":case"\r":case"\u2028":case"\u2029":return ue(),void(R="default");case void 0:return ue(),ce("eof")}ue()},value:function(){switch(q){case"{":case"[":return ce("punctuator",ue());case"n":return ue(),le("ull"),ce("null",null);case"t":return ue(),le("rue"),ce("boolean",!0);case"f":return ue(),le("alse"),ce("boolean",!1);case"-":case"+":return"-"===ue()&&($=-1),void(R="sign");case".":return O=ue(),void(R="decimalPointLeading");case"0":return O=ue(),void(R="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return O=ue(),void(R="decimalInteger");case"I":return ue(),le("nfinity"),ce("numeric",1/0);case"N":return ue(),le("aN"),ce("numeric",NaN);case'"':case"'":return _='"'===ue(),O="",void(R="string")}throw me(ue())},identifierNameStartEscape:function(){if("u"!==q)throw me(ue());ue();var e=De();switch(e){case"$":case"_":break;default:if(!te.isIdStartChar(e))throw Ie()}O+=e,R="identifierName"},identifierName:function(){switch(q){case"$":case"_":case"‌":case"‍":return void(O+=ue());case"\\":return ue(),void(R="identifierNameEscape")}if(!te.isIdContinueChar(q))return ce("identifier",O);O+=ue()},identifierNameEscape:function(){if("u"!==q)throw me(ue());ue();var e=De();switch(e){case"$":case"_":case"‌":case"‍":break;default:if(!te.isIdContinueChar(e))throw Ie()}O+=e,R="identifierName"},sign:function(){switch(q){case".":return O=ue(),void(R="decimalPointLeading");case"0":return O=ue(),void(R="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return O=ue(),void(R="decimalInteger");case"I":return ue(),le("nfinity"),ce("numeric",$*(1/0));case"N":return ue(),le("aN"),ce("numeric",NaN)}throw me(ue())},zero:function(){switch(q){case".":return O+=ue(),void(R="decimalPoint");case"e":case"E":return O+=ue(),void(R="decimalExponent");case"x":case"X":return O+=ue(),void(R="hexadecimal")}return ce("numeric",0*$)},decimalInteger:function(){switch(q){case".":return O+=ue(),void(R="decimalPoint");case"e":case"E":return O+=ue(),void(R="decimalExponent")}if(!te.isDigit(q))return ce("numeric",$*Number(O));O+=ue()},decimalPointLeading:function(){if(te.isDigit(q))return O+=ue(),void(R="decimalFraction");throw me(ue())},decimalPoint:function(){switch(q){case"e":case"E":return O+=ue(),void(R="decimalExponent")}return te.isDigit(q)?(O+=ue(),void(R="decimalFraction")):ce("numeric",$*Number(O))},decimalFraction:function(){switch(q){case"e":case"E":return O+=ue(),void(R="decimalExponent")}if(!te.isDigit(q))return ce("numeric",$*Number(O));O+=ue()},decimalExponent:function(){switch(q){case"+":case"-":return O+=ue(),void(R="decimalExponentSign")}if(te.isDigit(q))return O+=ue(),void(R="decimalExponentInteger");throw me(ue())},decimalExponentSign:function(){if(te.isDigit(q))return O+=ue(),void(R="decimalExponentInteger");throw me(ue())},decimalExponentInteger:function(){if(!te.isDigit(q))return ce("numeric",$*Number(O));O+=ue()},hexadecimal:function(){if(te.isHexDigit(q))return O+=ue(),void(R="hexadecimalInteger");throw me(ue())},hexadecimalInteger:function(){if(!te.isHexDigit(q))return ce("numeric",$*Number(O));O+=ue()},string:function(){switch(q){case"\\":return ue(),void(O+=ae());case'"':return _?(ue(),ce("string",O)):void(O+=ue());case"'":return _?void(O+=ue()):(ue(),ce("string",O));case"\n":case"\r":throw me(ue());case"\u2028":case"\u2029":Ce(q);break;case void 0:throw me(ue())}O+=ue()},start:function(){switch(q){case"{":case"[":return ce("punctuator",ue())}R="value"},beforePropertyName:function(){switch(q){case"$":case"_":return O=ue(),void(R="identifierName");case"\\":return ue(),void(R="identifierNameStartEscape");case"}":return ce("punctuator",ue());case'"':case"'":return _='"'===ue(),void(R="string")}if(te.isIdStartChar(q))return O+=ue(),void(R="identifierName");throw me(ue())},afterPropertyName:function(){if(":"===q)return ce("punctuator",ue());throw me(ue())},beforePropertyValue:function(){R="value"},afterPropertyValue:function(){switch(q){case",":case"}":return ce("punctuator",ue())}throw me(ue())},beforeArrayValue:function(){if("]"===q)return ce("punctuator",ue());R="value"},afterArrayValue:function(){switch(q){case",":case"]":return ce("punctuator",ue())}throw me(ue())},end:function(){throw me(ue())}};function ce(e,t){return{type:e,value:t,line:U,column:k}}function le(e){for(var t=0,n=e;t<n.length;t+=1){var r=n[t];if(se()!==r)throw me(ue());ue()}}function ae(){switch(se()){case"b":return ue(),"\b";case"f":return ue(),"\f";case"n":return ue(),"\n";case"r":return ue(),"\r";case"t":return ue(),"\t";case"v":return ue(),"\v";case"0":if(ue(),te.isDigit(se()))throw me(ue());return"\0";case"x":return ue(),de();case"u":return ue(),De();case"\n":case"\u2028":case"\u2029":return ue(),"";case"\r":return ue(),"\n"===se()&&ue(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw me(ue())}return ue()}function de(){var e="",t=se();if(!te.isHexDigit(t))throw me(ue());if(e+=ue(),t=se(),!te.isHexDigit(t))throw me(ue());return e+=ue(),String.fromCodePoint(parseInt(e,16))}function De(){for(var e="",t=4;t-- >0;){var n=se();if(!te.isHexDigit(n))throw me(ue());e+=ue()}return String.fromCodePoint(parseInt(e,16))}var Me={start:function(){if("eof"===Q.type)throw ge();we()},beforePropertyName:function(){switch(Q.type){case"identifier":case"string":return P=Q.value,void(B="afterPropertyName");case"punctuator":return void ye();case"eof":throw ge()}},afterPropertyName:function(){if("eof"===Q.type)throw ge();B="beforePropertyValue"},beforePropertyValue:function(){if("eof"===Q.type)throw ge();we()},beforeArrayValue:function(){if("eof"===Q.type)throw ge();"punctuator"!==Q.type||"]"!==Q.value?we():ye()},afterPropertyValue:function(){if("eof"===Q.type)throw ge();switch(Q.value){case",":return void(B="beforePropertyName");case"}":ye()}},afterArrayValue:function(){if("eof"===Q.type)throw ge();switch(Q.value){case",":return void(B="beforeArrayValue");case"]":ye()}},end:function(){}};function we(){var e;switch(Q.type){case"punctuator":switch(Q.value){case"{":e={};break;case"[":e=[]}break;case"null":case"boolean":case"numeric":case"string":e=Q.value}if(void 0===J)J=e;else{var t=V[V.length-1];Array.isArray(t)?t.push(e):Object.defineProperty(t,P,{value:e,writable:!0,enumerable:!0,configurable:!0})}if(null!==e&&"object"==typeof e)V.push(e),B=Array.isArray(e)?"beforeArrayValue":"beforePropertyName";else{var n=V[V.length-1];B=null==n?"end":Array.isArray(n)?"afterArrayValue":"afterPropertyValue"}}function ye(){V.pop();var e=V[V.length-1];B=null==e?"end":Array.isArray(e)?"afterArrayValue":"afterPropertyValue"}function me(e){return fe(void 0===e?"JSON5: invalid end of input at "+U+":"+k:"JSON5: invalid character '"+pe(e)+"' at "+U+":"+k)}function ge(){return fe("JSON5: invalid end of input at "+U+":"+k)}function Ie(){return fe("JSON5: invalid identifier character at "+U+":"+(k-=5))}function Ce(e){console.warn("JSON5: '"+pe(e)+"' in strings is not valid ECMAScript; consider escaping")}function pe(e){var t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e])return t[e];if(e<" "){var n=e.charCodeAt(0).toString(16);return"\\x"+("00"+n).substring(n.length)}return e}function fe(e){var t=new SyntaxError(e);return t.lineNumber=U,t.columnNumber=k,t}var Le=function(e,t,n){var r,i,s,u=[],o="",c="";if(null==t||"object"!=typeof t||Array.isArray(t)||(n=t.space,s=t.quote,t=t.replacer),"function"==typeof t)i=t;else if(Array.isArray(t)){r=[];for(var l=0,a=t;l<a.length;l+=1){var d=a[l],D=void 0;"string"==typeof d?D=d:("number"==typeof d||d instanceof String||d instanceof Number)&&(D=String(d)),void 0!==D&&r.indexOf(D)<0&&r.push(D)}}return n instanceof Number?n=Number(n):n instanceof String&&(n=String(n)),"number"==typeof n?n>0&&(n=Math.min(10,Math.floor(n)),c=" ".substr(0,n)):"string"==typeof n&&(c=n.substr(0,10)),M("",{"":e});function M(e,t){var n=t[e];switch(null!=n&&("function"==typeof n.toJSON5?n=n.toJSON5(e):"function"==typeof n.toJSON&&(n=n.toJSON(e))),i&&(n=i.call(t,e,n)),n instanceof Number?n=Number(n):n instanceof String?n=String(n):n instanceof Boolean&&(n=n.valueOf()),n){case null:return"null";case!0:return"true";case!1:return"false"}return"string"==typeof n?w(n):"number"==typeof n?String(n):"object"==typeof n?Array.isArray(n)?g(n):y(n):void 0}function w(e){for(var t={"'":.1,'"':.2},n={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},r="",i=0;i<e.length;i++){var u=e[i];switch(u){case"'":case'"':t[u]++,r+=u;continue;case"\0":if(te.isDigit(e[i+1])){r+="\\x00";continue}}if(n[u])r+=n[u];else if(u<" "){var o=u.charCodeAt(0).toString(16);r+="\\x"+("00"+o).substring(o.length)}else r+=u}var c=s||Object.keys(t).reduce(function(e,n){return t[e]<t[n]?e:n});return c+(r=r.replace(new RegExp(c,"g"),n[c]))+c}function y(e){if(u.indexOf(e)>=0)throw TypeError("Converting circular structure to JSON5");u.push(e);var t=o;o+=c;for(var n,i,s=[],l=0,a=r||Object.keys(e);l<a.length;l+=1){var d=a[l],D=M(d,e);if(void 0!==D){var w=m(d)+":";""!==c&&(w+=" "),w+=D,s.push(w)}}if(0===s.length)n="{}";else if(""===c)n="{"+(i=s.join(","))+"}";else{var y=",\n"+o;i=s.join(y),n="{\n"+o+i+",\n"+t+"}"}return u.pop(),o=t,n}function m(e){if(0===e.length)return w(e);var t=String.fromCodePoint(e.codePointAt(0));if(!te.isIdStartChar(t))return w(e);for(var n=t.length;n<e.length;n++)if(!te.isIdContinueChar(String.fromCodePoint(e.codePointAt(n))))return w(e);return e}function g(e){if(u.indexOf(e)>=0)throw TypeError("Converting circular structure to JSON5");u.push(e);var t=o;o+=c;for(var n,r=[],i=0;i<e.length;i++){var s=M(String(i),e);r.push(void 0!==s?s:"null")}if(0===r.length)n="[]";else if(""===c)n="["+r.join(",")+"]";else{var l=",\n"+o,a=r.join(l);n="[\n"+o+a+",\n"+t+"]"}return u.pop(),o=t,n}},he={parse:ne,stringify:Le},be=he,Ae=be;return Ae}()}(Fo);var Ko=$n(Fo.exports);function zo(e,t,n,r){let i=e=>{let t={};try{t=Ko.parse(e)}catch(t){console.log("c",e),console.log(t)}let n=[];try{n=(e=>{let t=[];return Jn(e,(e,n)=>{let r={name:n};r=Jt(e)?{...r,...e}:{...r,isActive:e},t.push(r)}),t})(t)}catch(n){console.log("c",e),console.log("kp",t),console.log(n)}return n},s=(e,t,n)=>{let r=[];return Jn(e,e=>{let i=De(e,n,"");Jn(t,t=>{let s=De(t,n,"");if(i===s)return r.push({...e,data:t}),!1})}),r},u=e=>{let t=[];if(Jn(e,e=>{let n=De(e,"mode","");if("OR"!==n&&"AND"!==n)return!0;let r=De(e,"rules",[]),i={};Jn(r,e=>{i[e.name]=e.isActive}),t.push({mode:n,kpRule:i})}),0===xs(t))return[];let n=$u(t,{mode:"OR"}),r=$u(t,{mode:"AND"}),i=null;xs(n)>0?i=De(n,"0.kpRule"):xs(r)>0&&(i=De(r,"0.kpRule")),Jn(n,e=>{let t=De(e,"kpRule",{});i=((e,t)=>{let n={};return Jn([e,t],e=>{Jn(e,(e,t)=>{hr(n,t)||(n[t]="n"),"y"===n[t]||"y"===e?n[t]="y":n[t]="n"})}),n})(i,t)}),Jn(r,(e,t)=>{let n=De(e,"kpRule",{});i=((e,t)=>{let n=Ds(e);return Jn([t],e=>{Jn(e,(e,t)=>{hr(n,t)||(n[t]="n"),"y"===n[t]&&"y"===e?n[t]="y":n[t]="n"})}),n})(i,n)});let s=[];return Jn(i,(e,t)=>{s.push({name:t,isActive:e})}),s},o=De(e,"cgrups",""),c=i(o);c=s(c,t,"name"),c=$u(c,{isActive:"y"}),c=kt(c,e=>{let t=De(e,"data.cpemis",""),r=i(t);return r=$u(r,{isActive:"y"}),r=s(r,n,"name"),e.data._pemis=r,e}),c=kt(c,e=>{let t=De(e,"data._pemis",[]);return t=kt(t,e=>{let t=De(e,"data.crules",""),n=i(t);return e.data._rules=n,e}),e.data._pemis=t,e});let l=[];{let e=[];Jn(c,t=>{let n=t.mode,r=t.data._pemis,i=[];Jn(r,e=>{let t=e.mode,n=e.data._rules;i.push({mode:t,rules:n})});let s={mode:n,rules:u(i)};e.push(s)}),l=u(e)}{let e={};Jn(l,t=>{e[t.name]=t.isActive});let t=[];Jn(r,n=>{t.push({name:n.id,isActive:De(e,n.id,"n")})}),l=t}return{grups:c,rules:l}}function Wo(e,t){return Zt(e,t)}function Bo(e,t){function n(e){return Cn(e)?e:[e]}if(Ln(e))return!1;if(0===(e=n(e)).length)return!1;if(Ln(e))return!1;if(0===(t=n(t)).length)return!1;for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++)if(Wo(e[n],t[r]))return!0;return!1}function Vo(e,t,{srLog:n,kmx:r}){let i=async(i,s,u,o)=>await r("updateTabItems:"+i,async()=>{u=kt(u=On(u,jo[i].keys),(e,t)=>(e.order=t+1,e));let r=(e,t)=>{let r=null,s={};return Jn(e,(e,u)=>{let o=De(e,t,"");return Ot(o)?hr(s,o)?(n.error({event:"updateTabItems-ckKey-error",keyTable:i,key:t,msg:"saveRowFieldDuplicate",row:u,value:o}),r="saveRowFieldDuplicate",!1):void(s[o]=!0):(n.error({event:"updateTabItems-ckKey-error",keyTable:i,key:t,msg:"saveRowFieldInvalid",row:u}),r="saveRowFieldInvalid",!1)}),r},c=null;if(Bo(i,["targets"])&&(c=r(u,"id"),null!==c))return Promise.reject(c);if(Bo(i,["pemis","grups"])&&(c=r(u,"name"),null!==c))return Promise.reject(c);if(Bo(i,["users"])&&(c=r(u,"email"),null!==c))return Promise.reject(c);let l=await e[i].select(),a=u,d=function(e,t,n,r={}){let i=De(r,"withInfor");ur(i)||(i=!0);let s={del:[],add:[],same:[],diff:[]};if(!Ot(n))return console.log("invalid key"),i&&(s.infor={}),s;Cn(e)||(e=[e]),Cn(t)||(t=[t]),e=$u(e,e=>hr(e,n)),t=$u(t,e=>hr(e,n));let u=new Map(t.map(e=>[e[n],e]));for(let t of e){let e=u.get(t[n]);e?(JSON.stringify(t)===JSON.stringify(e)?s.same.push(e):s.diff.push(e),u.delete(t[n])):s.del.push(t)}if(s.add=Array.from(u.values()),i){let e={};for(let t of s.del)e[t[n]]="del";for(let t of s.add)e[t[n]]="add";for(let t of s.diff)e[t[n]]="diff";for(let t of s.same)e[t[n]]="same";s.infor=e}return s}(l,a,o);return xs(d.del)>0&&await t(s,i,"del",d.del),xs(d.add)>0&&await t(s,i,"insert",d.add),xs(d.diff)>0&&await t(s,i,"save",d.diff),a}),s=(e,t,r)=>{n.error({event:e,userId:t,msg:"string"==typeof r?r:r&&r.message||e})};return{updateTargets:async(e,t)=>{try{await i("targets",e,t,"id")}catch(t){throw s("updateTargets-error",e,t),t}return n.info({event:"updateTargets-success",userId:e}),"saveTabItemsSuccess"},updatePemis:async(e,t)=>{try{await i("pemis",e,t,"name")}catch(t){throw s("updatePemis-error",e,t),t}return n.info({event:"updatePemis-success",userId:e}),"saveTabItemsSuccess"},updateGrups:async(e,t)=>{try{await i("grups",e,t,"name")}catch(t){throw s("updateGrups-error",e,t),t}return n.info({event:"updateGrups-success",userId:e}),"saveTabItemsSuccess"},updateUsers:async(e,t)=>{try{await i("users",e,t,"id")}catch(t){throw s("updateUsers-error",e,t),t}return n.info({event:"updateUsers-success",userId:e}),"saveTabItemsSuccess"}}}let Ho={csIng:{eng:"Connecting...",cht:"連線中..."},csLogin:{eng:"Logged in",cht:"已登入"},csLogout:{eng:"Logged out",cht:"已登出"},csErrConn:{eng:"Unable to connect",cht:"無法連線"},csErrLogin:{eng:"Login denied",cht:"拒絕登入"},aggridLanguage:{eng:"en",cht:"zh-tw"},systemMessage:{eng:"System message",cht:"系統確認訊息"},ok:{eng:"OK",cht:"確認"},no:{eng:"No",cht:"取消"},yes:{eng:"Yes",cht:"確定"},empty:{eng:"Empty",cht:"無"},waitingData:{eng:"Waiting data...",cht:"等待數據中..."},saveChanges:{eng:"Save changes",cht:"儲存變更"},id:{eng:"Id",cht:"主鍵"},from:{eng:"From",cht:"來源"},save:{eng:"Save",cht:"儲存"},close:{eng:"Close",cht:"關閉"},delete:{eng:"Delete",cht:"刪除"},screenFull:{eng:"Max size",cht:"最大化尺寸"},screenNormal:{eng:"Normal size",cht:"預設尺寸"},checkAllYes:{eng:"Check all",cht:"全選使用"},checkAllNo:{eng:"Uncheck all",cht:"全不選使用"},checkAllInv:{eng:"Reverse all",cht:"全反選使用"},operMode:{eng:"Enable",cht:"是否使用"},operPemiEnable:{eng:"Operator",cht:"合併權限模式"},operGrupEnable:{eng:"Operator",cht:"合併權限群組模式"},processing:{eng:"Processing...",cht:"處理中請稍後..."},anUnexpectedErrorOccurred:{eng:"An unexpected error occurred, please contact the administrator",cht:"發生非預期錯誤,請洽管理員"},cannotConnectServer:{eng:"Cannot connect to server",cht:"無法連線至伺服器"},saveRowFieldInvalid:{eng:"Invalid field value in saved data",cht:"儲存資料的欄位值無效"},saveRowFieldDuplicate:{eng:"Duplicate field value in saved data",cht:"儲存資料的欄位值重複"},saveTabItemsSuccess:{eng:"Saved successfully",cht:"儲存成功"},cannotGetUserId:{eng:"Cannot get the user id",cht:"無法取得使用者 Id"},cannotGetUserEmail:{eng:"Cannot get the email of user",cht:"無法取得使用者 Email"},cannotGetUserName:{eng:"Cannot get the name of user",cht:"無法取得使用者名稱"},cannotGetUserRole:{eng:"Cannot get the role of user",cht:"無法取得使用者角色"},cannotFindUserFromToken:{eng:"Cannot identify the user from token",cht:"無法由 token 識別使用者"},cannotGetUserProp:{eng:"Cannot get the property of user",cht:"無法取得使用者對應屬性"},cannotGetUserFromPerm:{eng:"Cannot find the user in permission system",cht:"無法於權限系統取得使用者"},userNoPermission:{eng:"User does not have permission",cht:"使用者權限不足"},invalidPayload:{eng:"Invalid payload in request",cht:"請求內容無效"},invalidFromInPayload:{eng:"Invalid from in payload",cht:"請求來源欄位無效"},invalidRowsInPayload:{eng:"Invalid rows in payload",cht:"請求資料列無效"},invalidFrom:{eng:"Invalid from",cht:"來源欄位無效"},invalidRows:{eng:"Invalid rows",cht:"資料列無效"},cannotGetUserRules:{eng:"Cannot get rules of user",cht:"無法取得使用者權限規則"},tokenNoPermission:{eng:"Token does not have permission",cht:"權限不足"},userIdNoPermrules:{eng:"The user id does not have permission rules",cht:"此使用者沒有權限規則"},invalidKeyTable:{eng:"Invalid key table",cht:"資料表名稱無效"},cannotFindUserId:{eng:"Cannot find the user id",cht:"無法找到使用者 Id"},username:{eng:"Username",cht:"使用者姓名"},email:{eng:"Email",cht:"電子郵件"},name:{eng:"Name",cht:"名稱"},description:{eng:"Description",cht:"說明"},modeEdit:{eng:"Edit mode",cht:"編輯模式"},showTabCols:{eng:"Show columns",cht:"顯示欄位"},belongUsers:{eng:"Use users",cht:"管控所屬使用者"},belongGrups:{eng:"Use groups",cht:"所屬權限群組"},belongGrupsNames:{eng:"Use permission groups",cht:"所屬權限群組名稱"},belongPemisNames:{eng:"Use permissions",cht:"所屬權限名稱"},isAdmin:{eng:"Administrator",cht:"是否為系統管理員"},isActive:{eng:"Active",cht:"是否有效"},errInNames:{eng:"Name errors",cht:"名稱出現錯誤待修復"},errInIds:{eng:"ID errors",cht:"ID 出現錯誤待修復"},errInEmails:{eng:"Email errors",cht:"Email出現錯誤待修復"},menuTreeShow:{eng:"Show menu",cht:"顯示選單"},menuTreeHide:{eng:"Hide menu",cht:"隱藏選單"},mmTargets:{eng:"Targets",cht:"管理對象"},mmTargetsMsg:{eng:"Targets generally refer to entities such as pages, data, etc., and can also include features or services.",cht:"對象泛指實體的頁面、數據等,亦可為的功能或服務。"},mmPemis:{eng:"Permissions",cht:"管理權限"},mmPemisMsg:{eng:"Permissions are primarily used to set rules for enabling or disabling various objects.",cht:"權限主要為用來設定各種對象之使用或禁用規則。"},mmGrups:{eng:"Permission groups",cht:"管理權限群組"},mmGrupsMsg:{eng:"Permission groups are primarily used to configure combinations of different permissions.",cht:"權限群組主要為用來設定組合各種權限。"},mmUsers:{eng:"Users",cht:"管理使用者"},mmUsersMsg:{eng:"Users are primarily for providing or extending user information and can be configured with combinations of various permission groups.",cht:"使用者主要為提供或擴充使用者資訊,並可設定組合各種權限群組。"},targetId:{eng:"Target",cht:"對象名稱"},targetIdEmpty:{eng:"Invalid name",cht:"尚未給予有效對象名稱"},targetIdDuplicate:{eng:"Duplicate target",cht:"對象名稱出現重複"},targetAddEmpty:{eng:"No target",cht:"尚未新增管理資料"},targetAdd:{eng:"Add target",cht:"新增對象"},targetAddNameNew:{eng:"New target",cht:"新對象"},targetAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},targetCopy:{eng:"Copy target",cht:"複製對象"},targetCopyNameNew:{eng:"copy",cht:"複製"},targetDeleteCheckTargets:{eng:"Delete target(s)",cht:"刪除勾選對象"},targetEnable:{eng:"Enable",cht:"是否使用"},targetSaveTargetsFail:{eng:"Failed to save targets",cht:"儲存對象數據失敗"},targetSaveTargetsSuccess:{eng:"Save targets successfully",cht:"儲存對象數據成功"},pemiName:{eng:"Name of permission",cht:"權限名稱"},pemiNameEmpty:{eng:"Invalid name of permission",cht:"尚未給予有效權限名稱"},pemiNameDuplicate:{eng:"Duplicate name of permission",cht:"權限名稱出現重複"},pemiAddEmpty:{eng:"No permission",cht:"尚未新增權限資料"},pemiAdd:{eng:"Add permission",cht:"新增權限"},pemiAddNameNew:{eng:"New permission",cht:"新權限"},pemiAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},pemiCopy:{eng:"Copy permission",cht:"複製權限"},pemiCopyNameNew:{eng:"copy",cht:"複製"},pemiDeleteCheckPemis:{eng:"Delete permission(s)",cht:"刪除勾選權限"},pemiCrules:{eng:"Rules of permission",cht:"管控對象"},pemiEditBlngGrupsNoPemiId:{eng:"Can not find the id of permission",cht:"無法找到權限Id"},pemiEditBlngGrupsNoPemiData:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},pemiEditCrules:{eng:"Edit rules of permission",cht:"編輯使用對象"},pemiEditCrulesForDisplay:{eng:"Rules of permission",cht:"展示使用對象"},pemiEditCrulesNoPemiId:{eng:"Can not find the id of permission",cht:"無法找到權限Id"},pemiEditCrulesNoPemiData:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},pemiRnderCrulesNoRule:{eng:"No rule",cht:"無使用任何對象"},pemiRnderCrulesHasNRule:{eng:"Has {n} rule(s){nms}",cht:"使用共 {n} 項對象{nms}"},pemiSavePemisFail:{eng:"Failed to save permissions",cht:"儲存權限數據失敗"},pemiSavePemisSuccess:{eng:"Save permissions successfully",cht:"儲存權限數據成功"},pemiBlngEditGrups:{eng:"Edit permission groups",cht:"編輯所屬權限群組"},pemiBlngEditGrupsForDisplay:{eng:"Permission groups",cht:"展示所屬權限群組"},pemiBlngRnderNoGrup:{eng:"No users",cht:"無所屬權限群組"},pemiBlngRnderGrups:{eng:"Has {n} permission group(s){nms}",cht:"共被 {n} 個權限群組{nms}使用"},pemiBlngPemiNow:{eng:"Now permission",cht:"目前權限"},pemiBlngEditNoName:{eng:"Can not find the name of permission",cht:"無法找到權限名稱"},pemiBlngEditNoPemi:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},pemiBlngDeleteCheckPemis:{eng:"Delete permission(s)",cht:"刪除勾選權限"},cruleEditNoTargetId:{eng:"Can not find the id of target",cht:"無法找到對象Id"},cruleEditNoTargetData:{eng:"Can not find the data of target",cht:"無法找到對象資料"},cruleDeleteCheckTargets:{eng:"Delete target(s)",cht:"刪除勾選對象"},grupName:{eng:"Name of permission group",cht:"權限群組名稱"},grupNameEmpty:{eng:"Invalid name of permission group",cht:"尚未給予有效權限群組名稱"},grupNameDuplicate:{eng:"Duplicate name of permission group",cht:"權限群組名稱出現重複"},grupAddEmpty:{eng:"No permission group",cht:"尚未新增權限群組資料"},grupAdd:{eng:"Add permission group",cht:"新增權限群組"},grupAddNameNew:{eng:"New permission group",cht:"新權限群組"},grupAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},grupCopy:{eng:"Copy permission group",cht:"複製權限群組"},grupCopyNameNew:{eng:"copy",cht:"複製"},grupDeleteCheckGrups:{eng:"Delete permission group(s)",cht:"刪除勾選權限群組"},grupCpemis:{eng:"Permissions",cht:"管控使用權限"},grupEditBlngNoGrupId:{eng:"Can not find the id of permission group",cht:"無法找到權限群組Id"},grupEditBlngNoGrupData:{eng:"Can not find the data of permission group",cht:"無法找到權限群組資料"},grupEditCpemis:{eng:"Edit list of permission group",cht:"編輯使用權限"},grupEditCpemisForDisplay:{eng:"List of permission group",cht:"展示使用權限"},grupRnderCpemisNoPermission:{eng:"No permission",cht:"無使用任何權限"},grupRnderCpemisHasNPermissions:{eng:"Has {n} permission(s){nms}",cht:"使用 {n} 項權限{nms}"},grupSaveGrupsEmpty:{eng:"No user",cht:"未有變更權限群組資料"},grupSaveGrupsFail:{eng:"Failed to save permission groups",cht:"儲存權限群組數據失敗"},grupSaveGrupsSuccess:{eng:"Save permission groups successfully",cht:"儲存權限群組數據成功"},grupBlngEditUsers:{eng:"Edit permission group of users",cht:"編輯所屬使用者"},grupBlngEditUsersForDisplay:{eng:"Permission group of users",cht:"展示所屬使用者"},grupBlngRnderNoUser:{eng:"No users",cht:"無所屬使用者"},grupBlngRnderUsers:{eng:"Has {n} user(s){nms}",cht:"共被 {n} 位使用者{nms}使用"},grupBlngGrupNow:{eng:"Now permission group",cht:"目前權限群組"},grupBlngEditNoGrupName:{eng:"Can not find the name of permission group",cht:"無法找到權限群組名稱"},grupBlngEditNoGrupData:{eng:"Can not find the data of permission group",cht:"無法找到權限群組資料"},grupBlngDeleteCheckGrups:{eng:"Delete permission group(s)",cht:"刪除勾選權限群組"},cpemiEditNoName:{eng:"Can not find the name of target",cht:"無法找到對象名稱"},cpemiEditNoTarget:{eng:"Can not find the data of target",cht:"無法找到對象資料"},cpemiDeleteCheckTargets:{eng:"Delete targets(s)",cht:"刪除勾選對象"},userName:{eng:"Name of user",cht:"使用者名稱"},userNameEmpty:{eng:"Invalid name of user",cht:"尚未給予有效使用者名稱"},userNameDuplicate:{eng:"Duplicate name of user",cht:"使用者名稱出現重複"},userEmailEmpty:{eng:"Empty email of user",cht:"尚未給予使用者Email"},userEmailError:{eng:"Invalid email of user",cht:"使用者Email格式錯誤"},userEmailDuplicate:{eng:"Duplicate email of user",cht:"使用者Email出現重複"},userAddEmpty:{eng:"No user",cht:"尚未新增使用者資料"},userAdd:{eng:"Add user",cht:"新增使用者"},userAddNameNew:{eng:"New user",cht:"新使用者"},userAddIdNew:{eng:"Waiting generation",cht:"待自動給予"},userCopy:{eng:"Copy user",cht:"複製使用者"},userCopyNameNew:{eng:"copy",cht:"複製"},userDeleteCheckUsers:{eng:"Delete user(s)",cht:"刪除勾選使用者"},userCgrups:{eng:"Permission groups",cht:"管控使用權限群組"},userEditCgrups:{eng:"Edit list of user",cht:"編輯使用權限群組"},userEditCgrupsForDisplay:{eng:"Permission groups of user",cht:"展示使用權限群組"},userEditCgrupsNoUserId:{eng:"Can not find the id of user",cht:"無法找到使用者Id"},userEditCgrupsNoUserData:{eng:"Can not find the data of user",cht:"無法找到使用者資料"},userSaveUsersEmpty:{eng:"No user",cht:"未有變更使用者資料"},userSaveUsersFail:{eng:"Failed to save users",cht:"儲存使用者數據失敗"},userSaveUsersSuccess:{eng:"Save users successfully",cht:"儲存使用者數據成功"},userEditNoUserId:{eng:"Can not find the id of user",cht:"無法找到使用者Id"},userEditNoUserData:{eng:"Can not find the data of user",cht:"無法找到使用者數據"},userRnderCgrupsNoGroup:{eng:"No permission group",cht:"無使用任何權限群組"},userRnderCgrupsHasNGroups:{eng:"Has {n} permission group(s){nms}",cht:"使用 {n} 項權限群組{nms}"},cgrupEditNoName:{eng:"Can not find the name of permission",cht:"無法找到權限名稱"},cgrupEditNoPemi:{eng:"Can not find the data of permission",cht:"無法找到權限資料"},cgrupDeleteCheckPemis:{eng:"Delete permission(s)",cht:"刪除勾選權限"},show:{eng:"Show",cht:"顯示"},active:{eng:"Active",cht:"啟用"},userId:{eng:"ID of the created user",cht:"創建使用者主鍵"},timeCreate:{eng:"Created time",cht:"創建時間"},userIdUpdate:{eng:"ID of the updated user",cht:"最新變更使用者主鍵"},timeUpdate:{eng:"Updated time",cht:"更新時間"},invalidUrl:{eng:"Invalid url",cht:"網址無效"},invalidTokenTar:{eng:"Invalid target token",cht:"目標 token 無效"},invalidTokenSelf:{eng:"Invalid self token",cht:"自身 token 無效"},invalidUserIdTar:{eng:"Invalid target user id",cht:"目標使用者 Id 無效"},noTokenInUrl:{eng:"Missing token in url",cht:"網址缺少 token"},noTokenUserIdInUrl:{eng:"Missing token or userId in url",cht:"網址缺少 token 或 userId"},cannotGetUserByUrl:{eng:"Cannot get user by url",cht:"無法由網址取得使用者"},cannotGetUserDataByUrl:{eng:"Cannot get user data by url",cht:"無法由網址取得使用者資料"},noUserDataByUrl:{eng:"No user data by url",cht:"該網址無使用者資料"},noUserDataAfterConvert:{eng:"No user data after permission conversion",cht:"權限轉換後無使用者資料"},mmStaInfor:{eng:"Statistics",cht:"統計資訊"},staEventTitle:{eng:"Event Frequency",cht:"事件發生頻率"},staTimeHr:{eng:"Hourly",cht:"每小時"},staTimeDay:{eng:"Daily",cht:"每日"},staTotal:{eng:"Total",cht:"全部加總"},staNoData:{eng:"No event data",cht:"尚無事件資料"},getDataError:{eng:"Failed to load data",cht:"資料載入失敗"},staTableTitle:{eng:"Event Statistics",cht:"事件統計表"},staColEvent:{eng:"Event",cht:"事件"},staColLast1Day:{eng:"Last 1 Day",cht:"最近1日"},staColLast8Hour:{eng:"Last 8 Hours",cht:"最近8小時"},staColLast4Hour:{eng:"Last 4 Hours",cht:"最近4小時"},staColLast1Hour:{eng:"Last 1 Hour",cht:"最近1小時"}},Uo=(e={})=>{let t=De(e,"kpLangExt");Jt(t)||(t={});let n=De(e,"webName");Jt(n)||(n={});let r=De(e,"webDescription");Jt(r)||(r={});let i={};i={...i,...Ho},Jt(t)&&(i={...i,...t}),Jt(n)&&(i={...i,webName:{...n}}),Jt(r)&&(i={...i,webDescription:{...r}});let s={};return Jn(["eng","cht"],e=>{let t={};Jn(i,(n,r)=>{t[r]=n[e]}),s[e]=t}),s},ko=u.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(ac).href:"undefined"==typeof document?location.href:l&&"SCRIPT"===l.tagName.toUpperCase()&&l.src||new URL("w-web-perm.umd.js",document.baseURI).href),Qo=e.dirname(ko);let Po=(n={})=>{let r=De(n,"logFd","");Ot(r)||(r="./logs");let i=De(n,"logInterval","");Ot(i)||(i="hr");let s=De(n,"logNumKeep",null),u={fdLog:r,interval:i};if(null!=s&&""!==s){if(!In(s))throw new Error(`invalid logNumKeep[${s}], must be positive integer`);u.numKeep=gn(s)}let c=function(n={}){let r=lr(),i=De(n,"timeZone",null),s=De(n,"fdLog");Ot(s)||(s="./_logs");let u=De(n,"interval");"day"!==u&&"hr"!==u&&(u="day");let c=De(n,"numKeep");In(c)||(c="day"===u?365:8760),c=gn(c);let l=o.transport({targets:[{level:"info",target:e.resolve(Qo,"./formatter.mjs"),options:{interval:u,fdLog:s,timeZone:i}}]}),a=o(l),d=()=>{try{if(!Hn(s))return;let n="hr"===u?/^\d{4}-\d{2}-\d{2}T\d{2}\.log$/:/^\d{4}-\d{2}-\d{2}\.log$/,i=t.readdirSync(s).filter(e=>n.test(e));i.sort();let o=i.length-c;if(o<=0)return;let l=i.slice(0,o);for(let n of l){let i=e.join(s,n);try{t.unlinkSync(i),r.emit("delete",{fp:i,fn:n})}catch(e){}}}catch(e){console.error("WSyslog cleanLogs error:",e)}};d();let D=setInterval(d,36e5);D.unref();let M=null,w=e=>{let t=a[e].bind(a);return(...n)=>{try{r.emit(e,{args:n})}catch(e){}t(...n)}};return r.fatal=w("fatal"),r.error=w("error"),r.warn=w("warn"),r.info=w("info"),r.debug=w("debug"),r.trace=w("trace"),r.cleanLogs=d,r.clear=(e={})=>{if(null!==M)return M;let t=De(e,"timeLimit");In(t)||(t=6e4),M=zn();let n=!1,r=()=>{n||(n=!0,clearInterval(D),M.resolve())},i=setTimeout(()=>{try{l.worker.terminate()}catch(e){}r()},t);try{a.flush(e=>{if(e||l.closed)return clearTimeout(i),void r();l.once("close",()=>{clearTimeout(i),r()}),l.end()})}catch(e){clearTimeout(i),r()}return M},r}(u);return c};function Jo(){let e=lr(),t={};function n(t,n){setTimeout(()=>{e.emit(t,n)},1)}function r(e,r={}){if(hr(t,e))return;let i=De(r,"fun");Sn(i)||(i=async()=>{});let s=De(r,"inputs");Cn(s)||(s=[]);let u=De(r,"timeExpired");In(u)||(u=5e3),u=gn(u);let o=De(r,"timeFrom");"end"!==o&&(o="start");let c=De(r,"useCacheWhenError");ur(c)||(c=!1);let l=De(r,"useCloneDeep");ur(l)||(l=!0),t[e]={needExec:!0,fun:i,pm:null,gen:0,inputs:s,value:null,time:null,timeExpired:u,timeFrom:o,useCacheWhenError:c,useCloneDeep:l},n("message",{fun:"set",key:e,timeExpired:u,timeFrom:o,useCacheWhenError:c,useCloneDeep:l})}async function i(e,r={}){if(hr(t,e)){let i=t[e],s=De(r,"useCloneDeep");if(ur(s)||(s=i.useCloneDeep),i.pm)return n("message",{fun:"get",key:e,msg:"waiting"}),await i.pm,s?Ds(i.value):i.value;let u=Date.now(),o=i.needExec,c=u-i.time;if(o?n("message",{fun:"get",key:e,msg:"execute first"}):i.timeExpired>0&&c>i.timeExpired&&(n("message",{fun:"get",key:e,msg:"execute by timeExpired",timeDiff:c}),o=!0),o){n("message",{fun:"get",key:e,msg:"fun start"}),i.needExec=!1;let t=i.gen,r=async()=>{try{let r;try{r=await i.fun(...i.inputs)}catch(s){if(n("error",{fun:"get",key:e,msg:s}),!i.useCacheWhenError)throw i.gen===t&&(i.needExec=!0),s;r=void 0}i.gen===t&&(i.value=r,i.time="end"===i.timeFrom?Date.now():u)}finally{i.pm=null,n("message",{fun:"get",key:e,msg:"fun end"})}};i.pm=r(),await i.pm}else n("message",{fun:"get",key:e,msg:"use cache"});return s?Ds(i.value):i.value}return n("error",{fun:"get",key:e,msg:"invalid key"}),null}return e.set=r,e.getProxy=async function(e,t={}){return r(e,t),i(e,t)},e.get=i,e.update=function(e,r){hr(t,e)&&(n("message",{fun:"updateValue",key:e}),t[e].value=r,t[e].time=Date.now(),t[e].gen+=1)},e.clear=function(e){hr(t,e)&&(n("message",{fun:"clear",key:e}),t[e].needExec=!0)},e.remove=function(e){hr(t,e)&&(n("message",{fun:"remove",key:e}),delete t[e])},e}function Ro(n,r=1){return function(e,t=1,n={}){let r=1,i=De(n,"path"),s=De(n,"fs");if(!Vn(e,{fs:s}))throw new Error(`fd[${e}] is not a folder`);return null!==t&&In(t)&&(t=gn(t))<1&&(t=1),function e(n){let u=[];return Vn(n,{fs:s})?(Jn(s.readdirSync(n),function(o){let c=i.resolve(n,o),l=null;try{l=s.statSync(c)}catch(e){}l&&l.isDirectory()?(u.push({isFolder:!0,level:r,path:c,name:i.basename(c)}),r+=1,(r<=t||null===t)&&(u=u.concat(e(c))),r-=1):u.push({isFolder:!1,level:r,path:c,name:i.basename(c)})}),u):u}(e)}(n,r,{path:e,fs:t})}let Oo=new Map,_o=new Map;function $o(e){let t=De(e,"fdLog");return Ot(t)||(t="./logs"),t}function qo(e,n,r){let i=Ro(e);i=i.filter(e=>!De(e,"isFolder",!1)),i=function(e,t,n){let r=t.format(n);return $u(e,e=>{let t=De(e,"name","").replace(/\.log$/,"");return!/^\d{4}-\d{2}-\d{2}/.test(t)||t>=r.slice(0,t.length)})}(i,n,r);let s=[];for(let e of i)try{let n=t.statSync(e.path);if(!n.isFile())continue;s.push({path:e.path,name:e.name,size:n.size,mtimeMs:n.mtimeMs})}catch(e){}return s}function ec(e){let t=new Map;return n=>{let r=Math.floor(n/6e4),i=t.get(r);return void 0===i&&(i=tr(6e4*r).format(e),t.set(r,i)),i}}function tc(e,n){return new Promise((r,i)=>{let s=null,u=t.createReadStream(e,{encoding:"utf8"}),o=c.createInterface({input:u,crlfDelay:1/0});o.on("line",n);let l=e=>{s=e,o.close()};u.on("error",l),o.on("error",l),u.on("close",()=>{s?i(s):r()})})}function nc(e){let t=null;try{t=JSON.parse(e)}catch(e){return null}return null===t||"object"!=typeof t?null:t}async function rc(e,t,n,r=null){Sn(r)||(r=ec(n));let i={minTimeMs:null,ev:{}};return await tc(e,e=>{let n=nc(e);if(null===n)return;let s=n.event;if(!Ot(s))return;let u="number"==typeof(o=n.time)?o:Ot(o)?tr(o).valueOf():NaN;var o;if(Number.isNaN(u))return;if((null===i.minTimeMs||u<i.minTimeMs)&&(i.minTimeMs=u),!(u>t))return;let c=r(u),l=i.ev[c];void 0===l&&(l={count:0,kp:{}},i.ev[c]=l),l.count+=1,l.kp[s]=(l.kp[s]||0)+1}),i}async function ic(e,t,n){let r=ec(n),i=[];for(let s of e)try{let e=await rc(s.path,t,n,r);i.push({name:s.name,ok:!0,agg:e})}catch(e){i.push({name:s.name,ok:!1,err:String(De(e,"message",e))})}return i}function sc(e,t){for(let n in t.ev){let r=t.ev[n],i=e[n];void 0===i&&(i={count:0,kp:{}},e[n]=i),i.count+=r.count;for(let e in r.kp)i.kp[e]=(i.kp[e]||0)+r.kp[e]}return e}async function uc(t,n={}){let r=!1!==De(n,"useCache"),i=De(n,"scanFiles");Sn(i)||(i=ic);let s=De(n,"srLog",null),u=qo(t.fdLog,t.tStart,t.fmt),o=function(e){let t=Oo.get(e);return t||(t=new Map,Oo.set(e,t)),t}((c=t.fdLog,l=t.fmt,`${e.resolve(c)}|${l}`));var c,l;let a=[],d={};for(let e of u){let n=r?o.get(e.name):void 0;void 0!==n&&n.size===e.size&&n.mtimeMs===e.mtimeMs&&(null===n.minTimeMs||n.minTimeMs>n.scanTStartMs&&n.minTimeMs>t.tStartMs)?d[e.name]=n.agg:a.push(e)}if(r){let e=new Set(u.map(e=>e.name));for(let t of o.keys())e.has(t)||o.delete(t)}let D=[];if(a.length>0){let e=await i(a.map(e=>({path:e.path,name:e.name})),t.tStartMs,t.fmt),n={};for(let t of e)n[t.name]=t;for(let e of a){let i=n[e.name];if(i&&i.ok)d[e.name]=i.agg,r&&o.set(e.name,{size:e.size,mtimeMs:e.mtimeMs,minTimeMs:i.agg.minTimeMs,scanTStartMs:t.tStartMs,agg:i.agg});else{let t=De(i,"err","no result");D.push({name:e.name,err:t}),r&&o.delete(e.name),s&&Sn(s.warn)&&s.warn({event:"fun-staLogs",key:"staLogsFileSkipped",name:e.name,err:t})}}}let M={};for(let e of u){let t=d[e.name];t&&sc(M,t)}let w=function(e,t){let n={};for(let e of t)n[e]={count:0};for(let t in e){let r=e[t];n[t]={count:r.count,...r.kp}}return Object.keys(n).sort().map(e=>({time:e,data:n[e]}))}(M,t.kpTime);return{rs:w,stat:{nFiles:u.length,nScanned:a.length,nCached:u.length-a.length,errors:D}}}function oc(t=7,n="hr",r={}){let i=function(e=7,t="hr",n={}){let r=$o(n),i=function(e){return"day"===e?"day":"hr"}(t),s="day"===i?"YYYY-MM-DD":"YYYY-MM-DDTHH",u="day"===i?"day":"hour",o=De(n,"timeNow"),c="number"==typeof o?tr(o):tr(),l=c.subtract(e,"day"),a=l.valueOf(),d=l.startOf(u),D=c.startOf(u),M=[];for(;!d.isAfter(D);)M.push(d.format(s)),d=d.add(1,u);return{fdLog:r,timeInterval:i,fmt:s,unit:u,tStart:l,tStartMs:a,kpTime:M,timeNow:c.valueOf()}}(t,n,r),s=JSON.stringify([e.resolve(i.fdLog),t,i.timeInterval,De(r,"timeNow",null)]);if(_o.has(s))return _o.get(s);let u=uc(i,r).finally(()=>{_o.delete(s)});return _o.set(s,u),u}function cc(e,t){return null==e?t:"number"==typeof e?e:tr(e).valueOf()}async function lc(e,t){let n={},r=[];for(let i of e)try{await tc(i.path,e=>{let r=nc(e);if(null===r)return;let i=r.event;if(!Ot(i))return;let s=cc(r.time,t),u=(o=(t-s)/36e5)<0?Math.ceil(o)||0:Math.floor(o);var o;u<0||u>24||(n[i]||(n[i]={last1Day:0,last8Hour:0,last4Hour:0,last1Hour:0}),u<=24&&(n[i].last1Day+=1),u<=8&&(n[i].last8Hour+=1),u<=4&&(n[i].last4Hour+=1),u<=1&&(n[i].last1Hour+=1))})}catch(e){r.push({name:i.name,err:String(De(e,"message",e))})}return{kp:n,errors:r}}let ac=u.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(ac).href:"undefined"==typeof document?location.href:l&&"SCRIPT"===l.tagName.toUpperCase()&&l.src||new URL("w-web-perm.umd.js",document.baseURI).href),dc=e.dirname(ac),Dc=e.resolve(dc,"staLogsCore.shellWorker.mjs");function Mc(e,t=Dc){let n=zn(),r=new s.Worker(t),i=!1,u=(e,t)=>{i||(i=!0,e(t));try{r.terminate()}catch(e){}};return r.on("message",e=>{"done"===e.mode?u(n.resolve,e.payload):"error"===e.mode&&u(n.reject,e.payload)}),r.on("error",e=>{u(n.reject,e)}),r.on("exit",e=>{u(n.reject,new Error(`staLogs worker exited without result, code=${e}`))}),r.postMessage(e),n}async function wc(e,t,n){return 0===e.length?[]:Mc({kind:"scan",files:e,tStartMs:t,fmt:n})}async function yc(e,t){return 0===e.length?{kp:{},errors:[]}:Mc({kind:"table",files:e,nowMs:t})}function mc(e={}){return async function(e={}){let t=$o(e),n=De(e,"timeNow"),r="number"==typeof n?tr(n):tr(),i=r.valueOf(),s=De(e,"scanTableFiles");Sn(s)||(s=lc);let u=De(e,"srLog",null),o=qo(t,r.subtract(25,"hour"),"YYYY-MM-DDTHH"),{kp:c,errors:l}=await s(o.map(e=>({path:e.path,name:e.name})),i);for(let e of l)u&&Sn(u.warn)&&u.warn({event:"fun-staLogs",key:"staLogsFileSkipped",name:e.name,err:e.err});let a=[];for(let e in c)a.push({event:e,...c[e]});return a.sort((e,t)=>t.last1Day-e.last1Day),{rs:a,stat:{nFiles:o.length,errors:l}}}({...e,scanTableFiles:yc})}async function gc(e=7,t="hr",n={}){let r=await function(e=7,t="hr",n={}){return oc(e,t,{...n,scanFiles:wc})}(e,t,n);return r.rs}function Ic(e={}){let t=De(e,"fdLog","");Ot(t)||(t="./logs");let n=De(e,"mock",!1),r=De(e,"srLog",null),i=async(e=7,i="hr")=>{if(n)return function(e="hr"){let t="day"===e?"YYYY-MM-DD":"YYYY-MM-DDTHH",n="hr"===e?"hour":"day",r="hr"===e?48:7,i=["verifyConn","updateTargets-success","checkUser-error","api/getPerm-success","getWebInfor-success"],s=tr("2025-01-01T00:00:00"),u=[];for(let e=0;e<r;e++){let r=s.add(e,n),o={count:0};i.forEach((t,n)=>{let r=Math.round(20+15*Math.sin((e+3*n)/4));o[t]=r,o.count+=r}),u.push({time:r.format(t),data:o})}return u}(i);return await gc(e,i,{fdLog:t,srLog:r})},s=Jo(),u=async()=>{if(n)return[{event:"verifyConn",last1Day:240,last8Hour:90,last4Hour:50,last1Hour:15},{event:"updateTargets-success",last1Day:180,last8Hour:70,last4Hour:38,last1Hour:11},{event:"checkUser-error",last1Day:120,last8Hour:45,last4Hour:24,last1Hour:7},{event:"api/getPerm-success",last1Day:90,last8Hour:33,last4Hour:18,last1Hour:5},{event:"getWebInfor-success",last1Day:60,last8Hour:22,last4Hour:12,last1Hour:3}];let e=await async function(e={}){return(await mc(e)).rs}({fdLog:t,srLog:r});return e},o=Jo(),c={getStaEvent:async(e,t=7,n="hr")=>{let r=`${t}:${n}`,u=await s.getProxy(r,{fun:i,inputs:[t,n],timeExpired:3e4,timeFrom:"end",useCacheWhenError:!1}).catch(()=>Promise.reject("cannotGetStaEvent"));return Array.isArray(u)?u:Promise.reject("cannotGetStaEvent")},getStaEventTable:async e=>{let t=await o.getProxy("staEventTable",{fun:u,inputs:[],timeExpired:3e4,timeFrom:"end",useCacheWhenError:!1}).catch(()=>Promise.reject("cannotGetStaEventTable"));return Array.isArray(t)?t:Promise.reject("cannotGetStaEventTable")}};return c}return function(n,r,i,s,u,o,c={}){let l=null;if(!Sn(n))throw console.log("invalid WOrm",n),new Error("invalid WOrm");if(!Ot(r))throw console.log("invalid url",r),new Error("invalid url");if(!Ot(i))throw console.log("invalid db",i),new Error("invalid db");if(!Sn(s))throw console.log("invalid getUserByToken",s),new Error("invalid getUserByToken");if(!Sn(u))throw console.log("invalid verifyClientUser",u),new Error("invalid verifyClientUser");if(!Sn(o))throw console.log("invalid verifyAppUser",o),new Error("invalid verifyAppUser");let a=De(c,"serverPort");In(a)||(a=11006),a=gn(a);let d=De(c,"useCheckUser",!1),D=De(c,"getUserById",null),M=De(c,"useExcludeWhenNotAdmin",!1),w=De(c,"webName",{}),y=De(c,"webDescription",{}),m=De(c,"webLogo",""),g=De(c,"subfolder","");var I,C;Ot(g)&&("/"===Kn(g,1)&&(C=1,g=Ot(I=g)&&jn(C)?0===(C=gn(C))?I:Fn(I,I.length-C):""),"/"!==Fn(g,1)&&(g=`/${g}`));let p=De(c,"urlRedirect",""),f=De(c,"showLanguage","n"),L=De(c,"language","eng"),h=De(c,"showModeEditTargets","n"),b=De(c,"showModeEditPemis","n"),A=De(c,"showModeEditGrups","n"),N=De(c,"showModeEditUsers","n"),x=De(c,"modeEditTargets","n"),E=De(c,"modeEditPemis","n"),T=De(c,"modeEditGrups","n"),Z=De(c,"modeEditUsers","n"),v=De(c,"widthTargetId",""),X=De(c,"widthTargetDescription",""),S=De(c,"widthPemisName",""),Y=De(c,"widthPemisDescription",""),G=De(c,"widthGrupsName",""),j=De(c,"widthGrupsDescription",""),F=De(c,"widthUsersName",""),K=De(c,"widthUsersEmail",""),z=De(c,"widthUsersDescription",""),W=De(c,"mappingBy","");"id"!==W&&"email"!==W&&"name"!==W&&(W="id");let B=De(c,"kpLangExt",null),V=Uo({kpLangExt:B,webName:w,webDescription:y}),H=Po(c),U={useCheckUser:d,getUserById:D,useExcludeWhenNotAdmin:M},k={};try{k=Do(jo,n,r,i,U)}catch(e){throw console.log(e),H.error({event:"WServOrm-init-error",msg:e&&e.message||"WServOrmInitFailed"}),e}let{woItems:Q,procOrm:P}=k,J=new function(){let e=new Map,t=new Map;return async(n,r)=>{let i=(e.get(n)||Promise.resolve()).then(async()=>await r(),async()=>await r());e.set(n,i.catch(()=>{})),t.set(n,(t.get(n)||0)+1);try{return await i}finally{let r=t.get(n)-1;r<=0?(t.delete(n),e.delete(n)):t.set(n,r)}}},R=Vo(Q,P,{srLog:H,kmx:J}),O=De(c,"logFd","");Ot(O)||(O="./logs");let _=Ic({fdLog:O,mock:De(c,"staEventMock",!1),srLog:H}),$=async e=>{if(!Ot(De(e,"id","")))return console.log("user",e),H.error({event:"checkUser-error",msg:"cannotGetUserId"}),Promise.reject("cannotGetUserId");if(!Ot(De(e,"email","")))return console.log("user",e),H.error({event:"checkUser-error",msg:"cannotGetUserEmail"}),Promise.reject("cannotGetUserEmail");if(!Ot(De(e,"name","")))return console.log("user",e),H.error({event:"checkUser-error",msg:"cannotGetUserName"}),Promise.reject("cannotGetUserName");let t=De(e,"isAdmin","");return"y"===t||"n"===t||(console.log("user",e),console.log("user.isAdmin is not y or n",e.isAdmin),H.error({event:"checkUser-error",msg:"cannotGetUserRole"}),Promise.reject("cannotGetUserRole"))},q=async e=>{let t=await s(e);return await $(t),!0},ee=async(e,t="")=>{let n=await(async e=>{let t=null;if(Ot(e)&&(t=s(e),Yn(t)&&(t=await t)),!Jt(t))return console.log("token",e),H.error({event:"getTokenUser-error",msg:"cannotFindUserFromToken"}),Promise.reject("cannotFindUserFromToken");await $(t);let n=De(t,W,"");if(!Ot(n))return console.log("userSelf",t),console.log("mappingBy",W),H.error({event:"getTokenUser-error",msg:"cannotGetUserProp",mappingBy:W}),Promise.reject("cannotGetUserProp");let r=await Q.users.select({[W]:n,isActive:"y"});return r=De(r,0,null),Jt(r)?r:(console.log("userSelf",t),console.log("mappingBy",W),H.error({event:"getTokenUser-error",msg:"cannotGetUserFromPerm",mappingBy:W}),Promise.reject("cannotGetUserFromPerm"))})(e),r=u(n,t);return Yn(r)&&(r=await r),r?n:(console.log("user",n),H.error({event:"getAndVerifyClientUser-error",msg:"userNoPermission",from:t}),Promise.reject("userNoPermission"))},te=async(e,t="")=>{let n=null;if(Ot(e)&&(n=s(e),Yn(n)&&(n=await n)),!Jt(n))return console.log("token",e),H.error({event:"getAndVerifyAppUser-error",msg:"cannotFindUserFromToken"}),Promise.reject("cannotFindUserFromToken");let r=o(n,t);return Yn(r)&&(r=await r),r?n:(console.log("user",n),H.error({event:"getAndVerifyAppUser-error",msg:"userNoPermission",from:t}),Promise.reject("userNoPermission"))},ne=async e=>{let t=await(async(e,t)=>{let n=await Q.users.select({[e]:t,isActive:"y"});return n=De(n,0,null),Jt(n)?n:null})("id",e);return Jt(t)?t:null},re=async e=>{let t=await ne(e),n=zo(t,await Q.grups.select(),await Q.pemis.select(),await Q.targets.select());if(!Jt(n))return console.log("userId",e),H.error({event:"getGenUserAndRulesByUserId-error",msg:"cannotGetUserRules",userId:e}),Promise.reject("cannotGetUserRules");let r=kt(De(n,"grups",[]),"name");var i,s;return s=";",r=null==(i=r)?"":Qt.call(i,s),{user:{...t,grupsNames:r},rules:De(n,"rules",[])}},ie="dist",se="./node_modules/w-web-perm/dist";Hn(se)&&(ie=se);let ue="index.html";try{let n=e.resolve(ie,"index.tmp");if(kn(n)||(n=e.resolve(ie,ue)),!kn(n))throw console.log("fpEntryIn",n),new Error("invalid fpEntryIn");let r=e.resolve(ie,ue),i=t.readFileSync(n,"utf8");i=Qn(i,"/mperm/","{sfd}/"),i=Qn(i,"{sfd}",g),i=Qn(i,"{urlRedirect}",p),i=Qn(i,"{language}",L),t.writeFileSync(r,i,"utf8")}catch(e){console.log(e),console.log(`can not generate ${ue}`)}let oe=[{method:"GET",path:"/api/getUserByToken",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("token",t),console.log("[API]getUserByToken/check token: invalid token"),H.error({event:"api/getUserByToken-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=await ee(t,"getUserByToken");return Jt(n)?(H.info({event:"api/getUserByToken-success",userId:De(n,"id","")}),n):(console.log("token",t),console.log("[API]getUserByToken/check user: invalid user"),H.error({event:"api/getUserByToken-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission"))})();return Xn(n.msg)&&(n.msg=n.msg.message),n}},{method:"GET",path:"/api/getPerm",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("token",t),console.log("[API]getPerm/check token: invalid token"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=await ee(t,"getPerm");if(!Jt(n))return console.log("token",t),console.log("[API]getPerm/check userSelf: invalid userSelf"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let r=De(n,"id","");if(!Ot(r))return console.log("token",t),console.log("userSelf",n),console.log("[API]getPerm/check userIdSelf: invalid userIdSelf"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let i=await re(r);return Jt(i)?(H.info({event:"api/getPerm-success",userId:r}),i):(console.log("token",t),console.log("userSelf",n),console.log("userIdSelf",r),console.log("[API]getPerm/check userWithRulesSelf: invalid userWithRulesSelf"),H.error({event:"api/getPerm-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission"))})();return Xn(n.msg)&&(n.msg=n.msg.message),n}},{method:"GET",path:"/api/getPermUserInfor",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("[API]getPermUserInfor/check tokenSelf: invalid tokenSelf"),H.error({event:"api/getPermUserInfor-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");if(!Jt(await te(t,"getPermUserInfor")))return console.log("req.query",De(e,"query")),console.log("tokenSelf",t),console.log("[API]getPermUserInfor/check userSelf: invalid userSelf"),H.error({event:"api/getPermUserInfor-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=De(e,"query.userId","");if(!Ot(n))return console.log("req.query",De(e,"query")),console.log("tokenSelf",t),console.log("[API]getPermUserInfor/check userIdFind: invalid userIdFind"),H.error({event:"api/getPermUserInfor-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let r=await re(n);return Jt(r)?(H.info({event:"api/getPermUserInfor-success",userId:n}),r):(console.log("userIdFind",n),console.log("[API]getPermUserInfor/check userWithRulesFind: invalid userWithRulesFind"),H.error({event:"api/getPermUserInfor-error",msg:"userIdNoPermrules"}),Promise.reject("userIdNoPermrules"))})();return Xn(n.msg)&&(n.msg=n.msg.message),n}},{method:"POST",path:"/syncAndReplaceTabs",handler:async function(e,t){let n=await Wn(async function(){let t=De(e,"query.token","");if(!Ot(t))return console.log("req.query",De(e,"query")),console.log("token",t),console.log("[API]syncAndReplaceTabs/check token: invalid token"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let n=De(e,"query.keyTable","");if(!Ot(n))return console.log("req.query",De(e,"query")),console.log("keyTable",n),console.log("[API]syncAndReplaceTabs/check keyTable: invalid keyTable"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");if(!["targets","pemis","grups","users"].includes(n))return console.log("[API]syncAndReplaceTabs/check keyTable: unexpected keyTable",n),H.error({event:"api/syncAndReplaceTabs-error",msg:"invalidKeyTable",keyTable:n}),Promise.reject("invalidKeyTable");let r=await te(t,"syncAndReplaceTabs");if(!Jt(r))return console.log("token",t),console.log("[API]syncAndReplaceTabs/check user: invalid user"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let i=De(r,"id","");if(!Ot(i))return console.log("token",t),console.log("user",r),console.log("[API]syncAndReplaceTabs/check userId: invalid userId"),H.error({event:"api/syncAndReplaceTabs-error",msg:"tokenNoPermission"}),Promise.reject("tokenNoPermission");let s=await(async e=>{let t=De(e,"payload");if(Ot(t)&&(t=Gn(t)),!Jt(t))return console.log("payload",t),H.error({event:"parsePayload-error",msg:"invalidPayload"}),Promise.reject("invalidPayload");let n=De(t,"from","");if(!Ot(n))return console.log("payload",t),H.error({event:"parsePayload-error",msg:"invalidFromInPayload"}),Promise.reject("invalidFromInPayload");let r=De(t,"rows",[]);return hn(r)?{from:n,rows:r}:(console.log("payload",t),H.error({event:"parsePayload-error",msg:"invalidRowsInPayload"}),Promise.reject("invalidRowsInPayload"))})(e),u=await(async(e,t,n)=>await J("syncAndReplaceTabs:"+n,async()=>{let r=De(t,"from","");if(!Ot(r))return console.log("inp",t),H.error({event:"syncAndReplaceTabs-error",msg:"invalidFrom",keyTable:n}),Promise.reject("invalidFrom");let i=De(t,"rows",[]);return hn(i)?(i=kt(i,(e,t)=>(e.from=r,e)),i=On(i,jo[n].keys),await Q[n].delAll({from:r}),await P(e,n,"insert",i)):(console.log("inp",t),console.log("keyTable",n),H.error({event:"syncAndReplaceTabs-error",msg:"invalidRows",keyTable:n}),Promise.reject("invalidRows"))}))(i,s,n);return H.info({event:"api/syncAndReplaceTabs-success",userId:i,keyTable:n}),u})();return Xn(n.msg)&&(n.msg=n.msg.message),n}}],ce=ut(jo);return l=new Fs({port:a,pathStaticFiles:ie,apiName:"api",apis:oe,tokenType:"Bearer",verifyConn:async({apiType:e,authorization:t,query:n,headers:r,req:i})=>{let s=function(e,t){return Ot(e)&&jn(t)?0===(t=gn(t))?e:Kn(e,e.length-t):""}(t,7);if(!Ot(s))return console.log("apiType",e),console.log("authorization",t),console.log("invalid token"),!1;let u=await q(s),o=De(r,"x-forwarded-for","").split(",")[0].trim();Ot(o)||(o=De(i,"info.remoteAddress","")||De(i,"socket.remoteAddress","")||De(i,"connection.remoteAddress",""));let c=De(r,"origin",""),l=De(r,"referer","");return H.info({event:"verifyConn",ok:u,apiType:e,ip:o,origin:c,referer:l}),u},getUserIdByToken:async e=>{let t=De(await s(e),"id","");return Ot(t)?t:(console.log("token",e),console.log("userId",t),H.error({event:"getUserIdByToken-error",msg:"cannotFindUserId"}),Promise.reject("cannotFindUserId"))},corsOrigins:["*"],useDbOrm:!0,kpOrm:Q,operOrm:P,tableNamesExec:ce,methodsExec:["select","insert","save","del","delAll"],tableNamesSync:ce,kpFunExt:{getWebInfor:e=>(H.info({event:"getWebInfor-success",userId:e}),{webLogo:m,showLanguage:f,language:L,kpLang:V,showModeEditTargets:h,showModeEditPemis:b,showModeEditGrups:A,showModeEditUsers:N,modeEditTargets:x,modeEditPemis:E,modeEditGrups:T,modeEditUsers:Z,widthTargetId:v,widthTargetDescription:X,widthPemisName:S,widthPemisDescription:Y,widthGrupsName:G,widthGrupsDescription:j,widthUsersName:F,widthUsersEmail:K,widthUsersDescription:z}),updateTargets:R.updateTargets,updatePemis:R.updatePemis,updateGrups:R.updateGrups,updateUsers:R.updateUsers,getStaEvent:async(e,t,n)=>{try{let r=await _.getStaEvent(e,t,n);return H.info({event:"getStaEvent-success",userId:e}),r}catch(t){throw H.error({event:"getStaEvent-error",userId:e,msg:"string"==typeof t?t:t&&t.message||"cannotGetStaEvent"}),t}},getStaEventTable:async e=>{try{let t=await _.getStaEventTable(e);return H.info({event:"getStaEventTable-success",userId:e}),t}catch(t){throw H.error({event:"getStaEventTable-error",userId:e,msg:"string"==typeof t?t:t&&t.message||"cannotGetStaEventTable"}),t}}},fnTableTags:"tableTags-web-perm.json"}),l}});
7
7
  //# sourceMappingURL=w-web-perm.umd.js.map