>>8&255,t.check=r(t.check,L,2,0),p=b=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",t.mode=30;break}if(8!=(15&b)){e.msg="unknown compression method",t.mode=30;break}if(p-=4,_=8+(15&(b>>>=4)),0===t.wbits)t.wbits=_;else if(_>t.wbits){e.msg="invalid window size",t.mode=30;break}t.dmax=1<<_,e.adler=t.check=1,t.mode=512&b?10:12,p=b=0;break;case 2:for(;p<16;){if(0===w)break e;w--,b+=i[o++]<>8&1),512&t.flags&&(L[0]=255&b,L[1]=b>>>8&255,t.check=r(t.check,L,2,0)),p=b=0,t.mode=3;case 3:for(;p<32;){if(0===w)break e;w--,b+=i[o++]<
>>8&255,L[2]=b>>>16&255,L[3]=b>>>24&255,t.check=r(t.check,L,4,0)),p=b=0,t.mode=4;case 4:for(;p<16;){if(0===w)break e;w--,b+=i[o++]<
>8),512&t.flags&&(L[0]=255&b,L[1]=b>>>8&255,t.check=r(t.check,L,2,0)),p=b=0,t.mode=5;case 5:if(1024&t.flags){for(;p<16;){if(0===w)break e;w--,b+=i[o++]<
>>8&255,t.check=r(t.check,L,2,0)),p=b=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&(w<(H=t.length)&&(H=w),H&&(t.head&&(_=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Array(t.head.extra_len)),d.arraySet(t.head.extra,i,o,H,_)),512&t.flags&&(t.check=r(t.check,i,H,o)),w-=H,o+=H,t.length-=H),t.length))break e;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===w)break e;for(H=0;_=i[o+H++],t.head&&_&&t.length<65536&&(t.head.name+=String.fromCharCode(_)),_&&H<16;){if(0===w)break e;w--,b+=i[o++]<>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=12;break;case 10:for(;p<32;){if(0===w)break e;w--,b+=i[o++]<
>>=7&p,p-=7&p,t.mode=27;break}for(;p<3;){if(0===w)break e;w--,b+=i[o++]<
>>=1)){case 0:t.mode=14;break;case 1:if(x(t),t.mode=20,6!==c)break;b>>>=2,p-=2;break e;case 2:t.mode=17;break;case 3:e.msg="invalid block type",t.mode=30}b>>>=2,p-=2;break;case 14:for(b>>>=7&p,p-=7&p;p<32;){if(0===w)break e;w--,b+=i[o++]<
>>16^65535)){e.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&b,p=b=0,t.mode=15,6===c)break e;case 15:t.mode=16;case 16:if(H=t.length){if(w<14;){if(0===w)break e;w--,b+=i[o++]<>>=5,p-=5,t.ndist=1+(31&b),b>>>=5,p-=5,t.ncode=4+(15&b),b>>>=4,p-=4,286<3;){if(0===w)break e;w--,b+=i[o++]<>>=3,p-=3}for(;t.have<19;)t.lens[I[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,P={bits:t.lenbits},C=a(0,t.lens,0,19,t.lencode,0,t.work,P),t.lenbits=P.bits,C){e.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have<>>16&255,v=65535&D,!((y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<<16)b>>>=y,p-=y,t.lens[t.have++]=v;else{if(16===v){for(O=y+2;p>>=y,p-=y,0===t.have){e.msg="invalid bit length repeat",t.mode=30;break}_=t.lens[t.have-1],H=3+(3&b),b>>>=2,p-=2}else if(17===v){for(O=y+3;p>>=y)),b>>>=3,p-=3}else{for(O=y+7;p>>=y)),b>>>=7,p-=7}if(t.have+H>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=30;break}for(;H--;)t.lens[t.have++]=_}}if(30===t.mode)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,P={bits:t.lenbits},C=a(1,t.lens,0,t.nlen,t.lencode,0,t.work,P),t.lenbits=P.bits,C){e.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,P={bits:t.distbits},C=a(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,P),t.distbits=P.bits,C){e.msg="invalid distances set",t.mode=30;break}if(t.mode=20,6===c)break e;case 20:t.mode=21;case 21:if(6<=w&&258<=h){e.next_out=l,e.avail_out=h,e.next_in=o,e.avail_in=w,t.hold=b,t.bits=p,n(e,B),l=e.next_out,s=e.output,h=e.avail_out,o=e.next_in,i=e.input,w=e.avail_in,b=t.hold,p=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;R=(D=t.lencode[b&(1<>>16&255,v=65535&D,!((y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<<>M)])>>>16&255,v=65535&D,!(M+(y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<>>=M,p-=M,t.back+=M}if(b>>>=y,p-=y,t.back+=y,t.length=v,0===R){t.mode=26;break}if(32&R){t.back=-1,t.mode=12;break}if(64&R){e.msg="invalid literal/length code",t.mode=30;break}t.extra=15&R,t.mode=22;case 22:if(t.extra){for(O=t.extra;p>>=t.extra,p-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;R=(D=t.distcode[b&(1<>>16&255,v=65535&D,!((y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<<>M)])>>>16&255,v=65535&D,!(M+(y=D>>>24)<=p);){if(0===w)break e;w--,b+=i[o++]<>>=M,p-=M,t.back+=M}if(b>>>=y,p-=y,t.back+=y,64&R){e.msg="invalid distance code",t.mode=30;break}t.offset=v,t.extra=15&R,t.mode=24;case 24:if(t.extra){for(O=t.extra;p>>=t.extra,p-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===h)break e;if(H=B-h,t.offset>H){if((H=t.offset-H)>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=30;break}m=H>t.wnext?(H-=t.wnext,t.wsize-H):t.wnext-H,H>t.length&&(H=t.length),g=t.window}else g=s,m=l-t.offset,H=t.length;for(h<32;){if(0===w)break e;w--,b|=i[o++]<<32;){if(0===w)break e;w--,b+=i[o++]<
E?(H=I[U+u[x]],P[O+u[x]]):(H=96,0),w=1<<>k)+(h-=w)]=B<<24|H<<16|m,0!==h;);for(w=1<>=1;if(0!==w?(C&=w-1,C+=w):C=0,x++,0==--D[y]){if(y===R)break;y=c[t+u[x]]}if(v<<(M=y-k);M+k<=0);)M++,S<<=1;if(_+=1<<_||2===e&&592<_)return 1;s[A=C&b]=v<<24|M<<16|p-o}}return 0!==C&&(s[p+C]=y-k<<24|64<<16),l.bits=v,0}},{"../utils/common":41}],51:[function(e,c,t){c.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,c,t){var d=e("../utils/common"),f=0,r=1;function n(e){for(var c=e.length;0<=--c;)e[c]=0}var a=0,i=29,s=256,o=286,u=30,l=19,w=573,h=15,A=16,b=7,p=256,E=16,B=17,H=18,m=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],g=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],y=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],x=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],T=new Array(576);n(T);var R=new Array(60);n(R);var v=new Array(512);n(v);var M=new Array(256);n(M);var k=new Array(i);n(k);var S,_,C,P=new Array(u);function O(e,c,t,d,f){this.static_tree=e,this.extra_bits=c,this.extra_base=t,this.elems=d,this.max_length=f,this.has_stree=e&&e.length}function D(e,c){this.dyn_tree=e,this.max_code=0,this.stat_desc=c}function L(e){return e<256?v[e]:v[256+(e>>>7)]}function I(e,c){e.pending_buf[e.pending++]=255&c,e.pending_buf[e.pending++]=c>>>8&255}function U(e,c,t){e.bi_valid>A-t?(e.bi_buf|=c<>A-e.bi_valid,e.bi_valid+=t-A):(e.bi_buf|=c<>>=1,t<<=1,0<--c;);return t>>>1}function W(e,c,t){var d,f,r=new Array(16),n=0;for(d=1;d<=h;d++)r[d]=n=n+t[d-1]<<1;for(f=0;f<=c;f++){var a=e[2*f+1];0!==a&&(e[2*f]=z(r[a]++,a))}}function X(e){var c;for(c=0;c<=d[t]}function $(e,c,t){for(var d=e.heap[t],f=t<<1;f<=e.heap_len&&(f<<=1;e.heap[t]=d}function J(e,c,t){var d,f,r,n,a=0;if(0!==e.last_lit)for(;d=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],f=e.pending_buf[e.l_buf+a],a++,0===d?N(e,f,c):(N(e,(r=M[f])+s+1,c),0!==(n=m[r])&&U(e,f-=k[r],n),N(e,r=L(--d),t),0!==(n=g[r])&&U(e,d-=P[r],n)),a>1;1<=t;t--)$(e,r,t);for(f=i;t=e.heap[1],e.heap[1]=e.heap[e.heap_len--],$(e,r,1),d=e.heap[1],e.heap[--e.heap_max]=t,e.heap[--e.heap_max]=d,r[2*f]=r[2*t]+r[2*d],e.depth[f]=(e.depth[t]>=e.depth[d]?e.depth[t]:e.depth[d])+1,r[2*t+1]=r[2*d+1]=f,e.heap[1]=f++,$(e,r,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,c){var t,d,f,r,n,a,i=c.dyn_tree,s=c.max_code,o=c.stat_desc.static_tree,u=c.stat_desc.has_stree,l=c.stat_desc.extra_bits,A=c.stat_desc.extra_base,b=c.stat_desc.max_length,p=0;for(r=0;r<=h;r++)e.bl_count[r]=0;for(i[2*e.heap[e.heap_max]+1]=0,t=e.heap_max+1;t<(r=i[2*i[2*(d=e.heap[t])+1]+1]+1)&&(r=b,p++),i[2*d+1]=r,s<=d&&(n=l[d-A]),a=i[2*d],e.opt_len+=a*(r+n),u&&(e.static_len+=a*(o[2*d+1]+n)));if(0!==p){do{for(r=b-1;0===e.bl_count[r];)r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[b]--,p-=2}while(0<(f=e.heap[--t])||(i[2*f+1]!==r&&(e.opt_len+=(r-i[2*f+1])*i[2*f],i[2*f+1]=r),d--)}}(e,c),W(r,s,e.bl_count)}function V(e,c,t){var d,f,r=-1,n=c[1],a=0,i=7,s=4;for(0===n&&(i=138,s=3),c[2*(t+1)+1]=65535,d=0;d<=t;d++)f=n,n=c[2*(d+1)+1],++a<=10?e.bl_tree[34]++:e.bl_tree[36]++,r=f,s=(a=0)===n?(i=138,3):f===n?(i=6,3):(i=7,4))}function Z(e,c,t){var d,f,r=-1,n=c[1],a=0,i=7,s=4;for(0===n&&(i=138,s=3),d=0;d<=t;d++)if(f=n,n=c[2*(d+1)+1],!(++a>=7;d<<7,e=0;e<1<<=h;c++)r[c]=0;for(e=0;e<=143;)T[2*e+1]=8,e++,r[8]++;for(;e<=255;)T[2*e+1]=9,e++,r[9]++;for(;e<=279;)T[2*e+1]=7,e++,r[7]++;for(;e<=287;)T[2*e+1]=8,e++,r[8]++;for(W(T,287,r),e=0;e>>=1)if(1&t&&0!==e.dyn_ltree[2*c])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(c=32;c>>3,(r=e.static_len+3+7>>>3)<=f&&(f=r)):f=r=t+5,t+4<=f&&-1!==c?G(e,c,t,d):4===e.strategy||r===f?(U(e,2+(d?1:0),3),J(e,T,R)):(U(e,4+(d?1:0),3),function(e,c,t,d){var f;for(U(e,c-257,5),U(e,t-1,5),U(e,d-4,4),f=0;f>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&c,e.pending_buf[e.l_buf+e.last_lit]=255&t,e.last_lit++,0===c?e.dyn_ltree[2*t]++:(e.matches++,c--,e.dyn_ltree[2*(M[t]+s+1)]++,e.dyn_dtree[2*L(c)]++),e.last_lit===e.lit_bufsize-1},t._tr_align=function(e){var c;U(e,2,3),N(e,p,T),16===(c=e).bi_valid?(I(c,c.bi_buf),c.bi_buf=0,c.bi_valid=0):8<=c.bi_valid&&(c.pending_buf[c.pending++]=255&c.bi_buf,c.bi_buf>>=8,c.bi_valid-=8)}},{"../utils/common":41}],53:[function(e,c,t){c.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,c,t){(function(e){!function(e,c){if(!e.setImmediate){var t,d,f,r,n=1,a={},i=!1,s=e.document,o=Object.getPrototypeOf&&Object.getPrototypeOf(e);o=o&&o.setTimeout?o:e,t="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick(function(){l(e)})}:function(){if(e.postMessage&&!e.importScripts){var c=!0,t=e.onmessage;return e.onmessage=function(){c=!1},e.postMessage("","*"),e.onmessage=t,c}}()?(r="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",w,!1):e.attachEvent("onmessage",w),function(c){e.postMessage(r+c,"*")}):e.MessageChannel?((f=new MessageChannel).port1.onmessage=function(e){l(e.data)},function(e){f.port2.postMessage(e)}):s&&"onreadystatechange"in s.createElement("script")?(d=s.documentElement,function(e){var c=s.createElement("script");c.onreadystatechange=function(){l(e),c.onreadystatechange=null,d.removeChild(c),c=null},d.appendChild(c)}):function(e){setTimeout(l,0,e)},o.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var c=new Array(arguments.length-1),d=0;de+c,0),t=new Uint8Array(c);let d=0;for(const c of e)t.set(c,d),d+=c.length;return t}function ma(e){if(Uint8Array.prototype.toBase64)return e.toBase64();const c=32768,t=[];for(let d=0;d2){const c=t.pop();e+=`one of type ${t.join(", ")}, or ${c}.`}else 2===t.length?e+=`one of type ${t[0]} or ${t[1]}.`:e+=`of type ${t[0]}.`;return null==c?e+=` Received ${c}`:"function"==typeof c&&c.name?e+=` Received function ${c.name}`:"object"==typeof c&&null!=c&&c.constructor?.name&&(e+=` Received an instance of ${c.constructor.name}`),e}ua(Da,"code","ERR_JWS_SIGNATURE_VERIFICATION_FAILED");var Fa=(e,...c)=>Xa("Key must be ",e,...c);function ja(e,c,...t){return Xa(`Key for the ${e} algorithm must be `,c,...t)}function $a(e){return"CryptoKey"===e?.[Symbol.toStringTag]}function Ja(e){return"KeyObject"===e?.[Symbol.toStringTag]}var Ka=e=>$a(e)||Ja(e),Va=(...e)=>{const c=e.filter(Boolean);if(0===c.length||1===c.length)return!0;let t;for(const e of c){const c=Object.keys(e);if(t&&0!==t.size)for(const e of c){if(t.has(e))return!1;t.add(e)}else t=new Set(c)}return!0};function Za(e){return"object"==typeof e&&null!==e}var Ya=e=>{if(!Za(e)||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let c=e;for(;null!==Object.getPrototypeOf(c);)c=Object.getPrototypeOf(c);return Object.getPrototypeOf(e)===c},Ga=(e,c)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:t}=c.algorithm;if("number"!=typeof t||t<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};function Qa(e){let c,t;switch(e.kty){case"AKP":switch(e.alg){case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":c={name:e.alg},t=e.priv?["sign"]:["verify"];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":c={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},t=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":c={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},t=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":c={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},t=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":c={name:"ECDSA",namedCurve:"P-256"},t=e.d?["sign"]:["verify"];break;case"ES384":c={name:"ECDSA",namedCurve:"P-384"},t=e.d?["sign"]:["verify"];break;case"ES512":c={name:"ECDSA",namedCurve:"P-521"},t=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":c={name:"ECDH",namedCurve:e.crv},t=e.d?["deriveBits"]:[];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"OKP":switch(e.alg){case"Ed25519":case"EdDSA":c={name:"Ed25519"},t=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":c={name:e.crv},t=e.d?["deriveBits"]:[];break;default:throw new ka('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new ka('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:c,keyUsages:t}}var qa=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:c,keyUsages:t}=Qa(e),d={...e};return"AKP"!==d.kty&&delete d.alg,delete d.use,crypto.subtle.importKey("jwk",d,c,e.ext??(!e.d&&!e.priv),e.key_ops??t)},ei=(e,c,t,d,f)=>{if(void 0!==f.crit&&void 0===d?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return new Set;if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let r;r=void 0!==t?new Map([...Object.entries(t),...c.entries()]):c;for(const c of d.crit){if(!r.has(c))throw new ka(`Extension Header Parameter "${c}" is not recognized`);if(void 0===f[c])throw new e(`Extension Header Parameter "${c}" is missing`);if(r.get(c)&&void 0===d[c])throw new e(`Extension Header Parameter "${c}" MUST be integrity protected`)}return new Set(d.crit)},ci=(e,c)=>{if(void 0!==c&&(!Array.isArray(c)||c.some(e=>"string"!=typeof e)))throw new TypeError(`"${e}" option must be an array of strings`);if(c)return new Set(c)},ti;function di(e){return Ya(e)&&"string"==typeof e.kty}function fi(e){return"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d)}function ri(e){return"oct"!==e.kty&&void 0===e.d&&void 0===e.priv}function ni(e){return"oct"===e.kty&&"string"==typeof e.k}var ai=async(e,c,t,d=!1)=>{ti||(ti=new WeakMap);let f=ti.get(e);if(f?.[t])return f[t];const r=await qa({...c,alg:t});return d&&Object.freeze(e),f?f[t]=r:ti.set(e,{[t]:r}),r},ii=(e,c)=>{ti||(ti=new WeakMap);let t=ti.get(e);if(t?.[c])return t[c];const d="public"===e.type,f=!!d;let r;if("x25519"===e.asymmetricKeyType){switch(c){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}r=e.toCryptoKey(e.asymmetricKeyType,f,d?[]:["deriveBits"])}if("ed25519"===e.asymmetricKeyType){if("EdDSA"!==c&&"Ed25519"!==c)throw new TypeError("given KeyObject instance cannot be used for this algorithm");r=e.toCryptoKey(e.asymmetricKeyType,f,[d?"verify":"sign"])}switch(e.asymmetricKeyType){case"ml-dsa-44":case"ml-dsa-65":case"ml-dsa-87":if(c!==e.asymmetricKeyType.toUpperCase())throw new TypeError("given KeyObject instance cannot be used for this algorithm");r=e.toCryptoKey(e.asymmetricKeyType,f,[d?"verify":"sign"])}if("rsa"===e.asymmetricKeyType){let t;switch(c){case"RSA-OAEP":t="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":t="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":t="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":t="SHA-512";break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}if(c.startsWith("RSA-OAEP"))return e.toCryptoKey({name:"RSA-OAEP",hash:t},f,d?["encrypt"]:["decrypt"]);r=e.toCryptoKey({name:c.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:t},f,[d?"verify":"sign"])}if("ec"===e.asymmetricKeyType){const t=undefined,n=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!n)throw new TypeError("given KeyObject instance cannot be used for this algorithm");"ES256"===c&&"P-256"===n&&(r=e.toCryptoKey({name:"ECDSA",namedCurve:n},f,[d?"verify":"sign"])),"ES384"===c&&"P-384"===n&&(r=e.toCryptoKey({name:"ECDSA",namedCurve:n},f,[d?"verify":"sign"])),"ES512"===c&&"P-521"===n&&(r=e.toCryptoKey({name:"ECDSA",namedCurve:n},f,[d?"verify":"sign"])),c.startsWith("ECDH-ES")&&(r=e.toCryptoKey({name:"ECDH",namedCurve:n},f,d?[]:["deriveBits"]))}if(!r)throw new TypeError("given KeyObject instance cannot be used for this algorithm");return t?t[c]=r:ti.set(e,{[c]:r}),r},si=async(e,c)=>{if(e instanceof Uint8Array)return e;if($a(e))return e;if(Ja(e)){if("secret"===e.type)return e.export();if("toCryptoKey"in e&&"function"==typeof e.toCryptoKey)try{return ii(e,c)}catch(e){if(e instanceof TypeError)throw e}let t=e.export({format:"jwk"});return ai(e,t,c)}if(di(e))return e.k?ya(e.k):ai(e,e,c,!0);throw new Error("unreachable")},oi=e=>e?.[Symbol.toStringTag],ui=(e,c,t)=>{if(void 0!==c.use){let e;switch(t){case"sign":case"verify":e="sig";break;case"encrypt":case"decrypt":e="enc";break}if(c.use!==e)throw new TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==c.alg&&c.alg!==e)throw new TypeError(`Invalid key for this operation, its "alg" must be "${e}" when present`);if(Array.isArray(c.key_ops)){let d;switch(!0){case"sign"===t||"verify"===t:case"dir"===e:case e.includes("CBC-HS"):d=t;break;case e.startsWith("PBES2"):d="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(e):d=!e.includes("GCM")&&e.endsWith("KW")?"encrypt"===t?"wrapKey":"unwrapKey":t;break;case"encrypt"===t&&e.startsWith("RSA"):d="wrapKey";break;case"decrypt"===t:d=e.startsWith("RSA")?"unwrapKey":"deriveBits";break}if(d&&!1===c.key_ops?.includes?.(d))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}return!0},li=(e,c,t)=>{if(!(c instanceof Uint8Array)){if(di(c)){if(ni(c)&&ui(e,c,t))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!Ka(c))throw new TypeError(ja(e,c,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==c.type)throw new TypeError(`${oi(c)} instances for symmetric algorithms must be of type "secret"`)}},wi=(e,c,t)=>{if(di(c))switch(t){case"decrypt":case"sign":if(fi(c)&&ui(e,c,t))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"encrypt":case"verify":if(ri(c)&&ui(e,c,t))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!Ka(c))throw new TypeError(ja(e,c,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===c.type)throw new TypeError(`${oi(c)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===c.type)switch(t){case"sign":throw new TypeError(`${oi(c)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${oi(c)} instances for asymmetric algorithm decryption must be of type "private"`);default:break}if("private"===c.type)switch(t){case"verify":throw new TypeError(`${oi(c)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${oi(c)} instances for asymmetric algorithm encryption must be of type "public"`);default:break}},hi=(e,c,t)=>{const d=undefined;e.startsWith("HS")||"dir"===e||e.startsWith("PBES2")||/^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(e)||/^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(e)?li(e,c,t):wi(e,c,t)},Ai=(e,c)=>{const t=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:t,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:t,name:"RSA-PSS",saltLength:parseInt(e.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:t,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:t,name:"ECDSA",namedCurve:c.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":return{name:e};default:throw new ka(`alg ${e} is not supported either by JOSE or your javascript runtime`)}},bi=async(e,c,t)=>{if(c instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(Fa(c,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",c,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[t])}return Wa(c,e,t),c},pi=async(e,c,t,d)=>{const f=await bi(e,c,"verify");Ga(e,f);const r=Ai(e,f.algorithm);try{return await crypto.subtle.verify(r,f,t,d)}catch{return!1}};async function Ei(e,c,t){if(!Ya(e))throw new Sa("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new Sa('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new Sa("JWS Protected Header incorrect type");if(void 0===e.payload)throw new Sa("JWS Payload missing");if("string"!=typeof e.signature)throw new Sa("JWS Signature missing or incorrect type");if(void 0!==e.header&&!Ya(e.header))throw new Sa("JWS Unprotected Header incorrect type");let d={};if(e.protected)try{const c=ya(e.protected);d=JSON.parse(Ea.decode(c))}catch{throw new Sa("JWS Protected Header is invalid")}if(!Va(d,e.header))throw new Sa("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const f={...d,...e.header},r=undefined;let n=!0;if(ei(Sa,new Map([["b64",!0]]),t?.crit,d,f).has("b64")&&(n=d.b64,"boolean"!=typeof n))throw new Sa('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:a}=f;if("string"!=typeof a||!a)throw new Sa('JWS "alg" (Algorithm) Header Parameter missing or invalid');const i=t&&ci("algorithms",t.algorithms);if(i&&!i.has(a))throw new Ma('"alg" (Algorithm) Header Parameter value not allowed');if(n){if("string"!=typeof e.payload)throw new Sa("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new Sa("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof c&&(c=await c(d,e),s=!0),hi(a,c,"verify");const o=Ha(pa.encode(e.protected??""),pa.encode("."),"string"==typeof e.payload?pa.encode(e.payload):e.payload);let u;try{u=ya(e.signature)}catch{throw new Sa("Failed to base64url decode the signature")}const l=await si(c,a),w=undefined;if(!await pi(a,l,u,o))throw new Da;let h;if(n)try{h=ya(e.payload)}catch{throw new Sa("Failed to base64url decode the payload")}else h="string"==typeof e.payload?pa.encode(e.payload):e.payload;const A={payload:h};return void 0!==e.protected&&(A.protectedHeader=d),void 0!==e.header&&(A.unprotectedHeader=e.header),s?{...A,key:l}:A}async function Bi(e,c,t){if(e instanceof Uint8Array&&(e=Ea.decode(e)),"string"!=typeof e)throw new Sa("Compact JWS must be a string or Uint8Array");const{0:d,1:f,2:r,length:n}=e.split(".");if(3!==n)throw new Sa("Invalid Compact JWS");const a=await Ei({payload:f,protected:d,signature:r},c,t),i={payload:a.payload,protectedHeader:a.protectedHeader};return"function"==typeof c?{...i,key:a.key}:i}var Hi=e=>Math.floor(e.getTime()/1e3),mi=60,gi=3600,yi=86400,xi=7*yi,Ti=31557600,Ri=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,vi=e=>{const c=Ri.exec(e);if(!c||c[4]&&c[1])throw new TypeError("Invalid time period format");const t=parseFloat(c[2]),d=undefined;let f;switch(c[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":f=Math.round(t);break;case"minute":case"minutes":case"min":case"mins":case"m":f=Math.round(t*mi);break;case"hour":case"hours":case"hr":case"hrs":case"h":f=Math.round(t*gi);break;case"day":case"days":case"d":f=Math.round(t*yi);break;case"week":case"weeks":case"w":f=Math.round(t*xi);break;default:f=Math.round(t*Ti);break}return"-"===c[1]||"ago"===c[4]?-f:f};function Mi(e,c){if(!Number.isFinite(c))throw new TypeError(`Invalid ${e} input`);return c}var ki=e=>e.includes("/")?e.toLowerCase():`application/${e.toLowerCase()}`,Si=(e,c)=>"string"==typeof e?c.includes(e):!!Array.isArray(e)&&c.some(Set.prototype.has.bind(new Set(e))),_i;function Ci(e,c,t={}){let d;try{d=JSON.parse(Ea.decode(c))}catch{}if(!Ya(d))throw new _a("JWT Claims Set must be a top-level JSON object");const{typ:f}=t;if(f&&("string"!=typeof e.typ||ki(e.typ)!==ki(f)))throw new Ra('unexpected "typ" JWT header value',d,"typ","check_failed");const{requiredClaims:r=[],issuer:n,subject:a,audience:i,maxTokenAge:s}=t,o=[...r];void 0!==s&&o.push("iat"),void 0!==i&&o.push("aud"),void 0!==a&&o.push("sub"),void 0!==n&&o.push("iss");for(const e of new Set(o.reverse()))if(!(e in d))throw new Ra(`missing required "${e}" claim`,d,e,"missing");if(n&&!(Array.isArray(n)?n:[n]).includes(d.iss))throw new Ra('unexpected "iss" claim value',d,"iss","check_failed");if(a&&d.sub!==a)throw new Ra('unexpected "sub" claim value',d,"sub","check_failed");if(i&&!Si(d.aud,"string"==typeof i?[i]:i))throw new Ra('unexpected "aud" claim value',d,"aud","check_failed");let u;switch(typeof t.clockTolerance){case"string":u=vi(t.clockTolerance);break;case"number":u=t.clockTolerance;break;case"undefined":u=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:l}=t,w=Hi(l||new Date);if((void 0!==d.iat||s)&&"number"!=typeof d.iat)throw new Ra('"iat" claim must be a number',d,"iat","invalid");if(void 0!==d.nbf){if("number"!=typeof d.nbf)throw new Ra('"nbf" claim must be a number',d,"nbf","invalid");if(d.nbf>w+u)throw new Ra('"nbf" claim timestamp check failed',d,"nbf","check_failed")}if(void 0!==d.exp){if("number"!=typeof d.exp)throw new Ra('"exp" claim must be a number',d,"exp","invalid");if(d.exp<=w-u)throw new va('"exp" claim timestamp check failed',d,"exp","check_failed")}if(s){const e=w-d.iat,c=undefined;if(e-u>("number"==typeof s?s:vi(s)))throw new va('"iat" claim timestamp check failed (too far in the past)',d,"iat","check_failed");if(e<0-u)throw new Ra('"iat" claim timestamp check failed (it should be in the past)',d,"iat","check_failed")}return d}var Pi=class{constructor(e){if(ha(this,_i),!Ya(e))throw new TypeError("JWT Claims Set MUST be an object");Aa(this,_i,structuredClone(e))}data(){return pa.encode(JSON.stringify(wa(this,_i)))}get iss(){return wa(this,_i).iss}set iss(e){wa(this,_i).iss=e}get sub(){return wa(this,_i).sub}set sub(e){wa(this,_i).sub=e}get aud(){return wa(this,_i).aud}set aud(e){wa(this,_i).aud=e}set jti(e){wa(this,_i).jti=e}set nbf(e){"number"==typeof e?wa(this,_i).nbf=Mi("setNotBefore",e):e instanceof Date?wa(this,_i).nbf=Mi("setNotBefore",Hi(e)):wa(this,_i).nbf=Hi(new Date)+vi(e)}set exp(e){"number"==typeof e?wa(this,_i).exp=Mi("setExpirationTime",e):e instanceof Date?wa(this,_i).exp=Mi("setExpirationTime",Hi(e)):wa(this,_i).exp=Hi(new Date)+vi(e)}set iat(e){void 0===e?wa(this,_i).iat=Hi(new Date):e instanceof Date?wa(this,_i).iat=Mi("setIssuedAt",Hi(e)):wa(this,_i).iat=Mi("setIssuedAt","string"==typeof e?Hi(new Date)+vi(e):e)}};async function Oi(e,c,t){const d=await Bi(e,c,t);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new _a("JWTs MUST NOT use unencoded payload");const f=undefined,r={payload:Ci(d.protectedHeader,d.payload,t),protectedHeader:d.protectedHeader};return"function"==typeof c?{...r,key:d.key}:r}_i=new WeakMap;var Di=async(e,c,t)=>{const d=await bi(e,c,"sign");Ga(e,d);const f=await crypto.subtle.sign(Ai(e,d.algorithm),d,t);return new Uint8Array(f)},Li,Ii,Ui,Ni=class{constructor(e){if(ha(this,Li),ha(this,Ii),ha(this,Ui),!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");Aa(this,Li,e)}setProtectedHeader(e){if(wa(this,Ii))throw new TypeError("setProtectedHeader can only be called once");return Aa(this,Ii,e),this}setUnprotectedHeader(e){if(wa(this,Ui))throw new TypeError("setUnprotectedHeader can only be called once");return Aa(this,Ui,e),this}async sign(e,c){if(!wa(this,Ii)&&!wa(this,Ui))throw new Sa("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Va(wa(this,Ii),wa(this,Ui)))throw new Sa("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const t={...wa(this,Ii),...wa(this,Ui)},d=undefined;let f=!0;if(ei(Sa,new Map([["b64",!0]]),c?.crit,wa(this,Ii),t).has("b64")&&(f=wa(this,Ii).b64,"boolean"!=typeof f))throw new Sa('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:r}=t;if("string"!=typeof r||!r)throw new Sa('JWS "alg" (Algorithm) Header Parameter missing or invalid');hi(r,e,"sign");let n=wa(this,Li),a;f&&(n=pa.encode(xa(n))),a=wa(this,Ii)?pa.encode(xa(JSON.stringify(wa(this,Ii)))):pa.encode("");const i=Ha(a,pa.encode("."),n),s=await si(e,r),o=undefined,u={signature:xa(await Di(r,s,i)),payload:""};return f&&(u.payload=Ea.decode(n)),wa(this,Ui)&&(u.header=wa(this,Ui)),wa(this,Ii)&&(u.protected=Ea.decode(a)),u}},zi;Li=new WeakMap,Ii=new WeakMap,Ui=new WeakMap;var Wi=class{constructor(e){ha(this,zi),Aa(this,zi,new Ni(e))}setProtectedHeader(e){return wa(this,zi).setProtectedHeader(e),this}async sign(e,c){const t=await wa(this,zi).sign(e,c);if(void 0===t.payload)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${t.protected}.${t.payload}.${t.signature}`}},Xi,Fi;zi=new WeakMap;var ji=class{constructor(e={}){ha(this,Xi),ha(this,Fi),Aa(this,Fi,new Pi(e))}setIssuer(e){return wa(this,Fi).iss=e,this}setSubject(e){return wa(this,Fi).sub=e,this}setAudience(e){return wa(this,Fi).aud=e,this}setJti(e){return wa(this,Fi).jti=e,this}setNotBefore(e){return wa(this,Fi).nbf=e,this}setExpirationTime(e){return wa(this,Fi).exp=e,this}setIssuedAt(e){return wa(this,Fi).iat=e,this}setProtectedHeader(e){return Aa(this,Xi,e),this}async sign(e,c){const t=new Wi(wa(this,Fi).data());if(t.setProtectedHeader(wa(this,Xi)),Array.isArray(wa(this,Xi)?.crit)&&wa(this,Xi).crit.includes("b64")&&!1===wa(this,Xi).b64)throw new _a("JWTs MUST NOT use unencoded payload");return t.sign(e,c)}};async function $i(e,c){if("POST"!==e.method)return await Do(!1,405,"Method not allowed.");const t=undefined,d=undefined;if(await e.text()!==await c.kv.get("pwd"))return await Do(!1,401,"Wrong password.");let f=await c.kv.get("secretKey");f||(f=Ji(),await c.kv.put("secretKey",f));const r=(new TextEncoder).encode(f),n=await new ji({userID:Uo.userID}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(r);return await Do(!0,200,"Successfully generated Auth token",null,{"Set-Cookie":`jwtToken=${n}; HttpOnly; Secure; Max-Age=604800; Path=/; SameSite=Strict`,"Content-Type":"text/plain"})}function Ji(){const e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}async function Ki(e,c){try{const t=await c.kv.get("secretKey"),d=(new TextEncoder).encode(t),f=e.headers.get("Cookie")?.match(/(^|;\s*)jwtToken=([^;]*)/),r=f?f[2]:null;if(!r)return console.log("Unauthorized: Token not available!"),!1;const{payload:n}=await Oi(r,d);return console.log(`Successfully authenticated, User ID: ${n.userID}`),!0}catch(e){return console.log(e),!1}}async function Vi(){return await Do(!0,200,"Successfully logged out!",null,{"Set-Cookie":"jwtToken=; Secure; SameSite=None; Expires=Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"text/plain"})}async function Zi(e,c){let t=await Ki(e,c);const d=await c.kv.get("pwd");if(d&&!t)return await Do(!1,401,"Unauthorized.");const f=await e.text();return f===d?await Do(!1,400,"Please enter a new Password."):(await c.kv.put("pwd",f),await Do(!0,200,"Successfully logged in!",null,{"Set-Cookie":"jwtToken=; Path=/; Secure; SameSite=None; Expires=Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"text/plain"}))}function Yi(e){if(!e)return!1;const c=undefined;return/^(?!-)(?:[A-Za-z0-9-]{1,63}.)+[A-Za-z]{2,}$/.test(e)}async function Gi(e,c=!1){const t=`${Uo.dohURL}?name=${encodeURIComponent(e)}`,d={ipv4:`${t}&type=A`,ipv6:`${t}&type=AAAA`};try{const e=await Qi(d.ipv4,1),t=undefined;return{ipv4:e,ipv6:c?[]:await Qi(d.ipv6,28)}}catch(c){throw new Error(`Error resolving DNS for ${e}: ${c.message}`)}}async function Qi(e,c){try{const t=await fetch(e,{headers:{accept:"application/dns-json"}}),d=await t.json();return d.Answer?d.Answer.filter(e=>e.type===c).map(e=>e.data):[]}catch(c){throw new Error(`Failed to fetch DNS records from ${e}: ${c.message}`)}}async function qi(e){const c=await Gi(No.hostName,!Eo.VLTRenableIPv6),t=[No.hostName,"www.speedtest.net",...c.ipv4,...c.ipv6.map(e=>`[${e}]`),...Eo.cleanIPs];return e?t:[...t,...Eo.customCdnAddrs]}function es(e,c){const t=c?1:0,d=e[t].account.config;return{warpIPv6:`${d.interface.addresses.v6}/128`,reserved:d.client_id,publicKey:d.peers[0].public_key,privateKey:e[t].privateKey}}function cs(e,c,t,d,f,r){let n;const a=r?"🔗 ":"",i=f?` ${f}`:"";return n=Eo.cleanIPs.includes(t)?"Clean IP":Yi(t)?"Domain":ns(t)?"IPv4":as(t)?"IPv6":"",`💦 ${e} - ${a}${d}${i} - ${n} : ${c}`}function ts(e){let c="";for(let t=0;t<.5?e[t].toUpperCase():e[t];return c}function ds(e,c){let t="";const d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",f=62,r=Math.floor(Math.random()*(c-e+1))+e;for(let e=0;ee.charCodeAt(0).toString(16).padStart(2,"0")).join("").match(/.{2}/g).map(e=>parseInt(e,16))}function ns(e){const c=undefined;return/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\/([0-9]|[1-2][0-9]|3[0-2]))?$/.test(e)}function as(e){const c=undefined;return/^\[(?:(?:[a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}|(?:[a-fA-F0-9]{1,4}:){1,7}:|::(?:[a-fA-F0-9]{1,4}:){0,7}|(?:[a-fA-F0-9]{1,4}:){1,6}:[a-fA-F0-9]{1,4}|(?:[a-fA-F0-9]{1,4}:){1,5}(?::[a-fA-F0-9]{1,4}){1,2}|(?:[a-fA-F0-9]{1,4}:){1,4}(?::[a-fA-F0-9]{1,4}){1,3}|(?:[a-fA-F0-9]{1,4}:){1,3}(?::[a-fA-F0-9]{1,4}){1,4}|(?:[a-fA-F0-9]{1,4}:){1,2}(?::[a-fA-F0-9]{1,4}){1,5}|[a-fA-F0-9]{1,4}:(?::[a-fA-F0-9]{1,4}){1,6})\](?:\/(1[0-1][0-9]|12[0-8]|[0-9]?[0-9]))?$/.test(e)}function is(e){try{const c=undefined,t=new URL(e).hostname,d=undefined;return{host:t,isHostDomain:Yi(t)}}catch{return{host:null,isHostDomain:!1}}}function ss(e,c){const t=/^(?:\[(?.+?)\]|(?[^:]+))(:(?\d+))?$/,d=e.match(t);if(!d)return null;let f=d.groups.ipv6;c&&f&&(f=`[${f}]`);const r=undefined,n=undefined;return{host:f||d.groups.host,port:d.groups.port?parseInt(d.groups.port,10):null}}function os(e){return No.defaultHttpsPorts.includes(e)}async function us(e,c){try{return c()}catch(c){console.log("An error occured while parsing chain proxy: ",c);const t=await e.kv.get("proxySettings",{type:"json"});return void await e.kv.put("proxySettings",JSON.stringify({...t,outProxy:"",outProxyParams:{}}))}}async function ls(e){const c=[],t="https://api.cloudflareclient.com/v0a4005/reg",d=[await ws(),await ws()],f={install_id:"",fcm_token:"",tos:(new Date).toISOString(),type:"Android",model:"PC",locale:"en_US",warp_enabled:!0},r=async e=>{try{const c=await fetch(t,{method:"POST",headers:{"User-Agent":"insomnia/8.6.1","Content-Type":"application/json"},body:JSON.stringify({...f,key:e.publicKey})});return await c.json()}catch(e){throw new Error("Failed to get warp configs.",e)}};for(const e of d){const t=await r(e);c.push({privateKey:e.privateKey,account:t})}const n=JSON.stringify(c);return await e.kv.put("warpConfigs",n),n}async function ws(){const e=await crypto.subtle.generateKey({name:"X25519",namedCurve:"X25519"},!0,["deriveBits"]),c=await crypto.subtle.exportKey("pkcs8",e.privateKey),t=new Uint8Array(c).slice(-32),d=undefined,f=e=>btoa(String.fromCharCode(...e));return{publicKey:f(new Uint8Array(await crypto.subtle.exportKey("raw",e.publicKey))),privateKey:f(t)}}async function hs(e,c){let t,d;try{if(t=await c.kv.get("proxySettings",{type:"json"}),d=await c.kv.get("warpConfigs",{type:"json"}),!t){t=await As(e,c);const f=undefined;d=await ls(c)}return No.panelVersion!==t.panelVersion&&(t=await As(e,c)),{settings:t,warpConfigs:d}}catch(e){throw console.log(e),new Error(`An error occurred while getting KV - ${e.message}`)}}async function As(e,c){let t="POST"===e.method?await e.json():null;const d=t?.resetSettings;let f;if(!d)try{f=await c.kv.get("proxySettings",{type:"json"})}catch(e){throw console.log(e),new Error(`An error occurred while getting current KV settings - ${e}`)}const r=(e,c,r)=>{if(d)return c;if(!t)return f?.[e]??c;const n=t[e];return"function"==typeof r?r(n):n},n=r("remoteDNS","https://8.8.8.8/dns-query"),a=async()=>{const{host:e,isHostDomain:c}=is(n),t={host:e,isDomain:c};if(c){const{ipv4:c,ipv6:d}=await Gi(e);t.ipv4=c,t.ipv6=d}return t},i={remoteDNS:n,dohHost:await a(),localDNS:r("localDNS","8.8.8.8"),antiSanctionDNS:r("antiSanctionDNS","78.157.42.100"),VLTRFakeDNS:r("VLTRFakeDNS",!1),proxyIPMode:r("proxyIPMode","proxyip"),proxyIPs:r("proxyIPs",[]),prefixes:r("prefixes",[]),outProxy:r("outProxy",""),outProxyParams:r("outProxy",{},e=>bs(e)),cleanIPs:r("cleanIPs",[]),VLTRenableIPv6:r("VLTRenableIPv6",!0),customCdnAddrs:r("customCdnAddrs",[]),customCdnHost:r("customCdnHost",""),customCdnSni:r("customCdnSni",""),bestVLTRInterval:r("bestVLTRInterval",30),VLConfigs:r("VLConfigs",!0),TRConfigs:r("TRConfigs",!0),ports:r("ports",[443]),fingerprint:r("fingerprint","chrome"),fragmentMode:r("fragmentMode","custom"),fragmentLengthMin:r("fragmentLengthMin",100),fragmentLengthMax:r("fragmentLengthMax",200),fragmentIntervalMin:r("fragmentIntervalMin",1),fragmentIntervalMax:r("fragmentIntervalMax",1),fragmentPackets:r("fragmentPackets","tlshello"),bypassIran:r("bypassIran",!1),bypassChina:r("bypassChina",!1),bypassRussia:r("bypassRussia",!1),bypassOpenAi:r("bypassOpenAi",!1),bypassMicrosoft:r("bypassMicrosoft",!1),bypassOracle:r("bypassOracle",!1),bypassDocker:r("bypassDocker",!1),bypassAdobe:r("bypassAdobe",!1),bypassEpicGames:r("bypassEpicGames",!1),bypassIntel:r("bypassIntel",!1),bypassAmd:r("bypassAmd",!1),bypassNvidia:r("bypassNvidia",!1),bypassAsus:r("bypassAsus",!1),bypassHp:r("bypassHp",!1),bypassLenovo:r("bypassLenovo",!1),blockAds:r("blockAds",!1),blockPorn:r("blockPorn",!1),blockUDP443:r("blockUDP443",!1),customBypassRules:r("customBypassRules",[]),customBlockRules:r("customBlockRules",[]),customBypassSanctionRules:r("customBypassSanctionRules",[]),warpEndpoints:r("warpEndpoints",["engage.cloudflareclient.com:2408"]),warpFakeDNS:r("warpFakeDNS",!1),warpEnableIPv6:r("warpEnableIPv6",!0),bestWarpInterval:r("bestWarpInterval",30),xrayUdpNoises:r("xrayUdpNoises",[{type:"rand",packet:"50-100",delay:"1-1",count:5}]),knockerNoiseMode:r("knockerNoiseMode","quic"),noiseCountMin:r("noiseCountMin",10),noiseCountMax:r("noiseCountMax",15),noiseSizeMin:r("noiseSizeMin",5),noiseSizeMax:r("noiseSizeMax",10),noiseDelayMin:r("noiseDelayMin",1),noiseDelayMax:r("noiseDelayMax",1),amneziaNoiseCount:r("amneziaNoiseCount",5),amneziaNoiseSizeMin:r("amneziaNoiseSizeMin",50),amneziaNoiseSizeMax:r("amneziaNoiseSizeMax",100),panelVersion:No.panelVersion};try{await c.kv.put("proxySettings",JSON.stringify(i))}catch(e){throw console.log(e),new Error(`An error occurred while updating KV - ${e}`)}return i}function bs(e){if(!e)return{};const{hostname:c,port:t,username:d,password:f,search:r,protocol:n}=new URL(e),a=n.slice(0,-1);let i={protocol:"ss"===a?atob("c2hhZG93c29ja3M="):a,server:c,port:+t};const s=()=>{const e=new URLSearchParams(r);for(const[c,t]of e)i[c]=t};switch(a){case atob("dmxlc3M="):i.uuid=d,s();break;case atob("dHJvamFu"):i.password=d,s();break;case atob("c3M="):const e=(new TextDecoder).decode(Uint8Array.from(atob(d),e=>e.charCodeAt(0))),[c,...t]=e.split(":");i.method=c,i.password=t.join(":"),s();break;case atob("c29ja3M="):case"http":i.user=d,i.pass=f;break;default:return{}}return i}async function ps(e,c,t){const d="localhost"===Eo.localDNS?"system":`${Eo.localDNS}#DIRECT`,f=undefined,r=c?`💦 Warp ${t?"Pro ":""}- Best Ping 🚀`:e?"💦 Best Ping 🚀":"✅ Selector",n={enable:!0,listen:"0.0.0.0:1053",ipv6:Eo.VLTRenableIPv6&&!c||Eo.warpEnableIPv6&&c,"respect-rules":!0,"use-system-hosts":!1,nameserver:[`${c?"1.1.1.1":Eo.remoteDNS}#${r}`],"proxy-server-nameserver":[d],"nameserver-policy":{"raw.githubusercontent.com":d,"time.cloudflare.com":d}};if(Eo.dohHost.isDomain&&!c){const{ipv4:e,ipv6:c,host:t}=Eo.dohHost;n.hosts={[t]:Eo.VLTRenableIPv6?[...e,...c]:e}}const a=is(Eo.antiSanctionDNS);if(a.isHostDomain&&(n["nameserver-policy"][a.host]=d),e&&!c){const e=Eo.outProxyParams.server;Yi(e)&&(n["nameserver-policy"][e]=`${Eo.remoteDNS}#${r}`)}const i=Rs();Eo.customBlockRules.forEach(e=>{Yi(e)&&(n.hosts||(n.hosts={}),n.hosts[`+.${e}`]="rcode://refused")}),Eo.customBypassRules.forEach(e=>{Yi(e)&&(n["nameserver-policy"][`+.${e}`]=`${Eo.localDNS}#DIRECT`)}),Eo.customBypassSanctionRules.forEach(e=>{Yi(e)&&(n["nameserver-policy"][`+.${e}`]=`${Eo.antiSanctionDNS}#DIRECT`)});for(const{rule:e,ruleProvider:c,type:t,dns:d}of i){if(!e||!c?.geosite)continue;const{geosite:f}=c;"DIRECT"===t?n["nameserver-policy"][`rule-set:${f}`]=d:(n.hosts||(n.hosts={}),n.hosts[`rule-set:${f}`]="rcode://refused")}const s=undefined;return(Eo.VLTRFakeDNS&&!c||Eo.warpFakeDNS&&c)&&Object.assign(n,{"enhanced-mode":"fake-ip","fake-ip-range":"198.18.0.1/16","fake-ip-filter":["*","+.lan","+.local"]}),n}function Es(e){const c=Rs();Eo.customBlockRules.forEach(e=>{const t=Yi(e);c.push({rule:!0,type:"REJECT",domain:t?e:null,ip:t?null:e})});const t=undefined;[...Eo.customBypassRules,...Eo.customBypassSanctionRules].forEach(e=>{const t=Yi(e);c.push({rule:!0,type:"DIRECT",domain:t?e:null,ip:t?null:e})});const d={};function f(e){const{geosite:c,geoip:t,geositeURL:f,geoipURL:r,format:n}=e,a="text"===n?"txt":n,i=(e,c,t)=>{e&&(d[e]={type:"http",format:n,behavior:c,url:t,path:`./ruleset/${e}.${a}`,interval:86400})};i(c,"domain",f),i(t,"ipcidr",r)}const r=new Map;c.forEach(e=>{if(!e.rule)return;const{type:c,domain:t,ip:d,ruleProvider:n}=e,{geosite:a,geoip:i}=n||{};r.has(c)||r.set(c,{domain:[],ip:[],geosite:[],geoip:[]}),t&&r.get(c).domain.push(t),d&&r.get(c).ip.push(d),a&&r.get(c).geosite.push(a),i&&r.get(c).geoip.push(i),(a||i)&&f(n)});let n=["GEOIP,lan,DIRECT,no-resolve"];function a(e,c,t,d,f){t&&t.forEach(e=>n.push(`DOMAIN-SUFFIX,${e},${f}`)),e&&e.forEach(e=>n.push(`RULE-SET,${e},${f}`)),d&&d.forEach(e=>{const c=ns(e)?"IP-CIDR":"IP-CIDR6",t=as(e)?e.replace(/\[|\]/g,""):e,d=e.includes("/")?"":ns(e)?"/32":"/128";n.push(`${c},${t}${d},${f}`)}),c&&c.forEach(e=>n.push(`RULE-SET,${e},${f}`))}e?Eo.blockUDP443&&n.push("AND,((NETWORK,udp),(DST-PORT,443)),REJECT"):n.push("NETWORK,udp,REJECT");for(const[e,c]of r){const{domain:t,ip:d,geosite:f,geoip:r}=c;t.length&&a(null,null,t,null,e),f.length&&a(f,null,null,null,e),d.length&&a(null,null,null,d,e),r.length&&a(null,r,null,null,e)}return n.push("MATCH,✅ Selector"),{rules:n,ruleProviders:d}}function Bs(e,c,t,d,f,r){const n=os(t),a=as(c)?c.replace(/\[|\]/g,""):c,i=Eo.VLTRenableIPv6?"dual":"ipv4",s="randomized"===Eo.fingerprint?"random":Eo.fingerprint,o={name:e,type:atob("dmxlc3M="),server:a,port:t,uuid:Uo.userID,udp:!1,"packet-encoding":"","ip-version":i,tls:n,network:"ws",tfo:!0,"ws-opts":{path:fs("vl"),headers:{Host:d},"max-early-data":2560,"early-data-header-name":"Sec-WebSocket-Protocol"}};return n&&Object.assign(o,{servername:f,alpn:["http/1.1"],"client-fingerprint":s,"skip-cert-verify":r}),o}function Hs(e,c,t,d,f,r){const n=as(c)?c.replace(/\[|\]/g,""):c,a=Eo.VLTRenableIPv6?"dual":"ipv4",i="randomized"===Eo.fingerprint?"random":Eo.fingerprint;return{name:e,type:atob("dHJvamFu"),server:n,port:t,password:Uo.TrPass,udp:!1,"ip-version":a,tls:!0,network:"ws",tfo:!0,"ws-opts":{path:fs("tr"),headers:{Host:d},"max-early-data":2560,"early-data-header-name":"Sec-WebSocket-Protocol"},sni:f,alpn:["http/1.1"],"client-fingerprint":i,"skip-cert-verify":r}}function ms(e,c,t,d,f){const{host:r,port:n}=ss(t),a=Eo.warpEnableIPv6?"dual":"ipv4",{warpIPv6:i,reserved:s,publicKey:o,privateKey:u}=es(e,d);let l={name:c,type:"wireguard",ip:"172.16.0.2/32",ipv6:i,"ip-version":a,"private-key":u,server:d?"162.159.192.1":r,port:d?2408:n,"public-key":o,"allowed-ips":["0.0.0.0/0","::/0"],reserved:s,udp:!0,mtu:1280};return d&&(l["dialer-proxy"]=d),f&&(l["amnezia-wg-option"]={jc:String(Eo.amneziaNoiseCount),jmin:String(Eo.amneziaNoiseSizeMin),jmax:String(Eo.amneziaNoiseSizeMax)}),l}function gs(){const{outProxyParams:e}=Eo,{protocol:c,server:t,port:d}=e,f={name:"",type:c,server:t,port:d,"dialer-proxy":""};if([atob("c29ja3M="),"http"].includes(c)){const{user:t,pass:d}=e;return f.username=t,f.password=d,c===atob("c29ja3M=")&&(f.type=atob("c29ja3M1")),f}if(c===atob("c2hhZG93c29ja3M=")){const{password:c,method:t}=e;return f.cipher=t,f.password=c,f.type=atob("c3M="),f}const{security:r,type:n,sni:a,fp:i,alpn:s,pbk:o,sid:u,headerType:l,host:w,path:h,serviceName:A}=e;if(c===atob("dmxlc3M=")){const{uuid:c,flow:t}=e;f.uuid=c,f.flow=t}if(c===atob("dHJvamFu")){const{password:c}=e;f.password=c}if("tls"===r){const e=s?s?.split(","):[];Object.assign(f,{tls:!0,servername:a,alpn:e,"client-fingerprint":i})}if("reality"===r&&Object.assign(f,{tls:!0,servername:a,"client-fingerprint":i,"reality-opts":{"public-key":o,"short-id":u}}),"http"===l){f.network="http";const e=h?.split(",");f["http-opts"]={method:"GET",path:e,headers:{Connection:["keep-alive"],"Content-Type":["application/octet-stream"]}}}if("ws"===n||"httpupgrade"===n){const e=h?.split("?ed=")[0];if(f.network="ws",f["ws-opts"]={path:e,headers:{Host:w}},"httpupgrade"===n)f["ws-opts"][`${atob("djJyYXk=")}-http-upgrade`]=!0,f["ws-opts"][`${atob("djJyYXk=")}-http-upgrade-fast-open`]=!0;else{const e=+h?.split("?ed=")[1];f["ws-opts"]["max-early-data"]=e,f["ws-opts"]["early-data-header-name"]="Sec-WebSocket-Protocol"}}return"grpc"===n&&(f.network=n,f["grpc-opts"]={"grpc-service-name":A}),f}async function ys(e,c,t,d,f,r,n){const{rules:a,ruleProviders:i}=Es(r),s={"mixed-port":7890,ipv6:!0,"allow-lan":!0,mode:"rule","log-level":"warning","disable-keep-alive":!1,"keep-alive-idle":10,"keep-alive-interval":15,...!r&&{"tcp-concurrent":!0},"unified-delay":!1,"geo-auto-update":!0,"geo-update-interval":168,"external-controller":"127.0.0.1:9090","external-ui-url":"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip","external-ui":"ui","external-controller-cors":{"allow-origins":["*"],"allow-private-network":!0},profile:{"store-selected":!0,"store-fake-ip":!0},dns:await ps(f,r,n),tun:{enable:!0,stack:"mixed","auto-route":!0,"strict-route":!0,"auto-detect-interface":!0,"dns-hijack":["any:53","tcp://any:53"],mtu:9e3},sniffer:{enable:!0,"force-dns-mapping":!0,"parse-pure-ip":!0,"override-destination":!0,sniff:{HTTP:{ports:[80,8080,8880,2052,2082,2086,2095]},TLS:{ports:[443,8443,2053,2083,2087,2096]}}},proxies:e,"proxy-groups":[{name:"✅ Selector",type:"select",proxies:c}],"rule-providers":i,rules:a,ntp:{enable:!0,server:"time.cloudflare.com",port:123,interval:30}},o=(e,c)=>s["proxy-groups"].push({name:e,type:"url-test",url:"https://www.gstatic.com/generate_204",interval:r?Eo.bestWarpInterval:Eo.bestVLTRInterval,tolerance:50,proxies:c});return o(r?`💦 Warp ${n?"Pro ":""}- Best Ping 🚀`:"💦 Best Ping 🚀",t),r&&o(`💦 WoW ${n?"Pro ":""}- Best Ping 🚀`,d),f&&o("💦 🔗 Best Ping 🚀",d),s}async function xs(e){let c;Eo.outProxy&&(c=await us(e,gs));const t=await qi(!1),d=[],f=[],r=[],n=[...Eo.VLConfigs?[atob("VkxFU1M=")]:[],...Eo.TRConfigs?[atob("VHJvamFu")]:[]],a=["💦 Best Ping 🚀",...c?["💦 🔗 Best Ping 🚀"]:[]];n.forEach(e=>{let n=1;Eo.ports.forEach(i=>{t.forEach(t=>{let s;const o=Eo.customCdnAddrs.includes(t),u=o?"C":"",l=o?Eo.customCdnSni:ts(No.hostName),w=o?Eo.customCdnHost:No.hostName,h=cs(n,i,t,e,u).replace(" : "," - ");if(e===atob("VkxFU1M=")&&(s=Bs(h,t,i,w,l,o)),e===atob("VHJvamFu")&&os(i)&&(s=Hs(h,t,i,w,l,o)),s){if(d.push(h),a.push(h),r.push(s),c){const d=cs(n,i,t,e,u,!0);let s=structuredClone(c);s.name=d,s["dialer-proxy"]=h,r.push(s),f.push(d),a.push(d)}n++}})})});const i=await ys(r,a,d,f,c,!1,!1);return new Response(JSON.stringify(i,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function Ts(e,c,t){const{warpConfigs:d}=await hs(e,c),f=[],r=[],n=[],a=[`💦 Warp ${t?"Pro ":""}- Best Ping 🚀`,`💦 WoW ${t?"Pro ":""}- Best Ping 🚀`];Eo.warpEndpoints.forEach((e,c)=>{const i=`💦 ${c+1} - Warp ${t?"Pro ":""}🇮🇷`;f.push(i);const s=`💦 ${c+1} - WoW ${t?"Pro ":""}🌍`;r.push(s),a.push(i,s);const o=ms(d,i,e,"",t),u=ms(d,s,e,i);n.push(o,u)});const i=await ys(n,a,f,r,!1,!0,t);return new Response(JSON.stringify(i,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function Rs(){const e="localhost"===Eo.localDNS?"system":`${Eo.localDNS}#DIRECT`;return[{rule:!0,type:"REJECT",ruleProvider:{format:"text",geosite:"malware",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/malware.txt",geoip:"malware-cidr",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/malware-ip.txt"}},{rule:!0,type:"REJECT",ruleProvider:{format:"text",geosite:"phishing",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/phishing.txt",geoip:"phishing-cidr",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/phishing-ip.txt"}},{rule:!0,type:"REJECT",ruleProvider:{format:"text",geosite:"cryptominers",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/cryptominers.txt"}},{rule:Eo.blockAds,type:"REJECT",ruleProvider:{format:"text",geosite:"category-ads-all",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/category-ads-all.txt"}},{rule:Eo.blockPorn,type:"REJECT",ruleProvider:{format:"text",geosite:"nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/nsfw.txt"}},{rule:Eo.bypassIran,type:"DIRECT",dns:e,ruleProvider:{format:"text",geosite:"ir",geoip:"ir-cidr",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/ir.txt",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-clash-rules/release/ircidr.txt"}},{rule:Eo.bypassChina,type:"DIRECT",dns:e,ruleProvider:{format:"yaml",geosite:"cn",geoip:"cn-cidr",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.yaml",geoipURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/cn.yaml"}},{rule:Eo.bypassRussia,type:"DIRECT",dns:e,ruleProvider:{format:"yaml",geosite:"ru",geoip:"ru-cidr",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/category-ru.yaml",geoipURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/ru.yaml"}},{rule:Eo.bypassOpenAi,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"openai",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/openai.yaml"}},{rule:Eo.bypassMicrosoft,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"microsoft",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/microsoft.yaml"}},{rule:Eo.bypassOracle,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"oracle",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/oracle.yaml"}},{rule:Eo.bypassDocker,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"docker",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/docker.yaml"}},{rule:Eo.bypassAdobe,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"adobe",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/adobe.yaml"}},{rule:Eo.bypassEpicGames,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"epicgames",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/epicgames.yaml"}},{rule:Eo.bypassIntel,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"intel",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/intel.yaml"}},{rule:Eo.bypassAmd,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"amd",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/amd.yaml"}},{rule:Eo.bypassNvidia,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"nvidia",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/nvidia.yaml"}},{rule:Eo.bypassAsus,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"asus",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/asus.yaml"}},{rule:Eo.bypassHp,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"hp",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/hp.yaml"}},{rule:Eo.bypassLenovo,type:"DIRECT",dns:`${Eo.antiSanctionDNS}#DIRECT`,ruleProvider:{format:"yaml",geosite:"lenovo",geositeURL:"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/lenovo.yaml"}}]}async function vs(e,c){const t=undefined,d=new URL(Eo.remoteDNS).protocol.replace(":",""),f=[{type:e?"udp":d,server:e?"1.1.1.1":Eo.dohHost.host,detour:e?"💦 Warp - Best Ping 🚀":c?"💦 Best Ping 🚀":"✅ Selector",tag:"dns-remote"}];function r(e,c,t,d,r,n){f.push({type:e,...c&&{server:c},...t&&{server_port:t},...d&&{detour:d},...n&&{domain_resolver:{server:n,strategy:"ipv4_only"}},tag:r})}"localhost"===Eo.localDNS?r("local",null,null,null,"dns-direct"):r("udp",Eo.localDNS,53,null,"dns-direct");const n=[{domain:["raw.githubusercontent.com"],server:"dns-direct"},{clash_mode:"Direct",server:"dns-direct"},{clash_mode:"Global",server:"dns-remote"}];if(c){const{server:e}=Eo.outProxyParams;Yi(e)&&n.unshift({domain:e,server:"dns-remote"})}if(Eo.dohHost.isDomain&&!e){const{ipv4:e,ipv6:c,host:t}=Eo.dohHost;f.push({type:"hosts",tag:"hosts",predefined:{[t]:[...e,...Eo.VLTRenableIPv6?c:[]]}}),n.unshift({ip_accept_any:!0,server:"hosts"})}function a(e,c,t,d){let f,r;const a=[];c&&(r="and",f="logical",a.push({rule_set:e},{rule_set:c}));const i="reject"===d?"reject":"route",s="reject"===d?null:d;n.push({...f&&{type:f},...r&&{mode:r},...a.length&&{rules:a},...e&&!c&&{rule_set:e},...t&&{domain_suffix:t},action:i,...s&&{server:s}})}const i=Ls();Eo.customBlockRules.forEach(e=>{Yi(e)&&i.unshift({rule:!0,domain:e,type:"reject"})}),Eo.customBypassRules.forEach(e=>{Yi(e)&&i.push({rule:!0,domain:e,type:"direct",dns:"dns-direct"})}),Eo.customBypassSanctionRules.forEach(e=>{Yi(e)&&i.push({rule:!0,domain:e,type:"direct",dns:"dns-anti-sanction"})});const s=new Map;for(const{rule:e,geosite:c,geoip:t,domain:d,type:f,dns:r}of i)if(e)if(c&&t&&"direct"===f)a(c,t,null,r);else{const e=r||f;s.has(e)||s.set(e,{geosite:[],domain:[]}),c&&s.get(e).geosite.push(c),d&&s.get(e).domain.push(d)}for(const[e,c]of s){const{geosite:t,domain:d}=c;d.length&&a(null,null,d,e),t.length&&a(t,null,null,e)}const o=undefined;if(s.has("dns-anti-sanction")){const e=is(Eo.antiSanctionDNS);e.isHostDomain?r("https",e.host,443,null,"dns-anti-sanction","dns-direct"):r("udp",Eo.antiSanctionDNS,53,null,"dns-anti-sanction",null)}const u=undefined;if(Eo.VLTRFakeDNS&&!e||Eo.warpFakeDNS&&e){const c={type:"fakeip",tag:"dns-fake",inet4_range:"198.18.0.0/15"},t=undefined;(Eo.VLTRenableIPv6&&!e||Eo.warpEnableIPv6&&e)&&(c.inet6_range="fc00::/18"),f.push(c),n.push({disable_cache:!0,inbound:"tun-in",query_type:["A","AAAA"],server:"dns-fake"})}return{servers:f,rules:n,strategy:"ipv4_only",independent_cache:!0}}function Ms(e){const c=[{ip_cidr:"172.18.0.2",action:"hijack-dns"},{clash_mode:"Direct",outbound:"direct"},{clash_mode:"Global",outbound:"✅ Selector"},{action:"sniff"},{protocol:"dns",action:"hijack-dns"},{ip_is_private:!0,outbound:"direct"}];function t(e,t,d,f,r,n,a,i){const s="reject"===i?"reject":"route",o="direct"===i?"direct":null;c.push({...d&&{rule_set:d},...f&&{rule_set:f},...e&&{domain_suffix:e},...t&&{ip_cidr:t},...r&&{network:r},...n&&{protocol:n},...a&&{port:a},action:s,...o&&{outbound:o}})}e?Eo.blockUDP443&&t(null,null,null,null,"udp","quic",443,"reject"):t(null,null,null,null,"udp",null,null,"reject");const d=Ls();Eo.customBlockRules.forEach(e=>{const c=Yi(e);d.push({rule:!0,type:"reject",domain:c?e:null,ip:c?null:as(e)?e.replace(/\[|\]/g,""):e})});const f=undefined;[...Eo.customBypassRules,...Eo.customBypassSanctionRules].forEach(e=>{const c=Yi(e);d.push({rule:!0,type:"direct",domain:c?e:null,ip:c?null:as(e)?e.replace(/\[|\]/g,""):e})});const r=[];function n(e){const{geosite:c,geositeURL:t,geoip:d,geoipURL:f}=e;c&&r.push({type:"remote",tag:c,format:"binary",url:t,download_detour:"direct"}),d&&r.push({type:"remote",tag:d,format:"binary",url:f,download_detour:"direct"})}const a=new Map;d.forEach(e=>{const{rule:c,type:t,domain:d,ip:f,geosite:r,geoip:i}=e;c&&(a.has(t)||a.set(t,{domain:[],ip:[],geosite:[],geoip:[]}),d&&a.get(t).domain.push(d),f&&a.get(t).ip.push(f),r&&a.get(t).geosite.push(r),i&&a.get(t).geoip.push(i),(r||i)&&n(e))});for(const[e,c]of a){const{domain:d,ip:f,geosite:r,geoip:n}=c;d.length&&t(d,null,null,null,null,null,null,e),r.length&&t(null,null,r,null,null,null,null,e),f.length&&t(null,f,null,null,null,null,null,e),n.length&&t(null,null,null,n,null,null,null,e)}return{rules:c,rule_set:r,auto_detect_interface:!0,default_domain_resolver:{server:"dns-direct",strategy:Eo.VLTRenableIPv6?"prefer_ipv4":"ipv4_only",rewrite_ttl:60},final:"✅ Selector"}}function ks(e,c,t,d,f,r,n){const a={tag:e,type:atob("dmxlc3M="),server:c,server_port:t,uuid:Uo.userID,network:"tcp",tcp_fast_open:!0,packet_encoding:"",transport:{early_data_header_name:"Sec-WebSocket-Protocol",max_early_data:2560,headers:{Host:d},path:fs("vl"),type:"ws"}};return os(t)&&(a.tls={alpn:"http/1.1",enabled:!0,insecure:r,server_name:f,record_fragment:n,utls:{enabled:!0,fingerprint:Eo.fingerprint}}),a}function Ss(e,c,t,d,f,r,n){const a={tag:e,type:atob("dHJvamFu"),password:Uo.TrPass,server:c,server_port:t,network:"tcp",tcp_fast_open:!0,transport:{early_data_header_name:"Sec-WebSocket-Protocol",max_early_data:2560,headers:{Host:d},path:fs("tr"),type:"ws"}};return os(t)&&(a.tls={alpn:"http/1.1",enabled:!0,insecure:r,server_name:f,record_fragment:n,utls:{enabled:!0,fingerprint:Eo.fingerprint}}),a}function _s(e,c,t,d){const{host:f,port:r}=ss(t),n=d?"162.159.192.1":f,a=d?2408:r,{warpIPv6:i,reserved:s,publicKey:o,privateKey:u}=es(e,d),l={tag:c,type:"wireguard",address:["172.16.0.2/32",i],mtu:1280,peers:[{address:n,port:a,public_key:o,reserved:rs(s),allowed_ips:["0.0.0.0/0","::/0"],persistent_keepalive_interval:5}],private_key:u};return d&&(l.detour=d),l}function Cs(){const{outProxyParams:e}=Eo,{protocol:c,server:t,port:d}=e,f={type:c,tag:"",server:t,server_port:d,detour:""};if([atob("c29ja3M="),"http"].includes(c)){const{user:t,pass:d}=e;return f.username=t,f.password=d,c===atob("c29ja3M=")&&(f.version="5"),f}if(c===atob("c2hhZG93c29ja3M=")){const{password:c,method:t}=e;return f.method=t,f.password=c,f}if(c===atob("dmxlc3M=")){const{uuid:c,flow:t}=e;f.uuid=c,f.flow=t}if(c===atob("dHJvamFu")){const{password:c}=e;f.password=c}const{security:r,type:n,sni:a,fp:i,alpn:s,pbk:o,sid:u,headerType:l,host:w,path:h,serviceName:A}=e;if("tls"===r||"reality"===r){const e=s?s?.split(",").filter(e=>"h2"!==e):[];f.tls={enabled:!0,server_name:a,insecure:!1,alpn:e,utls:{enabled:!0,fingerprint:i}},"reality"===r&&(f.tls.reality={enabled:!0,public_key:o,short_id:u},delete f.tls.alpn)}if("http"===l){const e=w?.split(",");f.transport={type:"http",host:e,path:h,method:"GET",headers:{Connection:["keep-alive"],"Content-Type":["application/octet-stream"]}}}if("ws"===n||"httpupgrade"===n){const e=h?.split("?ed=")[0];if(f.transport={type:n,path:e},"ws"===n){const e=+h?.split("?ed=")[1]||0;Object.assign(f.transport,{max_early_data:e,early_data_header_name:"Sec-WebSocket-Protocol",headers:{Host:w}})}else f.transport.host=w}return"grpc"===n&&(f.transport={type:"grpc",service_name:A}),f}async function Ps(e,c,t,d,f,r,n,a){const i={log:{level:"warn",timestamp:!0},dns:await vs(r,a),inbounds:[{type:"tun",tag:"tun-in",address:["172.18.0.1/30",...n?["fdfe:dcba:9876::1/126"]:[]],mtu:9e3,auto_route:!0,strict_route:!0,endpoint_independent_nat:!0,stack:"mixed"},{type:"mixed",tag:"mixed-in",listen:"0.0.0.0",listen_port:2080}],outbounds:[...e,{type:"selector",tag:"✅ Selector",outbounds:t,interrupt_exist_connections:!1},{type:"direct",tag:"direct"}],route:Ms(r),ntp:{enabled:!0,server:"time.cloudflare.com",server_port:123,domain_resolver:"dns-direct",interval:"30m",write_to_system:!1},experimental:{cache_file:{enabled:!0,store_fakeip:!0},clash_api:{external_controller:"127.0.0.1:9090",external_ui:"ui",external_ui_download_url:"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip",external_ui_download_detour:"direct",default_mode:"Rule"}}};c.length&&(i.endpoints=c);const s=(e,c)=>i.outbounds.push({type:"urltest",tag:e,outbounds:c,url:"https://www.gstatic.com/generate_204",interrupt_exist_connections:!1,interval:r?`${Eo.bestWarpInterval}s`:`${Eo.bestVLTRInterval}s`});return s(r?"💦 Warp - Best Ping 🚀":"💦 Best Ping 🚀",d),r&&s("💦 WoW - Best Ping 🚀",f),a&&s("💦 🔗 Best Ping 🚀",f),i}async function Os(e,c){let t;Eo.outProxy&&(t=await us(e,Cs));const d=[],f=[],r=[],n=[...Eo.VLConfigs?[atob("VkxFU1M=")]:[],...Eo.TRConfigs?[atob("VHJvamFu")]:[]],a=await qi(c),i=c?Eo.ports.filter(e=>os(e)):Eo.ports,s=["💦 Best Ping 🚀",...t?["💦 🔗 Best Ping 🚀"]:[]];n.forEach(e=>{let n=1;i.forEach(i=>{a.forEach(a=>{const o=Eo.customCdnAddrs.includes(a),u=c?"F":o?"C":"",l=o?Eo.customCdnSni:ts(No.hostName),w=o?Eo.customCdnHost:No.hostName,h=cs(n,i,a,e,u),A=e===atob("VkxFU1M=")?ks(h,a,i,w,l,o,c):Ss(h,a,i,w,l,o,c);if(r.push(A),d.push(h),s.push(h),t){const c=cs(n,i,a,e,u,!0),d=structuredClone(t);d.tag=c,d.detour=h,r.push(d),f.push(c),s.push(c)}n++})})});const o=await Ps(r,[],s,d,f,!1,Eo.VLTRenableIPv6,t);return new Response(JSON.stringify(o,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function Ds(e,c){const{warpConfigs:t}=await hs(e,c),d=[],f=[],r=[],n=["💦 Warp - Best Ping 🚀","💦 WoW - Best Ping 🚀"];Eo.warpEndpoints.forEach((e,c)=>{const a=`💦 ${c+1} - Warp 🇮🇷`;d.push(a);const i=`💦 ${c+1} - WoW 🌍`;f.push(i),n.push(a,i);const s=_s(t,a,e,""),o=_s(t,i,e,a);r.push(s,o)});const a=await Ps([],r,n,d,f,!0,Eo.warpEnableIPv6);return new Response(JSON.stringify(a,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function Ls(){return[{rule:!0,type:"reject",geosite:"geosite-malware",geoip:"geoip-malware",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-malware.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-malware.srs"},{rule:!0,type:"reject",geosite:"geosite-phishing",geoip:"geoip-phishing",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-phishing.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-phishing.srs"},{rule:!0,type:"reject",geosite:"geosite-cryptominers",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-cryptominers.srs"},{rule:Eo.blockAds,type:"reject",geosite:"geosite-category-ads-all",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ads-all.srs"},{rule:Eo.blockPorn,type:"reject",geosite:"geosite-nsfw",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nsfw.srs"},{rule:Eo.bypassIran,type:"direct",dns:"dns-direct",geosite:"geosite-ir",geoip:"geoip-ir",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-ir.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ir.srs"},{rule:Eo.bypassChina,type:"direct",dns:"dns-direct",geosite:"geosite-cn",geoip:"geoip-cn",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-cn.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-cn.srs"},{rule:Eo.bypassRussia,type:"direct",dns:"dns-direct",geosite:"geosite-category-ru",geoip:"geoip-ru",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ru.srs",geoipURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ru.srs"},{rule:Eo.bypassOpenAi,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-openai",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-openai.srs"},{rule:Eo.bypassMicrosoft,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-microsoft",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-microsoft.srs"},{rule:Eo.bypassOracle,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-oracle",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-oracle.srs"},{rule:Eo.bypassDocker,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-docker",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-docker.srs"},{rule:Eo.bypassAdobe,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-adobe",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-adobe.srs"},{rule:Eo.bypassEpicGames,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-epicgames",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-epicgames.srs"},{rule:Eo.bypassIntel,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-intel",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-intel.srs"},{rule:Eo.bypassAmd,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-amd",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-amd.srs"},{rule:Eo.bypassNvidia,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-nvidia",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-nvidia.srs"},{rule:Eo.bypassAsus,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-asus",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-asus.srs"},{rule:Eo.bypassHp,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-hp",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-hp.srs"},{rule:Eo.bypassLenovo,type:"direct",dns:"dns-anti-sanction",geosite:"geosite-lenovo",geositeURL:"https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-lenovo.srs"}]}async function Is(e,c,t,d,f,r){function n(e,c,t,d,f){return{address:e,...c&&{domains:c},...t&&{expectIPs:t},...d&&{skipFallback:d},...f&&{tag:f}}}const a={};if(Eo.dohHost.isDomain&&!t&&!d){const{ipv4:e,ipv6:c,host:t}=Eo.dohHost;a[t]=Eo.VLTRenableIPv6?[...e,...c]:e}const i=Ys(),s=i.filter(({type:e})=>"block"===e);Eo.customBlockRules.forEach(e=>{Yi(e)&&s.push({rule:!0,domain:e})});for(const{rule:e,domain:c}of s)e&&(a[c]=["127.0.0.1"]);const o=c?await Gi(c,!Eo.VLTRenableIPv6):void 0;o&&(a[c]=[...o.ipv4,...o.ipv6]);const u=Object.keys(a).length?{hosts:a}:{},l=Eo.VLTRenableIPv6&&!d||Eo.warpEnableIPv6&&d,w={...u,servers:[],queryStrategy:!d||l?"UseIP":"UseIPv4",tag:"dns"};let h=!0,A=d?"1.1.1.1":Eo.remoteDNS;t&&(w.hosts||(w.hosts={}),A=`https://${f}/dns-query`,w.hosts[f]=r,h=!1,w.disableFallbackIfMatch=!0);const b=n(A,null,null,null,"remote-dns");w.servers.push(b);const p=i.filter(({type:e})=>"direct"===e);Yi(r?.[0])&&p.push({rule:!0,domain:`full:${r[0]}`,dns:Eo.localDNS}),e.forEach(e=>{Yi(e)&&p.push({rule:!0,domain:`full:${e}`,dns:Eo.localDNS})}),Eo.customBypassRules.forEach(e=>{Yi(e)&&p.push({rule:!0,domain:`domain:${e}`,dns:Eo.localDNS})}),Eo.customBypassSanctionRules.forEach(e=>{Yi(e)&&p.push({rule:!0,domain:`domain:${e}`,dns:Eo.antiSanctionDNS})});const{host:E,isHostDomain:B}=is(Eo.antiSanctionDNS);B&&p.push({rule:!0,domain:`full:${E}`,dns:Eo.localDNS});const H=[],m=new Map;for(const{rule:e,domain:c,ip:t,dns:d}of p)if(e){if(t){const e=n(d,[c],[t],h);w.servers.push(e)}else m.has(d)||m.set(d,[]),m.get(d).push(c);c&&H.push(c)}for(const[e,c]of m)if(c.length){const t=n(e,c,null,h);w.servers.push(t)}const g=undefined;if(Eo.VLTRFakeDNS&&!d||Eo.warpFakeDNS&&d){const e=H.length?n("fakedns",H,null,!1):"fakedns";w.servers.unshift(e)}return w}function Us(e,c,t,d){const f=[{inboundTag:["mixed-in"],port:53,outboundTag:"dns-out",type:"field"},{inboundTag:["dns-in"],outboundTag:"dns-out",type:"field"}],r=(e,c,t,d,r,n,a,i)=>f.push({...e&&{inboundTag:e},...c&&{domain:c},...t&&{ip:t},...d&&{port:d},...r&&{network:r},...n&&{protocol:[n]},...i?{balancerTag:a}:{outboundTag:a},type:"field"}),n=undefined,a=c?e?"all-chains":"all":e?"chain":t?"direct":"proxy",i=undefined;r(["remote-dns"],null,null,null,null,null,c?"all":"proxy",c),r(["dns"],null,null,null,null,null,"direct"),r(null,["geosite:private"],null,null,null,null,"direct"),r(null,null,["geoip:private"],null,null,null,"direct"),d&&Eo.blockUDP443&&r(null,null,null,443,"udp",null,"block"),d||t||r(null,null,null,null,"udp",null,"block",null);const s=Ys(),o=undefined;[...Eo.customBypassRules,...Eo.customBypassSanctionRules].forEach(e=>{const c=Yi(e);s.push({rule:!0,type:"direct",domain:c?`domain:${e}`:null,ip:c?null:e})}),Eo.customBlockRules.forEach(e=>{const c=Yi(e);s.push({rule:!0,type:"block",domain:c?`domain:${e}`:null,ip:c?null:e})});const u=new Map;for(const{rule:e,type:c,ip:t,domain:d}of s)e&&(u.has(c)||u.set(c,{domain:[],ip:[]}),d&&u.get(c).domain.push(d),t&&u.get(c).ip.push(t));for(const[e,c]of u){const{domain:t,ip:d}=c;t.length&&r(null,t,null,null,null,null,e,null),d.length&&r(null,null,d,null,null,null,e,null)}t&&(r(null,null,null,null,"tcp","tls","proxy"),r(null,null,null,null,"tcp","http","http-fragment"),r(null,null,null,null,"udp","quic","udp-noise"),r(null,null,null,"443,2053,2083,2087,2096,8443","udp",null,"udp-noise"));const l=undefined;return r(null,null,null,null,d||t?"tcp,udp":"tcp",null,a,c),f}function Ns(e,c,t,d,f,r,n){const a=`${fs("vl")}?ed=2560`,i={protocol:atob("dmxlc3M="),settings:{vnext:[{address:c,port:t,users:[{id:Uo.userID,encryption:"none",level:8}]}]},streamSettings:{network:"ws",security:"none",sockopt:{},wsSettings:{host:d,path:a}},tag:e};os(t)&&(i.streamSettings.security="tls",i.streamSettings.tlsSettings={allowInsecure:n,fingerprint:Eo.fingerprint,alpn:["http/1.1"],serverName:f});const s=i.streamSettings.sockopt;return r?s.dialerProxy="fragment":(s.domainStrategy="UseIP",s.tcpFastOpen=!0,s.happyEyeballs={tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}),i}function zs(e,c,t,d,f,r,n){const a=`${fs("tr")}?ed=2560`,i={protocol:atob("dHJvamFu"),settings:{servers:[{address:c,port:t,password:Uo.TrPass,level:8}]},streamSettings:{network:"ws",security:"none",sockopt:{},wsSettings:{host:d,path:a}},tag:e};os(t)&&(i.streamSettings.security="tls",i.streamSettings.tlsSettings={allowInsecure:n,fingerprint:Eo.fingerprint,alpn:["http/1.1"],serverName:f});const s=i.streamSettings.sockopt;return r?s.dialerProxy="fragment":(s.domainStrategy="UseIP",s.tcpFastOpen=!0,s.happyEyeballs={tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}),i}function Ws(e,c,t,d){const{warpIPv6:f,reserved:r,publicKey:n,privateKey:a}=es(e,t),i={protocol:"wireguard",settings:{address:["172.16.0.2/32",f],mtu:1280,peers:[{endpoint:t?"162.159.192.1:2408":c,publicKey:n,keepAlive:5}],reserved:rs(r),secretKey:a},tag:t?"chain":"proxy"};let s="";if(t&&(s="proxy"),!t&&d&&"xray"===No.client&&(s="udp-noise"),s&&(i.streamSettings={sockopt:{dialerProxy:s}}),"xray-knocker"===No.client&&!t){const{knockerNoiseMode:e,noiseCountMin:c,noiseCountMax:t,noiseSizeMin:d,noiseSizeMax:f,noiseDelayMin:r,noiseDelayMax:n}=Eo;Object.assign(i.settings,{wnoise:e,wnoisecount:c===t?String(c):`${c}-${t}`,wpayloadsize:d===f?String(d):`${d}-${f}`,wnoisedelay:r===n?String(r):`${r}-${n}`})}return i}function Xs(){const{outProxyParams:e}=Eo,{protocol:c,security:t,type:d,server:f,port:r}=e,n={protocol:c,mux:{enabled:!0,concurrency:8,xudpConcurrency:16,xudpProxyUDP443:"reject"},settings:{},streamSettings:{network:d||"raw",security:t,sockopt:{dialerProxy:"proxy"}},tag:"chain"};if([atob("c29ja3M="),"http"].includes(c)){const{user:c,pass:t}=e;return n.settings.servers=[{address:f,port:r,users:[{user:c,pass:t,level:8}]}],n}if(c===atob("c2hhZG93c29ja3M=")){const{password:c,method:t}=e;return n.settings.servers=[{address:f,method:t,ota:!1,password:c,port:r,level:8}],n}if(c===atob("dmxlc3M=")){const{uuid:c,flow:t}=e;n.settings.vnext=[{address:f,port:r,users:[{encryption:"none",flow:t,id:c,level:8,security:"auto"}]}]}if(c===atob("dHJvamFu")){const{password:c}=e;n.settings.servers=[{address:f,port:r,password:c,level:8}]}const{sni:a,fp:i,alpn:s,pbk:o,sid:u,spx:l,headerType:w,host:h,path:A,authority:b,serviceName:p,mode:E}=e;if("tls"===t){const e=s?s?.split(","):[];n.streamSettings.tlsSettings={allowInsecure:!1,fingerprint:i,alpn:e,serverName:a}}if("reality"===t&&(delete n.mux,n.streamSettings.realitySettings={fingerprint:i,publicKey:o,serverName:a,shortId:u,spiderX:l}),"http"===w){const e=A?.split(","),c=h?.split(",");n.streamSettings.tcpSettings={header:{request:{headers:{Host:c},method:"GET",path:e,version:"1.1"},response:{headers:{"Content-Type":["application/octet-stream"]},reason:"OK",status:"200",version:"1.1"},type:"http"}}}return["tcp","raw"].includes(d)&&"reality"!==t&&!w&&(n.streamSettings.rawSettings={header:{type:"none"}}),"ws"===d&&(n.streamSettings.wsSettings={host:h,path:A}),"httpupgrade"===d&&(n.streamSettings.httpupgradeSettings={host:h,path:A}),"grpc"===d&&(delete n.mux,n.streamSettings.grpcSettings={authority:b,multiMode:"multi"===E,serviceName:p}),n}function Fs(e,c,t,d,f){const r={tag:t,protocol:"freedom",settings:{}};if(e){const{fragmentPackets:e,fragmentLengthMin:c,fragmentLengthMax:t,fragmentIntervalMin:n,fragmentIntervalMax:a}=Eo;r.settings.fragment={packets:e,length:d||`${c}-${t}`,interval:f||`${n}-${a}`},r.streamSettings={sockopt:{tcpFastOpen:!0,domainStrategy:"UseIP",happyEyeballs:{tryDelayMs:250,prioritizeIPv6:!1,interleave:2,maxConcurrentTry:4}}}}if(c){r.settings.noises=[];const c=undefined;structuredClone(Eo.xrayUdpNoises).forEach(e=>{const c=e.count;delete e.count,r.settings.noises.push(...Array.from({length:c},()=>e))}),e||(r.settings.domainStrategy=Eo.warpEnableIPv6?"UseIPv4v6":"UseIPv4")}return r}async function js(e,c,t,d,f,r,n,a,i,s,o){const u=Eo.VLTRFakeDNS&&!r||Eo.warpFakeDNS&&r,l={remarks:e,log:{loglevel:"warning"},dns:await Is(a,i,n,r,s,o),inbounds:[{port:10808,protocol:"socks",settings:{auth:"noauth",udp:!0,userLevel:8},sniffing:{destOverride:["http","tls",...n?["quic"]:[],...u?["fakedns"]:[]],enabled:!0,routeOnly:!0},tag:"mixed-in"},{port:10853,protocol:"dokodemo-door",settings:{address:"1.1.1.1",network:"tcp,udp",port:53},tag:"dns-in"}],outbounds:[...c,{protocol:"dns",tag:"dns-out"},{protocol:"freedom",settings:{domainStrategy:"UseIP"},tag:"direct"},{protocol:"blackhole",settings:{response:{type:"http"}},tag:"block"}],policy:{levels:{8:{connIdle:300,downlinkOnly:1,handshake:4,uplinkOnly:1}},system:{statsOutboundUplink:!0,statsOutboundDownlink:!0}},routing:{domainStrategy:"IPIfNonMatch",rules:Us(d,t,n,r)},stats:{}};if(t){const e=(e,c,t)=>({tag:e,selector:[c],strategy:{type:"leastPing"},...t&&{fallbackTag:"proxy-2"}});if(l.routing.balancers=[e("all","proxy",f)],d){const c=e("all-chains","chain",!1);l.routing.balancers.push(c)}l.observatory={subjectSelector:d?["chain","proxy"]:["proxy"],probeUrl:"https://www.gstatic.com/generate_204",probeInterval:`${r?Eo.bestWarpInterval:Eo.bestVLTRInterval}s`,enableConcurrency:!0}}return l}async function $s(e,c,t,d,f){const r=d.length,n=undefined,a=`💦 ${r?"🔗 ":""}Best Ping 🚀`,i=[...d,...t];if(f){const e=Fs(!0,!1,"fragment");i.push(e)}const s=await js(a,i,!0,r,!0,!1,!1,c,null);r&&await $s(e,c,t,[],f),e.push(s)}async function Js(e,c,t){const d=undefined,f=[];["10-20","20-30","30-40","40-50","50-60","60-70","70-80","80-90","90-100","10-30","20-40","30-50","40-60","50-70","60-80","70-90","80-100","100-200"].forEach((e,d)=>{if(c){const e=structuredClone(c);e.tag=`chain-${d+1}`,e.streamSettings.sockopt.dialerProxy=`proxy-${d+1}`,f.push(e)}const r=structuredClone(t);r.tag=`proxy-${d+1}`,r.streamSettings.sockopt.dialerProxy=`fragment-${d+1}`;const n=undefined,a=Fs(!0,!1,`fragment-${d+1}`,e,`${Eo.fragmentIntervalMin}-${Eo.fragmentIntervalMax}`);f.push(r,a)});const r=c?"🔗 ":"",n=await js(`💦 ${r}Best Fragment 😎`,f,!0,c,!1,!1,!1,[],No.hostName);c&&await Js(e,!1,t),e.push(n)}async function Ks(e){const c=Fs(!0,!1,"proxy"),t=Fs(!1,!0,"udp-noise"),d=Fs(!0,!1,"http-fragment");d.settings.fragment.packets="1-1";const f=[c,d,t],r=await js("💦 1 - Workerless ⭐",f,!1,!1,!1,!1,!0,[],!1,"cloudflare-dns.com",["cloudflare.com"]),n=await js("💦 2 - Workerless ⭐",f,!1,!1,!1,!1,!0,[],!1,"dns.google",["8.8.8.8","8.8.4.4"]);e.push(r,n)}async function Vs(e,c){let t;Eo.outProxy&&(t=await us(e,Xs));const d=await qi(c),f=Eo.ports.filter(e=>!c||os(e)),r=[...Eo.VLConfigs?[atob("VkxFU1M=")]:[],...Eo.TRConfigs?[atob("VHJvamFu")]:[]],n=[],a=[],i=[];let s=1;const o=c?[Fs(!0,!1,"fragment")]:[];for(const e of r){let r=1;for(const u of f)for(const f of d){const d=Eo.customCdnAddrs.includes(f)&&!c,l=d?Eo.customCdnSni:ts(No.hostName),w=d?Eo.customCdnHost:No.hostName,h=d?"C":c?"F":"",A=e===atob("VkxFU1M=")?Ns("proxy",f,u,w,l,c,d):zs("proxy",f,u,w,l,c,d),b=[A,...o],p=structuredClone(A);p.tag=`proxy-${s}`,a.push(p);const E=cs(r,u,f,e,h,!1),B=await js(E,b,!1,!1,!1,!1,!1,[f],null);if(n.push(B),t){const c=cs(r,u,f,e,h,!0),d=await js(c,[t,...b],!1,!0,!1,!1,!1,[f],null);n.push(d);const a=structuredClone(t);a.tag=`chain-${s}`,a.streamSettings.sockopt.dialerProxy=`proxy-${s}`,i.push(a)}r++,s++}}return await $s(n,d,a,i,c),c&&(await Js(n,t,a[0]),await Ks(n)),new Response(JSON.stringify(n,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}async function Zs(e,c,t,d){const{warpConfigs:f}=await hs(e,c),r=t?" Pro ":" ",n=[],a=[],i=[],s=t&&!d?[Fs(!1,!0,"udp-noise")]:[];for(const[e,c]of Eo.warpEndpoints.entries()){const d=[...s],o=[...s],u=c.split(":")[0],l=Ws(f,c,!1,t),w=Ws(f,c,!0,t);d.unshift(l),o.unshift(w,l);const h=await js(`💦 ${e+1} - Warp${r}🇮🇷`,d,!1,!1,!1,!0,!1,[u],null);n.push(h);const A=await js(`💦 ${e+1} - WoW${r}🌍`,o,!1,!0,!1,!0,!1,[u],null);n.push(A);const b=structuredClone(l);b.tag=`proxy-${e+1}`,a.push(b);const p=structuredClone(w);p.tag=`chain-${e+1}`,p.streamSettings.sockopt.dialerProxy=`proxy-${e+1}`,i.push(p)}const o=Eo.warpEndpoints.map(e=>e.split(":")[0]).filter(e=>Yi(e)),u=[...a,...s],l=[...i,...a,...s],w=await js(`💦 Warp${r}- Best Ping 🚀`,u,!0,!1,!1,!0,!1,o,null),h=await js(`💦 WoW${r}- Best Ping 🚀`,l,!0,!0,!1,!0,!1,o,null);return n.push(w,h),new Response(JSON.stringify(n,null,4),{status:200,headers:{"Content-Type":"text/plain;charset=utf-8","Cache-Control":"no-store","CDN-Cache-Control":"no-store"}})}function Ys(){return[{rule:Eo.blockAds,type:"block",domain:"geosite:category-ads-all"},{rule:Eo.blockAds,type:"block",domain:"geosite:category-ads-ir"},{rule:Eo.blockPorn,type:"block",domain:"geosite:category-porn"},{rule:Eo.bypassIran,type:"direct",domain:"geosite:category-ir",ip:"geoip:ir",dns:Eo.localDNS},{rule:Eo.bypassChina,type:"direct",domain:"geosite:cn",ip:"geoip:cn",dns:Eo.localDNS},{rule:Eo.bypassRussia,type:"direct",domain:"geosite:category-ru",ip:"geoip:ru",dns:Eo.localDNS},{rule:Eo.bypassOpenAi,type:"direct",domain:"geosite:openai",dns:Eo.antiSanctionDNS},{rule:Eo.bypassMicrosoft,type:"direct",domain:"geosite:microsoft",dns:Eo.antiSanctionDNS},{rule:Eo.bypassOracle,type:"direct",domain:"geosite:oracle",dns:Eo.antiSanctionDNS},{rule:Eo.bypassDocker,type:"direct",domain:"geosite:docker",dns:Eo.antiSanctionDNS},{rule:Eo.bypassAdobe,type:"direct",domain:"geosite:adobe",dns:Eo.antiSanctionDNS},{rule:Eo.bypassEpicGames,type:"direct",domain:"geosite:epicgames",dns:Eo.antiSanctionDNS},{rule:Eo.bypassIntel,type:"direct",domain:"geosite:intel",dns:Eo.antiSanctionDNS},{rule:Eo.bypassAmd,type:"direct",domain:"geosite:amd",dns:Eo.antiSanctionDNS},{rule:Eo.bypassNvidia,type:"direct",domain:"geosite:nvidia",dns:Eo.antiSanctionDNS},{rule:Eo.bypassAsus,type:"direct",domain:"geosite:asus",dns:Eo.antiSanctionDNS},{rule:Eo.bypassHp,type:"direct",domain:"geosite:hp",dns:Eo.antiSanctionDNS},{rule:Eo.bypassLenovo,type:"direct",domain:"geosite:lenovo",dns:Eo.antiSanctionDNS}]}Xi=new WeakMap,Fi=new WeakMap;import{connect as Gs}from"cloudflare:sockets";var Qs=1,qs=2;async function eo(e,c,t,d,f,r,n){async function a(c,t){const f=Gs({hostname:c,port:t});e.value=f,n(`connected to ${c}:${t}`);const r=f.writable.getWriter();return await r.write(d),r.releaseLock(),f}async function i(){let e;const{proxyMode:d,panelIPs:i}=zo,s=e=>e[Math.floor(Math.random()*e.length)],o=e=>e?e.split(",").map(e=>e.trim()).filter(Boolean):void 0;if("proxyip"===d){n(`direct connection failed, trying to use Proxy IP for ${c}`);try{const d=o(zo.envProxyIPs)||zo.defaultProxyIPs,f=undefined,r=s(i.length?i:d),{host:n,port:u}=ss(r,!0);e=await a(n||c,u||t)}catch(e){console.error("Proxy IP connection failed:",e),f.close(1011,"Proxy IP connection failed: "+e.message)}}else if("prefix"===d){n(`direct connection failed, trying to generate dynamic prefix for ${c}`);try{const d=o(zo.envPrefixes)||zo.defaultPrefixes,f=undefined,r=s(i.length?i:d),n=await no(c,r);e=await a(n,t)}catch(e){console.error("Prefix connection failed:",e),f.close(1011,"Prefix connection failed: "+e.message)}}e.closed.catch(e=>{console.log("retry tcpSocket closed error",e)}).finally(()=>{ro(f)}),co(e,f,r,null,n)}try{const e=undefined;co(await a(c,t),f,r,i,n)}catch(e){console.error("Connection failed:",err),f.close(1011,"Connection failed")}}async function co(e,c,t,d,f){let r=t,n=!1;await e.readable.pipeTo(new WritableStream({start(){},async write(e,t){n=!0,1!==c.readyState&&t.error("webSocket.readyState is not open, maybe close"),r?(c.send(await new Blob([r,e]).arrayBuffer()),r=null):c.send(e)},close(){f(`remoteConnection!.readable is close with hasIncomingData is ${n}`)},abort(e){console.error("remoteConnection!.readable abort",e)}})).catch(e=>{console.error("VLRemoteSocketToWS has exception ",e.stack||e),ro(c)}),!1===n&&d&&(f("retry"),d())}function to(e,c,t){let d=!1;const f=undefined;return new ReadableStream({start(f){e.addEventListener("message",e=>{if(d)return;const c=e.data;f.enqueue(c)}),e.addEventListener("close",()=>{ro(e),d||f.close()}),e.addEventListener("error",e=>{t("webSocketServer has error"),f.error(e)});const{earlyData:r,error:n}=fo(c);n?f.error(n):r&&f.enqueue(r)},pull(e){},cancel(c){d||(t(`ReadableStream was canceled, due to ${c}`),d=!0,ro(e))}})}function fo(e){if(!e)return{earlyData:null,error:null};try{e=e.replace(/-/g,"+").replace(/_/g,"/");const c=atob(e),t=undefined;return{earlyData:Uint8Array.from(c,e=>e.charCodeAt(0)).buffer,error:null}}catch(e){return{earlyData:null,error:e}}}function ro(e){try{1!==e.readyState&&2!==e.readyState||e.close()}catch(e){console.error("safeCloseWebSocket error",e)}}async function no(e,c){let t=e;if(!ns(e)){const{ipv4:c}=await Gi(e,!0);if(!c.length)throw new Error("Unable to find IPv4 in DNS records");t=c[0]}return ao(t,c)}function ao(e,c){const t=e.split(".");if(4!==t.length)throw new Error("Invalid IPv4 address");const d=t.map(e=>{const c=parseInt(e,10);if(c<0||c>255)throw new Error("Invalid IPv4 address");return c.toString(16).padStart(2,"0")}),f=c.match(/^\[([0-9A-Fa-f:]+)\]$/);if(f)return`[${f[1]}${d[0]}${d[1]}:${d[2]}${d[3]}]`}async function io(e){const c=new WebSocketPair,[t,d]=Object.values(c);d.accept();let f="",r="";const n=(e,c)=>{console.log(`[${f}:${r}] ${e}`,c||"")},a=e.headers.get("sec-websocket-protocol")||"",i=to(d,a,n);let s={value:null},o=null,u=!1;return i.pipeTo(new WritableStream({async write(e){if(u&&o)return o(e);if(s.value){const c=s.value.writable.getWriter();return await c.write(e),void c.releaseLock()}const{hasError:c,message:t,portRemote:a=443,addressRemote:i="",rawDataIndex:l,VLVersion:w=new Uint8Array([0,0]),isUDP:h}=so(e,Uo.userID);if(f=i,r=`${a}--${Math.random()} ${h?"udp ":"tcp "} `,c)throw new Error(t);const A=new Uint8Array([w[0],0]),b=e.slice(l);if(h){if(53===a){u=!0;const{write:e}=await wo(d,A,n);return o=e,void o(b)}throw new Error("UDP proxy only enable for DNS which is port 53")}eo(s,i,a,b,d,A,n)},close(){n("readableWebSocketStream is close")},abort(e){n("readableWebSocketStream is abort",JSON.stringify(e))}})).catch(e=>{n("readableWebSocketStream pipeTo error",e)}),new Response(null,{status:101,webSocket:t})}function so(e,c){if(e.byteLength<24)return{hasError:!0,message:"invalid data"};const t=new Uint8Array(e.slice(0,1));let d=!1,f=!1;const r=undefined,n=undefined;if(d=lo(new Uint8Array(e.slice(1,17)))===c,!d)return{hasError:!0,message:"invalid user"};const a=new Uint8Array(e.slice(17,18))[0],i=new Uint8Array(e.slice(18+a,18+a+1))[0];if(1===i);else{if(2!==i)return{hasError:!0,message:`command ${i} is not support, command 01-tcp,02-udp,03-mux`};f=!0}const s=18+a+1,o=e.slice(s,s+2),u=new DataView(o).getUint16(0);let l=s+2;const w=undefined,h=new Uint8Array(e.slice(l,l+1))[0];let A=0,b=l+1,p="";switch(h){case 1:A=4,p=new Uint8Array(e.slice(b,b+A)).join(".");break;case 2:A=new Uint8Array(e.slice(b,b+1))[0],b+=1,p=(new TextDecoder).decode(e.slice(b,b+A));break;case 3:{A=16;const c=new DataView(e.slice(b,b+A)),t=[];for(let e=0;e<8;e++)t.push(c.getUint16(2*e).toString(16));p=t.join(":");break}default:return{hasError:!0,message:`invild addressType is ${h}`}}return p?{hasError:!1,addressRemote:p,addressType:h,portRemote:u,rawDataIndex:b+A,VLVersion:t,isUDP:f}:{hasError:!0,message:`addressValue is empty, addressType is ${h}`}}var oo=[];for(let e=0;e<256;++e)oo.push((e+256).toString(16).slice(1));function uo(e,c=0){return(oo[e[c+0]]+oo[e[c+1]]+oo[e[c+2]]+oo[e[c+3]]+"-"+oo[e[c+4]]+oo[e[c+5]]+"-"+oo[e[c+6]]+oo[e[c+7]]+"-"+oo[e[c+8]]+oo[e[c+9]]+"-"+oo[e[c+10]]+oo[e[c+11]]+oo[e[c+12]]+oo[e[c+13]]+oo[e[c+14]]+oo[e[c+15]]).toLowerCase()}function lo(e,c=0){const t=uo(e,c);if(!Io(t))throw TypeError("Stringified UUID is invalid");return t}async function wo(e,c,t){let d=!1;const f=new TransformStream({start(e){},transform(e,c){for(let t=0;t>8&255,255&a]);1===e.readyState&&(t(`doh success and dns message length is ${a}`),d?e.send(await new Blob([i,n]).arrayBuffer()):(e.send(await new Blob([c,i,n]).arrayBuffer()),d=!0))}})).catch(e=>{t("dns udp has error"+e)});const r=f.writable.getWriter();return{write(e){r.write(e)}}}async function ho(e){const c=new WebSocketPair,[t,d]=Object.values(c);d.accept();let f="",r="";const n=(e,c)=>{console.log(`[${f}:${r}] ${e}`,c||"")},a=e.headers.get("sec-websocket-protocol")||"",i=to(d,a,n);let s={value:null},o=null;return i.pipeTo(new WritableStream({async write(e,c){if(null)return o(e);if(s.value){const c=s.value.writable.getWriter();return await c.write(e),void c.releaseLock()}const{hasError:t,message:a,portRemote:i=443,addressRemote:u="",rawClientData:l}=Ao(e);if(f=u,r=`${i}--${Math.random()} tcp`,t)throw new Error(a);eo(s,u,i,l,d,null,n)},close(){n("readableWebSocketStream is closed")},abort(e){n("readableWebSocketStream is aborted",JSON.stringify(e))}})).catch(e=>{n("readableWebSocketStream pipeTo error",e)}),new Response(null,{status:101,webSocket:t})}function Ao(e){if(e.byteLength<56)return{hasError:!0,message:"invalid data"};let c=56;if(13!==new Uint8Array(e.slice(56,57))[0]||10!==new Uint8Array(e.slice(57,58))[0])return{hasError:!0,message:"invalid header format (missing CR LF)"};const t=undefined;if((new TextDecoder).decode(e.slice(0,c))!==bo(Uo.TrPass))return{hasError:!0,message:"invalid password"};const d=e.slice(58);if(d.byteLength<6)return{hasError:!0,message:"invalid SOCKS5 request data"};const f=new DataView(d),r=undefined;if(1!==f.getUint8(0))return{hasError:!0,message:"unsupported command, only TCP (CONNECT) is allowed"};const n=f.getUint8(1);let a=0,i=2,s="";switch(n){case 1:a=4,s=new Uint8Array(d.slice(i,i+a)).join(".");break;case 3:a=new Uint8Array(d.slice(i,i+1))[0],i+=1,s=(new TextDecoder).decode(d.slice(i,i+a));break;case 4:{a=16;const e=new DataView(d.slice(i,i+a)),c=[];for(let t=0;t<8;t++)c.push(e.getUint16(2*t).toString(16));s=c.join(":");break}default:return{hasError:!0,message:`invalid addressType is ${n}`}}if(!s)return{hasError:!0,message:`address is empty, addressType is ${n}`};const o=i+a,u=d.slice(o,o+2),l=undefined;return{hasError:!1,addressRemote:s,portRemote:new DataView(u).getUint16(0),rawClientData:d.slice(o+4)}}function bo(e){const c=(e,c)=>e>>>c|e<<32-c,t=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],d=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],f=undefined,r=(e=>{const c=[];for(let t=0;t>6,128|63&d):d<55296||d>=57344?c.push(224|d>>12,128|d>>6&63,128|63&d):(t++,d=65536+((1023&d)<<10|1023&e.charCodeAt(t)),c.push(240|d>>18,128|d>>12&63,128|d>>6&63,128|63&d))}return c})(e),n=8*r.length;for(r.push(128);r.length%64!=56;)r.push(0);const a=Math.floor(n/4294967296),i=4294967295&n;for(let e=3;e>=0;e--)r.push(a>>8*e&255);for(let e=3;e>=0;e--)r.push(i>>8*e&255);for(let e=0;e>>3,d=c(f[e-2],17)^c(f[e-2],19)^f[e-2]>>>10;f[e]=f[e-16]+t+f[e-7]+d|0}let[n,a,i,s,o,u,l,w]=t;for(let e=0;e<64;e++){const t=undefined,r=undefined,h=w+(c(o,6)^c(o,11)^c(o,25))+(o&u^~o&l)+d[e]+f[e]|0,A=undefined,b=n&a^n&i^a&i,p=undefined;w=l,l=u,u=o,o=s+h|0,s=i,i=a,a=n,n=h+((c(n,2)^c(n,13)^c(n,22))+b|0)|0}t[0]=t[0]+n|0,t[1]=t[1]+a|0,t[2]=t[2]+i|0,t[3]=t[3]+s|0,t[4]=t[4]+o|0,t[5]=t[5]+u|0,t[6]=t[6]+l|0,t[7]=t[7]+w|0}return t.slice(0,7).map(e=>("00000000"+(e>>>0).toString(16)).slice(-8)).join("")}var po=oa(ba(),1),Eo={};async function Bo(e){const c=Uo.pathName.replace("/","")||"";try{const{protocol:t,mode:d,panelIPs:f}=JSON.parse(atob(c));switch(Object.assign(zo,{wsProtocol:t,proxyMode:d,panelIPs:f}),t){case"vl":return await io(e);case"tr":return await ho(e);default:return await vo(e)}}catch(e){return new Response("Failed to parse WebSocket path config",{status:400})}}async function Ho(e,c){switch(Uo.pathName){case"/panel":return await _o(e,c);case"/panel/settings":return await Ro(e,c);case"/panel/update-settings":return await xo(e,c);case"/panel/reset-settings":return await To(e,c);case"/panel/reset-password":return await Zi(e,c);case"/panel/my-ip":return await Mo(e);case"/panel/update-warp":return await Oo(e,c);case"/panel/get-warp-configs":return await ko(e,c);default:return await vo(e)}}async function mo(e){const c=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d626f726465722d636f6c6f723a236464643b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235297d626f64792c68746d6c7b6865696768743a313030253b77696474683a313030253b6d617267696e3a303b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b666f6e742d66616d696c793a73797374656d2d75693b636f6c6f723a766172282d2d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b746578742d616c69676e3a63656e7465727d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235297d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d617b636f6c6f723a766172282d2d6865616465722d636f6c6f72297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c6469762069643d6572726f722d636f6e7461696e65723e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c6469762069643d6572726f722d6d6573736167653e3c68323ee29d8c20536f6d657468696e672077656e742077726f6e67213c2f68323e3c703e3c623e5f5f4552524f525f4d4553534147455f5f3c2f623e3c2f703e3c2f6469763e3c2f6469763e3c7363726970743e6c6f63616c53746f726167652e6765744974656d28276461726b4d6f64652729203d3d3d2027656e61626c65642720262620646f63756d656e742e626f64792e636c6173734c6973742e61646428276461726b2d6d6f646527293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e").replace("__ERROR_MESSAGE__",e.message);return new Response(c,{status:200,headers:{"Content-Type":"text/html"}})}async function go(e,c){return"/login"===Uo.pathName?await Co(e,c):"/login/authenticate"===Uo.pathName?await $i(e,c):await vo(e)}async function yo(e,c){const t=await hs(e,c);Eo=t.settings;const{client:d,subPath:f}=No,r=undefined;switch(decodeURIComponent(Uo.pathName)){case`/sub/normal/${f}`:switch(d){case"xray":return await Vs(c,!1);case"sing-box":return await Os(c,!1);case"clash":return await xs(c);default:break}case`/sub/fragment/${f}`:switch(d){case"xray":return await Vs(c,!0);case"sing-box":return await Os(c,!0);default:break}case`/sub/warp/${f}`:switch(d){case"xray":return await Zs(e,c,!1,!1);case"sing-box":return await Ds(e,c);case"clash":return await Ts(e,c,!1);default:break}case`/sub/warp-pro/${f}`:switch(d){case"xray":return await Zs(e,c,!0,!1);case"xray-knocker":return await Zs(e,c,!0,!0);case"clash":return await Ts(e,c,!0);default:break}default:return await vo(e)}}async function xo(e,c){if("POST"===e.method){const t=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized or expired session.");const d=await As(e,c);return await Do(!0,200,null,d)}return await Do(!1,405,"Method not allowed.")}async function To(e,c){if("POST"===e.method){const t=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized or expired session.");const d=await As(e,c);return await Do(!0,200,null,d)}return await Do(!1,405,"Method not allowed!")}async function Ro(e,c){const t=!!await c.kv.get("pwd"),d=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized or expired session.",{isPassSet:t});const f=undefined,r={proxySettings:(await hs(e,c)).settings,isPassSet:t,subPath:No.subPath};return await Do(!0,200,null,r)}async function vo(e){const{url:c,method:t,headers:d,body:f}=e,r=new URL(c);r.hostname=Uo.fallbackDomain,r.protocol="https:";const n=new Request(r.toString(),{method:t,headers:d,body:f,redirect:"manual"});return await fetch(n)}async function Mo(e){const c=await e.text();try{const e=await fetch(`http://ip-api.com/json/${c}?nocache=${Date.now()}`),t=await e.json();return await Do(!0,200,null,t)}catch(e){return console.error("Error fetching IP address:",e),await Do(!1,500,`Error fetching IP address: ${e}`)}}async function ko(e,c){const t="amnezia"===No.client,d=undefined;if(!await Ki(e,c))return new Response("Unauthorized or expired session.",{status:401});const{warpConfigs:f,settings:r}=await hs(e,c),n=es(f,!1),{warpIPv6:a,publicKey:i,privateKey:s}=n,{warpEndpoints:o,amneziaNoiseCount:u,amneziaNoiseSizeMin:l,amneziaNoiseSizeMax:w}=r,h=new po.default,A=e=>e.split("\n").map(e=>e.trim()).join("\n"),b=t?`Jc = ${u}\n Jmin = ${l}\n Jmax = ${w}\n S1 = 0\n S2 = 0\n H1 = 0\n H2 = 0\n H3 = 0\n H4 = 0`:"";try{o.forEach((e,c)=>{h.file(`${atob("QlBC")}-Warp-${c+1}.conf`,A(`[Interface]\n PrivateKey = ${s}\n Address = 172.16.0.2/32, ${a}\n DNS = 1.1.1.1, 1.0.0.1\n MTU = 1280\n ${b}\n [Peer]\n PublicKey = ${i}\n AllowedIPs = 0.0.0.0/0, ::/0\n Endpoint = ${e}\n PersistentKeepalive = 25`))});const e=await h.generateAsync({type:"blob"}),c=await e.arrayBuffer();return new Response(c,{headers:{"Content-Type":"application/zip","Content-Disposition":`attachment; filename="${atob("QlBC")}-Warp-${t?"Pro-":""}configs.zip"`}})}catch(e){return new Response(`Error generating ZIP file: ${e}`,{status:500})}}async function So(){const e="AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAABMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGtEBSs/KFsRGRCyAwQC5wAAAPoBAgHtDxYOvyU2InFEZD8QTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAOVQ1LgcLB9UAAAD/AQEA/ykjGP9ANyb/MCod/wUEA/8AAAD/AgQC6yo/J1dMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAOVU2KwIDAu4AAAD/Wk01/9W3f//105L/9dOS//XTkv/jxIf/emlI/wYFA/8AAAD/JjgjZkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEptRQE2UDM3IjMgehQdEqsNFAzHBwsHzw4VDcUWIRWmJTcjcTpVNilMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBgcKBtcAAAD/lYBY//XTkv/105L/9dOS//XTkv/105L/9dOS//TSkf+xjE7/DQoF/wABAPg6VTYsTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAS25GAC1DKlQHCwfXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DBILwzVPMjhMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACo/J1sAAAD/VUkz//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/xzIj/5LJh/5t5Qv8AAAD/EhoRrUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAPls5IA4VDbwAAAD/BAMC/0k+K/+VgFn/y695/+rKi//00pH/6MiK/8aqdv+JdlH/Ny8h/wAAAP8AAAD9FyIVmkVlQA1McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwARGRC0AAAA/8Gmc//105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r90/+SyYf/jsWD/MiYV/wAAAPlCYj4STHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcANlAyNQIEAuoAAAD/S0As/9O2fv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+/pHH/Lykc/wAAAP8JDQjSQF88GUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBIakMFAAEA9R4aEv/00pH/9dOS//XTkv/105L/9dOS//XTkv/105L/8s2K/+SyYf/ksmH/5LJh/3pfM/8AAAD/LkQrUExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAO1g3JQIDAu0CAQH/iXZR//TSkf/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+7Njv9bTjb/AAAA/wkNCM9GZ0EKTHBHAExwRwBMcEcATHBHAExwRwBMcEcAOFQ0LwAAAP9bTjb/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/+i6bv/ksmH/5LJh/+SyYf+XdkD/AAAA/yo+J21McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcARWZBDAcLBtgAAAD/lH9Y//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/15PM/8AAAD/ExwRp0tuRgBMcEcATHBHAExwRwBMcEcATHBHAC1EKlYAAAD/iXZR//XTkv/105L/9dOS//XTkv/105L/9dOS/+3Ffv/ksmH/5LJh/+SyYf/ksmH/kXE9/wAAAP8qPidmTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHABspGYwAAAD/ZVc8//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/lunH/MSYU/wAAAP8sQSlUTHBHAExwRwBMcEcATHBHAExwRwAjNCB3AAAA/66WZ//105L/9dOS//XTkv/105L/9dOS//DKhf/ksmL/5LJh/+SyYf/ksmH/5LJh/2ROKv8AAAD/NE4xPExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEJhPRMAAQD2ExAL/+fHiv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6bxw/7WNTP8AAAD/CAwH0ktuRgBMcEcATHBHAExwRwBMcEcAHSobjwAAAP/JrXf/9dOS//XTkv/105L/9dOS//HMiP/ks2P/5LJh/+SyYf/ksmH/5LJh/92tXv8WEQn/AgMC60lrRARMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAlNyNuAAAA/4RyTv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+e4av/ksmH/QzQc/wAAAP82UDI2THBHAExwRwBMcEcATHBHABYhFaEAAAD/3b6D//XTkv/105L/9dOS//LNif/ltWX/5LJh/+SyYf/ksmH/5LJh/+OxYP9iTCn/AAAA/x4tHIRMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcADhYOuwQDAv/kxIf/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//TRkP/ksmL/5LJh/6J+RP8AAAD/HiwchkxwRwBMcEcATHBHAExwRwASGxGxAAAA/+7Njv/105L/9dOS//DLhv/ltGX/5LJh/+SyYf/ksmH/5LJh/9WmWv9bRyb/AAAA/wgMB9dFZkELTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAAIDAucqJBn/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/wyoX/5LJh/+SyYf/drF3/BQMC/w4WDr5McEcATHBHAExwRwBMcEcADxYOvgYGA//105L/9dOS/+/Igv/ksmL/5LJh/+SyYf/gr1//rohK/19KKP8LCQT/AAAA/wUIBd88WTgkTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEptRQAAAAD8QTgm//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r91/+SyYf/ksmH/5LJh/yMcD/8EBgTiTHBHAExwRwBMcEcATHBHAAsQCsoPDQn/zK95/7CUYf+Pbz3/dFsx/1ZDJP8xJhT/CAcD/wAAAP8AAAD/AgMC7B4sHIRFZUANTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBJbEQAAAAA/EM5J//105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKQ/+W0ZP/ksmH/5LJh/+SyYf81KRb/AAAA8kxwRwBMcEcATHBHAExwRwAHCwfYAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAEA8wsRC8ccKhqQMUguSUdpQwZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAAABAO0yKx7/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+/Igv/ksmH/5LJh/+SyYf/ksmH/MicV/wAAAO9McEcATHBHAExwRwBMcEcAHiwcghAXDroZJReeIDAegik8JmQzTDBEPlw6IElsRAFMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAJDgnRFRIM//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/ou27/5LJh/+SyYf/ksmH/5LJh/xoUCv8HCwfYTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAFB4TpwAAAP/cvYL/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/yzYr/5LJh/+SyYf/ksmH/5LJh/8yfVv8AAAD/FB0Sq0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACQ1IXUAAAD/o4xh//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r50/+SyYf/ksmH/5LJh/+SyYf+AZDb/AAAA/yY5I2tMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwA0TjE7AAAA/2FUOv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/8s6L/+SyYv/ksmH/5LJh/+SyYf/ZqVz/GRMK/wABAPhBXzwYTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBQECAfAXEw3/8tGQ//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/+m8cP/ksmH/5LJh/+SyYf/ksmH/XEcn/wAAAP8aJxmOTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADhTNC4fLh2FDhUNwAUIBeAAAADpBwsH2RIbEbMlNiJ0P147G0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwASHBGuAAAA/8Clcv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//DLhv/ksmH/5LJh/+SyYf/ksmH/kXE9/wAAAP8FCAXeRWVADUxwRwBMcEcATHBHAExwRwBMcEcARWVADhQdEqUAAAD/AAAA/wAAAP8PDQn/GhYP/wgHBf8AAAD/AAAA/wAAAPkaJhiQRWVADExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAKT0mYAAAAP9yYkT/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//TSkf/nuWz/5LJh/+SyYf/ksmH/mXhB/wYEAv8CAwLtOVU2LExwRwBMcEcATHBHAExwRwBMcEcAO1g3JggMB9cAAAD/KCIX/5aBWf/dvoT/9dOS//XTkv/z0ZD/zbF6/4NxTv8bFxD/AAAA/wcLB9k6VTYsTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEJiPRAAAQD3HhoR//PRkf/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/ux4D/5LJh/+SyYf/jsWD/el8z/wEBAP8CAwLwNlAyOExwRwBMcEcATHBHAExwRwBMcEcANlAyNQIDAu4BAAD/eWhI//HQkP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/68qM/3JiQ/8CAQH/AgMC8TdRMzZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAExwRqQAAAP+7oW//9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/00Y//5bVm/+SyYf/gr1//XUgn/wAAAP8CBALuNE4xOExwRwBMcEcATHBHAExwRwBMcEcAP106HQMEA+kAAAD/i3dS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/k35X/wAAAP8EBwThRWVADExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADFJLkQAAAD/Y1U6//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/6r91/+SyYf/AllH/MCUU/wAAAP8JDQjRPFk4JUxwRwBMcEcATHBHAExwRwBMcEcARmhCCQsQCsoAAAD/gnBN//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv9tXkH/AAAA/x4sHIhMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBKbUUABwsH2Q0LB//oyIr/9dOS//XTkv/105L/9dOS//XTkv/105L/8MmE/+KxYP+DZjf/CQcD/wAAAP8VHxOgRmhBCkxwRwBMcEcATHBHAExwRwBMcEcAS25GABMdEqgAAAD/aFk+//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/786O/yIeFP8BAgH0QmI+EUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACIyH3kAAAD/jnpU//XTkv/105L/9dOS//XTkv/105L/9NGQ/8adWv82Khb/AAAA/wIDAvApPSdZTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHACg7JWIAAAD/Licb/+/Ojv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+GdFD/AAAA/yc6JWZMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwA/XTsbAAAA+iYgFv/z0ZH/9dOS//XTkv/105L/8M6O/4JtSP8JBwT/AAAA/w8WDrs9WjkgTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAD9dOxoCAwLuCAcE/8queP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/zrF6/wAAAP8THRKqTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHABMcEqwAAAD/sJhp//XTkv/105L/qpJl/yMeFf8AAAD/BQcE4yo/KFhLbkYATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEtuRgARGRCyAAAA/5R/WP/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//PRkf8HBgT/CAwH1UxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAwRy1JAAAA/1JHMf/WuH//SD0q/wAAAP8AAAD/FiEVnUVlQA5McEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwArQChXAAAA/0I4J//00pH/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/FBEM/wECAeJMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGtDAwQHBOAGBQP/CgkG/wAAAP8LEArJNU4xOkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBCYj4UAwQC6QcGBP/Psnv/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR/wgHBf8IDAfWTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwAiMyBzAAAA/wUHBOMqPidcSm1FAkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAFiEVngAAAP97akn/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS/9K0fP8AAAD/EhwRrkxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAR2lCBitAKV9FZUAOTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcANU8xOAAAAP4hHBP/7cyN//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv+MeVP/AAAA/yY4I2tMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASWxEAgoPCc0AAAD/qJBj//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/y0JD/KSMY/wABAPdAXzwVTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAEZnQQ0AAQD0AAAA/wgHBP9lVjz/1bd+//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9dOS//XTkv/105L/9NKR//HMiP/tw3v/f2c+/wAAAP8YIxaZTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcAPls6HR8tHIUDBAPoAAAA/wMDAv9IPiv/p49h/+zGgf/wyYT/8MqE//DJhP/wyYP/78iC/+7HgP/txX3/7MN6/+vAdf/pvHD/57hq/+SzYv/ksmH/on5E/wQDAf8CBALrQWA8GExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcASGpDBSxBKVUNFAzCAAAA/wAAAP8VEQn/ZE4q/7KLS//jsWD/5LJh/+SyYf/ksmH/5LJh/+SyYf/ksmH/5LJh/+SyYf/hsF//gGQ2/wYEAv8AAQD4MUkuQ0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHADlUNSwZJReXAAEA9AAAAP8AAAD/HBYM/2NNKv+hfkT/1qdb/+SyYf/ksmH/5LJh/+GvX/+jf0X/LyQT/wAAAP8CAwLwMUguQ0xwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAERkPw8qPyheEhsRsAABAPUAAAD/AAAA/wAAAP8WEQn/KB8R/yYeEP8KCAT/AAAA/wAAAP8PFw61PFk4JUxwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBFZkEKMkovRCExH38THBGwCQ0I0gMFA+QFBwTiCxELyB0rG484UjQwTHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcATHBHAExwRwBMcEcA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////gD////////8AH////////gAP///+AH/8AAf///wAH/wAB///8AAH/AAD///gAAP4AAP//8AAAfgAA///gAAB+AAD//+AAAD4AAP//wAAAPgAA///AAAAeAAH//8AAAB4AAf//wAAAHgAD///AAAAeAAf//8AAAB4AH///wAAAHgH////AAAAf/////8AAAB//////wAAAH//////AAAAf/////8AAAD+AP///4AAAPgAP///gAAB8AAf//+AAAPgAA///8AAB8AAB///wAAPgAAH///gAB+AAAP//+AAfwAAA///4AD+AAAD///wA/4AAAP///AH/AAAA///8B/4AAAD///4P/gAAAP///j/8AAAA//////gAAAD/////+AAAAf/////8AAAB//////8AAAP//////+AAB///////+AAP////////AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8=",c=Uint8Array.from(atob(e),e=>e.charCodeAt(0));return new Response(c,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=86400"}})}async function _o(e,c){const t=undefined;if(await c.kv.get("pwd")){const t=undefined;if(!await Ki(e,c))return Response.redirect(`${No.urlOrigin}/login`,302)}const d=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c6c696e6b2072656c3d7374796c65736865657420687265663d68747470733a2f2f63646e6a732e636c6f7564666c6172652e636f6d2f616a61782f6c6962732f666f6e742d617765736f6d652f342e372e302f6373732f666f6e742d617765736f6d652e6d696e2e6373733e3c6c696e6b2072656c3d7374796c65736865657420687265663d2268747470733a2f2f666f6e74732e676f6f676c65617069732e636f6d2f637373323f66616d696c793d4d6174657269616c2b53796d626f6c732b526f756e6465643a6f70737a2c776768742c46494c4c2c475241444032302e2e34382c3130302e2e3730302c302e2e312c2d35302e2e3230302669636f6e5f6e616d65733d6164645f636972636c652c6175746f72656e65772c636865636b5f636972636c652c636f6e74656e745f636f70792c64656c6574652c646f776e6c6f61642c66696e6765727072696e742c696e666f2c6b65795f766572746963616c2c6f70656e5f696e5f6e65772c71725f636f64652c73657474696e67732c73686172652c7465726d696e616c2c74756e652c76657269666965642c7669736962696c6974792c7669736962696c6974795f6f666626646973706c61793d626c6f636b223e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d7072696d6172792d636f6c6f723a233039363339663b2d2d7365636f6e646172792d636f6c6f723a233334393864623b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a236639663966393b2d2d7461626c652d6163746976652d636f6c6f723a236632663266323b2d2d68722d746578742d636f6c6f723a233362336233623b2d2d6c61626c652d746578742d636f6c6f723a233333333b2d2d626f726465722d636f6c6f723a236464643b2d2d627574746f6e2d636f6c6f723a233039363339663b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a77686974653b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235293b2d2d636f6e7461696e65722d626f726465722d7261646975733a323870783b2d2d696e6e65722d636f6e7461696e65722d626f726465722d7261646975733a313470783b2d2d656c656d656e742d626f726465722d7261646975733a313070783b2d2d636f6e7461696e65722d70616464696e673a323870783b2d2d636f6e7461696e65722d6761703a323070783b2d2d636f6e7461696e65722d626f782d736861646f773a302032707820347078207267626128302c20302c20302c20302e31293b2d2d696e6e65722d636f6e7461696e65722d70616464696e673a313470783b2d2d696e6e65722d636f6e7461696e65722d6761703a313470787d626f64797b666f6e742d66616d696c793a5477656d6f6a6920436f756e74727920466c6167732c73797374656d2d75693b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b636f6c6f723a766172282d2d636f6c6f72293b746578742d616c69676e3a63656e7465727d2a2c3a3a61667465722c3a3a6265666f72657b626f782d73697a696e673a626f726465722d626f787d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d7072696d6172792d636f6c6f723a233039363339463b2d2d7365636f6e646172792d636f6c6f723a233334393844423b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d7461626c652d6163746976652d636f6c6f723a233235323532353b2d2d68722d746578742d636f6c6f723a234435443544353b2d2d6c61626c652d746578742d636f6c6f723a234446444644463b2d2d626f726465722d636f6c6f723a233335333533353b2d2d627574746f6e2d636f6c6f723a233334393844423b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a233235323532353b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235293b2d2d636f6e7461696e65722d626f782d736861646f773a3020327078203470782072676261283235352c203235352c203235352c20302e31297d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d2e636f6e7461696e65727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d636f6e7461696e65722d626f726465722d726164697573293b70616464696e673a766172282d2d636f6e7461696e65722d70616464696e67293b626f782d736861646f773a766172282d2d636f6e7461696e65722d626f782d736861646f77297d2e73656374696f6e202e636f6e7461696e65727b6761703a766172282d2d636f6e7461696e65722d676170297d2e636f6e7461696e65723e2e73656374696f6e7b6d617267696e3a307d2e696e6e65722d636f6e7461696e65727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a766172282d2d696e6e65722d636f6e7461696e65722d676170293b626f782d736861646f773a766172282d2d636f6e7461696e65722d626f782d736861646f77293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d696e6e65722d636f6e7461696e65722d626f726465722d726164697573293b70616464696e673a766172282d2d696e6e65722d636f6e7461696e65722d70616464696e67297d2e666f726d2d636f6e7461696e65727b6d61782d77696474683a3930253b6d617267696e3a30206175746f3b6261636b67726f756e643a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b6d617267696e2d626f74746f6d3a333070787d2e636f6e666967466f726d7b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e7d2e73656374696f6e7b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a766172282d2d636f6e7461696e65722d676170293b6d617267696e2d626f74746f6d3a766172282d2d636f6e7461696e65722d676170297d2e666f726d2d636f6e74726f6c7b77696474683a313030253b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b616c69676e2d6974656d733a63656e7465723b6a7573746966792d636f6e74656e743a73706163652d6265747765656e3b6761703a313670787d2e666f726d2d636f6e74726f6c206469767b646973706c61793a666c65783b666c65783a313b77696474683a313030257d2e666f726d2d636f6e74726f6c206c6162656c7b666c65783a313b746578742d616c69676e3a63656e7465723b77696474683a313030253b666f6e742d7765696768743a3730303b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d696e7075745b747970653d6e756d6265725d2c696e7075745b747970653d746578745d2c696e7075745b747970653d75726c5d2c73656c6563742c74657874617265617b77696474683a313030253b746578742d616c69676e3a63656e7465723b70616464696e673a313070783b6c696e652d6865696768743a312e353b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d656c656d656e742d626f726465722d726164697573293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72293b7472616e736974696f6e3a626f726465722d636f6c6f72202e337320656173657d74657874617265617b666f6e742d66616d696c793a696e68657269743b726573697a653a6e6f6e653b636f6c6f723a766172282d2d636f6c6f72293b6d61782d6865696768743a63616c6328356c68202b2031307078297d696e7075745b747970653d6e756d6265725d3a666f6375732c696e7075745b747970653d746578745d3a666f6375732c696e7075745b747970653d75726c5d3a666f6375732c73656c6563743a666f6375732c74657874617265613a666f6375737b626f726465722d636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72293b6f75746c696e653a307d696e7075745b747970653d6e756d6265725d3a726561642d6f6e6c792c696e7075745b747970653d746578745d3a726561642d6f6e6c792c696e7075745b747970653d75726c5d3a726561642d6f6e6c792c74657874617265613a726561642d6f6e6c797b636f6c6f723a677261793b6261636b67726f756e642d636f6c6f723a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72297d2e666f726d2d636f6e74726f6c20696e7075745b747970653d70617373776f72645d7b746578742d616c69676e3a63656e7465723b77696474683a3530253b70616464696e673a313070783b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a766172282d2d656c656d656e742d626f726465722d726164697573293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72293b7472616e736974696f6e3a626f726465722d636f6c6f72202e337320656173657d2e666f726d2d636f6e74726f6c20696e7075745b747970653d70617373776f72645d3a666f6375737b626f726465722d636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72293b6f75746c696e653a307d2e666f726d2d636f6e74726f6c20612c612e6c696e6b7b77696474683a313030253b746578742d6465636f726174696f6e3a6e6f6e657d612e7363616e6e65727b6d617267696e2d6c6566743a3870783b77696474683a756e7365743b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72297d627574746f6e2e726576657273657b77696474683a313030253b6261636b67726f756e642d636f6c6f723a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b666f6e742d7765696768743a3630303b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72293b626f726465722d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b626f726465723a31707820736f6c69643b70616464696e673a313070787d2e70726f746f636f6c737b666c65782d646972656374696f6e3a726f773b666c65782d777261703a777261707d2e70726f746f7b6761703a3870783b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b666c65782d646972656374696f6e3a726f773b6a7573746966792d636f6e74656e743a63656e7465727d2e70726f746f206c6162656c7b77696474683a756e7365743b666c65783a756e7365747d2e6d696e2d6d61787b666c65783a313b77696474683a313030253b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b6761703a3470787d2e6d696e2d6d617820696e7075747b77696474683a313030257d2e6d696e2d6d6178207370616e7b746578742d616c69676e3a63656e7465723b77686974652d73706163653a7072657d2e706f7274732d626c6f636b2074687b746578742d777261703a6e6f777261703b6261636b67726f756e642d636f6c6f723a677261797d2e706f7274732d626c6f636b2074643a66697273742d6368696c647b746578742d616c69676e3a63656e7465723b666f6e742d73697a653a6c61726765727d2e706f7274732d626c6f636b2074643a6c6173742d6368696c647b646973706c61793a677269643b677269642d74656d706c6174652d636f6c756d6e733a3166722031667220316672203166727d2e72756c65737b6761703a313670783b646973706c61793a666c65783b666c65782d646972656374696f6e3a726f773b77696474683a313030253b666c65782d777261703a777261707d2e666f726d2d636f6e74726f6c206469762e726f7574696e677b6761703a3570783b646973706c61793a666c65783b666c65783a313b6d617267696e3a303b616c69676e2d6974656d733a63656e7465723b6d61782d77696474683a6669742d636f6e74656e747d2e726f7574696e67206c6162656c7b746578742d616c69676e3a6c6566743b77696474683a756e7365743b666f6e742d7765696768743a3430303b666f6e742d73697a653a313030253b746578742d777261703a6e6f777261707d2e666f726d2d636f6e74726f6c2e6170706c797b666c65782d777261703a777261703b666c65782d646972656374696f6e3a726f773b70616464696e673a766172282d2d636f6e7461696e65722d70616464696e672920303b6761703a3870783b6a7573746966792d636f6e74656e743a63656e7465723b666c65783a756e7365747d627574746f6e2e6170706c792d73657474696e67737b6d617267696e3a307d627574746f6e2e70616e656c2d73657474696e67737b666c65783a756e7365743b626f726465723a6e6f6e653b637572736f723a706f696e7465723b77696474683a6669742d636f6e74656e743b6d617267696e3a303b6261636b67726f756e643a3020303b636f6c6f723a766172282d2d7072696d6172792d636f6c6f72297d2e6d6174657269616c2d73796d626f6c732d726f756e6465647b766572746963616c2d616c69676e3a6d6964646c653b646973706c61793a696e6c696e652d626c6f636b3b6d617267696e3a30203570782030203570783b666f6e742d766172696174696f6e2d73657474696e67733a2746494c4c2720302c277767687427203430302c27475241442720302c276f70737a272032347d61202e6d6174657269616c2d73796d626f6c732d726f756e6465647b636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72297d64657461696c733a6e6f74283a6c6173742d6f662d74797065297b626f726465722d626f74746f6d3a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d73756d6d6172797b666f6e742d7765696768743a3730303b637572736f723a706f696e7465723b746578742d616c69676e3a6c6566743b746578742d777261703a6e6f777261707d73756d6d6172793a3a6d61726b65727b666f6e742d73697a653a312e3572656d3b636f6c6f723a766172282d2d7365636f6e646172792d636f6c6f72297d73756d6d6172793a666f6375732d76697369626c657b6f75746c696e653a307d68322c68337b646973706c61793a666c65783b746578742d616c69676e3a63656e7465723b636f6c6f723a766172282d2d68722d746578742d636f6c6f72293b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465727d68347b6d617267696e3a307d68727b6d617267696e3a31707820303b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d2e666f6f7465722d636f6e7461696e65727b6f766572666c6f772d783a6175746f3b646973706c61793a666c65787d2e666f6f7465727b646973706c61793a666c65783b666f6e742d7765696768743a3630303b6d617267696e3a31307078206175746f3b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b6761703a313070787d2e666f6f74657220697b666f6e742d73697a653a333670787d2e666f6f74657220612c2e666f6f74657220612e6c696e6b7b636f6c6f723a766172282d2d636f6c6f72293b746578742d6465636f726174696f6e3a756e6465726c696e653b77696474683a756e7365743b666c65783a756e7365747d2e666f6f74657220627574746f6e7b6d617267696e3a756e7365743b6261636b67726f756e643a233231323132313b6d61782d77696474683a6669742d636f6e74656e747d2e666f6f746572202e6c6f676f75747b6261636b67726f756e643a3020303b636f6c6f723a766172282d2d636f6c6f72293b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465727d2e6769746875622d636f6e7461696e65727b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b6a7573746966792d636f6e74656e743a63656e7465723b6761703a3870783b666c65782d777261703a777261707d6c6162656c7b646973706c61793a626c6f636b3b666f6e742d7765696768743a3630303b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d2e627574746f6e7b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465723b6a7573746966792d636f6e74656e743a63656e7465723b77696474683a31343070783b77686974652d73706163653a6e6f777261703b70616464696e673a3134707820313470783b666f6e742d73697a653a313670783b666f6e742d7765696768743a3630303b6c65747465722d73706163696e673a3170783b626f726465723a6e6f6e653b626f726465722d7261646975733a766172282d2d656c656d656e742d626f726465722d726164697573293b636f6c6f723a236666663b6261636b67726f756e642d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b637572736f723a706f696e7465723b6f75746c696e653a303b626f782d736861646f773a30203570782031307078207267626128302c302c302c2e32293b7472616e736974696f6e3a616c6c202e337320656173653b6d617267696e2d72696768743a6175746f3b6d617267696e2d6c6566743a6175746f7d7461626c6520627574746f6e7b6d617267696e2d746f703a6175746f3b6d617267696e2d626f74746f6d3a6175746f3b6d61782d6865696768743a6669742d636f6e74656e743b666f6e742d73697a653a313670783b666f6e742d7765696768743a3630303b626f726465723a6e6f6e653b6261636b67726f756e642d636f6c6f723a756e7365743b637572736f723a706f696e7465723b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b70616464696e673a307d7461626c6520627574746f6e207370616e2e6d6174657269616c2d73796d626f6c732d726f756e6465647b666f6e742d73697a653a323870783b6d617267696e3a303b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72297d7461626c6520746420646976207370616e2e6d6174657269616c2d73796d626f6c732d726f756e6465647b636f6c6f723a233366623935307d2e627574746f6e7b666f6e742d7765696768743a3630303b666f6e742d73697a653a312e3172656d3b77696474683a6d61782d636f6e74656e747d696e7075745b747970653d636865636b626f785d7b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72297d2e627574746f6e2e64697361626c65647b6261636b67726f756e642d636f6c6f723a236363633b636f6c6f723a236666663b637572736f723a6e6f742d616c6c6f7765643b626f782d736861646f773a6e6f6e653b706f696e7465722d6576656e74733a6e6f6e657d2e627574746f6e3a686f7665727b6261636b67726f756e642d636f6c6f723a233239383062393b626f782d736861646f773a30203870782031357078207267626128302c302c302c2e33293b7472616e73666f726d3a7472616e736c61746559282d327078297d7461626c6520627574746f6e3a666f6375732c7461626c6520627574746f6e3a686f7665727b636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b7472616e73666f726d3a7472616e736c61746559282d327078297d2e6865616465722d636f6e7461696e657220627574746f6e3a686f7665727b7472616e73666f726d3a7363616c6528312e31297d2e6865616465722d636f6e7461696e65727b6761703a313070783b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465727d2e6865616465722d636f6e7461696e65722068337b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465727d627574746f6e2e627574746f6e3a686f7665727b636f6c6f723a236666667d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d7461626c6520627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078297d2e7461626c652d636f6e7461696e65727b6f766572666c6f772d783a6175746f7d2e6164642d6e6f6973657b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465723b636f6c6f723a677265656e7d2e64656c6574652d6e6f6973657b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465723b636f6c6f723a233862303030307d2e7461626c652d636f6e7461696e6572207461626c657b77696474683a313030253b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d636f6c6c617073653a73657061726174653b626f726465722d73706163696e673a303b626f726465722d7261646975733a766172282d2d696e6e65722d636f6e7461696e65722d626f726465722d726164697573293b6d617267696e2d626f74746f6d3a323070783b6f766572666c6f773a68696464656e7d2e7461626c652d636f6e7461696e65722074626f64797b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e7d2e7461626c652d636f6e7461696e65722074727b646973706c61793a666c65783b666c65782d646972656374696f6e3a726f777d2e7461626c652d636f6e7461696e65722074722074643a66697273742d6368696c647b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b746578742d777261703a6e6f777261707d2e7461626c652d636f6e7461696e65722074722074643a6e74682d6368696c642832297b666c65782d646972656374696f6e3a726f773b6761703a3870787d2e6d792d69707b6f766572666c6f772d783a6175746f7d2e6d792d6970207461626c657b77696474683a313030253b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d636f6c6c617073653a73657061726174653b626f726465722d73706163696e673a303b626f726465722d7261646975733a766172282d2d696e6e65722d636f6e7461696e65722d626f726465722d726164697573293b6d617267696e2d626f74746f6d3a323070783b6f766572666c6f773a68696464656e7d2e6d792d69702074642c2e6d792d69702074687b746578742d777261703a6e6f777261703b70616464696e673a313070783b626f726465722d626f74746f6d3a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d2e6d792d69702074643a66697273742d6368696c642c2e6d792d69702074687b6261636b67726f756e642d636f6c6f723a766172282d2d7461626c652d6163746976652d636f6c6f72293b666f6e742d7765696768743a3730307d2e7461626c652d636f6e7461696e65722074642c2e7461626c652d636f6e7461696e65722074687b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6a7573746966792d636f6e74656e743a63656e7465723b70616464696e673a313070783b77696474683a313030253b6761703a313070783b626f726465722d626f74746f6d3a31707820736f6c696420766172282d2d626f726465722d636f6c6f72297d2e7461626c652d636f6e7461696e6572207464206469767b646973706c61793a666c65783b616c69676e2d6974656d733a63656e7465727d2e7461626c652d636f6e7461696e65722074723a686f7665727b6261636b67726f756e642d636f6c6f723a766172282d2d7461626c652d6163746976652d636f6c6f72297d2e6d6f64616c7b646973706c61793a6e6f6e653b706f736974696f6e3a66697865643b7a2d696e6465783a313b6c6566743a303b746f703a303b77696474683a313030253b6865696768743a313030253b6f766572666c6f773a6175746f3b6261636b67726f756e642d636f6c6f723a7267626128302c302c302c2e34297d2e6d6f64616c2d636f6e74656e747b77696474683a6669742d636f6e74656e743b746578742d616c69676e3a63656e7465723b6261636b67726f756e642d636f6c6f723a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b6d617267696e3a6175746f3b70616464696e673a31307078203230707820323070783b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a313070783b626f782d736861646f773a302032707820347078207267626128302c302c302c2e31293b706f736974696f6e3a6162736f6c7574653b746f703a3530253b6c6566743a3530253b7472616e73666f726d3a7472616e736c617465282d3530252c2d353025297d2e6d6f64616c2d6865616465727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b616c69676e2d6974656d733a63656e7465723b6d617267696e2d626f74746f6d3a313070787d2e71722d7469746c657b616c69676e2d73656c663a63656e7465723b666f6e742d7765696768743a3730307d2e636c6f73657b616c69676e2d73656c663a666c65782d656e643b636f6c6f723a766172282d2d636f6c6f72293b666c6f61743a72696768743b666f6e742d73697a653a323870783b666f6e742d7765696768743a3730307d2e636c6f73653a666f6375732c2e636c6f73653a686f7665727b636f6c6f723a233030303b746578742d6465636f726174696f6e3a6e6f6e653b637572736f723a706f696e7465727d2370617373776f72644572726f727b636f6c6f723a7265643b6d617267696e2d626f74746f6d3a313070787d2e6d6f64616c51527b646973706c61793a6e6f6e653b706f736974696f6e3a66697865643b7a2d696e6465783a313b6c6566743a303b746f703a303b77696474683a313030253b6865696768743a313030253b6f766572666c6f773a6175746f3b6261636b67726f756e642d636f6c6f723a7267626128302c302c302c2e34297d2e666c6f6174696e672d627574746f6e7b706f736974696f6e3a66697865643b626f74746f6d3a323070783b6c6566743a323070783b6261636b67726f756e642d636f6c6f723a766172282d2d636f6c6f72293b636f6c6f723a236666663b626f726465723a6e6f6e653b626f726465722d7261646975733a3530253b77696474683a363070783b6865696768743a363070783b666f6e742d73697a653a323470783b637572736f723a706f696e7465723b626f782d736861646f773a302034707820387078207267626128302c302c302c2e32293b7472616e736974696f6e3a6261636b67726f756e642d636f6c6f72202e33732c7472616e73666f726d202e33737d2e666c6f6174696e672d627574746f6e3a686f7665727b7472616e73666f726d3a7363616c6528312e31297d626f64792e6461726b2d6d6f6465202e666c6f6174696e672d627574746f6e7b6261636b67726f756e642d636f6c6f723a766172282d2d636f6c6f72297d2e666c6f6174696e672d627574746f6e20697b636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72297d626f64792e6461726b2d6d6f6465202e666c6f6174696e672d627574746f6e3a686f7665727b7472616e73666f726d3a7363616c6528312e31297d2e726566726573682d67656f2d6c6f636174696f6e7b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465727d2e726566726573682d6d792d69707b636f6c6f723a766172282d2d627574746f6e2d636f6c6f72297d64657461696c732068337b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465727d2e7564702d6e6f6973657b6d617267696e2d626f74746f6d3a313070787d2e70617373776f72642d777261707065727b706f736974696f6e3a72656c61746976657d2e70617373776f72642d7772617070657220696e7075745b747970653d70617373776f72645d2c2e70617373776f72642d7772617070657220696e7075745b747970653d746578745d7b77696474683a313030253b70616464696e672d72696768743a343070783b6d617267696e3a307d2e746f67676c652d70617373776f72647b706f736974696f6e3a6162736f6c7574653b746f703a3530253b72696768743a313070783b7472616e73666f726d3a7472616e736c61746559282d353025293b637572736f723a706f696e7465723b757365722d73656c6563743a6e6f6e653b636f6c6f723a236139613961397d2e70617373776f72642d6572726f727b636f6c6f723a7265643b6d617267696e2d626f74746f6d3a313070787d73756d6d6172792068337b646973706c61793a696e6c696e652d666c65783b616c69676e2d6974656d733a63656e7465727d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3736387078297b2e666f726d2d636f6e7461696e65727b6d61782d77696474683a3630257d2e666f726d2d636f6e74726f6c7b666c65782d646972656374696f6e3a726f777d2e666f726d2d636f6e74726f6c206c6162656c7b746578742d616c69676e3a6c6566747d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c64697620636c6173733d22666f726d2d636f6e7461696e657220636f6e7461696e6572223e3c68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e73657474696e67733c2f7370616e3e2053657474696e67733c2f68323e3c666f726d2069643d636f6e666967466f726d20636c6173733d636f6e666967466f726d206f6e7375626d69743d75706461746553657474696e6773286576656e74293e3c64657461696c7320636c6173733d64657461696c733e3c73756d6d6172793e3c68333e564c455353202d2054726f6a616e203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f766c6573732d74726f6a616e2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d72656d6f7465444e533ef09f8c8f2052656d6f746520444e533c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d72656d6f7465444e53206e616d653d72656d6f7465444e532072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6c6f63616c444e533ef09f8f9aefb88f204c6f63616c20444e533c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d6c6f63616c444e53206e616d653d6c6f63616c444e532072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d564c545246616b65444e533ef09fa7a22046616b6520444e533c2f6c6162656c3e3c6469763e3c73656c6563742069643d564c545246616b65444e53206e616d653d564c545246616b65444e533e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6f757450726f78793ee29c88efb88f20436861696e2050726f78793c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d6f757450726f7879206e616d653d6f757450726f78793e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d636c65616e4950733ee29ca820436c65616e20495073202f20446f6d61696e73203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f436c6f7564666c6172652d436c65616e2d49502d5363616e6e6572207469746c653d5363616e6e6572207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d636c65616e495073206e616d653d636c65616e49507320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d564c5452656e61626c65495076363ef09f949b20495076363c2f6c6162656c3e3c6469763e3c73656c6563742069643d564c5452656e61626c6549507636206e616d653d564c5452656e61626c65495076363e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d564c436f6e666967733ee29a99efb88f2050726f746f636f6c733c2f6c6162656c3e3c6469763e3c64697620636c6173733d2270726f746f636f6c7320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d70726f746f3e3c696e70757420747970653d636865636b626f782069643d564c436f6e66696773206e616d653d564c436f6e666967732076616c75653d74727565206f6e6368616e67653d68616e646c6550726f746f636f6c4368616e6765286576656e74293e203c6c6162656c20666f723d564c436f6e666967733e564c4553533c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d70726f746f3e3c696e70757420747970653d636865636b626f782069643d5452436f6e66696773206e616d653d5452436f6e666967732076616c75653d74727565206f6e6368616e67653d68616e646c6550726f746f636f6c4368616e6765286576656e74293e203c6c6162656c20666f723d5452436f6e666967733e54726f6a616e3c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d746c732d706f7274733ef09f949220544c5320506f7274733c2f6c6162656c3e3c6469763e3c6469762069643d746c732d706f72747320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c2f6469763e3c2f6469763e3c2f6469763e3c6469762069643d6e6f6e652d746c7320636c6173733d666f726d2d636f6e74726f6c207374796c653d646973706c61793a6e6f6e653e3c6c6162656c20666f723d6e6f6e2d746c732d706f7274733ef09f9493204e6f6e6520544c5320506f7274733c2f6c6162656c3e3c6469763e3c6469762069643d6e6f6e2d746c732d706f72747320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d66696e6765727072696e743ef09f91862046696e6765727072696e743c2f6c6162656c3e3c6469763e3c73656c6563742069643d66696e6765727072696e74206e616d653d66696e6765727072696e743e3c6f7074696f6e2076616c75653d6368726f6d653e6368726f6d653c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66697265666f783e66697265666f783c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d7361666172693e7361666172693c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d696f733e696f733c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d616e64726f69643e616e64726f69643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d656467653e656467653c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d3336303e3336303c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d71713e71713c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d72616e646f6d3e72616e646f6d3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d72616e646f6d697a65643e72616e646f6d697a65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d62657374564c5452496e74657276616c3ef09f9484204265737420496e74657276616c3c2f6c6162656c3e3c6469763e3c696e70757420747970653d6e756d6265722069643d62657374564c5452496e74657276616c206e616d653d62657374564c5452496e74657276616c206d696e3d3130206d61783d39303e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e2050726f78792049503c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70726f787949504d6f64653ef09f8e9aefb88f204d6f64653c2f6c6162656c3e3c6469763e3c73656c6563742069643d70726f787949504d6f6465206e616d653d70726f787949504d6f64653e3c6f7074696f6e2076616c75653d70726f787969703e50726f78792049503c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d7072656669783e4e415436343c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70726f78794950733ef09f938d2050726f787920495073202f20446f6d61696e73203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f7777772e6e736c6f6f6b75702e696f2f646f6d61696e732f6270622e796f757365662e6973656761726f2e636f6d2f646e732d7265636f7264732f207469746c653d2250726f78792049507322207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d70726f7879495073206e616d653d70726f787949507320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70726566697865733ef09f938d204e41543634205072656669786573203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f4250422d576f726b65722d50616e656c2f626c6f622f6d61696e2f4e4154363450726566697865732e6d64207469746c653d224e4154363420707265666978657322207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d7072656669786573206e616d653d707265666978657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e20437573746f6d2043444e3c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d43646e41646472733ef09f9280204164647265737365733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d43646e4164647273206e616d653d637573746f6d43646e416464727320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d43646e486f73743ef09f928020486f73743c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d637573746f6d43646e486f7374206e616d653d637573746f6d43646e486f73743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d43646e536e693ef09f928020534e493c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d637573746f6d43646e536e69206e616d653d637573746f6d43646e536e693e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e5872617920467261676d656e74203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f667261676d656e742f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e744d6f64653ef09f8e9aefb88f204d6f64653c2f6c6162656c3e3c6469763e3c73656c6563742069643d667261676d656e744d6f6465206e616d653d667261676d656e744d6f6465206f6e6368616e67653d68616e646c65467261676d656e744d6f646528293e3c6f7074696f6e2076616c75653d637573746f6d3e437573746f6d3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d6c6f773e4c6f773c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d6d656469756d3e4d656469756d3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d686967683e486967683c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e744c656e6774684d696e3ef09f9390204c656e6774683c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d667261676d656e744c656e6774684d696e206e616d653d667261676d656e744c656e6774684d696e206d696e3d31302072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d667261676d656e744c656e6774684d6178206e616d653d667261676d656e744c656e6774684d6178206d61783d3530302072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e74496e74657276616c4d696e3ef09f959e20496e74657276616c3c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d667261676d656e74496e74657276616c4d696e206e616d653d667261676d656e74496e74657276616c4d696e206d696e3d31206d61783d33302072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d667261676d656e74496e74657276616c4d6178206e616d653d667261676d656e74496e74657276616c4d6178206d696e3d31206d61783d33302072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d667261676d656e745061636b6574733ef09f93a6205061636b6574733c2f6c6162656c3e3c6469763e3c73656c6563742069643d667261676d656e745061636b657473206e616d653d667261676d656e745061636b6574733e3c6f7074696f6e2076616c75653d746c7368656c6c6f3e746c7368656c6c6f3c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d313e312d313c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d323e312d323c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d333e312d333c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d312d353e312d353c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e576172702047656e6572616c203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f776172702f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d77617270456e64706f696e74733ee29ca820456e64706f696e7473203c6120636c6173733d7363616e6e657220687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f4250422d576172702d5363616e6e6572207469746c653d5363616e6e6572207461726765743d5f626c616e6b2072656c3d226e6f6f70656e6572206e6f7265666572726572223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6f70656e5f696e5f6e65773c2f7370616e3e3c2f613e3c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d77617270456e64706f696e7473206e616d653d77617270456e64706f696e747320726f77733d312072657175697265643e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d7761727046616b65444e533ef09fa7a22046616b6520444e533c2f6c6162656c3e3c6469763e3c73656c6563742069643d7761727046616b65444e53206e616d653d7761727046616b65444e533e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d77617270456e61626c65495076363ef09f949b20495076363c2f6c6162656c3e3c6469763e3c73656c6563742069643d77617270456e61626c6549507636206e616d653d77617270456e61626c65495076363e3c6f7074696f6e2076616c75653d747275653e456e61626c65643c2f6f7074696f6e3e3c6f7074696f6e2076616c75653d66616c73653e44697361626c65643c2f6f7074696f6e3e3c2f73656c6563743e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6265737457617270496e74657276616c3ef09f9484204265737420496e74657276616c3c2f6c6162656c3e3c6469763e3c696e70757420747970653d6e756d6265722069643d6265737457617270496e74657276616c206e616d653d6265737457617270496e74657276616c206d696e3d3130206d61783d39303e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d7265667265736842746e3ee299bbefb88f2057617270204163636f756e74733c2f6c6162656c3e3c6469763e3c627574746f6e20747970653d627574746f6e20636c6173733d22627574746f6e207265766572736522206f6e636c69636b3d75706461746557617270436f6e6669677328293e5570646174653c7370616e2069643d776172702d75706461746520636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6175746f72656e65773c2f7370616e3e3c2f627574746f6e3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e576172702050524f203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f776172702d70726f2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e204d616873614e47204e6f6973653c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6b6e6f636b65724e6f6973654d6f64653ef09f98b5e2808df09f92ab204d6f64653c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d6b6e6f636b65724e6f6973654d6f6465206e616d653d6b6e6f636b65724e6f6973654d6f6465207469746c653d2246696c6c20696e20276e6f6e65272c202771756963272c202772616e646f6d272c206f7220616e792048455820737472696e67206c696b6520276565303030303030303130386161616127222072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e6f697365436f756e744d696e3ef09f8e9aefb88f20436f756e743c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d6e6f697365436f756e744d696e206e616d653d6e6f697365436f756e744d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d6e6f697365436f756e744d6178206e616d653d6e6f697365436f756e744d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e6f69736553697a654d696e3ef09f938f2053697a653c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d6e6f69736553697a654d696e206e616d653d6e6f69736553697a654d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d6e6f69736553697a654d6178206e616d653d6e6f69736553697a654d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e6f69736544656c61794d696e3ef09f959e2044656c61793c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d6e6f69736544656c61794d696e206e616d653d6e6f69736544656c61794d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d6e6f69736544656c61794d6178206e616d653d6e6f69736544656c61794d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c64697620636c6173733d73656374696f6e3e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e20436c617368202d20416d6e657a6961204e6f6973653c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d616d6e657a69614e6f697365436f756e743ef09f8e9aefb88f20436f756e743c2f6c6162656c3e3c6469763e3c696e70757420747970653d6e756d6265722069643d616d6e657a69614e6f697365436f756e74206e616d653d616d6e657a69614e6f697365436f756e74206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d616d6e657a69614e6f69736553697a654d696e3ef09f938f2053697a653c2f6c6162656c3e3c64697620636c6173733d6d696e2d6d61783e3c696e70757420747970653d6e756d6265722069643d616d6e657a69614e6f69736553697a654d696e206e616d653d616d6e657a69614e6f69736553697a654d696e206d696e3d312072657175697265643e203c7370616e3e2d3c2f7370616e3e203c696e70757420747970653d6e756d6265722069643d616d6e657a69614e6f69736553697a654d6178206e616d653d616d6e657a69614e6f69736553697a654d6178206d696e3d312072657175697265643e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c6469762069643d7564702d6e6f6973652d636f6e7461696e657220636c6173733d636f6e7461696e65723e3c64697620636c6173733d6865616465722d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e2076327261794e47202d2076327261794e204e6f6973653c2f68343e3c627574746f6e20747970653d627574746f6e20636c6173733d6164642d6e6f697365206f6e636c69636b3d6164645564704e6f6973652874727565293e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6164645f636972636c653c2f7370616e3e3c2f627574746f6e3e3c2f6469763e3c6469762069643d6e6f6973657320636c6173733d73656374696f6e3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e526f7574696e672052756c6573203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f636f6e66696775726174696f6e2f726f7574696e672d72756c65732f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e205072657365742052756c65733c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6279706173732d72756c65733ef09f9fa9204279706173732072756c65733c2f6c6162656c3e3c6469763e3c6469762069643d6279706173732d72756c657320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734972616e206e616d653d6279706173734972616e2076616c75653d747275653e203c6c6162656c20666f723d6279706173734972616e3e4972616e3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734368696e61206e616d653d6279706173734368696e612076616c75653d747275653e203c6c6162656c20666f723d6279706173734368696e613e4368696e613c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373527573736961206e616d653d6279706173735275737369612076616c75653d747275653e203c6c6162656c20666f723d6279706173735275737369613e5275737369613c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d626c6f636b2d72756c65733ef09f9fa520426c6f636b2072756c65733c2f6c6162656c3e3c6469763e3c6469762069643d626c6f636b2d72756c657320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d626c6f636b416473206e616d653d626c6f636b4164732076616c75653d747275653e203c6c6162656c20666f723d626c6f636b4164733e4164732e3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d626c6f636b506f726e206e616d653d626c6f636b506f726e2076616c75653d747275653e203c6c6162656c20666f723d626c6f636b506f726e3e506f726e3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d626c6f636b554450343433206e616d653d626c6f636b5544503434332076616c75653d747275653e203c6c6162656c20666f723d626c6f636b5544503434333e515549433c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e20437573746f6d2052756c65733c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d42797061737352756c65733ef09f9fa92042797061737320495073202f20446f6d61696e733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d42797061737352756c6573206e616d653d637573746f6d42797061737352756c657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d426c6f636b52756c65733ef09f9fa520426c6f636b20495073202f20446f6d61696e733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d426c6f636b52756c6573206e616d653d637573746f6d426c6f636b52756c657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d636f6e7461696e65723e3c68343e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e74756e653c2f7370616e3e2053616e6374696f6e2052756c65733c2f68343e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d616e746953616e6374696f6e444e533ef09f8c8f20416e74692053616e6374696f6e20444e533c2f6c6162656c3e3c6469763e3c696e70757420747970653d746578742069643d616e746953616e6374696f6e444e53206e616d653d616e746953616e6374696f6e444e532072657175697265643e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6279706173732d73616e6374696f6e2d72756c65733ef09f9fa9204279706173732072756c65733c2f6c6162656c3e3c6469763e3c6469762069643d6279706173732d73616e6374696f6e2d72756c657320636c6173733d2272756c657320696e6e65722d636f6e7461696e6572223e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734f70656e4169206e616d653d6279706173734f70656e41692076616c75653d747275653e203c6c6162656c20666f723d6279706173734f70656e41693e436861744750543c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734d6963726f736f6674206e616d653d6279706173734d6963726f736f66742076616c75653d747275653e203c6c6162656c20666f723d6279706173734d6963726f736f66743e4d6963726f736f66743c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734f7261636c65206e616d653d6279706173734f7261636c652076616c75653d747275653e203c6c6162656c20666f723d6279706173734f7261636c653e4f7261636c653c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373446f636b6572206e616d653d627970617373446f636b65722076616c75653d747275653e203c6c6162656c20666f723d627970617373446f636b65723e446f636b65723c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d62797061737341646f6265206e616d653d62797061737341646f62652076616c75653d747275653e203c6c6162656c20666f723d62797061737341646f62653e41646f62653c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734570696347616d6573206e616d653d6279706173734570696347616d65732076616c75653d747275653e203c6c6162656c20666f723d6279706173734570696347616d65733e457069632047616d65733c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373496e74656c206e616d653d627970617373496e74656c2076616c75653d747275653e203c6c6162656c20666f723d627970617373496e74656c3e496e74656c3c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d627970617373416d64206e616d653d627970617373416d642076616c75653d747275653e203c6c6162656c20666f723d627970617373416d643e414d443c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734e7669646961206e616d653d6279706173734e76696469612076616c75653d747275653e203c6c6162656c20666f723d6279706173734e76696469613e4e76696469613c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d62797061737341737573206e616d653d627970617373417375732076616c75653d747275653e203c6c6162656c20666f723d627970617373417375733e417375733c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734870206e616d653d62797061737348702076616c75653d747275653e203c6c6162656c20666f723d62797061737348703e48503c2f6c6162656c3e3c2f6469763e3c64697620636c6173733d726f7574696e673e3c696e70757420747970653d636865636b626f782069643d6279706173734c656e6f766f206e616d653d6279706173734c656e6f766f2076616c75653d747275653e203c6c6162656c20666f723d6279706173734c656e6f766f3e4c656e6f766f3c2f6c6162656c3e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d637573746f6d42797061737353616e6374696f6e52756c65733ef09f9fa92042797061737320446f6d61696e733c2f6c6162656c3e3c6469763e3c746578746172656120747970653d746578742069643d637573746f6d42797061737353616e6374696f6e52756c6573206e616d653d637573746f6d42797061737353616e6374696f6e52756c657320726f77733d313e3c2f74657874617265613e3c2f6469763e3c2f6469763e3c2f6469763e3c2f6469763e3c2f64657461696c733e3c6469762069643d6170706c7920636c6173733d22666f726d2d636f6e74726f6c206170706c79223e3c627574746f6e20747970653d7375626d69742069643d6170706c79427574746f6e20636c6173733d22627574746f6e2064697361626c6564206170706c792d73657474696e67732220666f726d3d636f6e666967466f726d3e4170706c79203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636865636b5f636972636c653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e20636c6173733d70616e656c2d73657474696e6773207469746c653d2252657365742070616e656c2073657474696e677320746f2064656661756c7422206f6e636c69636b3d726573657453657474696e677328293e3c692069643d726566726573682d62746e20636c6173733d2266612066612d726566726573682066612d32782220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e20636c6173733d70616e656c2d73657474696e6773207469746c653d224578706f72742070616e656c2073657474696e677322206f6e636c69636b3d6578706f727453657474696e677328293e3c6920636c6173733d2266612066612d636c6f75642d646f776e6c6f61642066612d32782220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e20636c6173733d70616e656c2d73657474696e6773207469746c653d22496d706f72742070616e656c2073657474696e677322206f6e636c69636b3d696d706f727453657474696e677328293e3c6920636c6173733d2266612066612d636c6f75642d75706c6f61642066612d32782220617269612d68696464656e3d747275653e3c2f693e203c696e70757420747970653d66696c652069643d66696c65496e707574206163636570743d2e646174207374796c653d646973706c61793a6e6f6e65206f6e6368616e67653d75706c6f616453657474696e6773286576656e74293e3c2f627574746f6e3e3c2f6469763e3c2f666f726d3e3c2f6469763e3c64697620636c6173733d22666f726d2d636f6e7461696e657220636f6e7461696e6572223e3c68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e73686172653c2f7370616e3e20537562736372697074696f6e733c2f68323e3c64657461696c733e3c73756d6d6172793e3c68333e4e6f726d616c203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f6e6f726d616c2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d66756c6c2d6e6f726d616c2d636f6e666967732d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e4d616873614e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e2d50524f3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e515228276e6f726d616c272c202778726179272c20274e6f726d616c272c20274e6f726d616c20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c28276e6f726d616c272c202778726179272c20274e6f726d616c2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c28276e6f726d616c272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e73696e672d626f783c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e202873696e672d626f78293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e515228276e6f726d616c272c202773696e672d626f78272c20274e6f726d616c272c20274e6f726d616c20537562736372697074696f6e272c207472756529223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c28276e6f726d616c272c202773696e672d626f78272c20274e6f726d616c2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c28276e6f726d616c272c202773696e672d626f782729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c617368204d6574613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c6173682056657267653c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e466c436c6173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e53746173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e20286d69686f6d6f293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e515228276e6f726d616c272c2027636c617368272c20274e6f726d616c272c20274e6f726d616c20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c28276e6f726d616c272c2027636c617368272c20274e6f726d616c2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c28276e6f726d616c272c2027636c6173682729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e467261676d656e74203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f667261676d656e742f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d667261672d7375622d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e4d616873614e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e2d50524f3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827667261676d656e74272c202778726179272c2027467261676d656e74272c2027467261676d656e7420537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827667261676d656e74272c202778726179272c2027467261676d656e742729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827667261676d656e74272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e73696e672d626f783c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e202873696e672d626f78293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827667261676d656e74272c202773696e672d626f78272c2027467261676d656e74272c2027467261676d656e7420537562736372697074696f6e272c207472756529223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827667261676d656e74272c202773696e672d626f78272c2027467261676d656e742729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827667261676d656e74272c202773696e672d626f782729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e57617270203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f776172702f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d776172702d636f6e666967732d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e5152282777617270272c202778726179272c202757617270272c20275761727020537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c282777617270272c202778726179272c2027576172702729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c282777617270272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e73696e672d626f783c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e202873696e672d626f78293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e5152282777617270272c202773696e672d626f78272c202757617270272c20275761727020537562736372697074696f6e272c207472756529223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c282777617270272c202773696e672d626f78272c2027576172702729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c282777617270272c202773696e672d626f782729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c617368204d6574613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c6173682056657267653c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e466c436c6173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e53746173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e20286d69686f6d6f293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e5152282777617270272c2027636c617368272c202757617270272c20275761727020537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c282777617270272c2027636c617368272c2027576172702729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c282777617270272c2027636c6173682729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e5769726567756172643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696773207a6970222069643d646c436f6e6669677342746e20747970653d627574746f6e206f6e636c69636b3d646f776e6c6f616457617270436f6e666967732866616c7365293e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c64657461696c733e3c73756d6d6172793e3c68333e576172702050524f203c6120687265663d68747470733a2f2f6269612d7061696e2d62616368652e6769746875622e696f2f4250422d576f726b65722d50616e656c2f75736167652f776172702d70726f2f207461726765743d5f626c616e6b207469746c653d48656c703e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e696e666f3c2f7370616e3e3c2f613e3c2f68333e3c2f73756d6d6172793e3c64697620636c6173733d7461626c652d636f6e7461696e65723e3c7461626c652069643d776172702d70726f2d636f6e666967732d7461626c653e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e3c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e537472656973616e643c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827776172702d70726f272c202778726179272c2027576172702050726f272c2027576172702050726f20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827776172702d70726f272c202778726179272c2027576172702050726f2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827776172702d70726f272c2027787261792729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e4d616873614e473c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e2d50524f3c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827776172702d70726f272c2027787261792d6b6e6f636b6572272c2027576172702050726f272c2027576172702050726f20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827776172702d70726f272c2027787261792d6b6e6f636b6572272c2027576172702050726f2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827776172702d70726f272c2027787261792d6b6e6f636b65722729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c617368204d6574613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e436c6173682056657267653c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e466c436c6173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e53746173683c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e76327261794e20286d69686f6d6f293c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446973706c617920515220636f646522206f6e636c69636b3d226f70656e51522827776172702d70726f272c2027636c617368272c2027576172702050726f272c2027576172702050726f20537562736372697074696f6e2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e71725f636f64653c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22436f707920737562736372697074696f6e2055524c22206f6e636c69636b3d2273756255524c2827776172702d70726f272c2027636c617368272c2027576172702050726f2729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e203c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696722206f6e636c69636b3d22646c55524c2827776172702d70726f272c2027636c6173682729223e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c74723e3c74643e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e416d6e657a69613c2f7370616e3e3c2f6469763e3c6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e76657269666965643c2f7370616e3e203c7370616e3e57472054756e6e656c3c2f7370616e3e3c2f6469763e3c2f74643e3c74643e3c627574746f6e207469746c653d22446f776e6c6f616420636f6e66696773207a6970222069643d646c416d6e657a6961436f6e6669677342746e20747970653d627574746f6e206f6e636c69636b3d646f776e6c6f616457617270436f6e666967732874727565293e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e646f776e6c6f61643c2f7370616e3e3c2f627574746f6e3e3c2f74643e3c2f74723e3c2f7461626c653e3c2f6469763e3c2f64657461696c733e3c2f6469763e3c64697620636c6173733d22666f726d2d636f6e7461696e657220636f6e7461696e6572223e3c6469762069643d7265736574506173734d6f64616c20636c6173733d6d6f64616c3e3c64697620636c6173733d6d6f64616c2d636f6e74656e743e3c7370616e20636c6173733d636c6f73652069643d636c6f7365526573657450617373206f6e636c69636b3d636c6f736552657365745061737328293e2674696d65733b3c2f7370616e3e3c666f726d2069643d70617373776f72644368616e6765466f726d206f6e7375626d69743d726573657450617373776f7264286576656e74293e3c68323e4368616e67652050617373776f72643c2f68323e3c64697620636c6173733d73656374696f6e3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d6e657750617373776f72643e4e65772050617373776f72643c2f6c6162656c3e3c64697620636c6173733d70617373776f72642d777261707065723e3c696e70757420747970653d70617373776f72642069643d6e657750617373776f7264206e616d653d6e657750617373776f72642072657175697265643e203c7370616e20636c6173733d226d6174657269616c2d73796d626f6c732d726f756e64656420746f67676c652d70617373776f7264223e7669736962696c6974795f6f66663c2f7370616e3e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d636f6e6669726d50617373776f72643e436f6e6669726d2050617373776f72643c2f6c6162656c3e3c64697620636c6173733d70617373776f72642d777261707065723e3c696e70757420747970653d70617373776f72642069643d636f6e6669726d50617373776f7264206e616d653d636f6e6669726d50617373776f72642072657175697265643e203c7370616e20636c6173733d226d6174657269616c2d73796d626f6c732d726f756e64656420746f67676c652d70617373776f7264223e7669736962696c6974795f6f66663c2f7370616e3e3c2f6469763e3c2f6469763e3c2f6469763e3c6469762069643d70617373776f72644572726f7220636c6173733d70617373776f72642d6572726f723e3c2f6469763e3c627574746f6e2069643d6368616e676550617373776f726442746e20747970653d7375626d697420636c6173733d627574746f6e3e4368616e67652050617373776f72643c2f627574746f6e3e3c2f666f726d3e3c2f6469763e3c2f6469763e3c6469762069643d71724d6f64616c20636c6173733d6d6f64616c51523e3c64697620636c6173733d6d6f64616c2d636f6e74656e7420636c6173733d6d6f64616c2d636f6e74656e743e3c64697620636c6173733d6d6f64616c2d6865616465723e3c7370616e2069643d636c6f7365515220636c6173733d636c6f7365206f6e636c69636b3d636c6f7365515228293e2674696d65733b3c2f7370616e3e203c7370616e2069643d7172636f64655469746c6520636c6173733d71722d7469746c653e3c2f7370616e3e3c2f6469763e3c6469762069643d7172636f64652d636f6e7461696e65723e3c2f6469763e3c2f6469763e3c2f6469763e3c64697620636c6173733d6865616465722d636f6e7461696e65723e3c68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e66696e6765727072696e743c2f7370616e3e204d792049503c2f68323e3c627574746f6e20747970653d627574746f6e2069643d726566726573682d67656f2d6c6f636174696f6e20636c6173733d726566726573682d67656f2d6c6f636174696f6e206f6e636c69636b3d66657463684950496e666f28293e3c6920636c6173733d2266612066612d726566726573682066612d327820726566726573682d6d792d69702220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e3c2f6469763e3c64697620636c6173733d6d792d69703e3c7461626c652069643d69707320636c6173733d6d792d69703e3c74686561643e3c74683e496e666f726d6174696f6e3c2f74683e3c74683e436c6f7564666c61726520746172676574733c2f74683e3c74683e4f7468657220746172676574733c2f74683e3c2f74686561643e3c74626f64793e3c74723e3c74643e49503c2f74643e3c74642069643d63662d69703e3c2f74643e3c74642069643d69703e3c2f74643e3c2f74723e3c74723e3c74643e436f756e7472793c2f74643e3c74642069643d63662d636f756e7472793e3c2f74643e3c74642069643d636f756e7472793e3c2f74643e3c2f74723e3c74723e3c74643e436974793c2f74643e3c74642069643d63662d636974793e3c2f74643e3c74642069643d636974793e3c2f74643e3c2f74723e3c74723e3c74643e4953503c2f74643e3c74642069643d63662d6973703e3c2f74643e3c74642069643d6973703e3c2f74643e3c2f74723e3c2f74626f64793e3c2f7461626c653e3c2f6469763e3c2f6469763e3c64697620636c6173733d666f6f7465722d636f6e7461696e65723e3c64697620636c6173733d666f6f7465723e3c64697620636c6173733d6769746875622d636f6e7461696e65723e3c6920636c6173733d2266612066612d676974687562223e3c2f693e203c6120636c6173733d6c696e6b2069643d6769746875622d6c696e6b20687265663d68747470733a2f2f6769746875622e636f6d2f6269612d7061696e2d62616368652f4250422d576f726b65722d50616e656c207461726765743d5f626c616e6b3e4769746875623c2f613e3c2f6469763e3c627574746f6e2069643d6f70656e52657365745061737320636c6173733d627574746f6e206f6e636c69636b3d6f70656e52657365745061737328293e4368616e67652050617373776f7264203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6b65795f766572746963616c3c2f7370616e3e3c2f627574746f6e3e203c627574746f6e20747970653d627574746f6e2069643d6c6f676f757420636c6173733d6c6f676f7574207469746c653d224c6f67206f757422206f6e636c69636b3d6c6f676f7574286576656e74293e3c6920636c6173733d2266612066612d706f7765722d6f66662066612d32782220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e3c2f6469763e3c2f6469763e3c627574746f6e2069643d6461726b4d6f6465546f67676c6520636c6173733d666c6f6174696e672d627574746f6e206f6e636c69636b3d6461726b4d6f6465546f67676c6528293e3c692069643d6d6f646549636f6e20636c6173733d2266612066612d32782066612d61646a757374206461726b2d6d6f64652220617269612d68696464656e3d747275653e3c2f693e3c2f627574746f6e3e3c73637269707420747970653d6d6f64756c652064656665723d64656665723e696d706f7274207b20706f6c7966696c6c436f756e747279466c6167456d6f6a6973207d2066726f6d202268747470733a2f2f63646e2e736b797061636b2e6465762f636f756e7472792d666c61672d656d6f6a692d706f6c7966696c6c223b0a2020202020202020706f6c7966696c6c436f756e747279466c6167456d6f6a697328293b3c2f7363726970743e3c736372697074207372633d68747470733a2f2f63646e6a732e636c6f7564666c6172652e636f6d2f616a61782f6c6962732f7172636f64656a732f312e302e302f7172636f64652e6d696e2e6a733e3c2f7363726970743e3c7363726970743e22656e61626c6564223d3d3d6c6f63616c53746f726167652e6765744974656d28226461726b4d6f646522292626646f63756d656e742e626f64792e636c6173734c6973742e61646428226461726b2d6d6f646522293b636f6e737420666f726d3d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22292c5b73656c656374456c656d656e74732c6e756d496e707574456c656d656e74732c696e707574456c656d656e74732c7465787461726561456c656d656e74732c636865636b626f78456c656d656e74735d3d5b2273656c656374222c22696e7075745b747970653d6e756d6265725d222c22696e7075743a6e6f74285b747970653d66696c655d29222c227465787461726561222c22696e7075745b747970653d636865636b626f785d225d2e6d617028653d3e666f726d2e717565727953656c6563746f72416c6c286529292c64656661756c744874747073506f7274733d5b3434332c383434332c323035332c323038332c323038372c323039365d2c64656661756c7448747470506f7274733d5b38302c383038302c383838302c323035322c323038322c323038362c323039355d2c646f6d61696e52656765783d2f5e283f3d2e7b312c3235337d2429283f3a283f3a5b612d7a412d5a302d395d283f3a5b612d7a412d5a302d392d5d7b302c36317d5b612d7a412d5a302d395d293f295c2e292b5b612d7a412d5a5d7b322c36337d242f2c6970763452656765783d2f5e283f3a283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f295c2e297b337d283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f29242f2c6970763652656765783d2f5e5c5b283f3a283f3a5b612d66412d46302d395d7b312c347d3a297b377d5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c377d3a7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c367d3a5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c357d283f3a3a5b612d66412d46302d395d7b312c347d297b312c327d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c347d283f3a3a5b612d66412d46302d395d7b312c347d297b312c337d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c337d283f3a3a5b612d66412d46302d395d7b312c347d297b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c327d283f3a3a5b612d66412d46302d395d7b312c347d297b312c357d7c5b612d66412d46302d395d7b312c347d3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c367d7c3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c377d295c5d242f3b66756e6374696f6e20696e69746961746550616e656c2865297b636f6e73747b564c436f6e666967733a742c5452436f6e666967733a6e2c706f7274733a6f2c787261795564704e6f697365733a617d3d653b4f626a6563742e61737369676e28676c6f62616c546869732c7b61637469766550726f746f636f6c733a742b6e2c616374697665546c73506f7274733a6f2e66696c74657228653d3e64656661756c744874747073506f7274732e696e636c75646573286529292c787261794e6f697365436f756e743a612e6c656e6774687d292c706f70756c61746550616e656c2865292c72656e646572506f727473426c6f636b286f2e6d6170284e756d62657229292c72656e6465725564704e6f697365426c6f636b2861292c696e697469617465466f726d28292c66657463684950496e666f28297d66756e6374696f6e20706f70756c61746550616e656c2865297b73656c656374456c656d656e74732e666f724561636828743d3e742e76616c75653d655b742e69645d292c636865636b626f78456c656d656e74732e666f724561636828743d3e742e636865636b65643d655b742e69645d292c696e707574456c656d656e74732e666f724561636828743d3e742e76616c75653d655b742e69645d292c7465787461726561456c656d656e74732e666f724561636828743d3e7b636f6e7374206e3d742e69642c6f3d646f63756d656e742e676574456c656d656e7442794964286e292c613d655b6e5d3f2e6a6f696e28225c725c6e22292c733d655b6e5d2e6c656e6774683b6f2e7374796c652e6865696768743d226175746f222c732626286f2e726f77733d73292c6f2e76616c75653d617d297d66756e6374696f6e20696e697469617465466f726d28297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22293b676c6f62616c546869732e696e697469616c466f726d446174613d6e657720466f726d446174612865292c656e61626c654170706c79427574746f6e28292c652e6164644576656e744c697374656e65722822696e707574222c656e61626c654170706c79427574746f6e292c652e6164644576656e744c697374656e657228226368616e6765222c656e61626c654170706c79427574746f6e293b646f63756d656e742e717565727953656c6563746f72416c6c2822746578746172656122292e666f724561636828653d3e7b652e6164644576656e744c697374656e65722822696e707574222c66756e6374696f6e28297b746869732e7374796c652e6865696768743d226175746f222c746869732e7374796c652e6865696768743d60247b746869732e7363726f6c6c4865696768747d7078607d297d292c68616e646c65467261676d656e744d6f646528297d66756e6374696f6e20686173466f726d446174614368616e67656428297b636f6e737420653d653d3e4f626a6563742e66726f6d456e747269657328652e656e74726965732829292c743d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22292c6e3d6e657720466f726d446174612874292c6f3d6528676c6f62616c546869732e696e697469616c466f726d44617461292c613d65286e293b72657475726e204a534f4e2e737472696e67696679286f29213d3d4a534f4e2e737472696e676966792861297d66756e6374696f6e20656e61626c654170706c79427574746f6e28297b636f6e737420653d646f63756d656e742e676574456c656d656e744279496428226170706c79427574746f6e22292c743d686173466f726d446174614368616e67656428293b652e64697361626c65643d21742c652e636c6173734c6973742e746f67676c65282264697361626c6564222c2174297d66756e6374696f6e206f70656e52657365745061737328297b646f63756d656e742e676574456c656d656e744279496428227265736574506173734d6f64616c22292e7374796c652e646973706c61793d22626c6f636b222c646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d2268696464656e227d66756e6374696f6e20636c6f736552657365745061737328297b646f63756d656e742e676574456c656d656e744279496428227265736574506173734d6f64616c22292e7374796c652e646973706c61793d226e6f6e65222c646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d22227d66756e6374696f6e20636c6f7365515228297b636f6e737420653d646f63756d656e742e676574456c656d656e7442794964282271724d6f64616c22292c743d646f63756d656e742e676574456c656d656e744279496428227172636f64652d636f6e7461696e657222293b652e7374796c652e646973706c61793d226e6f6e65222c742e6c617374456c656d656e744368696c642e72656d6f766528297d66756e6374696f6e206461726b4d6f6465546f67676c6528297b636f6e737420653d646f63756d656e742e626f64792e636c6173734c6973742e746f67676c6528226461726b2d6d6f646522293b6c6f63616c53746f726167652e7365744974656d28226461726b4d6f6465222c653f22656e61626c6564223a2264697361626c656422297d6173796e632066756e6374696f6e20676574497044657461696c732865297b7472797b636f6e737420743d617761697420666574636828222f70616e656c2f6d792d6970222c7b6d6574686f643a22504f5354222c626f64793a657d292c6e3d617761697420742e6a736f6e28292c7b737563636573733a6f2c7374617475733a612c6d6573736167653a732c626f64793a727d3d6e3b696628216f297468726f77206e6577204572726f72286073746174757320247b617d202d20247b737d60293b72657475726e20727d63617463682865297b636f6e736f6c652e6572726f7228224665746368696e67204950206572726f723a222c652e6d6573736167657c7c65297d7d6173796e632066756e6374696f6e2066657463684950496e666f28297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822726566726573682d67656f2d6c6f636174696f6e22292e717565727953656c6563746f7228226922293b652e636c6173734c6973742e616464282266612d7370696e22293b636f6e737420743d28653d222d222c743d222d222c6e3d222d222c6f3d222d222c613d222d222c73293d3e7b636f6e737420723d222d22213d3d6e3f537472696e672e66726f6d436f6465506f696e74282e2e2e5b2e2e2e6e5d2e6d617028653d3e3132373436322b652e63686172436f646541742830292d363529293a22222c6c3d28652c74293d3e646f63756d656e742e676574456c656d656e74427949642865292e74657874436f6e74656e743d743b6c28733f2263662d6970223a226970222c65292c6c28733f2263662d636f756e747279223a22636f756e747279222c60247b747d20247b727d60292c6c28733f2263662d63697479223a2263697479222c6f292c6c28733f2263662d697370223a22697370222c61297d3b7472797b636f6e7374206e3d6177616974206665746368282268747470733a2f2f697077686f2e69732f3f6e6f63616368653d222b446174652e6e6f7728292c7b63616368653a226e6f2d73746f7265227d292c7b737563636573733a6f2c69703a612c6d6573736167653a737d3d6177616974206e2e6a736f6e28293b696628216f297468726f77206e6577204572726f7228604665746368204f746865722074617267657473204950206661696c656420617420247b6e2e75726c7d202d20247b737d60293b636f6e73747b636f756e7472793a722c636f756e747279436f64653a6c2c636974793a692c6973703a637d3d617761697420676574497044657461696c732861293b7428612c722c6c2c692c63292c652e636c6173734c6973742e72656d6f7665282266612d7370696e22297d63617463682865297b636f6e736f6c652e6572726f7228224665746368696e67204950206572726f723a222c652e6d6573736167657c7c65297d7472797b636f6e7374206e3d6177616974206665746368282268747470733a2f2f697076342e6963616e68617a69702e636f6d2f3f6e6f63616368653d222b446174652e6e6f7728292c7b63616368653a226e6f2d73746f7265227d293b696628216e2e6f6b297b636f6e737420653d6177616974206e2e7465787428293b7468726f77206e6577204572726f722860466574636820436c6f7564666c6172652074617267657473204950206661696c656420776974682073746174757320247b6e2e7374617475737d20617420247b6e2e75726c7d202d20247b657d60297d636f6e7374206f3d6177616974206e2e7465787428292c7b636f756e7472793a612c636f756e747279436f64653a732c636974793a722c6973703a6c7d3d617761697420676574497044657461696c73286f293b74286f2c612c732c722c6c2c2130292c652e636c6173734c6973742e72656d6f7665282266612d7370696e22297d63617463682865297b636f6e736f6c652e6572726f7228224665746368696e67204950206572726f723a222c652e6d6573736167657c7c65297d7d66756e6374696f6e20646f776e6c6f616457617270436f6e666967732865297b636f6e737420743d653f223f6170703d616d6e657a6961223a22223b77696e646f772e6c6f636174696f6e2e687265663d222f70616e656c2f6765742d776172702d636f6e66696773222b747d66756e6374696f6e2067656e657261746553756255726c28652c742c6e2c6f297b636f6e737420613d6e65772055524c2877696e646f772e6c6f636174696f6e2e68726566293b72657475726e20612e706174686e616d653d602f7375622f247b657d2f247b676c6f62616c546869732e737562506174687d602c742626612e736561726368506172616d732e617070656e642822617070222c74292c6e262628612e686173683d60f09f92a620247b61746f622822516c424322297d20247b6e7d60292c6f3f6073696e672d626f783a2f2f696d706f72742d72656d6f74652d70726f66696c653f75726c3d247b612e687265667d603a612e687265667d66756e6374696f6e2073756255524c28652c742c6e2c6f297b636f7079546f436c6970626f6172642867656e657261746553756255726c28652c742c6e2c6f29297d6173796e632066756e6374696f6e20646c55524c28652c74297b636f6e7374206e3d67656e657261746553756255726c28652c74293b7472797b636f6e737420653d6177616974206665746368286e292c743d617761697420652e7465787428293b69662821652e6f6b297468726f77206e6577204572726f72286073746174757320247b652e7374617475737d20617420247b652e75726c7d202d20247b747d60293b646f776e6c6f61644a534f4e28742c22636f6e6669672e6a736f6e22297d63617463682865297b636f6e736f6c652e6572726f722822446f776e6c6f6164206572726f723a222c652e6d6573736167657c7c65297d7d66756e6374696f6e20646f776e6c6f61644a534f4e28652c74297b636f6e7374206e3d6e657720426c6f62285b655d2c7b747970653a22746578742f706c61696e227d292c6f3d646f63756d656e742e637265617465456c656d656e7428226122293b6f2e687265663d55524c2e6372656174654f626a65637455524c286e292c6f2e646f776e6c6f61643d742c646f63756d656e742e626f64792e617070656e644368696c64286f292c6f2e636c69636b28292c646f63756d656e742e626f64792e72656d6f76654368696c64286f297d66756e6374696f6e206578706f727453657474696e677328297b636f6e737420653d76616c696461746553657474696e677328292c743d4a534f4e2e737472696e6769667928652c6e756c6c2c34293b646f776e6c6f61644a534f4e2862746f612874292c60247b61746f622822516c424322297d2d73657474696e67732e64617460297d66756e6374696f6e20696d706f727453657474696e677328297b636f6e737420653d646f63756d656e742e676574456c656d656e7442794964282266696c65496e70757422293b652e76616c75653d22222c652e636c69636b28297d6173796e632066756e6374696f6e2075706c6f616453657474696e67732865297b636f6e737420743d652e7461726765742e66696c65735b305d3b69662874297472797b636f6e7374206e3d617761697420742e7465787428292c6f3d61746f62286e292c613d4a534f4e2e7061727365286f293b75706461746553657474696e677328652c61292c696e69746961746550616e656c2861297d63617463682865297b636f6e736f6c652e6572726f7228224661696c656420746f20696d706f72742073657474696e67733a222c652e6d657373616765297d7d66756e6374696f6e206f70656e515228652c742c6e2c6f2c61297b636f6e737420733d646f63756d656e742e676574456c656d656e7442794964282271724d6f64616c22292c723d646f63756d656e742e676574456c656d656e744279496428227172636f64652d636f6e7461696e657222292c6c3d67656e657261746553756255726c28652c742c6e2c61293b646f63756d656e742e676574456c656d656e744279496428227172636f64655469746c6522292e74657874436f6e74656e743d6f2c732e7374796c652e646973706c61793d22626c6f636b223b6c657420693d646f63756d656e742e637265617465456c656d656e74282264697622293b692e636c6173734e616d653d227172636f6465222c692e7374796c652e70616464696e673d22327078222c692e7374796c652e6261636b67726f756e64436f6c6f723d2223666666666666222c6e6577205152436f646528692c7b746578743a6c2c77696474683a3235362c6865696768743a3235362c636f6c6f724461726b3a2223303030303030222c636f6c6f724c696768743a2223666666666666222c636f72726563744c6576656c3a5152436f64652e436f72726563744c6576656c2e487d292c722e617070656e644368696c642869297d66756e6374696f6e20636f7079546f436c6970626f6172642865297b6e6176696761746f722e636c6970626f6172642e7772697465546578742865292e7468656e2828293d3e616c6572742822e29c8520436f7069656420746f20636c6970626f6172643a5c6e5c6e222b6529292e636174636828653d3e636f6e736f6c652e6572726f7228224661696c656420746f20636f70793a222c6529297d6173796e632066756e6374696f6e2075706461746557617270436f6e6669677328297b69662821636f6e6669726d2822e29aa0efb88f2041726520796f7520737572653f22292972657475726e3b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822776172702d75706461746522293b646f63756d656e742e626f64792e7374796c652e637572736f723d2277616974222c652e636c6173734c6973742e616464282266612d7370696e22293b7472797b636f6e737420743d617761697420666574636828222f70616e656c2f7570646174652d77617270222c7b6d6574686f643a22504f5354222c63726564656e7469616c733a22696e636c756465227d292c7b737563636573733a6e2c7374617475733a6f2c6d6573736167653a617d3d617761697420742e6a736f6e28293b696628646f63756d656e742e626f64792e7374796c652e637572736f723d2264656661756c74222c652e636c6173734c6973742e72656d6f7665282266612d7370696e22292c216e297468726f7720616c6572742860e29aa0efb88f20416e206572726f72206f6363757265642c20506c656173652074727920616761696e215c6ee29b9420247b617d60292c6e6577204572726f72286073746174757320247b6f7d202d20247b617d60293b616c6572742822e29c85205761727020636f6e666967732075706461746564207375636365737366756c6c792122297d63617463682865297b636f6e736f6c652e6572726f7228225570646174696e67205761727020636f6e66696773206572726f723a222c652e6d6573736167657c7c65297d7d66756e6374696f6e2068616e646c6550726f746f636f6c4368616e67652865297b72657475726e20652e7461726765742e636865636b65643f28676c6f62616c546869732e61637469766550726f746f636f6c732b2b2c2130293a28676c6f62616c546869732e61637469766550726f746f636f6c732d2d2c303d3d3d676c6f62616c546869732e61637469766550726f746f636f6c733f28652e70726576656e7444656661756c7428292c652e7461726765742e636865636b65643d21652e7461726765742e636865636b65642c616c6572742822e29b94204174206c65617374206f6e652050726f746f636f6c2073686f756c642062652073656c65637465642122292c676c6f62616c546869732e61637469766550726f746f636f6c732b2b2c2131293a766f69642030297d66756e6374696f6e2068616e646c65506f72744368616e67652865297b636f6e737420743d4e756d62657228652e7461726765742e6e616d65293b72657475726e20652e7461726765742e636865636b65643f28676c6f62616c546869732e616374697665546c73506f7274732e707573682874292c2130293a28676c6f62616c546869732e616374697665546c73506f7274733d676c6f62616c546869732e616374697665546c73506f7274732e66696c74657228653d3e65213d3d74292c303d3d3d676c6f62616c546869732e616374697665546c73506f7274732e6c656e6774683f28652e70726576656e7444656661756c7428292c652e7461726765742e636865636b65643d21652e7461726765742e636865636b65642c616c6572742822e29b94204174206c65617374206f6e6520544c5320706f72742073686f756c642062652073656c65637465642122292c676c6f62616c546869732e616374697665546c73506f7274732e707573682874292c2131293a766f69642030297d66756e6374696f6e2068616e646c65467261676d656e744d6f646528297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822667261676d656e744d6f646522292e76616c75652c743d4f626a6563742e66726f6d456e747269657328676c6f62616c546869732e696e697469616c466f726d446174612e656e74726965732829292c6e3d5b22667261676d656e744c656e6774684d696e222c22667261676d656e744c656e6774684d6178222c22667261676d656e74496e74657276616c4d696e222c22667261676d656e74496e74657276616c4d6178225d2c6f3d7b6c6f773a5b3130302c3230302c312c315d2c6d656469756d3a5b35302c3130302c312c355d2c686967683a5b31302c32302c31302c32305d2c637573746f6d3a6e2e6d617028653d3e745b655d297d3b6e2e666f72456163682828742c6e293d3e7b636f6e737420613d646f63756d656e742e676574456c656d656e74427949642874293b612e76616c75653d6f5b655d5b6e5d2c22637573746f6d22213d3d653f612e7365744174747269627574652822726561646f6e6c79222c227472756522293a612e72656d6f76654174747269627574652822726561646f6e6c7922297d297d66756e6374696f6e20726573657453657474696e677328297b69662821636f6e6669726d2822e29aa0efb88f20546869732077696c6c20726573657420616c6c2070616e656c2073657474696e67732e5c6e5c6ee29d932041726520796f7520737572653f22292972657475726e3b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822726566726573682d62746e22293b652e636c6173734c6973742e616464282266612d7370696e22293b646f63756d656e742e626f64792e7374796c652e637572736f723d2277616974222c666574636828222f70616e656c2f72657365742d73657474696e6773222c7b6d6574686f643a22504f5354222c626f64793a4a534f4e2e737472696e67696679287b726573657453657474696e67733a21307d292c63726564656e7469616c733a22696e636c756465222c686561646572733a7b22436f6e74656e742d54797065223a226170706c69636174696f6e2f6a736f6e227d7d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a742c7374617475733a6e2c6d6573736167653a6f2c626f64793a617d293d3e7b696628646f63756d656e742e626f64792e7374796c652e637572736f723d2264656661756c74222c652e636c6173734c6973742e72656d6f7665282266612d7370696e22292c2174297468726f77206e6577204572726f72286073746174757320247b6e7d202d20247b6f7d60293b696e69746961746550616e656c2861292c616c6572742822e29c852050616e656c2073657474696e677320726573657420746f2064656661756c74207375636365737366756c6c79215c6ef09f92a120506c656173652075706461746520796f757220737562736372697074696f6e732e22297d292e636174636828653d3e636f6e736f6c652e6572726f7228225265736574696e672073657474696e6773206572726f723a222c652e6d6573736167657c7c6529297d66756e6374696f6e2076616c696461746553657474696e677328297b636f6e737420653d646f63756d656e742e676574456c656d656e74427949642822636f6e666967466f726d22292c743d6e657720466f726d446174612865292c6e3d5b5d2c6f3d5b22756470587261794e6f6973654d6f6465222c22756470587261794e6f6973655061636b6574222c22756470587261794e6f69736544656c61794d696e222c22756470587261794e6f69736544656c61794d6178222c22756470587261794e6f697365436f756e74225d2e6d617028653d3e742e676574416c6c286529293b696628215b76616c696461746552656d6f7465444e5328292c76616c696461746553616e6374696f6e446e7328292c76616c69646174654c6f63616c444e5328292c76616c69646174654d756c7469706c65486f73744e616d657328292c76616c696461746550726f787949507328292c76616c69646174654e41543634507265666978657328292c76616c696461746557617270456e64706f696e747328292c76616c69646174654d696e4d617828292c76616c6964617465436861696e50726f787928292c76616c6964617465437573746f6d43646e28292c76616c69646174654b6e6f636b65724e6f69736528292c76616c6964617465587261794e6f69736573286f292c76616c6964617465437573746f6d52756c657328295d2e657665727928426f6f6c65616e292972657475726e21313b636f6e737420613d4f626a6563742e66726f6d456e747269657328742e656e74726965732829292c5b732c722c6c2c692c635d3d6f3b732e666f72456163682828652c74293d3e7b6e2e70757368287b747970653a652c7061636b65743a725b745d2c64656c61793a60247b6c5b745d7d2d247b695b745d7d602c636f756e743a635b745d7d297d292c612e787261795564704e6f697365733d6e3b636f6e737420643d5b2e2e2e64656661756c7448747470506f7274732c2e2e2e64656661756c744874747073506f7274735d3b72657475726e20612e706f7274733d642e7265647563652828652c6e293d3e28742e686173286e2e746f537472696e672829292626652e70757368286e292c65292c5b5d292c636865636b626f78456c656d656e74732e666f724561636828653d3e7b615b652e69645d3d742e68617328652e6964297d292c73656c656374456c656d656e74732e666f724561636828653d3e7b6c657420743d615b652e69645d3b2274727565223d3d3d74262628743d2130292c2266616c7365223d3d3d74262628743d2131292c615b652e69645d3d747d292c696e707574456c656d656e74732e666f724561636828653d3e7b22737472696e67223d3d747970656f6620615b652e69645d262628615b652e69645d3d615b652e69645d2e7472696d2829297d292c6e756d496e707574456c656d656e74732e666f724561636828653d3e7b615b652e69645d3d4e756d62657228615b652e69645d2e7472696d2829297d292c7465787461726561456c656d656e74732e666f724561636828653d3e7b636f6e737420743d652e69642c6e3d615b745d3b615b745d3d6e3f2e73706c697428225c6e22292e6d617028653d3e652e7472696d2829292e66696c74657228426f6f6c65616e297c7c5b5d7d292c617d66756e6374696f6e2075706461746553657474696e677328652c74297b652e70726576656e7444656661756c7428292c652e73746f7050726f7061676174696f6e28293b636f6e7374206e3d76616c696461746553657474696e677328293b696628216e2972657475726e21313b636f6e7374206f3d747c7c6e2c613d646f63756d656e742e676574456c656d656e744279496428226170706c79427574746f6e22293b646f63756d656e742e626f64792e7374796c652e637572736f723d2277616974223b636f6e737420733d612e76616c75653b612e76616c75653d22e28c9b204c6f6164696e672e2e2e222c666574636828222f70616e656c2f7570646174652d73657474696e6773222c7b6d6574686f643a22504f5354222c626f64793a4a534f4e2e737472696e67696679286f292c63726564656e7469616c733a22696e636c756465222c686561646572733a7b22436f6e74656e742d54797065223a226170706c69636174696f6e2f6a736f6e227d7d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a652c7374617475733a742c6d6573736167653a6e7d293d3e7b6966283430313d3d3d74262628616c6572742822e29aa0efb88f2053657373696f6e20657870697265642120506c65617365206c6f67696e20616761696e2e22292c77696e646f772e6c6f636174696f6e2e687265663d222f6c6f67696e22292c2165297468726f77206e6577204572726f72286073746174757320247b747d202d20247b6e7d60293b696e69746961746550616e656c286f292c616c6572742822e29c852053657474696e6773206170706c696564207375636365737366756c6c79215c6ef09f92a120506c656173652075706461746520796f757220737562736372697074696f6e732e22297d292e636174636828653d3e636f6e736f6c652e6572726f7228225570646174652073657474696e6773206572726f723a222c652e6d6573736167657c7c6529292e66696e616c6c792828293d3e7b646f63756d656e742e626f64792e7374796c652e637572736f723d2264656661756c74222c612e76616c75653d737d297d66756e6374696f6e2076616c696461746552656d6f7465444e5328297b6c657420653b636f6e737420743d676574456c6d56616c7565282272656d6f7465444e5322293b7472797b653d6e65772055524c2874297d63617463682865297b72657475726e20616c6572742822e29b9420496e76616c696420444e532c20506c6561736520656e74657220612055524c2e22292c21317d72657475726e5b227463703a222c2268747470733a222c22746c733a225d2e696e636c7564657328652e70726f746f636f6c293f215b22312e312e312e31222c22312e302e302e31222c22312e312e312e32222c22312e302e302e32222c22312e312e312e33222c22312e302e302e33222c22323630363a343730303a343730303a3a31313131222c22323630363a343730303a343730303a3a31303031222c22323630363a343730303a343730303a3a31313132222c22323630363a343730303a343730303a3a31303032222c22323630363a343730303a343730303a3a31313133222c22323630363a343730303a343730303a3a31303033222c22636c6f7564666c6172652d646e732e636f6d222c2273656375726974792e636c6f7564666c6172652d646e732e636f6d222c2266616d696c792e636c6f7564666c6172652d646e732e636f6d222c226f6e652e6f6e652e6f6e652e6f6e65222c2231646f7431646f7431646f7431225d2e696e636c7564657328652e686f73746e616d65297c7c28616c6572742822e29b9420436c6f7564666c61726520444e53206973206e6f7420616c6c6f77656420666f7220776f726b6572732e5c6ef09f92a120506c6561736520757365206f74686572207075626c696320444e532073657276657273206c696b6520476f6f676c652c20416467756172642e2e2e22292c2131293a28616c6572742822e29b9420506c6561736520656e746572205443502c20446f48206f7220446f5420736572766572732e22292c2131297d66756e6374696f6e2076616c696461746553616e6374696f6e446e7328297b636f6e737420653d676574456c6d56616c75652822616e746953616e6374696f6e444e5322293b6c657420743b7472797b743d6e65772055524c2865292e686f73746e616d657d63617463687b743d657d72657475726e2121697356616c6964486f73744e616d6528742c2131297c7c28616c6572742860e29b9420496e76616c696420495073206f7220446f6d61696e732e5c6ee29aa0efb88f20247b747d60292c2131297d66756e6374696f6e2076616c69646174654c6f63616c444e5328297b636f6e737420653d676574456c6d56616c756528226c6f63616c444e5322293b72657475726e2128216970763452656765782e746573742865292626226c6f63616c686f737422213d3d65297c7c28616c6572742860e29b9420496e76616c6964206c6f63616c20444e532e5c6ef09f92a120506c656173652066696c6c20696e20616e20495076342061646472657373206f7220226c6f63616c686f7374222e5c6e5c6ee29aa0efb88f20247b657d60292c2131297d66756e6374696f6e207061727365456c6d56616c7565732865297b72657475726e20646f63756d656e742e676574456c656d656e74427949642865292e76616c75653f2e73706c697428225c6e22292e6d617028653d3e652e7472696d2829292e66696c74657228426f6f6c65616e297c7c5b5d7d66756e6374696f6e20676574456c6d56616c75652865297b72657475726e20646f63756d656e742e676574456c656d656e74427949642865292e76616c75653f2e7472696d28297d66756e6374696f6e207061727365486f7374506f72742865297b636f6e737420743d652e6d61746368282f5e283f3c686f73743e5c5b2e2a3f5c5d7c5b5e3a5d2b29283f3a3a283f3c706f72743e5c642b29293f242f293b72657475726e20743f7b686f73743a742e67726f7570732e686f73742c706f72743a742e67726f7570732e706f72743f2b742e67726f7570732e706f72743a6e756c6c7d3a6e756c6c7d66756e6374696f6e20697356616c6964486f73744e616d6528652c74297b636f6e7374206e3d7061727365486f7374506f727428652e7472696d2829293b696628216e2972657475726e21313b636f6e73747b686f73743a6f2c706f72743a617d3d6e3b72657475726e2821617c7c2128613e36353533357c7c613c31292926262821287426262161292626286970763652656765782e74657374286f297c7c6970763452656765782e74657374286f297c7c646f6d61696e52656765782e74657374286f2929297d66756e6374696f6e2076616c6964617465437573746f6d52756c657328297b636f6e737420653d2f5e283f3a283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f295c2e297b337d283f3a32355b302d355d7c325b302d345d5c647c5b30315d3f5c645c643f29283f3a5c2f283f3a5b302d395d7c5b312d325d5b302d395d7c335b302d325d29293f242f2c743d2f5e283f3a283f3a5b612d66412d46302d395d7b312c347d3a297b377d5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c377d3a7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c367d3a5b612d66412d46302d395d7b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c357d283f3a3a5b612d66412d46302d395d7b312c347d297b312c327d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c347d283f3a3a5b612d66412d46302d395d7b312c347d297b312c337d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c337d283f3a3a5b612d66412d46302d395d7b312c347d297b312c347d7c283f3a5b612d66412d46302d395d7b312c347d3a297b312c327d283f3a3a5b612d66412d46302d395d7b312c347d297b312c357d7c5b612d66412d46302d395d7b312c347d3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c367d7c3a283f3a3a5b612d66412d46302d395d7b312c347d297b312c377d7c3a3a29283f3a5c2f283f3a31325b302d385d7c315b30315d3f5b302d395d7c5b302d395d3f5b302d395d29293f242f2c6e3d5b22637573746f6d42797061737352756c6573222c22637573746f6d426c6f636b52756c6573222c22637573746f6d42797061737353616e6374696f6e52756c6573225d2e666c61744d6170287061727365456c6d56616c756573292e66696c746572286e3d3e21652e74657374286e29262621742e74657374286e29262621646f6d61696e52656765782e74657374286e29293b72657475726e216e2e6c656e6774687c7c28616c6572742822e29b9420496e76616c6964204950732c20446f6d61696e73206f722049502072616e6765732e5c6ef09f92a120506c6561736520656e74657220656163682076616c756520696e2061206e6577206c696e652e5c6e5c6e222b6e2e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c69646174654d756c7469706c65486f73744e616d657328297b636f6e737420653d5b22636c65616e495073222c22637573746f6d43646e4164647273222c22637573746f6d43646e536e69222c22637573746f6d43646e486f7374225d2e666c61744d6170287061727365456c6d56616c756573292e66696c74657228653d3e21697356616c6964486f73744e616d65286529293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c696420495073206f7220446f6d61696e732e5c6ef09f92a120506c6561736520656e74657220656163682076616c756520696e2061206e6577206c696e652e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c696461746550726f787949507328297b636f6e737420653d7061727365456c6d56616c756573282270726f787949507322292e66696c74657228653d3e21697356616c6964486f73744e616d65286529293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c69642070726f7879204950732e5c6ef09f92a120506c6561736520656e74657220656163682076616c756520696e2061206e6577206c696e652e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c69646174654e41543634507265666978657328297b636f6e737420653d7061727365456c6d56616c7565732822707265666978657322292e66696c74657228653d3e216970763652656765782e74657374286529293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c6964204e41543634207072656669782e5c6ef09f92a120506c6561736520656e74657220656163682070726566697820696e2061206e6577206c696e65207573696e67205b5d2e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c696461746557617270456e64706f696e747328297b636f6e737420653d7061727365456c6d56616c756573282277617270456e64706f696e747322292e66696c74657228653d3e21697356616c6964486f73744e616d6528652c213029293b72657475726e21652e6c656e6774687c7c28616c6572742822e29b9420496e76616c696420656e64706f696e742e5c6e5c6e222b652e6d617028653d3e60e29aa0efb88f20247b657d60292e6a6f696e28225c6e2229292c2131297d66756e6374696f6e2076616c69646174654d696e4d617828297b636f6e73745b652c742c6e2c6f2c612c732c722c6c2c692c635d3d5b22667261676d656e744c656e6774684d696e222c22667261676d656e744c656e6774684d6178222c22667261676d656e74496e74657276616c4d696e222c22667261676d656e74496e74657276616c4d6178222c226e6f697365436f756e744d696e222c226e6f697365436f756e744d6178222c226e6f69736553697a654d696e222c226e6f69736553697a654d6178222c226e6f69736544656c61794d696e222c226e6f69736544656c61794d6178225d2e6d617028653d3e7061727365496e7428676574456c6d56616c75652865292c313029293b72657475726e2128653e3d747c7c6e3e6f7c7c613e737c7c723e6c7c7c693e63297c7c28616c6572742822e29b94204d696e696d756d2073686f756c6420626520736d616c6c6572206f7220657175616c20746f204d6178696d756d2122292c2131297d66756e6374696f6e2076616c6964617465436861696e50726f787928297b636f6e737420653d676574456c6d56616c756528226f757450726f787922292c743d2f766c6573733a5c2f5c2f5b5e5c73405d2b405b5e5c733a5d2b3a5b5e5c735d2b2f2e746573742865292c6e3d2f74726f6a616e3a5c2f5c2f5b5e5c73405d2b405b5e5c733a5d2b3a5b5e5c735d2b2f2e746573742865292c6f3d2f73733a5c2f5c2f5b5e5c73405d2b405b5e5c733a5d2b3a5b5e5c735d2b2f2e746573742865292c613d2f73656375726974793d2f2e746573742865292c733d2f5e28687474707c736f636b73293a5c2f5c2f283f3a285b5e3a405d2b293a285b5e3a405d2b2940293f285b5e3a405d2b293a285c642b29242f2e746573742865292c723d2f73656375726974793d28746c737c6e6f6e657c7265616c697479292f2c6c3d722e746573742865292c693d2f747970653d287463707c677270637c7773292f2e746573742865293b6966282821742626216e7c7c21286126266c7c7c2161297c7c2169292626216f262621732626652972657475726e20616c6572742822e29b9420496e76616c696420436f6e666967215c6ef09f92a12054686520636861696e2070726f78792073686f756c6420626520564c4553532c2054726f6a616e2c20536861646f77736f636b732c20536f636b73206f722048747470215c6ef09f92a120564c4553532c2054726f6a616e20616e6420536861646f77736f636b73207472616e736d697373696f6e2073686f756c6420626520475250432c5753206f72205443505c6ef09f92a120564c4553532c2054726f6a616e20616e6420536861646f77736f636b732073656375726974792073686f756c6420626520544c532c205265616c697479206f72204e6f6e655c6ef09f92a120536f636b73206f7220687474702073686f756c64206265206c696b653a5c6e202b2028736f636b73206f722068747470293a2f2f757365723a7061737340686f73743a706f72745c6e202b2028736f636b73206f722068747470293a2f2f686f73743a706f727422292c21313b6c657420633d652e6d617463682872293b636f6e737420643d633f2e5b315d7c7c6e756c6c3b633d652e6d61746368282f3a285c642b295c3f2f293b72657475726e21742626216e7c7c22746c7322213d3d647c7c22343433223d3d3d28633f2e5b315d7c7c6e756c6c297c7c28616c6572742822e29b9420564c45535320544c5320706f72742063616e206265206f6e6c792034343320746f206265207573656420617320612070726f787920636861696e2122292c2131297d66756e6374696f6e2076616c6964617465437573746f6d43646e28297b636f6e737420653d676574456c6d56616c75652822637573746f6d43646e486f737422292c743d676574456c6d56616c75652822637573746f6d43646e536e6922292c6e3d7061727365456c6d56616c7565732822637573746f6d43646e416464727322293b72657475726e2128286e2e6c656e6774687c7c2222213d3d657c7c2222213d3d7429262621286e2e6c656e67746826266526267429297c7c28616c6572742827e29b9420416c6c2022437573746f6d22206669656c64732073686f756c642062652066696c6c6564206f722064656c6574656420746f6765746865722127292c2131297d66756e6374696f6e2076616c69646174654b6e6f636b65724e6f69736528297b636f6e737420653d676574456c6d56616c756528226b6e6f636b65724e6f6973654d6f646522293b72657475726e21212f5e286e6f6e657c717569637c72616e646f6d7c5b302d39412d46612d665d2b29242f2e746573742865297c7c28616c6572742827e29b9420496e76616c6964206e6f69736520206d6f64652e5c6ef09f92a120506c656173652075736520226e6f6e65222c202271756963222c202272616e646f6d22206f7220612076616c6964206865782076616c75652e27292c2131297d66756e6374696f6e2076616c6964617465587261794e6f697365732865297b636f6e73745b742c6e2c6f2c615d3d652c733d2f5e283f3a5b412d5a612d7a302d392b2f5d7b347d292a283f3a5b412d5a612d7a302d392b2f5d7b327d3d3d7c5b412d5a612d7a302d392b2f5d7b337d3d293f242f3b6c657420723d21313b72657475726e20742e666f72456163682828652c74293d3e7b6966284e756d626572286f5b745d293e4e756d62657228615b745d292972657475726e20616c6572742822e29b9420546865206d696e696d756d206e6f6973652064656c61792073686f756c6420626520736d616c6c6572206f7220657175616c20746f206d6178696d756d2122292c766f696428723d2130293b7377697463682865297b6361736522626173653634223a732e74657374286e5b745d297c7c28616c6572742822e29b942054686520426173653634206e6f697365207061636b6574206973206e6f7420612076616c6964206261736536342076616c75652122292c723d2130293b627265616b3b636173652272616e64223a7b2f5e5c642b2d5c642b242f2e74657374286e5b745d297c7c28616c6572742822e29b94205468652052616e646f6d206e6f697365207061636b65742073686f756c6420626520612072616e6765206c696b6520302d3130206f722031302d33302122292c723d2130293b636f6e73745b652c6f5d3d6e5b745d2e73706c697428222d22292e6d6170284e756d626572293b653e6f262628616c6572742822e29b9420546865206d696e696d756d2052616e646f6d206e6f697365207061636b65742073686f756c6420626520736d616c6c6572206f7220657175616c20746f206d6178696d756d2122292c723d2130293b627265616b7d6361736522686578223a2f5e283f3d283f3a5b302d39412d46612d665d7b327d292a24295b302d39412d46612d665d2b242f2e74657374286e5b745d297c7c28616c6572742822e29b942054686520486578206e6f697365207061636b6574206973206e6f7420612076616c6964206865782076616c7565212049742073686f756c642068617665206576656e206c656e67746820616e6420636f6e736973746564206f6620302d392c20612d6620616e6420412d462e22292c723d2130297d7d292c21727d66756e6374696f6e206c6f676f75742865297b652e70726576656e7444656661756c7428292c666574636828222f6c6f676f7574222c7b6d6574686f643a22474554222c63726564656e7469616c733a2273616d652d6f726967696e227d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a652c7374617475733a742c6d6573736167653a6e7d293d3e7b6966282165297468726f77206e6577204572726f72286073746174757320247b747d202d20247b6e7d60293b77696e646f772e6c6f636174696f6e2e687265663d222f6c6f67696e227d292e636174636828653d3e636f6e736f6c652e6572726f7228224c6f676f7574206572726f723a222c652e6d6573736167657c7c6529297d66756e6374696f6e20726573657450617373776f72642865297b652e70726576656e7444656661756c7428293b636f6e737420743d646f63756d656e742e676574456c656d656e744279496428227265736574506173734d6f64616c22292c6e3d646f63756d656e742e676574456c656d656e744279496428226e657750617373776f726422292c6f3d646f63756d656e742e676574456c656d656e74427949642822636f6e6669726d50617373776f726422292c613d646f63756d656e742e676574456c656d656e7442794964282270617373776f72644572726f7222292c733d6e2e76616c75653b69662873213d3d6f2e76616c75652972657475726e20612e74657874436f6e74656e743d2250617373776f72647320646f206e6f74206d61746368222c21313b636f6e737420723d2f5b412d5a5d2f2e746573742873292c6c3d2f5b302d395d2f2e746573742873292c693d732e6c656e6774683e3d383b69662821287226266c262669292972657475726e20612e74657874436f6e74656e743d22e29aa0efb88f2050617373776f7264206d75737420636f6e7461696e206174206c65617374206f6e65206361706974616c206c65747465722c206f6e65206e756d6265722c20616e64206265206174206c6561737420382063686172616374657273206c6f6e672e222c21313b666574636828222f70616e656c2f72657365742d70617373776f7264222c7b6d6574686f643a22504f5354222c686561646572733a7b22436f6e74656e742d54797065223a22746578742f706c61696e227d2c626f64793a732c63726564656e7469616c733a2273616d652d6f726967696e227d292e7468656e28653d3e652e6a736f6e2829292e7468656e28287b737563636573733a652c7374617475733a742c6d6573736167653a6e7d293d3e7b6966282165297468726f7720612e74657874436f6e74656e743d60e29aa0efb88f20247b6e7d602c6e6577204572726f72286073746174757320247b747d202d20247b6e7d60293b616c6572742822e29c852050617373776f7264206368616e676564207375636365737366756c6c792120f09f918d22292c77696e646f772e6c6f636174696f6e2e687265663d222f6c6f67696e227d292e636174636828653d3e636f6e736f6c652e6572726f72282252657365742070617373776f7264206572726f723a222c652e6d6573736167657c7c6529292e66696e616c6c792828293d3e7b742e7374796c652e646973706c61793d226e6f6e65222c646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d22227d297d66756e6374696f6e2072656e646572506f727473426c6f636b2865297b6c657420743d22222c6e3d22223b5b2e2e2e77696e646f772e6f726967696e2e696e636c756465732822776f726b6572732e64657622293f64656661756c7448747470506f7274733a5b5d2c2e2e2e64656661756c744874747073506f7274735d2e666f7245616368286f3d3e7b636f6e737420613d652e696e636c75646573286f293f22636865636b6564223a22223b6c657420733d22222c723d22223b64656661756c744874747073506f7274732e696e636c75646573286f29262628733d27636c6173733d22687474707322272c723d276f6e636c69636b3d2268616e646c65506f72744368616e6765286576656e74292227293b636f6e7374206c3d605c6e2020202020202020202020203c64697620636c6173733d22726f7574696e67223e5c6e202020202020202020202020202020203c696e70757420747970653d22636865636b626f7822206e616d653d247b6f7d20247b737d2076616c75653d22747275652220247b617d20247b727d3e5c6e202020202020202020202020202020203c6c6162656c3e247b6f7d3c2f6c6162656c3e5c6e2020202020202020202020203c2f6469763e603b64656661756c744874747073506f7274732e696e636c75646573286f293f6e2b3d6c3a742b3d6c7d292c646f63756d656e742e676574456c656d656e74427949642822746c732d706f72747322292e696e6e657248544d4c3d6e2c74262628646f63756d656e742e676574456c656d656e744279496428226e6f6e2d746c732d706f72747322292e696e6e657248544d4c3d742c646f63756d656e742e676574456c656d656e744279496428226e6f6e652d746c7322292e7374796c652e646973706c61793d22666c657822297d66756e6374696f6e206164645564704e6f69736528652c742c6e297b636f6e7374206f3d743f3f676c6f62616c546869732e787261794e6f697365436f756e742c613d6e7c7c7b747970653a2272616e64222c7061636b65743a2235302d313030222c64656c61793a22312d35222c636f756e743a357d2c733d646f63756d656e742e637265617465456c656d656e74282264697622293b732e636c6173734e616d653d22696e6e65722d636f6e7461696e6572222c732e69643d607564702d6e6f6973652d247b6f2b317d602c732e696e6e657248544d4c3d605c6e20202020202020203c64697620636c6173733d226865616465722d636f6e7461696e6572223e5c6e2020202020202020202020203c68343e4e6f69736520247b6f2b317d3c2f68343e5c6e2020202020202020202020203c627574746f6e20747970653d22627574746f6e2220636c6173733d2264656c6574652d6e6f697365223e5c6e202020202020202020202020202020203c7370616e20636c6173733d226d6174657269616c2d73796d626f6c732d726f756e646564223e64656c6574653c2f7370616e3e5c6e2020202020202020202020203c2f627574746f6e3e2020202020205c6e20202020202020203c2f6469763e5c6e20202020202020203c64697620636c6173733d2273656374696f6e223e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f98b5e2808df09f92ab204d6f64653c2f6c6162656c3e5c6e202020202020202020202020202020203c6469763e5c6e20202020202020202020202020202020202020203c73656c656374206e616d653d22756470587261794e6f6973654d6f6465223e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d226261736536342220247b22626173653634223d3d3d612e747970653f2273656c6563746564223a22227d3e4261736536343c2f6f7074696f6e3e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d2272616e642220247b2272616e64223d3d3d612e747970653f2273656c6563746564223a22227d3e52616e646f6d3c2f6f7074696f6e3e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d227374722220247b22737472223d3d3d612e747970653f2273656c6563746564223a22227d3e537472696e673c2f6f7074696f6e3e5c6e2020202020202020202020202020202020202020202020203c6f7074696f6e2076616c75653d226865782220247b22686578223d3d3d612e747970653f2273656c6563746564223a22227d3e4865783c2f6f7074696f6e3e5c6e20202020202020202020202020202020202020203c2f73656c6563743e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f93a5205061636b65743c2f6c6162656c3e5c6e202020202020202020202020202020203c6469763e5c6e20202020202020202020202020202020202020203c696e70757420747970653d227465787422206e616d653d22756470587261794e6f6973655061636b6574222076616c75653d22247b612e7061636b65747d223e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f8e9aefb88f20436f756e743c2f6c6162656c3e5c6e202020202020202020202020202020203c6469763e5c6e20202020202020202020202020202020202020203c696e70757420747970653d226e756d62657222206e616d653d22756470587261794e6f697365436f756e74222076616c75653d22247b612e636f756e747d22206d696e3d2231222072657175697265643e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e2020202020202020202020203c64697620636c6173733d22666f726d2d636f6e74726f6c223e5c6e202020202020202020202020202020203c6c6162656c3ef09f959e2044656c61793c2f6c6162656c3e5c6e202020202020202020202020202020203c64697620636c6173733d226d696e2d6d6178223e5c6e20202020202020202020202020202020202020203c696e70757420747970653d226e756d62657222206e616d653d22756470587261794e6f69736544656c61794d696e225c6e20202020202020202020202020202020202020202020202076616c75653d22247b612e64656c61792e73706c697428222d22295b305d7d22206d696e3d2231222072657175697265643e5c6e20202020202020202020202020202020202020203c7370616e3e202d203c2f7370616e3e5c6e20202020202020202020202020202020202020203c696e70757420747970653d226e756d62657222206e616d653d22756470587261794e6f69736544656c61794d6178225c6e20202020202020202020202020202020202020202020202076616c75653d22247b612e64656c61792e73706c697428222d22295b315d7d22206d696e3d2231222072657175697265643e5c6e202020202020202020202020202020203c2f6469763e5c6e2020202020202020202020203c2f6469763e5c6e20202020202020203c2f6469763e602c732e717565727953656c6563746f7228222e64656c6574652d6e6f69736522292e6164644576656e744c697374656e65722822636c69636b222c64656c6574655564704e6f697365292c732e717565727953656c6563746f72282273656c65637422292e6164644576656e744c697374656e657228226368616e6765222c67656e65726174655564704e6f697365292c646f63756d656e742e676574456c656d656e744279496428226e6f6973657322292e617070656e642873292c652626656e61626c654170706c79427574746f6e28292c676c6f62616c546869732e787261794e6f697365436f756e742b2b7d66756e6374696f6e2067656e65726174655564704e6f6973652865297b636f6e737420743d652e7461726765742e636c6f7365737428222e696e6e65722d636f6e7461696e657222292e717565727953656c6563746f7228275b6e616d653d22756470587261794e6f6973655061636b6574225d27293b73776974636828652e7461726765742e76616c7565297b6361736522626173653634223a742e76616c75653d28653d3e7b636f6e737420743d6e65772055696e74384172726179284d6174682e6365696c28332a652f3429293b72657475726e2063727970746f2e67657452616e646f6d56616c7565732874292c62746f6128537472696e672e66726f6d43686172436f6465282e2e2e7429292e736c69636528302c65297d29283634293b627265616b3b636173652272616e64223a742e76616c75653d2235302d313030223b627265616b3b6361736522686578223a742e76616c75653d28653d3e7b636f6e737420743d6e65772055696e74384172726179284d6174682e6365696c28652f3229293b72657475726e2063727970746f2e67657452616e646f6d56616c7565732874292c5b2e2e2e745d2e6d617028653d3e652e746f537472696e67283136292e706164537461727428322c22302229292e6a6f696e282222292e736c69636528302c65297d29283634293b627265616b3b6361736522737472223a742e76616c75653d28653d3e7b636f6e737420743d224142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a30313233343536373839222c6e3d6e65772055696e743841727261792865293b72657475726e2041727261792e66726f6d2863727970746f2e67657452616e646f6d56616c756573286e292c653d3e745b652536325d292e6a6f696e282222297d29283634297d7d66756e6374696f6e2064656c6574655564704e6f6973652865297b696628313d3d3d676c6f62616c546869732e787261794e6f697365436f756e742972657475726e20766f696420616c6572742822e29b9420596f752063616e6e6f742064656c65746520616c6c206e6f697365732122293b636f6e6669726d2822e29aa0efb88f20546869732077696c6c2064656c65746520746865206e6f6973652e5c6e5c6ee29d932041726520796f7520737572653f2229262628652e7461726765742e636c6f7365737428222e696e6e65722d636f6e7461696e657222292e72656d6f766528292c656e61626c654170706c79427574746f6e28292c676c6f62616c546869732e787261794e6f697365436f756e742d2d297d66756e6374696f6e2072656e6465725564704e6f697365426c6f636b2865297b646f63756d656e742e676574456c656d656e744279496428226e6f6973657322292e696e6e657248544d4c3d22222c652e666f72456163682828652c74293d3e7b6164645564704e6f6973652821312c742c65297d292c676c6f62616c546869732e787261794e6f697365436f756e743d652e6c656e6774687d666574636828222f70616e656c2f73657474696e677322292e7468656e286173796e6320653d3e652e6a736f6e2829292e7468656e28653d3e7b636f6e73747b737563636573733a742c7374617475733a6e2c6d6573736167653a6f2c626f64793a617d3d653b6966283430313d3d3d6e262621612e697350617373536574297b636f6e737420653d646f63756d656e742e717565727953656c6563746f7228222e636c6f736522293b6f70656e52657365745061737328292c652e7374796c652e646973706c61793d226e6f6e65227d6966282174297468726f77206e6577204572726f72286073746174757320247b6e7d202d20247b6f7d60293b636f6e73747b737562506174683a732c70726f787953657474696e67733a727d3d613b676c6f62616c546869732e737562506174683d656e636f6465555249436f6d706f6e656e742873292c696e69746961746550616e656c2872297d292e636174636828653d3e636f6e736f6c652e6572726f72282244617461207175657279206572726f723a222c652e6d6573736167657c7c6529292e66696e616c6c792828293d3e7b77696e646f772e6f6e636c69636b3d653d3e7b636f6e737420743d646f63756d656e742e676574456c656d656e7442794964282271724d6f64616c22292c6e3d646f63756d656e742e676574456c656d656e744279496428227172636f64652d636f6e7461696e657222293b652e7461726765743d3d74262628742e7374796c652e646973706c61793d226e6f6e65222c6e2e6c617374456c656d656e744368696c642e72656d6f76652829297d7d292c646f63756d656e742e717565727953656c6563746f72416c6c28222e746f67676c652d70617373776f726422292e666f724561636828653d3e7b652e6164644576656e744c697374656e65722822636c69636b222c66756e6374696f6e28297b636f6e737420653d746869732e70726576696f7573456c656d656e745369626c696e672c743d2270617373776f7264223d3d3d652e747970653b652e747970653d743f2274657874223a2270617373776f7264222c746869732e74657874436f6e74656e743d743f227669736962696c697479223a227669736962696c6974795f6f6666227d297d293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e");return new Response(d,{headers:{"Content-Type":"text/html"}})}async function Co(e,c){const t=undefined;if(await Ki(e,c))return Response.redirect(`${No.urlOrigin}/panel`,302);const d=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c6c696e6b20687265663d2268747470733a2f2f666f6e74732e676f6f676c65617069732e636f6d2f637373323f66616d696c793d4d6174657269616c2b53796d626f6c732b526f756e6465643a6f70737a2c776768742c46494c4c2c475241444032302e2e34382c3130302e2e3730302c302e2e312c2d35302e2e3230302669636f6e5f6e616d65733d6c6f67696e2c7669736962696c6974792c7669736962696c6974795f6f666626646973706c61793d626c6f636b222072656c3d7374796c6573686565743e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d7072696d6172792d636f6c6f723a233039363339663b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a236639663966393b2d2d6c61626c652d746578742d636f6c6f723a233333333b2d2d68322d636f6c6f723a233362336233623b2d2d626f726465722d636f6c6f723a236464643b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a77686974653b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235297d626f64792c68746d6c7b6865696768743a313030253b6d617267696e3a307d626f64797b666f6e742d66616d696c793a73797374656d2d75693b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b706f736974696f6e3a72656c61746976653b6f766572666c6f773a68696464656e3b746578742d616c69676e3a63656e7465727d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d7072696d6172792d636f6c6f723a233039363339463b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d6c61626c652d746578742d636f6c6f723a234446444644463b2d2d68322d636f6c6f723a234435443544353b2d2d626f726465722d636f6c6f723a233335333533353b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a233235323532353b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235297d2e636f6e7461696e65727b706f736974696f6e3a6162736f6c7574653b746f703a3530253b6c6566743a3530253b7472616e73666f726d3a7472616e736c617465282d3530252c2d353025293b77696474683a3930257d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d68327b636f6c6f723a766172282d2d68322d636f6c6f72297d2e666f726d2d636f6e7461696e65727b6261636b67726f756e643a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a323870783b626f782d736861646f773a302032707820347078207267626128302c302c302c2e31293b70616464696e673a323070783b6761703a323070783b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e7d2e6c6f67696e2d666f726d7b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a3870787d2e666f726d2d636f6e74726f6c7b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a73706163652d6265747765656e3b616c69676e2d6974656d733a63656e7465723b6761703a313670787d6c6162656c7b666f6e742d7765696768743a3730303b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d2e70617373776f72642d777261707065727b646973706c61793a666c65783b77696474683a313030253b706f736974696f6e3a72656c61746976657d2e70617373776f72642d7772617070657220696e7075745b747970653d70617373776f72645d2c2e70617373776f72642d7772617070657220696e7075745b747970653d746578745d7b77696474683a313030253b70616464696e672d72696768743a343070783b746578742d616c69676e3a63656e7465723b6d617267696e3a307d2e746f67676c652d70617373776f72647b706f736974696f6e3a6162736f6c7574653b746f703a3530253b72696768743a313070783b7472616e73666f726d3a7472616e736c61746559282d353025293b637572736f723a706f696e7465723b757365722d73656c6563743a6e6f6e653b636f6c6f723a236139613961397d696e7075745b747970653d70617373776f72645d2c696e7075745b747970653d746578745d7b70616464696e673a313070783b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a313070783b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72297d2e68696e747b636f6c6f723a7265643b6d617267696e2d626f74746f6d3a313070787d627574746f6e7b6761703a313070783b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b77696474683a313030253b70616464696e673a313270783b666f6e742d73697a653a312e3172656d3b666f6e742d7765696768743a3630303b626f726465723a6e6f6e653b626f726465722d7261646975733a313070783b636f6c6f723a236666663b6261636b67726f756e642d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b637572736f723a706f696e7465723b7472616e736974696f6e3a6261636b67726f756e642d636f6c6f72202e337320656173657d2e627574746f6e3a666f6375732c2e627574746f6e3a686f7665727b6261636b67726f756e642d636f6c6f723a233239383062393b626f782d736861646f773a30203870782031357078207267626128302c302c302c2e33293b7472616e73666f726d3a7472616e736c61746559282d327078297d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d2e6d6174657269616c2d73796d626f6c732d726f756e6465647b666f6e742d766172696174696f6e2d73657474696e67733a2746494c4c2720312c277767687427203430302c27475241442720302c276f70737a272032347d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3537367078297b2e636f6e7461696e65727b77696474683a3730257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3736387078297b2e636f6e7461696e65727b77696474683a3530257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3939327078297b2e636f6e7461696e65727b77696474683a3330257d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c64697620636c6173733d636f6e7461696e65723e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c64697620636c6173733d666f726d2d636f6e7461696e65723e3c68323e55736572204c6f67696e3c2f68323e3c666f726d2069643d6c6f67696e466f726d20636c6173733d6c6f67696e2d666f726d3e3c64697620636c6173733d666f726d2d636f6e74726f6c3e3c6c6162656c20666f723d70617373776f72643e50617373776f72643c2f6c6162656c3e3c64697620636c6173733d70617373776f72642d777261707065723e3c696e70757420747970653d70617373776f72642069643d70617373776f7264206e616d653d70617373776f72642072657175697265643e203c7370616e2069643d746f67676c6550617373776f726420636c6173733d226d6174657269616c2d73796d626f6c732d726f756e64656420746f67676c652d70617373776f7264223e7669736962696c6974795f6f66663c2f7370616e3e3c2f6469763e3c2f6469763e3c6469762069643d70617373776f72644572726f7220636c6173733d68696e743e3c2f6469763e3c627574746f6e20747970653d7375626d697420636c6173733d627574746f6e3e4c6f67696e203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e6c6f67696e3c2f7370616e3e3c2f627574746f6e3e3c2f666f726d3e3c2f6469763e3c2f6469763e3c7363726970743e22656e61626c6564223d3d3d6c6f63616c53746f726167652e6765744974656d28226461726b4d6f646522292626646f63756d656e742e626f64792e636c6173734c6973742e61646428226461726b2d6d6f646522292c646f63756d656e742e676574456c656d656e744279496428226c6f67696e466f726d22292e6164644576656e744c697374656e657228227375626d6974222c6173796e6320653d3e7b652e70726576656e7444656661756c7428293b636f6e737420743d646f63756d656e742e676574456c656d656e7442794964282270617373776f726422292e76616c75653b7472797b636f6e737420653d617761697420666574636828222f6c6f67696e2f61757468656e746963617465222c7b6d6574686f643a22504f5354222c686561646572733a7b22436f6e74656e742d54797065223a22746578742f706c61696e227d2c626f64793a747d292c7b737563636573733a6f2c7374617475733a6e2c6d6573736167653a737d3d617761697420652e6a736f6e28293b696628216f297b7468726f7720646f63756d656e742e676574456c656d656e7442794964282270617373776f72644572726f7222292e74657874436f6e74656e743d22e29aa0efb88f2057726f6e672050617373776f726421222c6e6577204572726f7228604c6f67696e206661696c656420776974682073746174757320247b6e7d3a20247b737d60297d77696e646f772e6c6f636174696f6e2e687265663d222f70616e656c227d63617463682865297b636f6e736f6c652e6572726f7228224c6f67696e206572726f723a222c652e6d6573736167657c7c65297d7d292c646f63756d656e742e676574456c656d656e74427949642822746f67676c6550617373776f726422292e6164644576656e744c697374656e65722822636c69636b222c66756e6374696f6e28297b636f6e737420653d646f63756d656e742e676574456c656d656e7442794964282270617373776f726422292c743d2270617373776f7264223d3d3d652e747970653b652e747970653d743f2274657874223a2270617373776f7264222c746869732e74657874436f6e74656e743d743f227669736962696c6974795f6f6666223a227669736962696c697479227d293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e");return new Response(d,{headers:{"Content-Type":"text/html"}})}async function Po(){const e=Lo("3c21444f43545950452068746d6c3e3c68746d6c206c616e673d656e3e3c686561643e3c6d65746120636861727365743d5554462d383e3c6d657461206e616d653d76696577706f727420636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d31223e3c7469746c653e4250422050616e656c2076332e362e313c2f7469746c653e3c6c696e6b2072656c3d69636f6e20687265663d2f66617669636f6e2e69636f3e3c6c696e6b20687265663d2268747470733a2f2f666f6e74732e676f6f676c65617069732e636f6d2f637373323f66616d696c793d4d6174657269616c2b53796d626f6c732b526f756e6465643a6f70737a2c776768742c46494c4c2c475241444032302e2e34382c3130302e2e3730302c302e2e312c2d35302e2e3230302669636f6e5f6e616d65733d636f6e74656e745f636f70792c7265667265736826646973706c61793d626c6f636b222072656c3d7374796c6573686565743e3c7374796c653e3a726f6f747b2d2d636f6c6f723a626c61636b3b2d2d7072696d6172792d636f6c6f723a233039363339663b2d2d6865616465722d636f6c6f723a233039363339663b2d2d6261636b67726f756e642d636f6c6f723a236666663b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a236639663966393b2d2d6c61626c652d746578742d636f6c6f723a233333333b2d2d68322d636f6c6f723a233362336233623b2d2d626f726465722d636f6c6f723a236464643b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a77686974653b2d2d6865616465722d736861646f773a3270782032707820347078207267626128302c20302c20302c20302e3235297d626f64797b666f6e742d66616d696c793a73797374656d2d75693b6261636b67726f756e642d636f6c6f723a766172282d2d6261636b67726f756e642d636f6c6f72293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b746578742d616c69676e3a63656e7465727d626f64792e6461726b2d6d6f64657b2d2d636f6c6f723a77686974653b2d2d7072696d6172792d636f6c6f723a233039363339463b2d2d6865616465722d636f6c6f723a233334393844423b2d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d666f726d2d6261636b67726f756e642d636f6c6f723a233132313231323b2d2d6c61626c652d746578742d636f6c6f723a234446444644463b2d2d68322d636f6c6f723a234435443544353b2d2d626f726465722d636f6c6f723a233335333533353b2d2d696e7075742d6261636b67726f756e642d636f6c6f723a233235323532353b2d2d6865616465722d736861646f773a32707820327078203470782072676261283235352c203235352c203235352c20302e3235297d2e636f6e7461696e65727b706f736974696f6e3a6162736f6c7574653b746f703a3530253b6c6566743a3530253b7472616e73666f726d3a7472616e736c617465282d3530252c2d353025293b77696474683a3930253b70616464696e673a323070787d68317b636f6c6f723a766172282d2d6865616465722d636f6c6f72293b746578742d736861646f773a766172282d2d6865616465722d736861646f77297d2e69636f6e7b766572746963616c2d616c69676e3a6d6964646c653b6865696768743a3372656d7d68327b636f6c6f723a766172282d2d68322d636f6c6f72297d68337b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72297d2e666f726d2d636f6e7461696e65727b646973706c61793a666c65783b666c65782d646972656374696f6e3a636f6c756d6e3b6761703a323070783b6261636b67726f756e643a766172282d2d666f726d2d6261636b67726f756e642d636f6c6f72293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a323870783b626f782d736861646f773a302032707820347078207267626128302c302c302c2e31293b70616464696e673a323070787d2e76616c75652d636f6e7461696e65727b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b646973706c61793a666c65783b666c65782d646972656374696f6e3a726f773b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b6761703a3870787d2e6f75747075742d636f6e7461696e65727b77696474683a313030253b70616464696e673a3870783b746578742d616c69676e3a63656e7465723b6261636b67726f756e642d636f6c6f723a766172282d2d696e7075742d6261636b67726f756e642d636f6c6f72293b636f6c6f723a766172282d2d6c61626c652d746578742d636f6c6f72293b626f726465723a31707820736f6c696420766172282d2d626f726465722d636f6c6f72293b626f726465722d7261646975733a313070787d2e636f70792d69636f6e7b637572736f723a706f696e7465723b7472616e736974696f6e3a636f6c6f72202e32737d2e636f70792d69636f6e3a686f7665727b636f6c6f723a233239383062397d627574746f6e7b6761703a313070783b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b77696474683a313030253b70616464696e673a313270783b666f6e742d73697a653a312e3172656d3b666f6e742d7765696768743a3630303b626f726465723a6e6f6e653b626f726465722d7261646975733a313070783b636f6c6f723a236666663b6261636b67726f756e642d636f6c6f723a766172282d2d7072696d6172792d636f6c6f72293b637572736f723a706f696e7465723b7472616e736974696f6e3a6261636b67726f756e642d636f6c6f72202e337320656173657d2e627574746f6e3a666f6375732c2e627574746f6e3a686f7665727b6261636b67726f756e642d636f6c6f723a233239383062393b626f782d736861646f773a30203870782031357078207267626128302c302c302c2e33293b7472616e73666f726d3a7472616e736c61746559282d327078297d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d2e627574746f6e3a6163746976657b7472616e73666f726d3a7472616e736c6174655928317078293b626f782d736861646f773a302033707820377078207267626128302c302c302c2e33297d2e6d6174657269616c2d73796d626f6c732d726f756e6465647b637572736f723a706f696e7465723b666f6e742d766172696174696f6e2d73657474696e67733a2746494c4c2720302c277767687427203430302c27475241442720302c276f70737a272032347d2e726566726573682d67656f2d6c6f636174696f6e7b6261636b67726f756e643a3020303b6d617267696e3a303b626f726465723a6e6f6e653b637572736f723a706f696e7465727d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3537367078297b2e636f6e7461696e65727b77696474683a3730257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3736387078297b2e636f6e7461696e65727b77696474683a3530257d7d406d65646961206f6e6c792073637265656e20616e6420286d696e2d77696474683a3939327078297b2e636f6e7461696e65727b77696474683a3430257d7d3c2f7374796c653e3c2f686561643e3c626f64793e3c64697620636c6173733d636f6e7461696e65723e3c68313e3c696d6720636c6173733d69636f6e207372633d2f66617669636f6e2e69636f20616c743d22425042204c6f676f223e204250422050616e656c203c7370616e2069643d70616e656c2d76657273696f6e207374796c653d666f6e742d73697a653a736d616c6c65723e76332e362e313c2f7370616e3e3c2f68313e3c64697620636c6173733d666f726d2d636f6e7461696e65723e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c68323e536563726574732067656e657261746f723c2f68323e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d67656e657261746543726564656e7469616c7328293e726566726573683c2f7370616e3e3c2f6469763e3c6469763e3c68333e52616e646f6d20555549443c2f68333e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c64697620636c6173733d6f75747075742d636f6e7461696e65723e3c7370616e2069643d7575696420636c6173733d6f75747075743e3c2f7370616e3e3c2f6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d22636f7079546f436c6970626f6172642827757569642729223e636f6e74656e745f636f70793c2f7370616e3e3c2f6469763e3c2f6469763e3c6469763e3c68333e52616e646f6d2054726f6a616e2050617373776f72643c2f68333e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c64697620636c6173733d6f75747075742d636f6e7461696e65723e3c7370616e2069643d74722d70617373776f726420636c6173733d6f75747075743e3c2f7370616e3e3c2f6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d22636f7079546f436c6970626f617264282774722d70617373776f72642729223e636f6e74656e745f636f70793c2f7370616e3e3c2f6469763e3c2f6469763e3c6469763e3c68333e52616e646f6d20537562736372697074696f6e2055524920706174683c2f68333e3c64697620636c6173733d76616c75652d636f6e7461696e65723e3c64697620636c6173733d6f75747075742d636f6e7461696e65723e3c7370616e2069643d7375622d7061746820636c6173733d6f75747075743e3c2f7370616e3e3c2f6469763e3c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e646564206f6e636c69636b3d22636f7079546f436c6970626f61726428277375622d706174682729223e636f6e74656e745f636f70793c2f7370616e3e3c2f6469763e3c2f6469763e3c627574746f6e20636c6173733d627574746f6e20636c6173733d627574746f6e206f6e636c69636b3d636f7079546f436c6970626f61726428293e436f707920616c6c203c7370616e20636c6173733d6d6174657269616c2d73796d626f6c732d726f756e6465643e636f6e74656e745f636f70793c2f7370616e3e3c2f627574746f6e3e3c2f6469763e3c2f6469763e3c7363726970743e6c657420757569642c70617373776f72642c757269506174683b66756e6374696f6e2067656e65726174655555494428297b72657475726e2063727970746f2e72616e646f6d5555494428297d66756e6374696f6e2067656e65726174655374726f6e6750617373776f726428297b636f6e737420743d224142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383921402324255e262a28295f2b5b5d7b7d7c3b3a272c2e3c3e3f223b6c657420653d22223b636f6e7374206e3d6e65772055696e74384172726179283136293b63727970746f2e67657452616e646f6d56616c756573286e293b666f72286c6574206f3d303b6f3c31363b6f2b2b29652b3d745b6e5b6f5d2538375d3b72657475726e20657d66756e6374696f6e2067656e65726174655375625552495061746828297b636f6e737420743d224142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383921405f5f5343524950545f5f2a5f2d2b3b3a2c2e223b6c657420653d22223b636f6e7374206e3d6e65772055696e74384172726179283136293b63727970746f2e67657452616e646f6d56616c756573286e293b666f72286c6574206f3d303b6f3c31363b6f2b2b29652b3d745b6e5b6f5d2537345d3b72657475726e20657d66756e6374696f6e2067656e657261746543726564656e7469616c7328297b757569643d67656e65726174655555494428292c70617373776f72643d67656e65726174655374726f6e6750617373776f726428292c757269506174683d67656e65726174655375625552495061746828292c646f63756d656e742e676574456c656d656e744279496428227575696422292e74657874436f6e74656e743d757569642c646f63756d656e742e676574456c656d656e7442794964282274722d70617373776f726422292e74657874436f6e74656e743d70617373776f72642c646f63756d656e742e676574456c656d656e744279496428227375622d7061746822292e74657874436f6e74656e743d757269506174687d22656e61626c6564223d3d3d6c6f63616c53746f726167652e6765744974656d28226461726b4d6f646522292626646f63756d656e742e626f64792e636c6173734c6973742e61646428226461726b2d6d6f646522292c67656e657261746543726564656e7469616c7328292c77696e646f772e636f7079546f436c6970626f6172643d66756e6374696f6e2874297b636f6e737420653d743f646f63756d656e742e676574456c656d656e74427949642874292e74657874436f6e74656e743a60555549443d247b757569647d5c6e54525f504153533d247b70617373776f72647d5c6e5355425f504154483d247b757269506174687d603b6e6176696761746f722e636c6970626f6172642e7772697465546578742865292e7468656e2828293d3e616c6572742822e29c8520436f7069656420746f20636c6970626f617264212229292e636174636828743d3e636f6e736f6c652e6572726f7228224661696c656420746f20636f707920746578743a222c7429297d3b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e");return new Response(e,{headers:{"Content-Type":"text/html"}})}async function Oo(e,c){if("POST"===e.method){const t=undefined;if(!await Ki(e,c))return await Do(!1,401,"Unauthorized.");try{return await ls(c),await Do(!0,200,"Warp configs updated successfully!")}catch(e){return console.log(e),await Do(!1,500,`An error occurred while updating Warp configs: ${e}`)}}return await Do(!1,405,"Method not allowd.")}async function Do(e,c,t,d,f){return new Response(JSON.stringify({success:e,status:c,message:t||"",body:d||""}),{headers:f||{"Content-Type":t?"text/plain":"application/json"}})}function Lo(e){const c=new Uint8Array(e.match(/.{1,2}/g).map(e=>parseInt(e,16))),t=undefined;return(new TextDecoder).decode(c)}function Io(e){const c=undefined;return/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}var Uo={},No={},zo={};function Wo(e,c){const{pathname:t}=new URL(e.url),{UUID:d,TR_PASS:f,FALLBACK:r,DOH_URL:n}=c;Object.assign(Uo,{userID:d,TrPass:f,pathName:t,fallbackDomain:r||"speed.cloudflare.com",dohURL:n||"https://cloudflare-dns.com/dns-query"})}function Xo(e){Object.assign(zo,{defaultProxyIPs:[atob("YnBiLnlvdXNlZi5pc2VnYXJvLmNvbQ==")],defaultPrefixes:["WzJhMDI6ODk4OjE0Njo2NDo6XQ==","WzI2MDI6ZmM1OTpiMDo2NDo6XQ==","WzI2MDI6ZmM1OToxMTo2NDo6XQ=="].map(atob),envProxyIPs:e.PROXY_IP,envPrefixes:e.PREFIX})}function Fo(e,c){const{pathname:t,origin:d,search:f}=new URL(e.url),{SUB_PATH:r,kv:n}=c,{userID:a,TrPass:i}=Uo,s=new URLSearchParams(f);if(!["/secrets","/favicon.ico"].includes(t)){if(!a||!i)throw new Error(`Please set UUID and ${atob("VHJvamFu")} password first. Please visit here to generate them.`,{cause:"init"});if(!Io(a))throw new Error(`Invalid UUID: ${a}`,{cause:"init"});if("object"!=typeof n)throw new Error(`KV Dataset is not properly set! Please refer to tutorials.`,{cause:"init"})}Object.assign(No,{panelVersion:"3.6.1",defaultHttpPorts:[80,8080,2052,2082,2086,2095,8880],defaultHttpsPorts:[443,8443,2053,2083,2087,2096],hostName:e.headers.get("Host"),client:s.get("app"),urlOrigin:d,subPath:r||a})}var jo={async fetch(e,c){try{const t=e.headers.get("Upgrade");if(Wo(e,c),"websocket"===t)return Xo(c),await Bo(e);{Fo(e,c);const t=Uo.pathName;return t.startsWith("/panel")?await Ho(e,c):t.startsWith("/sub")?await yo(e,c):t.startsWith("/login")?await go(e,c):t.startsWith("/logout")?await Vi(e,c):t.startsWith("/secrets")?await Po():t.startsWith("/favicon.ico")?await So():await vo(e)}}catch(e){return await mo(e)}}};export{jo as default};
\ No newline at end of file
+let e=2973,t=17291,r=59166,n=7846,i=5137,s=31976,o=7693,a=72139,c=45004,u=91633,l=55648,d=85848,w=61006,h=95648,A=81659,f=47159,p=36407,E=58995,B=54109,H=86846,g=2982,m=15091,y=71430,T=86982,x=53446,v=85680,b=11546,R=91004,M=81728,k=58895,S=70655,C=4714,_=16528,O=90411,L=15345,P=35473,D=19128,I=86100,N=34408,U=57240,z=62858,X=43001,j=38961,W=94104,F=75027,J=6409,K=36246,Y=43149,Z=72251,G=67042,V=75230,Q=32617,q=21898,$=57784,ee=5453,te=3893,re=30378,ne=66321,ie=91979,se=94047,oe=37546,ae=33927,ce=68453,ue=63494,le=6357,de=91355,we=26867,he=36504,Ae=25107,fe=13809,pe=71222,Ee=38113,Be=39811,He=31105,ge=82102,me=42209,ye=31414,Te=71728,xe=51689,ve=83636,be=45919,Re=35345,Me=11306,ke=29510,Se=73027,Ce=54057,_e=38512,Oe=42713,Le=81558,Pe=85410,De=60392,Ie=26728,Ne=91970,Ue=56984,ze=71979,Xe=2262,je=66413,We=56355,Fe=34059,Je=2980,Ke=67286,Ye=40140,Ze=5760,Ge=43955,Ve=51054,Qe=34839,qe=65837,$e=69203,et=62368,tt=39704,rt=50185,nt=47269,it=12992,st=94362,ot=68680,at=68708,ct=98149,ut=61290,lt=24025,dt=88455,wt=58944,ht=64535,At=92796,ft=40488,pt=46496,Et=95324,Bt=60423,Ht=95250,gt=60219,mt=50775,yt=2439,Tt=70856,xt=62659,vt=14446,bt=91498,Rt=73903,Mt=33657,kt=33340,St=14443,Ct=53021,_t=84705,Ot=94899,Lt=37629,Pt=1472,Dt=64983,It=32812,Nt=35661,Ut=15893,zt=37,Xt=40272,jt=37489,Wt=64878,Ft=9139,Jt=36883,Kt=8140,Yt=79098,Zt=24762,Gt=87987,Vt=57772,Qt=43176,qt=15111,$t=83532,er=98532,tr=73804,rr=11451,nr=55197,ir=56131,sr=18380,or=87316,ar=45699,cr=61402,ur=33012,lr=3330,dr=28989,wr=42147,hr=87865,Ar=95214,fr=45820,pr=70202,Er=90988,Br=89282,Hr=37589,gr=57020,mr=67473,yr=99816,Tr=75548,xr=59714,vr=49760,br=63247,Rr=7104,Mr=95702,kr=75133,Sr=85359,Cr=3933,_r=68389,Or=99927,Lr=18462,Pr=15057,Dr=30021,Ir=4261,Nr=51964,Ur=2949,zr=18141,Xr=33404,jr=14150,Wr=65775,Fr=84647,Jr=74657,Kr=89302,Yr=45908,Zr=4310,Gr=96876,Vr=13265,Qr=35746,qr=49431,$r=27163,en=35113,tn=92475,rn=6277,nn=71329,sn=92782,on=51167,an=40449,cn=9964,un=80772,ln=21516,dn=91993,wn=19061,hn=47955,An=67972,fn=29851,pn=80614,En=27579,Bn=76313,Hn=79070,gn=9853,mn=40847,yn=72461,Tn=98773,xn=73478,vn=36609,bn=8578,Rn=62453,Mn=19320,kn=85739,Sn=33366,Cn=8298,_n=22182,On=21853,Ln=39779,Pn=95212,Dn=16321,In=40690,Nn=40483,Un=37530,zn=63206,Xn=60635,jn=66724,Wn=91356,Fn=85340,Jn=14951,Kn=60852,Yn=25213,Zn=34902,Gn=49857,Vn=89411,Qn=88699,qn=37011,$n=1337,ei=6369,ti=21709,ri=52591,ni=17136,ii=15780,si=93565,oi=83080,ai=78009,ci=67868,ui=7427,li=93326,di=41198,wi=1792,hi=85416,Ai=88952,fi=18938,pi=10381,Ei=33009,Bi=90506,Hi=41450,gi=93526,mi=32185,yi=5054,Ti=75453,xi=44447,vi=54263,bi=42752,Ri=33555,Mi=88116,ki=88709,Si=9731,Ci=13560,_i=77076,Oi=2978,Li=65850,Pi=32771,Di=49554,Ii=81021,Ni=31106,Ui=60160,zi=13224,Xi=30994,ji=96206,Wi=82736,Fi=9841,Ji=49057,Ki=91152,Yi=20549,Zi=29600,Gi=82141,Vi=9505,Qi=31687,qi=18382,$i=62006,es=7518,ts=11669,rs=94200,ns=38372,is=33169,ss=80846,os=48897,as=86263,cs=9841,us=9031,ls=43319,ds=81242,ws=30501,hs=54691,As=51271,fs=72615,ps=78669,Es=50285,Bs=5910,Hs=4956,gs=27188,ms=80323,ys=62103,Ts=25110,xs=90496,vs=85057,bs=634,Rs=70587,Ms=33795,ks=74220,Ss=31233,Cs=52733,_s=5966,Os=13874,Ls=26613,Ps=87894,Ds=57510,Is=50557,Ns=34260,Us=62400,zs=85854,Xs=15944,js=84539,Ws=17425,Fs=26434,Js=23227,Ks=94324,Ys=70818,Zs=38276,Gs=99878,Vs=23902,Qs=78726,qs=40874,$s=75948,eo=16072,to=47672,ro=60122,no=48349,io=16176,so=75359,oo=38638,ao=92309,co=60630,uo=53958,lo=15850,wo=9284,ho=54439,Ao=51231,fo=30655,po=2678,Eo=85720,Bo=87464,Ho=74753,go=65409,mo=20138,yo=80328,To=13565,xo=3183,vo=49642,bo=78294,Ro=4637,Mo=59982,ko=44857,So=78119,Co=16199,_o=42269,Oo=62730,Lo=50754,Po=87938,Do=16537,Io=34288,No=16592,Uo=58651,zo=62429,Xo=80493,jo=33979,Wo=90194,Fo=36917,Jo=36451,Ko=60355,Yo=22358,Zo=79583,Go=17237,Vo=81055,Qo=44073,qo=98128,$o=86586,ea=82203,ta=67858,ra=68109,na=37949,ia=14907,sa=21761,oa=16096;function aa(){return 775}function ca(){return 917}function ua(){return 913}function la(){return 933}function da(){return 797}function wa(){return 868}function ha(){return 67}function Aa(){return 989}function fa(){return 372}function pa(){return 525}function Ea(){return 556}function Ba(){return 761}function Ha(){return 863}function ga(){return 424}function ma(){return 586}function ya(){return 386}function Ta(){return 792}function xa(){return 437}function va(){return 275}function ba(){return 275}function Ra(){return 301}function Ma(){return 340}function ka(){return 842}function Sa(){return 789}function Ca(){return 436}function _a(){return 811}function Oa(){return 758}function La(){return 416}function Pa(){return 67}function Da(){return 68}function Ia(){return 556}function Na(){return 136}function Ua(){return 555}function za(){return 437}function Xa(){return 959}function ja(){return 514}function Wa(){return 405}function Fa(){return 793}function Ja(){return 288}function Ka(){return 116}function Ya(){return 552}function Za(){return 161}function Ga(){return 410}function Va(){return 365}function Qa(){return 797}function qa(){return 252}function $a(){return 690}function ec(){return 451}function tc(){return 490}function rc(){return 787}function nc(){return 440}function ic(){return 991}function sc(){return 308}function oc(){return 940}function ac(){return 241}function cc(){return 35}function uc(){return 224}function lc(){return 984}function dc(){return 85}function wc(){return 885}function hc(){return 404}function Ac(){return 886}function fc(){return 548}function pc(){return 161}function Ec(){return 267}function Bc(){return 24}function Hc(){return 219}function gc(){return 634}function mc(){return 88}function yc(){return 194}function Tc(){return 827}function xc(){return 480}function vc(){return 182}function bc(){return 204}function Rc(){return 726}function Mc(){return 13}function kc(){return 124}function Sc(){return 638}function Cc(){return 63}function _c(){return 479}function Oc(){return 315}function Lc(){return 319}function Pc(){return 227}function Dc(){return 312}function Ic(){return 619}function Nc(){return 398}function Uc(){return 640}function zc(){return 391}function Xc(){return 509}function jc(){return 50}function Wc(){return 791}function Fc(){return 924}function Jc(){return 346}function Kc(){return 810}function Yc(){return 315}function Zc(){return 825}function Gc(){return 61}function Vc(){return 927}function Qc(){return 672}function qc(){return 517}function $c(){return 910}function eu(){return 123}function tu(){return 962}function ru(){return 982}function nu(){return 492}function iu(){return 213}function su(){return 449}function ou(){return 293}function au(){return 524}function cu(){return 49}function uu(){return 521}function lu(){return 799}function du(){return 855}function wu(){return 842}function hu(){return 578}function Au(){return 520}function fu(){return 606}function pu(){return 19}function Eu(){return 125}function Bu(){return 772}function Hu(){return 569}function gu(){return 897}function mu(){return 814}function yu(){return 396}function Tu(){return 993}function xu(){return 38}function vu(){return 174}function bu(){return 821}function Ru(){return 121}function Mu(){return 865}function ku(){return 359}function Su(){return 950}function Cu(){return 405}function _u(){return 217}function Ou(){return 271}function Lu(){return 144}function Pu(){return 203}function Du(){return 911}function Iu(){return 355}function Nu(){return 832}function Uu(){return 177}function zu(){return 85}function Xu(){return 335}function ju(){return 791}function Wu(){return 562}function Fu(){return 484}function Ju(){return 357}function Ku(){return 920}function Yu(){return 859}function Zu(){return 655}function Gu(){return 437}function Vu(){return 154}function Qu(){return 81}function qu(){return 622}function $u(){return 346}function el(){return 720}function tl(){return 499}function rl(){return 323}function nl(){return 137}function il(){return 271}function sl(){return 411}function ol(){return 623}function al(){return 523}function cl(){return 490}function ul(){return 246}function ll(){return 481}function dl(){return 690}function wl(){return 785}function hl(){return 413}function Al(){return 25}function fl(){return 561}function pl(){return 79}function El(){return 890}function Bl(){return 959}function Hl(){return 490}function gl(){return 17}function ml(){return 457}function yl(){return 61}function Tl(){return 437}function xl(){return 152}function vl(){return 370}function bl(){return 685}function Rl(){return 749}function Ml(){return 18}function kl(){return 250}function Sl(){return 980}function Cl(){return 361}function _l(){return 955}function Ol(){return 236}function Ll(){return 266}function Pl(){return 131}function Dl(){return 580}function Il(){return 257}function Nl(){return 951}function Ul(){return 759}function zl(){return 324}function Xl(){return 688}function jl(){return 191}function Wl(){return 645}function Fl(){return 221}function Jl(){return 520}function Kl(){return 730}function Yl(){return 158}function Zl(){return 635}function Gl(){return 708}function Vl(){return 628}function Ql(){return 548}function ql(){return 207}function $l(){return 798}function ed(){return 350}function td(){return 203}function rd(){return 308}function nd(){return 23}function id(){return 545}function sd(){return 880}function od(){return 335}function ad(){return 654}function cd(){return 116}function ud(){return 231}function ld(){return 421}function dd(){return 129}function wd(){return 70}function hd(){return 189}function Ad(){return 592}function fd(){return 510}function pd(){return 450}function Ed(){return 388}function Bd(){return 221}function Hd(){return 216}function gd(){return 142}function md(){return 528}function yd(){return 835}function Td(){return 542}var xd=Object.create,vd=Object.defineProperty,bd=Object.getOwnPropertyDescriptor,Rd=Object.getOwnPropertyNames,Md=Object.getPrototypeOf,kd=Object.prototype.hasOwnProperty,Sd=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Cd,_d=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of Rd(t))kd.call(e,i)||i===r||vd(e,i,{get:()=>t[i],enumerable:!(n=bd(t,i))||n.enumerable});return e},Od=(e,t,r)=>(r=null!=e?xd(Md(e)):{},_d(!t&&e&&e.__esModule?r:vd(r,"default",{value:e,enumerable:!0}),e)),Ld=((e,t)=>function r(){return t||(0,e[Rd(e)[0]])((t={exports:{}}).exports,t),t.exports})({"node_modules/jszip/dist/jszip.min.js"(e,t){!function(r){"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define([],r):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=r()}(function(){return function e(t,r,n){function i(o,a){if(!r[o]){if(!t[o]){var c="function"==typeof Sd&&Sd;if(!a&&c)return c(o,!0);if(s)return s(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r;return i(t[o][1][e]||e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var s="function"==typeof Sd&&Sd,o=0;o>2,a=(3&t)<<4|r>>4,c=1<<2|i>>6:64,u=2<<2|(o=s.indexOf(e.charAt(u++)))>>4,r=(15&o)<<4|(a=s.indexOf(e.charAt(u++)))>>2,n=(3&a)<<6|(c=s.indexOf(e.charAt(u++))),w[l++]=t,64!==a&&(w[l++]=r),64!==c&&(w[l++]=n);return w}},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),o=e("./stream/DataLengthProbe");function a(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}a.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new o("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new o("compressedSize")).withStreamInfo("compression",t)},t.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils"),i=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var s=i,o=0+r;e^=-1;for(var a=0;a>>8^s[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var s=i,o=0+r;e^=-1;for(var a=0;a>>8^s[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),o=e("./stream/GenericWorker"),a=n?"uint8array":"array";function c(e,t){o.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(c,o),c.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(a,e.data),!1)},c.prototype.flush=function(){o.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(e){return new c("Deflate",e)},r.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function n(e,t){var r,n="";for(r=0;r>>=8;return n}function i(e,t,r,i,o,l){var d,w,h=e.file,A=e.compression,f=l!==a.utf8encode,p=s.transformTo("string",l(h.name)),E=s.transformTo("string",a.utf8encode(h.name)),B=h.comment,H=s.transformTo("string",l(B)),g=s.transformTo("string",a.utf8encode(B)),m=E.length!==h.name.length,y=g.length!==B.length,T="",x="",v="",b=h.dir,R=h.date,M={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(M.crc32=e.crc32,M.compressedSize=e.compressedSize,M.uncompressedSize=e.uncompressedSize);var k=0;t&&(k|=8),f||!m&&!y||(k|=2048);var S=0,C=0,_,O,L;b&&(S|=16),"UNIX"===o?(C=798,S|=(_=h.unixPermissions,O=b,L=_,_||(L=O?16893:33204),(65535&L)<<16)):(C=20,S|=function(e){return 63&(e||0)}(h.dosPermissions)),d=R.getUTCHours(),d<<=6,d|=R.getUTCMinutes(),d<<=5,d|=R.getUTCSeconds()/2,w=R.getUTCFullYear()-1980,w<<=4,w|=R.getUTCMonth()+1,w<<=5,w|=R.getUTCDate(),m&&(x=n(1,1)+n(c(p),4)+E,T+="up"+n(x.length,2)+x),y&&(v=n(1,1)+n(c(H),4)+g,T+="uc"+n(v.length,2)+v);var P="";return P+="\n\0",P+=n(k,2),P+=A.magic,P+=n(d,2),P+=n(w,2),P+=n(M.crc32,4),P+=n(M.compressedSize,4),P+=n(M.uncompressedSize,4),P+=n(p.length,2),P+=n(T.length,2),{fileRecord:u.LOCAL_FILE_HEADER+P+p+T,dirRecord:u.CENTRAL_FILE_HEADER+n(C,2)+P+n(H.length,2)+"\0\0\0\0"+n(S,4)+n(i,4)+p+T+H}}var s=e("../utils"),o=e("../stream/GenericWorker"),a=e("../utf8"),c=e("../crc32"),u=e("../signature");function l(e,t,r,n){o.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(l,o),l.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,o.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},l.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},l.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName),s;if(this.dirRecords.push(r.dirRecord),t)this.push({data:(s=e,u.DATA_DESCRIPTOR+n(s.crc32,4)+n(s.compressedSize,4)+n(s.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},l.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),o=e("./StringReader"),a=e("./NodeBufferReader"),c=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new a(e):i.uint8array?new c(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new o(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n},{}],29:[function(e,t,r){var n=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),o=e("../base64"),a=e("../support"),c=e("../external"),u=null;if(a.nodestream)try{u=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function l(e,t){return new c.Promise(function(r,i){var s=[],a=e._internalType,c=e._outputType,u=e._mimeType;e.on("data",function(e,r){s.push(e),t&&t(r)}).on("error",function(e){s=[],i(e)}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return n.newBlob(n.transformTo("arraybuffer",t),r);case"base64":return o.encode(t);default:return n.transformTo(e,t)}}(c,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t}(e)},r.utf8decode=function(e){return i.nodebuffer?n.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,i,s,o=e.length,c=new Array(2*o);for(t=r=0;t<128)c[r++]=i;else if(4<(s=a[i]))c[r++]=65533,t+=s-1;else{for(i&=2===s?31:3===s?15:7;1<<6|63&e[t++],s--;1<65536?c[r++]=i:(i-=65536,c[r++]=55296|i>>10&1023,c[r++]=56320|1023&i)}return c.length!==r&&(c.subarray?c=c.subarray(0,r):c.length=r),n.applyFromCharCode(c)}(e=n.transformTo(i.uint8array?"uint8array":"array",e))},n.inherits(u,o),u.prototype.processChunk=function(e){var t=n.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var s=t;(t=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),t.set(s,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var o=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+a[e[r]]>t?r:t}(t),c=t;o!==t.length&&(i.uint8array?(c=t.subarray(0,o),this.leftOver=t.subarray(o,t.length)):(c=t.slice(0,o),this.leftOver=t.slice(o,t.length))),this.push({data:r.utf8decode(c),meta:e.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=u,n.inherits(l,o),l.prototype.processChunk=function(e){this.push({data:r.utf8encode(e.data),meta:e.meta})},r.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,r){var n=e("./support"),i=e("./base64"),s=e("./nodejsUtils"),o=e("./external");function a(e){return e}function c(e,t){for(var r=0;r<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,r){var n=e("./reader/readerFor"),i=e("./utils"),s=e("./compressedObject"),o=e("./crc32"),a=e("./utf8"),c=e("./compressions"),u=e("./support");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in c)if(Object.prototype.hasOwnProperty.call(c,t)&&c[t].magic===e)return c[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+i.pretty(this.compressionMethod)+" unknown (inner file : "+i.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r="",o=0;o>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t},r.buf2binstring=function(e){return c(e,e.length)},r.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,i=t.length;r<(s=o[i]))u[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<<6|63&e[r++],s--;1<65536?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return c(u,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+o[e[r]]>t?r:t}},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e,s=e>>>16&65535,o=0;0!==r;){for(r-=o=2e3<<16}},{}],44:[function(e,t,r){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){var n=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,i){var s=n,o=i+r;e^=-1;for(var a=i;a>>8^s[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){var n,i=e("../utils/common"),s=e("./trees"),o=e("./adler32"),a=e("./crc32"),c=e("./messages"),u=0,l=4,d=0,w=-2,h=-1,A=4,f=2,p=8,E=9,B=286,H=30,g=19,m=573,y=15,T=3,x=258,v=262,b=42,R=113,M=1,k=2,S=3,C=4;function _(e,t){return e.msg=c[t],t}function O(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(i.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function D(e,t){s._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,P(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function N(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function U(e,t){var r,n,i=e.max_chain_length,s=e.strstart,o=e.prev_length,a=e.nice_match,c=e.strstart>e.w_size-v?e.strstart-(e.w_size-v):0,u=e.window,l=e.w_mask,d=e.prev,w=e.strstart+x,h=u[s+o-1],A=u[s+o];e.prev_length>=e.good_match&&(i>>=2),a>e.lookahead&&(a=e.lookahead);do{if(u[(r=t)+o]===A&&u[r+o-1]===h&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<=(o=n))break;h=u[s+o-1],A=u[s+o]}}}while((t=d[t&l])>c&&0!=--i);return o<=e.lookahead?o:e.lookahead}function z(e){var t,r,n,s,c,u,l,d,w,h,A=e.w_size;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=A+(A-v)){for(i.arraySet(e.window,e.window,A,A,0),e.match_start-=A,e.strstart-=A,e.block_start-=A,t=r=e.hash_size;n=e.head[--t],e.head[t]=A<=n?n-A:0,--r;);for(t=r=A;n=e.prev[--t],e.prev[t]=A<=n?n-A:0,--r;);s+=A}if(0===e.strm.avail_in)break;if(u=e.strm,l=e.window,d=e.strstart+e.lookahead,h=void 0,(w=s)<(h=u.avail_in)&&(h=w),r=0===h?0:(u.avail_in-=h,i.arraySet(l,u.input,u.next_in,h,d),1===u.state.wrap?u.adler=o(u.adler,l,h,d):2===u.state.wrap&&(u.adler=a(u.adler,l,h,d)),u.next_in+=h,u.total_in+=h,h),e.lookahead+=r,e.lookahead+e.insert>=3)for(c=e.strstart-e.insert,e.ins_h=e.window[c],e.ins_h=(e.ins_h<<<3)););}while(e.lookahead=3&&(e.ins_h=(e.ins_h<<=e.w_size-v&&(e.match_length=U(e,r)),e.match_length>=3)if(n=s._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<<=e.w_size-v&&(e.match_length=U(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&4096=3&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-3,n=s._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(z(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,D(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-v&&(D(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(D(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(D(e,!1),e.strm.avail_out),1)}),new W(4,4,8,4,X),new W(4,5,16,8,X),new W(4,6,32,32,X),new W(4,4,16,16,j),new W(8,16,32,32,j),new W(8,16,128,128,j),new W(8,32,128,256,j),new W(32,128,258,1024,j),new W(32,258,258,4096,j)],r.deflateInit=function(e,t){return Y(e,t,8,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=J,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?w:(e.state.gzhead=t,0):w},r.deflate=function(e,t){var r,i,o,c;if(!e||!e.state||5<0)return e?_(e,w):w;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||666===i.status&&4!==t)return _(e,0===e.avail_out?-5:w);if(i.strm=e,r=i.last_flush,i.last_flush=t,i.status===b)if(2===i.wrap)e.adler=0,I(i,31),I(i,139),I(i,8),i.gzhead?(I(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),I(i,255&i.gzhead.time),I(i,i.gzhead.time>>8&255),I(i,i.gzhead.time>>16&255),I(i,i.gzhead.time>>24&255),I(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),I(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(I(i,255&i.gzhead.extra.length),I(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=a(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(I(i,0),I(i,0),I(i,0),I(i,0),I(i,0),I(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),I(i,3),i.status=R);else{var u=8+(i.w_bits-8<<4)<<8;u|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(u|=32),u+=31-u%31,i.status=R,N(i,u),0!==i.strstart&&(N(i,e.adler>>>16),N(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(o=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending!==i.pending_buf_size));)I(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindexo&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===c&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending===i.pending_buf_size)){c=1;break}c=i.gzindexo&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===c&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&P(e),i.pending+2<=i.pending_buf_size&&(I(i,255&e.adler),I(i,e.adler>>8&255),e.adler=0,i.status=R)):i.status=R),0!==i.pending){if(P(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&O(t)<=O(r)&&4!==t)return _(e,-5);if(666===i.status&&0!==e.avail_in)return _(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&666!==i.status){var l=2===i.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(z(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(D(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(D(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(D(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=x){if(z(e),e.lookahead<=x&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=s._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(D(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(D(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(D(e,!1),0===e.strm.avail_out)?1:2}(i,t):n[i.level].func(i,t);if(3!==l&&4!==l||(i.status=666),1===l||3===l)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===l&&(1===t?s._tr_align(i):5!==t&&(s._tr_stored_block(i,0,0,!1),3===t&&(L(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),P(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(I(i,255&e.adler),I(i,e.adler>>8&255),I(i,e.adler>>16&255),I(i,e.adler>>24&255),I(i,255&e.total_in),I(i,e.total_in>>8&255),I(i,e.total_in>>16&255),I(i,e.total_in>>24&255)):(N(i,e.adler>>>16),N(i,65535&e.adler)),P(e),0=r.w_size&&(0===a&&(L(r.head),r.strstart=0,r.block_start=0,r.insert=0),d=new i.Buf8(r.w_size),i.arraySet(d,t,h-r.w_size,r.w_size,0),t=d,h=r.w_size),c=e.avail_in,u=e.next_in,l=e.input,e.avail_in=h,e.next_in=0,e.input=t,z(r);r.lookahead>=3;){for(n=r.strstart,s=r.lookahead-2;r.ins_h=(r.ins_h<>>=g=H>>>24,A-=g,0==(g=H>>>16&255))b[s++]=65535&H;else{if(!(16&g)){if(!(64&g)){H=f[(65535&H)+(h&(1<>>=g,A-=g),A<15&&(h+=v[n++]<<>>=g=H>>>24,A-=g,!(16&(g=H>>>16&255))){if(!(64&g)){H=p[(65535&H)+(h&(1<>>=g,A-=g,(g=s-o)<(g=y-g)&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(x=w,(T=0)===d){if(T+=u-g,g>3,h&=(1<<(A-=m<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function p(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function E(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(h),t.distcode=t.distdyn=new n.Buf32(A),t.sane=1,t.back=-1,0):d}function B(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,E(e)):d}function H(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=o.wsize?(n.arraySet(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i<(s=o.wsize-o.wnext)&&(s=i),n.arraySet(o.window,t,r-i,s,o.wnext),(i-=s)?(n.arraySet(o.window,t,r-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,r.check=s(r.check,D,2,0),E=p=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&p)<<8)+(p>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&p)){e.msg="unknown compression method",r.mode=30;break}if(E-=4,C=8+(15&(p>>>=4)),0===r.wbits)r.wbits=C;else if(C>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<16;){if(0===h)break e;h--,p+=c[l++]<>8&1),512&r.flags&&(D[0]=255&p,D[1]=p>>>8&255,r.check=s(r.check,D,2,0)),E=p=0,r.mode=3;case 3:for(;E<32;){if(0===h)break e;h--,p+=c[l++]<>>8&255,D[2]=p>>>16&255,D[3]=p>>>24&255,r.check=s(r.check,D,4,0)),E=p=0,r.mode=4;case 4:for(;E<16;){if(0===h)break e;h--,p+=c[l++]<>8),512&r.flags&&(D[0]=255&p,D[1]=p>>>8&255,r.check=s(r.check,D,2,0)),E=p=0,r.mode=5;case 5:if(1024&r.flags){for(;E<16;){if(0===h)break e;h--,p+=c[l++]<>>8&255,r.check=s(r.check,D,2,0)),E=p=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(h<(g=r.length)&&(g=h),g&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,c,l,g,C)),512&r.flags&&(r.check=s(r.check,c,g,l)),h-=g,l+=g,r.length-=g),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===h)break e;for(g=0;C=c[l+g++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C)),C&&g<16;){if(0===h)break e;h--,p+=c[l++]<>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;E<32;){if(0===h)break e;h--,p+=c[l++]<>>=7&E,E-=7&E,r.mode=27;break}for(;E<3;){if(0===h)break e;h--,p+=c[l++]<>>=1)){case 0:r.mode=14;break;case 1:if(x(r),r.mode=20,6!==t)break;p>>>=2,E-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}p>>>=2,E-=2;break;case 14:for(p>>>=7&E,E-=7&E;E<32;){if(0===h)break e;h--,p+=c[l++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&p,E=p=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(g=r.length){if(h<14;){if(0===h)break e;h--,p+=c[l++]<>>=5,E-=5,r.ndist=1+(31&p),p>>>=5,E-=5,r.ncode=4+(15&p),p>>>=4,E-=4,286<3;){if(0===h)break e;h--,p+=c[l++]<>>=3,E-=3}for(;r.have<19;)r.lens[I[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,O={bits:r.lenbits},_=a(0,r.lens,0,19,r.lencode,0,r.work,O),r.lenbits=O.bits,_){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<>>16&255,R=65535&P,!((T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<<16)p>>>=T,E-=T,r.lens[r.have++]=R;else{if(16===R){for(L=T+2;E>>=T,E-=T,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}C=r.lens[r.have-1],g=3+(3&p),p>>>=2,E-=2}else if(17===R){for(L=T+3;E>>=T)),p>>>=3,E-=3}else{for(L=T+7;E>>=T)),p>>>=7,E-=7}if(r.have+g>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;g--;)r.lens[r.have++]=C}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,O={bits:r.lenbits},_=a(1,r.lens,0,r.nlen,r.lencode,0,r.work,O),r.lenbits=O.bits,_){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,O={bits:r.distbits},_=a(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,O),r.distbits=O.bits,_){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=h&&258<=A){e.next_out=w,e.avail_out=A,e.next_in=l,e.avail_in=h,r.hold=p,r.bits=E,o(e,H),w=e.next_out,u=e.output,A=e.avail_out,l=e.next_in,c=e.input,h=e.avail_in,p=r.hold,E=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;b=(P=r.lencode[p&(1<>>16&255,R=65535&P,!((T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<<>M)])>>>16&255,R=65535&P,!(M+(T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>>=M,E-=M,r.back+=M}if(p>>>=T,E-=T,r.back+=T,r.length=R,0===b){r.mode=26;break}if(32&b){r.back=-1,r.mode=12;break}if(64&b){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&b,r.mode=22;case 22:if(r.extra){for(L=r.extra;E>>=r.extra,E-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;b=(P=r.distcode[p&(1<>>16&255,R=65535&P,!((T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<<>M)])>>>16&255,R=65535&P,!(M+(T=P>>>24)<=E);){if(0===h)break e;h--,p+=c[l++]<>>=M,E-=M,r.back+=M}if(p>>>=T,E-=T,r.back+=T,64&b){e.msg="invalid distance code",r.mode=30;break}r.offset=R,r.extra=15&b,r.mode=24;case 24:if(r.extra){for(L=r.extra;E>>=r.extra,E-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===A)break e;if(g=H-A,r.offset>g){if((g=r.offset-g)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}m=g>r.wnext?(g-=r.wnext,r.wsize-g):r.wnext-g,g>r.length&&(g=r.length),y=r.window}else y=u,m=w-r.offset,g=r.length;for(A<32;){if(0===h)break e;h--,p|=c[l++]<<32;){if(0===h)break e;h--,p+=c[l++]<B?(g=I[N+d[x]],O[L+d[x]]):(g=96,0),h=1<<>k)+(A-=h)]=H<<24|g<<16|m,0!==A;);for(h=1<>=1;if(0!==h?(_&=h-1,_+=h):_=0,x++,0==--P[T]){if(T===b)break;T=t[r+d[x]]}if(R<<(M=T-k);M+k<=0);)M++,S<<=1;if(C+=1<<256?R[e]:R[256+(e>>>7)]}function I(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function N(e,t,r){e.bi_valid>f-r?(e.bi_buf|=t<>f-e.bi_valid,e.bi_valid+=r-f):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function X(e,t,r){var n,i,s=new Array(16),o=0;for(n=1;n<=A;n++)s[n]=o=o+r[n-1]<<1;for(i=0;i<=t;i++){var a=e[2*i+1];0!==a&&(e[2*i]=z(s[a]++,a))}}function j(e){var t;for(t=0;t<=n[r]}function J(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,o,a=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],i=e.pending_buf[e.l_buf+a],a++,0===n?U(e,i,t):(U(e,(s=M[i])+u+1,t),0!==(o=m[s])&&N(e,i-=k[s],o),U(e,s=D(--n),r),0!==(o=y[s])&&N(e,n-=O[s],o)),a>1;1<=r;r--)J(e,s,r);for(i=c;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],J(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,J(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,o,a,c=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,d=t.stat_desc.has_stree,w=t.stat_desc.extra_bits,f=t.stat_desc.extra_base,p=t.stat_desc.max_length,E=0;for(s=0;s<=A;s++)e.bl_count[s]=0;for(c[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<(s=c[2*c[2*(n=e.heap[r])+1]+1]+1)&&(s=p,E++),c[2*n+1]=s,u<=n&&(o=w[n-f]),a=c[2*n],e.opt_len+=a*(s+o),d&&(e.static_len+=a*(l[2*n+1]+o)));if(0!==E){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,E-=2}while(0<(i=e.heap[--r])||(c[2*i+1]!==s&&(e.opt_len+=(s-c[2*i+1])*c[2*i],c[2*i+1]=s),n--)}}(e,t),X(s,u,e.bl_count)}function Z(e,t,r){var n,i,s=-1,o=t[1],a=0,c=7,u=4;for(0===o&&(c=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=t[2*(n+1)+1],++a<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=i,u=(a=0)===o?(c=138,3):i===o?(c=6,3):(c=7,4))}function G(e,t,r){var n,i,s=-1,o=t[1],a=0,c=7,u=4;for(0===o&&(c=138,u=3),n=0;n<=r;n++)if(i=o,o=t[2*(n+1)+1],!(++a>=7;n<<7,e=0;e<1<<=A;t++)s[t]=0;for(e=0;e<=143;)v[2*e+1]=8,e++,s[8]++;for(;e<=255;)v[2*e+1]=9,e++,s[9]++;for(;e<=279;)v[2*e+1]=7,e++,s[7]++;for(;e<=287;)v[2*e+1]=8,e++,s[8]++;for(X(v,287,s),e=0;e>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?Q(e,t,r,n):4===e.strategy||s===i?(N(e,2+(n?1:0),3),K(e,v,b)):(N(e,4+(n?1:0),3),function(e,t,r,n){var i;for(N(e,t-257,5),N(e,r-1,5),N(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(M[r]+u+1)]++,e.dyn_dtree[2*D(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){var t;N(e,2,3),U(e,E,v),16===(t=e).bi_valid?(I(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(e,t){if(!e.setImmediate){var r,n,i,s,o=1,a={},c=!1,u=e.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(e);l=l&&l.setTimeout?l:e,r="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick(function(){w(e)})}:function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?(s="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",h,!1):e.attachEvent("onmessage",h),function(t){e.postMessage(s+t,"*")}):e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){w(e.data)},function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(n=u.documentElement,function(e){var t=u.createElement("script");t.onreadystatechange=function(){w(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):function(e){setTimeout(w,0,e)},l.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n{try{const t=await fetch(r,{method:"POST",headers:{"User-Agent":"insomnia/8.6.1","Content-Type":"application/json"},body:JSON.stringify({install_id:"",fcm_token:"",tos:(new Date).toISOString(),type:"Android",model:"PC",locale:"en_US",warp_enabled:!0,key:e.publicKey})});return await t.json()}catch(e){const t=e instanceof Error?e.message:String(e);throw new Error(`Failed to get warp configs: ${t}`)}};for(const e of n){const{config:r}=await i(e);t.push({privateKey:e.privateKey,warpIPv6:`${r.interface.addresses.v6}/128`,reserved:r.client_id,publicKey:r.peers[0].public_key})}return await e.kv.put("warpAccounts",JSON.stringify(t)),t}async function Dd(){const e=await crypto.subtle.generateKey({name:"X25519",namedCurve:"X25519"},!0,["deriveBits"]),t=await crypto.subtle.exportKey("pkcs8",e.privateKey),r=new Uint8Array(t).slice(-32),n=void 0,i=e=>btoa(String.fromCharCode(...e));return{publicKey:i(new Uint8Array(await crypto.subtle.exportKey("raw",e.publicKey))),privateKey:i(r)}}function Id(e){if(!e)return!1;const t=void 0;return/^(?!-)(?:[A-Za-z0-9-]{1,63}.)+[A-Za-z]{2,}$/.test(e)}async function Nd(e,t=!1){const r=`https://cloudflare-dns.com/dns-query?name=${encodeURIComponent(e)}`,n={ipv4:`${r}&type=A`,ipv6:`${r}&type=AAAA`};try{const e=await Ud(n.ipv4,1),r=void 0;return{ipv4:e,ipv6:t?[]:await Ud(n.ipv6,28)}}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Error resolving DNS for ${e}: ${r}`)}}async function Ud(e,t){try{const r=await fetch(e,{headers:{accept:"application/dns-json"}}),n=await r.json();return n.Answer?n.Answer.filter(e=>e.type===t).map(e=>e.data):[]}catch(t){const r=t instanceof Error?t.message:String(t);throw new Error(`Failed to fetch DNS records from ${e}: ${r}`)}}function zd(){const{settings:{VLConfigs:e,TRConfigs:t},dict:{_VL_:r,_TR_:n}}=globalThis;return[].concatIf(e,r).concatIf(t,n)}async function Xd(e){const{httpConfig:{hostName:t},settings:{enableIPv6:r,customCdnAddrs:n,cleanIPs:i}}=globalThis,{ipv4:s,ipv6:o}=await Nd(t,!r),a=void 0;return[t,"www.speedtest.net",...s,...o.map(e=>`[${e}]`),...i].concatIf(!e,n)}function jd(e,t,r,n,i,s){const{settings:{cleanIPs:o,customCdnAddrs:a},dict:{_VL_:c,_VL_CAP_:u,_TR_CAP_:l}}=globalThis,d=void 0,w=a.includes(r)?" C":i?" F":"",h=s?"🔗 ":"",A=n===c?u:l;let f;return f=o.includes(r)?"Clean IP":Id(r)?"Domain":Yd(r)?"IPv4":Zd(r)?"IPv6":"",`💦 ${e} - ${h}${A}${w} - ${f} : ${t}`}function Wd(e){let t="";for(let r=0;r