w-web-sso 1.0.46 → 1.0.47
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.
package/dist/w-web-sso.umd.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* w-web-sso v1.0.
|
|
2
|
+
* w-web-sso v1.0.47
|
|
3
3
|
* (c) 2018-2021 yuda-lyu(semisphere)
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("path"),require("fs"),require("@hapi/hapi"),require("@hapi/inert"),require("stream"),require("worker_threads"),require("url"),require("events"),require("util"),require("http"),require("https"),require("zlib"),require("net"),require("dns"),require("os"),require("crypto"),require("tls"),require("child_process"),require("node:crypto")):"function"==typeof define&&define.amd?define(["exports","path","fs","@hapi/hapi","@hapi/inert","stream","worker_threads","url","events","util","http","https","zlib","net","dns","os","crypto","tls","child_process","node:crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["w-web-sso"]={},e.path,e.fs,e["@hapi/hapi"],e["@hapi/inert"],e.stream,e.require$$0$1,e.require$$0$3,e.events,e.require$$1$1,e.require$$0$4,e.require$$1,e.require$$3,e.require$$7,e.require$$5,e.require$$7$1,e.crypto,e.require$$1$2,e.require$$0$6,e.crypto$2)}(this,function(e,t,i,n,s,o,r,a,c,l,u,p,d,m,h,g,f,w,y,x){"use strict";var D="undefined"!=typeof document?document.currentScript:null,v=Array.isArray,M="object"==typeof global&&global&&global.Object===Object&&global,C="object"==typeof self&&self&&self.Object===Object&&self,I=M||C||Function("return this")(),b=I.Symbol,L=Object.prototype,A=L.hasOwnProperty,E=L.toString,S=b?b.toStringTag:void 0;var T=Object.prototype.toString;var N=b?b.toStringTag:void 0;function k(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":N&&N in Object(e)?function(e){var t=A.call(e,S),i=e[S];try{e[S]=void 0;var n=!0}catch(e){}var s=E.call(e);return n&&(t?e[S]=i:delete e[S]),s}(e):function(e){return T.call(e)}(e)}function j(e){return null!=e&&"object"==typeof e}function Z(e){return"symbol"==typeof e||j(e)&&"[object Symbol]"==k(e)}var X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Y=/^\w*$/;function z(e,t){if(v(e))return!1;var i=typeof e;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=e&&!Z(e))||(Y.test(e)||!X.test(e)||null!=t&&e in Object(t))}function F(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function G(e){if(!F(e))return!1;var t=k(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var H,K=I["__core-js_shared__"],P=(H=/[^.]+$/.exec(K&&K.keys&&K.keys.IE_PROTO||""))?"Symbol(src)_1."+H:"";var U=Function.prototype.toString;function B(e){if(null!=e){try{return U.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var W=/^\[object .+?Constructor\]$/,V=Function.prototype,_=Object.prototype,R=V.toString,Q=_.hasOwnProperty,O=RegExp("^"+R.call(Q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function J(e){return!(!F(e)||(t=e,P&&P in t))&&(G(e)?O:W).test(B(e));var t}function q(e,t){var i=function(e,t){return null==e?void 0:e[t]}(e,t);return J(i)?i:void 0}var $=q(Object,"create");var ee=Object.prototype.hasOwnProperty;var te=Object.prototype.hasOwnProperty;function ie(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}function ne(e,t){return e===t||e!=e&&t!=t}function se(e,t){for(var i=e.length;i--;)if(ne(e[i][0],t))return i;return-1}ie.prototype.clear=function(){this.__data__=$?$(null):{},this.size=0},ie.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ie.prototype.get=function(e){var t=this.__data__;if($){var i=t[e];return"__lodash_hash_undefined__"===i?void 0:i}return ee.call(t,e)?t[e]:void 0},ie.prototype.has=function(e){var t=this.__data__;return $?void 0!==t[e]:te.call(t,e)},ie.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=$&&void 0===t?"__lodash_hash_undefined__":t,this};var oe=Array.prototype.splice;function re(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}re.prototype.clear=function(){this.__data__=[],this.size=0},re.prototype.delete=function(e){var t=this.__data__,i=se(t,e);return!(i<0)&&(i==t.length-1?t.pop():oe.call(t,i,1),--this.size,!0)},re.prototype.get=function(e){var t=this.__data__,i=se(t,e);return i<0?void 0:t[i][1]},re.prototype.has=function(e){return se(this.__data__,e)>-1},re.prototype.set=function(e,t){var i=this.__data__,n=se(i,e);return n<0?(++this.size,i.push([e,t])):i[n][1]=t,this};var ae=q(I,"Map");function ce(e,t){var i,n,s=e.__data__;return("string"==(n=typeof(i=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==i:null===i)?s["string"==typeof t?"string":"hash"]:s.map}function le(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=function(){this.size=0,this.__data__={hash:new ie,map:new(ae||re),string:new ie}},le.prototype.delete=function(e){var t=ce(this,e).delete(e);return this.size-=t?1:0,t},le.prototype.get=function(e){return ce(this,e).get(e)},le.prototype.has=function(e){return ce(this,e).has(e)},le.prototype.set=function(e,t){var i=ce(this,e),n=i.size;return i.set(e,t),this.size+=i.size==n?0:1,this};function ue(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var i=function(){var n=arguments,s=t?t.apply(this,n):n[0],o=i.cache;if(o.has(s))return o.get(s);var r=e.apply(this,n);return i.cache=o.set(s,r)||o,r};return i.cache=new(ue.Cache||le),i}ue.Cache=le;var pe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,de=/\\(\\)?/g,me=function(e){var t=ue(e,function(e){return 500===i.size&&i.clear(),e}),i=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(pe,function(e,i,n,s){t.push(n?s.replace(de,"$1"):i||e)}),t}),he=me;function ge(e,t){for(var i=-1,n=null==e?0:e.length,s=Array(n);++i<n;)s[i]=t(e[i],i,e);return s}var fe=b?b.prototype:void 0,we=fe?fe.toString:void 0;function ye(e){if("string"==typeof e)return e;if(v(e))return ge(e,ye)+"";if(Z(e))return we?we.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function xe(e){return null==e?"":ye(e)}function De(e,t){return v(e)?e:z(e,t)?[e]:he(xe(e))}function ve(e){if("string"==typeof e||Z(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Me(e,t){for(var i=0,n=(t=De(t,e)).length;null!=e&&i<n;)e=e[ve(t[i++])];return i&&i==n?e:void 0}function Ce(e,t,i){var n=null==e?void 0:Me(e,t);return void 0===n?i:n}var Ie=Object.prototype;function be(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ie)}function Le(e,t){return function(i){return e(t(i))}}var Ae=Le(Object.keys,Object),Ee=Object.prototype.hasOwnProperty;function Se(e){if(!be(e))return Ae(e);var t=[];for(var i in Object(e))Ee.call(e,i)&&"constructor"!=i&&t.push(i);return t}var Te=q(I,"DataView"),Ne=q(I,"Promise"),ke=q(I,"Set"),je=q(I,"WeakMap"),Ze="[object Map]",Xe="[object Promise]",Ye="[object Set]",ze="[object WeakMap]",Fe="[object DataView]",Ge=B(Te),He=B(ae),Ke=B(Ne),Pe=B(ke),Ue=B(je),Be=k;(Te&&Be(new Te(new ArrayBuffer(1)))!=Fe||ae&&Be(new ae)!=Ze||Ne&&Be(Ne.resolve())!=Xe||ke&&Be(new ke)!=Ye||je&&Be(new je)!=ze)&&(Be=function(e){var t=k(e),i="[object Object]"==t?e.constructor:void 0,n=i?B(i):"";if(n)switch(n){case Ge:return Fe;case He:return Ze;case Ke:return Xe;case Pe:return Ye;case Ue:return ze}return t});var We=Be;function Ve(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function _e(e){return null!=e&&Ve(e.length)&&!G(e)}function Re(e){return function(t){return null==t?void 0:t[e]}}var Qe=Re("length"),Oe=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Je(e){return Oe.test(e)}var qe="\\ud800-\\udfff",$e="["+qe+"]",et="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",tt="\\ud83c[\\udffb-\\udfff]",it="[^"+qe+"]",nt="(?:\\ud83c[\\udde6-\\uddff]){2}",st="[\\ud800-\\udbff][\\udc00-\\udfff]",ot="(?:"+et+"|"+tt+")"+"?",rt="[\\ufe0e\\ufe0f]?",at=rt+ot+("(?:\\u200d(?:"+[it,nt,st].join("|")+")"+rt+ot+")*"),ct="(?:"+[it+et+"?",et,nt,st,$e].join("|")+")",lt=RegExp(tt+"(?="+tt+")|"+ct+at,"g");function ut(e){return Je(e)?function(e){for(var t=lt.lastIndex=0;lt.test(e);)++t;return t}(e):Qe(e)}function pt(e){if(null==e)return 0;if(_e(e))return"string"==typeof(t=e)||!v(t)&&j(t)&&"[object String]"==k(t)?ut(e):e.length;var t,i=We(e);return"[object Map]"==i||"[object Set]"==i?e.size:Se(e).length}function dt(e,t){for(var i=-1,n=null==e?0:e.length;++i<n;)if(!t(e[i],i,e))return!1;return!0}var mt,ht=function(e,t,i){for(var n=-1,s=Object(e),o=i(e),r=o.length;r--;){var a=o[mt?r:++n];if(!1===t(s[a],a,s))break}return e};function gt(e){return j(e)&&"[object Arguments]"==k(e)}var ft=Object.prototype,wt=ft.hasOwnProperty,yt=ft.propertyIsEnumerable,xt=gt(function(){return arguments}())?gt:function(e){return j(e)&&wt.call(e,"callee")&&!yt.call(e,"callee")},Dt=xt;var vt="object"==typeof e&&e&&!e.nodeType&&e,Mt=vt&&"object"==typeof module&&module&&!module.nodeType&&module,Ct=Mt&&Mt.exports===vt?I.Buffer:void 0,It=(Ct?Ct.isBuffer:void 0)||function(){return!1},bt=/^(?:0|[1-9]\d*)$/;function Lt(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&bt.test(e))&&e>-1&&e%1==0&&e<t}var At={};function Et(e){return function(t){return e(t)}}At["[object Float32Array]"]=At["[object Float64Array]"]=At["[object Int8Array]"]=At["[object Int16Array]"]=At["[object Int32Array]"]=At["[object Uint8Array]"]=At["[object Uint8ClampedArray]"]=At["[object Uint16Array]"]=At["[object Uint32Array]"]=!0,At["[object Arguments]"]=At["[object Array]"]=At["[object ArrayBuffer]"]=At["[object Boolean]"]=At["[object DataView]"]=At["[object Date]"]=At["[object Error]"]=At["[object Function]"]=At["[object Map]"]=At["[object Number]"]=At["[object Object]"]=At["[object RegExp]"]=At["[object Set]"]=At["[object String]"]=At["[object WeakMap]"]=!1;var St="object"==typeof e&&e&&!e.nodeType&&e,Tt=St&&"object"==typeof module&&module&&!module.nodeType&&module,Nt=Tt&&Tt.exports===St&&M.process,kt=function(){try{var e=Tt&&Tt.require&&Tt.require("util").types;return e||Nt&&Nt.binding&&Nt.binding("util")}catch(e){}}(),jt=kt&&kt.isTypedArray,Zt=jt?Et(jt):function(e){return j(e)&&Ve(e.length)&&!!At[k(e)]},Xt=Object.prototype.hasOwnProperty;function Yt(e,t){var i=v(e),n=!i&&Dt(e),s=!i&&!n&&It(e),o=!i&&!n&&!s&&Zt(e),r=i||n||s||o,a=r?function(e,t){for(var i=-1,n=Array(e);++i<e;)n[i]=t(i);return n}(e.length,String):[],c=a.length;for(var l in e)!t&&!Xt.call(e,l)||r&&("length"==l||s&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Lt(l,c))||a.push(l);return a}function zt(e){return _e(e)?Yt(e):Se(e)}function Ft(e,t){return e&&ht(e,t,zt)}var Gt=function(e,t){return function(i,n){if(null==i)return i;if(!_e(i))return e(i,n);for(var s=i.length,o=t?s:-1,r=Object(i);(t?o--:++o<s)&&!1!==n(r[o],o,r););return i}}(Ft),Ht=Gt;function Kt(e,t){var i=!0;return Ht(e,function(e,n,s){return i=!!t(e,n,s)}),i}function Pt(e){var t=this.__data__=new re(e);this.size=t.size}Pt.prototype.clear=function(){this.__data__=new re,this.size=0},Pt.prototype.delete=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i},Pt.prototype.get=function(e){return this.__data__.get(e)},Pt.prototype.has=function(e){return this.__data__.has(e)},Pt.prototype.set=function(e,t){var i=this.__data__;if(i instanceof re){var n=i.__data__;if(!ae||n.length<199)return n.push([e,t]),this.size=++i.size,this;i=this.__data__=new le(n)}return i.set(e,t),this.size=i.size,this};function Ut(e){var t=-1,i=null==e?0:e.length;for(this.__data__=new le;++t<i;)this.add(e[t])}function Bt(e,t){for(var i=-1,n=null==e?0:e.length;++i<n;)if(t(e[i],i,e))return!0;return!1}function Wt(e,t){return e.has(t)}Ut.prototype.add=Ut.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ut.prototype.has=function(e){return this.__data__.has(e)};function Vt(e,t,i,n,s,o){var r=1&i,a=e.length,c=t.length;if(a!=c&&!(r&&c>a))return!1;var l=o.get(e),u=o.get(t);if(l&&u)return l==t&&u==e;var p=-1,d=!0,m=2&i?new Ut:void 0;for(o.set(e,t),o.set(t,e);++p<a;){var h=e[p],g=t[p];if(n)var f=r?n(g,h,p,t,e,o):n(h,g,p,e,t,o);if(void 0!==f){if(f)continue;d=!1;break}if(m){if(!Bt(t,function(e,t){if(!Wt(m,t)&&(h===e||s(h,e,i,n,o)))return m.push(t)})){d=!1;break}}else if(h!==g&&!s(h,g,i,n,o)){d=!1;break}}return o.delete(e),o.delete(t),d}var _t=I.Uint8Array;function Rt(e){var t=-1,i=Array(e.size);return e.forEach(function(e,n){i[++t]=[n,e]}),i}function Qt(e){var t=-1,i=Array(e.size);return e.forEach(function(e){i[++t]=e}),i}var Ot=b?b.prototype:void 0,Jt=Ot?Ot.valueOf:void 0;function qt(e,t){for(var i=-1,n=t.length,s=e.length;++i<n;)e[s+i]=t[i];return e}function $t(e,t,i){var n=t(e);return v(e)?n:qt(n,i(e))}function ei(e,t){for(var i=-1,n=null==e?0:e.length,s=0,o=[];++i<n;){var r=e[i];t(r,i,e)&&(o[s++]=r)}return o}function ti(){return[]}var ii=Object.prototype.propertyIsEnumerable,ni=Object.getOwnPropertySymbols,si=ni?function(e){return null==e?[]:(e=Object(e),ei(ni(e),function(t){return ii.call(e,t)}))}:ti;function oi(e){return $t(e,zt,si)}var ri=Object.prototype.hasOwnProperty;var ai="[object Arguments]",ci="[object Array]",li="[object Object]",ui=Object.prototype.hasOwnProperty;function pi(e,t,i,n,s,o){var r=v(e),a=v(t),c=r?ci:We(e),l=a?ci:We(t),u=(c=c==ai?li:c)==li,p=(l=l==ai?li:l)==li,d=c==l;if(d&&It(e)){if(!It(t))return!1;r=!0,u=!1}if(d&&!u)return o||(o=new Pt),r||Zt(e)?Vt(e,t,i,n,s,o):function(e,t,i,n,s,o,r){switch(i){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||!o(new _t(e),new _t(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return ne(+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 a=Rt;case"[object Set]":var c=1&n;if(a||(a=Qt),e.size!=t.size&&!c)return!1;var l=r.get(e);if(l)return l==t;n|=2,r.set(e,t);var u=Vt(a(e),a(t),n,s,o,r);return r.delete(e),u;case"[object Symbol]":if(Jt)return Jt.call(e)==Jt.call(t)}return!1}(e,t,c,i,n,s,o);if(!(1&i)){var m=u&&ui.call(e,"__wrapped__"),h=p&&ui.call(t,"__wrapped__");if(m||h){var g=m?e.value():e,f=h?t.value():t;return o||(o=new Pt),s(g,f,i,n,o)}}return!!d&&(o||(o=new Pt),function(e,t,i,n,s,o){var r=1&i,a=oi(e),c=a.length;if(c!=oi(t).length&&!r)return!1;for(var l=c;l--;){var u=a[l];if(!(r?u in t:ri.call(t,u)))return!1}var p=o.get(e),d=o.get(t);if(p&&d)return p==t&&d==e;var m=!0;o.set(e,t),o.set(t,e);for(var h=r;++l<c;){var g=e[u=a[l]],f=t[u];if(n)var w=r?n(f,g,u,t,e,o):n(g,f,u,e,t,o);if(!(void 0===w?g===f||s(g,f,i,n,o):w)){m=!1;break}h||(h="constructor"==u)}if(m&&!h){var y=e.constructor,x=t.constructor;y==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof x&&x instanceof x||(m=!1)}return o.delete(e),o.delete(t),m}(e,t,i,n,s,o))}function di(e,t,i,n,s){return e===t||(null==e||null==t||!j(e)&&!j(t)?e!=e&&t!=t:pi(e,t,i,n,di,s))}function mi(e){return e==e&&!F(e)}function hi(e,t){return function(i){return null!=i&&(i[e]===t&&(void 0!==t||e in Object(i)))}}function gi(e){var t=function(e){for(var t=zt(e),i=t.length;i--;){var n=t[i],s=e[n];t[i]=[n,s,mi(s)]}return t}(e);return 1==t.length&&t[0][2]?hi(t[0][0],t[0][1]):function(i){return i===e||function(e,t,i,n){var s=i.length,o=s,r=!n;if(null==e)return!o;for(e=Object(e);s--;){var a=i[s];if(r&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++s<o;){var c=(a=i[s])[0],l=e[c],u=a[1];if(r&&a[2]){if(void 0===l&&!(c in e))return!1}else{var p=new Pt;if(n)var d=n(l,u,c,e,t,p);if(!(void 0===d?di(u,l,3,n,p):d))return!1}}return!0}(i,e,t)}}function fi(e,t){return null!=e&&t in Object(e)}function wi(e,t){return null!=e&&function(e,t,i){for(var n=-1,s=(t=De(t,e)).length,o=!1;++n<s;){var r=ve(t[n]);if(!(o=null!=e&&i(e,r)))break;e=e[r]}return o||++n!=s?o:!!(s=null==e?0:e.length)&&Ve(s)&&Lt(r,s)&&(v(e)||Dt(e))}(e,t,fi)}function yi(e){return e}function xi(e){return z(e)?Re(ve(e)):function(e){return function(t){return Me(t,e)}}(e)}function Di(e){return"function"==typeof e?e:null==e?yi:"object"==typeof e?v(e)?function(e,t){return z(e)&&mi(t)?hi(ve(e),t):function(i){var n=Ce(i,e);return void 0===n&&n===t?wi(i,e):di(t,n,3)}}(e[0],e[1]):gi(e):xi(e)}function vi(e,t,i){if(!F(i))return!1;var n=typeof t;return!!("number"==n?_e(i)&&Lt(t,i.length):"string"==n&&t in i)&&ne(i[t],e)}function Mi(e){return"[object Object]"===Object.prototype.toString.call(e)}function Ci(e){if(Mi(e)){for(let t in e)return!0;return!1}return!1}function Ii(e){return"[object String]"===Object.prototype.toString.call(e)}function bi(e){return!(!Ii(e)||""===e)}var Li=/\s/;var Ai=/^\s+/;function Ei(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&Li.test(e.charAt(t)););return t}(e)+1).replace(Ai,""):e}var Si=/^[-+]0x[0-9a-f]+$/i,Ti=/^0b[01]+$/i,Ni=/^0o[0-7]+$/i,ki=parseInt;function ji(e){if("number"==typeof e)return e;if(Z(e))return NaN;if(F(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=F(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Ei(e);var i=Ti.test(e);return i||Ni.test(e)?ki(e.slice(2),i?2:8):Si.test(e)?NaN:+e}var Zi=1/0;function Xi(e){return e?(e=ji(e))===Zi||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function Yi(e){var t=Xi(e),i=t%1;return t==t?i?t-i:t:0}function zi(e){return e!=e}function Fi(e){let t=!1;if(bi(e))t=!isNaN(Number(e));else if(function(e){return"[object Number]"===Object.prototype.toString.call(e)}(e)){if(zi(e))return!1;t=!0}return t}function Gi(e){if(!Fi(e))return 0;return Xi(e)}function Hi(e){return!!Fi(e)&&(e=Gi(e),"number"==typeof(t=e)&&t==Yi(t));var t}var Ki=I.isFinite,Pi=Math.min;var Ui,Bi=(Ui=Math["round"],function(e,t){if(e=ji(e),(t=null==t?0:Pi(Yi(t),292))&&Ki(e)){var i=(xe(e)+"e").split("e");return+((i=(xe(Ui(i[0]+"e"+(+i[1]+t)))+"e").split("e"))[0]+"e"+(+i[1]-t))}return Ui(e)});function Wi(e){if(!Fi(e))return 0;e=Gi(e);let t=Bi(e);return"0"===String(t)?0:t}function Vi(e){if(!Hi(e))return!1;return Wi(e)>0}function _i(e){return"[object Array]"===Object.prototype.toString.call(e)}function Ri(e){return"[object Undefined]"===Object.prototype.toString.call(e)}function Qi(e){if(Mi(e)){for(let t in e)return!1;return!0}return!1}function Oi(e){return!!Ri(e)||(!!function(e){return"[object Null]"===Object.prototype.toString.call(e)}(e)||(!!Qi(e)||(!!function(e){return!(!Ii(e)||""!==e)}(e)||(!!function(e){return!!_i(e)&&0===e.length}(e)||!!zi(e)))))}function Ji(e){return!!_i(e)&&(0!==e.length&&(1!==e.length||!Oi(e[0])))}function qi(e){return!0===(t=e)||!1===t||j(t)&&"[object Boolean]"==k(t);var t}function $i(e){if(!Fi(e))return!1;return Gi(e)>0}var en=Le(Object.getPrototypeOf,Object),tn=Function.prototype,nn=Object.prototype,sn=tn.toString,on=nn.hasOwnProperty,rn=sn.call(Object);function an(e){if(!j(e)||"[object Object]"!=k(e))return!1;var t=en(e);if(null===t)return!0;var i=on.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&sn.call(i)==rn}function cn(e){if(!j(e))return!1;var t=k(e);return"[object Error]"==t||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!an(e)}function ln(e){return cn(e)}function un(e){let t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t}function pn(e){if(!Hi(e))return!1;return Wi(e)>=0}function dn(e,t){return bi(e)&&pn(t)?0===(t=Wi(t))?"":e.substring(0,t):""}function mn(e,t){if(!bi(e))return"";if(!pn(t))return"";if(0===(t=Wi(t)))return"";let i=e.length-t;return i<0&&(i=0),e.substring(i,i+t)}function hn(e,t){return bi(e)&&pn(t)?0===(t=Wi(t))?e:dn(e,e.length-t):""}function gn(){let e,t,i=new Promise(function(){e=arguments[0],t=arguments[1]});return i.resolve=e,i.reject=t,i}function fn(e){let t,i=Object.prototype.toString.call(e);if(t="[object Promise]"===i,t)return!0;if("[object Function]"!==i)return!1;try{t="function"!=typeof e.subscribe&&"function"==typeof e.then}catch(e){}return t}let wn=function(e){if(!un(e))throw new Error("fn is not a function");return function(){let t=gn(),i=null,n=null;try{i=e.apply(this,arguments)}catch(e){n=e}return null!==n?t.resolve({state:"error",msg:n}):fn(i)?i.then(e=>{t.resolve({state:"success",msg:e})}).catch(e=>{"cancelled"===Ce(e,"reason")?t.resolve({state:"cancelled",msg:""}):t.resolve({state:"error",msg:e})}):t.resolve({state:"success",msg:i}),t}};function yn(e,t={}){let i=Ce(t,"fs"),n=!1;try{i.statSync(e),n=!0}catch{n=!1}return n}function xn(e,t={}){let i=Ce(t,"fs");if(!yn(e,{fs:i}))return!1;let n=i.lstatSync(e);return!n.isFile()&&!n.isSymbolicLink()}function Dn(e){return xn(e,{fs:i})}function vn(e,t={}){let i=Ce(t,"fs");return!!yn(e,{fs:i})&&(!i.lstatSync(e).isDirectory()&&!i.lstatSync(e).isSymbolicLink())}function Mn(e){return vn(e,{fs:i})}function Cn(e,t,i){if(!bi(e))return"";if(!bi(t))return"";if(!Ii(i))return"";return String(e).replaceAll(t,i)}var In="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function bn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ln={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,i=36e5,n="millisecond",s="second",o="minute",r="hour",a="day",c="week",l="month",u="quarter",p="year",d="date",m="Invalid Date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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,f={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"],i=e%100;return"["+e+(t[(i-20)%10]||t[i]||t[0])+"]"}},w=function(e,t,i){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(i)+e},y={s:w,z:function(e){var t=-e.utcOffset(),i=Math.abs(t),n=Math.floor(i/60),s=i%60;return(t<=0?"+":"-")+w(n,2,"0")+":"+w(s,2,"0")},m:function e(t,i){if(t.date()<i.date())return-e(i,t);var n=12*(i.year()-t.year())+(i.month()-t.month()),s=t.clone().add(n,l),o=i-s<0,r=t.clone().add(n+(o?-1:1),l);return+(-(n+(i-s)/(o?s-r:r-s))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:p,w:c,d:a,D:d,h:r,m:o,s:s,ms:n,Q:u}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},x="en",D={};D[x]=f;var v="$isDayjsObject",M=function(e){return e instanceof L||!(!e||!e[v])},C=function e(t,i,n){var s;if(!t)return x;if("string"==typeof t){var o=t.toLowerCase();D[o]&&(s=o),i&&(D[o]=i,s=o);var r=t.split("-");if(!s&&r.length>1)return e(r[0])}else{var a=t.name;D[a]=t,s=a}return!n&&s&&(x=s),s||!n&&x},I=function(e,t){if(M(e))return e.clone();var i="object"==typeof t?t:{};return i.date=e,i.args=arguments,new L(i)},b=y;b.l=C,b.i=M,b.w=function(e,t){return I(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var L=function(){function f(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[v]=!0}var w=f.prototype;return w.parse=function(e){this.$d=function(e){var t=e.date,i=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(h);if(n){var s=n[2]-1||0,o=(n[7]||"0").substring(0,3);return i?new Date(Date.UTC(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)):new Date(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,o)}}return new Date(t)}(e),this.init()},w.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()},w.$utils=function(){return b},w.isValid=function(){return!(this.$d.toString()===m)},w.isSame=function(e,t){var i=I(e);return this.startOf(t)<=i&&i<=this.endOf(t)},w.isAfter=function(e,t){return I(e)<this.startOf(t)},w.isBefore=function(e,t){return this.endOf(t)<I(e)},w.$g=function(e,t,i){return b.u(e)?this[t]:this.set(i,e)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(e,t){var i=this,n=!!b.u(t)||t,u=b.p(e),m=function(e,t){var s=b.w(i.$u?Date.UTC(i.$y,t,e):new Date(i.$y,t,e),i);return n?s:s.endOf(a)},h=function(e,t){return b.w(i.toDate()[e].apply(i.toDate("s"),(n?[0,0,0,0]:[23,59,59,999]).slice(t)),i)},g=this.$W,f=this.$M,w=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case p:return n?m(1,0):m(31,11);case l:return n?m(1,f):m(0,f+1);case c:var x=this.$locale().weekStart||0,D=(g<x?g+7:g)-x;return m(n?w-D:w+(6-D),f);case a:case d:return h(y+"Hours",0);case r:return h(y+"Minutes",1);case o:return h(y+"Seconds",2);case s:return h(y+"Milliseconds",3);default:return this.clone()}},w.endOf=function(e){return this.startOf(e,!1)},w.$set=function(e,t){var i,c=b.p(e),u="set"+(this.$u?"UTC":""),m=(i={},i[a]=u+"Date",i[d]=u+"Date",i[l]=u+"Month",i[p]=u+"FullYear",i[r]=u+"Hours",i[o]=u+"Minutes",i[s]=u+"Seconds",i[n]=u+"Milliseconds",i)[c],h=c===a?this.$D+(t-this.$W):t;if(c===l||c===p){var g=this.clone().set(d,1);g.$d[m](h),g.init(),this.$d=g.set(d,Math.min(this.$D,g.daysInMonth())).$d}else m&&this.$d[m](h);return this.init(),this},w.set=function(e,t){return this.clone().$set(e,t)},w.get=function(e){return this[b.p(e)]()},w.add=function(n,u){var d,m=this;n=Number(n);var h=b.p(u),g=function(e){var t=I(m);return b.w(t.date(t.date()+Math.round(e*n)),m)};if(h===l)return this.set(l,this.$M+n);if(h===p)return this.set(p,this.$y+n);if(h===a)return g(1);if(h===c)return g(7);var f=(d={},d[o]=t,d[r]=i,d[s]=e,d)[h]||1,w=this.$d.getTime()+n*f;return b.w(w,this)},w.subtract=function(e,t){return this.add(-1*e,t)},w.format=function(e){var t=this,i=this.$locale();if(!this.isValid())return i.invalidDate||m;var n=e||"YYYY-MM-DDTHH:mm:ssZ",s=b.z(this),o=this.$H,r=this.$m,a=this.$M,c=i.weekdays,l=i.months,u=i.meridiem,p=function(e,i,s,o){return e&&(e[i]||e(t,n))||s[i].slice(0,o)},d=function(e){return b.s(o%12||12,e,"0")},h=u||function(e,t,i){var n=e<12?"AM":"PM";return i?n.toLowerCase():n};return n.replace(g,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return b.s(t.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return p(i.monthsShort,a,l,3);case"MMMM":return p(l,a);case"D":return t.$D;case"DD":return b.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return p(i.weekdaysMin,t.$W,c,2);case"ddd":return p(i.weekdaysShort,t.$W,c,3);case"dddd":return c[t.$W];case"H":return String(o);case"HH":return b.s(o,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return h(o,r,!0);case"A":return h(o,r,!1);case"m":return String(r);case"mm":return b.s(r,2,"0");case"s":return String(t.$s);case"ss":return b.s(t.$s,2,"0");case"SSS":return b.s(t.$ms,3,"0");case"Z":return s}return null}(e)||s.replace(":","")})},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(n,d,m){var h,g=this,f=b.p(d),w=I(n),y=(w.utcOffset()-this.utcOffset())*t,x=this-w,D=function(){return b.m(g,w)};switch(f){case p:h=D()/12;break;case l:h=D();break;case u:h=D()/3;break;case c:h=(x-y)/6048e5;break;case a:h=(x-y)/864e5;break;case r:h=x/i;break;case o:h=x/t;break;case s:h=x/e;break;default:h=x}return m?h:b.a(h)},w.daysInMonth=function(){return this.endOf(l).$D},w.$locale=function(){return D[this.$L]},w.locale=function(e,t){if(!e)return this.$L;var i=this.clone(),n=C(e,t,!0);return n&&(i.$L=n),i},w.clone=function(){return b.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},f}(),A=L.prototype;return I.prototype=A,[["$ms",n],["$s",s],["$m",o],["$H",r],["$W",a],["$M",l],["$y",p],["$D",d]].forEach(function(e){A[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),I.extend=function(e,t){return e.$i||(e(t,L,I),e.$i=!0),I},I.locale=C,I.isDayjs=M,I.unix=function(e){return I(1e3*e)},I.en=D[x],I.Ls=D,I.p={},I}()}(Ln);var An=bn(Ln.exports);function En(){if(!un(An))throw new Error("invalid dayjs");return An().format("YYYY-MM-DDTHH:mm:ssZ")}let Sn="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),Tn=Sn.length;function Nn(e=32){let t=[];e=Vi(e)?Wi(e):32;for(let i=0;i<e;i++)t[i]=Sn[0|Math.random()*Tn];return t.join("")}var kn={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,i="~";function n(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,n,o,r){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new s(n,o||e,r),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function r(e,t){0===--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,n,s=[];if(0===this._eventsCount)return s;for(n in e=this._events)t.call(e,n)&&s.push(i?n.slice(1):n);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var s=0,o=n.length,r=new Array(o);s<o;s++)r[s]=n[s].fn;return r},a.prototype.listenerCount=function(e){var t=i?i+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,s,o,r){var a=i?i+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],p=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),p){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,s),!0;case 5:return u.fn.call(u.context,t,n,s,o),!0;case 6:return u.fn.call(u.context,t,n,s,o,r),!0}for(l=1,c=new Array(p-1);l<p;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var d,m=u.length;for(l=0;l<m;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),p){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,n);break;case 4:u[l].fn.call(u[l].context,t,n,s);break;default:if(!c)for(d=1,c=new Array(p-1);d<p;d++)c[d-1]=arguments[d];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,i){return o(this,e,t,i,!1)},a.prototype.once=function(e,t,i){return o(this,e,t,i,!0)},a.prototype.removeListener=function(e,t,n,s){var o=i?i+e:e;if(!this._events[o])return this;if(!t)return r(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||s&&!a.once||n&&a.context!==n||r(this,o);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||n&&a[c].context!==n)&&l.push(a[c]);l.length?this._events[o]=1===l.length?l[0]:l:r(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&r(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,e.exports=a}(kn);var jn=bn(kn.exports);function Zn(){return new jn}async function Xn(e,t={}){let i=null,n=gn();if(!un(e))return n.reject("waitfunction需輸入函數f"),n;let s=async()=>{let t=e();return fn(t)&&(t=await t),t};if(i=await s(),!0===i)return n.resolve(),n;let o=Ce(t,"attemptNum",null);Vi(o)||(o=200);let r=Ce(t,"timeInterval",null);Vi(r)||(r=1e3);let a=0,c=setInterval(async()=>{a+=1,i=await s(),!0===i&&(clearInterval(c),n.resolve()),a>o&&(clearInterval(c),n.reject(`exceeded attemptNum[${o}]`))},r);return n}function Yn(e){return function(e,t={}){let i=Ce(t,"fs");if(xn(e,{fs:i}))return{success:"input folder is already exists: "+e};if(yn(e,{fs:i}))return{error:"input path already exists: "+e};try{i.mkdirSync(e,{recursive:!0})}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:i})}function zn(e){return"number"==typeof e||j(e)&&"[object Number]"==k(e)}function Fn(e){if(!(bi(e)||Fi(e)||Z(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 Gn={exports:{}};var Hn,Kn={exports:{}};function Pn(){return Hn||(Hn=1,function(e){var t;e.exports=(t=t||function(e,t){var i;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),"undefined"!=typeof self&&self.crypto&&(i=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(i=globalThis.crypto),!i&&"undefined"!=typeof window&&window.msCrypto&&(i=window.msCrypto),!i&&void 0!==In&&In.crypto&&(i=In.crypto),!i)try{i=require("crypto")}catch(e){}var n=function(){if(i){if("function"==typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var i;return e.prototype=t,i=new e,e.prototype=null,i}}(),o={},r=o.lib={},a=r.Base={extend:function(e){var t=s(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=r.WordArray=a.extend({init:function(e,i){e=this.words=e||[],this.sigBytes=i!=t?i:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,i=e.words,n=this.sigBytes,s=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o<s;o++){var r=i[o>>>2]>>>24-o%4*8&255;t[n+o>>>2]|=r<<24-(n+o)%4*8}else for(var a=0;a<s;a+=4)t[n+a>>>2]=i[a>>>2];return this.sigBytes+=s,this},clamp:function(){var t=this.words,i=this.sigBytes;t[i>>>2]&=4294967295<<32-i%4*8,t.length=e.ceil(i/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],i=0;i<e;i+=4)t.push(n());return new c.init(t,e)}}),l=o.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s++){var o=t[s>>>2]>>>24-s%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n+=2)i[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new c.init(i,t/2)}},p=l.Latin1={stringify:function(e){for(var t=e.words,i=e.sigBytes,n=[],s=0;s<i;s++){var o=t[s>>>2]>>>24-s%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,i=[],n=0;n<t;n++)i[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new c.init(i,t)}},d=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(p.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return p.parse(unescape(encodeURIComponent(e)))}},m=r.BufferedBlockAlgorithm=a.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 i,n=this._data,s=n.words,o=n.sigBytes,r=this.blockSize,a=o/(4*r),l=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*r,u=e.min(4*l,o);if(l){for(var p=0;p<l;p+=r)this._doProcessBlock(s,p);i=s.splice(0,l),n.sigBytes-=u}return new c.init(i,u)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});r.Hasher=m.extend({cfg:a.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,i){return new e.init(i).finalize(t)}},_createHmacHelper:function(e){return function(t,i){return new h.HMAC.init(e,i).finalize(t)}}});var h=o.algo={};return o}(Math),t)}(Kn)),Kn.exports}!function(e){e.exports=Pn().enc.Utf8}(Gn);var Un=bn(Gn.exports),Bn={exports:{}};!function(e){var t;e.exports=(t=Pn(),function(){var e=t,i=e.lib.WordArray;function n(e,t,n){for(var s=[],o=0,r=0;r<t;r++)if(r%4){var a=n[e.charCodeAt(r-1)]<<r%4*2|n[e.charCodeAt(r)]>>>6-r%4*2;s[o>>>2]|=a<<24-o%4*8,o++}return i.create(s,o)}e.enc.Base64={stringify:function(e){var t=e.words,i=e.sigBytes,n=this._map;e.clamp();for(var s=[],o=0;o<i;o+=3)for(var r=(t[o>>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a<i;a++)s.push(n.charAt(r>>>6*(3-a)&63));var c=n.charAt(64);if(c)for(;s.length%4;)s.push(c);return s.join("")},parse:function(e){var t=e.length,i=this._map,s=this._reverseMap;if(!s){s=this._reverseMap=[];for(var o=0;o<i.length;o++)s[i.charCodeAt(o)]=o}var r=i.charAt(64);if(r){var a=e.indexOf(r);-1!==a&&(t=a)}return n(e,t,s)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),t.enc.Base64)}(Bn);var Wn=bn(Bn.exports);function Vn(e){if(!bi(e))return"";let t=Un.parse(e);return Wn.stringify(t)}function _n(e,t){return!!Mi(e)&&(!(!bi(t)&&!Fi(t))&&t in e)}function Rn(e,t){for(var i=-1,n=null==e?0:e.length;++i<n&&!1!==t(e[i],i,e););return e}function Qn(e,t){var i;return(v(e)?Rn:Ht)(e,"function"==typeof(i=t)?i:yi)}function On(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)}function Jn(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function qn(e){return"[object Uint16Array]"===Object.prototype.toString.call(e)}function $n(e){if(!(On(e)||(t=e,"[object Blob]"===Object.prototype.toString.call(t))||Jn(e)||qn(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 es(e){if(!bi(e))return new Uint8Array;let t;try{t=function(e){if(!Ii(e))return new Uint8Array;let t=Wn.parse(e),i=t.words,n=t.sigBytes,s=new Uint8Array(n);for(let e=0;e<n;e++){let t=i[e>>>2]>>>24-e%4*8&255;s[e]=t}return s}(Vn(e))}catch(e){return new Uint8Array}return t}function ts(e,t,i=0,n=!0,s=52,o=8){return function(e,t,i,n,s,o){if(!Fi(e))return null;if(!Jn(t))return null;if(!Hi(i))return null;if(!qi(n))return null;if(!Hi(s))return null;if(!Hi(o))return null;let r,a,c;e=Gi(e);let l=8*o-s-1,u=(1<<l)-1,p=u>>1,d=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,m=n?o-1:0,h=n?-1:1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=u):(r=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-r))<1&&(r--,c*=2),(e+=r+p>=1?d/c:d*Math.pow(2,1-p))*c>=2&&(r++,c/=2),r+p>=u?(a=0,r=u):r+p>=1?(a=(e*c-1)*Math.pow(2,s),r+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,s),r=0));s>=8;t[i+m]=255&a,m+=h,a/=256,s-=8);for(r=r<<s|a,l+=s;l>0;t[i+m]=255&r,m+=h,r/=256,l-=8);return t[i+m-h]|=128*g,null}(e,t,i,n,s,o)}function is(e){let t=[],i=[];if(!Ji(e)&&!Ci(e))return null;let n=[],s=[];function o(e){n.push($n(e)),s.push(e)}try{let r=function(e){if(!Mi(e))return{results:"",binarys:[]};if(Qi(e))return{results:"",binarys:[]};let t="",i=[];try{let n=-1;t=JSON.stringify(e,function(e,t){if(Jn(t)){n+=1;let e=`[Uint8Array]::${n}`;return i.push(t),e}if(qn(t)){n+=1;let e=`[Uint16Array]::${n}`;return i.push(t),e}if(On(t)){n+=1;let e=`[ArrayBuffer]::${n}`;return i.push(t),e}return cn(t)&&(t=t.toString()),t})}catch(e){}return{results:t,binarys:i}}(e);o(es(r.results)),Qn(r.binarys,e=>{o(e)});let a=n,c=es(JSON.stringify(a)),l=new Uint8Array(8);ts($n(c),l),t.push(l),t.push(c),Qn(s,e=>{t.push(e)}),Qn(t,e=>{i=function(e,t){let i=$n(e),n=$n(t),s=new Uint8Array(i+n);return s.set(new Uint8Array(e),0),s.set(new Uint8Array(t),i),s}(i,e)})}catch(e){return null}return i}function ns(e,t=0,i=!0,n=52,s=8){return function(e,t,i,n,s){if(!Jn(e))return null;if(!Hi(t))return null;if(!qi(i))return null;if(!Hi(n))return null;if(!Hi(s))return null;let o,r,a=8*s-n-1,c=(1<<a)-1,l=c>>1,u=-7,p=i?0:s-1,d=i?1:-1,m=e[t+p];for(p+=d,o=m&(1<<-u)-1,m>>=-u,u+=a;u>0;o=256*o+e[t+p],p+=d,u-=8);for(r=o&(1<<-u)-1,o>>=-u,u+=n;u>0;r=256*r+e[t+p],p+=d,u-=8);if(0===o)o=1-l;else{if(o===c)return r?NaN:1/0*(m?-1:1);r+=Math.pow(2,n),o-=l}return(m?-1:1)*r*Math.pow(2,o-n)}(e,t,i,n,s)}var ss={exports:{}};!function(e){var t;e.exports=(t=Pn(),function(){if("function"==typeof ArrayBuffer){var e=t.lib.WordArray,i=e.init,n=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,n=[],s=0;s<t;s++)n[s>>>2]|=e[s]<<24-s%4*8;i.call(this,n,t)}else i.apply(this,arguments)};n.prototype=e}}(),t.lib.WordArray)}(ss);var os=bn(ss.exports);function rs(e){if(!Jn(e))return"";let t;try{i=function(e){return Jn(e)?os.create(e).toString(Wn):""}(e),t=bi(i)?Wn.parse(i).toString(Un):""}catch(e){return""}var i;return t}function as(e){let t=null;if(!Jn(e))return null;try{let i=8,n=e.slice(0,i),s=e.slice(i,$n(e)),o=ns(n),r=s.slice(0,o),a=s.slice(o,$n(s)),c=rs(r),l=function(e,t){let i=0,n=0,s=[];return Qn(t,t=>{n=i+t;let o=e.slice(i,n);i=n,s.push(o)}),s}(a,JSON.parse(c));t=function(e){if(!Ci(e))return{};let{results:t,binarys:i}=e;if(!bi(t))return{};if(!_i(i))return{};let n={};try{n=JSON.parse(t,function(e,t){if(bi(t)){if(t.indexOf("[Uint8Array]::")>=0){let e=Wi(t.replace("[Uint8Array]::",""));return i[e]}if(t.indexOf("[Uint16Array]::")>=0){let e=Wi(t.replace("[Uint16Array]::",""));return i[e]}if(t.indexOf("[ArrayBuffer]::")>=0){let e=Wi(t.replace("[ArrayBuffer]::",""));return i[e]}}return t})}catch(e){}return n}({results:rs(l.shift()),binarys:l})}catch(e){}return t}function cs(e,t){var i=-1,n=_e(e)?Array(e.length):[];return Ht(e,function(e,s,o){n[++i]=t(e,s,o)}),n}function ls(e,t){return(v(e)?ge:cs)(e,Di(t))}function us(e,t,i){var n=-1,s=e.length;t<0&&(t=-t>s?0:s+t),(i=i>s?s:i)<0&&(i+=s),s=t>i?0:i-t>>>0,t>>>=0;for(var o=Array(s);++n<s;)o[n]=e[n+t];return o}function ps(e){return e!=e}function ds(e,t,i){return t==t?function(e,t,i){for(var n=i-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,i):function(e,t,i,n){for(var s=e.length,o=i+(n?1:-1);n?o--:++o<s;)if(t(e[o],o,e))return o;return-1}(e,ps,i)}var ms="\\ud800-\\udfff",hs="["+ms+"]",gs="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",fs="\\ud83c[\\udffb-\\udfff]",ws="[^"+ms+"]",ys="(?:\\ud83c[\\udde6-\\uddff]){2}",xs="[\\ud800-\\udbff][\\udc00-\\udfff]",Ds="(?:"+gs+"|"+fs+")"+"?",vs="[\\ufe0e\\ufe0f]?",Ms=vs+Ds+("(?:\\u200d(?:"+[ws,ys,xs].join("|")+")"+vs+Ds+")*"),Cs="(?:"+[ws+gs+"?",gs,ys,xs,hs].join("|")+")",Is=RegExp(fs+"(?="+fs+")|"+Cs+Ms,"g");function bs(e){return Je(e)?function(e){return e.match(Is)||[]}(e):function(e){return e.split("")}(e)}function Ls(e,t,i){if((e=xe(e))&&(i||void 0===t))return Ei(e);if(!e||!(t=ye(t)))return e;var n=bs(e),s=bs(t),o=function(e,t){for(var i=-1,n=e.length;++i<n&&ds(t,e[i],0)>-1;);return i}(n,s),r=function(e,t){for(var i=e.length;i--&&ds(t,e[i],0)>-1;);return i}(n,s)+1;return function(e,t,i){var n=e.length;return i=void 0===i?n:i,!t&&i>=n?e:us(e,t,i)}(n,o,r).join("")}function As(e,t){if(!bi(e))return[];if(!bi(t))return[];let i=function(e,t){return bi(e)&&bi(t)?e.split(t):[]}(e,t);i=ls(i,Ls);let n=[];return Qn(i,function(e){bi(e)&&n.push(e)}),n}function Es(e){return function(e,t={}){let i=Ce(t,"fs");if(!yn(e,{fs:i}))return{success:"file does not exist: "+e};if(!vn(e,{fs:i}))return{error:"input path is not a file: "+e};try{i.unlinkSync(e)}catch(e){return{error:e}}return{success:"done: "+e}}(e,{fs:i})}var Ss={exports:{}};!function(e){var t,i;e.exports=(t=r,i={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,i="~";function n(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,n,o,r){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new s(n,o||e,r),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,n,s=[];if(0===this._eventsCount)return s;for(n in e=this._events)t.call(e,n)&&s.push(i?n.slice(1):n);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var s=0,o=n.length,r=new Array(o);s<o;s++)r[s]=n[s].fn;return r},a.prototype.listenerCount=function(e){var t=i?i+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,s,o,r){var a=i?i+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],p=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),p){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,s),!0;case 5:return u.fn.call(u.context,t,n,s,o),!0;case 6:return u.fn.call(u.context,t,n,s,o,r),!0}for(l=1,c=new Array(p-1);l<p;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var d,m=u.length;for(l=0;l<m;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),p){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,n);break;case 4:u[l].fn.call(u[l].context,t,n,s);break;default:if(!c)for(d=1,c=new Array(p-1);d<p;d++)c[d-1]=arguments[d];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,i){return o(this,e,t,i,!1)},a.prototype.once=function(e,t,i){return o(this,e,t,i,!0)},a.prototype.removeListener=function(e,t,n,s){var o=i?i+e:e;if(!this._events[o])return this;if(!t)return r(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||s&&!a.once||n&&a.context!==n||r(this,o);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||n&&a[c].context!==n)&&l.push(a[c]);l.length?this._events[o]=1===l.length?l[0]:l:r(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&r(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var i=t;let n;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(s="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(s,"base64").toString("utf8"));var s;function o(){let n=new i,s=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){r(e)}}(t);if(!s)return r("invalid worker"),null;function o(){let e=function(){let e,t,i=new Promise(function(){e=arguments[0],t=arguments[1]});return i.resolve=e,i.reject=t,i}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],i="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),n=i.length;for(let s=0;s<e;s++)t[s]=i[0|Math.random()*n];return t.join("")}(),i={mode:"call",id:t,fun:"main",input:[...arguments]};return s.postMessage(i),n.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function r(e){n.emit("error",e)}return s.on("message",function(e){let t=e,i=t.mode;"emit"!==i&&"return"!==i||("emit"===i&&n.emit(t.evName,t.msg),"return"===i&&n.emit(t.id,t))}),s.on("error",r),s.on("exit",e=>{1!==e&&r("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};s.postMessage(e)}([...arguments]),n.main=o,n.main=o,n.terminate=function(){s?(s.terminate(),s=void 0):r("worker has been terminated")},n}n=async function(){let e=[...arguments],t=o();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 n}(t)}({get exports(){return i},set exports(e){i=e}}),i)}(Ss);var Ts=bn(Ss.exports);let Ns=(e,t,i)=>{let n=`${function(){if(!un(An))throw new Error("invalid dayjs");return An().format("YYYYMMDDHHmmss")}()}|${Nn(6)}|${e}`;return setTimeout(()=>{Ts(e,t,i).catch(e=>{console.log(e)})},1),n},ks=(e,i)=>{let n="";if(!bi(e))return n=`invalid id[${e}]`,console.log(n),{state:"error",msg:n,path:""};let s=Ce(As(e,"|"),2,"");if(!bi(s))return n=`can not find fileHash in id[${e}]`,console.log(n),{state:"error",msg:n,path:""};let o=t.resolve(i,s),r=t.resolve(i,`${s}.done`),a=Mn(o),c=Mn(r),l=a&&c;return!a&&c&&Es(r),{state:l?"success":"merging",msg:"",path:o}};var js={exports:{}};!function(e){var t,i;e.exports=(t=r,i={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,i="~";function n(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,n,o,r){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new s(n,o||e,r),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,n,s=[];if(0===this._eventsCount)return s;for(n in e=this._events)t.call(e,n)&&s.push(i?n.slice(1):n);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var s=0,o=n.length,r=new Array(o);s<o;s++)r[s]=n[s].fn;return r},a.prototype.listenerCount=function(e){var t=i?i+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,s,o,r){var a=i?i+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],p=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),p){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,s),!0;case 5:return u.fn.call(u.context,t,n,s,o),!0;case 6:return u.fn.call(u.context,t,n,s,o,r),!0}for(l=1,c=new Array(p-1);l<p;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var d,m=u.length;for(l=0;l<m;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),p){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,n);break;case 4:u[l].fn.call(u[l].context,t,n,s);break;default:if(!c)for(d=1,c=new Array(p-1);d<p;d++)c[d-1]=arguments[d];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,i){return o(this,e,t,i,!1)},a.prototype.once=function(e,t,i){return o(this,e,t,i,!0)},a.prototype.removeListener=function(e,t,n,s){var o=i?i+e:e;if(!this._events[o])return this;if(!t)return r(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||s&&!a.once||n&&a.context!==n||r(this,o);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||n&&a[c].context!==n)&&l.push(a[c]);l.length?this._events[o]=1===l.length?l[0]:l:r(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&r(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var i=t;let n;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(s="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(s,"base64").toString("utf8"));var s;function o(){let n=new i,s=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){r(e)}}(t);if(!s)return r("invalid worker"),null;function o(){let e=function(){let e,t,i=new Promise(function(){e=arguments[0],t=arguments[1]});return i.resolve=e,i.reject=t,i}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],i="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),n=i.length;for(let s=0;s<e;s++)t[s]=i[0|Math.random()*n];return t.join("")}(),i={mode:"call",id:t,fun:"main",input:[...arguments]};return s.postMessage(i),n.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function r(e){n.emit("error",e)}return s.on("message",function(e){let t=e,i=t.mode;"emit"!==i&&"return"!==i||("emit"===i&&n.emit(t.evName,t.msg),"return"===i&&n.emit(t.id,t))}),s.on("error",r),s.on("exit",e=>{1!==e&&r("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};s.postMessage(e)}([...arguments]),n.main=o,n.main=o,n.terminate=function(){s?(s.terminate(),s=void 0):r("worker has been terminated")},n}n=async function(){let e=[...arguments],t=o();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 n}(t)}({get exports(){return i},set exports(e){i=e}}),i)}(js);var Zs=bn(js.exports),Xs={exports:{}};!function(e){var t,i;e.exports=(t=r,i={},function(e){e.exports=function(e){var t={};!function(e){var t=Object.prototype.hasOwnProperty,i="~";function n(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,n,o,r){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new s(n,o||e,r),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,n,s=[];if(0===this._eventsCount)return s;for(n in e=this._events)t.call(e,n)&&s.push(i?n.slice(1):n);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var s=0,o=n.length,r=new Array(o);s<o;s++)r[s]=n[s].fn;return r},a.prototype.listenerCount=function(e){var t=i?i+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,s,o,r){var a=i?i+e:e;if(!this._events[a])return!1;var c,l,u=this._events[a],p=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),p){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,s),!0;case 5:return u.fn.call(u.context,t,n,s,o),!0;case 6:return u.fn.call(u.context,t,n,s,o,r),!0}for(l=1,c=new Array(p-1);l<p;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var d,m=u.length;for(l=0;l<m;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),p){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,n);break;case 4:u[l].fn.call(u[l].context,t,n,s);break;default:if(!c)for(d=1,c=new Array(p-1);d<p;d++)c[d-1]=arguments[d];u[l].fn.apply(u[l].context,c)}}return!0},a.prototype.on=function(e,t,i){return o(this,e,t,i,!1)},a.prototype.once=function(e,t,i){return o(this,e,t,i,!0)},a.prototype.removeListener=function(e,t,n,s){var o=i?i+e:e;if(!this._events[o])return this;if(!t)return r(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||s&&!a.once||n&&a.context!==n||r(this,o);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||s&&!a[c].once||n&&a[c].context!==n)&&l.push(a[c]);l.length?this._events[o]=1===l.length?l[0]:l:r(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&r(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,e.exports=a}({get exports(){return t},set exports(e){t=e}});var i=t;let n;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=(s="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(s,"base64").toString("utf8"));var s;function o(){let n=new i,s=function(t){try{return new e.Worker(t,{eval:!0})}catch(e){r(e)}}(t);if(!s)return r("invalid worker"),null;function o(){let e=function(){let e,t,i=new Promise(function(){e=arguments[0],t=arguments[1]});return i.resolve=e,i.reject=t,i}(),t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=[],i="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),n=i.length;for(let s=0;s<e;s++)t[s]=i[0|Math.random()*n];return t.join("")}(),i={mode:"call",id:t,fun:"main",input:[...arguments]};return s.postMessage(i),n.once(t,t=>{"success"===t.state?e.resolve(t.msg):e.reject(t.msg)}),e}function r(e){n.emit("error",e)}return s.on("message",function(e){let t=e,i=t.mode;"emit"!==i&&"return"!==i||("emit"===i&&n.emit(t.evName,t.msg),"return"===i&&n.emit(t.id,t))}),s.on("error",r),s.on("exit",e=>{1!==e&&r("exit code["+e+"] !== 1")}),function(){let e={mode:"init",type:"function",input:[...arguments]};s.postMessage(e)}([...arguments]),n.main=o,n.main=o,n.terminate=function(){s?(s.terminate(),s=void 0):r("worker has been terminated")},n}n=async function(){let e=[...arguments],t=o();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 n}(t)}({get exports(){return i},set exports(e){i=e}}),i)}(Xs);var Ys=bn(Xs.exports);function zs(e={}){let r=Ce(e,"port");Vi(r)||(r=8080);let a=Ce(e,"useInert");qi(a)||(a=!0);let c=Ce(e,"pathStaticFiles");bi(c)||(c="dist");let l=Ce(e,"pathUploadTemp");bi(l)||(l="./uploadTemp"),Dn(l)||Yn(l);let u=Ce(e,"apiName");bi(u)||(u="api");let p=Ce(e,"tokenType");bi(p)||(p="Bearer");let d=Ce(e,"sizeSlice");Vi(d)||(d=1048576);let m=Ce(e,"verifyConn");un(m)||(m=()=>!0);let h=Ce(e,"corsOrigins",[]);Ji(h)||(h=["*"]);let g=Ce(e,"delayForSlice","");pn(g)||(g=100),g=Wi(g);let f=null;f=Ce(e,"serverHapi")?e.serverHapi:n.server({port:r,routes:{timeout:{server:!1,socket:!1},cors:{origin:h,credentials:!1}}});let w=Zn(),y=(e,...t)=>{setTimeout(()=>{w.emit(e,...t)},1)};async function x(e){let t=gn(),i=gn();return i.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),y("upload",e,i),t}async function D(e){let t=gn(),i=gn();return i.then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)}),y("download",e,i),t}function v(e,t,i={}){let n=new o.Readable;n._read=()=>{},n.push(t),n.push(null);let s=Ce(i,"returnType",""),r=Ce(i,"returnMsg",""),a=e.response(n).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",n.readableLength);return bi(s)&&a.header("Return-Type",s),bi(r)&&a.header("Return-Msg",r),a}function M(e,t){return bi(t)||(console.log("msg",t),console.log("msg is not an effective string, set msg=''"),t=""),v(e,is({error:t}),{returnType:"error",returnMsg:t})}let C={path:`/${u}/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 i=Ce(e,"headers");i=Ci(i)?i:"";let n=Ce(e,"query");n=Ci(n)?n:"";let s=Ce(i,"authorization","");s=bi(s)?s:"";{let o=!1;try{o=m({apiType:"main",authorization:s,query:n,headers:i,req:e}),fn(o)&&(o=await o.catch(e=>{console.log(e),o=!1}))}catch(e){console.log(e),o=!1}if(!0!==o)return M(t,"permission denied")}y("handler",{api:"apiMain",headers:i,query:n});let r=await(()=>{let t=gn(),i=[],n=new o.Writable({write(e,t,n){i.push(e),n()}});return n.on("finish",()=>{}),e.payload.pipe(n),e.payload.on("end",()=>{let e=Buffer.concat(i);i=[],t.resolve(e)}),e.payload.on("close",()=>{}),e.payload.on("error",e=>{console.log("apiMain req.payload err",e),y("error",`receive payload error: ${e.message}`),t.reject(`receive payload error: ${e.message}`)}),t})(),a=as(new Uint8Array(r)),c={},l="",u="";return await async function(e){let t=gn(),i=gn();i.then(i=>{e.output=i,delete e.input,t.resolve(e)}).catch(e=>{t.reject(e)});{let t=Ce(e,"func",""),n=Ce(e,"input",null);y("execute",t,n,i)}return t}(a).then(e=>{c.success=e,l="success",u="need to parse"}).catch(e=>{c.error=e,l="error",u="need to parse"}),v(t,is(c),{returnType:l,returnMsg:u})}},I={path:`/${u}/ulctr`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let i=Ce(e,"headers");i=Ci(i)?i:"";let n=Ce(e,"query");n=Ci(n)?n:"";let s=Ce(i,"authorization","");s=bi(s)?s:"";{let e=m({apiType:"upload-controller",authorization:s,headers:i,query:n});if(fn(e)&&(e=await e),!0!==e)return M(t,"permission denied")}y("handler",{api:"apiUploadCheck",headers:i,query:n});let o=Ce(e,"payload.mode","");if("check-total-hash"!==o&&"check-slices-hash"!==o&&"merge-slices-push"!==o&&"merge-slices-get"!==o)return M(t,`invalid mode[${o}] in payload`);let r=Ce(e,"payload.fileHash","");if(!bi(r))return M(t,"invalid fileHash in payload");let a={},c="",u="";return await(async()=>{let t=null;if("check-total-hash"===o){let i=Ce(e,"payload.filename",""),n=Ce(e,"payload.fileSize","");if(t=await Zs(n,d,r,l),t.bAllHash){let e={from:"check-total-hash",filename:i,path:t.path},n=await x(e);t={...t,msg:n}}}else if("check-slices-hash"===o){let i=Ce(e,"payload.fileSliceHashs",[]);t=await Ys(i,r,l)}else if("merge-slices-push"===o){let i=Ce(e,"payload.chunkTotal","");t={queueId:Ns(r,i,l)}}else if("merge-slices-get"===o){let i=Ce(e,"payload.filename",""),n=Ce(e,"payload.queueId",""),s=ks(n,l);if(t={state:s.state,msg:s.msg,queueId:n,filename:i,path:s.path},"success"===s.state){let e={from:"merge-slices-get",filename:i,path:s.path},n=await x(e);t={...t,msg:n}}}return t})().then(e=>{a.success=e,c="success",u="need to parse"}).catch(e=>{a.error=e,c="error",u="need to parse"}),v(t,is(a),{returnType:c,returnMsg:u})}},b={path:`/${u}/slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(e,n){let s=Ce(e,"headers");s=Ci(s)?s:"";let o=Ce(e,"query");o=Ci(o)?o:"";let r=Ce(s,"authorization","");r=bi(r)?r:"";{let e=m({apiType:"upload-slice",authorization:r,headers:s,query:o});if(fn(e)&&(e=await e),!0!==e)return M(n,"permission denied")}y("handler",{api:"apiUploadSlice",headers:s,query:o});let a=Ce(s,"chunk-index",""),c=Ce(s,"chunk-total",""),u=Ce(s,"package-id","");if(!pn(a))return M(n,"invalid chunkIndex in headers");if(a=Wi(a),!pn(c))return M(n,"invalid chunkTotal in headers");if(c=Wi(c),!bi(u))return M(n,"invalid packageId in headers");let p=t.resolve(l,`${u}_${a}`),d=i.createWriteStream(p),h={},f="",w="";return await(()=>{let t=gn();return e.payload.pipe(d),e.payload.on("end",()=>{setTimeout(()=>{t.resolve(`chunk[${a+1}/${c}] of packageId[${u}] done`)},g)}),e.payload.on("error",e=>{console.log(`apiUploadSlice req.payload chunk[${a+1}/${c}] of packageId[${u}] err`,e),y("error",`receive chunk[${a+1}/${c}] of packageId[${u}] error: ${e.message}`),t.reject(`receive chunk[${a+1}/${c}] of packageId[${u}] error: ${e.message}`)}),t})().then(e=>{h.success=e,f="success",w="need to parse"}).catch(e=>{h.error=e,f="error",w="need to parse",y("error",e)}),v(n,is(h),{returnType:f,returnMsg:w})}},L={path:`/${u}/dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let i=Ce(e,"headers");i=Ci(i)?i:"";let n=Ce(e,"query");n=Ci(n)?n:"";let s=Ce(i,"authorization","");s=bi(s)?s:"";{let e=m({apiType:"download-get-filename",authorization:s,headers:i,query:n});if(fn(e)&&(e=await e),!0!==e)return M(t,"permission denied")}y("handler",{api:"apiDownloadGetFilename",headers:i,query:n});let o=Ce(e,"payload.fileId","");if(!bi(o))return M(t,"invalid fileId in payload");let r={fileId:o,token:bi(s)?s.slice(Fn(p).length+1):""},a={},c="",l="";await D(r).then(e=>{a.success=e,c="success",l="need to parse"}).catch(e=>{a.error=e,c="error",l="need to parse"});let u=Ce(a,"success"),d=Ce(u,"streamRead");try{d.destroy()}catch(e){}let h=Ce(u,"filename");return bi(h)?(a={success:{filename:h}},v(t,is(a),{returnType:c,returnMsg:l})):M(t,"invalid filename")}},A={path:`/${u}/dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(e,t){let i=Ce(e,"headers");i=Ci(i)?i:"";let n=Ce(e,"query");n=Ci(n)?n:"";let s=Ce(n,"token","");s=bi(s)?s:"";let o="";bi(s)&&(o=`${p} ${s}`);{let e=m({apiType:"download-get-file",authorization:o,headers:i,query:n});if(fn(e)&&(e=await e),!0!==e)return M(t,"permission denied")}y("handler",{api:"apiDownloadGetFilename",headers:i,query:n});let r=Ce(n,"fileId","");if(r=bi(r)?r:"",!bi(r))return M(t,"invalid fileId in query");let a={fileId:r,token:s},c={};if(await D(a).then(e=>{c.success=e}).catch(e=>{c.error=e}),_n(c,"error"))return M(t,"can not get file from fileId");let l=Ce(c,"success"),u=Ce(l,"streamRead"),d=Ce(l,"fileSize");if(!zn(d)){try{u.destroy()}catch(e){}return M(t,"invalid fileSize")}let h=Ce(l,"fileType");if(!bi(h)){try{u.destroy()}catch(e){}return M(t,"invalid fileType")}return h=Fn(h),t.response(u).type(h).header("Content-Length",d)}},E={path:`/${u}/dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,t){let i=Ce(e,"headers");i=Ci(i)?i:"";let n=Ce(e,"query");n=Ci(n)?n:"";let s=Ce(i,"authorization","");s=bi(s)?s:"";{let e=m({apiType:"download",authorization:s,headers:i,query:n});if(fn(e)&&(e=await e),!0!==e)return M(t,"permission denied")}y("handler",{api:"apiDownload",headers:i,query:n});let o=Ce(e,"payload.fileId","");if(!bi(o))return M(t,"invalid fileId in payload");let r={fileId:o,token:bi(s)?s.slice(Fn(p).length+1):""},a={};if(await D(r).then(e=>{a.success=e}).catch(e=>{a.error=e}),_n(a,"error"))return M(t,"can not get file from fileId");let c=Ce(a,"success"),l=Ce(c,"streamRead"),u=Ce(c,"filename");if(!bi(u)){try{l.destroy()}catch(e){}return M(t,"invalid filename")}u=Vn(u);let d=Ce(c,"fileSize");if(!zn(d)){try{l.destroy()}catch(e){}return M(t,"invalid fileSize")}let h=Ce(c,"fileType");if(!bi(h)){try{l.destroy()}catch(e){}return M(t,"invalid fileType")}return h=Fn(h),t.response(l).type(h).header("Content-Disposition",`attachment; filename="${u}"`).header("Content-Length",d)}};Ce(e,"serverHapi")?f.route([C,I,b,L,A,E]):async function(){a&&await f.register(s);let e=[];if(a){let t={method:"GET",path:"/{file*}",handler:{directory:{path:`${c}/`}}};e=[...e,t]}e=[...e,C,I,b,L,A,E],f.route(e),await f.start(),console.log(`Server running at: ${f.info.uri}`)}();return w.stop=()=>{f.stop()},w}var Fs=function(){return I.Date.now()},Gs=Math.max,Hs=Math.min;function Ks(e,t,i){var n,s,o,r,a,c,l=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(t){var i=n,o=s;return n=s=void 0,l=t,r=e.apply(o,i)}function h(e){var i=e-c;return void 0===c||i>=t||i<0||p&&e-l>=o}function g(){var e=Fs();if(h(e))return f(e);a=setTimeout(g,function(e){var i=t-(e-c);return p?Hs(i,o-(e-l)):i}(e))}function f(e){return a=void 0,d&&n?m(e):(n=s=void 0,r)}function w(){var e=Fs(),i=h(e);if(n=arguments,s=this,c=e,i){if(void 0===a)return function(e){return l=e,a=setTimeout(g,t),u?m(e):r}(c);if(p)return clearTimeout(a),a=setTimeout(g,t),m(c)}return void 0===a&&(a=setTimeout(g,t)),r}return t=ji(t)||0,F(i)&&(u=!!i.leading,o=(p="maxWait"in i)?Gs(ji(i.maxWait)||0,t):o,d="trailing"in i?!!i.trailing:d),w.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=c=s=a=void 0},w.flush=function(){return void 0===a?r:f(Fs())},w}var Ps=function(){try{var e=q(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),Us=Ps;function Bs(e,t,i){"__proto__"==t&&Us?Us(e,t,{configurable:!0,enumerable:!0,value:i,writable:!0}):e[t]=i}function Ws(e,t,i){(void 0!==i&&!ne(e[t],i)||void 0===i&&!(t in e))&&Bs(e,t,i)}var Vs="object"==typeof e&&e&&!e.nodeType&&e,_s=Vs&&"object"==typeof module&&module&&!module.nodeType&&module,Rs=_s&&_s.exports===Vs?I.Buffer:void 0,Qs=Rs?Rs.allocUnsafe:void 0;function Os(e,t){if(t)return e.slice();var i=e.length,n=Qs?Qs(i):new e.constructor(i);return e.copy(n),n}function Js(e){var t=new e.constructor(e.byteLength);return new _t(t).set(new _t(e)),t}function qs(e,t){var i=t?Js(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.length)}function $s(e,t){var i=-1,n=e.length;for(t||(t=Array(n));++i<n;)t[i]=e[i];return t}var eo=Object.create,to=function(){function e(){}return function(t){if(!F(t))return{};if(eo)return eo(t);e.prototype=t;var i=new e;return e.prototype=void 0,i}}();function io(e){return"function"!=typeof e.constructor||be(e)?{}:to(en(e))}function no(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var so=Object.prototype.hasOwnProperty;function oo(e,t,i){var n=e[t];so.call(e,t)&&ne(n,i)&&(void 0!==i||t in e)||Bs(e,t,i)}function ro(e,t,i,n){var s=!i;i||(i={});for(var o=-1,r=t.length;++o<r;){var a=t[o],c=n?n(i[a],e[a],a,i,e):void 0;void 0===c&&(c=e[a]),s?Bs(i,a,c):oo(i,a,c)}return i}var ao=Object.prototype.hasOwnProperty;function co(e){if(!F(e))return function(e){var t=[];if(null!=e)for(var i in Object(e))t.push(i);return t}(e);var t=be(e),i=[];for(var n in e)("constructor"!=n||!t&&ao.call(e,n))&&i.push(n);return i}function lo(e){return _e(e)?Yt(e,!0):co(e)}function uo(e,t,i,n,s,o,r){var a=no(e,i),c=no(t,i),l=r.get(c);if(l)Ws(e,i,l);else{var u,p=o?o(a,c,i+"",e,t,r):void 0,d=void 0===p;if(d){var m=v(c),h=!m&&It(c),g=!m&&!h&&Zt(c);p=c,m||h||g?v(a)?p=a:j(u=a)&&_e(u)?p=$s(a):h?(d=!1,p=Os(c,!0)):g?(d=!1,p=qs(c,!0)):p=[]:an(c)||Dt(c)?(p=a,Dt(a)?p=function(e){return ro(e,lo(e))}(a):F(a)&&!G(a)||(p=io(c))):d=!1}d&&(r.set(c,p),s(p,c,n,o,r),r.delete(c)),Ws(e,i,p)}}function po(e,t,i,n,s){e!==t&&ht(t,function(o,r){if(s||(s=new Pt),F(o))uo(e,t,r,i,po,n,s);else{var a=n?n(no(e,r),o,r+"",e,t,s):void 0;void 0===a&&(a=o),Ws(e,r,a)}},lo)}var mo=Math.max;var ho=Us?function(e,t){return Us(e,"toString",{configurable:!0,enumerable:!1,value:(i=t,function(){return i}),writable:!0});var i}:yi,go=ho,fo=Date.now;var wo=function(e){var t=0,i=0;return function(){var n=fo(),s=16-(n-i);if(i=n,s>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(go),yo=wo;function xo(e,t){return yo(function(e,t,i){return t=mo(void 0===t?e.length-1:t,0),function(){for(var n=arguments,s=-1,o=mo(n.length-t,0),r=Array(o);++s<o;)r[s]=n[t+s];s=-1;for(var a=Array(t+1);++s<t;)a[s]=n[s];return a[t]=i(r),function(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}(e,this,a)}}(e,t,yi),e+"")}var Do,vo=(Do=function(e,t,i){po(e,t,i)},xo(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=Do.length>3&&"function"==typeof s?(n--,s):void 0,o&&vi(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var r=t[i];r&&Do(e,r,i,s)}return e}));function Mo(e){if(!bi(e))return{};let t={};try{t=JSON.parse(e)}catch(e){t={}}return t}function Co(e,t={}){let n={};if(Ci(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=Zn()),!_n(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let s=Ce(t,"fpTableTags","");bi(s)||(s="./tableTags.json");let o=Ce(t,"genTag");un(o)||(o=()=>En()+"|"+Nn(6));let r=(t,...i)=>{setTimeout(()=>{e.emit(t,...i)},1)};function a(){let e={};try{if(i.existsSync(s)){let t=Mo(i.readFileSync(s,"utf8"));Ci(t)&&(e=t)}}catch(e){r("error",{msg:"readTableTags catch",err:e})}return e}function c(){try{let e=function(e,t=!1){if(Ri(e))return"";let i="";try{i=t?JSON.stringify(e,null,2):JSON.stringify(e)}catch(e){i=""}return i}(n);i.writeFileSync(s,e,"utf8")}catch(e){r("error",{msg:"writeTableTags catch",err:e})}}let l=Ks(()=>{c(),r("changeTableTags",n)},200);return e.readTableTags=a,e.writeTableTags=c,e.initTableTags=function(e={},t="useInputFirst"){if("useInputOnly"===t)n=e;else if("useStorageOnly"===t)n=a();else if("useInputFirst"===t)n=vo(a(),e);else{if("useStorageFirst"!==t)throw new Error(`invalid mode[${t}]`);n=vo(e,a())}c()},e.setTableTags=function(e={}){n=vo(n,e),c()},e.getTableTags=function(){return n},e.updateTableTag=function(e){n[e]=o(),l()},e}var Io=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)qt(t,si(e)),e=en(e);return t}:ti;function bo(e){return $t(e,lo,Io)}var Lo=Object.prototype.hasOwnProperty;var Ao=/\w*$/;var Eo=b?b.prototype:void 0,So=Eo?Eo.valueOf:void 0;function To(e,t,i){var n,s,o,r=e.constructor;switch(t){case"[object ArrayBuffer]":return Js(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return function(e,t){var i=t?Js(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.byteLength)}(e,i);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 qs(e,i);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return(o=new(s=e).constructor(s.source,Ao.exec(s))).lastIndex=s.lastIndex,o;case"[object Symbol]":return n=e,So?Object(So.call(n)):{}}}var No=kt&&kt.isMap,ko=No?Et(No):function(e){return j(e)&&"[object Map]"==We(e)};var jo=kt&&kt.isSet,Zo=jo?Et(jo):function(e){return j(e)&&"[object Set]"==We(e)},Xo="[object Arguments]",Yo="[object Function]",zo="[object Object]",Fo={};function Go(e,t,i,n,s,o){var r,a=1&t,c=2&t,l=4&t;if(i&&(r=s?i(e,n,s,o):i(e)),void 0!==r)return r;if(!F(e))return e;var u=v(e);if(u){if(r=function(e){var t=e.length,i=new e.constructor(t);return t&&"string"==typeof e[0]&&Lo.call(e,"index")&&(i.index=e.index,i.input=e.input),i}(e),!a)return $s(e,r)}else{var p=We(e),d=p==Yo||"[object GeneratorFunction]"==p;if(It(e))return Os(e,a);if(p==zo||p==Xo||d&&!s){if(r=c||d?{}:io(e),!a)return c?function(e,t){return ro(e,Io(e),t)}(e,function(e,t){return e&&ro(t,lo(t),e)}(r,e)):function(e,t){return ro(e,si(e),t)}(e,function(e,t){return e&&ro(t,zt(t),e)}(r,e))}else{if(!Fo[p])return s?e:{};r=To(e,p,a)}}o||(o=new Pt);var m=o.get(e);if(m)return m;o.set(e,r),Zo(e)?e.forEach(function(n){r.add(Go(n,t,i,n,e,o))}):ko(e)&&e.forEach(function(n,s){r.set(s,Go(n,t,i,s,e,o))});var h=u?void 0:(l?c?bo:oi:c?lo:zt)(e);return Rn(h||e,function(n,s){h&&(n=e[s=n]),oo(r,s,Go(n,t,i,s,e,o))}),r}Fo[Xo]=Fo["[object Array]"]=Fo["[object ArrayBuffer]"]=Fo["[object DataView]"]=Fo["[object Boolean]"]=Fo["[object Date]"]=Fo["[object Float32Array]"]=Fo["[object Float64Array]"]=Fo["[object Int8Array]"]=Fo["[object Int16Array]"]=Fo["[object Int32Array]"]=Fo["[object Map]"]=Fo["[object Number]"]=Fo[zo]=Fo["[object RegExp]"]=Fo["[object Set]"]=Fo["[object String]"]=Fo["[object Symbol]"]=Fo["[object Uint8Array]"]=Fo["[object Uint8ClampedArray]"]=Fo["[object Uint16Array]"]=Fo["[object Uint32Array]"]=!0,Fo["[object Error]"]=Fo[Yo]=Fo["[object WeakMap]"]=!1;function Ho(e){return Go(e,5)}function Ko(e={}){let t=Zn(),i={},n=null,s=Ce(e,"timeAlive");Vi(s)||(s=1e4),s=Wi(s);let o=Ce(e,"timeDetect");return Vi(o)||(o=50),o=Wi(o),t.trigger=function(e,r){bi(e)?(_n(i,e)||setTimeout(()=>{t.emit("message",{eventName:"enter",key:e,data:r,now:pt(i)})},1),i[e]={data:r,time:Date.now()},null===n&&(n=setInterval(()=>{Qn(i,(e,n)=>{if(Date.now()-e.time>s){let e=Ho(i[n]);delete i[n],t.emit("message",{eventName:"leave",key:n,data:e.data,now:pt(i)})}}),Ci(i)||(clearInterval(n),n=null)},o))):console.log("trigger need key")},t.get=function(){let e=[];return Qn(i,(t,i)=>{e.push({key:i,data:t.data})}),e=Ho(e),e},t}function Po(e,t={}){let i={};if(Ci(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=Zn()),!_n(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let n=(t,...i)=>{setTimeout(()=>{e.emit(t,...i)},1)},s=Ko(),o=setInterval(()=>{let e=ls(s.get(),"key"),t={};Qn(e,e=>{t[e]=Ce(i,e,[])}),i=t},1e3);s.on("message",function({eventName:e,key:t,data:i,now:s}){"enter"===e?n("clientEnter",t,i):"leave"===e&&n("clientLeave",t,i),n("clientChange",s)}),e.on("execute",function(e,t,o){if("[sys:polling]"===e)try{let e=Ce(t,"clientId",""),n=Ce(i,e,[]);n=Ho(n),i[e]=[],s.trigger(e,t),o.resolve(n)}catch(e){n("error",e),o.reject("[sys:polling] error")}});return e.getClients=s.get,e.getMessages=()=>Ho(i),e.broadcast=e=>{if(!Ci(i))return;let t={};Qn(i,(i,n)=>{i.push({mode:"broadcast",data:e}),t[n]=i}),i=t},e.clearBroadcast=()=>{clearInterval(o)},e}let Uo=(e,t)=>{let i={};return Qn(e,e=>{let n=e,s=Ce(t,e,"");bi(s)&&(i[n]=s)}),i};function Bo(e,t,i,n={}){if(!Ci(e))throw new Error("invalid instWConverServer");if(0===pt(t))return e;if(!Ci(i))return e;let s=Ce(n,"genTag");un(s)||(s=()=>En()+"|"+Nn(6));let o={};return Qn(t,e=>{o[e]=s()}),e.initTableTags(o,"useInputOnly"),Qn(t,t=>{let n=i[t];if(!n)throw new Error(`invalid kpOrm[${t}]`);try{n.on("change",()=>{e.updateTableTag(t)})}catch(e){throw new Error(`kpOrm[${t}] can not listen to change events`)}}),e.on("changeTableTags",i=>{e.broadcast({mode:"syncKpTable",data:Uo(t,i)})}),e}function Wo(e,t,i,n){for(var s=i-1,o=e.length;++s<o;)if(n(e[s],t))return s;return-1}var Vo=Array.prototype.splice;function _o(e,t){return e&&e.length&&t&&t.length?function(e,t,i,n){var s=n?Wo:ds,o=-1,r=t.length,a=e;for(e===t&&(t=$s(t)),i&&(a=ge(e,Et(i)));++o<r;)for(var c=0,l=t[o],u=i?i(l):l;(c=s(a,u,c,n))>-1;)a!==e&&Vo.call(a,c,1),Vo.call(e,c,1);return e}(e,t):e}function Ro(e,t={}){if(!Ci(e))throw new Error("invalid instWConverServer");let i=Ce(t,"getUserIdByToken",null);un(i)||(i=async()=>"");let n=Ce(t,"useDbOrm",null);qi(n)||(n=!1);let s=null;if(n&&(s=Ce(t,"operOrm",null),!un(s)))throw new Error("invalid opt.operOrm when useDbOrm=true");let o=[];if(n&&(o=Ce(t,"tableNames",null),!_i(o)))throw new Error("invalid opt.tableNames when useDbOrm=true");let r=[];n&&(r=Ce(t,"methods",null),_i(r)||(r=["select","insert","save","del"]));let a=Ce(t,"kpFunExt",null);let c={};async function l(e,t,n){if(!bi(e))return n.resolve({state:"error",msg:"invalid func"}),n;let s="";if(!_n(t,"__sysToken__"))return n.resolve({state:"error",msg:"invalid token"}),n;if(s=Fn(t.__sysToken__),!_n(t,"__sysInputArgs__"))return n.resolve({state:"error",msg:"invalid input"}),n;t=t.__sysInputArgs__;let o="";if(o=i(s),fn(o)&&(o=await o),bi(o)||(o=""),"[sys:getFuncList]"===e){let e=zt(c);e=function(e,t){if(!Ji(e))return[];if((Mi(t)||Fi(t)||Ii(t)||qi(t))&&(t=[t]),!Ji(t))return e;let i=Ho(e);return _o(i,t),i}(e,"[sys:getTableTags]");let t={state:"success",msg:e};return n.resolve(t),n}if(!_n(c,e))return n.resolve({state:"error",msg:`invalid func[${e}]`}),n;let r=c[e];try{let e=await wn(r)(o,...t);n.resolve(e)}catch(t){n.resolve({state:"error",msg:`call func[${e}] has an error: ${t.message}`})}return n}return n&&(o=Ho(o),c=function(e,t,i){let n={};return Qn(e,e=>{Qn(t,t=>{n[`${e}.${t}`]=async function(n,s){return await i(n,e,t,s)}})}),n}(o,r,s)),Ci(a)&&Qn(a,(e,t)=>{c[t]=e}),e.on("execute",async function(t,i,n){await l(t,i,n).catch(i=>{e.emit("error",i),n.resolve({state:"error",msg:`execFun func[${t}] has an error: ${i.message}`})})}),e}function Qo(e,t={}){if(Ci(e)||(console.log("instWConverServer is not an effective object, and set instWConverServer to an EventEmitter"),e=Zn()),!_n(e,"emit"))throw new Error("instWConverServer is not an EventEmitter");let i=Ce(t,"fpTableTags",null);bi(i)||(i="./tableTags.json");let n=Ce(t,"genTag");un(n)||(n=()=>En()+"|"+Nn(6)),e=new Po(e=new Co(e,{fpTableTags:i,genTag:n}));let s=Ce(t,"useDbOrm",null);qi(s)||(s=!0);let o=Ce(t,"kpOrm",null),r=Ce(t,"operOrm",null),a=Ce(t,"tableNamesExec",null),c=Ce(t,"methodsExec",null),l=Ce(t,"tableNamesSync",null),u=Ce(t,"getUserIdByToken",null),p=Ce(t,"kpFunExt",null);if(Ci(p)||(p={}),p={...p,"[sys:getTableTags]":()=>{let t=e.getTableTags();return{mode:"syncKpTable",data:Uo(l,t)}}},e=new Ro(e,{getUserIdByToken:u,useDbOrm:s,operOrm:r,tableNames:a,methods:c,kpFunExt:p}),s){if(!Mi(o))return e.emit("error","invalid opt.kpOrm when useDbOrm=true"),e;e=new Bo(e,l,o,{genTag:n})}return e}function Oo(e={}){let t=Zn(),i=null,o=null,r=Ce(e,"port");Hi(r)||(r=8080);let a=Ce(e,"corsOrigins",[]);Ji(a)||(a=["http://localhost"]);let c=Ce(e,"delayForSlice","");pn(c)||(c=100),c=Wi(c);let l=Ce(e,"useInert");qi(l)||(l=!0);let u=Ce(e,"pathStaticFiles");bi(u)||(u="dist");let p=Ce(e,"apis");Ji(p)||(p=[]);let d=Ce(e,"apiName");bi(d)||(d="api");let m=Ce(e,"pathUploadTemp");bi(m)||(m="./uploadTemp"),Dn(m)||Yn(m);let h=Ce(e,"tokenType");bi(h)||(h="Bearer");let g=Ce(e,"sizeSlice");Vi(g)||(g=1048576);let f=Ce(e,"verifyConn");un(f)||(f=()=>!0);let w=Ce(e,"getUserIdByToken",null),y=Ce(e,"useDbOrm",null);qi(y)||(y=!0);let x=Ce(e,"kpOrm",null),D=Ce(e,"operOrm",null),v=Ce(e,"tableNamesExec",null),M=Ce(e,"methodsExec",null),C=Ce(e,"tableNamesSync",null),I=Ce(e,"kpFunExt",null),b=Ce(e,"fnTableTags",null),L=Ce(e,"genTag");un(L)||(L=()=>En()+"|"+Nn(6));let A=Ce(e,"showLog");qi(A)||(A=!0);(async()=>{await(async()=>{i=new n.Server({port:r,routes:{timeout:{server:!1,socket:!1},cors:{origin:a,credentials:!1}}}),l&&await i.register(s);let e=[];l&&(e=[{method:"GET",path:"/{file*}",handler:{directory:{path:`${u}/`}}}]),e=[...e,...p],i.route(e)})(),await(async()=>{o=new zs({serverHapi:i,apiName:d,pathUploadTemp:m,tokenType:h,sizeSlice:g,verifyConn:f,corsOrigins:a,delayForSlice:c}),o.on("open",function(){A&&console.log(`Server[port:${r}]: open`)}),o.on("clientChange",function(e){A&&console.log(`Server[port:${r}]: now clients: ${e}`)})})(),await(async()=>{o=new Qo(o,{getUserIdByToken:w,useDbOrm:y,kpOrm:x,operOrm:D,tableNamesExec:v,tableNamesSync:C,methodsExec:M,kpFunExt:I,fnTableTags:b,genTag:L}),o.on("error",e=>{t.emit("error",e)})})(),await i.start(),A&&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 Xn(()=>null!==i),i),t.getInstWConverServer=async()=>(await Xn(()=>null!==o),o),t}function Jo(e,t){let i=gn();if(!_i(e)&&!Mi(e))return i.reject("rs is not an array or object"),i;let n=!1;if(Mi(e)){n=!0;let t=[];Qn(e,(e,i)=>{t.push({k:i,v:e})}),e=t}un(t)||(t=function(e){return e});let s=-1,o=[];return e.reduce(function(e,i){return e.then(function(e){o.push(e),s+=1;let r=s,a=i;return n&&(r=i.k,a=i.v),un(t)?t(a,r):a})},Promise.resolve()).then(function(e){var t,n,s,r;o.push(e),r=null==(t=o)?0:t.length,o=r?us(t,(n=s||void 0===n?1:Yi(n))<0?0:n,r):[],i.resolve(o)}).catch(function(e){i.reject(e)}),i}let qo={backup:async function(e){return await Jo(e,async(e,t)=>(console.log("backup...",t),{name:t,data:await e.select()}))},recover:async function(e,t,n,s=!1){if(!Mn(e))throw console.log("fp",e),new Error("fp is not exist");if(!Ci(t))throw console.log("woItems",t),new Error("invalid woItems");un(n)||(n=null),qi(s)||(s=!1);let o=i.readFileSync(e,"utf8");o=Ls(o);let r=Mo(o);un(n)&&n(),await Jo(r,async e=>{console.log("recover...",e.name),s&&(console.log("needCreateStorage"),await t[e.name].createStorage());let i=null;return pt(e.data)>0&&(i=await t[e.name].insert(e.data)),i})}};function $o(){if(!un(An))throw new Error("invalid dayjs");return An().format("YYYY-MM-DDTHH:mm:ss.SSSZ")}var er={exports:{}},tr={},ir={exports:{}},nr={};function sr(){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 or=/javascript\s*\:/gim;nr.whiteList=sr(),nr.getDefaultWhiteList=sr,nr.onAttr=function(e,t,i){},nr.onIgnoreAttr=function(e,t,i){},nr.safeAttrValue=function(e,t){return or.test(t)?"":t};var rr={indexOf:function(e,t){var i,n;if(Array.prototype.indexOf)return e.indexOf(t);for(i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1},forEach:function(e,t,i){var n,s;if(Array.prototype.forEach)return e.forEach(t,i);for(n=0,s=e.length;n<s;n++)t.call(i,e[n],n,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,"")}},ar=rr;var cr=function(e,t){";"!==(e=ar.trimRight(e))[e.length-1]&&(e+=";");var i=e.length,n=!1,s=0,o=0,r="";function a(){if(!n){var i=ar.trim(e.slice(s,o)),a=i.indexOf(":");if(-1!==a){var c=ar.trim(i.slice(0,a)),l=ar.trim(i.slice(a+1));if(c){var u=t(s,r.length,c,l,i);u&&(r+=u+"; ")}}}s=o+1}for(;o<i;o++){var c=e[o];if("/"===c&&"*"===e[o+1]){var l=e.indexOf("*/",o+2);if(-1===l)break;s=(o=l+1)+1,n=!1}else"("===c?n=!0:")"===c?n=!1:";"===c?n||a():"\n"===c&&a()}return ar.trim(r)},lr=nr,ur=cr;function pr(e){return null==e}function dr(e){(e=function(e){var t={};for(var i in e)t[i]=e[i];return t}(e||{})).whiteList=e.whiteList||lr.whiteList,e.onAttr=e.onAttr||lr.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||lr.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||lr.safeAttrValue,this.options=e}dr.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,i=t.whiteList,n=t.onAttr,s=t.onIgnoreAttr,o=t.safeAttrValue,r=ur(e,function(e,t,r,a,c){var l=i[r],u=!1;if(!0===l?u=l:"function"==typeof l?u=l(a):l instanceof RegExp&&(u=l.test(a)),!0!==u&&(u=!1),a=o(r,a)){var p,d={position:t,sourcePosition:e,source:c,isWhite:u};return u?pr(p=n(r,a,d))?r+":"+a:p:pr(p=s(r,a,d))?void 0:p}});return r};var mr=dr;!function(e,t){var i=nr,n=mr;for(var s in(t=e.exports=function(e,t){return new n(t).process(e)}).FilterCSS=n,i)t[s]=i[s];"undefined"!=typeof window&&(window.filterCSS=e.exports)}(ir,ir.exports);var hr=ir.exports,gr={indexOf:function(e,t){var i,n;if(Array.prototype.indexOf)return e.indexOf(t);for(i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1},forEach:function(e,t,i){var n,s;if(Array.prototype.forEach)return e.forEach(t,i);for(n=0,s=e.length;n<s;n++)t.call(i,e[n],n,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}},fr=hr.FilterCSS,wr=hr.getDefaultWhiteList,yr=gr;function xr(){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 Dr=new fr;function vr(e){return e.replace(Mr,"<").replace(Cr,">")}var Mr=/</g,Cr=/>/g,Ir=/"/g,br=/"/g,Lr=/&#([a-zA-Z0-9]*);?/gim,Ar=/:?/gim,Er=/&newline;?/gim,Sr=/((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,Tr=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,Nr=/u\s*r\s*l\s*\(.*/gi;function kr(e){return e.replace(Ir,""")}function jr(e){return e.replace(br,'"')}function Zr(e){return e.replace(Lr,function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))})}function Xr(e){return e.replace(Ar,":").replace(Er," ")}function Yr(e){for(var t="",i=0,n=e.length;i<n;i++)t+=e.charCodeAt(i)<32?" ":e.charAt(i);return yr.trim(t)}function zr(e){return e=Yr(e=Xr(e=Zr(e=jr(e))))}function Fr(e){return e=vr(e=kr(e))}tr.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"]},tr.getDefaultWhiteList=xr,tr.onTag=function(e,t,i){},tr.onIgnoreTag=function(e,t,i){},tr.onTagAttr=function(e,t,i){},tr.onIgnoreTagAttr=function(e,t,i){},tr.safeAttrValue=function(e,t,i,n){if(i=zr(i),"href"===t||"src"===t){if("#"===(i=yr.trim(i)))return"#";if("http://"!==i.substr(0,7)&&"https://"!==i.substr(0,8)&&"mailto:"!==i.substr(0,7)&&"tel:"!==i.substr(0,4)&&"data:image/"!==i.substr(0,11)&&"ftp://"!==i.substr(0,6)&&"./"!==i.substr(0,2)&&"../"!==i.substr(0,3)&&"#"!==i[0]&&"/"!==i[0])return""}else if("background"===t){if(Sr.lastIndex=0,Sr.test(i))return""}else if("style"===t){if(Tr.lastIndex=0,Tr.test(i))return"";if(Nr.lastIndex=0,Nr.test(i)&&(Sr.lastIndex=0,Sr.test(i)))return"";!1!==n&&(i=(n=n||Dr).process(i))}return i=Fr(i)},tr.escapeHtml=vr,tr.escapeQuote=kr,tr.unescapeQuote=jr,tr.escapeHtmlEntities=Zr,tr.escapeDangerHtml5Entities=Xr,tr.clearNonPrintableCharacter=Yr,tr.friendlyAttrValue=zr,tr.escapeAttrValue=Fr,tr.onIgnoreTagStripAll=function(){return""},tr.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var i=!Array.isArray(e),n=[],s=!1;return{onIgnoreTag:function(o,r,a){if(function(t){return!!i||-1!==yr.indexOf(e,t)}(o)){if(a.isClosing){var c="[/removed]",l=a.position+10;return n.push([!1!==s?s:a.position,l]),s=!1,c}return s||(s=a.position),"[removed]"}return t(o,r,a)},remove:function(e){var t="",i=0;return yr.forEach(n,function(n){t+=e.slice(i,n[0]),i=n[1]}),t+=e.slice(i)}}},tr.stripCommentTag=function(e){for(var t="",i=0;i<e.length;){var n=e.indexOf("\x3c!--",i);if(-1===n){t+=e.slice(i);break}t+=e.slice(i,n);var s=e.indexOf("--\x3e",n);if(-1===s)break;i=s+3}return t},tr.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("")},tr.attributeWrapSign='"',tr.cssFilter=Dr,tr.getDefaultCSSWhiteList=wr;var Gr={},Hr=gr;function Kr(e){var t,i=Hr.spaceIndex(e);return t=-1===i?e.slice(1,-1):e.slice(1,i+1),"/"===(t=Hr.trim(t).toLowerCase()).slice(0,1)&&(t=t.slice(1)),"/"===t.slice(-1)&&(t=t.slice(0,-1)),t}function Pr(e){return"</"===e.slice(0,2)}var Ur=/[^a-zA-Z0-9\\_:.-]/gim;function Br(e,t){for(;t<e.length;t++){var i=e[t];if(" "!==i)return"="===i?t:-1}}function Wr(e,t){for(;t<e.length;t++){var i=e[t];if(" "!==i)return"'"===i||'"'===i?t:-1}}function Vr(e,t){for(;t>0;t--){var i=e[t];if(" "!==i)return"="===i?t:-1}}function _r(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}Gr.parseTag=function(e,t,i){var n="",s=0,o=!1,r=!1,a=0,c=e.length,l="",u="";e:for(a=0;a<c;a++){var p=e.charAt(a);if(!1===o){if("<"===p){o=a;continue}}else if(!1===r){if("<"===p){n+=i(e.slice(s,a)),o=a,s=a;continue}if(">"===p||a===c-1){n+=i(e.slice(s,o)),l=Kr(u=e.slice(o,a+1)),n+=t(o,n.length,l,u,Pr(u)),s=a+1,o=!1;continue}if('"'===p||"'"===p)for(var d=1,m=e.charAt(a-d);""===m.trim()||"="===m;){if("="===m){r=p;continue e}m=e.charAt(a-++d)}}else if(p===r){r=!1;continue}}return s<c&&(n+=i(e.substr(s))),n},Gr.parseAttr=function(e,t){var i=0,n=0,s=[],o=!1,r=e.length;function a(e,i){if(!((e=(e=Hr.trim(e)).replace(Ur,"").toLowerCase()).length<1)){var n=t(e,i||"");n&&s.push(n)}}for(var c=0;c<r;c++){var l,u=e.charAt(c);if(!1!==o||"="!==u)if(!1===o||c!==n)if(/\s|\n|\t/.test(u)){if(e=e.replace(/\s|\n|\t/g," "),!1===o){if(-1===(l=Br(e,c))){a(Hr.trim(e.slice(i,c))),o=!1,i=c+1;continue}c=l-1;continue}if(-1===(l=Vr(e,c-1))){a(o,_r(Hr.trim(e.slice(i,c)))),o=!1,i=c+1;continue}}else;else{if(-1===(l=e.indexOf(u,c+1)))break;a(o,Hr.trim(e.slice(n+1,l))),o=!1,i=(c=l)+1}else o=e.slice(i,c),i=c+1,n='"'===e.charAt(i)||"'"===e.charAt(i)?i:Wr(e,c+1)}return i<e.length&&(!1===o?a(e.slice(i)):a(o,_r(Hr.trim(e.slice(i))))),Hr.trim(s.join(" "))};var Rr=hr.FilterCSS,Qr=tr,Or=Gr,Jr=Or.parseTag,qr=Or.parseAttr,$r=gr;function ea(e){return null==e}function ta(e){(e=function(e){var t={};for(var i in e)t[i]=e[i];return t}(e||{})).stripIgnoreTag&&(e.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),e.onIgnoreTag=Qr.onIgnoreTagStripAll),e.whiteList||e.allowList?e.whiteList=function(e){var t={};for(var i in e)Array.isArray(e[i])?t[i.toLowerCase()]=e[i].map(function(e){return e.toLowerCase()}):t[i.toLowerCase()]=e[i];return t}(e.whiteList||e.allowList):e.whiteList=Qr.whiteList,this.attributeWrapSign=!0===e.singleQuotedAttributeValue?"'":Qr.attributeWrapSign,e.onTag=e.onTag||Qr.onTag,e.onTagAttr=e.onTagAttr||Qr.onTagAttr,e.onIgnoreTag=e.onIgnoreTag||Qr.onIgnoreTag,e.onIgnoreTagAttr=e.onIgnoreTagAttr||Qr.onIgnoreTagAttr,e.safeAttrValue=e.safeAttrValue||Qr.safeAttrValue,e.escapeHtml=e.escapeHtml||Qr.escapeHtml,this.options=e,!1===e.css?this.cssFilter=!1:(e.css=e.css||{},this.cssFilter=new Rr(e.css))}ta.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this,i=t.options,n=i.whiteList,s=i.onTag,o=i.onIgnoreTag,r=i.onTagAttr,a=i.onIgnoreTagAttr,c=i.safeAttrValue,l=i.escapeHtml,u=t.attributeWrapSign,p=t.cssFilter;i.stripBlankChar&&(e=Qr.stripBlankChar(e)),i.allowCommentTag||(e=Qr.stripCommentTag(e));var d=!1;i.stripIgnoreTagBody&&(d=Qr.StripTagBody(i.stripIgnoreTagBody,o),o=d.onIgnoreTag);var m=Jr(e,function(e,t,i,d,m){var h={sourcePosition:e,position:t,isClosing:m,isWhite:Object.prototype.hasOwnProperty.call(n,i)},g=s(i,d,h);if(!ea(g))return g;if(h.isWhite){if(h.isClosing)return"</"+i+">";var f=function(e){var t=$r.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var i="/"===(e=$r.trim(e.slice(t+1,-1)))[e.length-1];return i&&(e=$r.trim(e.slice(0,-1))),{html:e,closing:i}}(d),w=n[i],y=qr(f.html,function(e,t){var n=-1!==$r.indexOf(w,e),s=r(i,e,t,n);return ea(s)?n?(t=c(i,e,t,p))?e+"="+u+t+u:e:ea(s=a(i,e,t,n))?void 0:s:s});return d="<"+i,y&&(d+=" "+y),f.closing&&(d+=" /"),d+=">"}return ea(g=o(i,d,h))?l(d):g},l);return d&&(m=d.remove(m)),m};var ia=ta;!function(e,t){var i=tr,n=Gr,s=ia;function o(e,t){return new s(t).process(e)}(t=e.exports=o).filterXSS=o,t.FilterXSS=s,function(){for(var e in i)t[e]=i[e];for(var s in n)t[s]=n[s]}(),"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)}(er,er.exports);var na=bn(er.exports);function sa(){return"undefined"!=typeof self?self:"undefined"!=typeof window&&void 0!==window.document?window:"undefined"!=typeof global?global:null}function oa(e){let t=function(){let e=sa();return na||e.xss}();let i=function e(i){return _i(i)||Mi(i)?(Qn(i,function(t,n){i[n]=e(t)}),i):bi(i)?t(i,{onIgnoreTagAttr:function(e,i,n,s){if("style"===i)return i+'="'+t.escapeAttrValue(n)+'"'}}):i}(Ho(e));return i}let ra=null,aa=null;function ca(e,t,i,n="save"){if(!Ci(ra))throw console.log("ds",ra),new Error("invalid ds");let s=ra[e].keys,o=!1;_i(i)||(o=!0,i=[i]);let r=$o();return n.indexOf("insert")>=0&&(s.indexOf("userId")>=0&&Qn(i,(e,n)=>{i[n].userId=t}),s.indexOf("timeCreate")>=0&&Qn(i,(e,t)=>{i[t].timeCreate=r}),s.indexOf("userIdUpdate")>=0&&Qn(i,(e,n)=>{i[n].userIdUpdate=t}),s.indexOf("timeUpdate")>=0&&Qn(i,(e,t)=>{i[t].timeUpdate=r})),(n.indexOf("insert")>=0||n.indexOf("save")>=0)&&(s.indexOf("userIdUpdate")>=0&&Qn(i,(e,n)=>{i[n].userIdUpdate=t}),s.indexOf("timeUpdate")>=0&&Qn(i,(e,t)=>{i[t].timeUpdate=r})),i=ls(i,(e,t)=>{let i={};return Qn(e,(e,t)=>{e=oa(e),i[t]=e}),i}),i=o?i[0]:i}async function la(e,t,i,n){let s,o=null;if(!Ci(aa))return Promise.reject("無有效woItems");let r=Ce(aa,t,null);if(null===r)return Promise.reject(`ORM找不到表名稱: ${t}`);if("select"===i){if(s=await r.select(n).catch(e=>{console.log(`${t}.select catch`,e),o="取得資料失敗"}),bi(o))return Promise.reject(o)}else if("insert"===i||"save"===i){try{n=ca(t,e,n,i)}catch(e){return console.log("adjustData catch",e.toString()),o="調整資料失敗",Promise.reject(o)}if("insert"===i?s=await r.insert(n).catch(e=>{console.log(`${t}.save catch`,e),o="新增資料失敗"}):"save"===i&&(s=await r.save(n).catch(e=>{console.log(`${t}.save catch`,e),o="儲存資料失敗"})),bi(o))return Promise.reject(o);s=_i(n)?ls(n,e=>({id:e.id})):{id:n.id}}else if("del"===i)s=await r.del(n).catch(e=>{console.log(`${t}.del catch`,e),o="刪除資料失敗"});else if("delAll"===i)s=await r.delAll(n).catch(e=>{console.log(`${t}.delAll catch`,e),o="刪除資料失敗"});else if("mix"===i){if(!Ci(n))return Promise.reject("mix僅支援輸入ltdtDiffByKey結果物件");let i;s=[];let a=Ce(n,"add",[]);if(pt(a)>0){try{a=ca(t,e,a,"insert+save")}catch(e){return console.log("adjustData catch",e.toString()),o="調整資料失敗",Promise.reject(o)}if(await r.insert(a).catch(e=>{console.log(`${t}.save catch`,e),o="新增資料失敗"}),bi(o))return Promise.reject(o);i=ls(a,e=>({id:e.id})),s=[...s,...i]}let c=Ce(n,"del",[]);if(pt(c)>0){if(await r.del(c).catch(e=>{console.log(`${t}.save catch`,e),o="刪除資料失敗"}),bi(o))return Promise.reject(o);i=ls(c,e=>({id:e.id})),s=[...s,...i]}let l=Ce(n,"diff",[]);if(pt(l)>0){try{l=ca(t,e,l)}catch(e){return console.log("adjustData catch",e.toString()),o="調整資料失敗",Promise.reject(o)}if(await r.save(l).catch(e=>{console.log(`${t}.save catch`,e),o="變更資料失敗"}),bi(o))return Promise.reject(o);i=ls(l,e=>({id:e.id})),s=[...s,...i]}}else o=`invalid mode: ${i}`;return bi(o)?Promise.reject(o):s}function ua(e,t){return ra=e,aa=t,la}function pa(e,t){var i=[];return Ht(e,function(e,n,s){t(e,n,s)&&i.push(e)}),i}function da(e,t){return(v(e)?ei:pa)(e,Di(t))}function ma(e,t=null){if(!_i(e)){let e=gn();return e.reject("pms is not an array"),e}return e.reduce((e,t)=>e.then(t),Promise.resolve(t))}let ha=[],ga=[],fa=[],wa=null,ya=null,xa=!0,Da=!0;function va(e){setTimeout(()=>{ha.push(e)},1)}function Ma(e){setTimeout(()=>{ga.push(e)},1)}function Ca(e){setTimeout(()=>{fa.push(e)},1)}async function Ia(e,t,i,n){if(!un(wa))return Promise.reject("invalid mapOrm");if(xa&&!bi(e))return console.log("userId",e),console.log("找不到使用者主鍵"),Promise.reject("找不到使用者主鍵");let s="n";if(xa){if(!un(ya))return Promise.reject("invalid getUserById");let t=await ya(e);if(!t)return console.log("userId",e),console.log("找不到使用者資訊"),Promise.reject("找不到使用者資訊");s=Ce(t,"isAdmin"),"y"!==s&&"n"!==s&&(s="n");let i=Ce(t,"isActive");if("y"!==i&&"n"!==i&&(i="n"),"y"!==i)return console.log("userId",e),console.log("oSelf",t),console.log("使用者被停權或無有效使用者資訊"),Promise.reject("使用者被停權或無有效使用者資訊")}if(await Jo(ha,o=>o({woName:t,userId:e,isAdmin:s,mode:i,input:n})),pt(ga)>0){let o={woName:t,userId:e,isAdmin:s,mode:i,input:n},r=await ma(ga,o);n=r.input}let o=await wa(e,t,i,n);return Da&&"n"===s&&"select"===i&&_i(o)&&(o=da(o,e=>!_n(e,"isActive")||!("n"===e.isActive))),pt(fa)>0&&(o=await ma(fa,{woName:t,userId:e,isAdmin:s,mode:i,input:n,output:o})),o}function ba(e,t,i,n,s={}){let o=function(e,t,i,n){if(!Ci(e))throw console.log("ds",e),new Error("invalid ds");if(!un(t))throw console.log("WOrm",t),new Error("invalid WOrm");if(!bi(i))throw console.log("url",i),new Error("invalid url");if(!bi(n))throw console.log("db",n),new Error("invalid db");let s={};return Qn(zt(e),e=>{let o=new t({url:i,db:n,cl:e});s[e]=o}),s}(e,t,i,n),r=function(e,t={}){return un(e)?(wa=e,xa=Ce(t,"useCheckUser"),qi(xa)||(xa=!0),ya=Ce(t,"getUserById"),Da=Ce(t,"useExcludeWhenNotAdmin"),qi(Da)||(Da=!0),{addFunCheck:va,addFunPreProcessing:Ma,addFunPostProcessing:Ca,procOrm:Ia}):Promise.reject("invalid mapOrm")}(ua(e,o),s);return{...qo,woItems:o,closeAll:async()=>{await Jo(o,async e=>{e&&un(e.close)&&await e.close()})},...r}}const La=[];for(let e=0;e<256;++e)La.push((e+256).toString(16).slice(1));const Aa=new Uint8Array(16);function Ea(){return crypto.getRandomValues(Aa)}const Sa={};function Ta(e,t,i){let n;if(e)n=Na(e.random??e.rng?.()??Ea(),e.msecs,e.seq,t,i);else{const e=Date.now(),s=Ea();!function(e,t,i){e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=i[6]<<23|i[7]<<16|i[8]<<8|i[9],e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(Sa,e,s),n=Na(s,Sa.msecs,Sa.seq,t,i)}return t??function(e,t=0){return(La[e[t+0]]+La[e[t+1]]+La[e[t+2]]+La[e[t+3]]+"-"+La[e[t+4]]+La[e[t+5]]+"-"+La[e[t+6]]+La[e[t+7]]+"-"+La[e[t+8]]+La[e[t+9]]+"-"+La[e[t+10]]+La[e[t+11]]+La[e[t+12]]+La[e[t+13]]+La[e[t+14]]+La[e[t+15]]).toLowerCase()}(n)}function Na(e,t,i,n,s=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(n){if(s<0||s+16>n.length)throw new RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`)}else n=new Uint8Array(16),s=0;return t??=Date.now(),i??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],n[s++]=t/1099511627776&255,n[s++]=t/4294967296&255,n[s++]=t/16777216&255,n[s++]=t/65536&255,n[s++]=t/256&255,n[s++]=255&t,n[s++]=112|i>>>28&15,n[s++]=i>>>20&255,n[s++]=128|i>>>14&63,n[s++]=i>>>6&255,n[s++]=i<<2&255|3&e[10],n[s++]=e[11],n[s++]=e[12],n[s++]=e[13],n[s++]=e[14],n[s++]=e[15],n}function ka(){return Ta()}function ja(e,t,i=""){if(!Ji(t))return{};let n={};return Qn(t,function(t){n[t]=Ce(e,t,i)}),n}let Za={id:{pk:!0,name:"主鍵",type:"STRING"},ip:{name:"IP",type:"STRING"},timeBlocked:{name:"封鎖時間",type:"STRING"}},Xa={id:{pk:!0,name:"主鍵",type:"STRING"},token:{name:"金鑰",type:"STRING"},userId:{name:"使用者主鍵",type:"STRING"},isApp:{name:"是否為應用系統",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},timeEnd:{name:"到期時間",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"}},Ya={id:{pk:!0,name:"主鍵",type:"STRING"},order:{name:"順序",type:"INTEGER"},account:{name:"帳號",type:"STRING"},password:{name:"密碼",type:"STRING"},name:{name:"姓名",type:"STRING"},email:{name:"電子郵件",type:"STRING"},description:{name:"描述",type:"TEXT"},from:{name:"來源",type:"STRING"},redir:{name:"登入後轉址",type:"STRING"},isAdmin:{name:"是否為系統管理員",type:"STRING"},tokenVerify:{name:"註冊後驗證用token",type:"STRING"},timeVerified:{name:"驗證時間",type:"STRING"},timeExpired:{name:"過期時間",type:"STRING"},timeBlocked:{name:"封鎖時間",type:"STRING"},isForceChangePw:{name:"是否須強制變更密碼",type:"STRING"},userId:{name:"創建使用者主鍵",type:"STRING"},timeCreate:{name:"創建時間",type:"STRING"},userIdUpdate:{name:"最新變更使用者主鍵",type:"STRING"},timeUpdate:{name:"更新時間",type:"STRING"},isActive:{name:"是否有效",type:"STRING"}};function za(e,t={}){let i=Ce(t,"useCreateStorage");qi(i)||(i=!1);let{keyTable:n,tableNameCht:s,tableNameEng:o,settings:r,parser:a,funNew:c,funTest:l,ext:u}=e;if(!bi(n))throw new Error(`invalid keyTable[${n}]`);if(bi(s)||(s=n),bi(o)||(o=n),!Ci(r))throw new Error("invalid settings");Ci(u)||(u=null),Ci(a)||(a=null),un(c)||(c=null);let p=null;un(l)&&(p=async e=>{if(!Ci(e))throw new Error("invalid wo");if(!_n(e,n))throw console.log(e),new Error(`keyTable[${n}] is not in wo`);let t=[];try{t=l(),fn(t)&&(t=await t)}catch(e){throw console.log(`keyTable[${n}] funTest catch`,e),new Error(e)}if(0!==pt(t))return i&&await e[n].createStorage(),await e[n].save(t),t});let d={},m={};return Qn(zt(r),e=>{let t=Ce(r,`${e}.name`,"");bi(t)&&(d[e]=t);let i=Ce(r,`${e}.type`,"");bi(i)&&(m[e]=i)}),{...e,keyTable:n,tableNameCht:s,tableNameEng:o,settings:r,keys:zt(r),kpType:m,kpHead:d,parser:a,funNew:c,funTest:l,funTestAndSave:p,ext:u}}let Fa={ips:{keyTable:"ips",tableNameCht:"IP使用者",tableNameEng:"IPs",settings:Za,funNew:(e={})=>{let t=ja(e,zt(Za));return t.id=`${ka()}`,t},funTest:()=>[]},tokens:{keyTable:"tokens",tableNameCht:"金鑰",tableNameEng:"Tokens",settings:Xa,funNew:(e={})=>{let t=ja(e,zt(Xa));return t.id=`${ka()}`,t.token=`${ka()}`,t.timeCreate=$o(),t.timeEnd=An().add(30,"minute").format("YYYY-MM-DDTHH:mm:ss.SSSZ"),t.timeUpdate=t.timeCreate,t},funTest:()=>[]},users:{keyTable:"users",tableNameCht:"使用者",tableNameEng:"Users",settings:Ya,funNew:(e={})=>{let t=ja(e,zt(Ya));return t.id=`${ka()}`,t.timeCreate=$o(),t.userIdUpdate=t.userId,t.timeUpdate=t.timeCreate,t.isActive="y","y"!==t.isForceChangePw&&"n"!==t.isForceChangePw&&(t.isForceChangePw="n"),t},funTest:()=>[]}},Ga={};for(let e in Fa)Ga[e]=za(Fa[e],{useCreateStorage:!1});function Ha(e){let t;return t=mn(e,1),"Z"===t?`${e=hn(e,1)}+00:00`:e}let Ka={checkTZ:function(e){let t;return t=mn(e,1),"Z"===t||(t=mn(e,6),!!/[+|-]\d\d:\d\d/.test(t))},delTZ:function(e){let t;return t=mn(e,1),hn(e,"Z"===t?1:6)},normTZ:Ha,sepTZ:function(e){let t=Ha(e);return{t:hn(t,6),tz:mn(t,6)}}};function Pa(e){if(!bi(e))return!1;if(!Ka.checkTZ(e))return!1;let t=Ka.delTZ(e),i="YYYY-MM-DDTHH:mm:ss.SSS";return t===An(t,i).format(i)}function Ua(e){let t=Ce(e,"timeExpired","");return!!Pa(t)&&An().format("YYYY-MM-DDTHH:mm:ss.SSSZ")>=t}function Ba(e){let t=Ce(e,"timeBlocked","");return!!Pa(t)&&An().format("YYYY-MM-DDTHH:mm:ss.SSSZ")<=t}function Wa(e){return"y"===Ce(e,"isActive","")}function Va(e){let t=Pa(Ce(e,"timeVerified",""));let i=!Ua(e),n=!Ba(e),s=function(e){return"y"===Ce(e,"isAdmin","")}(e),o=Wa(e);return t&&i&&n&&s&&o}var _a={exports:{}};function Ra(e){try{return JSON.stringify(e)}catch(e){return'"[Circular]"'}}const Qa=function(e,t,i){var n=i&&i.stringify||Ra;if("object"==typeof e&&null!==e){var s=t.length+1;if(1===s)return e;var o=new Array(s);o[0]=n(e);for(var r=1;r<s;r++)o[r]=n(t[r]);return o.join(" ")}if("string"!=typeof e)return e;var a=t.length;if(0===a)return e;for(var c="",l=0,u=-1,p=e&&e.length||0,d=0;d<p;){if(37===e.charCodeAt(d)&&d+1<p){switch(u=u>-1?u:0,e.charCodeAt(d+1)){case 100:case 102:if(l>=a)break;if(null==t[l])break;u<d&&(c+=e.slice(u,d)),c+=Number(t[l]),u=d+2,d++;break;case 105:if(l>=a)break;if(null==t[l])break;u<d&&(c+=e.slice(u,d)),c+=Math.floor(Number(t[l])),u=d+2,d++;break;case 79:case 111:case 106:if(l>=a)break;if(void 0===t[l])break;u<d&&(c+=e.slice(u,d));var m=typeof t[l];if("string"===m){c+="'"+t[l]+"'",u=d+2,d++;break}if("function"===m){c+=t[l].name||"<anonymous>",u=d+2,d++;break}c+=n(t[l]),u=d+2,d++;break;case 115:if(l>=a)break;u<d&&(c+=e.slice(u,d)),c+=String(t[l]),u=d+2,d++;break;case 37:u<d&&(c+=e.slice(u,d)),c+="%",u=d+2,d++,l--}++l}++d}if(-1===u)return e;u<p&&(c+=e.slice(u));return c};_a.exports=nc;const Oa=function(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}().console||{},Ja={mapHttpRequest:lc,mapHttpResponse:lc,wrapRequestSerializer:uc,wrapResponseSerializer:uc,wrapErrorSerializer:uc,req:lc,res:lc,err:ac,errWithCause:ac};function qa(e,t){return"silent"===e?1/0:t.levels.values[e]}const $a=Symbol("pino.logFuncs"),ec=Symbol("pino.hierarchy"),tc={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function ic(e,t){const i={logger:t,parent:e[ec]};t[ec]=i}function nc(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const i=e.browser.write||Oa;e.browser.write&&(e.browser.asObject=!0);const n=e.serializers||{},s=function(e,t){if(Array.isArray(e))return e.filter(function(e){return"!stdSerializers.err"!==e});return!0===e&&Object.keys(t)}(e.browser.serialize,n);let o=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(o=!1);const r=Object.keys(e.customLevels||{}),a=["error","fatal","warn","info","debug","trace"].concat(r);"function"==typeof i&&a.forEach(function(e){i[e]=i}),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");const c=e.level||"info",l=Object.create(i);l.log||(l.log=pc),function(e,t,i){const n={};t.forEach(e=>{n[e]=i[e]?i[e]:Oa[e]||Oa[tc[e]||"log"]||pc}),e[$a]=n}(l,a,i),ic({},l),Object.defineProperty(l,"levelVal",{get:function(){return qa(this.level,this)}}),Object.defineProperty(l,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,sc(this,u,l,"error"),sc(this,u,l,"fatal"),sc(this,u,l,"warn"),sc(this,u,l,"info"),sc(this,u,l,"debug"),sc(this,u,l,"trace"),r.forEach(e=>{sc(this,u,l,e)})}});const u={transmit:t,serialize:s,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,reportCaller:e.browser.reportCaller,levels:a,timestamp:cc(e),messageKey:e.messageKey||"msg",onChild:e.onChild||pc};function p(i,o,r){if(!o)throw new Error("missing bindings for child Pino");r=r||{},s&&o.serializers&&(r.serializers=o.serializers);const a=r.serializers;if(s&&a){var c=Object.assign({},n,a),l=!0===e.browser.serialize?Object.keys(c):s;delete o.serializers,oc([o],l,c,this._stdErrSerialize)}function u(e){this._childLevel=1+(0|e._childLevel),this.bindings=o,c&&(this.serializers=c,this._serialize=l),t&&(this._logEvent=rc([].concat(e._logEvent.bindings,o)))}u.prototype=this;const d=new u(this);return ic(this,d),d.child=function(...e){return p.call(this,i,...e)},d.level=r.level||this.level,i.onChild(d),d}return l.levels=function(e){const t=e.customLevels||{},i=Object.assign({},nc.levels.values,t),n=Object.assign({},nc.levels.labels,function(e){const t={};return Object.keys(e).forEach(function(i){t[e[i]]=i}),t}(t));return{values:i,labels:n}}(e),l.level=c,l.isLevelEnabled=function(e){return!!this.levels.values[e]&&this.levels.values[e]>=this.levels.values[this.level]},l.setMaxListeners=l.getMaxListeners=l.emit=l.addListener=l.on=l.prependListener=l.once=l.prependOnceListener=l.removeListener=l.removeAllListeners=l.listeners=l.listenerCount=l.eventNames=l.write=l.flush=pc,l.serializers=n,l._serialize=s,l._stdErrSerialize=o,l.child=function(...e){return p.call(this,u,...e)},t&&(l._logEvent=rc()),l}function sc(e,t,i,n){if(Object.defineProperty(e,n,{value:qa(e.level,i)>qa(n,i)?pc:i[$a][n],writable:!0,enumerable:!0,configurable:!0}),e[n]===pc){if(!t.transmit)return;const s=qa(t.transmit.level||e.level,i);if(qa(n,i)<s)return}e[n]=function(e,t,i,n){return s=e[$a][n],function(){const o=t.timestamp(),r=new Array(arguments.length),a=Object.getPrototypeOf&&Object.getPrototypeOf(this)===Oa?Oa:this;for(var c=0;c<r.length;c++)r[c]=arguments[c];var l=!1;if(t.serialize&&(oc(r,this._serialize,this.serializers,this._stdErrSerialize),l=!0),t.asObject||t.formatters){const e=function(e,t,i,n,s){const{level:o,log:r=e=>e}=s.formatters||{},a=i.slice();let c=a[0];const l={};let u=1+(0|e._childLevel);if(u<1&&(u=1),n&&(l.time=n),o){const i=o(t,e.levels.values[t]);Object.assign(l,i)}else l.level=e.levels.values[t];if(s.asObjectBindingsOnly){if(null!==c&&"object"==typeof c)for(;u--&&"object"==typeof a[0];)Object.assign(l,a.shift());return[r(l),...a]}if(null!==c&&"object"==typeof c){for(;u--&&"object"==typeof a[0];)Object.assign(l,a.shift());c=a.length?Qa(a.shift(),a):void 0}else"string"==typeof c&&(c=Qa(a.shift(),a));return void 0!==c&&(l[s.messageKey]=c),[r(l)]}(this,n,r,o,t);if(t.reportCaller&&e&&e.length>0&&e[0]&&"object"==typeof e[0])try{const t=hc();t&&(e[0].caller=t)}catch(e){}s.call(a,...e)}else{if(t.reportCaller)try{const e=hc();e&&r.push(e)}catch(e){}s.apply(a,r)}if(t.transmit){const s=t.transmit.level||e._level,a=qa(s,i),c=qa(n,i);if(c<a)return;!function(e,t,i,n=!1){const s=t.send,o=t.ts,r=t.methodLevel,a=t.methodValue,c=t.val,l=e._logEvent.bindings;n||oc(i,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=o,e._logEvent.messages=i.filter(function(e){return-1===l.indexOf(e)}),e._logEvent.level.label=r,e._logEvent.level.value=a,s(r,e._logEvent,c),e._logEvent=rc(l)}(this,{ts:o,methodLevel:n,methodValue:c,transmitLevel:s,transmitValue:i.levels.values[t.transmit.level||e._level],send:t.transmit.send,val:qa(e._level,i)},r,l)}};var s}(e,t,i,n);const s=function(e){const t=[];e.bindings&&t.push(e.bindings);let i=e[ec];for(;i.parent;)i=i.parent,i.logger.bindings&&t.push(i.logger.bindings);return t.reverse()}(e);0!==s.length&&(e[n]=function(e,t){return function(){return t.apply(this,[...e,...arguments])}}(s,e[n]))}function oc(e,t,i,n){for(const s in e)if(n&&e[s]instanceof Error)e[s]=nc.stdSerializers.err(e[s]);else if("object"==typeof e[s]&&!Array.isArray(e[s])&&t)for(const n in e[s])t.indexOf(n)>-1&&n in i&&(e[s][n]=i[n](e[s][n]))}function rc(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function ac(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const i in e)void 0===t[i]&&(t[i]=e[i]);return t}function cc(e){return"function"==typeof e.timestamp?e.timestamp:!1===e.timestamp?dc:mc}function lc(){return{}}function uc(e){return e}function pc(){}function dc(){return!1}function mc(){return Date.now()}function hc(){const e=(new Error).stack;if(!e)return null;const t=e.split("\n");for(let e=1;e<t.length;e++){const i=t[e].trim();if(/(^at\s+)?(createWrap|LOG|set\s*\(|asObject|Object\.apply|Function\.apply)/.test(i))continue;if(-1!==i.indexOf("browser.js"))continue;if(-1!==i.indexOf("node:internal"))continue;if(-1!==i.indexOf("node_modules"))continue;let n=i.match(/\((.*?):(\d+):(\d+)\)/);if(n||(n=i.match(/at\s+(.*?):(\d+):(\d+)/)),n){return n[1]+":"+n[2]+":"+n[3]}}return null}nc.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},nc.stdSerializers=Ja,nc.stdTimeFunctions=Object.assign({},{nullTime:dc,epochTime:mc,unixTime:function(){return Math.round(Date.now()/1e3)},isoTime:function(){return new Date(Date.now()).toISOString()}}),_a.exports.default=nc,_a.exports.pino=nc;var gc=bn(_a.exports);let fc=a.fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(Lu).href:"undefined"==typeof document?location.href:D&&"SCRIPT"===D.tagName.toUpperCase()&&D.src||new URL("w-web-sso.umd.js",document.baseURI).href),wc=t.dirname(fc);let yc=(e={})=>{let n=Ce(e,"logFd","");bi(n)||(n="./logs");let s=Ce(e,"logInterval","");bi(s)||(s="hr");let o=function(e={}){let n=Zn(),s=Ce(e,"timeZone",null),o=Ce(e,"fdLog");bi(o)||(o="./_logs");let r=Ce(e,"interval");"day"!==r&&"hr"!==r&&(r="day");let a=Ce(e,"numKeep");Vi(a)||(a="day"===r?365:8760),a=Wi(a);let c=gc.transport({targets:[{level:"info",target:t.resolve(wc,"./formatter.mjs"),options:{interval:r,fdLog:o,timeZone:s}}]}),l=gc(c),u=()=>{try{if(!Dn(o))return;let e="hr"===r?/^\d{4}-\d{2}-\d{2}T\d{2}\.log$/:/^\d{4}-\d{2}-\d{2}\.log$/,s=i.readdirSync(o).filter(t=>e.test(t));s.sort();let c=s.length-a;if(c<=0)return;let l=s.slice(0,c);for(let e of l){let s=t.join(o,e);try{i.unlinkSync(s),n.emit("delete",{fp:s,fn:e})}catch(e){}}}catch(e){console.error("WSyslog cleanLogs error:",e)}};u();let p=setInterval(u,36e5);p.unref();let d=null,m=e=>{let t=l[e].bind(l);return(...i)=>{try{n.emit(e,{args:i})}catch(e){}t(...i)}};return n.fatal=m("fatal"),n.error=m("error"),n.warn=m("warn"),n.info=m("info"),n.debug=m("debug"),n.trace=m("trace"),n.cleanLogs=u,n.clear=(e={})=>{if(null!==d)return d;let t=Ce(e,"timeLimit");Vi(t)||(t=6e4),d=gn();let i=!1,n=()=>{i||(i=!0,clearInterval(p),d.resolve())},s=setTimeout(()=>{try{c.worker.terminate()}catch(e){}n()},t);try{l.flush(e=>{if(e||c.closed)return clearTimeout(s),void n();c.once("close",()=>{clearTimeout(s),n()}),c.end()})}catch(e){clearTimeout(s),n()}return d},n}({fdLog:n,interval:s});return o};function xc(e){return bi(e)?`${e.slice(0,4)}...${e.slice(-4)}(len=${e.length})`:void 0!==e?e:""}var Dc,vc,Mc,Cc={exports:{}},Ic={},bc={exports:{}},Lc={};function Ac(){if(vc)return Dc;vc=1;const e=2147483647,t=36,i=/^xn--/,n=/[^\0-\x7F]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,o={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},r=Math.floor,a=String.fromCharCode;function c(e){throw new RangeError(o[e])}function l(e,t){const i=e.split("@");let n="";i.length>1&&(n=i[0]+"@",e=i[1]);const o=function(e,t){const i=[];let n=e.length;for(;n--;)i[n]=t(e[n]);return i}((e=e.replace(s,".")).split("."),t).join(".");return n+o}function u(e){const t=[];let i=0;const n=e.length;for(;i<n;){const s=e.charCodeAt(i++);if(s>=55296&&s<=56319&&i<n){const n=e.charCodeAt(i++);56320==(64512&n)?t.push(((1023&s)<<10)+(1023&n)+65536):(t.push(s),i--)}else t.push(s)}return t}const p=function(e){return e>=48&&e<58?e-48+26:e>=65&&e<91?e-65:e>=97&&e<123?e-97:t},d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},m=function(e,i,n){let s=0;for(e=n?r(e/700):e>>1,e+=r(e/i);e>455;s+=t)e=r(e/35);return r(s+36*e/(e+38))},h=function(i){const n=[],s=i.length;let o=0,a=128,l=72,u=i.lastIndexOf("-");u<0&&(u=0);for(let e=0;e<u;++e)i.charCodeAt(e)>=128&&c("not-basic"),n.push(i.charCodeAt(e));for(let d=u>0?u+1:0;d<s;){const u=o;for(let n=1,a=t;;a+=t){d>=s&&c("invalid-input");const u=p(i.charCodeAt(d++));u>=t&&c("invalid-input"),u>r((e-o)/n)&&c("overflow"),o+=u*n;const m=a<=l?1:a>=l+26?26:a-l;if(u<m)break;const h=t-m;n>r(e/h)&&c("overflow"),n*=h}const h=n.length+1;l=m(o-u,h,0==u),r(o/h)>e-a&&c("overflow"),a+=r(o/h),o%=h,n.splice(o++,0,a)}return String.fromCodePoint(...n)},g=function(i){const n=[],s=(i=u(i)).length;let o=128,l=0,p=72;for(const e of i)e<128&&n.push(a(e));const h=n.length;let g=h;for(h&&n.push("-");g<s;){let s=e;for(const e of i)e>=o&&e<s&&(s=e);const u=g+1;s-o>r((e-l)/u)&&c("overflow"),l+=(s-o)*u,o=s;for(const s of i)if(s<o&&++l>e&&c("overflow"),s===o){let e=l;for(let i=t;;i+=t){const s=i<=p?1:i>=p+26?26:i-p;if(e<s)break;const o=e-s,c=t-s;n.push(a(d(s+o%c,0))),e=r(o/c)}n.push(a(d(e,0))),p=m(l,u,g===h),l=0,++g}++l,++o}return n.join("")};return Dc={version:"2.3.1",ucs2:{decode:u,encode:e=>String.fromCodePoint(...e)},decode:h,encode:g,toASCII:function(e){return l(e,function(e){return n.test(e)?"xn--"+g(e):e})},toUnicode:function(e){return l(e,function(e){return i.test(e)?h(e.slice(4).toLowerCase()):e})}}}function Ec(){if(Mc)return Lc;Mc=1;const e=a,t=Ac(),i="undefined"!=typeof URL&&URL||e.URL,n=/^([a-zA-Z][a-zA-Z0-9+.-]*:)(?!\/\/)(.+)$/;function s(e){try{return decodeURIComponent(e)}catch(t){return e}}return Lc.parse=(o,r)=>{if(o=o||"",!i)return e.parse(o,r);const a=n.exec(o),c=a?a[1]+"//"+a[2]:o;let l;try{l=new i(c)}catch(t){return e.parse(o,r)}const u=function(e){let i=e||"";return i?"["===i.charAt(0)&&"]"===i.charAt(i.length-1)?i.slice(1,-1):t.toASCII(s(i)):""}(l.hostname),p=l.port||null,d=l.pathname||null,m=l.search||null;let h,g=null;return(l.username||l.password)&&(g=s(l.username)+(l.password?":"+s(l.password):"")),r?(h=Object.create(null),l.searchParams.forEach((e,t)=>{Object.prototype.hasOwnProperty.call(h,t)?Array.isArray(h[t])?h[t].push(e):h[t]=[h[t],e]:h[t]=e})):h=m?m.slice(1):null,{protocol:l.protocol||null,host:l.host||null,hostname:u,port:p,pathname:d,search:m,path:(d||"")+(m||"")||null,href:l.href,auth:g,query:h}},Lc.resolve=(t,n)=>{if(!i)return e.resolve(t,n);try{return new i(n,t).href}catch(i){return e.resolve(t,n)}},Lc}var Sc,Tc,Nc={exports:{}};var kc,jc,Zc,Xc,Yc,zc,Fc,Gc,Hc,Kc,Pc,Uc,Bc,Wc,Vc,_c,Rc,Qc,Oc,Jc,qc,$c,el,tl,il,nl,sl,ol={name:"nodemailer",version:"9.0.3",description:"Easy as cake e-mail sending from your Node.js applications",main:"lib/nodemailer.js",scripts:{test:"node --test --test-concurrency=1 $(find test \\( -name '*-test.js' -o -name '*.test.js' \\))","test:coverage":"c8 node --test --test-concurrency=1 $(find test \\( -name '*-test.js' -o -name '*.test.js' \\))",format:'prettier --write "**/*.{js,json,md}"',"format:check":'prettier --check "**/*.{js,json,md}"',lint:"eslint .","lint:fix":"eslint . --fix",update:"rm -rf node_modules/ package-lock.json && ncu -u && npm install","test:syntax":'docker run --rm -v "$PWD:/app:ro" -w /app node:6-alpine node test/syntax-compat.js'},repository:{type:"git",url:"https://github.com/nodemailer/nodemailer.git"},keywords:["Nodemailer"],author:"Andris Reinman",license:"MIT-0",bugs:{url:"https://github.com/nodemailer/nodemailer/issues"},homepage:"https://nodemailer.com/",devDependencies:{"@aws-sdk/client-sesv2":"3.1068.0",bunyan:"1.8.15",c8:"11.0.0",eslint:"10.5.0","eslint-config-prettier":"10.1.8",globals:"17.6.0",libbase64:"1.3.0",libmime:"5.3.8",libqp:"2.1.1",prettier:"3.8.4",proxy:"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.19.0"},engines:{node:">=6.0.0"}},rl={exports:{}};function al(){return kc||(kc=1,function(e){const t={ECONNECTION:"Connection closed unexpectedly",ETIMEDOUT:"Connection or operation timed out",ESOCKET:"Socket-level error",EDNS:"DNS resolution failed",ETLS:"TLS handshake or STARTTLS failed",EREQUIRETLS:"REQUIRETLS not supported by server (RFC 8689)",EPROTOCOL:"Invalid SMTP server response",EENVELOPE:"Invalid mail envelope (sender or recipients)",EMESSAGE:"Message delivery error",ESTREAM:"Stream processing error",EAUTH:"Authentication failed",ENOAUTH:"Authentication credentials not provided",EOAUTH2:"OAuth2 token generation or refresh error",EMAXLIMIT:"Pool resource limit reached (max messages per connection)",ESENDMAIL:"Sendmail command error",ESES:"AWS SES transport error",ECONFIG:"Invalid configuration",EPROXY:"Proxy connection error",EFILEACCESS:"File access rejected (disableFileAccess is set)",EURLACCESS:"URL access rejected (disableUrlAccess is set)",EFETCH:"HTTP fetch error"};e.exports={ERROR_CODES:t};for(const i of Object.keys(t))e.exports[i]=i}(rl)),rl.exports}function cl(){if(jc)return Nc.exports;jc=1;const e=u,t=p,i=Ec(),n=d,{PassThrough:s}=o,r=function(){if(Tc)return Sc;Tc=1;const e=Ec();return Sc=class{constructor(e){this.options=e||{},this.cookies=[]}set(t,i){const n=e.parse(i||""),s=this.parse(t);let o;return s.domain?(o=s.domain.replace(/^\./,""),(n.hostname.length<o.length||("."+n.hostname).substr(1-o.length)!=="."+o)&&(s.domain=n.hostname)):s.domain=n.hostname,s.path||(s.path=this.getPath(n.pathname)),s.expires||(s.expires=new Date(Date.now()+1e3*(Number(this.options.sessionTimeout||1800)||1800))),this.add(s)}get(e){return this.list(e).map(e=>e.name+"="+e.value).join("; ")}list(e){const t=[];for(let i=this.cookies.length-1;i>=0;i--){const n=this.cookies[i];this.isExpired(n)?this.cookies.splice(i,1):this.match(n,e)&&t.unshift(n)}return t}parse(e){const t={};return(e||"").toString().split(";").forEach(e=>{const i=e.split("="),n=i.shift().trim().toLowerCase();let s,o=i.join("=").trim();if(n)switch(n){case"expires":o=new Date(o),"Invalid Date"!==o.toString()&&(t.expires=o);break;case"path":t.path=o;break;case"domain":s=o.toLowerCase(),s.length&&"."!==s.charAt(0)&&(s="."+s),t.domain=s;break;case"max-age":t.expires=new Date(Date.now()+1e3*(Number(o)||0));break;case"secure":t.secure=!0;break;case"httponly":t.httponly=!0;break;default:t.name||(t.name=n,t.value=o)}}),t}match(t,i){const n=e.parse(i||"");return(n.hostname===t.domain||"."===t.domain.charAt(0)&&("."+n.hostname).substr(-t.domain.length)===t.domain)&&(this.getPath(n.pathname).substr(0,t.path.length)===t.path&&(!t.secure||"https:"===n.protocol))}add(e){if(!e||!e.name)return!1;for(let t=0,i=this.cookies.length;t<i;t++)if(this.compare(this.cookies[t],e))return this.isExpired(e)?(this.cookies.splice(t,1),!1):(this.cookies[t]=e,!0);return this.isExpired(e)||this.cookies.push(e),!0}compare(e,t){return e.name===t.name&&e.path===t.path&&e.domain===t.domain&&e.secure===t.secure&&e.httponly===t.httponly}isExpired(e){return e.expires&&e.expires<new Date||!e.value}getPath(e){let t=(e||"/").split("/");return t.pop(),t=t.join("/").trim(),"/"!==t.charAt(0)&&(t="/"+t),"/"!==t.substr(-1)&&(t+="/"),t}},Sc}(),a=ol,c=m,l=al();function h(o,u){(u=u||{}).fetchRes=u.fetchRes||new s,u.cookies=u.cookies||new r,u.redirects=u.redirects||0,u.maxRedirects=isNaN(u.maxRedirects)?5:u.maxRedirects,u.cookie&&([].concat(u.cookie||[]).forEach(e=>{u.cookies.set(e,o)}),u.cookie=!1);const p=u.fetchRes,d=i.parse(o);let m,g,f=(u.method||"").toString().trim().toUpperCase()||"GET",w=!1;const y="https:"===d.protocol?t:e,x={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+a.version};if(Object.keys(u.headers||{}).forEach(e=>{x[e.toLowerCase().trim()]=u.headers[e]}),u.userAgent&&(x["user-agent"]=u.userAgent),d.auth&&(x.Authorization="Basic "+Buffer.from(d.auth).toString("base64")),(m=u.cookies.get(o))&&(x.cookie=m),u.body){if(!1!==u.contentType&&(x["Content-Type"]=u.contentType||"application/x-www-form-urlencoded"),"function"==typeof u.body.pipe)x["Transfer-Encoding"]="chunked",g=u.body,g.on("error",e=>{w||(w=!0,e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e))});else{if(u.body instanceof Buffer)g=u.body;else if("object"==typeof u.body)try{g=Buffer.from(Object.keys(u.body).map(e=>{const t=u.body[e].toString().trim();return encodeURIComponent(e)+"="+encodeURIComponent(t)}).join("&"))}catch(e){if(w)return;return w=!0,e.code=l.EFETCH,e.sourceUrl=o,void p.emit("error",e)}else g=Buffer.from(u.body.toString().trim());x["Content-Type"]=u.contentType||"application/x-www-form-urlencoded",x["Content-Length"]=g.length}f=(u.method||"").toString().trim().toUpperCase()||"POST"}let D;const v={method:f,host:d.hostname,path:d.path,port:d.port?d.port:"https:"===d.protocol?443:80,headers:x,rejectUnauthorized:!0,agent:!1};u.tls&&Object.assign(v,u.tls),"https:"!==d.protocol||!d.hostname||d.hostname===v.host||c.isIP(d.hostname)||v.servername||(v.servername=d.hostname);try{D=y.request(v)}catch(e){return w=!0,setImmediate(()=>{e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e)}),p}return u.timeout&&D.setTimeout(u.timeout,()=>{if(w)return;w=!0,D.abort();const e=new Error("Request Timeout");e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e)}),D.on("error",e=>{w||(w=!0,e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e))}),D.on("response",e=>{let t;if(!w){switch(e.headers["content-encoding"]){case"gzip":case"deflate":t=n.createUnzip()}if(e.headers["set-cookie"]&&[].concat(e.headers["set-cookie"]||[]).forEach(e=>{u.cookies.set(e,o)}),[301,302,303,307,308].includes(e.statusCode)&&e.headers.location){if(u.redirects++,u.redirects>u.maxRedirects){w=!0;const e=new Error("Maximum redirect count exceeded");return e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e),void D.abort()}u.method="GET",u.body=!1;const t=i.resolve(o,e.headers.location),n=i.parse(t),s=n.hostname!==d.hostname,r="https:"===d.protocol&&"http:"===n.protocol;if(u.headers&&(s||r)){const e=["authorization","cookie","proxy-authorization"];Object.keys(u.headers).forEach(t=>{e.includes(t.toLowerCase())&&delete u.headers[t]})}return h(t,u)}if(p.statusCode=e.statusCode,p.headers=e.headers,e.statusCode>=300&&!u.allowErrorResponse){w=!0;const t=new Error("Invalid status code "+e.statusCode);return t.code=l.EFETCH,t.sourceUrl=o,p.emit("error",t),void D.abort()}e.on("error",e=>{w||(w=!0,e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e),D.abort())}),t?(e.pipe(t).pipe(p),t.on("error",e=>{w||(w=!0,e.code=l.EFETCH,e.sourceUrl=o,p.emit("error",e),D.abort())})):e.pipe(p)}}),setImmediate(()=>{if(g)try{if("function"==typeof g.pipe)return g.pipe(D);D.write(g)}catch(e){return w=!0,e.code=l.EFETCH,e.sourceUrl=o,void p.emit("error",e)}D.end()}),p}return Nc.exports=function(e,t){return h(e,t)},Nc.exports.Cookies=r,Nc.exports}function ll(){return Zc||(Zc=1,function(e){const t=Ec(),n=l,s=i,o=cl(),r=al(),a=h,c=m,u=g,p=3e5;let d,f=0;e.exports._lastCacheCleanup=()=>f,e.exports._resetCacheCleanup=()=>{f=0};try{d=u.networkInterfaces()}catch(e){}e.exports.networkInterfaces=d;const w=(t,i)=>{const n=e.exports.networkInterfaces;return!n||Object.keys(n).map(e=>n[e]).reduce((e,t)=>e.concat(t),[]).filter(e=>!e.internal||i).some(e=>e.family==="IPv"+t||e.family===t)},y=(e,t,i,n)=>{if(!w(e,(i=i||{}).allowInternalNetworkInterfaces))return n(null,[]);(a.Resolver?new a.Resolver(i):a)["resolve"+e](t,(e,t)=>{if(e){switch(e.code){case a.NODATA:case a.NOTFOUND:case a.NOTIMP:case a.SERVFAIL:case a.CONNREFUSED:case a.REFUSED:case"EAI_AGAIN":return n(null,[])}return n(e)}return n(null,Array.isArray(t)?t:[].concat(t||[]))})},x=e.exports.dnsCache=new Map,D=(e,t)=>{if(!e)return Object.assign({},t||{});const i=e.addresses||[],n=i.length>0?i[Math.floor(Math.random()*i.length)]:null;return Object.assign({servername:e.servername,host:n,_addresses:i},t||{})};function v(e,t){let i=!1;const n=[];let s=0;e.on("error",e=>{i||(i=!0,t(e))}),e.on("readable",()=>{let t;for(;null!==(t=e.read());)n.push(t),s+=t.length}),e.on("end",()=>{if(i)return;let e;i=!0;try{e=Buffer.concat(n,s)}catch(e){return t(e)}t(null,e)})}e.exports.resolveHostname=(e,t)=>{if(!(e=e||{}).host&&e.servername&&(e.host=e.servername),!e.host||c.isIP(e.host)){const i={addresses:[e.host],servername:e.servername||!1};return t(null,D(i,{cached:!1}))}let i;if(x.has(e.host)){i=x.get(e.host);const n=Date.now();if(n-f>3e4){f=n;for(const[e,t]of x.entries())t.expires&&t.expires<n&&x.delete(e);if(x.size>1e3){const e=Math.floor(100);Array.from(x.keys()).slice(0,e).forEach(e=>x.delete(e))}}if(!i.expires||i.expires>=n)return t(null,D(i.value,{cached:!0}))}let n=[],s=[],o=null,r=null;y(4,e.host,e,(c,l)=>{c?o=c:n=l||[],y(6,e.host,e,(c,l)=>{c?r=c:s=l||[];const u=n.concat(s);if(u.length){const i={addresses:u,servername:e.servername||e.host};return x.set(e.host,{value:i,expires:Date.now()+(e.dnsTtl||p)}),t(null,D(i,{cached:!1}))}if(o&&r&&i)return x.set(e.host,{value:i.value,expires:Date.now()+(e.dnsTtl||p)}),t(null,D(i.value,{cached:!0,error:o}));try{a.lookup(e.host,{all:!0},(n,s)=>{if(n)return i?(x.set(e.host,{value:i.value,expires:Date.now()+(e.dnsTtl||p)}),t(null,D(i.value,{cached:!0,error:n}))):t(n);const o=s?s.filter(e=>w(e.family)).map(e=>e.address):[];if(s&&s.length&&!o.length&&console.warn(`Failed to resolve IPv${s[0].family} addresses with current network`),!o.length&&i)return t(null,D(i.value,{cached:!0}));const r={addresses:o.length?o:[e.host],servername:e.servername||e.host};return x.set(e.host,{value:r,expires:Date.now()+(e.dnsTtl||p)}),t(null,D(r,{cached:!1}))})}catch(n){return i?(x.set(e.host,{value:i.value,expires:Date.now()+(e.dnsTtl||p)}),t(null,D(i.value,{cached:!0,error:n}))):t(o||r||n)}})})},e.exports.parseConnectionUrl=e=>{e=e||"";const i={},n=t.parse(e,!0);switch(n.protocol){case"smtp:":i.secure=!1;break;case"smtps:":i.secure=!0;break;case"direct:":i.direct=!0}if(!isNaN(n.port)&&Number(n.port)&&(i.port=Number(n.port)),n.hostname&&(i.host=n.hostname),n.auth){const e=n.auth.split(":");i.auth={user:e.shift(),pass:e.join(":")}}return Object.keys(n.query||{}).forEach(e=>{let t=i,s=e,o=n.query[e];switch(isNaN(o)||(o=Number(o)),o){case"true":o=!0;break;case"false":o=!1}if(0===e.indexOf("tls."))s=e.substr(4),i.tls||(i.tls={}),t=i.tls;else if(e.indexOf(".")>=0)return;s in t||(t[s]=o)}),i},e.exports._logFunc=(e,t,i,n,s,...o)=>{const r=Object.assign({},i||{},n||{});delete r.level;let a=t;"function"!=typeof e[a]&&(a=["info","debug","log","trace","warn","error"].find(t=>"function"==typeof e[t])),a&&e[a](r,s,...o)},e.exports.getLogger=(t,i)=>{const s={},o=["trace","debug","info","warn","error","fatal"];if(!(t=t||{}).logger)return o.forEach(e=>{s[e]=()=>!1}),s;const r=!0===t.logger?function(e){const t=e.reduce((e,t)=>Math.max(e,t.length),0),i=new Map;e.forEach(e=>{let n=e.toUpperCase();n.length<t&&(n+=" ".repeat(t-n.length)),i.set(e,n)});const s=(e,t,s,...o)=>{let r="";t&&("server"===t.tnx?r="S: ":"client"===t.tnx&&(r="C: "),t.sid&&(r="["+t.sid+"] "+r),t.cid&&(r="[#"+t.cid+"] "+r)),(s=n.format(s,...o)).split(/\r?\n/).forEach(t=>{console.log("[%s] %s %s",(new Date).toISOString().substr(0,19).replace(/T/," "),i.get(e),r+t)})},o={};return e.forEach(e=>{o[e]=s.bind(null,e)}),o}(o):t.logger;return o.forEach(t=>{s[t]=(n,s,...o)=>{e.exports._logFunc(r,t,i,n,s,...o)}}),s},e.exports.callbackPromise=(e,t)=>function(){const i=Array.from(arguments),n=i.shift();n?t(n):e(...i)},e.exports.parseDataURI=e=>{if("string"!=typeof e)return null;if(!e.startsWith("data:"))return null;const t=e.indexOf(",");if(-1===t)return null;const i=e.substring(t+1);let n;const s=e.substring(5,t).split(";");if(s.length>0){const e=s[s.length-1].toLowerCase().trim();["base64","utf8","utf-8"].includes(e)&&-1===e.indexOf("=")&&(n=e,s.pop())}const o=s.length>0?s.shift():"application/octet-stream",r={};for(let e=0;e<s.length;e++){const t=s[e],i=t.indexOf("=");if(i>0){const e=t.substring(0,i).trim(),n=t.substring(i+1).trim();e&&(r[e]=n)}}let a;try{if("base64"===n)a=Buffer.from(i,"base64");else try{a=Buffer.from(decodeURIComponent(i))}catch(e){a=Buffer.from(i)}}catch(e){a=Buffer.alloc(0)}return{data:a,encoding:n||null,contentType:o||"application/octet-stream",params:r}},e.exports.resolveContent=(t,i,n,a)=>{let c;return a||"function"!=typeof n||(a=n,n=!1),n=n||{},a||(c=new Promise((t,i)=>{a=e.exports.callbackPromise(t,i)})),function(t,i,n,a){let c=t&&t[i]&&t[i].content||t[i];const l=("object"==typeof t[i]&&t[i].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!c)return a(null,c);if("object"==typeof c){if("function"==typeof c.pipe)return v(c,(e,n)=>{if(e)return a(e);t[i].content?t[i].content=n:t[i]=n,a(null,n)});if(/^https?:\/\//i.test(c.path||c.href))return n.disableUrlAccess?setImmediate(()=>{const e=new Error("Url access rejected for "+(c.path||c.href));e.code=r.EURLACCESS,a(e)}):v(o(c.path||c.href,{headers:c.httpHeaders,tls:c.tls}),a);if(/^data:/i.test(c.path||c.href)){const t=e.exports.parseDataURI(c.path||c.href);return a(null,t&&t.data?t.data:Buffer.alloc(0))}if(c.path)return n.disableFileAccess?setImmediate(()=>{const e=new Error("File access rejected for "+c.path);e.code=r.EFILEACCESS,a(e)}):v(s.createReadStream(c.path),a)}"string"!=typeof t[i].content||["utf8","usascii","ascii"].includes(l)||(c=Buffer.from(t[i].content,l));setImmediate(()=>a(null,c))}(t,i,n,a),c},e.exports.assign=function(){const e=Array.from(arguments),t=e.shift()||{};return e.forEach(e=>{Object.keys(e||{}).forEach(i=>{["tls","auth"].includes(i)&&e[i]&&"object"==typeof e[i]?t[i]=Object.assign(t[i]||{},e[i]):t[i]=e[i]})}),t},e.exports.encodeXText=e=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(e))return e;const t=Buffer.from(e);let i="";for(let e=0,n=t.length;e<n;e++){const n=t[e];i+=n<33||n>126||43===n||61===n?"+"+(n<16?"0":"")+n.toString(16).toUpperCase():String.fromCharCode(n)}return i}}(bc)),bc.exports}function ul(){if(Yc)return Xc;Yc=1;const e=t,i="application/octet-stream",n=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/geo+json","geojson"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),s=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);return Xc={detectMimeType(t){if(!t)return i;const n=e.parse(t),o=(n.ext.substr(1)||n.name||"").split("?").shift().trim().toLowerCase(),r=s.has(o)?s.get(o):i;return Array.isArray(r)?r[0]:r},detectExtension(e){if(!e)return"bin";const t=e.toLowerCase().trim().split("/"),i=t.shift().trim(),s=t.join("/").trim();if(n.has(i+"/"+s)){const e=n.get(i+"/"+s);return Array.isArray(e)?e[0]:e}return"text"===i?"txt":"bin"}}}function pl(){if(Fc)return zc;Fc=1;const{Transform:e}=o;function t(e){return"string"==typeof e&&(e=Buffer.from(e,"utf-8")),e.toString("base64")}function i(e,t){if(t=t||76,(e=(e||"").toString()).length<=t)return e;const i=[];let n=0;const s=1024*t,o=new RegExp(".{"+t+"}","g");for(;n<e.length;){const t=e.substr(n,s).replace(o,"$&\r\n").trim();i.push(t),n+=s}return i.join("\r\n").trim()}return zc={encode:t,wrap:i,Encoder:class extends e{constructor(e){super(),this.options=e||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this._remainingBytes=!1,this.inputBytes=0,this.outputBytes=0}_transform(e,n,s){if("buffer"!==n&&(e=Buffer.from(e,n)),!e||!e.length)return setImmediate(s);this.inputBytes+=e.length,this._remainingBytes&&this._remainingBytes.length&&(e=Buffer.concat([this._remainingBytes,e],this._remainingBytes.length+e.length),this._remainingBytes=!1),e.length%3?(this._remainingBytes=e.slice(e.length-e.length%3),e=e.slice(0,e.length-e.length%3)):this._remainingBytes=!1;let o=this._curLine+t(e);if(this.options.lineLength){o=i(o,this.options.lineLength);const e=o.lastIndexOf("\n");e<0?(this._curLine=o,o=""):e===o.length-1?this._curLine="":(this._curLine=o.substring(e+1),o=o.substring(0,e+1))}o&&(this.outputBytes+=o.length,this.push(Buffer.from(o,"ascii"))),setImmediate(s)}_flush(e){this._remainingBytes&&this._remainingBytes.length&&(this._curLine+=t(this._remainingBytes)),this._curLine&&(this._curLine=i(this._curLine,this.options.lineLength),this.outputBytes+=this._curLine.length,this.push(Buffer.from(this._curLine,"ascii")),this._curLine=""),e()}}}}function dl(){if(Hc)return Gc;Hc=1;const{Transform:e}=o,t=[[9],[10],[13],[32,60],[62,126]];function i(e){"string"==typeof e&&(e=Buffer.from(e,"utf-8"));let i,n="";for(let o=0,r=e.length;o<r;o++)i=e[o],s(i,t)&&(32!==i&&9!==i||o!==r-1&&10!==e[o+1]&&13!==e[o+1])?n+=String.fromCharCode(i):n+="="+(i<16?"0":"")+i.toString(16).toUpperCase();return n}function n(e,t){if(t=t||76,(e=(e||"").toString()).length<=t)return e;let i=0;const n=e.length;let s,o,r;const a=Math.floor(t/3);let c="";for(;i<n;)if(r=e.substr(i,t),s=r.match(/\r\n/))r=r.substr(0,s.index+s[0].length),c+=r,i+=r.length;else if("\n"!==r.substr(-1))if(s=r.substr(-a).match(/\n.*?$/))r=r.substr(0,r.length-(s[0].length-1)),c+=r,i+=r.length;else{if(r.length>t-a&&(s=r.substr(-a).match(/[ \t.,!?][^ \t.,!?]*$/)))r=r.substr(0,r.length-(s[0].length-1));else if(r.match(/[=][\da-f]{0,2}$/i))for((s=r.match(/[=][\da-f]{0,1}$/i))&&(r=r.substr(0,r.length-s[0].length));r.length>3&&r.length<n-i&&!r.match(/^(?:=[\da-f]{2}){1,4}$/i)&&(s=r.match(/[=][\da-f]{2}$/gi))&&(o=parseInt(s[0].substr(1,2),16),!(o<128))&&(r=r.substr(0,r.length-3),!(o>=192)););i+r.length<n&&"\n"!==r.substr(-1)?(r.length===t&&r.match(/[=][\da-f]{2}$/i)?r=r.substr(0,r.length-3):r.length===t&&(r=r.substr(0,r.length-1)),i+=r.length,r+="=\r\n"):i+=r.length,c+=r}else c+=r,i+=r.length;return c}function s(e,t){for(let i=t.length-1;i>=0;i--){const n=t[i];if(n.length){if(1===n.length&&e===n[0])return!0;if(2===n.length&&e>=n[0]&&e<=n[1])return!0}}return!1}return Gc={encode:i,wrap:n,Encoder:class extends e{constructor(e){super(),this.options=e||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(e,t,s){let o;if("buffer"!==t&&(e=Buffer.from(e,t)),!e||!e.length)return s();this.inputBytes+=e.length,this.options.lineLength?(o=this._curLine+i(e),o=n(o,this.options.lineLength),o=o.replace(/(^|\n)([^\n]*)$/,(e,t,i)=>(this._curLine=i,t)),o&&(this.outputBytes+=o.length,this.push(o))):(o=i(e),this.outputBytes+=o.length,this.push(o,"ascii")),s()}_flush(e){this._curLine&&(this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii")),e()}}}}function ml(){if(Pc)return Kc;Pc=1;const e=pl(),t=dl(),i=ul();return Kc={isPlainText:(e,t)=>"string"==typeof e&&!(t?/[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(e),hasLongerLines:(e,t)=>e.length>131072||new RegExp("^.{"+(t+1)+",}","m").test(e),encodeWord(i,n,s){let o;if((s=s||0)&&s>12&&(s-=12),"Q"===(n=(n||"Q").toString().toUpperCase().trim().charAt(0))?o=t.encode(i).replace(/[^a-z0-9!*+\-/=]/gi,e=>{const t=e.charCodeAt(0).toString(16).toUpperCase();return" "===e?"_":"="+(1===t.length?"0"+t:t)}):"B"===n&&(o="string"==typeof i?i:e.encode(i),s=s?Math.max(3,(s-s%4)/4*3):0),s&&("B"!==n?o:e.encode(i)).length>s)if("Q"===n)o=this.splitMimeEncodedString(o,s).join("?= =?UTF-8?"+n+"?");else{const t=[];let i="";for(let n=0,r=o.length;n<r;n++){let a=o.charAt(n);/[\ud83c\ud83d\ud83e]/.test(a)&&n<r-1&&(a+=o.charAt(++n)),Buffer.byteLength(i+a)<=s||0===n?i+=a:(t.push(e.encode(i)),i=a)}i&&t.push(e.encode(i)),o=t.length>1?t.join("?= =?UTF-8?"+n+"?"):t.join("")}else"B"===n&&(o=e.encode(i));return"=?UTF-8?"+n+"?"+o+("?="===o.substr(-2)?"":"?=")},encodeWords(e,t,i,n){i=i||0;const s=e.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!s)return e;if(n)return this.encodeWord(e,t,i);const o=e.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!o)return e;const r=s.index+(s[0].match(/[^\s]/)||{index:0}).index,a=o.index+(o[1]||"").length;return(r?e.substr(0,r):"")+this.encodeWord(e.substring(r,a),t||"Q",i)+(a<e.length?e.substr(a):"")},buildHeaderValue(e){const t=[];return Object.keys(e.params||{}).forEach(i=>{const n=e.params[i];!this.isPlainText(n,!0)||n.length>=75?this.buildHeaderParam(i,n,50).forEach(e=>{/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(e.value)&&"*"!==e.key.substr(-1)?t.push(e.key+"="+JSON.stringify(e.value)):t.push(e.key+"="+e.value)}):/[\s'"\\;:/=(),<>@[\]?]|^-/.test(n)?t.push(i+"="+JSON.stringify(n)):t.push(i+"="+n)}),e.value+(t.length?"; "+t.join("; "):"")},buildHeaderParam(e,t,i){const n=[];let s,o,r,a,c,l="string"==typeof t?t:(t||"").toString(),u=0;if(i=i||50,this.isPlainText(t,!0)){if(l.length<=i)return[{key:e,value:l}];l=l.replace(new RegExp(".{"+i+"}","g"),e=>(n.push({line:e}),"")),l&&n.push({line:l})}else{if(/[\uD800-\uDBFF]/.test(l)){const e=[];for(a=0,c=l.length;a<c;a++)s=l.charAt(a),o=s.charCodeAt(0),o>=55296&&o<=56319&&a<c-1?(s+=l.charAt(a+1),e.push(s),a++):e.push(s);l=e}r="utf-8''";let e=!0;for(u=0,a=0,c=l.length;a<c;a++){if(s=l[a],e)s=this.safeEncodeURIComponent(s);else if(s=" "===s?s:this.safeEncodeURIComponent(s),s!==l[a]){if(!((this.safeEncodeURIComponent(r)+s).length>=i)){e=!0,a=u,r="";continue}n.push({line:r,encoded:e}),r="",u=a-1}(r+s).length>=i?(n.push({line:r,encoded:e}),r=s=" "===l[a]?" ":this.safeEncodeURIComponent(l[a]),s===l[a]?(e=!1,u=a-1):e=!0):r+=s}r&&n.push({line:r,encoded:e})}return n.map((t,i)=>({key:e+"*"+i+(t.encoded?"*":""),value:t.line}))},parseHeaderValue(e){const t={value:!1,params:{}};let i,n=!1,s="",o="value",r=!1,a=!1;for(let c=0,l=e.length;c<l;c++)if(i=e.charAt(c),"key"===o){if("="===i){n=s.trim().toLowerCase(),o="value",s="";continue}s+=i}else{if(a)s+=i;else{if("\\"===i){a=!0;continue}r&&i===r?r=!1:r||'"'!==i?r||";"!==i?s+=i:(!1===n?t.value=s.trim():t.params[n]=s.trim(),o="key",s=""):r=i}a=!1}return"value"===o?!1===n?t.value=s.trim():t.params[n]=s.trim():s.trim()&&(t.params[s.trim().toLowerCase()]=""),Object.keys(t.params).forEach(e=>{let i,n,s,o;(s=e.match(/(\*(\d+)|\*(\d+)\*|\*)$/))&&(i=e.substr(0,s.index),n=Number(s[2]||s[3])||0,t.params[i]&&"object"==typeof t.params[i]||(t.params[i]={charset:!1,values:[]}),o=t.params[e],0===n&&"*"===s[0].substr(-1)&&(s=o.match(/^([^']*)'[^']*'(.*)$/))&&(t.params[i].charset=s[1]||"iso-8859-1",o=s[2]),t.params[i].values[n]=o,delete t.params[e])}),Object.keys(t.params).forEach(e=>{let i;t.params[e]&&Array.isArray(t.params[e].values)&&(i=t.params[e].values.map(e=>e||"").join(""),t.params[e].charset?t.params[e]="=?"+t.params[e].charset+"?Q?"+i.replace(/[=?_\s]/g,e=>{const t=e.charCodeAt(0).toString(16);return" "===e?"_":"%"+(t.length<2?"0":"")+t}).replace(/%/g,"=")+"?=":t.params[e]=i)}),t},detectExtension:e=>i.detectExtension(e),detectMimeType:e=>i.detectMimeType(e),foldLines(e,t,i){t=t||76;let n=0;const s=(e=(e||"").toString()).length;let o,r,a="";for(;n<s;){if(o=e.substr(n,t),o.length<t){a+=o;break}(r=o.match(/^[^\n\r]*(\r?\n|\r)/))?(o=r[0],a+=o,n+=o.length):((r=o.match(/(\s+)[^\s]*$/))&&r[0].length-(i?(r[1]||"").length:0)<o.length?o=o.substr(0,o.length-(r[0].length-(i?(r[1]||"").length:0))):(r=e.substr(n+o.length).match(/^[^\s]+(\s*)/))&&(o+=r[0].substr(0,r[0].length-(i?0:(r[1]||"").length))),a+=o,n+=o.length,n<s&&(a+="\r\n"))}return a},splitMimeEncodedString:(e,t)=>{const i=[];let n,s,o,r;for(t=Math.max(t||0,12);e.length;){for(n=e.substr(0,t),(s=n.match(/[=][0-9A-F]?$/i))&&(n=n.substr(0,s.index)),r=!1;!r;)r=!0,(s=e.substr(n.length).match(/^[=]([0-9A-F]{2})/i))&&(o=parseInt(s[1],16),o<194&&o>127&&(n=n.substr(0,n.length-3),r=!1));n.length&&i.push(n),e=e.substr(n.length)}return i},encodeURICharComponent:e=>{let t="",i=e.charCodeAt(0).toString(16).toUpperCase();if(i.length%2&&(i="0"+i),i.length>2)for(let e=0,n=i.length/2;e<n;e++)t+="%"+i.substr(e,2);else t+="%"+i;return t},safeEncodeURIComponent(e){e=(e||"").toString();try{e=encodeURIComponent(e)}catch(t){return e.replace(/[^\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]+/g,"")}return e.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,e=>this.encodeURICharComponent(e))}}}function hl(){if(Bc)return Uc;Bc=1;class e{constructor(e){this.str=(e||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.inDomainLiteral=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){const e=[];for(let e=0,t=this.str.length;e<t;e++){const i=this.str.charAt(e),n=e<t-1?this.str.charAt(e+1):null;this.checkChar(i,n)}return this.list.forEach(t=>{t.value=(t.value||"").toString().trim(),t.value&&e.push(t)}),e}checkChar(e,t){if(this.escaped||this.operatorExpecting||(this.inDomainLiteral||"["!==e?!this.inDomainLiteral||"]"!==e&&","!==e&&";"!==e||(this.inDomainLiteral=!1):this.inDomainLiteral=!0),this.escaped);else{if(e===this.operatorExpecting)return this.node={type:"operator",value:e},t&&![" ","\t","\r","\n",",",";"].includes(t)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",void(this.escaped=!1);if(!this.operatorExpecting&&!this.inDomainLiteral&&e in this.operators)return this.node={type:"operator",value:e},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[e],void(this.escaped=!1);if(['"',"'"].includes(this.operatorExpecting)&&"\\"===e)return void(this.escaped=!0)}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===e&&(e=" "),(e.charCodeAt(0)>=33||[" ","\t"].includes(e))&&(this.node.value+=e),this.escaped=!1}}const t=50;function i(n,s){const o=(s=s||{})._depth||0;if(o>t)return[];const r=new e(n).tokenize(),a=[];let c=[],l=[];r.forEach(e=>{"operator"!==e.type||","!==e.value&&";"!==e.value?c.push(e):(c.length&&a.push(c),c=[])}),c.length&&a.push(c),a.forEach(e=>{const t=function(e,t){let n=!1,s="text";const o=[],r={address:[],comment:[],group:[],text:[],textWasQuoted:[]};let a=!1;for(let t=0,i=e.length;t<i;t++){const i=e[t],o=t?e[t-1]:null;if("operator"===i.type)switch(i.value){case"<":s="address",a=!1;break;case"(":s="comment",a=!1;break;case":":s="group",n=!0,a=!1;break;case'"':a=!a,s="text";break;default:s="text",a=!1}else i.value&&("address"===s&&(i.value=i.value.replace(/^[^<]*<\s*/,"")),o&&o.noBreak&&r[s].length?(r[s][r[s].length-1]+=i.value,"text"===s&&a&&(r.textWasQuoted[r.textWasQuoted.length-1]=!0)):(r[s].push(i.value),"text"===s&&r.textWasQuoted.push(a)))}if(!r.text.length&&r.comment.length&&(r.text=r.comment,r.comment=[]),n){r.text=r.text.join(" ");let e=[];r.group.length&&i(r.group.join(","),{_depth:t+1}).forEach(t=>{t.group?e=e.concat(t.group):e.push(t)}),o.push({name:r.text||"",group:e})}else{if(!r.address.length&&r.text.length){for(let e=r.text.length-1;e>=0;e--)if(!r.textWasQuoted[e]&&/^[^@\s]+@[^@\s]+$/.test(r.text[e])){r.address=r.text.splice(e,1),r.textWasQuoted.splice(e,1);break}if(!r.address.length){let e=!1;for(let t=r.text.length-1;t>=0&&(r.textWasQuoted[t]||(r.text[t]=r.text[t].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,t=>e?t:(r.address=[t.trim()],e=!0," ")).trim(),!e));t--);}}!r.text.length&&r.comment.length&&(r.text=r.comment,r.comment=[]),r.address.length>1&&(r.text=r.text.concat(r.address.splice(1))),r.text=r.text.join(" "),r.address=r.address.join(" ");const e={address:r.address||r.text||"",name:r.text||r.address||""};e.address===e.name&&(/@/.test(e.address||"")?e.name="":e.address=""),o.push(e)}return o}(e,o);t.length&&(l=l.concat(t))});for(let e=l.length-2;e>=0;e--){const t=l[e],i=l[e+1];""===t.address&&t.name&&!t.group&&i.address&&i.name&&(i.name=t.name+", "+i.name,l.splice(e,1))}if(s.flatten){const e=[],t=i=>{i.forEach(i=>{if(i.group)return t(i.group);e.push(i)})};return t(l),e}return l}return Uc=i}function gl(){if(Rc)return _c;Rc=1;const{Transform:e}=o;return _c=class extends e{constructor(e){super(e),this.lastByte=!1}_transform(e,t,i){let n,s=0;for(let t=0,i=e.length;t<i;t++)10===e[t]&&(t&&13!==e[t-1]||!t&&13!==this.lastByte)&&(t>s&&(n=e.slice(s,t),this.push(n)),this.push(Buffer.from("\r\n")),s=t+1);s&&s<e.length?(n=e.slice(s),this.push(n)):s||this.push(e),this.lastByte=e[e.length-1],i()}}}function fl(){if(Oc)return Qc;Oc=1;const{Transform:e}=o;return Qc=class extends e{constructor(e){super(e)}_transform(e,t,i){let n,s=0;for(let t=0,i=e.length;t<i;t++)13===e[t]&&(n=e.slice(s,t),s=t+1,this.push(n));s&&s<e.length?(n=e.slice(s),this.push(n)):s||this.push(e),i()}}}function wl(){if(qc)return Jc;qc=1;const e=f,t=i,n=Ac(),{PassThrough:s}=o,r=ll(),a=ml(),c=dl(),l=pl(),u=hl(),p=cl(),d=al(),m=function(){if(Vc)return Wc;Vc=1;const{Transform:e}=o;return Wc=class extends e{constructor(){super(),this.lastByte=!1}_transform(e,t,i){e.length&&(this.lastByte=e[e.length-1]),this.push(e),i()}_flush(e){return 10===this.lastByte?e():13===this.lastByte?(this.push(Buffer.from("\n")),e()):(this.push(Buffer.from("\r\n")),e())}}}(),h=gl(),g=fl(),w=["From","Sender","To","Cc","Bcc","Reply-To","Date","References"];class y{constructor(t,i){this.nodeCounter=0,i=i||{},this.baseBoundary=i.baseBoundary||e.randomBytes(8).toString("hex"),this.boundaryPrefix=i.boundaryPrefix||"--_NmP",this.disableFileAccess=!!i.disableFileAccess,this.disableUrlAccess=!!i.disableUrlAccess,this.normalizeHeaderKey=i.normalizeHeaderKey,this.date=i.parentNode?null:new Date,this.rootNode=i.rootNode||this,this.keepBcc=!!i.keepBcc,i.filename&&(this.filename=i.filename,t||(t=a.detectMimeType(this.filename.split(".").pop()))),this.textEncoding=(i.textEncoding||"").toString().trim().charAt(0).toUpperCase(),this.parentNode=i.parentNode,this.hostname=i.hostname,this.newline=i.newline,this.childNodes=[],this._nodeId=++this.rootNode.nodeCounter,this._headers=[],this._isPlainText=!1,this._hasLongLines=!1,this._envelope=!1,this._raw=!1,this._transforms=[],this._processFuncs=[],t&&this.setHeader("Content-Type",t)}createChild(e,t){t||"object"!=typeof e||(t=e,e=void 0);const i=new y(e,t);return this.appendChild(i),i}appendChild(e){return e.rootNode!==this.rootNode&&(e.rootNode=this.rootNode,e._nodeId=++this.rootNode.nodeCounter),e.parentNode=this,this.childNodes.push(e),e}replace(e){return e===this?this:(this.parentNode.childNodes.forEach((t,i)=>{t===this&&(e.rootNode=this.rootNode,e.parentNode=this.parentNode,e._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,e.parentNode.childNodes[i]=e)}),e)}remove(){if(!this.parentNode)return this;for(let e=this.parentNode.childNodes.length-1;e>=0;e--)if(this.parentNode.childNodes[e]===this)return this.parentNode.childNodes.splice(e,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(e,t){let i=!1;if(!t&&e&&"object"==typeof e)return e.key&&"value"in e?this.setHeader(e.key,e.value):Array.isArray(e)?e.forEach(e=>{this.setHeader(e.key,e.value)}):Object.keys(e).forEach(t=>{this.setHeader(t,e[t])}),this;const n={key:e=this._normalizeHeaderKey(e),value:t};for(let t=0,s=this._headers.length;t<s;t++)this._headers[t].key===e&&(i?(this._headers.splice(t,1),t--,s--):(this._headers[t]=n,i=!0));return i||this._headers.push(n),this}addHeader(e,t){return!t&&e&&"object"==typeof e?(e.key&&e.value?this.addHeader(e.key,e.value):Array.isArray(e)?e.forEach(e=>{this.addHeader(e.key,e.value)}):Object.keys(e).forEach(t=>{this.addHeader(t,e[t])}),this):Array.isArray(t)?(t.forEach(t=>{this.addHeader(e,t)}),this):(this._headers.push({key:this._normalizeHeaderKey(e),value:t}),this)}getHeader(e){e=this._normalizeHeaderKey(e);for(let t=0,i=this._headers.length;t<i;t++)if(this._headers[t].key===e)return this._headers[t].value}setContent(e){return this.content=e,"function"==typeof this.content.pipe?(this._contentErrorHandler=e=>{this.content.removeListener("error",this._contentErrorHandler),this.content=e},this.content.once("error",this._contentErrorHandler)):"string"==typeof this.content&&(this._isPlainText=a.isPlainText(this.content),this._isPlainText&&a.hasLongerLines(this.content,76)&&(this._hasLongLines=!0)),this}build(e){let t;e||(t=new Promise((t,i)=>{e=r.callbackPromise(t,i)}));const i=this.createReadStream(),n=[];let s=0,o=!1;return i.on("readable",()=>{let e;for(;null!==(e=i.read());)n.push(e),s+=e.length}),i.once("error",t=>{if(!o)return o=!0,e(t)}),i.once("end",t=>{if(!o)return o=!0,t&&t.length&&(n.push(t),s+=t.length),e(null,Buffer.concat(n,s))}),t}getTransferEncoding(){let e=!1;const t=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();return this.content&&(e=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim(),e&&["base64","quoted-printable"].includes(e)||(/^text\//i.test(t)?e=this._isPlainText&&!this._hasLongLines?"7bit":"string"==typeof this.content||this.content instanceof Buffer?"Q"===this._getTextEncoding(this.content)?"quoted-printable":"base64":"B"===this.textEncoding?"base64":"quoted-printable":/^(multipart|message)\//i.test(t)||(e=e||"base64"))),e}buildHeaders(){const e=this.getTransferEncoding(),t=[];if(e&&this.setHeader("Content-Transfer-Encoding",e),this.filename&&!this.getHeader("Content-Disposition")&&this.setHeader("Content-Disposition","attachment"),this.rootNode===this){this.getHeader("Date")||this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000")),this.messageId(),this.getHeader("MIME-Version")||this.setHeader("MIME-Version","1.0");for(let e=this._headers.length-2;e>=0;e--){const t=this._headers[e];"Content-Type"===t.key&&(this._headers.splice(e,1),this._headers.push(t))}}return this._headers.forEach(e=>{let i,n,s=e.key,o=e.value;const r={};if(!o||"object"!=typeof o||w.includes(s)||(Object.keys(o).forEach(e=>{"value"!==e&&(r[e]=o[e])}),o=(o.value||"").toString(),o.trim()))if(r.prepared)r.foldLines?t.push(a.foldLines(s+": "+o)):t.push(s+": "+o);else{switch(e.key){case"Content-Disposition":i=a.parseHeaderValue(o),this.filename&&(i.params.filename=this.filename),o=a.buildHeaderValue(i);break;case"Content-Type":i=a.parseHeaderValue(o),this._handleContentType(i),i.value.match(/^text\/plain\b/)&&"string"==typeof this.content&&/[\u0080-\uFFFF]/.test(this.content)&&(i.params.charset="utf-8"),o=a.buildHeaderValue(i),this.filename&&(n=this._encodeWords(this.filename),(n!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(n))&&(n='"'+n+'"'),o+="; name="+n);break;case"Bcc":if(!this.keepBcc)return}if(o=this._encodeHeaderValue(s,o),(o||"").toString().trim()){if("function"==typeof this.normalizeHeaderKey){const e=this.normalizeHeaderKey(s,o);e&&"string"==typeof e&&e.length&&(s=e)}t.push(a.foldLines(s+": "+o,76))}}}),t.join("\r\n")}createReadStream(e){const t=new s(e=e||{});let i,n=t;this.stream(t,e,e=>{e?n.emit("error",e):t.end()});for(let e=0,t=this._transforms.length;e<t;e++)i="function"==typeof this._transforms[e]?this._transforms[e]():this._transforms[e],n.once("error",e=>{i.emit("error",e)}),n=n.pipe(i);i=new m,n.once("error",e=>{i.emit("error",e)}),n=n.pipe(i);for(let e=0,t=this._processFuncs.length;e<t;e++)i=this._processFuncs[e],n=i(n);if(this.newline){const e=["win","windows","dos","\r\n"].includes(this.newline.toString().toLowerCase())?new h:new g,t=n.pipe(e);return n.on("error",e=>t.emit("error",e)),t}return n}transform(e){this._transforms.push(e)}processFunc(e){this._processFuncs.push(e)}stream(e,t,i){const n=this.getTransferEncoding();let s,o,r=!1;const a=e=>{r||(r=!0,i(e))},u=()=>{let i=0;const n=()=>{if(i>=this.childNodes.length)return e.write("\r\n--"+this.boundary+"--\r\n"),a();const s=this.childNodes[i++];e.write((i>1?"\r\n":"")+"--"+this.boundary+"\r\n"),s.stream(e,t,e=>{if(e)return a(e);setImmediate(n)})};if(!this.multipart)return a();setImmediate(n)},p=()=>{if(this.content){if("[object Error]"===Object.prototype.toString.call(this.content))return a(this.content);"function"==typeof this.content.pipe&&(this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=e=>a(e),this.content.once("error",this._contentErrorHandler));const i=()=>{["quoted-printable","base64"].includes(n)?(s=new("base64"===n?l:c).Encoder(t),s.pipe(e,{end:!1}),s.once("end",u),s.once("error",e=>a(e)),o=this._getStream(this.content),o.pipe(s)):(o=this._getStream(this.content),o.pipe(e,{end:!1}),o.once("end",u)),o.once("error",e=>a(e))};if(this.content._resolve){const e=[];let t=0,n=!1;const s=this._getStream(this.content);s.on("error",e=>{n||(n=!0,a(e))}),s.on("readable",()=>{let i;for(;null!==(i=s.read());)e.push(i),t+=i.length}),s.on("end",()=>{n||(n=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(e,t),setImmediate(i))})}else setImmediate(i);return}return setImmediate(u)};this._raw?setImmediate(()=>{if("[object Error]"===Object.prototype.toString.call(this._raw))return a(this._raw);"function"==typeof this._raw.pipe&&this._raw.removeListener("error",this._contentErrorHandler);const t=this._getStream(this._raw);t.pipe(e,{end:!1}),t.on("error",t=>e.emit("error",t)),t.on("end",u)}):(e.write(this.buildHeaders()+"\r\n\r\n"),setImmediate(p))}setEnvelope(e){let t;this._envelope={from:!1,to:[]},e.from&&(t=[],this._convertAddresses(this._parseAddresses(e.from),t),t=t.filter(e=>e&&e.address),t.length&&t[0]&&(this._envelope.from=t[0].address)),["to","cc","bcc"].forEach(t=>{e[t]&&this._convertAddresses(this._parseAddresses(e[t]),this._envelope.to)}),this._envelope.to=this._envelope.to.map(e=>e.address).filter(e=>e);const i=["to","cc","bcc","from"];return Object.keys(e).forEach(t=>{i.includes(t)||(this._envelope[t]=e[t])}),this}getAddresses(){const e={};return this._headers.forEach(t=>{const i=t.key.toLowerCase();["from","sender","reply-to","to","cc","bcc"].includes(i)&&(Array.isArray(e[i])||(e[i]=[]),this._convertAddresses(this._parseAddresses(t.value),e[i]))}),e}getEnvelope(){if(this._envelope)return this._envelope;const e={from:!1,to:[]};return this._headers.forEach(t=>{const i=[];"From"===t.key||!e.from&&["Reply-To","Sender"].includes(t.key)?(this._convertAddresses(this._parseAddresses(t.value),i),i.length&&i[0]&&(e.from=i[0].address)):["To","Cc","Bcc"].includes(t.key)&&this._convertAddresses(this._parseAddresses(t.value),e.to)}),e.to=e.to.map(e=>e.address),e}messageId(){let e=this.getHeader("Message-ID");return e||(e=this._generateMessageId(),this.setHeader("Message-ID",e)),e}setRaw(e){return this._raw=e,this._raw&&"function"==typeof this._raw.pipe&&(this._contentErrorHandler=e=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=e},this._raw.once("error",this._contentErrorHandler)),this}_getStream(e){let i;return e._resolvedValue?(i=new s,setImmediate(()=>{try{i.end(e._resolvedValue)}catch(e){i.emit("error",e)}}),i):"function"==typeof e.pipe?e:e&&"string"==typeof e.path&&!e.href?this.disableFileAccess?(i=new s,setImmediate(()=>{const t=new Error("File access rejected for "+e.path);t.code=d.EFILEACCESS,i.emit("error",t)}),i):t.createReadStream(e.path):e&&"string"==typeof e.href?this.disableUrlAccess?(i=new s,setImmediate(()=>{const t=new Error("Url access rejected for "+e.href);t.code=d.EURLACCESS,i.emit("error",t)}),i):p(e.href,{headers:e.httpHeaders,tls:e.tls}):(i=new s,setImmediate(()=>{try{i.end(e||"")}catch(e){i.emit("error",e)}}),i)}_parseAddresses(e){return[].concat.apply([],[].concat(e).map(e=>e&&e.address?(e.address=this._normalizeAddress(e.address),e.name=e.name||"",[e]):u(e)))}_normalizeHeaderKey(e){return e=(e||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,e=>e.toUpperCase()).replace(/^Content-Features$/i,"Content-features")}_handleContentType(e){this.contentType=e.value.trim().toLowerCase(),this.multipart=!!/^multipart\//i.test(this.contentType)&&this.contentType.substr(this.contentType.indexOf("/")+1),this.multipart?this.boundary=e.params.boundary=e.params.boundary||this.boundary||this._generateBoundary():this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(e,t){switch(e=this._normalizeHeaderKey(e)){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(t));case"Message-ID":case"In-Reply-To":case"Content-Id":return"<"!==(t=(t||"").toString().replace(/\r?\n|\r/g," ")).charAt(0)&&(t="<"+t),">"!==t.charAt(t.length-1)&&(t+=">"),t;case"References":return(t=[].concat.apply([],[].concat(t||"").map(e=>(e=(e||"").toString().replace(/\r?\n|\r/g," ").trim()).replace(/<[^>]*>/g,e=>e.replace(/\s/g,"")).split(/\s+/))).map(e=>("<"!==e.charAt(0)&&(e="<"+e),">"!==e.charAt(e.length-1)&&(e+=">"),e))).join(" ").trim();case"Date":return"[object Date]"===Object.prototype.toString.call(t)?t.toUTCString().replace(/GMT/,"+0000"):(t=(t||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(t));case"Content-Type":case"Content-Disposition":return(t||"").toString().replace(/\r?\n|\r/g," ");default:return t=(t||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(t)}}_convertAddresses(e,t){const i=[];return t=t||[],[].concat(e||[]).forEach(e=>{if(e.address)e.address=this._normalizeAddress(e.address),e.name?i.push(`${this._encodeAddressName(e.name)} <${e.address}>`):i.push(e.address.indexOf(" ")>=0?`<${e.address}>`:`${e.address}`),t.some(t=>t.address===e.address)||t.push(e);else if(e.group){const n=(e.group.length?this._convertAddresses(e.group,t):"").trim();i.push(`${this._encodeAddressName(e.name)}:${n};`)}}),i.join(", ")}_normalizeAddress(e){const t=(e=(e||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim()).lastIndexOf("@");if(t<0)return e;let i=e.substr(0,t);const s=e.substr(t+1);let o=s;try{o=/[\x80-\uFFFF]/.test(i)?n.toUnicode(s.toLowerCase()):n.toASCII(s.toLowerCase())}catch(e){}return i.indexOf(" ")>=0&&('"'!==i.charAt(0)&&(i='"'+i),'"'!==i.substr(-1)&&(i+='"')),`${i}@${o}`}_encodeAddressName(e){return/^[\w ]*$/.test(e)?e:/^[\x20-\x7e]*$/.test(e)?'"'+e.replace(/([\\"])/g,"\\$1")+'"':a.encodeWord(e,this._getTextEncoding(e),52)}_encodeWords(e){return a.encodeWords(e,this._getTextEncoding(e),52,!0)}_getTextEncoding(e){if(e=(e||"").toString(),this.textEncoding)return this.textEncoding;let t=0,i=0;for(let n=0,s=e.length;n<s;n++){const s=e.charCodeAt(n);s>=0&&s<=8||11===s||12===s||s>=14&&s<=31||s>=128?t++:(s>=65&&s<=90||s>=97&&s<=122)&&i++}return t<i?"Q":"B"}_generateMessageId(){return"<"+[2,2,2,6].reduce((t,i)=>t+"-"+e.randomBytes(i).toString("hex"),e.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}}return Jc=y}var yl,xl,Dl,vl,Ml,Cl,Il,bl,Ll,Al,El,Sl,Tl,Nl,kl,jl,Zl,Xl={exports:{}};function Yl(){if(yl)return Xl.exports;yl=1;const e=Ac(),t=ml(),i=f;function n(e,t,i){const n=new Set,o=new Set,r=new Map;(i||"").toLowerCase().split(":").forEach(e=>{o.add(e.trim())}),(t||"").toLowerCase().split(":").filter(e=>!o.has(e.trim())).forEach(e=>{n.add(e.trim())});for(let t=e.length-1;t>=0;t--){const i=e[t];n.has(i.key)&&!r.has(i.key)&&r.set(i.key,s(i.line))}const a=[],c=[];return n.forEach(e=>{r.has(e)&&(c.push(e),a.push(e+":"+r.get(e)))}),{headers:a.join("\r\n")+"\r\n",fieldNames:c.join(":")}}function s(e){return e.substr(e.indexOf(":")+1).replace(/\r?\n/g,"").replace(/\s+/g," ").trim()}return Xl.exports=(o,r,a,c)=>{const l=n(o,(c=c||{}).headerFieldNames||"From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",c.skipFields),u=function(i,n,s,o,r){const a=["v=1","a=rsa-"+o,"c=relaxed/relaxed","d="+e.toASCII(i),"q=dns/txt","s="+n,"bh="+r,"h="+s].join("; ");return t.foldLines("DKIM-Signature: "+a,76)+";\r\n b="}(c.domainName,c.keySelector,l.fieldNames,r,a);l.headers+="dkim-signature:"+s(u);const p=i.createSign(("rsa-"+r).toUpperCase());let d;p.update(l.headers);try{d=p.sign(c.privateKey,"base64")}catch(e){return!1}return u+d.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,"$&\r\n ").trim()},Xl.exports.relaxedHeaders=n,Xl.exports}function zl(){if(Dl)return xl;Dl=1;const e=function(){if(il)return tl;il=1;const{Transform:e}=o;return tl=class extends e{constructor(e){super(e),this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(e){const t=this.lastBytes.length,i=Math.min(e.length,t);for(let e=0,n=t-i;e<n;e++)this.lastBytes[e]=this.lastBytes[e+i];for(let n=1;n<=i;n++)this.lastBytes[t-n]=e[e.length-n]}checkHeaders(e){if(this.headersParsed)return!0;const t=this.lastBytes.length;let i=0;for(let n=0,s=this.lastBytes.length+e.length;n<s;n++){let s;if(s=n<t?this.lastBytes[n]:e[n-t],10===s&&n){const s=n-1<t?this.lastBytes[n-1]:e[n-1-t],o=n>1&&(n-2<t?this.lastBytes[n-2]:e[n-2-t]);if(10===s){this.headersParsed=!0,i=n-t+1,this.headerBytes+=i;break}if(13===s&&10===o){this.headersParsed=!0,i=n-t+1,this.headerBytes+=i;break}}}if(this.headersParsed){if(this.headerChunks.push(e.slice(0,i)),this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders()),e.length-1>i){const t=e.slice(i);this.bodySize+=t.length,setImmediate(()=>this.push(t))}return!1}return this.headerBytes+=e.length,this.headerChunks.push(e),this.updateLastBytes(e),!1}_transform(e,t,i){if(!e||!e.length)return i();let n;"string"==typeof e&&(e=Buffer.from(e,t));try{n=this.checkHeaders(e)}catch(e){return i(e)}n&&(this.bodySize+=e.length,this.push(e)),setImmediate(i)}_flush(e){if(this.headerChunks){const e=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=e.length,this.push(e),this.headerChunks=null}e()}parseHeaders(){const e=(this.rawHeaders||"").toString().split(/\r?\n/);for(let t=e.length-1;t>0;t--)/^\s/.test(e[t])&&(e[t-1]+="\n"+e[t],e.splice(t,1));return e.filter(e=>e.trim()).map(e=>({key:e.substr(0,e.indexOf(":")).trim().toLowerCase(),line:e}))}}}(),n=function(){if(sl)return nl;sl=1;const{Transform:e}=o,t=f;return nl=class extends e{constructor(e){super(),e=e||{},this.chunkBuffer=[],this.chunkBufferLen=0,this.bodyHash=t.createHash(e.hashAlgo||"sha256"),this.remainder="",this.byteLength=0,this.debug=e.debug,this._debugBody=!!e.debug&&[]}updateHash(e){let t,i="",n="file";for(let t=e.length-1;t>=0;t--){const s=e[t];if("file"!==n||10!==s&&13!==s)if("file"!==n||9!==s&&32!==s){if(("line"!==n||9!==s&&32!==s)&&("file"===n||"line"===n)&&(n="body",t===e.length-1))break}else n="line";if(0===t){if("file"===n&&(!this.remainder||/[\r\n]$/.test(this.remainder))||"line"===n&&(!this.remainder||/[ \t]$/.test(this.remainder)))return void(this.remainder+=e.toString("binary"));if("line"===n||"file"===n){i=e.toString("binary"),e=!1;break}}if("body"===n){i=e.slice(t+1).toString("binary"),e=e.slice(0,t+1);break}}let s=!!this.remainder;if(e&&!s)for(let t=0,i=e.length;t<i;t++){if(t&&10===e[t]&&13!==e[t-1]){s=!0;break}if(t&&13===e[t]&&32===e[t-1]){s=!0;break}if(t&&32===e[t]&&32===e[t-1]){s=!0;break}if(9===e[t]){s=!0;break}}s?(t=this.remainder+(e?e.toString("binary"):""),this.remainder=i,t=t.replace(/\r?\n/g,"\n").replace(/[ \t]*$/gm,"").replace(/[ \t]+/gm," ").replace(/\n/g,"\r\n"),e=Buffer.from(t,"binary")):i&&(this.remainder=i),this.debug&&this._debugBody.push(e),this.bodyHash.update(e)}_transform(e,t,i){if(!e||!e.length)return i();"string"==typeof e&&(e=Buffer.from(e,t)),this.updateHash(e),this.byteLength+=e.length,this.push(e),i()}_flush(e){/[\r\n]$/.test(this.remainder)&&this.byteLength>2&&this.bodyHash.update(Buffer.from("\r\n")),this.byteLength||this.push(Buffer.from("\r\n")),this.emit("hash",this.bodyHash.digest("base64"),!!this.debug&&Buffer.concat(this._debugBody)),e()}}}(),s=Yl(),{PassThrough:r}=o,a=i,c=t,l=f;class u{constructor(e,t,i,n){this.options=e||{},this.keys=t,this.cacheTreshold=Number(this.options.cacheTreshold)||2097152,this.hashAlgo=this.options.hashAlgo||"sha256",this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=!!this.cacheDir&&c.join(this.cacheDir,"message."+Date.now()+"-"+l.randomBytes(14).toString("hex")),this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=i,this.output=n,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",e=>{this.hasErrored=!0,this.cleanup(),n.emit("error",e)})}cleanup(){this.cache&&this.cachePath&&a.unlink(this.cachePath,()=>!1)}createReadCache(){this.cache=a.createReadStream(this.cachePath),this.cache.once("error",e=>{this.cleanup(),this.output.emit("error",e)}),this.cache.once("close",()=>{this.cleanup()}),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length)return this.cache?this.createReadCache():this.output.end();const e=this.chunks[this.readPos++];if(!1===this.output.write(e))return this.output.once("drain",()=>{this.sendNextChunk()});setImmediate(()=>this.sendNextChunk())}sendSignedOutput(){let e=0;const t=()=>{if(e>=this.keys.length)return this.output.write(this.parser.rawHeaders),setImmediate(()=>this.sendNextChunk());const i=this.keys[e++],n=s(this.headers,this.hashAlgo,this.bodyHash,{domainName:i.domainName,keySelector:i.keySelector,privateKey:i.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields});return n&&this.output.write(Buffer.from(n+"\r\n")),setImmediate(t)};if(this.bodyHash&&this.headers)return t();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=a.createWriteStream(this.cachePath),this.cache.once("error",e=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",()=>{for(;null!==this.relaxedBody.read(););}),this.hasErrored=!0,this.output.emit("error",e)}),this.cache.once("close",()=>{this.sendSignedOutput()}),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new e,this.relaxedBody=new n({hashAlgo:this.hashAlgo}),this.parser.on("headers",e=>{this.headers=e}),this.relaxedBody.on("hash",e=>{this.bodyHash=e}),this.relaxedBody.on("readable",()=>{let e;if(!this.cache)for(;null!==(e=this.relaxedBody.read());)if(this.chunks.push(e),this.chunklen+=e.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()}),this.relaxedBody.on("end",()=>{this.cache||this.sendSignedOutput()}),this.parser.pipe(this.relaxedBody),setImmediate(()=>this.input.pipe(this.parser))}}return xl=class{constructor(e){this.options=e||{},this.keys=[].concat(this.options.keys||{domainName:e.domainName,keySelector:e.keySelector,privateKey:e.privateKey})}sign(e,t){const i=new r;let n=e,s=!1;Buffer.isBuffer(e)?(s=e,n=new r):"string"==typeof e&&(s=Buffer.from(e),n=new r);let o=this.options;t&&Object.keys(t).length&&(o=Object.assign({},t,this.options));const a=new u(o,this.keys,n,i);return setImmediate(()=>{a.signStream(),s&&setImmediate(()=>{n.end(s)})}),i}}}function Fl(){if(Ll)return bl;Ll=1;const e=c,t=ll(),i=ul(),n=function(){if(el)return $c;el=1;const e=wl(),t=ml(),{parseDataURI:i}=ll();return $c=class{constructor(e){this.mail=e||{},this.message=!1}compile(){return this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter(e=>/^text\/html\b/i.test(e.contentType)).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!(!this._htmlNode||!this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&1===this._attachments.attached.length,this.mail.raw?this.message=new e("message/rfc822",{newline:this.mail.newline,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess}).setRaw(this.mail.raw):this._useMixed?this.message=this._createMixed():this._useAlternative?this.message=this._createAlternative():this._useRelated?this.message=this._createRelated():this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""}),this.mail.headers&&this.message.addHeader(this.mail.headers),["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach(e=>{const t=e.replace(/-(\w)/g,(e,t)=>t.toUpperCase());this.mail[t]&&this.message.setHeader(e,this.mail[t])}),this.mail.envelope&&this.message.setEnvelope(this.mail.envelope),this.message.messageId(),this.message}getAttachments(e){let i;const n=[].concat(this.mail.attachments||[]).map((e,i)=>{/^data:/i.test(e.path||e.href)&&(e=this._processDataUrl(e));const n=e.contentType||t.detectMimeType(e.filename||e.path||e.href||"bin"),s=/^image\//i.test(n),o=/^message\//i.test(n),r=e.contentDisposition||(o||s&&e.cid?"inline":"attachment");let a;a="contentTransferEncoding"in e?e.contentTransferEncoding:o?"8bit":"base64";const c={contentType:n,contentDisposition:r,contentTransferEncoding:a};return e.filename?c.filename=e.filename:o||!1===e.filename||(c.filename=(e.path||e.href||"").split("/").pop().split("?").shift()||"attachment-"+(i+1),c.filename.indexOf(".")<0&&(c.filename+="."+t.detectExtension(c.contentType))),/^https?:\/\//i.test(e.path)&&(e.href=e.path,e.path=void 0),e.cid&&(c.cid=e.cid),e.raw?c.raw=e.raw:e.path?c.content={path:e.path}:e.href?c.content={href:e.href,httpHeaders:e.httpHeaders,tls:e.tls}:c.content=e.content||"",e.encoding&&(c.encoding=e.encoding),e.headers&&(c.headers=e.headers),c});return this.mail.icalEvent&&(i=Object.assign({},this._getIcalEvent()),i.contentType="application/ics",i.headers||(i.headers={}),i.filename=i.filename||"invite.ics",i.headers["Content-Disposition"]="attachment",i.headers["Content-Transfer-Encoding"]="base64"),e?{attached:n.filter(e=>!e.cid).concat(i||[]),related:n.filter(e=>!!e.cid)}:{attached:n.concat(i||[]),related:[]}}_getIcalEvent(){if(!this._icalEvent){let e;e="object"==typeof this.mail.icalEvent&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?Object.assign({},this.mail.icalEvent):{content:this.mail.icalEvent},/^data:/i.test(e.path||e.href)&&(e=this._processDataUrl(e)),/^https?:\/\//i.test(e.path)&&(e.href=e.path,e.path=void 0),e.raw||(e.path?(e.content={path:e.path},e.path=void 0):e.href&&(e.content={href:e.href,httpHeaders:e.httpHeaders},e.href=void 0)),e.content&&"object"==typeof e.content&&(e.content._resolve=!0),this._icalEvent=e}return this._icalEvent}getAlternatives(){const e=[];let i,n,s,o,r;return this.mail.text&&(i="object"==typeof this.mail.text&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw)?this.mail.text:{content:this.mail.text},i.contentType="text/plain; charset=utf-8"),this.mail.watchHtml&&(s="object"==typeof this.mail.watchHtml&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw)?this.mail.watchHtml:{content:this.mail.watchHtml},s.contentType="text/watch-html; charset=utf-8"),this.mail.amp&&(o="object"==typeof this.mail.amp&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw)?this.mail.amp:{content:this.mail.amp},o.contentType="text/x-amp-html; charset=utf-8"),this.mail.icalEvent&&(r=Object.assign({},this._getIcalEvent()),r.filename=!1,r.contentType="text/calendar; charset=utf-8; method="+(r.method||"PUBLISH").toString().trim().toUpperCase(),r.headers||(r.headers={})),this.mail.html&&(n="object"==typeof this.mail.html&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw)?this.mail.html:{content:this.mail.html},n.contentType="text/html; charset=utf-8"),[].concat(i||[]).concat(s||[]).concat(o||[]).concat(n||[]).concat(r||[]).concat(this.mail.alternatives||[]).forEach(i=>{/^data:/i.test(i.path||i.href)&&(i=this._processDataUrl(i));const n={contentType:i.contentType||t.detectMimeType(i.filename||i.path||i.href||"txt"),contentTransferEncoding:i.contentTransferEncoding};i.filename&&(n.filename=i.filename),/^https?:\/\//i.test(i.path)&&(i.href=i.path,i.path=void 0),i.raw?n.raw=i.raw:i.path?n.content={path:i.path}:i.href?n.content={href:i.href}:n.content=i.content||"",i.encoding&&(n.encoding=i.encoding),i.headers&&(n.headers=i.headers),e.push(n)}),e}_createMixed(t){const i=t?t.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new e("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._useAlternative?this._createAlternative(i):this._useRelated&&this._createRelated(i),[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach(e=>{this._useRelated&&e===this._htmlNode||this._createContentNode(i,e)}),i}_createAlternative(t){const i=t?t.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new e("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._alternatives.forEach(e=>{this._useRelated&&this._htmlNode===e?this._createRelated(i):this._createContentNode(i,e)}),i}_createRelated(t){const i=t?t.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new e('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._createContentNode(i,this._htmlNode),this._attachments.related.forEach(e=>this._createContentNode(i,e)),i}_createContentNode(t,i){(i=i||{}).content=i.content||"";const n=(i.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,""),s=t?t.createChild(i.contentType,{filename:i.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new e(i.contentType,{filename:i.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return i.headers&&s.addHeader(i.headers),i.cid&&s.setHeader("Content-Id","<"+i.cid.replace(/[<>]/g,"")+">"),i.contentTransferEncoding?s.setHeader("Content-Transfer-Encoding",i.contentTransferEncoding):this.mail.encoding&&/^text\//i.test(i.contentType)&&s.setHeader("Content-Transfer-Encoding",this.mail.encoding),/^text\//i.test(i.contentType)&&!i.contentDisposition||s.setHeader("Content-Disposition",i.contentDisposition||(i.cid&&/^image\//i.test(i.contentType)?"inline":"attachment")),"string"!=typeof i.content||["utf8","usascii","ascii"].includes(n)||(i.content=Buffer.from(i.content,n)),i.raw?s.setRaw(i.raw):s.setContent(i.content),s}_processDataUrl(e){const t=e.path||e.href;if(!t||"string"!=typeof t)return e;if(!t.startsWith("data:"))return e;if(t.length>52428800){let i="application/octet-stream";const n=t.indexOf(",");if(n>0&&n<200){const e=t.substring(5,n).split(";");e[0]&&e[0].includes("/")&&(i=e[0].trim())}return Object.assign({},e,{path:!1,href:!1,content:Buffer.alloc(0),contentType:e.contentType||i})}let n;try{n=i(t)}catch(t){return e}return n?(e.content=n.data,e.contentType=e.contentType||n.contentType,"path"in e&&(e.path=!1),"href"in e&&(e.href=!1),e):e}}}(),s=zl(),o=function(){if(Ml)return vl;Ml=1;const e=m,t=w,i=Ec(),n=al();return vl=function s(o,r,a,c,l){if("function"==typeof c&&(l=c,c={}),c=c||{},!(r=Number(r)||0)||/[\r\n]/.test(a)){const e=new Error("Invalid proxy destination");return e.code=n.EPROXY,setImmediate(()=>l(e))}const u=i.parse(o),p={host:u.hostname,port:Number(u.port)?Number(u.port):"https:"===u.protocol?443:80};let d,m;"https:"===u.protocol?(p.rejectUnauthorized=!1!==c.rejectUnauthorized,d=t.connect.bind(t)):d=e.connect.bind(e);let h=!1;const g=e=>{if(!h){h=!0;try{m.destroy()}catch(e){}l(e)}},f=()=>{const e=new Error("Proxy socket timed out");e.code="ETIMEDOUT",g(e)};m=d(p,()=>{if(h)return;const e={Host:a+":"+r,Connection:"close"};u.auth&&(e["Proxy-Authorization"]="Basic "+Buffer.from(u.auth).toString("base64")),m.write("CONNECT "+a+":"+r+" HTTP/1.1\r\n"+Object.keys(e).map(t=>t+": "+e[t]).join("\r\n")+"\r\n\r\n");let t="";const i=e=>{let s,o;if(!h){if(t+=e.toString("binary"),s=t.match(/\r\n\r\n/)){if(m.removeListener("data",i),o=t.substr(s.index+s[0].length),t=t.substr(0,s.index),o&&m.unshift(Buffer.from(o,"binary")),h=!0,s=t.match(/^HTTP\/\d+\.\d+ (\d+)/i),!s||"2"!==(s[1]||"").charAt(0)){try{m.destroy()}catch(e){}const e=new Error("Invalid response from proxy"+(s&&": "+s[1]||""));return e.code=n.EPROXY,l(e)}return m.removeListener("error",g),m.removeListener("timeout",f),m.setTimeout(0),l(null,m)}if(t.length>65536){m.removeListener("data",i);const e=new Error("Proxy response headers too large");return e.code=n.EPROXY,g(e)}}};m.on("data",i)}),m.setTimeout(s.timeout||3e4),m.on("timeout",f),m.once("error",g)},vl}(),r=al(),a=l,u=Ec(),p=ol,d=function(){if(Il)return Cl;Il=1;const e=ll(),t=wl(),i=ml();return Cl=class{constructor(e,t){this.mailer=e,this.data={},this.message=null,t=t||{};const i=e.options||{},n=e._defaults||{};Object.assign(this.data,t),this.data.headers=this.data.headers||{},Object.keys(n).forEach(e=>{e in this.data?"headers"===e&&Object.keys(n.headers).forEach(e=>{e in this.data.headers||(this.data.headers[e]=n.headers[e])}):this.data[e]=n[e]}),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach(e=>{e in i&&(this.data[e]=i[e])})}resolveContent(...t){return e.resolveContent(...t)}resolveAll(n){const s=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];this.data.alternatives&&this.data.alternatives.length&&this.data.alternatives.forEach((e,t)=>{s.push([this.data.alternatives,t])}),this.data.attachments&&this.data.attachments.length&&this.data.attachments.forEach((e,t)=>{e.filename||(e.filename=(e.path||e.href||"").split("/").pop().split("?").shift()||"attachment-"+(t+1),e.filename.indexOf(".")<0&&(e.filename+="."+i.detectExtension(e.contentType))),e.contentType||(e.contentType=i.detectMimeType(e.filename||e.path||e.href||"bin")),s.push([this.data.attachments,t])});const o=new t;["from","to","cc","bcc","sender","replyTo"].forEach(e=>{let t;this.message?t=[].concat(o._parseAddresses(this.message.getHeader("replyTo"===e?"reply-to":e))||[]):this.data[e]&&(t=[].concat(o._parseAddresses(this.data[e])||[])),t&&t.length?this.data[e]=t:e in this.data&&(this.data[e]=null)}),["from","sender"].forEach(e=>{this.data[e]&&(this.data[e]=this.data[e].shift())});let r=0;const a=()=>{if(r>=s.length)return n(null,this.data);const t=s[r++];if(!t[0]||!t[0][t[1]])return a();e.resolveContent(...t,{disableFileAccess:this.data.disableFileAccess,disableUrlAccess:this.data.disableUrlAccess},(e,i)=>{if(e)return n(e);const s={content:i};t[0][t[1]]&&"object"==typeof t[0][t[1]]&&!Buffer.isBuffer(t[0][t[1]])&&Object.keys(t[0][t[1]]).forEach(e=>{e in s||["content","path","href","raw"].includes(e)||(s[e]=t[0][t[1]][e])}),t[0][t[1]]=s,a()})};setImmediate(()=>a())}normalize(e){const t=this.data.envelope||this.message.getEnvelope(),i=this.message.messageId();this.resolveAll((n,s)=>n?e(n):(s.envelope=t,s.messageId=i,["html","text","watchHtml","amp"].forEach(e=>{s[e]&&s[e].content&&("string"==typeof s[e].content?s[e]=s[e].content:Buffer.isBuffer(s[e].content)&&(s[e]=s[e].content.toString()))}),s.icalEvent&&Buffer.isBuffer(s.icalEvent.content)&&(s.icalEvent.content=s.icalEvent.content.toString("base64"),s.icalEvent.encoding="base64"),s.alternatives&&s.alternatives.length&&s.alternatives.forEach(e=>{e&&e.content&&Buffer.isBuffer(e.content)&&(e.content=e.content.toString("base64"),e.encoding="base64")}),s.attachments&&s.attachments.length&&s.attachments.forEach(e=>{e&&e.content&&Buffer.isBuffer(e.content)&&(e.content=e.content.toString("base64"),e.encoding="base64")}),s.normalizedHeaders={},Object.keys(s.headers||{}).forEach(e=>{let t=[].concat(s.headers[e]||[]).shift();t=t&&t.value||t,t&&(["references","in-reply-to","message-id","content-id"].includes(e)&&(t=this.message._encodeHeaderValue(e,t)),s.normalizedHeaders[e]=t)}),s.list&&"object"==typeof s.list&&this._getListHeaders(s.list).forEach(e=>{s.normalizedHeaders[e.key]=e.value.map(e=>e&&e.value||e).join(", ")}),s.references&&(s.normalizedHeaders.references=this.message._encodeHeaderValue("references",s.references)),s.inReplyTo&&(s.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",s.inReplyTo)),e(null,s)))}setMailerHeader(){this.message&&this.data.xMailer&&this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(this.message&&this.data.priority)switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low")}}setListHeaders(){this.message&&this.data.list&&"object"==typeof this.data.list&&this._getListHeaders(this.data.list).forEach(e=>{e.value.forEach(t=>{this.message.addHeader(e.key,t)})})}_getListHeaders(e){return Object.keys(e).map(t=>({key:"list-"+t.toLowerCase().trim(),value:[].concat(e[t]||[]).map(e=>({prepared:!0,foldLines:!0,value:[].concat(e||[]).map(e=>{if("string"==typeof e&&(e={url:e}),e&&e.url){if("id"===t.toLowerCase().trim()){let t=(e.comment||"").toString().replace(/\r?\n|\r/g," ");return t=i.isPlainText(t)?'"'+t+'"':i.encodeWord(t),(e.comment?t+" ":"")+this._formatListUrl(e.url).replace(/^<[^:]+:\/{0,2}/,"<")}let n=(e.comment||"").toString().replace(/\r?\n|\r/g," ");return i.isPlainText(n)||(n=i.encodeWord(n)),this._formatListUrl(e.url)+(e.comment?" ("+n+")":"")}return""}).filter(e=>e).join(", ")}))}))}_formatListUrl(e){return e=e.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(e)?"<"+e+">":/^[^@]+@[^@]+$/.test(e)?"<mailto:"+e+">":"<http://"+e+">"}},Cl}(),g=m,y=h,x=f;return bl=class extends e{constructor(e,i,n){super(),this.options=i||{},this._defaults=n||{},this._defaultPlugins={compile:[(...e)=>this._convertDataImages(...e)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=!!this.options.dkim&&new s(this.options.dkim),this.transporter=e,this.transporter.mailer=this,this.logger=t.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),"function"==typeof this.transporter.on&&(this.transporter.on("log",e=>{this.logger.debug({tnx:"transport"},"%s: %s",e.type,e.message)}),this.transporter.on("error",e=>{this.logger.error({err:e,tnx:"transport"},"Transport Error: %s",e.message),this.emit("error",e)}),this.transporter.on("idle",(...e)=>{this.emit("idle",...e)}),this.transporter.on("clear",(...e)=>{this.emit("clear",...e)})),["close","isIdle","verify"].forEach(e=>{this[e]=(...t)=>"function"==typeof this.transporter[e]?("verify"===e&&"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1),this.transporter[e](...t)):(this.logger.warn({tnx:"transport",methodName:e},"Non existing method %s called for transport",e),!1)}),this.options.proxy&&"string"==typeof this.options.proxy&&this.setupProxy(this.options.proxy)}use(e,t){return e=(e||"").toString(),this._userPlugins.hasOwnProperty(e)?this._userPlugins[e].push(t):this._userPlugins[e]=[t],this}sendMail(e,i=null){let o;i||(o=new Promise((e,n)=>{i=t.callbackPromise(e,n)})),"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1);const r=new d(this,e);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",r,e=>{if(e)return this.logger.error({err:e,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",e.message),i(e);r.message=new n(r.data).compile(),r.setMailerHeader(),r.setPriorityHeaders(),r.setListHeaders(),this._processPlugins("stream",r,e=>{if(e)return this.logger.error({err:e,tnx:"plugin",action:"stream"},"PluginStream Error: %s",e.message),i(e);(r.data.dkim||this.dkim)&&r.message.processFunc(e=>{const t=r.data.dkim?new s(r.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:r.message.messageId(),dkimDomains:t.keys.map(e=>e.keySelector+"."+e.domainName).join(", ")},"Signing outgoing message with %s keys",t.keys.length),t.sign(e,r.data._dkim)}),this.transporter.send(r,(...e)=>{e[0]&&this.logger.error({err:e[0],tnx:"transport",action:"send"},"Send Error: %s",e[0].message),i(...e)})})}),o}getVersionString(){return a.format("%s (%s; +%s; %s/%s)",p.name,p.version,p.homepage,this.transporter.name,this.transporter.version)}_processPlugins(e,t,i){if(e=(e||"").toString(),!this._userPlugins.hasOwnProperty(e))return i();const n=this._userPlugins[e]||[],s=this._defaultPlugins[e]||[];if(n.length&&this.logger.debug({tnx:"transaction",pluginCount:n.length,step:e},"Using %s plugins for %s",n.length,e),n.length+s.length===0)return i();let o=0,r="default";const a=()=>{let e="default"===r?s:n;if(o>=e.length){if("default"!==r||!n.length)return i();r="user",o=0,e=n}(0,e[o++])(t,e=>{if(e)return i(e);a()})};a()}setupProxy(e){const t=u.parse(e);this.getSocket=(e,i)=>{const n=t.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+n))return this.meta.get("proxy_handler_"+n)(t,e,i);switch(n){case"http":case"https":return void o(t.href,e.port,e.host,this.options.tls||{},(e,t)=>e?i(e):i(null,{connection:t}));case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module")){let e=new Error("Socks module not loaded");return e.code=r.EPROXY,i(e)}const n=n=>{const s=!!this.meta.get("proxy_socks_module").SocksClient,o=s?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),r=Number(t.protocol.replace(/\D/g,""))||5,a={proxy:{ipaddress:n,port:Number(t.port),type:r},[s?"destination":"target"]:{host:e.host,port:e.port},command:"connect"};if(t.auth){const e=decodeURIComponent(t.auth.split(":").shift()),i=decodeURIComponent(t.auth.split(":").pop());s?(a.proxy.userId=e,a.proxy.password=i):4===r?a.userid=e:a.authentication={username:e,password:i}}o.createConnection(a,(e,t)=>e?i(e):i(null,{connection:t.socket||t}))};return g.isIP(t.hostname)?n(t.hostname):y.resolve(t.hostname,(e,t)=>{if(e)return i(e);n(Array.isArray(t)?t[0]:t)})}}let s=new Error("Unknown proxy configuration");s.code=r.EPROXY,i(s)}}_convertDataImages(e,t){if(!this.options.attachDataUrls&&!e.data.attachDataUrls||!e.data.html)return t();e.resolveContent(e.data,"html",{disableFileAccess:e.data.disableFileAccess,disableUrlAccess:e.data.disableUrlAccess},(n,s)=>{if(n)return t(n);let o=0;s=(s||"").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,(t,n,s,r)=>{const a=x.randomBytes(10).toString("hex")+"@localhost";return e.data.attachments||(e.data.attachments=[]),Array.isArray(e.data.attachments)||(e.data.attachments=[].concat(e.data.attachments||[])),e.data.attachments.push({path:s,cid:a,filename:"image-"+ ++o+"."+i.detectExtension(r)}),n+"cid:"+a}),e.data.html=s,t()})}set(e,t){return this.meta.set(e,t)}get(e){return this.meta.get(e)}},bl}function Gl(){if(Tl)return Sl;Tl=1;const e=ol,{EventEmitter:t}=c,i=m,n=w,s=g,r=f,a=function(){if(El)return Al;El=1;const{Transform:e}=o;return Al=class extends e{constructor(e){super(e),this.options=e||{},this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(e,t,i){const n=[];let s,o,r,a=0,c=0;if(!e||!e.length)return i();for("string"==typeof e&&(e=Buffer.from(e)),this.inByteCount+=e.length,s=0,o=e.length;s<o;s++)46===e[s]?(s&&10===e[s-1]||!s&&(!this.lastByte||10===this.lastByte))&&(r=e.slice(c,s+1),n.push(r),n.push(Buffer.from(".")),a+=r.length+1,c=s+1):10===e[s]&&(s&&13!==e[s-1]||!s&&13!==this.lastByte)&&(s>c?(r=e.slice(c,s),n.push(r),a+=r.length+2):a+=2,n.push(Buffer.from("\r\n")),c=s+1);a?(c<e.length&&(r=e.slice(c),n.push(r),a+=r.length),this.outByteCount+=a,this.push(Buffer.concat(n,a))):(this.outByteCount+=e.length,this.push(e)),this.lastByte=e[e.length-1],i()}_flush(e){let t;t=10===this.lastByte?Buffer.from(".\r\n"):13===this.lastByte?Buffer.from("\n.\r\n"):Buffer.from("\r\n.\r\n"),this.outByteCount+=t.length,this.push(t),e()}}}(),{PassThrough:l}=o,u=ll(),p=6e5,d=()=>{};function h(e){if(!e)return e;const t=Buffer.from(e,"binary").toString("utf8");return t.includes("�")?e:t}return Sl=class extends t{constructor(t){super(t),this.id=r.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=t||{},this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!i.isIP(this.host)&&this.host,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,void 0===this.options.secure&&465===this.port&&(this.secureConnection=!0),this.name=(this.options.name||this._getHostname()).toString().replace(/[\r\n]+/g,""),this.logger=u.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map;for(const e of Object.keys(this.options.customAuth||{})){const t=(e||"").toString().trim().toUpperCase();t&&this.customAuth.set(t,this.options.customAuth[e])}this.version=e.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._currentDataStream=!1,this._onSocketData=e=>this._onData(e),this._onSocketError=e=>this._onError(e,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout(),this._onConnectionSocketError=e=>this._onConnectionError(e,"ESOCKET"),this._connectionAttemptId=0}connect(e){if("function"==typeof e){this.once("connect",()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),e()});const t=this._isDestroyedMessage("connect");if(t)return e(this._formatError(t,"ECONNECTION",!1,"CONN"))}let t={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||3e4};return this.options.localAddress&&(t.localAddress=this.options.localAddress),this.options.connection?(this._socket=this.options.connection,this._setupConnectionHandlers(),void(this.secureConnection&&!this.alreadySecured?setImmediate(()=>this._upgradeConnection(e=>{e?this._onError(new Error("Error initiating TLS - "+(e.message||e)),"ETLS",!1,"CONN"):this._onConnect()})):setImmediate(()=>this._onConnect()))):this.options.socket?(this._socket=this.options.socket,this._resolveAndConnect(t,e=>{try{this._socket.connect(this.port,this.host,()=>{if(this._socket.setKeepAlive(!0),this.secureConnection&&!this.alreadySecured)return this._upgradeConnection(e=>{e?this._onError(new Error("Error initiating TLS - "+(e.message||e)),"ETLS",!1,"CONN"):this._onConnect()});this._onConnect()}),this._setupConnectionHandlers()}catch(e){return setImmediate(()=>this._onError(e,"ECONNECTION",!1,"CONN"))}})):(this.secureConnection&&(Object.assign(t,this.options.tls||{}),this.servername&&!t.servername&&(t.servername=this.servername)),this._resolveAndConnect(t,e=>{this._fallbackAddresses=(e._addresses||[]).filter(e=>e!==t.host),this._connectOpts=Object.assign({},t),this._connectToHost(t,this.secureConnection)}))}_resolveAndConnect(e,t){return u.resolveHostname(e,(i,n)=>{if(i)return setImmediate(()=>this._onError(i,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:e.host,resolved:n.host,cached:!!n.cached},"Resolved %s as %s [cache %s]",e.host,n.host,n.cached?"hit":"miss");for(const t of Object.keys(n))"_"!==t.charAt(0)&&n[t]&&(e[t]=n[t]);t(n)})}_connectToHost(e,t){if(this._destroyed||this._closing)return;this._connectionAttemptId++;const s=this._connectionAttemptId,o=t?n.connect:i.connect;try{this._socket=o(e,()=>{this._connectionAttemptId===s&&(this._socket.setKeepAlive(!0),this._onConnect())}),this._setupConnectionHandlers()}catch(e){return setImmediate(()=>this._onError(e,"ECONNECTION",!1,"CONN"))}}_setupConnectionHandlers(){this._connectionTimeout=setTimeout(()=>{this._onConnectionError("Connection timeout","ETIMEDOUT")},this.options.connectionTimeout||12e4),this._socket.on("error",this._onConnectionSocketError)}_onConnectionError(e,t){clearTimeout(this._connectionTimeout);if(!(this._fallbackAddresses&&this._fallbackAddresses.length&&"init"===this.stage&&!this._destroyed))return void this._onError(e,t,!1,"CONN");const i=this._fallbackAddresses.shift();if(this.logger.info({tnx:"network",failedHost:this._connectOpts.host,nextHost:i,error:e.message||e},"Connection to %s failed, trying %s",this._connectOpts.host,i),this._socket){try{this._socket.removeListener("error",this._onConnectionSocketError),this._socket.on("error",d),this._socket.destroy()}catch(e){}this._socket=null}this._connectOpts.host=i,this._connectToHost(this._connectOpts,this.secureConnection)}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;const e="init"===this.stage?"destroy":"end";this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',e);const t=this._socket&&this._socket.socket||this._socket;if(this._currentDataStream){try{this._currentDataStream.unpipe(this._socket)}catch(e){}this._currentDataStream=!1}if(t&&!t.destroyed)try{t.setTimeout(0),t.removeListener("data",this._onSocketData),t.removeListener("timeout",this._onSocketTimeout),t.removeListener("close",this._onSocketClose),t.removeListener("end",this._onSocketEnd),t.removeListener("error",this._onSocketError),t.removeListener("error",this._onConnectionSocketError),t.on("error",d),t[e]()}catch(e){}this._destroy()}login(e,t){const i=this._isDestroyedMessage("login");if(i)return t(this._formatError(i,"ECONNECTION",!1,"API"));if(this._auth=e||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,this._authMethod||!this._auth.oauth2||this._auth.credentials?this._authMethod&&("XOAUTH2"!==this._authMethod||this._auth.oauth2)||(this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim()):this._authMethod="XOAUTH2",!("XOAUTH2"===this._authMethod||this._auth.credentials&&this._auth.credentials.user&&this._auth.credentials.pass)){if(!(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod)))return t(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options}}if(this.customAuth.has(this._authMethod)){const e=this.customAuth.get(this._authMethod);let i,n=!1;const s=()=>{n||(n=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,t(null,!0))},o=e=>{n||(n=!0,t(this._formatError(e,"EAUTH",i,"AUTH "+this._authMethod)))},r=e({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(e,t)=>{let n;return t||(n=new Promise((e,i)=>{t=u.callbackPromise(e,i)})),this._responseActions.push(n=>{i=n;let s=n.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),o={command:e,response:n};s?(o.status=Number(s[1])||0,s[2]&&(o.code=s[2]),o.text=n.substr(s[0].length)):(o.text=n,o.status=0),t(null,o)}),setImmediate(()=>this._sendCommand(e)),n},resolve:s,reject:o});return void(r&&"function"==typeof r.catch&&r.then(s).catch(o))}switch(this._authMethod){case"XOAUTH2":return void this._handleXOauth2Token(!1,t);case"LOGIN":return this._responseActions.push(e=>{this._actionAUTH_LOGIN_USER(e,t)}),void this._sendCommand("AUTH LOGIN");case"PLAIN":return this._responseActions.push(e=>{this._actionAUTHComplete(e,t)}),void this._sendCommand("AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0/* secret */","utf-8").toString("base64"));case"CRAM-MD5":return this._responseActions.push(e=>{this._actionAUTH_CRAM_MD5(e,t)}),void this._sendCommand("AUTH CRAM-MD5")}return t(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}send(e,t,i){if(!t)return i(this._formatError("Empty message","EMESSAGE",!1,"API"));const n=this._isDestroyedMessage("send message");if(n)return i(this._formatError(n,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&e.size>this._maxAllowedSize)return setImmediate(()=>{i(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))});let s=!1;const o=function(){s||(s=!0,i(...arguments))};"function"==typeof t.on&&t.on("error",e=>o(this._formatError(e,"ESTREAM",!1,"API")));const r=Date.now();this._setEnvelope(e,(e,i)=>{if(e){const i=new l;return"function"==typeof t.pipe?t.pipe(i):(i.write(t),i.end()),o(e)}const n=Date.now(),s=this._createSendStream((e,t)=>e?o(e):(i.envelopeTime=n-r,i.messageTime=Date.now()-n,i.messageSize=s.outByteCount,i.response=t,o(null,i)));"function"==typeof t.pipe?t.pipe(s):(s.write(t),s.end())})}reset(e){const t=this._isDestroyedMessage("reset");if(t)return e(this._formatError(t,"ECONNECTION",!1,"API"));this._sendCommand("RSET"),this._responseActions.push(t=>"2"!==t.charAt(0)?e(this._formatError("Could not reset session state. response="+t,"EPROTOCOL",t,"RSET")):(this._envelope=!1,e(null,!0)))}_onConnect(){clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed?this.close():(this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.removeListener("error",this._onConnectionSocketError),this._socket.removeListener("error",this._onSocketError),this._socket.on("error",this._onSocketError),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||p),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout(()=>{this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting&&this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")},this.options.greetingTimeout||3e4),this._responseActions.push(this._actionGreeting),this._socket.resume())}_onData(e){if(this._destroyed||!e||!e.length)return;let t,i=e.toString("binary"),n=(this._remainder+i).split(/\r?\n/);this._remainder=n.pop();for(let e=0,i=n.length;e<i;e++)this._responseQueue.length&&(t=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(t.split("\n").pop()))?this._responseQueue[this._responseQueue.length-1]+="\n"+n[e]:this._responseQueue.push(n[e]);this._responseQueue.length&&(t=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(t.split("\n").pop()))||this._processResponse()}_onError(e,t,i,n){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._destroyed)return;e=this._formatError(e,t,i,n);["ETIMEDOUT","ESOCKET","ECONNECTION"].includes(e.code)?this.logger.warn(i,e.message):this.logger.error(i,e.message),this.emit("error",e),this.close()}_formatError(e,t,i,n){let s;s=/Error\]$/i.test(Object.prototype.toString.call(e))?e:new Error(e),t&&"Error"!==t&&(s.code=t),i&&(s.response=i,s.message+=": "+i);const o="string"==typeof i&&Number((i.match(/^\d+/)||[])[0])||!1;return o&&(s.responseCode=o),n&&(s.command=n),s}_onClose(){let e=!1;return this._remainder&&this._remainder.trim()&&(this.lastServerResponse=e=h(this._remainder.trim()),(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},e)),this.logger.info({tnx:"network"},"Connection closed"),this.upgrading&&!this._destroyed?this._onError(new Error("Connection closed unexpectedly"),"ETLS",e,"CONN"):[this._actionGreeting,this.close].includes(this._responseActions[0])||this._destroyed?/^[45]\d{2}\b/.test(e)?this._onError(new Error("Connection closed unexpectedly"),"ECONNECTION",e,"CONN"):void this._destroy():this._onError(new Error("Connection closed unexpectedly"),"ECONNECTION",e,"CONN")}_onEnd(){this._socket&&!this._socket.destroyed&&this._socket.end()}_onTimeout(){return this._onError(new Error("Timeout"),"ETIMEDOUT",!1,"CONN")}_destroy(){this._destroyed||(this._destroyed=!0,this.destroyed=!0,this.emit("end"))}_upgradeConnection(e){this._remainder="",this._responseQueue=[],this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout);const t=this._socket,i=Object.assign({socket:this._socket,host:this.host},this.options.tls||{});this.servername&&!i.servername&&(i.servername=this.servername);const s=()=>{t.removeListener("close",this._onSocketClose),t.removeListener("end",this._onSocketEnd),t.removeListener("error",this._onSocketError),t.removeListener("error",this._onConnectionSocketError)};this.upgrading=!0;try{this._socket=n.connect(i,()=>(this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),s(),e(null,!0)))}catch(t){return s(),e(t)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||p),this._socket.on("timeout",this._onSocketTimeout),t.resume()}_processResponse(){if(!this._responseQueue.length)return!1;const e=(this._responseQueue.shift()||"").toString();if(!e.trim())return void setImmediate(()=>this._processResponse());let t=this.lastServerResponse=h(e);if(/^\d+-/.test(t.split("\n").pop()))return void this._responseQueue.unshift(e);(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},t.replace(/\r?\n$/,""));const i=this._responseActions.shift();if("function"!=typeof i)return this._onError(new Error("Unexpected Response"),"EPROTOCOL",t,"CONN");i.call(this,t),setImmediate(()=>this._processResponse())}_sendCommand(e,t){if(!this._destroyed){if(this._socket.destroyed)return this.close();(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"client"},(t||e||"").toString().replace(/\r?\n$/,"")),this._socket.write(Buffer.from(e+"\r\n","utf-8"))}}_setEnvelope(e,t){const i=[];let n=!1;if(this._envelope=e||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map(e=>(e&&e.address||e||"").toString().trim()),!this._envelope.to.length)return t(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return t(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.from)&&(n=!0);for(let e=0,i=this._envelope.to.length;e<i;e++){if(!this._envelope.to[e]||/[\r\n<>]/.test(this._envelope.to[e]))return t(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[e]),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.to[e])&&(n=!0)}if(this._envelope.rcptQueue=[].concat(this._envelope.to||[]),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(e){return t(this._formatError("Invalid DSN "+e.message,"EENVELOPE",!1,"API"))}if(this._envelope.requireTLSExtensionEnabled){if(!this.secure)return t(this._formatError("REQUIRETLS can only be used over TLS connections (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"));if(!this._supportedExtensions.includes("REQUIRETLS"))return t(this._formatError("Server does not support REQUIRETLS extension (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"))}if(this._responseActions.push(e=>{this._actionMAIL(e,t)}),n&&this._supportedExtensions.includes("SMTPUTF8")&&(i.push("SMTPUTF8"),this._usingSmtpUtf8=!0),this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME")&&(i.push("BODY=8BITMIME"),this._using8BitMime=!0),this._envelope.size&&this._supportedExtensions.includes("SIZE")){const e=Number(this._envelope.size)||0;e>0&&i.push("SIZE="+e)}this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.ret&&i.push("RET="+u.encodeXText(this._envelope.dsn.ret)),this._envelope.dsn.envid&&i.push("ENVID="+u.encodeXText(this._envelope.dsn.envid))),this._envelope.requireTLSExtensionEnabled&&i.push("REQUIRETLS"),this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(i.length?" "+i.join(" "):""))}_setDsnEnvelope(e){let t=(e.ret||e.return||"").toString().toUpperCase()||null;if(t)switch(t){case"HDRS":case"HEADERS":t="HDRS";break;case"FULL":case"BODY":t="FULL"}if(t&&!["FULL","HDRS"].includes(t))throw new Error("ret: "+JSON.stringify(t));const i=(e.envid||e.id||"").toString()||null;let n=e.notify||null;if(n){"string"==typeof n&&(n=n.split(",")),n=n.map(e=>e.trim().toUpperCase());const e=["NEVER","SUCCESS","FAILURE","DELAY"];if(n.filter(t=>!e.includes(t)).length||n.length>1&&n.includes("NEVER"))throw new Error("notify: "+JSON.stringify(n.join(",")));n=n.join(",")}let s=(e.recipient||e.orcpt||"").toString()||null;return s&&s.indexOf(";")<0&&(s="rfc822;"+s),{ret:t,envid:i,notify:n,orcpt:s}}_getDsnRcptToArgs(){const e=[];return this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.notify&&e.push("NOTIFY="+u.encodeXText(this._envelope.dsn.notify)),this._envelope.dsn.orcpt&&e.push("ORCPT="+u.encodeXText(this._envelope.dsn.orcpt))),e.length?" "+e.join(" "):""}_createSendStream(e){const t=new a;if(this.options.lmtp?this._envelope.accepted.forEach((t,i)=>{const n=i===this._envelope.accepted.length-1;this._responseActions.push(i=>{this._actionLMTPStream(t,n,i,e)})}):this._responseActions.push(t=>{this._actionSMTPStream(t,e)}),this._currentDataStream=t,t.pipe(this._socket,{end:!1}),this.options.debug){const e=new l;e.on("readable",()=>{let t;for(;t=e.read();)this.logger.debug({tnx:"message"},t.toString("binary").replace(/\r?\n$/,""))}),t.pipe(e)}return t.once("end",()=>{this._currentDataStream===t&&(this._currentDataStream=!1),this.logger.info({tnx:"message",inByteCount:t.inByteCount,outByteCount:t.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",t.outByteCount,t.inByteCount)}),t}_actionGreeting(e){clearTimeout(this._greetingTimeout),"220"===e.substr(0,3)?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this._onError(new Error("Invalid greeting. response="+e),"EPROTOCOL",e,"CONN")}_actionLHLO(e){"2"===e.charAt(0)?this._actionEHLO(e):this._onError(new Error("Invalid LHLO. response="+e),"EPROTOCOL",e,"LHLO")}_actionEHLO(e){let t;if("421"!==e.substr(0,3)){if("2"!==e.charAt(0))return this.options.requireTLS?void this._onError(new Error("EHLO failed but HELO does not support required STARTTLS. response="+e),"ECONNECTION",e,"EHLO"):(this._responseActions.push(this._actionHELO),void this._sendCommand("HELO "+this.name));if(this._ehloLines=e.split(/\r?\n/).map(e=>e.replace(/^\d+[ -]/,"").trim()).filter(e=>e).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(e)||this.options.requireTLS))return this._sendCommand("STARTTLS"),void this._responseActions.push(this._actionSTARTTLS);/[ -]SMTPUTF8\b/im.test(e)&&this._supportedExtensions.push("SMTPUTF8"),/[ -]DSN\b/im.test(e)&&this._supportedExtensions.push("DSN"),/[ -]8BITMIME\b/im.test(e)&&this._supportedExtensions.push("8BITMIME"),/[ -]REQUIRETLS\b/im.test(e)&&this._supportedExtensions.push("REQUIRETLS"),/[ -]PIPELINING\b/im.test(e)&&this._supportedExtensions.push("PIPELINING"),/[ -]AUTH\b/i.test(e)&&(this.allowsAuth=!0),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(e)&&this._supportedAuth.push("PLAIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(e)&&this._supportedAuth.push("LOGIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(e)&&this._supportedAuth.push("CRAM-MD5"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(e)&&this._supportedAuth.push("XOAUTH2"),(t=e.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))&&(this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(t[1])||0),this.emit("connect")}else this._onError(new Error("Server terminates connection. response="+e),"ECONNECTION",e,"EHLO")}_actionHELO(e){"2"===e.charAt(0)?(this.allowsAuth=!0,this.emit("connect")):this._onError(new Error("Invalid HELO. response="+e),"EPROTOCOL",e,"HELO")}_actionSTARTTLS(e){if("2"!==e.charAt(0))return this.options.opportunisticTLS?(this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect")):void this._onError(new Error("Error upgrading connection with STARTTLS"),"ETLS",e,"STARTTLS");this._upgradeConnection((e,t)=>{e?this._onError(new Error("Error initiating TLS - "+(e.message||e)),"ETLS",!1,"STARTTLS"):(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),t?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this.emit("connect"))})}_actionAUTH_LOGIN_USER(e,t){/^334[ -]/.test(e)?(this._responseActions.push(e=>{this._actionAUTH_LOGIN_PASS(e,t)}),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))):t(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",e,"AUTH LOGIN"))}_actionAUTH_CRAM_MD5(e,t){const i=e.match(/^334\s+(.+)$/);if(!i)return t(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",e,"AUTH CRAM-MD5"));const n=Buffer.from(i[1],"base64").toString("ascii"),s=r.createHmac("md5",this._auth.credentials.pass);s.update(n);const o=this._auth.credentials.user+" "+s.digest("hex");this._responseActions.push(e=>{this._actionAUTH_CRAM_MD5_PASS(e,t)}),this._sendCommand(Buffer.from(o).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(e,t){if(!e.match(/^235\s+/))return t(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",e,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,t(null,!0)}_actionAUTH_LOGIN_PASS(e,t){if(!/^334[ -]/.test(e))return t(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",e,"AUTH LOGIN"));this._responseActions.push(e=>{this._actionAUTHComplete(e,t)}),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(e,t,i){return i||"function"!=typeof t||(i=t,t=!1),"334"===e.substr(0,3)?(this._responseActions.push(e=>{t||"XOAUTH2"!==this._authMethod?this._actionAUTHComplete(e,!0,i):setImmediate(()=>this._handleXOauth2Token(!0,i))}),void this._sendCommand("")):"2"!==e.charAt(0)?(this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),i(this._formatError("Invalid login","EAUTH",e,"AUTH "+this._authMethod))):(this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,void i(null,!0))}_actionMAIL(e,t){if(2!==Number(e.charAt(0))){const i=this._usingSmtpUtf8&&/^550 /.test(e)&&/[\x80-\uFFFF]/.test(this._envelope.from)?"Internationalized mailbox name not allowed":"Mail command failed";return t(this._formatError(i,"EENVELOPE",e,"MAIL FROM"))}if(!this._envelope.rcptQueue.length)return t(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));this._recipientQueue=[];const i=this._supportedExtensions.includes("PIPELINING");do{const e=this._envelope.rcptQueue.shift();this._recipientQueue.push(e),this._responseActions.push(e=>{this._actionRCPT(e,t)}),this._sendCommand("RCPT TO:<"+e+">"+this._getDsnRcptToArgs())}while(i&&this._envelope.rcptQueue.length)}_actionRCPT(e,t){let i;const n=this._recipientQueue.shift();if(2!==Number(e.charAt(0))){const t=this._usingSmtpUtf8&&/^553 /.test(e)&&/[\x80-\uFFFF]/.test(n)?"Internationalized mailbox name not allowed":"Recipient command failed";this._envelope.rejected.push(n),i=this._formatError(t,"EENVELOPE",e,"RCPT TO"),i.recipient=n,this._envelope.rejectedErrors.push(i)}else this._envelope.accepted.push(n);if(this._envelope.rcptQueue.length||this._recipientQueue.length){if(this._envelope.rcptQueue.length){const e=this._envelope.rcptQueue.shift();this._recipientQueue.push(e),this._responseActions.push(e=>{this._actionRCPT(e,t)}),this._sendCommand("RCPT TO:<"+e+">"+this._getDsnRcptToArgs())}}else{if(!(this._envelope.rejected.length<this._envelope.to.length))return i=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",e,"RCPT TO"),i.rejected=this._envelope.rejected,i.rejectedErrors=this._envelope.rejectedErrors,t(i);this._responseActions.push(e=>{this._actionDATA(e,t)}),this._sendCommand("DATA")}}_actionDATA(e,t){if(!/^[23]/.test(e))return t(this._formatError("Data command failed","EENVELOPE",e,"DATA"));const i={accepted:this._envelope.accepted,rejected:this._envelope.rejected};this._ehloLines&&this._ehloLines.length&&(i.ehlo=this._ehloLines),this._envelope.rejectedErrors.length&&(i.rejectedErrors=this._envelope.rejectedErrors),t(null,i)}_actionSMTPStream(e,t){return 2!==Number(e.charAt(0))?t(this._formatError("Message failed","EMESSAGE",e,"DATA")):t(null,e)}_actionLMTPStream(e,t,i,n){let s;if(2!==Number(i.charAt(0))){s=this._formatError("Message failed for recipient "+e,"EMESSAGE",i,"DATA"),s.recipient=e,this._envelope.rejected.push(e),this._envelope.rejectedErrors.push(s);for(let t=0,i=this._envelope.accepted.length;t<i;t++)this._envelope.accepted[t]===e&&this._envelope.accepted.splice(t,1)}if(t)return n(null,i)}_handleXOauth2Token(e,t){this._auth.oauth2.getToken(e,(i,n)=>{if(i)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),t(this._formatError(i,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push(i=>{this._actionAUTHComplete(i,e,t)}),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(n),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))})}_isDestroyedMessage(e){if(this._destroyed)return"Cannot "+e+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+e+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+e+" - smtp connection socket is already half-closed."}}_getHostname(){let e;try{e=s.hostname()||""}catch(t){e="localhost"}return(!e||e.indexOf(".")<0)&&(e="[127.0.0.1]"),e.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)&&(e="["+e+"]"),e}},Sl}function Hl(){if(kl)return Nl;kl=1;const{Stream:e}=o,t=cl(),i=f,n=ll(),s=al();return Nl=class extends e{constructor(e,t){if(super(),this.options=e||{},e&&e.serviceClient){if(!e.privateKey||!e.user){const e=new Error('Options "privateKey" and "user" are required for service account!');return e.code=s.EOAUTH2,void setImmediate(()=>this.emit("error",e))}const t=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=t||300}if(this.logger=n.getLogger({logger:t},{component:this.options.component||"OAuth2"}),this.provisionCallback="function"==typeof this.options.provisionCallback&&this.options.provisionCallback,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{const e=Math.max(Number(this.options.timeout)||0,0);this.expires=e&&Date.now()+1e3*e||0}this.renewing=!1,this.renewalQueue=[]}getToken(e,t){if(!e&&this.accessToken&&(!this.expires||this.expires>Date.now()))return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token for %s",this.options.user),t(null,this.accessToken);if(!this.provisionCallback&&!this.options.refreshToken&&!this.options.serviceClient){if(this.accessToken)return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token (no refresh capability) for %s",this.options.user),t(null,this.accessToken);this.logger.error({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Cannot renew access token for %s: No refresh mechanism available",this.options.user);const e=new Error("Can't create new access token for user");return e.code=s.EOAUTH2,t(e)}if(this.renewing)return this.renewalQueue.push({renew:e,callback:t});this.renewing=!0;const i=(e,i)=>{this.renewalQueue.forEach(t=>t.callback(e,i)),this.renewalQueue=[],this.renewing=!1,e?this.logger.error({err:e,tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user):this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user),t(e,i)};this.provisionCallback?this.provisionCallback(this.options.user,!!e,(e,t,n)=>{!e&&t&&(this.accessToken=t,this.expires=n||0),i(e,t)}):this.generateToken(i)}updateToken(e,t){this.accessToken=e,t=Math.max(Number(t)||0,0),this.expires=t&&Date.now()+1e3*t||0,this.emit("token",{user:this.options.user,accessToken:e||"",expires:this.expires})}generateToken(e){let t,i;if(this.options.serviceClient){const n=Math.floor(Date.now()/1e3),o={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:n,exp:n+this.options.serviceRequestTimeout};let r;try{r=this.jwtSignRS256(o)}catch(t){const i=new Error("Can't generate token. Check your auth options");return i.code=s.EOAUTH2,e(i)}t={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:r},i={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:o}}else{if(!this.options.refreshToken){const t=new Error("Can't create new access token for user");return t.code=s.EOAUTH2,e(t)}t={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},i={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.assign(t,this.options.customParams),Object.assign(i,this.options.customParams),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(i)),this.postRequest(this.options.accessUrl,t,this.options,(t,i)=>{let n;if(t)return e(t);try{n=JSON.parse(i.toString())}catch(t){return e(t)}if(!n||"object"!=typeof n){this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(i||"").toString());const t=new Error("Invalid authentication response");return t.code=s.EOAUTH2,e(t)}const o=Object.assign({},n);if(o.access_token&&(o.access_token=(o.access_token||"").toString().substr(0,6)+"..."),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(o)),n.error){let t=n.error;n.error_description&&(t+=": "+n.error_description),n.error_uri&&(t+=" ("+n.error_uri+")");const i=new Error(t);return i.code=s.EOAUTH2,e(i)}if(n.access_token)return this.updateToken(n.access_token,n.expires_in),e(null,this.accessToken);const r=new Error("No access token");return r.code=s.EOAUTH2,e(r)})}buildXOAuth2Token(e){const t=["user="+(this.options.user||""),"auth=Bearer "+(e||this.accessToken),"",""];return Buffer.from(t.join(""),"utf-8").toString("base64")}postRequest(e,i,n,s){let o=!1;const r=[];let a=0;const c={method:"post",headers:n.customHeaders,body:i,allowErrorResponse:!0};/^https:/i.test(e)&&(c.tls=Object.assign({rejectUnauthorized:!0},n.tls||{}));const l=t(e,c);l.on("readable",()=>{let e;for(;null!==(e=l.read());)r.push(e),a+=e.length}),l.once("error",e=>{if(!o)return o=!0,s(e)}),l.once("end",()=>{if(!o)return o=!0,s(null,Buffer.concat(r,a))})}toBase64URL(e){return"string"==typeof e&&(e=Buffer.from(e)),e.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(e){e=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(e)].map(e=>this.toBase64URL(e)).join(".");const t=i.createSign("RSA-SHA256").update(e).sign(this.options.privateKey);return e+"."+this.toBase64URL(t)}},Nl}var Kl,Pl,Ul,Bl,Wl,Vl,_l,Rl,Ql,Ol,Jl,ql,$l,eu,tu,iu={126:{description:"126 Mail (NetEase)",host:"smtp.126.com",port:465,secure:!0},163:{description:"163 Mail (NetEase)",host:"smtp.163.com",port:465,secure:!0},"1und1":{description:"1&1 Mail (German hosting provider)",host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},Aliyun:{description:"Alibaba Cloud Mail",domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AliyunQiye:{description:"Alibaba Cloud Enterprise Mail",host:"smtp.qiye.aliyun.com",port:465,secure:!0},AOL:{description:"AOL Mail",domains:["aol.com"],host:"smtp.aol.com",port:587},Aruba:{description:"Aruba PEC (Italian email provider)",domains:["aruba.it","pec.aruba.it"],aliases:["Aruba PEC"],host:"smtps.aruba.it",port:465,secure:!0,authMethod:"LOGIN"},Bluewin:{description:"Bluewin (Swiss email provider)",host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},BOL:{description:"BOL Mail (Brazilian provider)",domains:["bol.com.br"],host:"smtp.bol.com.br",port:587,requireTLS:!0},DebugMail:{description:"DebugMail (email testing service)",host:"debugmail.io",port:25},Disroot:{description:"Disroot (privacy-focused provider)",domains:["disroot.org"],host:"disroot.org",port:587,secure:!1,authMethod:"LOGIN"},DynectEmail:{description:"Dyn Email Delivery",aliases:["Dynect"],host:"smtp.dynect.net",port:25},ElasticEmail:{description:"Elastic Email",aliases:["Elastic Email"],host:"smtp.elasticemail.com",port:465,secure:!0},Ethereal:{description:"Ethereal Email (email testing service)",aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{description:"FastMail",domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Feishu Mail":{description:"Feishu Mail (Lark)",aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},"Forward Email":{description:"Forward Email (email forwarding service)",aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},GandiMail:{description:"Gandi Mail",aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{description:"Gmail",aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},GmailWorkspace:{description:"Gmail Workspace",aliases:["Google Workspace Mail"],host:"smtp-relay.gmail.com",port:465,secure:!0},GMX:{description:"GMX Mail",domains:["gmx.com","gmx.net","gmx.de"],host:"mail.gmx.com",port:587},Godaddy:{description:"GoDaddy Email (US)",host:"smtpout.secureserver.net",port:25},GodaddyAsia:{description:"GoDaddy Email (Asia)",host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{description:"GoDaddy Email (Europe)",host:"smtp.europe.secureserver.net",port:25},"hot.ee":{description:"Hot.ee (Estonian email provider)",host:"mail.hot.ee"},Hotmail:{description:"Outlook.com / Hotmail",aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{description:"iCloud Mail",aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{description:"Infomaniak Mail (Swiss hosting provider)",host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},KolabNow:{description:"KolabNow (secure email service)",domains:["kolabnow.com"],aliases:["Kolab"],host:"smtp.kolabnow.com",port:465,secure:!0,authMethod:"LOGIN"},Loopia:{description:"Loopia (Swedish hosting provider)",host:"mailcluster.loopia.se",port:465},Loops:{description:"Loops",host:"smtp.loops.so",port:587},"mail.ee":{description:"Mail.ee (Estonian email provider)",host:"smtp.mail.ee"},"Mail.ru":{description:"Mail.ru",host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{description:"Mailcatch (email testing service)",host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{description:"MailDev (local email testing)",port:1025,ignoreTLS:!0},MailerSend:{description:"MailerSend",host:"smtp.mailersend.net",port:587},Mailgun:{description:"Mailgun",host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{description:"Mailjet",host:"in.mailjet.com",port:587},Mailosaur:{description:"Mailosaur (email testing service)",host:"mailosaur.io",port:25},Mailtrap:{description:"Mailtrap",host:"live.smtp.mailtrap.io",port:587},Mandrill:{description:"Mandrill (by Mailchimp)",host:"smtp.mandrillapp.com",port:587},Naver:{description:"Naver Mail (Korean email provider)",host:"smtp.naver.com",port:587},OhMySMTP:{description:"OhMySMTP (email delivery service)",host:"smtp.ohmysmtp.com",port:587,secure:!1},One:{description:"One.com Email",host:"send.one.com",port:465,secure:!0},OpenMailBox:{description:"OpenMailBox",aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{description:"Microsoft 365 / Office 365",host:"smtp.office365.com",port:587,secure:!1},Postmark:{description:"Postmark",aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},Proton:{description:"Proton Mail",aliases:["ProtonMail","Proton.me","Protonmail.com","Protonmail.ch"],domains:["proton.me","protonmail.com","pm.me","protonmail.ch"],host:"smtp.protonmail.ch",port:587,requireTLS:!0},"qiye.aliyun":{description:"Alibaba Mail Enterprise Edition",host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{description:"QQ Mail",domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{description:"QQ Enterprise Mail",aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},Resend:{description:"Resend",host:"smtp.resend.com",port:465,secure:!0},Runbox:{description:"Runbox (Norwegian email provider)",domains:["runbox.com"],host:"smtp.runbox.com",port:465,secure:!0},SendCloud:{description:"SendCloud (Chinese email delivery)",host:"smtp.sendcloud.net",port:2525},SendGrid:{description:"SendGrid",host:"smtp.sendgrid.net",port:587},SendinBlue:{description:"Brevo (formerly Sendinblue)",aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{description:"SendPulse",host:"smtp-pulse.com",port:465,secure:!0},SES:{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{description:"AWS SES Asia Pacific (Tokyo)",host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{description:"AWS SES Asia Pacific (Seoul)",host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{description:"AWS SES Asia Pacific (Osaka)",host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{description:"AWS SES Asia Pacific (Mumbai)",host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{description:"AWS SES Asia Pacific (Singapore)",host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{description:"AWS SES Asia Pacific (Sydney)",host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},"SES-CA-CENTRAL-1":{description:"AWS SES Canada (Central)",host:"email-smtp.ca-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-CENTRAL-1":{description:"AWS SES Europe (Frankfurt)",host:"email-smtp.eu-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-NORTH-1":{description:"AWS SES Europe (Stockholm)",host:"email-smtp.eu-north-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{description:"AWS SES Europe (Ireland)",host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-2":{description:"AWS SES Europe (London)",host:"email-smtp.eu-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-3":{description:"AWS SES Europe (Paris)",host:"email-smtp.eu-west-3.amazonaws.com",port:465,secure:!0},"SES-SA-EAST-1":{description:"AWS SES South America (São Paulo)",host:"email-smtp.sa-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-2":{description:"AWS SES US East (Ohio)",host:"email-smtp.us-east-2.amazonaws.com",port:465,secure:!0},"SES-US-GOV-EAST-1":{description:"AWS SES GovCloud (US-East)",host:"email-smtp.us-gov-east-1.amazonaws.com",port:465,secure:!0},"SES-US-GOV-WEST-1":{description:"AWS SES GovCloud (US-West)",host:"email-smtp.us-gov-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-1":{description:"AWS SES US West (N. California)",host:"email-smtp.us-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{description:"AWS SES US West (Oregon)",host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},Seznam:{description:"Seznam Email (Czech email provider)",aliases:["Seznam Email"],domains:["seznam.cz","email.cz","post.cz","spoluzaci.cz"],host:"smtp.seznam.cz",port:465,secure:!0},SMTP2GO:{description:"SMTP2GO",host:"mail.smtp2go.com",port:2525},Sparkpost:{description:"SparkPost",aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{description:"Tipimail (email delivery service)",host:"smtp.tipimail.com",port:587},Tutanota:{description:"Tutanota (Tuta Mail)",domains:["tutanota.com","tuta.com","tutanota.de","tuta.io"],host:"smtp.tutanota.com",port:465,secure:!0},Yahoo:{description:"Yahoo Mail",domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{description:"Yandex Mail",domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zimbra:{description:"Zimbra Mail Server",aliases:["Zimbra Collaboration"],host:"smtp.zimbra.com",port:587,requireTLS:!0},Zoho:{description:"Zoho Mail",host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"}};function nu(){if(Pl)return Kl;Pl=1;const e=iu,t={};function i(e){return e.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}return Object.keys(e).forEach(n=>{const s=e[n],o=function(e){const t={};return Object.keys(e).forEach(i=>{["domains","aliases"].includes(i)||(t[i]=e[i])}),t}(s);t[i(n)]=o,[].concat(s.aliases||[]).forEach(e=>{t[i(e)]=o}),[].concat(s.domains||[]).forEach(e=>{t[i(e)]=o})}),Kl=function(e){return e=i(e.split("@").pop()),t[e]||!1}}function su(){if(Bl)return Ul;Bl=1;const e=c,t=function(){if(Zl)return jl;Zl=1;const e=Gl(),t=ll().assign,i=Hl(),n=al(),s=c;return jl=class extends s{constructor(e){if(super(),this.pool=e,this.options=e.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{const e=new i(this.options.auth,this.logger);e.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||e.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:e,method:"XOAUTH2"},e.on("token",e=>this.pool.mailer.emit("token",e)),e.on("error",e=>this.emit("error",e));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(i){this.pool.getSocket(this.options,(s,o)=>{if(s)return i(s);let r=!1,a=this.options;o&&o.connection&&(this.logger.info({tnx:"proxy",remoteAddress:o.connection.remoteAddress,remotePort:o.connection.remotePort,destHost:a.host||"",destPort:a.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",o.connection.remoteAddress,o.connection.remotePort,a.host||"",a.port||""),a=Object.assign(t(!1,a),o)),this.connection=new e(a),this.connection.once("error",e=>{if(this.emit("error",e),!r)return r=!0,i(e)}),this.connection.once("end",()=>{if(this.close(),r)return;r=!0;const e=setTimeout(()=>{if(r)return;const e=new Error("Unexpected socket close");this.connection&&this.connection._socket&&this.connection._socket.upgrading&&(e.code=n.ETLS),i(e)},1e3);try{e.unref()}catch(e){}}),this.connection.connect(()=>{if(!r)return this.auth&&(this.connection.allowsAuth||a.forceAuth)?void this.connection.login(this.auth,e=>{if(!r){if(r=!0,e)return this.connection.close(),this.emit("error",e),i(e);this._connected=!0,i(null,!0)}}):(r=!0,this._connected=!0,i(null,!0))})})}send(e,t){if(!this._connected)return this.connect(i=>i?t(i):this.send(e,t));const i=e.message.getEnvelope(),s=e.message.messageId(),o=[].concat(i.to||[]);o.length>3&&o.push("...and "+o.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:s,cid:this.id},"Sending message %s using #%s to <%s>",s,this.id,o.join(", ")),e.data.dsn&&(i.dsn=e.data.dsn),e.data.requireTLSExtensionEnabled&&(i.requireTLSExtensionEnabled=e.data.requireTLSExtensionEnabled),this.connection.send(i,e.message.createReadStream(),(e,o)=>{if(this.messages++,e)return this.connection.close(),this.emit("error",e),t(e);o.envelope={from:i.from,to:i.to},o.messageId=s,setImmediate(()=>{if(this.messages>=this.options.maxMessages){const e=new Error("Resource exhausted");e.code=n.EMAXLIMIT,this.connection.close(),this.emit("error",e)}else this.pool._checkRateLimit(()=>{this.available=!0,this.emit("available")})}),t(null,o)})}close(){this._connected=!1,this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.connection&&this.connection.close(),this.emit("close")}}}(),i=Gl(),n=nu(),s=ll(),o=al(),r=ol;return Ul=class extends e{constructor(e){let t;super(),"string"==typeof(e=e||{})&&(e={url:e});let i=e.service;"function"==typeof e.getSocket&&(this.getSocket=e.getSocket),e.url&&(t=s.parseConnectionUrl(e.url),i=i||t.service),this.options=s.assign(!1,e,t,i&&n(i)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=s.getLogger(this.options,{component:this.options.component||"smtp-pool"}),this.name="SMTP (pool)",this.version=r.version+"[client:"+r.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1e3,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate(()=>{this.idling&&this.emit("idle")})}getSocket(e,t){return setImmediate(()=>t(null,!1))}send(e,t){return!this._closed&&(this._queue.push({mail:e,requeueAttempts:0,callback:t}),this.idling&&this._queue.length>=this.options.maxConnections&&(this.idling=!1),setImmediate(()=>this._processMessages()),!0)}close(){let e;const t=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!t&&!this._queue.length)return;for(let i=t-1;i>=0;i--)this._connections[i]&&this._connections[i].available&&(e=this._connections[i],e.close(),this.logger.info({tnx:"connection",cid:e.id,action:"removed"},"Connection #%s removed",e.id));if(t&&!this._connections.length&&this.logger.debug({tnx:"connection"},"All connections removed"),!this._queue.length)return;const i=()=>{if(!this._queue.length)return void this.logger.debug({tnx:"connection"},"Pending queue entries cleared");const t=this._queue.shift();if(t&&"function"==typeof t.callback)try{t.callback(new Error("Connection pool was closed"))}catch(t){this.logger.error({err:t,tnx:"callback",cid:e.id},"Callback error for #%s: %s",e.id,t.message)}setImmediate(i)};setImmediate(i)}_processMessages(){if(this._closed)return;if(!this._queue.length)return void(this.idling||(this.idling=!0,this.emit("idle")));let e=this._connections.find(e=>e.available);if(!e&&this._connections.length<this.options.maxConnections&&(e=this._createConnection()),!e)return void(this.idling=!1);!this.idling&&this._queue.length<this.options.maxConnections&&(this.idling=!0,this.emit("idle"));const t=e.queueEntry=this._queue.shift();t.messageId=(e.queueEntry.mail.message.getHeader("message-id")||"").replace(/[<>\s]/g,""),e.available=!1,this.logger.debug({tnx:"pool",cid:e.id,messageId:t.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",t.messageId,e.id,e.messages+1),this._rateLimit.limit&&(this._rateLimit.counter++,this._rateLimit.checkpoint||(this._rateLimit.checkpoint=Date.now())),e.send(t.mail,(i,n)=>{if(t===e.queueEntry){try{t.callback(i,n)}catch(t){this.logger.error({err:t,tnx:"callback",cid:e.id},"Callback error for #%s: %s",e.id,t.message)}e.queueEntry=!1}})}_createConnection(){const e=new t(this);return e.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:e.id,action:"conection"},"Created new pool resource #%s",e.id),e.on("available",()=>{this.logger.debug({tnx:"connection",cid:e.id,action:"available"},"Connection #%s became available",e.id),this._closed?this.close():this._processMessages()}),e.once("error",t=>{if(t.code!==o.EMAXLIMIT?this.logger.warn({err:t,tnx:"pool",cid:e.id},"Pool Error for #%s: %s",e.id,t.message):this.logger.debug({tnx:"pool",cid:e.id,action:"maxlimit"},"Max messages limit exchausted for #%s",e.id),e.queueEntry){try{e.queueEntry.callback(t)}catch(t){this.logger.error({err:t,tnx:"callback",cid:e.id},"Callback error for #%s: %s",e.id,t.message)}e.queueEntry=!1}this._removeConnection(e),this._continueProcessing()}),e.once("close",()=>{this.logger.info({tnx:"connection",cid:e.id,action:"closed"},"Connection #%s was closed",e.id),this._removeConnection(e),e.queueEntry?setTimeout(()=>{e.queueEntry&&(this._shouldRequeuOnConnectionClose(e.queueEntry)?this._requeueEntryOnConnectionClose(e):this._failDeliveryOnConnectionClose(e)),this._continueProcessing()},50):(this._closed||!this.idling||this._connections.length||this.emit("clear"),this._continueProcessing())}),this._connections.push(e),e}_shouldRequeuOnConnectionClose(e){return void 0===this.options.maxRequeues||this.options.maxRequeues<0||e.requeueAttempts<this.options.maxRequeues}_failDeliveryOnConnectionClose(e){if(e.queueEntry&&e.queueEntry.callback){try{e.queueEntry.callback(new Error("Reached maximum number of retries after connection was closed"))}catch(t){this.logger.error({err:t,tnx:"callback",messageId:e.queueEntry.messageId,cid:e.id},"Callback error for #%s: %s",e.id,t.message)}e.queueEntry=!1}}_requeueEntryOnConnectionClose(e){e.queueEntry.requeueAttempts+=1,this.logger.debug({tnx:"pool",cid:e.id,messageId:e.queueEntry.messageId,action:"requeue"},"Re-queued message <%s> for #%s. Attempt: #%s",e.queueEntry.messageId,e.id,e.queueEntry.requeueAttempts),this._queue.unshift(e.queueEntry),e.queueEntry=!1}_continueProcessing(){this._closed?this.close():setTimeout(()=>this._processMessages(),100)}_removeConnection(e){const t=this._connections.indexOf(e);-1!==t&&this._connections.splice(t,1)}_checkRateLimit(e){if(!this._rateLimit.limit)return e();const t=Date.now();return this._rateLimit.counter<this._rateLimit.limit?e():(this._rateLimit.waiting.push(e),this._rateLimit.checkpoint<=t-this._rateLimit.delta?this._clearRateLimit():void(this._rateLimit.timeout||(this._rateLimit.timeout=setTimeout(()=>this._clearRateLimit(),this._rateLimit.delta-(t-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=t)))}_clearRateLimit(){for(clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;this._rateLimit.waiting.length;){const e=this._rateLimit.waiting.shift();setImmediate(e)}}isIdle(){return this.idling}verify(e){let n;e||(n=new Promise((t,i)=>{e=s.callbackPromise(t,i)}));const r=new t(this).auth;return this.getSocket(this.options,(t,n)=>{if(t)return e(t);let a=this.options;n&&n.connection&&(this.logger.info({tnx:"proxy",remoteAddress:n.connection.remoteAddress,remotePort:n.connection.remotePort,destHost:a.host||"",destPort:a.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",n.connection.remoteAddress,n.connection.remotePort,a.host||"",a.port||""),a=Object.assign(s.assign(!1,a),n));const c=new i(a);let l=!1;c.once("error",t=>{if(!l)return l=!0,c.close(),e(t)}),c.once("end",()=>{if(!l)return l=!0,e(new Error("Connection closed"))});const u=()=>{if(!l)return l=!0,c.quit(),e(null,!0)};c.connect(()=>{if(!l)if(r&&(c.allowsAuth||a.forceAuth))c.login(r,t=>{if(!l)return t?(l=!0,c.close(),e(t)):void u()});else{if(!r&&c.allowsAuth&&a.forceAuth){const t=new Error("Authentication info was not provided");return t.code=o.ENOAUTH,l=!0,c.close(),e(t)}u()}})}),n}},Ul}function ou(){if(eu)return $l;eu=1;const e=c,t=ol,i=ll(),n=al(),s=gl(),o=wl();function r(e){return e&&"object"==typeof e&&!e.code&&(e.code=n.ESES),e}return $l=class extends e{constructor(e){super(),e=e||{},this.options=e,this.ses=this.options.SES,this.name="SESTransport",this.version=t.version,this.logger=i.getLogger(this.options,{component:this.options.component||"ses-transport"})}getRegion(e){return this.ses.sesClient.config&&"function"==typeof this.ses.sesClient.config.region?this.ses.sesClient.config.region().then(t=>e(null,t),t=>e(t)):e(null,!1)}send(e,t){let i=e.message._headers.find(e=>/^from$/i.test(e.key));if(i){const e=new o("text/plain");i=e._convertAddresses(e._parseAddresses(i.value))}const n=e.data.envelope||e.message.getEnvelope(),a=e.message.messageId(),c=[].concat(n.to||[]);c.length>3&&c.push("...and "+c.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:a},"Sending message %s to <%s>",a,c.join(", "));setImmediate(()=>(t=>{e.data._dkim||(e.data._dkim={}),e.data._dkim.skipFields&&"string"==typeof e.data._dkim.skipFields?e.data._dkim.skipFields+=":date:message-id":e.data._dkim.skipFields="date:message-id";const i=e.message.createReadStream(),n=i.pipe(new s),o=[];let r=0;n.on("readable",()=>{let e;for(;null!==(e=n.read());)o.push(e),r+=e.length}),i.once("error",e=>n.emit("error",e)),n.once("error",e=>t(e)),n.once("end",()=>t(null,Buffer.concat(o,r)))})((s,o)=>{if(s)return this.logger.error({err:s,tnx:"send",messageId:a},"Failed creating message for %s. %s",a,s.message),t(s);const c=Object.assign({Content:{Raw:{Data:o}},FromEmailAddress:i||n.from,Destination:{ToAddresses:n.to}},e.data.ses||{});this.getRegion((e,i)=>{let s;!e&&i||(i="us-east-1");try{const e=new this.ses.SendEmailCommand(c);s=this.ses.sesClient.send(e)}catch(e){return r(e),this.logger.error({err:e,tnx:"send"},"Send error for %s: %s",a,e.message),void setImmediate(()=>t(e))}s.then(e=>{"us-east-1"===i&&(i="email");const s={envelope:{from:n.from,to:n.to},messageId:"<"+e.MessageId+(/@/.test(e.MessageId)?"":"@"+i+".amazonses.com")+">",response:e.MessageId,raw:o};setImmediate(()=>t(null,s))}).catch(e=>{r(e),this.logger.error({err:e,tnx:"send"},"Send error for %s: %s",a,e.message),setImmediate(()=>t(e))})})}))}verify(e){let t;e||(t=new Promise((t,n)=>{e=i.callbackPromise(t,n)}));const n=t=>t&&!["InvalidParameterValue","MessageRejected"].includes(t.code||t.Code||t.name)?e(r(t)):e(null,!0),s={Content:{Raw:{Data:Buffer.from("From: <invalid@invalid>\r\nTo: <invalid@invalid>\r\n Subject: Invalid\r\n\r\nInvalid")}},FromEmailAddress:"invalid@invalid",Destination:{ToAddresses:["invalid@invalid"]}};return this.getRegion(()=>{let e;try{const t=new this.ses.SendEmailCommand(s);e=this.ses.sesClient.send(t)}catch(e){return void setImmediate(()=>n(e))}e.then(()=>setImmediate(()=>n(null))).catch(e=>setImmediate(()=>n(e)))}),t}},$l}function ru(){if(tu)return Ic;tu=1;const e=Fl(),t=ll(),i=su(),n=function(){if(Vl)return Wl;Vl=1;const e=c,t=Gl(),i=nu(),n=ll(),s=Hl(),o=al(),r=ol;return Wl=class extends e{constructor(e){let t;super(),"string"==typeof(e=e||{})&&(e={url:e});let s=e.service;"function"==typeof e.getSocket&&(this.getSocket=e.getSocket),e.url&&(t=n.parseConnectionUrl(e.url),s=s||t.service),this.options=n.assign(!1,e,t,s&&i(s)),this.logger=n.getLogger(this.options,{component:this.options.component||"smtp-transport"}),this.name="SMTP",this.version=r.version+"[client:"+r.version+"]",this.options.auth&&(this.auth=this.getAuth({}))}getSocket(e,t){return setImmediate(()=>t(null,!1))}getAuth(e){if(!e)return this.auth&&this.auth.oauth2&&this.mailer&&(this.auth.oauth2.provisionCallback=this.mailer.get("oauth2_provision_cb")||this.auth.oauth2.provisionCallback),this.auth;const t=Object.assign({},this.options.auth&&"object"==typeof this.options.auth?this.options.auth:{},"object"==typeof e?e:{});if(0===Object.keys(t).length)return!1;if("OAUTH2"===(t.type||"").toString().toUpperCase()){if(!t.service&&!t.user)return!1;const e=new s(t,this.logger);return e.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||e.provisionCallback,e.on("token",e=>this.mailer.emit("token",e)),e.on("error",e=>this.emit("error",e)),{type:"OAUTH2",user:t.user,oauth2:e,method:"XOAUTH2"}}return{type:(t.type||"").toString().toUpperCase()||"LOGIN",user:t.user,credentials:{user:t.user||"",pass:t.pass,options:t.options},method:(t.method||"").trim().toUpperCase()||this.options.authMethod||!1}}send(e,i){this.getSocket(this.options,(s,r)=>{if(s)return i(s);let a=!1,c=this.options;r&&r.connection&&(this.logger.info({tnx:"proxy",remoteAddress:r.connection.remoteAddress,remotePort:r.connection.remotePort,destHost:c.host||"",destPort:c.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",r.connection.remoteAddress,r.connection.remotePort,c.host||"",c.port||""),c=Object.assign(n.assign(!1,c),r));const l=new t(c);let u;const p=()=>{u&&u!==this.auth&&u.oauth2&&u.oauth2.removeAllListeners(),u=null};l.once("error",e=>{if(!a)return a=!0,p(),l.close(),i(e)}),l.once("end",()=>{if(a)return;const e=setTimeout(()=>{if(a)return;a=!0,p();const e=new Error("Unexpected socket close");l&&l._socket&&l._socket.upgrading&&(e.code=o.ETLS),i(e)},1e3);try{e.unref()}catch(e){}});const d=()=>{const t=e.message.getEnvelope(),n=e.message.messageId(),s=[].concat(t.to||[]);s.length>3&&s.push("...and "+s.splice(2).length+" more"),e.data.dsn&&(t.dsn=e.data.dsn),e.data.requireTLSExtensionEnabled&&(t.requireTLSExtensionEnabled=e.data.requireTLSExtensionEnabled),this.logger.info({tnx:"send",messageId:n},"Sending message %s to <%s>",n,s.join(", ")),l.send(t,e.message.createReadStream(),(e,s)=>{if(a=!0,p(),l.close(),e)return this.logger.error({err:e,tnx:"send"},"Send error for %s: %s",n,e.message),i(e);s.envelope={from:t.from,to:t.to},s.messageId=n;try{return i(null,s)}catch(e){this.logger.error({err:e,tnx:"callback"},"Callback error for %s: %s",n,e.message)}})};l.connect(()=>{a||(u=this.getAuth(e.data.auth),u&&(l.allowsAuth||c.forceAuth)?l.login(u,e=>{if(p(),!a)return e?(a=!0,l.close(),i(e)):void d()}):d())})})}verify(e){let i;return e||(i=new Promise((t,i)=>{e=n.callbackPromise(t,i)})),this.getSocket(this.options,(i,s)=>{if(i)return e(i);let r=this.options;s&&s.connection&&(this.logger.info({tnx:"proxy",remoteAddress:s.connection.remoteAddress,remotePort:s.connection.remotePort,destHost:r.host||"",destPort:r.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",s.connection.remoteAddress,s.connection.remotePort,r.host||"",r.port||""),r=Object.assign(n.assign(!1,r),s));const a=new t(r);let c,l=!1;const u=()=>{c&&c!==this.auth&&c.oauth2&&c.oauth2.removeAllListeners(),c=null};a.once("error",t=>{if(!l)return l=!0,u(),a.close(),e(t)}),a.once("end",()=>{if(!l)return l=!0,u(),e(new Error("Connection closed"))});const p=()=>{if(!l)return l=!0,u(),a.quit(),e(null,!0)};a.connect(()=>{if(!l)if(c=this.getAuth({}),c&&(a.allowsAuth||r.forceAuth))a.login(c,t=>{if(u(),!l)return t?(l=!0,a.close(),e(t)):void p()});else{if(!c&&a.allowsAuth&&r.forceAuth){const t=new Error("Authentication info was not provided");return t.code=o.ENOAUTH,l=!0,u(),a.close(),e(t)}p()}})}),i}close(){this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.emit("close")}}}(),s=function(){if(Rl)return _l;Rl=1;const{spawn:e}=y,t=ol,i=ll(),n=al(),s=gl(),o=fl();return _l=class{constructor(n){n=n||{},this._spawn=e,this.options=n,this.name="Sendmail",this.version=t.version,this.path="sendmail",this.args=!1,this.logger=i.getLogger(this.options,{component:this.options.component||"sendmail"}),"string"==typeof n?this.path=n:"object"==typeof n&&(n.path&&(this.path=n.path),Array.isArray(n.args)&&(this.args=n.args)),this.winbreak=["win","windows","dos","\r\n"].includes((n.newline||"").toString().toLowerCase())}send(e,t){e.message.keepBcc=!0;const i=e.data.envelope||e.message.getEnvelope(),r=e.message.messageId();let a;if([].concat(i.from||[]).concat(i.to||[]).some(e=>/^-/.test(e))){const e=new Error("Can not send mail. Invalid envelope addresses.");return e.code=n.ESENDMAIL,t(e)}const c=this.args?["-i"].concat(this.args).concat(i.to):["-i"].concat(i.from?["-f",i.from]:[]).concat(i.to),l=e=>{if(!a)return a=!0,"function"==typeof t?e?t(e):t(null,{envelope:i,messageId:r,response:"Messages queued for delivery"}):void 0};let u;try{u=this._spawn(this.path,c)}catch(e){return this.logger.error({err:e,tnx:"spawn",messageId:r},"Error occurred while spawning sendmail. %s",e.message),l(e)}if(!u){const e=new Error("sendmail was not found");return e.code=n.ESENDMAIL,l(e)}{u.on("error",e=>{this.logger.error({err:e,tnx:"spawn",messageId:r},"Error occurred when sending message %s. %s",r,e.message),l(e)}),u.once("exit",e=>{if(!e)return l();const t=new Error(127===e?"Sendmail command not found, process exited with code "+e:"Sendmail exited with code "+e);t.code=n.ESENDMAIL,this.logger.error({err:t,tnx:"stdin",messageId:r},"Error sending message %s to sendmail. %s",r,t.message),l(t)}),u.once("close",l),u.stdin.on("error",e=>{this.logger.error({err:e,tnx:"stdin",messageId:r},"Error occurred when piping message %s to sendmail. %s",r,e.message),l(e)});const t=[].concat(i.to||[]);t.length>3&&t.push("...and "+t.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:r},"Sending message %s to <%s>",r,t.join(", "));const a=e.message.createReadStream();let c=a;this.options.newline&&(c=a.pipe(this.winbreak?new s:new o),a.once("error",e=>c.emit("error",e))),c.once("error",e=>{this.logger.error({err:e,tnx:"stdin",messageId:r},"Error occurred when generating message %s. %s",r,e.message),u.kill("SIGINT"),l(e)}),c.pipe(u.stdin)}}}}(),o=function(){if(Ol)return Ql;Ol=1;const e=ol,t=ll(),i=gl(),n=fl();return Ql=class{constructor(i){i=i||{},this.options=i,this.name="StreamTransport",this.version=e.version,this.logger=t.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos","\r\n"].includes((i.newline||"").toString().toLowerCase())}send(e,t){e.message.keepBcc=!0;const s=e.data.envelope||e.message.getEnvelope(),o=e.message.messageId(),r=[].concat(s.to||[]);r.length>3&&r.push("...and "+r.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:o},"Sending message %s to <%s> using %s line breaks",o,r.join(", "),this.winbreak?"<CR><LF>":"<LF>"),setImmediate(()=>{let r;try{if(r=e.message.createReadStream(),this.options.newline){const e=r;r=e.pipe(this.winbreak?new i:new n),e.once("error",e=>r.emit("error",e))}}catch(e){return this.logger.error({err:e,tnx:"send",messageId:o},"Creating send stream failed for %s. %s",o,e.message),t(e)}if(!this.options.buffer)return r.once("error",e=>{this.logger.error({err:e,tnx:"send",messageId:o},"Failed creating message for %s. %s",o,e.message)}),t(null,{envelope:s,messageId:o,message:r});const a=[];let c=0;r.on("readable",()=>{let e;for(;null!==(e=r.read());)a.push(e),c+=e.length}),r.once("error",e=>(this.logger.error({err:e,tnx:"send",messageId:o},"Failed creating message for %s. %s",o,e.message),t(e))),r.on("end",()=>t(null,{envelope:s,messageId:o,message:Buffer.concat(a,c)}))})}}}(),r=function(){if(ql)return Jl;ql=1;const e=ol,t=ll();return Jl=class{constructor(i){i=i||{},this.options=i,this.name="JSONTransport",this.version=e.version,this.logger=t.getLogger(this.options,{component:this.options.component||"json-transport"})}send(e,t){e.message.keepBcc=!0;const i=e.data.envelope||e.message.getEnvelope(),n=e.message.messageId(),s=[].concat(i.to||[]);s.length>3&&s.push("...and "+s.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:n},"Composing JSON structure of %s to <%s>",n,s.join(", ")),setImmediate(()=>{e.normalize((e,s)=>e?(this.logger.error({err:e,tnx:"send",messageId:n},"Failed building JSON structure for %s. %s",n,e.message),t(e)):(delete s.envelope,delete s.normalizedHeaders,t(null,{envelope:i,messageId:n,message:this.options.skipEncoding?s:JSON.stringify(s)})))})}}}(),a=ou(),l=al(),u=cl(),p=ol,d=(process.env.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),m=(process.env.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),h=(process.env.ETHEREAL_API_KEY||"").replace(/\s*/g,"")||null,g=["true","yes","y","1"].includes((process.env.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase());let f=!1;return Ic.createTransport=function(c,u){let p;if("object"==typeof c&&"function"!=typeof c.send||"string"==typeof c&&/^(smtps?|direct):/i.test(c)){const e="string"==typeof c?c:c.url;if(p=e?t.parseConnectionUrl(e):c,p.pool)c=new i(p);else if(p.sendmail)c=new s(p);else if(p.streamTransport)c=new o(p);else if(p.jsonTransport)c=new r(p);else if(p.SES){if(p.SES.ses&&p.SES.aws){const e=new Error("Using legacy SES configuration, expecting @aws-sdk/client-sesv2, see https://nodemailer.com/transports/ses/");throw e.code=l.ECONFIG,e}c=new a(p)}else c=new n(p)}return new e(c,p,u)},Ic.createTestAccount=function(e,i){let n;if(i||"function"!=typeof e||(i=e,e=!1),i||(n=new Promise((e,n)=>{i=t.callbackPromise(e,n)})),g&&f)return setImmediate(()=>i(null,f)),n;e=e||d;const s=[];let o=0;const r={},a={requestor:p.name,version:p.version};h&&(r.Authorization="Bearer "+h);const c={contentType:"application/json",method:"POST",headers:r,body:Buffer.from(JSON.stringify(a))};/^https:/i.test(e)&&(c.tls={rejectUnauthorized:!0});const l=u(e+"/user",c);return l.on("readable",()=>{let e;for(;null!==(e=l.read());)s.push(e),o+=e.length}),l.once("error",e=>i(e)),l.once("end",()=>{const e=Buffer.concat(s,o);let t;try{t=JSON.parse(e.toString())}catch(e){return i(e)}if("success"!==t.status||t.error)return i(new Error(t.error||"Request failed"));delete t.status,f=t,i(null,f)}),n},Ic.getTestMessageUrl=function(e){if(!e||!e.response)return!1;const t=new Map,i=e.response.toString();if(i.length>2&&"]"===i.charAt(i.length-1)){const e=i.indexOf("[",i.lastIndexOf("]",i.length-2)+1);if(e>=0&&e<i.length-2){i.substring(e+1,i.length-1).replace(/\b([A-Z0-9]+)=([^\s]+)/g,(e,i,n)=>{t.set(i,n)})}}return!(!t.has("STATUS")||!t.has("MSGID"))&&(f.web||m)+"/message/"+t.get("MSGID")},Ic}
|
|
7
7
|
/*!
|
|
8
|
-
* w-email v1.0.
|
|
8
|
+
* w-email v1.0.37
|
|
9
9
|
* (c) 2018-2021 yuda-lyu(semisphere)
|
|
10
10
|
* Released under the MIT License.
|
|
11
11
|
*/!function(e){e.exports=function(e){var t=Array.isArray,i="object"==typeof In&&In&&In.Object===Object&&In,n="object"==typeof self&&self&&self.Object===Object&&self,s=i||n||Function("return this")(),o=s.Symbol,r=Object.prototype,a=r.hasOwnProperty,c=r.toString,l=o?o.toStringTag:void 0,u=Object.prototype.toString,p=o?o.toStringTag:void 0;function d(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":p&&p in Object(e)?function(e){var t=a.call(e,l),i=e[l];try{e[l]=void 0;var n=!0}catch(e){}var s=c.call(e);return n&&(t?e[l]=i:delete e[l]),s}(e):function(e){return u.call(e)}(e)}function m(e){return"symbol"==typeof e||function(e){return null!=e&&"object"==typeof e}(e)&&"[object Symbol]"==d(e)}var h=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,g=/^\w*$/;function f(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var w,y=s["__core-js_shared__"],x=(w=/[^.]+$/.exec(y&&y.keys&&y.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"",D=Function.prototype.toString,v=/^\[object .+?Constructor\]$/,M=Function.prototype,C=Object.prototype,I=M.toString,b=C.hasOwnProperty,L=RegExp("^"+I.call(b).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function A(e){if(!f(e)||x&&x in e)return!1;var t=function(e){if(!f(e))return!1;var t=d(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}(e)?L:v;return t.test(function(e){if(null!=e){try{return D.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function E(e,t){var i=function(e,t){return null==e?void 0:e[t]}(e,t);return A(i)?i:void 0}var S=E(Object,"create"),T=Object.prototype.hasOwnProperty,N=Object.prototype.hasOwnProperty;function k(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}function j(e,t){return e===t||e!=e&&t!=t}function Z(e,t){for(var i=e.length;i--;)if(j(e[i][0],t))return i;return-1}k.prototype.clear=function(){this.__data__=S?S(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(S){var i=t[e];return"__lodash_hash_undefined__"===i?void 0:i}return T.call(t,e)?t[e]:void 0},k.prototype.has=function(e){var t=this.__data__;return S?void 0!==t[e]:N.call(t,e)},k.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=S&&void 0===t?"__lodash_hash_undefined__":t,this};var X=Array.prototype.splice;function Y(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}Y.prototype.clear=function(){this.__data__=[],this.size=0},Y.prototype.delete=function(e){var t=this.__data__,i=Z(t,e);return!(i<0||(i==t.length-1?t.pop():X.call(t,i,1),--this.size,0))},Y.prototype.get=function(e){var t=this.__data__,i=Z(t,e);return i<0?void 0:t[i][1]},Y.prototype.has=function(e){return Z(this.__data__,e)>-1},Y.prototype.set=function(e,t){var i=this.__data__,n=Z(i,e);return n<0?(++this.size,i.push([e,t])):i[n][1]=t,this};var z=E(s,"Map");function F(e,t){var i,n,s=e.__data__;return("string"==(n=typeof(i=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==i:null===i)?s["string"==typeof t?"string":"hash"]:s.map}function G(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}function H(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var i=function(){var n=arguments,s=t?t.apply(this,n):n[0],o=i.cache;if(o.has(s))return o.get(s);var r=e.apply(this,n);return i.cache=o.set(s,r)||o,r};return i.cache=new(H.Cache||G),i}G.prototype.clear=function(){this.size=0,this.__data__={hash:new k,map:new(z||Y),string:new k}},G.prototype.delete=function(e){var t=F(this,e).delete(e);return this.size-=t?1:0,t},G.prototype.get=function(e){return F(this,e).get(e)},G.prototype.has=function(e){return F(this,e).has(e)},G.prototype.set=function(e,t){var i=F(this,e),n=i.size;return i.set(e,t),this.size+=i.size==n?0:1,this},H.Cache=G;var K,P,U,B=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,W=/\\(\\)?/g,V=(K=function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(B,function(e,i,n,s){t.push(n?s.replace(W,"$1"):i||e)}),t},P=H(K,function(e){return 500===U.size&&U.clear(),e}),U=P.cache,P),_=V,R=o?o.prototype:void 0,Q=R?R.toString:void 0;function O(e){if("string"==typeof e)return e;if(t(e))return function(e,t){for(var i=-1,n=null==e?0:e.length,s=Array(n);++i<n;)s[i]=t(e[i],i,e);return s}(e,O)+"";if(m(e))return Q?Q.call(e):"";var i=e+"";return"0"==i&&1/e==-1/0?"-0":i}function J(e,i){return t(e)?e:function(e,i){if(t(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!m(e))||g.test(e)||!h.test(e)||null!=i&&e in Object(i)}(e,i)?[e]:_(function(e){return null==e?"":O(e)}(e))}function q(e){if("string"==typeof e||m(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function $(e,t,i){var n=null==e?void 0:function(e,t){for(var i=0,n=(t=J(t,e)).length;null!=e&&i<n;)e=e[q(t[i++])];return i&&i==n?e:void 0}(e,t);return void 0===n?i:n}function ee(e){return"[object String]"===Object.prototype.toString.call(e)}function te(e){return!(!ee(t=e)||""===t)&&/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e);var t}return function(t={}){let i=function(){let e,t,i=new Promise(function(){e=arguments[0],t=arguments[1]});return i.resolve=e,i.reject=t,i}(),n=$(t,"srcName","system by w-email"),s=$(t,"srcEmail","");if(!te(s))return i.reject("srcEmail is not email"),i;let o=$(t,"srcPW",""),r=$(t,"srcHost","smtp.gmail.com"),a=$(t,"srcPort",587),c=$(t,"emTitle",""),l=$(t,"emContent",""),u=$(t,"emAttachments",[]);var p;p=u,"[object Object]"===Object.prototype.toString.call(p)&&(u=[u]);let d=$(t,"toEmails",[]);ee(d)&&(d=[d]);let m=$(t,"toEmailsCC",[]);ee(m)&&(m=[m]);let h=$(t,"toEmailsBCC",[]);ee(h)&&(h=[h]);let g=e.createTransport({host:r,port:a,auth:{user:s,pass:o},secure:465===a}),f={from:`${n} <${s}>`,to:d.join(","),cc:m.join(","),bcc:h.join(","),subject:c,html:l,attachments:u};return g.sendMail(f,function(e,t){e?i.reject(e):i.resolve(t.response)}),i}}(ru())}(Cc);var au=bn(Cc.exports);let cu=["1234","12345","123456","1234567","12345678","123456789","1234567890","12345678910","111111","000000","666666","888888","7777777","11111111","123123","123321","654321","987654321","qwerty","qwerty123","qwerty1","qwertyuiop","qazwsx","1q2w3e4r","1q2w3e4r5t","1q2w3e","1qaz2wsx","zxcvbnm","password","password1","passw0rd","admin","admin123","welcome","letmein","login","master","monkey","dragon","shadow","sunshine","superman","batman","football","baseball","soccer","hockey","michael","jordan","jennifer","hunter","ranger","harley","thomas","charlie","andrew","daniel","ashley","bailey","mustang","access","secret","ninja","jesus","hello","freedom","trustno1","1qaz@WSX","P@ssw0rd","Pass@123","Aa123456","Aa@123456","Admin@123","abc@123","abc123","abcdef","abcd1234","abc","iloveyou","fuckyou","f*ckyou","whatever","nothing","google","computer","internet","samsung","apple","killer","princess","lovely","tigger","starwars","pokemon","minecraft","123qwe","zaq1zaq1","photoshop","adobe123","18atcskd2w","mynoob"];function lu(e,t={}){let i=[],n=Ce(t,"useKeyForError",null);qi(n)||(n=!1);let s=Ce(t,"useOnlyOneError",null);if(qi(s)||(s=!1),Ii(e)||(n?i.push("keyInvalidPassword"):i.push("密碼非有效字串")),pt(i)>0)throw new Error(i[0]);let o=Ce(t,"numLenMin","");(!Hi(o)||Wi(o)<0)&&(o=8),o=Wi(o);let r=Ce(t,"numLenMax","");if((!Hi(r)||Wi(r)<0)&&(r=30),r=Wi(r),o>r&&(n?i.push("keyLimNumLenMinOrMax"):i.push("設定密碼最小長度大於最大長度")),pt(i)>0)throw new Error(i[0]);let a=Ce(t,"noSpace",null);if(qi(a)||(a=!0),a&&(bi(c=e)&&null!==c.match(/^.*\s+.*$/)&&(n?i.push("keyLimHasSpace"):i.push("密碼不可包含空白字元")),s&&pt(i)>0))throw new Error(i[0]);var c;let l=Ce(t,"onlyAscii",null);if(qi(l)||(l=!0),l&&(/[^\x20-\x7e]/.test(e)&&(n?i.push("keyLimNonAsciiChar"):i.push("密碼僅允許使用英文大小寫、數字及特殊符號")),s&&pt(i)>0))throw new Error(i[0]);if(pt(e)<o&&(n?i.push("keyLimNumLenMin"):i.push(`密碼長度須大於等於${o}個字元`)),s&&pt(i)>0)throw new Error(i[0]);if(pt(e)>r&&(n?i.push("keyLimNumLenMax"):i.push(`密碼長度須小於等於${r}個字元`)),s&&pt(i)>0)throw new Error(i[0]);let u=Ce(t,"requireLetter",null);qi(u)||(u=!1);let p=Ce(t,"requireUppercase",null);qi(p)||(p=!0);let d=Ce(t,"requireLowercase",null);qi(d)||(d=!0);let m=Ce(t,"requireDigit",null);qi(m)||(m=!0);let h=Ce(t,"requireSpecial",null);if(qi(h)||(h=!0),u&&!function(e){return!!bi(e)&&!(null===e.match(/^.*[a-zA-Z]+.*$/))}(e)&&(n?i.push("keyLimRequireLetter"):i.push("密碼須包含至少一個英文字母")),s&&pt(i)>0)throw new Error(i[0]);if(p&&!function(e){return!!bi(e)&&!(null===e.match(/^.*[A-Z]+.*$/))}(e)&&(n?i.push("keyLimRequireUppercase"):i.push("密碼須包含至少一個大寫英文字母")),s&&pt(i)>0)throw new Error(i[0]);if(d&&!function(e){return!!bi(e)&&!(null===e.match(/^.*[a-z]+.*$/))}(e)&&(n?i.push("keyLimRequireLowercase"):i.push("密碼須包含至少一個小寫英文字母")),s&&pt(i)>0)throw new Error(i[0]);if(m&&!function(e){return!!bi(e)&&!(null===e.match(/^.*[0-9]+.*$/))}(e)&&(n?i.push("keyLimRequireDigit"):i.push("密碼須包含至少一個數字")),s&&pt(i)>0)throw new Error(i[0]);if(h&&!function(e){return!!bi(e)&&/[!-/:-@[-`{-~]/.test(e);
|