@shiplightai/mcp 0.1.48 → 0.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chrome-extension/background.js +11 -2
- package/dist/agentHelpers-242MN5TR-AK52N3RJ.js +4 -0
- package/dist/agentLogin-VLDCPI66-52P67BMY.js +4 -0
- package/dist/chunk-34YV5HSR.js +3999 -0
- package/dist/chunk-3KLJZX63.js +34 -0
- package/dist/chunk-5YN4X7LV.js +31 -0
- package/dist/chunk-67R4GP2H.js +4 -0
- package/dist/chunk-7W6YLS2E.js +22 -0
- package/dist/chunk-AFEFEPKR.js +4 -0
- package/dist/chunk-B7PRQ6ZM.js +4 -0
- package/dist/chunk-ETDHHU35.js +4 -0
- package/dist/chunk-FUPXB4VL.js +9 -0
- package/dist/chunk-GZSLCYQ7.js +192 -0
- package/dist/chunk-HHCLRZRA.js +15 -0
- package/dist/chunk-HQNPMIQW.js +200 -0
- package/dist/chunk-JKHKVGEC.js +4 -0
- package/dist/chunk-JT3U4KNR.js +59 -0
- package/dist/chunk-K7YTTSET.js +4 -0
- package/dist/chunk-KW4N7WFX.js +38 -0
- package/dist/chunk-LM633YUO.js +4 -0
- package/dist/chunk-ORSFJVJL.js +221 -0
- package/dist/chunk-PFLXO7G4.js +6 -0
- package/dist/chunk-PWGR4MG7.js +4 -0
- package/dist/chunk-RSM4LZ5P.js +4237 -0
- package/dist/chunk-Z3E7FIDS.js +17 -0
- package/dist/dist-CBGK26LV-CIQ64GXB.js +15 -0
- package/dist/dist-N7YI5OTM.js +4 -0
- package/dist/dist-VVPHZ43R.js +4 -0
- package/dist/dist-YNN5UBVC.js +4 -0
- package/dist/esm-7LSQY7YM.js +153 -0
- package/dist/fileFromPath-7DXRMRQU.js +19 -0
- package/dist/handler-2DVP4PMD-IFR4HH7D.js +4 -0
- package/dist/import-meta-resolve-GTPXFCVK.js +6 -0
- package/dist/index.js +21 -9352
- package/dist/lib-ZSSBUTBS.js +588 -0
- package/dist/magic-string.es-LGBSB5S5.js +16 -0
- package/dist/multipart-parser-JC2L5VJI.js +5 -0
- package/dist/multipart-parser-TJWXZEMW-OF3QE73Z.js +5 -0
- package/dist/relayBrowserCache-QL6LD4JJ-TKU47MOI.js +4 -0
- package/dist/server-KGF6BY7H.js +22 -0
- package/dist/src-B7EYCIZ4-XWOBV3GQ.js +6 -0
- package/dist/src-SYQHKG2Q.js +6 -0
- package/dist/task-2JIXKMIY-CMX3BD6Z.js +193 -0
- package/dist/token-AWIWOSVF.js +4 -0
- package/dist/token-QK7JKAKS.js +4 -0
- package/dist/token-util-GL5PN7CJ.js +4 -0
- package/dist/token-util-TEE5GKZ2.js +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import{a as cu,b as xt,c as lu,d as hu,e as du,f as pu,g as gu,h as fu,k as mu,l as xu,o as ee,r as Au}from"./chunk-HQNPMIQW.js";import{a as ru,b as nu,d as au,g as su,h as Xt}from"./chunk-JT3U4KNR.js";import{a as vt,c as Yu,d as Zu,e as Qu,f as ne,g as ae,h as se}from"./chunk-ORSFJVJL.js";import{a as ue,b as H,c as ie,d as Eu,l as re,n as Bu,o as Ft}from"./chunk-34YV5HSR.js";import{a as S}from"./chunk-Z3E7FIDS.js";import{A as zu,B as Ku,E as Ju,a as Cu,b as Du,c as bu,d as wu,e as yu,f as Fu,g as vu,h as ku,i as Su,j as Tu,k as _u,l as Iu,m as Lu,n as Nu,o as $u,p as Pu,q as Ru,r as qu,s as Ou,t as Mu,u as Uu,v as Hu,w as ju,x as Vu,y as Wu,z as Gu}from"./chunk-KW4N7WFX.js";import{b as iu,c}from"./chunk-JKHKVGEC.js";import{a as ou,c as Z,d as te}from"./chunk-ETDHHU35.js";import{c as Qt,e as _r}from"./chunk-LM633YUO.js";var ti=Qt((To,Xu)=>{"use strict";function V(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}Xu.exports=V;V.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};V.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};V.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var u=this._timeouts.shift();if(u===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),u=this._cachedTimeouts.slice(-1);else return!1;var i=this;return this._timer=setTimeout(function(){i._attempts++,i._operationTimeoutCb&&(i._timeout=setTimeout(function(){i._operationTimeoutCb(i._attempts)},i._operationTimeout),i._options.unref&&i._timeout.unref()),i._fn(i._attempts)},u),this._options.unref&&this._timer.unref(),!0};V.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var u=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){u._operationTimeoutCb()},u._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};V.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};V.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};V.prototype.start=V.prototype.try;V.prototype.errors=function(){return this._errors};V.prototype.attempts=function(){return this._attempts};V.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,u=0,i=0;i<this._errors.length;i++){var r=this._errors[i],n=r.message,a=(t[n]||0)+1;t[n]=a,a>=u&&(e=r,u=a)}return e}});var ei=Qt(ut=>{"use strict";var Ir=ti();ut.operation=function(t){var e=ut.timeouts(t);return new Ir(e,{forever:t&&(t.forever||t.retries===1/0),unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};ut.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var u in t)e[u]=t[u];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var i=[],r=0;r<e.retries;r++)i.push(this.createTimeout(r,e));return t&&t.forever&&!i.length&&i.push(this.createTimeout(r,e)),i.sort(function(n,a){return n-a}),i};ut.createTimeout=function(t,e){var u=e.randomize?Math.random()+1:1,i=Math.round(u*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return i=Math.min(i,e.maxTimeout),i};ut.wrap=function(t,e,u){if(e instanceof Array&&(u=e,e=null),!u){u=[];for(var i in t)typeof t[i]=="function"&&u.push(i)}for(var r=0;r<u.length;r++){var n=u[r],a=t[n];t[n]=function(o){var l=ut.operation(e),p=Array.prototype.slice.call(arguments,1),A=p.pop();p.push(function(E){l.retry(E)||(E&&(arguments[0]=l.mainError()),A.apply(this,arguments))}),l.attempt(function(){o.apply(t,p)})}.bind(t,a),t[n].options=e}}});var ii=Qt((Io,ui)=>{"use strict";ui.exports=ei()});import{createRequire as Pr}from"module";import*as Hi from"fs/promises";import*as Ut from"vm";import*as be from"fs/promises";import{z as ai}from"zod";import{z as Q}from"zod";import Rt from"fs";import Lt from"path";import{chromium as Pi,firefox as ro,webkit as no}from"playwright";import*as Sr from"fs";import*as Bt from"path";import*as R from"fs";import*as M from"path";import{z as Ri}from"zod";import*as Wt from"fs";var ni=_r(ii(),1);var Lr=Object.prototype.toString,Nr=t=>Lr.call(t)==="[object Error]",$r=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function oe(t){return t&&Nr(t)&&t.name==="TypeError"&&typeof t.message=="string"?t.message==="Load failed"?t.stack===void 0:$r.has(t.message):!1}var ce=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}},ri=(t,e,u)=>{let i=u.retries-(e-1);return t.attemptNumber=e,t.retriesLeft=i,t};async function le(t,e){return new Promise((u,i)=>{e={...e},e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.retries??=10;let r=ni.default.operation(e),n=()=>{r.stop(),i(e.signal?.reason)};e.signal&&!e.signal.aborted&&e.signal.addEventListener("abort",n,{once:!0});let a=()=>{e.signal?.removeEventListener("abort",n),r.stop()};r.attempt(async s=>{try{let o=await t(s);a(),u(o)}catch(o){try{if(!(o instanceof Error))throw new TypeError(`Non-error was thrown: "${o}". You should only throw errors.`);if(o instanceof ce)throw o.originalError;if(o instanceof TypeError&&!oe(o))throw o;if(ri(o,s,e),await e.shouldRetry(o)||(r.stop(),i(o)),await e.onFailedAttempt(o),!r.retry(o))throw r.mainError()}catch(l){ri(l,s,e),a(),i(l)}}})})}import{z as Nt}from"zod";var n0=Pr(import.meta.url),Rr=Z((t,e)=>{"use strict";var u=function(m){return i(m)&&!r(m)};function i(m){return!!m&&typeof m=="object"}function r(m){var w=Object.prototype.toString.call(m);return w==="[object RegExp]"||w==="[object Date]"||s(m)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function s(m){return m.$$typeof===a}function o(m){return Array.isArray(m)?[]:{}}function l(m,w){return w.clone!==!1&&w.isMergeableObject(m)?D(o(m),m,w):m}function p(m,w,v){return m.concat(w).map(function(I){return l(I,v)})}function A(m,w){if(!w.customMerge)return D;var v=w.customMerge(m);return typeof v=="function"?v:D}function E(m){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(m).filter(function(w){return Object.propertyIsEnumerable.call(m,w)}):[]}function x(m){return Object.keys(m).concat(E(m))}function B(m,w){try{return w in m}catch{return!1}}function y(m,w){return B(m,w)&&!(Object.hasOwnProperty.call(m,w)&&Object.propertyIsEnumerable.call(m,w))}function b(m,w,v){var I={};return v.isMergeableObject(m)&&x(m).forEach(function($){I[$]=l(m[$],v)}),x(w).forEach(function($){y(m,$)||(B(m,$)&&v.isMergeableObject(w[$])?I[$]=A($,v)(m[$],w[$],v):I[$]=l(w[$],v))}),I}function D(m,w,v){v=v||{},v.arrayMerge=v.arrayMerge||p,v.isMergeableObject=v.isMergeableObject||u,v.cloneUnlessOtherwiseSpecified=l;var I=Array.isArray(w),$=Array.isArray(m),Y=I===$;return Y?I?v.arrayMerge(m,w,v):b(m,w,v):l(w,v)}D.all=function(m,w){if(!Array.isArray(m))throw new Error("first argument should be an array");return m.reduce(function(v,I){return D(v,I,w)},{})};var F=D;e.exports=F}),qr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(n){return n&&typeof n=="object"&&"default"in n?n.default:n}var u=e(ou("crypto")),i=(n,a,s)=>u.createHmac(n,Buffer.from(a,"hex")).update(Buffer.from(s,"hex")).digest().toString("hex"),r=(n,a)=>u.randomBytes(n).toString(a);t.createDigest=i,t.createRandomBytes=r}),Or=Z(t=>{"use strict";var e="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",u=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function i(r){var n=Math.floor(r.length/5);return r.length%5===0?n:n+1}t.encode=function(r){Buffer.isBuffer(r)||(r=new Buffer(r));for(var n=0,a=0,s=0,o=0,l=new Buffer(i(r)*8);n<r.length;){var p=r[n];s>3?(o=p&255>>s,s=(s+5)%8,o=o<<s|(n+1<r.length?r[n+1]:0)>>8-s,n++):(o=p>>8-(s+5)&31,s=(s+5)%8,s===0&&n++),l[a]=e.charCodeAt(o),a++}for(n=a;n<l.length;n++)l[n]=61;return l},t.decode=function(r){var n=0,a=0,s,o=0;Buffer.isBuffer(r)||(r=new Buffer(r));for(var l=new Buffer(Math.ceil(r.length*5/8)),p=0;p<r.length&&r[p]!==61;p++){var A=r[p]-48;if(A<u.length)a=u[A],n<=3?(n=(n+5)%8,n===0?(s|=a,l[o]=s,o++,s=0):s|=255&a<<8-n):(n=(n+5)%8,s|=255&a>>>n,l[o]=s,o++,s=255&a<<8-n);else throw new Error("Invalid input - it is not base32 encoded string")}return l.slice(0,o)}}),Mr=Z(t=>{"use strict";var e=Or();t.encode=e.encode,t.decode=e.decode}),Ur=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(n){return n&&typeof n=="object"&&"default"in n?n.default:n}var u=e(Mr()),i=(n,a)=>u.decode(n).toString(a),r=(n,a)=>u.encode(Buffer.from(n,a).toString("ascii")).toString().replace(/=/g,"");t.keyDecoder=i,t.keyEncoder=r}),Hr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(d){return Object.keys(d).map(h=>d[h])}(function(d){d.SHA1="sha1",d.SHA256="sha256",d.SHA512="sha512"})(t.HashAlgorithms||(t.HashAlgorithms={}));var u=e(t.HashAlgorithms);(function(d){d.ASCII="ascii",d.BASE64="base64",d.HEX="hex",d.LATIN1="latin1",d.UTF8="utf8"})(t.KeyEncodings||(t.KeyEncodings={}));var i=e(t.KeyEncodings);(function(d){d.HOTP="hotp",d.TOTP="totp"})(t.Strategy||(t.Strategy={}));var r=e(t.Strategy),n=()=>{throw new Error("Please provide an options.createDigest implementation.")};function a(d){return/^(\d+)$/.test(d)}function s(d,h,f){return d.length>=h?d:`${Array(h+1).join(f)}${d}`.slice(-1*h)}function o(d){let h=`otpauth://${d.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,f=[];if(r.indexOf(d.type)<0)throw new Error(`Expecting options.type to be one of ${r.join(", ")}. Received ${d.type}.`);if(d.type==="hotp"){if(d.counter==null||typeof d.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');f.push(`&counter=${d.counter}`)}return d.type==="totp"&&d.step&&f.push(`&period=${d.step}`),d.digits&&f.push(`&digits=${d.digits}`),d.algorithm&&f.push(`&algorithm=${d.algorithm.toUpperCase()}`),d.issuer&&f.push(`&issuer=${encodeURIComponent(d.issuer)}`),h.replace("{labelPrefix}",encodeURIComponent(d.issuer||d.accountName)).replace("{accountName}",encodeURIComponent(d.accountName)).replace("{secret}",d.secret).replace("{query}",f.join(""))}var l=class qi{constructor(h={}){this._defaultOptions=Object.freeze({...h}),this._options=Object.freeze({})}create(h={}){return new qi(h)}clone(h={}){let f=this.create({...this._defaultOptions,...h});return f.options=this._options,f}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(h){this._options=Object.freeze({...this._options,...h})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function p(d){if(typeof d.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof d.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof d.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!d.algorithm||u.indexOf(d.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${u.join(", ")}. Received ${d.algorithm}.`);if(!d.encoding||i.indexOf(d.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${i.join(", ")}. Received ${d.encoding}.`)}var A=(d,h,f)=>Buffer.from(h,f).toString("hex");function E(){return{algorithm:t.HashAlgorithms.SHA1,createHmacKey:A,createDigest:n,digits:6,encoding:t.KeyEncodings.ASCII}}function x(d){let h={...E(),...d};return p(h),Object.freeze(h)}function B(d){let h=d.toString(16);return s(h,16,"0")}function y(d,h){let f=Buffer.from(d,"hex"),k=f[f.length-1]&15,L=((f[k]&127)<<24|(f[k+1]&255)<<16|(f[k+2]&255)<<8|f[k+3]&255)%Math.pow(10,h);return s(String(L),h,"0")}function b(d,h,f){let k=B(h),L=f.createHmacKey(f.algorithm,d,f.encoding);return f.createDigest(f.algorithm,L,k)}function D(d,h,f){let k=f.digest||b(d,h,f);return y(k,f.digits)}function F(d,h,f,k){if(!a(d))return!1;let L=D(h,f,k);return d===L}function m(d,h,f,k,L){return o({algorithm:L.algorithm,digits:L.digits,type:t.Strategy.HOTP,accountName:d,counter:k,issuer:h,secret:f})}var w=class Oi extends l{create(h={}){return new Oi(h)}allOptions(){return x(this.options)}generate(h,f){return D(h,f,this.allOptions())}check(h,f,k){return F(h,f,k,this.allOptions())}verify(h){if(typeof h!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(h.token,h.secret,h.counter)}keyuri(h,f,k,L){return m(h,f,k,L,this.allOptions())}};function v(d){if(typeof d=="number")return[Math.abs(d),Math.abs(d)];if(Array.isArray(d)){let[h,f]=d;if(typeof h=="number"&&typeof f=="number")return[Math.abs(h),Math.abs(f)]}throw new Error("Expecting options.window to be an number or [number, number].")}function I(d){if(p(d),v(d.window),typeof d.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof d.step!="number")throw new Error("Expecting options.step to be a number.")}var $=(d,h,f)=>{let k=d.length,L=Buffer.from(d,h).toString("hex");if(k<f){let et=new Array(f-k+1).join(L);return Buffer.from(et,"hex").slice(0,f).toString("hex")}return L},Y=(d,h,f)=>{switch(d){case t.HashAlgorithms.SHA1:return $(h,f,20);case t.HashAlgorithms.SHA256:return $(h,f,32);case t.HashAlgorithms.SHA512:return $(h,f,64);default:throw new Error(`Expecting algorithm to be one of ${u.join(", ")}. Received ${d}.`)}};function ot(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function ct(d){let h={...ot(),...d};return I(h),Object.freeze(h)}function lt(d,h){return Math.floor(d/h/1e3)}function wt(d,h){let f=lt(h.epoch,h.step);return D(d,f,h)}function Ge(d,h,f,k){let L=[];if(k===0)return L;for(let et=1;et<=k;et++){let Zt=h*et*f;L.push(d+Zt)}return L}function ze(d,h,f){let k=v(f),L=h*1e3;return{current:d,past:Ge(d,-1,L,k[0]),future:Ge(d,1,L,k[1])}}function Gt(d,h,f){if(!a(d))return!1;let k=wt(h,f);return d===k}function zt(d,h,f,k){let L=null;return d.some((et,Zt)=>Gt(h,f,{...k,epoch:et})?(L=Zt+1,!0):!1),L}function Kt(d,h,f){if(Gt(d,h,f))return 0;let k=ze(f.epoch,f.step,f.window),L=zt(k.past,d,h,f);return L!==null?L*-1:zt(k.future,d,h,f)}function Jt(d,h){return Math.floor(d/1e3)%h}function Ke(d,h){return h-Jt(d,h)}function Je(d,h,f,k){return o({algorithm:k.algorithm,digits:k.digits,step:k.step,type:t.Strategy.TOTP,accountName:d,issuer:h,secret:f})}var Ye=class Mi extends w{create(h={}){return new Mi(h)}allOptions(){return ct(this.options)}generate(h){return wt(h,this.allOptions())}checkDelta(h,f){return Kt(h,f,this.allOptions())}check(h,f){return typeof this.checkDelta(h,f)=="number"}verify(h){if(typeof h!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(h.token,h.secret)}timeRemaining(){let h=this.allOptions();return Ke(h.epoch,h.step)}timeUsed(){let h=this.allOptions();return Jt(h.epoch,h.step)}keyuri(h,f,k){return Je(h,f,k,this.allOptions())}};function Ze(d){if(I(d),typeof d.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(d.keyEncoder&&typeof d.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function Qe(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Xe(d){let h={...Qe(),...d};return Ze(h),Object.freeze(h)}function Yt(d,h){return h.keyEncoder(d,h.encoding)}function yt(d,h){return h.keyDecoder(d,h.encoding)}function tu(d,h){let f=h.createRandomBytes(d,h.encoding);return Yt(f,h)}function eu(d,h){return wt(yt(d,h),h)}function uu(d,h,f){return Kt(d,yt(h,f),f)}var Tr=class Ui extends Ye{create(h={}){return new Ui(h)}allOptions(){return Xe(this.options)}generate(h){return eu(h,this.allOptions())}checkDelta(h,f){return uu(h,f,this.allOptions())}encode(h){return Yt(h,this.allOptions())}decode(h){return yt(h,this.allOptions())}generateSecret(h=10){return tu(h,this.allOptions())}};t.Authenticator=Tr,t.HASH_ALGORITHMS=u,t.HOTP=w,t.KEY_ENCODINGS=i,t.OTP=l,t.STRATEGY=r,t.TOTP=Ye,t.authenticatorCheckWithWindow=uu,t.authenticatorDecoder=yt,t.authenticatorDefaultOptions=Qe,t.authenticatorEncoder=Yt,t.authenticatorGenerateSecret=tu,t.authenticatorOptionValidator=Ze,t.authenticatorOptions=Xe,t.authenticatorToken=eu,t.createDigestPlaceholder=n,t.hotpCheck=F,t.hotpCounter=B,t.hotpCreateHmacKey=A,t.hotpDefaultOptions=E,t.hotpDigestToToken=y,t.hotpKeyuri=m,t.hotpOptions=x,t.hotpOptionsValidator=p,t.hotpToken=D,t.isTokenValid=a,t.keyuri=o,t.objectValues=e,t.padStart=s,t.totpCheck=Gt,t.totpCheckByEpoch=zt,t.totpCheckWithWindow=Kt,t.totpCounter=lt,t.totpCreateHmacKey=Y,t.totpDefaultOptions=ot,t.totpEpochAvailable=ze,t.totpKeyuri=Je,t.totpOptions=ct,t.totpOptionsValidator=I,t.totpPadSecret=$,t.totpTimeRemaining=Ke,t.totpTimeUsed=Jt,t.totpToken=wt}),jr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=qr(),u=Ur(),i=Hr(),r=new i.HOTP({createDigest:e.createDigest}),n=new i.TOTP({createDigest:e.createDigest}),a=new i.Authenticator({createDigest:e.createDigest,createRandomBytes:e.createRandomBytes,keyDecoder:u.keyDecoder,keyEncoder:u.keyEncoder});t.authenticator=a,t.hotp=r,t.totp=n}),Vr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=jr();Object.keys(e).forEach(function(u){u!=="default"&&Object.defineProperty(t,u,{enumerable:!0,get:function(){return e[u]}})})});function Wr(t,e,u,i=!1){if(t[e])if(i)c.info(`Overriding existing function: ${e}`),delete t[e];else{c.error(`The name ${e} is already defined in the global scope`);return}try{let r;if(Ut.isContext(t)?r=new Ut.Script(u,{importModuleDynamically:async n=>await import(n)}).runInContext(t):r=(0,eval)(u),typeof r!="function")throw new Error("The injected code must be a function");t[e]=r}catch(r){c.error(`Error injecting user function ${e}: ${r.message}`)}}async function f0(t,e,u=!1){try{let i=await Hi.readFile(e,"utf8"),r=JSON.parse(i);c.info(`Loading ${Object.keys(r).length} user functions...`);for(let[n,a]of Object.entries(r))Wr(t,n,a,u)}catch(i){throw c.error("Failed to load user functions:",i),i}}async function m0(t){try{let e=await be.readFile(t,"utf8"),u=JSON.parse(e);return c.info(`Loaded ${u.length} knowledges from file`),u}catch(e){if(e.code==="ENOENT")return c.debug("No knowledges file found"),[];throw c.error("Failed to load knowledges:",e),e}}async function x0(t){try{let e=await be.readFile(t,"utf8"),u=JSON.parse(e);return c.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(e){if(e.code==="ENOENT")return c.debug("No knowledge mappings file found"),[];throw c.error("Failed to load knowledge mappings:",e),e}}async function A0(t,e){if(!t.body)throw new Error("Response body is null");let u=t.body.getReader(),i=new TextDecoder,r="";try{for(;;){let{done:n,value:a}=await u.read();if(n)break;r+=i.decode(a,{stream:!0});let s=r.split(`
|
|
5
|
+
`);r=s.pop()||"";for(let o of s){let l=null;if(o.startsWith("data: "))try{let p=o.slice(6);p.trim()&&(l=JSON.parse(p))}catch(p){console.error(`Failed to parse SSE event: ${o}`,p);continue}l&&e(l)}}}finally{u.releaseLock()}}var Gr=ai.object({instruction:ai.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function zr(t){t.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:Gr,usesElementIndex:!1,async execute(e,u){let{instruction:i}=e,r={page:u.page,agentServices:u.agentServices,domService:u.domService},n=await Yu(i,r,{});if(n.status==="error"||!n.actionEntity)return{success:!1,actionEntity:{action_description:i,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:i}}},error:n.error||"Failed to generate action"};let{actionEntity:a}=n,s=await Zu(a,r);return{success:s.success,actionEntity:a,message:s.success?`Successfully executed action: ${a.action_data?.action_name}`:void 0,error:s.error}}})}var T;(function(t){t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"})(T||(T={}));function Kr(t){return t.type===T.Tag||t.type===T.Script||t.type===T.Style}var Jr=T.Root,Yr=T.Text,Zr=T.Directive,Qr=T.Comment,Xr=T.Script,tn=T.Style,en=T.Tag,un=T.CDATA,rn=T.Doctype,ji=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return Ki(this,t)}},we=class extends ji{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},ge=class extends we{constructor(){super(...arguments),this.type=T.Text}get nodeType(){return 3}},Vi=class extends we{constructor(){super(...arguments),this.type=T.Comment}get nodeType(){return 8}},Wi=class extends we{constructor(t,e){super(e),this.name=t,this.type=T.Directive}get nodeType(){return 1}},ye=class extends ji{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},Gi=class extends ye{constructor(){super(...arguments),this.type=T.CDATA}get nodeType(){return 4}},fe=class extends ye{constructor(){super(...arguments),this.type=T.Root}get nodeType(){return 9}},zi=class extends ye{constructor(t,e,u=[],i=t==="script"?T.Script:t==="style"?T.Style:T.Tag){super(u),this.name=t,this.attribs=e,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var e,u;return{name:t,value:this.attribs[t],namespace:(e=this["x-attribsNamespace"])===null||e===void 0?void 0:e[t],prefix:(u=this["x-attribsPrefix"])===null||u===void 0?void 0:u[t]}})}};function Fe(t){return Kr(t)}function nn(t){return t.type===T.CDATA}function an(t){return t.type===T.Text}function sn(t){return t.type===T.Comment}function on(t){return t.type===T.Directive}function cn(t){return t.type===T.Root}function Ki(t,e=!1){let u;if(an(t))u=new ge(t.data);else if(sn(t))u=new Vi(t.data);else if(Fe(t)){let i=e?he(t.children):[],r=new zi(t.name,{...t.attribs},i);i.forEach(n=>n.parent=r),t.namespace!=null&&(r.namespace=t.namespace),t["x-attribsNamespace"]&&(r["x-attribsNamespace"]={...t["x-attribsNamespace"]}),t["x-attribsPrefix"]&&(r["x-attribsPrefix"]={...t["x-attribsPrefix"]}),u=r}else if(nn(t)){let i=e?he(t.children):[],r=new Gi(i);i.forEach(n=>n.parent=r),u=r}else if(cn(t)){let i=e?he(t.children):[],r=new fe(i);i.forEach(n=>n.parent=r),t["x-mode"]&&(r["x-mode"]=t["x-mode"]),u=r}else if(on(t)){let i=new Wi(t.name,t.data);t["x-name"]!=null&&(i["x-name"]=t["x-name"],i["x-publicId"]=t["x-publicId"],i["x-systemId"]=t["x-systemId"]),u=i}else throw new Error(`Not implemented yet: ${t.type}`);return u.startIndex=t.startIndex,u.endIndex=t.endIndex,t.sourceCodeLocation!=null&&(u.sourceCodeLocation=t.sourceCodeLocation),u}function he(t){let e=t.map(u=>Ki(u,!0));for(let u=1;u<e.length;u++)e[u].prev=e[u-1],e[u-1].next=e[u];return e}var si={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},ln=class{constructor(t,e,u){this.dom=[],this.root=new fe(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof e=="function"&&(u=e,e=si),typeof t=="object"&&(e=t,t=void 0),this.callback=t??null,this.options=e??si,this.elementCB=u??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new fe(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,e){let u=this.options.xmlMode?T.Tag:void 0,i=new zi(t,e,void 0,u);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:e}=this;if(e&&e.type===T.Text)e.data+=t,this.options.withEndIndices&&(e.endIndex=this.parser.endIndex);else{let u=new ge(t);this.addNode(u),this.lastNode=u}}oncomment(t){if(this.lastNode&&this.lastNode.type===T.Comment){this.lastNode.data+=t;return}let e=new Vi(t);this.addNode(e),this.lastNode=e}oncommentend(){this.lastNode=null}oncdatastart(){let t=new ge(""),e=new Gi([t]);this.addNode(e),t.parent=e,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,e){let u=new Wi(t,e);this.addNode(u)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let e=this.tagStack[this.tagStack.length-1],u=e.children[e.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),e.children.push(t),u&&(t.prev=u,u.next=t),t.parent=e,this.lastNode=null}},hn=/\n/g;function dn(t){let e=[...t.matchAll(hn)].map(i=>i.index||0);e.unshift(-1);let u=me(e,0,e.length);return i=>Ji(u,i)}function me(t,e,u){if(u-e==1)return{offset:t[e],index:e+1};let i=Math.ceil((e+u)/2),r=me(t,e,i),n=me(t,i,u);return{offset:r.offset,low:r,high:n}}function Ji(t,e){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(t)?{line:t.index,column:e-t.offset}:Ji(t.high.offset<e?t.high:t.low,e)}function Yi(t,e="",u={}){let i=typeof e!="string"?e:u,r=typeof e=="string"?e:"",n=t.map(pn),a=!!i.lineNumbers;return function(s,o=0){let l=a?dn(s):()=>({line:0,column:0}),p=o,A=[];t:for(;p<s.length;){let E=!1;for(let x of n){x.regex.lastIndex=p;let B=x.regex.exec(s);if(B&&B[0].length>0){if(!x.discard){let y=l(p),b=typeof x.replace=="string"?B[0].replace(new RegExp(x.regex.source,x.regex.flags),x.replace):B[0];A.push({state:r,name:x.name,text:b,offset:p,len:B[0].length,line:y.line,column:y.column})}if(p=x.regex.lastIndex,E=!0,x.push){let y=x.push(s,p);A.push(...y.tokens),p=y.offset}if(x.pop)break t;break}}if(!E)break}return{tokens:A,offset:p,complete:s.length<=p}}}function pn(t,e){return{...t,regex:gn(t,e)}}function gn(t,e){if(t.name.length===0)throw new Error(`Rule #${e} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(t))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(t.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(t)){if(t.str.length===0)throw new Error(`Rule #${e} ("${t.name}") has empty "str" property, which is not allowed.`);return new RegExp(oi(t.str),"y")}return new RegExp(oi(t.name),"y")}function oi(t){return t.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function tt(t,e){return(u,i)=>{let r=i,n;return i<u.tokens.length?(n=t(u.tokens[i],u,i),n!==void 0&&r++):e?.(u,i),n===void 0?{matched:!1}:{matched:!0,position:r,value:n}}}function ve(t,e){return t.matched?{matched:!0,position:t.position,value:e(t.value,t.position)}:t}function qt(t,e){return t.matched?e(t):t}function O(t,e){return(u,i)=>ve(t(u,i),(r,n)=>e(r,u,i,n))}function Ot(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:{matched:!0,position:i,value:e}}}function Ht(...t){return(e,u)=>{for(let i of t){let r=i(e,u);if(r.matched)return r}return{matched:!1}}}function st(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:e(u,i)}}function fn(t,e){return(u,i)=>{let r=[],n=!0;do{let a=t(u,i);a.matched&&e(a.value,r.length+1,u,i,a.position)?(r.push(a.value),i=a.position):n=!1}while(n);return{matched:!0,position:i,value:r}}}function ke(t){return fn(t,()=>!0)}function mn(t){return U(t,ke(t),(e,u)=>[e,...u])}function U(t,e,u){return(i,r)=>qt(t(i,r),n=>ve(e(i,n.position),(a,s)=>u(n.value,a,i,r,s)))}function xn(t,e){return U(t,e,u=>u)}function ci(t,e){return U(t,e,(u,i)=>i)}function Se(t,e,u,i){return(r,n)=>qt(t(r,n),a=>qt(e(r,a.position),s=>ve(u(r,s.position),(o,l)=>i(a.value,s.value,o,r,n,l))))}function Zi(t,e,u){return Se(t,e,u,(i,r)=>r)}function An(...t){return(e,u)=>{let i=[],r=u;for(let n of t){let a=n(e,r);if(a.matched)i.push(a.value),r=a.position;else return{matched:!1}}return{matched:!0,position:r,value:i}}}function En(...t){return Bn(An(...t))}function Bn(t){return O(t,e=>e.flatMap(u=>u))}function Cn(t,e){return(u,i)=>{let r=!0,n=t,a=i;do{let s=e(n,u,a)(u,a);s.matched?(n=s.value,a=s.position):r=!1}while(r);return{matched:!0,position:a,value:n}}}function Dn(t,e,u){return Cn(t,i=>O(e,(r,n,a,s)=>u(i,r,n,a,s)))}function Qi(t,e,u){return bn(t,i=>Dn(i,U(e,u,(r,n)=>[r,n]),(r,[n,a])=>n(r,a)))}function bn(t,e){return(u,i)=>qt(t(u,i),r=>e(r.value,u,i,r.position)(u,r.position))}var wn="(?:[ \\t\\r\\n\\f]*)",Xi="(?:\\n|\\r\\n|\\r|\\f)",jt="[^\\x00-\\x7F]",Ct="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Dt="(?:\\\\[^\\n\\r\\f0-9a-f])",yn=`(?:[_a-z]|${jt}|${Ct}|${Dt})`,tr=`(?:[_a-z0-9-]|${jt}|${Ct}|${Dt})`,Fn=`(?:${tr}+)`,vn=`(?:[-]?${yn}${tr}*)`,kn=`'([^\\n\\r\\f\\\\']|\\\\${Xi}|${jt}|${Ct}|${Dt})*'`,Sn=`"([^\\n\\r\\f\\\\"]|\\\\${Xi}|${jt}|${Ct}|${Dt})*"`,Tn=Yi([{name:"ws",regex:new RegExp(wn)},{name:"hash",regex:new RegExp(`#${Fn}`,"i")},{name:"ident",regex:new RegExp(vn,"i")},{name:"str1",regex:new RegExp(kn,"i")},{name:"str2",regex:new RegExp(Sn,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),_n=Yi([{name:"unicode",regex:new RegExp(Ct,"i")},{name:"escape",regex:new RegExp(Dt,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function er([t,e,u],[i,r,n]){return[t+i,e+r,u+n]}function In(t){return t.reduce(er,[0,0,0])}var Ln=tt(t=>t.name==="unicode"?String.fromCodePoint(parseInt(t.text.slice(1),16)):void 0),Nn=tt(t=>t.name==="escape"?t.text.slice(1):void 0),$n=tt(t=>t.name==="any"?t.text:void 0),Pn=O(ke(Ht(Ln,Nn,$n)),t=>t.join(""));function Te(t){let e=_n(t);return Pn({tokens:e.tokens,options:void 0},0).value}function N(t){return tt(e=>e.name===t?!0:void 0)}var _e=tt(t=>t.name==="ws"?null:void 0),xe=Ot(_e,null);function pt(t){return Zi(xe,t,xe)}var Et=tt(t=>t.name==="ident"?Te(t.text):void 0),Rn=tt(t=>t.name==="hash"?Te(t.text.slice(1)):void 0),qn=tt(t=>t.name.startsWith("str")?Te(t.text.slice(1,-1)):void 0),ur=xn(Ot(Et,""),N("|")),Ie=st(U(ur,Et,(t,e)=>({name:e,namespace:t})),O(Et,t=>({name:t,namespace:null}))),On=st(U(ur,N("*"),t=>({type:"universal",namespace:t,specificity:[0,0,0]})),O(N("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Mn=O(Ie,({name:t,namespace:e})=>({type:"tag",name:t,namespace:e,specificity:[0,0,1]})),Un=U(N("."),Et,(t,e)=>({type:"class",name:e,specificity:[0,1,0]})),Hn=O(Rn,t=>({type:"id",name:t,specificity:[1,0,0]})),li=tt(t=>{if(t.name==="ident"){if(t.text==="i"||t.text==="I")return"i";if(t.text==="s"||t.text==="S")return"s"}}),jn=st(U(qn,Ot(ci(xe,li),null),(t,e)=>({value:t,modifier:e})),U(Et,Ot(ci(_e,li),null),(t,e)=>({value:t,modifier:e}))),Vn=Ht(O(N("="),()=>"="),U(N("~"),N("="),()=>"~="),U(N("|"),N("="),()=>"|="),U(N("^"),N("="),()=>"^="),U(N("$"),N("="),()=>"$="),U(N("*"),N("="),()=>"*=")),Wn=Se(N("["),pt(Ie),N("]"),(t,{name:e,namespace:u})=>({type:"attrPresence",name:e,namespace:u,specificity:[0,1,0]})),Gn=Zi(N("["),Se(pt(Ie),Vn,pt(jn),({name:t,namespace:e},u,{value:i,modifier:r})=>({type:"attrValue",name:t,namespace:e,matcher:u,value:i,modifier:r,specificity:[0,1,0]})),N("]")),zn=st(Wn,Gn),Kn=st(On,Mn),hi=Ht(Hn,Un,zn),di=O(st(En(Kn,ke(hi)),mn(hi)),t=>({type:"compound",list:t,specificity:In(t.map(e=>e.specificity))})),Jn=Ht(O(N(">"),()=>">"),O(N("+"),()=>"+"),O(N("~"),()=>"~"),U(N("|"),N("|"),()=>"||")),Yn=st(pt(Jn),O(_e,()=>" ")),Ae=Qi(di,O(Yn,t=>(e,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:t,left:e,specificity:e.specificity}],specificity:er(e.specificity,u.specificity)})),di),C0=Qi(O(Ae,t=>({type:"list",list:[t]})),O(pt(N(",")),()=>(t,e)=>({type:"list",list:[...t.list,e]})),Ae);function Zn(t,e){if(!(typeof e=="string"||e instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Tn(e);if(!u.complete)throw new Error(`The input "${e}" was only partially tokenized, stopped at offset ${u.offset}!
|
|
6
|
+
`+pi(e,u.offset));let i=pt(t)({tokens:u.tokens,options:void 0},0);if(!i.matched)throw new Error(`No match for "${e}" input!`);if(i.position<u.tokens.length){let r=u.tokens[i.position];throw new Error(`The input "${e}" was only partially parsed, stopped at offset ${r.offset}!
|
|
7
|
+
`+pi(e,r.offset,r.len))}return i.value}function pi(t,e,u=1){return`${t.replace(/(\t)|(\r)|(\n)/g,(i,r,n)=>r?"\u2409":n?"\u240D":"\u240A")}
|
|
8
|
+
${"".padEnd(e)}${"^".repeat(u)}`}function Qn(t){return Zn(Ae,t)}function K(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"universal":return kt(t.namespace)+"*";case"tag":return kt(t.namespace)+dt(t.name);case"class":return"."+dt(t.name);case"id":return"#"+dt(t.name);case"attrPresence":return`[${kt(t.namespace)}${dt(t.name)}]`;case"attrValue":return`[${kt(t.namespace)}${dt(t.name)}${t.matcher}"${Xn(t.value)}"${t.modifier?t.modifier:""}]`;case"combinator":return K(t.left)+t.combinator;case"compound":return t.list.reduce((e,u)=>u.type==="combinator"?K(u)+e:e+K(u),"");case"list":return t.list.map(K).join(",")}}function kt(t){return t||t===""?dt(t)+"|":""}function $t(t){return`\\${t.codePointAt(0).toString(16)} `}function dt(t){return t.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,(e,u,i,r,n,a,s,o)=>u?$t(u):i?"-"+$t(i.slice(1)):r?"\\-":n||(a?"\uFFFD":s?$t(s):"\\"+o))}function Xn(t){return t.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(e,u,i,r,n)=>u?'\\"':i?"\\\\":r?"\uFFFD":$t(n))}function Pt(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"compound":{t.list.forEach(Pt),t.list.sort((e,u)=>rr(gi(e),gi(u)));break}case"combinator":{Pt(t.left);break}case"list":{t.list.forEach(Pt),t.list.sort((e,u)=>K(e)<K(u)?-1:1);break}}return t}function gi(t){switch(t.type){case"universal":return[1];case"tag":return[1];case"id":return[2];case"class":return[3,t.name];case"attrPresence":return[4,K(t)];case"attrValue":return[5,K(t)];case"combinator":return[15,K(t)]}}function ir(t,e){return rr(t,e)}function rr(t,e){if(!Array.isArray(t)||!Array.isArray(e))throw new Error("Arguments must be arrays.");let u=t.length<e.length?t.length:e.length;for(let i=0;i<u;i++)if(t[i]!==e[i])return t[i]<e[i]?-1:1;return t.length-e.length}var fi=class{constructor(t){this.branches=gt(ta(t))}build(t){return t(this.branches)}};function ta(t){let e=t.length,u=new Array(e);for(let i=0;i<e;i++){let[r,n]=t[i],a=ea(Qn(r));u[i]={ast:a,terminal:{type:"terminal",valueContainer:{index:i,value:n,specificity:a.specificity}}}}return u}function ea(t){return nr(t),Pt(t),t}function nr(t){let e=[];t.list.forEach(u=>{switch(u.type){case"class":e.push({matcher:"~=",modifier:null,name:"class",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"id":e.push({matcher:"=",modifier:null,name:"id",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"combinator":nr(u.left),e.push(u);break;case"universal":break;default:e.push(u);break}}),t.list=e}function gt(t){let e=[];for(;t.length;){let u=or(t,a=>!0,ar),{matches:i,nonmatches:r,empty:n}=ia(t,u);t=r,i.length&&e.push(ra(u,i)),n.length&&e.push(...ua(n))}return e}function ua(t){let e=[];for(let u of t){let i=u.terminal;if(i.type==="terminal")e.push(i);else{let{matches:r,rest:n}=ca(i.cont,a=>a.type==="terminal");r.forEach(a=>e.push(a)),n.length&&(i.cont=n,e.push(i))}}return e}function ia(t,e){let u=[],i=[],r=[];for(let n of t){let a=n.ast.list;a.length?(a.some(s=>ar(s)===e)?u:i).push(n):r.push(n)}return{matches:u,nonmatches:i,empty:r}}function ar(t){switch(t.type){case"attrPresence":return`attrPresence ${t.name}`;case"attrValue":return`attrValue ${t.name}`;case"combinator":return`combinator ${t.combinator}`;default:return t.type}}function ra(t,e){if(t==="tag")return na(e);if(t.startsWith("attrValue "))return sa(t.substring(10),e);if(t.startsWith("attrPresence "))return aa(t.substring(13),e);if(t==="combinator >")return mi(">",e);if(t==="combinator +")return mi("+",e);throw new Error(`Unsupported selector kind: ${t}`)}function na(t){let e=Le(t,u=>u.type==="tag",u=>u.name);return{type:"tagName",variants:Object.entries(e).map(([u,i])=>({type:"variant",value:u,cont:gt(i.items)}))}}function aa(t,e){for(let u of e)sr(u,i=>i.type==="attrPresence"&&i.name===t);return{type:"attrPresence",name:t,cont:gt(e)}}function sa(t,e){let u=Le(e,r=>r.type==="attrValue"&&r.name===t,r=>`${r.matcher} ${r.modifier||""} ${r.value}`),i=[];for(let r of Object.values(u)){let n=r.oneSimpleSelector,a=oa(n),s=gt(r.items);i.push({type:"matcher",matcher:n.matcher,modifier:n.modifier,value:n.value,predicate:a,cont:s})}return{type:"attrValue",name:t,matchers:i}}function oa(t){if(t.modifier==="i"){let e=t.value.toLowerCase();switch(t.matcher){case"=":return u=>e===u.toLowerCase();case"~=":return u=>u.toLowerCase().split(/[ \t]+/).includes(e);case"^=":return u=>u.toLowerCase().startsWith(e);case"$=":return u=>u.toLowerCase().endsWith(e);case"*=":return u=>u.toLowerCase().includes(e);case"|=":return u=>{let i=u.toLowerCase();return e===i||i.startsWith(e)&&i[e.length]==="-"}}}else{let e=t.value;switch(t.matcher){case"=":return u=>e===u;case"~=":return u=>u.split(/[ \t]+/).includes(e);case"^=":return u=>u.startsWith(e);case"$=":return u=>u.endsWith(e);case"*=":return u=>u.includes(e);case"|=":return u=>e===u||u.startsWith(e)&&u[e.length]==="-"}}}function mi(t,e){let u=Le(e,r=>r.type==="combinator"&&r.combinator===t,r=>K(r.left)),i=[];for(let r of Object.values(u)){let n=gt(r.items),a=r.oneSimpleSelector.left;i.push({ast:a,terminal:{type:"popElement",cont:n}})}return{type:"pushElement",combinator:t,cont:gt(i)}}function Le(t,e,u){let i={};for(;t.length;){let r=or(t,e,u),n=p=>e(p)&&u(p)===r,a=p=>p.ast.list.some(n),{matches:s,rest:o}=la(t,a),l=null;for(let p of s){let A=sr(p,n);l||(l=A)}if(l==null)throw new Error("No simple selector is found.");i[r]={oneSimpleSelector:l,items:s},t=o}return i}function sr(t,e){let u=t.ast.list,i=new Array(u.length),r=-1;for(let a=u.length;a-- >0;)e(u[a])&&(i[a]=!0,r=a);if(r==-1)throw new Error("Couldn't find the required simple selector.");let n=u[r];return t.ast.list=u.filter((a,s)=>!i[s]),n}function or(t,e,u){let i={};for(let a of t){let s={};for(let o of a.ast.list.filter(e))s[u(o)]=!0;for(let o of Object.keys(s))i[o]?i[o]++:i[o]=1}let r="",n=0;for(let a of Object.entries(i))a[1]>n&&(r=a[0],n=a[1]);return r}function ca(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}function la(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}var ha=class{constructor(t){this.f=t}pickAll(t){return this.f(t)}pick1(t,e=!1){let u=this.f(t),i=u.length;if(i===0)return null;if(i===1)return u[0].value;let r=e?da:pa,n=u[0];for(let a=1;a<i;a++){let s=u[a];r(n,s)&&(n=s)}return n.value}};function da(t,e){let u=ir(e.specificity,t.specificity);return u>0||u===0&&e.index<t.index}function pa(t,e){let u=ir(e.specificity,t.specificity);return u>0||u===0&&e.index>t.index}function xi(t){return new ha(mt(t))}function mt(t){let e=t.map(ga);return(u,...i)=>e.flatMap(r=>r(u,...i))}function ga(t){switch(t.type){case"terminal":{let e=[t.valueContainer];return(u,...i)=>e}case"tagName":return fa(t);case"attrValue":return xa(t);case"attrPresence":return ma(t);case"pushElement":return Aa(t);case"popElement":return Ba(t)}}function fa(t){let e={};for(let u of t.variants)e[u.value]=mt(u.cont);return(u,...i)=>{let r=e[u.name];return r?r(u,...i):[]}}function ma(t){let e=t.name,u=mt(t.cont);return(i,...r)=>Object.prototype.hasOwnProperty.call(i.attribs,e)?u(i,...r):[]}function xa(t){let e=[];for(let i of t.matchers){let r=i.predicate,n=mt(i.cont);e.push((a,s,...o)=>r(a)?n(s,...o):[])}let u=t.name;return(i,...r)=>{let n=i.attribs[u];return n||n===""?e.flatMap(a=>a(n,i,...r)):[]}}function Aa(t){let e=mt(t.cont),u=t.combinator==="+"?cr:Ea;return(i,...r)=>{let n=u(i);return n===null?[]:e(n,i,...r)}}var cr=t=>{let e=t.prev;return e===null?null:Fe(e)?e:cr(e)},Ea=t=>{let e=t.parent;return e&&Fe(e)?e:null};function Ba(t){let e=mt(t.cont);return(u,i,...r)=>e(i,...r)}var lr=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(t=>t.charCodeAt(0))),hr=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(t=>t.charCodeAt(0))),de,Ca=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Ee=(de=String.fromCodePoint)!==null&&de!==void 0?de:function(t){let e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|t&1023),e+=String.fromCharCode(t),e};function dr(t){var e;return t>=55296&&t<=57343||t>1114111?65533:(e=Ca.get(t))!==null&&e!==void 0?e:t}var q;(function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"})(q||(q={}));var Da=32,W;(function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"})(W||(W={}));function Be(t){return t>=q.ZERO&&t<=q.NINE}function ba(t){return t>=q.UPPER_A&&t<=q.UPPER_F||t>=q.LOWER_A&&t<=q.LOWER_F}function wa(t){return t>=q.UPPER_A&&t<=q.UPPER_Z||t>=q.LOWER_A&&t<=q.LOWER_Z||Be(t)}function ya(t){return t===q.EQUALS||wa(t)}var P;(function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"})(P||(P={}));var rt;(function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"})(rt||(rt={}));var Fa=class{constructor(t,e,u){this.decodeTree=t,this.emitCodePoint=e,this.errors=u,this.state=P.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=rt.Strict}startEntity(t){this.decodeMode=t,this.state=P.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,e){switch(this.state){case P.EntityStart:return t.charCodeAt(e)===q.NUM?(this.state=P.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=P.NamedEntity,this.stateNamedEntity(t,e));case P.NumericStart:return this.stateNumericStart(t,e);case P.NumericDecimal:return this.stateNumericDecimal(t,e);case P.NumericHex:return this.stateNumericHex(t,e);case P.NamedEntity:return this.stateNamedEntity(t,e)}}stateNumericStart(t,e){return e>=t.length?-1:(t.charCodeAt(e)|Da)===q.LOWER_X?(this.state=P.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=P.NumericDecimal,this.stateNumericDecimal(t,e))}addToNumericResult(t,e,u,i){if(e!==u){let r=u-e;this.result=this.result*Math.pow(i,r)+parseInt(t.substr(e,r),i),this.consumed+=r}}stateNumericHex(t,e){let u=e;for(;e<t.length;){let i=t.charCodeAt(e);if(Be(i)||ba(i))e+=1;else return this.addToNumericResult(t,u,e,16),this.emitNumericEntity(i,3)}return this.addToNumericResult(t,u,e,16),-1}stateNumericDecimal(t,e){let u=e;for(;e<t.length;){let i=t.charCodeAt(e);if(Be(i))e+=1;else return this.addToNumericResult(t,u,e,10),this.emitNumericEntity(i,2)}return this.addToNumericResult(t,u,e,10),-1}emitNumericEntity(t,e){var u;if(this.consumed<=e)return(u=this.errors)===null||u===void 0||u.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===q.SEMI)this.consumed+=1;else if(this.decodeMode===rt.Strict)return 0;return this.emitCodePoint(dr(this.result),this.consumed),this.errors&&(t!==q.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,e){let{decodeTree:u}=this,i=u[this.treeIndex],r=(i&W.VALUE_LENGTH)>>14;for(;e<t.length;e++,this.excess++){let n=t.charCodeAt(e);if(this.treeIndex=gr(u,i,this.treeIndex+Math.max(1,r),n),this.treeIndex<0)return this.result===0||this.decodeMode===rt.Attribute&&(r===0||ya(n))?0:this.emitNotTerminatedNamedEntity();if(i=u[this.treeIndex],r=(i&W.VALUE_LENGTH)>>14,r!==0){if(n===q.SEMI)return this.emitNamedEntityData(this.treeIndex,r,this.consumed+this.excess);this.decodeMode!==rt.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;let{result:e,decodeTree:u}=this,i=(u[e]&W.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,e,u){let{decodeTree:i}=this;return this.emitCodePoint(e===1?i[t]&~W.VALUE_LENGTH:i[t+1],u),e===3&&this.emitCodePoint(i[t+2],u),u}end(){var t;switch(this.state){case P.NamedEntity:return this.result!==0&&(this.decodeMode!==rt.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case P.NumericDecimal:return this.emitNumericEntity(0,2);case P.NumericHex:return this.emitNumericEntity(0,3);case P.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case P.EntityStart:return 0}}};function pr(t){let e="",u=new Fa(t,i=>e+=Ee(i));return function(i,r){let n=0,a=0;for(;(a=i.indexOf("&",a))>=0;){e+=i.slice(n,a),u.startEntity(r);let o=u.write(i,a+1);if(o<0){n=a+u.end();break}n=a+o,a=o===0?n+1:n}let s=e+i.slice(n);return e="",s}}function gr(t,e,u,i){let r=(e&W.BRANCH_LENGTH)>>7,n=e&W.JUMP_TABLE;if(r===0)return n!==0&&i===n?u:-1;if(n){let o=i-n;return o<0||o>=r?-1:t[u+o]-1}let a=u,s=a+r-1;for(;a<=s;){let o=a+s>>>1,l=t[o];if(l<i)a=o+1;else if(l>i)s=o-1;else return t[o+r]}return-1}var D0=pr(lr),b0=pr(hr),C;(function(t){t[t.Tab=9]="Tab",t[t.NewLine=10]="NewLine",t[t.FormFeed=12]="FormFeed",t[t.CarriageReturn=13]="CarriageReturn",t[t.Space=32]="Space",t[t.ExclamationMark=33]="ExclamationMark",t[t.Number=35]="Number",t[t.Amp=38]="Amp",t[t.SingleQuote=39]="SingleQuote",t[t.DoubleQuote=34]="DoubleQuote",t[t.Dash=45]="Dash",t[t.Slash=47]="Slash",t[t.Zero=48]="Zero",t[t.Nine=57]="Nine",t[t.Semi=59]="Semi",t[t.Lt=60]="Lt",t[t.Eq=61]="Eq",t[t.Gt=62]="Gt",t[t.Questionmark=63]="Questionmark",t[t.UpperA=65]="UpperA",t[t.LowerA=97]="LowerA",t[t.UpperF=70]="UpperF",t[t.LowerF=102]="LowerF",t[t.UpperZ=90]="UpperZ",t[t.LowerZ=122]="LowerZ",t[t.LowerX=120]="LowerX",t[t.OpeningSquareBracket=91]="OpeningSquareBracket"})(C||(C={}));var g;(function(t){t[t.Text=1]="Text",t[t.BeforeTagName=2]="BeforeTagName",t[t.InTagName=3]="InTagName",t[t.InSelfClosingTag=4]="InSelfClosingTag",t[t.BeforeClosingTagName=5]="BeforeClosingTagName",t[t.InClosingTagName=6]="InClosingTagName",t[t.AfterClosingTagName=7]="AfterClosingTagName",t[t.BeforeAttributeName=8]="BeforeAttributeName",t[t.InAttributeName=9]="InAttributeName",t[t.AfterAttributeName=10]="AfterAttributeName",t[t.BeforeAttributeValue=11]="BeforeAttributeValue",t[t.InAttributeValueDq=12]="InAttributeValueDq",t[t.InAttributeValueSq=13]="InAttributeValueSq",t[t.InAttributeValueNq=14]="InAttributeValueNq",t[t.BeforeDeclaration=15]="BeforeDeclaration",t[t.InDeclaration=16]="InDeclaration",t[t.InProcessingInstruction=17]="InProcessingInstruction",t[t.BeforeComment=18]="BeforeComment",t[t.CDATASequence=19]="CDATASequence",t[t.InSpecialComment=20]="InSpecialComment",t[t.InCommentLike=21]="InCommentLike",t[t.BeforeSpecialS=22]="BeforeSpecialS",t[t.SpecialStartSequence=23]="SpecialStartSequence",t[t.InSpecialTag=24]="InSpecialTag",t[t.BeforeEntity=25]="BeforeEntity",t[t.BeforeNumericEntity=26]="BeforeNumericEntity",t[t.InNamedEntity=27]="InNamedEntity",t[t.InNumericEntity=28]="InNumericEntity",t[t.InHexEntity=29]="InHexEntity"})(g||(g={}));function X(t){return t===C.Space||t===C.NewLine||t===C.Tab||t===C.FormFeed||t===C.CarriageReturn}function St(t){return t===C.Slash||t===C.Gt||X(t)}function Ai(t){return t>=C.Zero&&t<=C.Nine}function va(t){return t>=C.LowerA&&t<=C.LowerZ||t>=C.UpperA&&t<=C.UpperZ}function ka(t){return t>=C.UpperA&&t<=C.UpperF||t>=C.LowerA&&t<=C.LowerF}var z;(function(t){t[t.NoValue=0]="NoValue",t[t.Unquoted=1]="Unquoted",t[t.Single=2]="Single",t[t.Double=3]="Double"})(z||(z={}));var j={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},Sa=class{constructor({xmlMode:t=!1,decodeEntities:e=!0},u){this.cbs=u,this.state=g.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=g.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=t,this.decodeEntities=e,this.entityTrie=t?hr:lr}reset(){this.state=g.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=g.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}getIndex(){return this.index}getSectionStart(){return this.sectionStart}stateText(t){t===C.Lt||!this.decodeEntities&&this.fastForwardTo(C.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=g.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===C.Amp&&(this.state=g.BeforeEntity)}stateSpecialStartSequence(t){let e=this.sequenceIndex===this.currentSequence.length;if(!(e?St(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!e){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=g.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===C.Gt||X(t)){let e=this.index-this.currentSequence.length;if(this.sectionStart<e){let u=this.index;this.index=e,this.cbs.ontext(this.sectionStart,e),this.index=u}this.isSpecial=!1,this.sectionStart=e+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===j.TitleEnd?this.decodeEntities&&t===C.Amp&&(this.state=g.BeforeEntity):this.fastForwardTo(C.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===C.Lt)}stateCDATASequence(t){t===j.Cdata[this.sequenceIndex]?++this.sequenceIndex===j.Cdata.length&&(this.state=g.InCommentLike,this.currentSequence=j.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=g.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=g.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!St(t):va(t)}startSpecial(t,e){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=e,this.state=g.SpecialStartSequence}stateBeforeTagName(t){if(t===C.ExclamationMark)this.state=g.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===C.Questionmark)this.state=g.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){let e=t|32;this.sectionStart=this.index,!this.xmlMode&&e===j.TitleEnd[2]?this.startSpecial(j.TitleEnd,3):this.state=!this.xmlMode&&e===j.ScriptEnd[2]?g.BeforeSpecialS:g.InTagName}else t===C.Slash?this.state=g.BeforeClosingTagName:(this.state=g.Text,this.stateText(t))}stateInTagName(t){St(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){X(t)||(t===C.Gt?this.state=g.Text:(this.state=this.isTagStartChar(t)?g.InClosingTagName:g.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===C.Gt||X(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.state=g.Text,this.baseState=g.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===C.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=g.InSpecialTag,this.sequenceIndex=0):this.state=g.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===C.Slash?this.state=g.InSelfClosingTag:X(t)||(this.state=g.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===C.Gt?(this.cbs.onselfclosingtag(this.index),this.state=g.Text,this.baseState=g.Text,this.sectionStart=this.index+1,this.isSpecial=!1):X(t)||(this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===C.Eq||St(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===C.Eq?this.state=g.BeforeAttributeValue:t===C.Slash||t===C.Gt?(this.cbs.onattribend(z.NoValue,this.index),this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t)):X(t)||(this.cbs.onattribend(z.NoValue,this.index),this.state=g.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===C.DoubleQuote?(this.state=g.InAttributeValueDq,this.sectionStart=this.index+1):t===C.SingleQuote?(this.state=g.InAttributeValueSq,this.sectionStart=this.index+1):X(t)||(this.sectionStart=this.index,this.state=g.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,e){t===e||!this.decodeEntities&&this.fastForwardTo(e)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(e===C.DoubleQuote?z.Double:z.Single,this.index),this.state=g.BeforeAttributeName):this.decodeEntities&&t===C.Amp&&(this.baseState=this.state,this.state=g.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,C.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,C.SingleQuote)}stateInAttributeValueNoQuotes(t){X(t)||t===C.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(z.Unquoted,this.index),this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===C.Amp&&(this.baseState=this.state,this.state=g.BeforeEntity)}stateBeforeDeclaration(t){t===C.OpeningSquareBracket?(this.state=g.CDATASequence,this.sequenceIndex=0):this.state=t===C.Dash?g.BeforeComment:g.InDeclaration}stateInDeclaration(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=g.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=g.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===C.Dash?(this.state=g.InCommentLike,this.currentSequence=j.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=g.InDeclaration}stateInSpecialComment(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=g.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){let e=t|32;e===j.ScriptEnd[3]?this.startSpecial(j.ScriptEnd,4):e===j.StyleEnd[3]?this.startSpecial(j.StyleEnd,4):(this.state=g.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===C.Number?this.state=g.BeforeNumericEntity:t===C.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=g.InNamedEntity,this.stateInNamedEntity(t))}stateInNamedEntity(t){if(this.entityExcess+=1,this.trieIndex=gr(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0){this.emitNamedEntity(),this.index--;return}this.trieCurrent=this.entityTrie[this.trieIndex];let e=this.trieCurrent&W.VALUE_LENGTH;if(e){let u=(e>>14)-1;if(!this.allowLegacyEntity()&&t!==C.Semi)this.trieIndex+=u;else{let i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=u,this.entityExcess=0,this.sectionStart=this.index+1,u===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult!==0)switch((this.entityTrie[this.entityResult]&W.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~W.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(t){(t|32)===C.LowerX?(this.entityExcess++,this.state=g.InHexEntity):(this.state=g.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let e=this.index-this.entityExcess-1;e+2+ +(this.state===g.InHexEntity)!==this.index&&(e>this.sectionStart&&this.emitPartial(this.sectionStart,e),this.sectionStart=this.index+Number(t),this.emitCodePoint(dr(this.entityResult))),this.state=this.baseState}stateInNumericEntity(t){t===C.Semi?this.emitNumericEntity(!0):Ai(t)?(this.entityResult=this.entityResult*10+(t-C.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===C.Semi?this.emitNumericEntity(!0):Ai(t)?(this.entityResult=this.entityResult*16+(t-C.Zero),this.entityExcess++):ka(t)?(this.entityResult=this.entityResult*16+((t|32)-C.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===g.Text||this.baseState===g.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===g.Text||this.state===g.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===g.InAttributeValueDq||this.state===g.InAttributeValueSq||this.state===g.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case g.Text:{this.stateText(t);break}case g.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case g.InSpecialTag:{this.stateInSpecialTag(t);break}case g.CDATASequence:{this.stateCDATASequence(t);break}case g.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case g.InAttributeName:{this.stateInAttributeName(t);break}case g.InCommentLike:{this.stateInCommentLike(t);break}case g.InSpecialComment:{this.stateInSpecialComment(t);break}case g.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case g.InTagName:{this.stateInTagName(t);break}case g.InClosingTagName:{this.stateInClosingTagName(t);break}case g.BeforeTagName:{this.stateBeforeTagName(t);break}case g.AfterAttributeName:{this.stateAfterAttributeName(t);break}case g.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case g.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case g.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case g.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case g.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case g.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case g.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case g.InDeclaration:{this.stateInDeclaration(t);break}case g.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case g.BeforeComment:{this.stateBeforeComment(t);break}case g.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case g.InNamedEntity:{this.stateInNamedEntity(t);break}case g.BeforeEntity:{this.stateBeforeEntity(t);break}case g.InHexEntity:{this.stateInHexEntity(t);break}case g.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===g.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===g.InCommentLike?this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===g.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===g.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===g.InTagName||this.state===g.BeforeAttributeName||this.state===g.BeforeAttributeValue||this.state===g.AfterAttributeName||this.state===g.InAttributeName||this.state===g.InAttributeValueSq||this.state===g.InAttributeValueDq||this.state===g.InAttributeValueNq||this.state===g.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,e){this.baseState!==g.Text&&this.baseState!==g.InSpecialTag?this.cbs.onattribdata(t,e):this.cbs.ontext(t,e)}emitCodePoint(t){this.baseState!==g.Text&&this.baseState!==g.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}},ht=new Set(["input","option","optgroup","select","button","datalist","textarea"]),_=new Set(["p"]),Ei=new Set(["thead","tbody"]),Bi=new Set(["dd","dt"]),Ci=new Set(["rt","rp"]),Ta=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",_],["h1",_],["h2",_],["h3",_],["h4",_],["h5",_],["h6",_],["select",ht],["input",ht],["output",ht],["button",ht],["datalist",ht],["textarea",ht],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Bi],["dt",Bi],["address",_],["article",_],["aside",_],["blockquote",_],["details",_],["div",_],["dl",_],["fieldset",_],["figcaption",_],["figure",_],["footer",_],["form",_],["header",_],["hr",_],["main",_],["nav",_],["ol",_],["pre",_],["section",_],["table",_],["ul",_],["rt",Ci],["rp",Ci],["tbody",Ei],["tfoot",Ei]]),_a=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Di=new Set(["math","svg"]),bi=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Ia=/\s|\//,La=class{constructor(t,e={}){var u,i,r,n,a;this.options=e,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(u=e.lowerCaseTags)!==null&&u!==void 0?u:!e.xmlMode,this.lowerCaseAttributeNames=(i=e.lowerCaseAttributeNames)!==null&&i!==void 0?i:!e.xmlMode,this.tokenizer=new((r=e.Tokenizer)!==null&&r!==void 0?r:Sa)(this.options,this),(a=(n=this.cbs).onparserinit)===null||a===void 0||a.call(n,this)}ontext(t,e){var u,i;let r=this.getSlice(t,e);this.endIndex=e-1,(i=(u=this.cbs).ontext)===null||i===void 0||i.call(u,r),this.startIndex=e}ontextentity(t){var e,u;let i=this.tokenizer.getSectionStart();this.endIndex=i-1,(u=(e=this.cbs).ontext)===null||u===void 0||u.call(e,Ee(t)),this.startIndex=i}isVoidElement(t){return!this.options.xmlMode&&_a.has(t)}onopentagname(t,e){this.endIndex=e;let u=this.getSlice(t,e);this.lowerCaseTagNames&&(u=u.toLowerCase()),this.emitOpenTag(u)}emitOpenTag(t){var e,u,i,r;this.openTagStart=this.startIndex,this.tagname=t;let n=!this.options.xmlMode&&Ta.get(t);if(n)for(;this.stack.length>0&&n.has(this.stack[this.stack.length-1]);){let a=this.stack.pop();(u=(e=this.cbs).onclosetag)===null||u===void 0||u.call(e,a,!0)}this.isVoidElement(t)||(this.stack.push(t),Di.has(t)?this.foreignContext.push(!0):bi.has(t)&&this.foreignContext.push(!1)),(r=(i=this.cbs).onopentagname)===null||r===void 0||r.call(i,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var e,u;this.startIndex=this.openTagStart,this.attribs&&((u=(e=this.cbs).onopentag)===null||u===void 0||u.call(e,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,e){var u,i,r,n,a,s;this.endIndex=e;let o=this.getSlice(t,e);if(this.lowerCaseTagNames&&(o=o.toLowerCase()),(Di.has(o)||bi.has(o))&&this.foreignContext.pop(),this.isVoidElement(o))!this.options.xmlMode&&o==="br"&&((i=(u=this.cbs).onopentagname)===null||i===void 0||i.call(u,"br"),(n=(r=this.cbs).onopentag)===null||n===void 0||n.call(r,"br",{},!0),(s=(a=this.cbs).onclosetag)===null||s===void 0||s.call(a,"br",!1));else{let l=this.stack.lastIndexOf(o);if(l!==-1)if(this.cbs.onclosetag){let p=this.stack.length-l;for(;p--;)this.cbs.onclosetag(this.stack.pop(),p!==0)}else this.stack.length=l;else!this.options.xmlMode&&o==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=e+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var e,u;let i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&((u=(e=this.cbs).onclosetag)===null||u===void 0||u.call(e,i,!t),this.stack.pop())}onattribname(t,e){this.startIndex=t;let u=this.getSlice(t,e);this.attribname=this.lowerCaseAttributeNames?u.toLowerCase():u}onattribdata(t,e){this.attribvalue+=this.getSlice(t,e)}onattribentity(t){this.attribvalue+=Ee(t)}onattribend(t,e){var u,i;this.endIndex=e,(i=(u=this.cbs).onattribute)===null||i===void 0||i.call(u,this.attribname,this.attribvalue,t===z.Double?'"':t===z.Single?"'":t===z.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){let e=t.search(Ia),u=e<0?t:t.substr(0,e);return this.lowerCaseTagNames&&(u=u.toLowerCase()),u}ondeclaration(t,e){this.endIndex=e;let u=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(u);this.cbs.onprocessinginstruction(`!${i}`,`!${u}`)}this.startIndex=e+1}onprocessinginstruction(t,e){this.endIndex=e;let u=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(u);this.cbs.onprocessinginstruction(`?${i}`,`?${u}`)}this.startIndex=e+1}oncomment(t,e,u){var i,r,n,a;this.endIndex=e,(r=(i=this.cbs).oncomment)===null||r===void 0||r.call(i,this.getSlice(t,e-u)),(a=(n=this.cbs).oncommentend)===null||a===void 0||a.call(n),this.startIndex=e+1}oncdata(t,e,u){var i,r,n,a,s,o,l,p,A,E;this.endIndex=e;let x=this.getSlice(t,e-u);this.options.xmlMode||this.options.recognizeCDATA?((r=(i=this.cbs).oncdatastart)===null||r===void 0||r.call(i),(a=(n=this.cbs).ontext)===null||a===void 0||a.call(n,x),(o=(s=this.cbs).oncdataend)===null||o===void 0||o.call(s)):((p=(l=this.cbs).oncomment)===null||p===void 0||p.call(l,`[CDATA[${x}]]`),(E=(A=this.cbs).oncommentend)===null||E===void 0||E.call(A)),this.startIndex=e+1}onend(){var t,e;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let u=this.stack.length;u>0;this.cbs.onclosetag(this.stack[--u],!0));}(e=(t=this.cbs).onend)===null||e===void 0||e.call(t)}reset(){var t,e,u,i;(e=(t=this.cbs).onreset)===null||e===void 0||e.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(i=(u=this.cbs).onparserinit)===null||i===void 0||i.call(u,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,e){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let u=this.buffers[0].slice(t-this.bufferOffset,e-this.bufferOffset);for(;e-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),u+=this.buffers[0].slice(0,e-this.bufferOffset);return u}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var e,u;if(this.ended){(u=(e=this.cbs).onerror)===null||u===void 0||u.call(e,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var e,u;if(this.ended){(u=(e=this.cbs).onerror)===null||u===void 0||u.call(e,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}};function Tt(t){for(let e=1;e<t.length;e++)t[e][0]+=t[e-1][0]+1;return t}var w0=new Map(Tt([[9,"	"],[0,"
"],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(Tt([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(Tt([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(Tt([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]])),wi=/["&'<>$\x80-\uFFFF]/g,fr=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),Na=String.prototype.codePointAt!=null?(t,e)=>t.codePointAt(e):(t,e)=>(t.charCodeAt(e)&64512)===55296?(t.charCodeAt(e)-55296)*1024+t.charCodeAt(e+1)-56320+65536:t.charCodeAt(e);function mr(t){let e="",u=0,i;for(;(i=wi.exec(t))!==null;){let r=i.index,n=t.charCodeAt(r),a=fr.get(n);a!==void 0?(e+=t.substring(u,r)+a,u=r+1):(e+=`${t.substring(u,r)}&#x${Na(t,r).toString(16)};`,u=wi.lastIndex+=+((n&64512)===55296))}return e+t.substr(u)}function Ne(t,e){return function(u){let i,r=0,n="";for(;i=t.exec(u);)r!==i.index&&(n+=u.substring(r,i.index)),n+=e.get(i[0].charCodeAt(0)),r=i.index+1;return n+u.substring(r)}}var y0=Ne(/[&<>'"]/g,fr),$a=Ne(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),Pa=Ne(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),yi;(function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"})(yi||(yi={}));var Fi;(function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"})(Fi||(Fi={}));var Ra=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(t=>[t.toLowerCase(),t])),qa=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(t=>[t.toLowerCase(),t])),Oa=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Ma(t){return t.replace(/"/g,""")}function Ua(t,e){var u;if(!t)return;let i=((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)===!1?Ma:e.xmlMode||e.encodeEntities!=="utf8"?mr:$a;return Object.keys(t).map(r=>{var n,a;let s=(n=t[r])!==null&&n!==void 0?n:"";return e.xmlMode==="foreign"&&(r=(a=qa.get(r))!==null&&a!==void 0?a:r),!e.emptyAttrs&&!e.xmlMode&&s===""?r:`${r}="${i(s)}"`}).join(" ")}var vi=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function Vt(t,e={}){let u="length"in t?t:[t],i="";for(let r=0;r<u.length;r++)i+=Ha(u[r],e);return i}function Ha(t,e){switch(t.type){case Jr:return Vt(t.children,e);case rn:case Zr:return Ga(t);case Qr:return Ja(t);case un:return Ka(t);case Xr:case tn:case en:return Wa(t,e);case Yr:return za(t,e)}}var ja=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Va=new Set(["svg","math"]);function Wa(t,e){var u;e.xmlMode==="foreign"&&(t.name=(u=Ra.get(t.name))!==null&&u!==void 0?u:t.name,t.parent&&ja.has(t.parent.name)&&(e={...e,xmlMode:!1})),!e.xmlMode&&Va.has(t.name)&&(e={...e,xmlMode:"foreign"});let i=`<${t.name}`,r=Ua(t.attribs,e);return r&&(i+=` ${r}`),t.children.length===0&&(e.xmlMode?e.selfClosingTags!==!1:e.selfClosingTags&&vi.has(t.name))?(e.xmlMode||(i+=" "),i+="/>"):(i+=">",t.children.length>0&&(i+=Vt(t.children,e)),(e.xmlMode||!vi.has(t.name))&&(i+=`</${t.name}>`)),i}function Ga(t){return`<${t.data}>`}function za(t,e){var u;let i=t.data||"";return((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)!==!1&&!(!e.xmlMode&&t.parent&&Oa.has(t.parent.name))&&(i=e.xmlMode||e.encodeEntities!=="utf8"?mr(i):Pa(i)),i}function Ka(t){return`<![CDATA[${t.children[0].data}]]>`}function Ja(t){return`<!--${t.data}-->`}var ki;(function(t){t[t.DISCONNECTED=1]="DISCONNECTED",t[t.PRECEDING=2]="PRECEDING",t[t.FOLLOWING=4]="FOLLOWING",t[t.CONTAINS=8]="CONTAINS",t[t.CONTAINED_BY=16]="CONTAINED_BY"})(ki||(ki={}));function Ya(t,e){let u=new ln(void 0,e);return new La(u,e).end(t),u.root}var xr=te(Rr(),1);function $e(t,e,u=()=>{}){if(t===void 0){let i=function(...r){return e(i,...r)};return i}return t>=0?function(...i){return e($e(t-1,e,u),...i)}:u}function Ar(t,e){let u=0,i=t.length;for(;u<i&&t[u]===e;)++u;for(;i>u&&t[i-1]===e;)--i;return u>0||i<t.length?t.substring(u,i):t}function Za(t,e){let u=t.length;for(;u>0&&t[u-1]===e;)--u;return u<t.length?t.substring(0,u):t}function Qa(t){return t.replace(/[\s\S]/g,e=>"\\u"+e.charCodeAt().toString(16).padStart(4,"0"))}function Er(t,e){let u=new Map;for(let i=t.length;i-- >0;){let r=t[i],n=e(r);u.set(n,u.has(n)?(0,xr.default)(r,u.get(n),{arrayMerge:Xa}):r)}return[...u.values()].reverse()}var Xa=(t,e,u)=>[...e];function ft(t,e){for(let u of e){if(!t)return;t=t[u]}return t}function Si(t,e="a",u=26){let i=[];do t-=1,i.push(t%u),t=t/u>>0;while(t>0);let r=e.charCodeAt(0);return i.reverse().map(n=>String.fromCharCode(r+n)).join("")}var pe=["I","X","C","M"],Ti=["V","L","D"];function _i(t){return[...t+""].map(e=>+e).reverse().map((e,u)=>e%5<4?(e<5?"":Ti[u])+pe[u].repeat(e%5):pe[u]+(e<5?Ti[u]:pe[u+1])).reverse().join("")}var Br=class{constructor(t,e=void 0){this.lines=[],this.nextLineWords=[],this.maxLineLength=e||t.wordwrap||Number.MAX_VALUE,this.nextLineAvailableChars=this.maxLineLength,this.wrapCharacters=ft(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=ft(t,["longWordSplit","forceWrapOnLimit"])||!1,this.stashedSpace=!1,this.wordBreakOpportunity=!1}pushWord(t,e=!1){this.nextLineAvailableChars<=0&&!e&&this.startNewLine();let u=this.nextLineWords.length===0,i=t.length+(u?0:1);if(i<=this.nextLineAvailableChars||e)this.nextLineWords.push(t),this.nextLineAvailableChars-=i;else{let[r,...n]=this.splitLongWord(t);u||this.startNewLine(),this.nextLineWords.push(r),this.nextLineAvailableChars-=r.length;for(let a of n)this.startNewLine(),this.nextLineWords.push(a),this.nextLineAvailableChars-=a.length}}popWord(){let t=this.nextLineWords.pop();if(t!==void 0){let e=this.nextLineWords.length===0,u=t.length+(e?0:1);this.nextLineAvailableChars+=u}return t}concatWord(t,e=!1){if(this.wordBreakOpportunity&&t.length>this.nextLineAvailableChars)this.pushWord(t,e),this.wordBreakOpportunity=!1;else{let u=this.popWord();this.pushWord(u?u.concat(t):t,e)}}startNewLine(t=1){this.lines.push(this.nextLineWords),t>1&&this.lines.push(...Array.from({length:t-1},()=>[])),this.nextLineWords=[],this.nextLineAvailableChars=this.maxLineLength}isEmpty(){return this.lines.length===0&&this.nextLineWords.length===0}clear(){this.lines.length=0,this.nextLineWords.length=0,this.nextLineAvailableChars=this.maxLineLength}toString(){return[...this.lines,this.nextLineWords].map(t=>t.join(" ")).join(`
|
|
9
|
+
`)}splitLongWord(t){let e=[],u=0;for(;t.length>this.maxLineLength;){let i=t.substring(0,this.maxLineLength),r=t.substring(this.maxLineLength),n=i.lastIndexOf(this.wrapCharacters[u]);if(n>-1)t=i.substring(n+1)+r,e.push(i.substring(0,n+1));else if(u++,u<this.wrapCharacters.length)t=i+r;else{if(this.forceWrapOnLimit){if(e.push(i),t=r,t.length>this.maxLineLength)continue}else t=i+r;break}}return e.push(t),e}},bt=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},G=class extends bt{constructor(t,e=null,u=1,i=void 0){super(e),this.leadingLineBreaks=u,this.inlineTextBuilder=new Br(t,i),this.rawText="",this.stashedLineBreaks=0,this.isPre=e&&e.isPre,this.isNoWrap=e&&e.isNoWrap}},Ii=class extends G{constructor(t,e=null,{interRowLineBreaks:u=1,leadingLineBreaks:i=2,maxLineLength:r=void 0,maxPrefixLength:n=0,prefixAlign:a="left"}={}){super(t,e,i,r),this.maxPrefixLength=n,this.prefixAlign=a,this.interRowLineBreaks=u}},nt=class extends G{constructor(t,e=null,{leadingLineBreaks:u=1,maxLineLength:i=void 0,prefix:r=""}={}){super(t,e,u,i),this.prefix=r}},Li=class extends bt{constructor(t=null){super(t),this.rows=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},Ni=class extends bt{constructor(t=null){super(t),this.cells=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},at=class extends bt{constructor(t,e=null,u=void 0){super(e),this.inlineTextBuilder=new Br(t,u),this.rawText="",this.stashedLineBreaks=0,this.isPre=e&&e.isPre,this.isNoWrap=e&&e.isNoWrap}},ts=class extends bt{constructor(t=null,e){super(t),this.transform=e}};function es(t){return[...t].map(e=>"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0")).join("")}var us=class{constructor(t){this.whitespaceChars=t.preserveNewlines?t.whitespaceCharacters.replace(/\n/g,""):t.whitespaceCharacters;let e=es(this.whitespaceChars);if(this.leadingWhitespaceRe=new RegExp(`^[${e}]`),this.trailingWhitespaceRe=new RegExp(`[${e}]$`),this.allWhitespaceOrEmptyRe=new RegExp(`^[${e}]*$`),this.newlineOrNonWhitespaceRe=new RegExp(`(\\n|[^\\n${e}])`,"g"),this.newlineOrNonNewlineStringRe=new RegExp("(\\n|[^\\n]+)","g"),t.preserveNewlines){let u=new RegExp(`\\n|[^\\n${e}]+`,"gm");this.shrinkWrapAdd=function(i,r,n=s=>s,a=!1){if(!i)return;let s=r.stashedSpace,o=!1,l=u.exec(i);if(l)for(o=!0,l[0]===`
|
|
10
|
+
`?r.startNewLine():s||this.testLeadingWhitespace(i)?r.pushWord(n(l[0]),a):r.concatWord(n(l[0]),a);(l=u.exec(i))!==null;)l[0]===`
|
|
11
|
+
`?r.startNewLine():r.pushWord(n(l[0]),a);r.stashedSpace=s&&!o||this.testTrailingWhitespace(i)}}else{let u=new RegExp(`[^${e}]+`,"g");this.shrinkWrapAdd=function(i,r,n=s=>s,a=!1){if(!i)return;let s=r.stashedSpace,o=!1,l=u.exec(i);if(l)for(o=!0,s||this.testLeadingWhitespace(i)?r.pushWord(n(l[0]),a):r.concatWord(n(l[0]),a);(l=u.exec(i))!==null;)r.pushWord(n(l[0]),a);r.stashedSpace=s&&!o||this.testTrailingWhitespace(i)}}}addLiteral(t,e,u=!0){if(!t)return;let i=e.stashedSpace,r=!1,n=this.newlineOrNonNewlineStringRe.exec(t);if(n)for(r=!0,n[0]===`
|
|
12
|
+
`?e.startNewLine():i?e.pushWord(n[0],u):e.concatWord(n[0],u);(n=this.newlineOrNonNewlineStringRe.exec(t))!==null;)n[0]===`
|
|
13
|
+
`?e.startNewLine():e.pushWord(n[0],u);e.stashedSpace=i&&!r}testLeadingWhitespace(t){return this.leadingWhitespaceRe.test(t)}testTrailingWhitespace(t){return this.trailingWhitespaceRe.test(t)}testContainsWords(t){return!this.allWhitespaceOrEmptyRe.test(t)}countNewlinesNoWords(t){this.newlineOrNonWhitespaceRe.lastIndex=0;let e=0,u;for(;(u=this.newlineOrNonWhitespaceRe.exec(t))!==null;)if(u[0]===`
|
|
14
|
+
`)e++;else return 0;return e}},is=class{constructor(t,e,u=void 0){this.options=t,this.picker=e,this.metadata=u,this.whitespaceProcessor=new us(t),this._stackItem=new G(t),this._wordTransformer=void 0}pushWordTransform(t){this._wordTransformer=new ts(this._wordTransformer,t)}popWordTransform(){if(!this._wordTransformer)return;let t=this._wordTransformer.transform;return this._wordTransformer=this._wordTransformer.next,t}startNoWrap(){this._stackItem.isNoWrap=!0}stopNoWrap(){this._stackItem.isNoWrap=!1}_getCombinedWordTransformer(){let t=this._wordTransformer?u=>Cr(u,this._wordTransformer):void 0,e=this.options.encodeCharacters;return t?e?u=>e(t(u)):t:e}_popStackItem(){let t=this._stackItem;return this._stackItem=t.next,t}addLineBreak(){(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&(this._stackItem.isPre?this._stackItem.rawText+=`
|
|
15
|
+
`:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:e=!1}={}){if(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}if(!(t.length===0||this._stackItem.stashedLineBreaks&&!this.whitespaceProcessor.testContainsWords(t))){if(this.options.preserveNewlines){let u=this.whitespaceProcessor.countNewlinesNoWords(t);if(u>0){this._stackItem.inlineTextBuilder.startNewLine(u);return}}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.shrinkWrapAdd(t,this._stackItem.inlineTextBuilder,e?void 0:this._getCombinedWordTransformer(),this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}}addLiteral(t){if((this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&t.length!==0){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.addLiteral(t,this._stackItem.inlineTextBuilder,this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}openBlock({leadingLineBreaks:t=1,reservedLineLength:e=0,isPre:u=!1}={}){let i=Math.max(20,this._stackItem.inlineTextBuilder.maxLineLength-e);this._stackItem=new G(this.options,this._stackItem,t,i),u&&(this._stackItem.isPre=!0)}closeBlock({trailingLineBreaks:t=1,blockTransform:e=void 0}={}){let u=this._popStackItem(),i=e?e(it(u)):it(u);_t(this._stackItem,i,u.leadingLineBreaks,Math.max(u.stashedLineBreaks,t))}openList({maxPrefixLength:t=0,prefixAlign:e="left",interRowLineBreaks:u=1,leadingLineBreaks:i=2}={}){this._stackItem=new Ii(this.options,this._stackItem,{interRowLineBreaks:u,leadingLineBreaks:i,maxLineLength:this._stackItem.inlineTextBuilder.maxLineLength,maxPrefixLength:t,prefixAlign:e})}openListItem({prefix:t=""}={}){if(!(this._stackItem instanceof Ii))throw new Error("Can't add a list item to something that is not a list! Check the formatter.");let e=this._stackItem,u=Math.max(t.length,e.maxPrefixLength),i=Math.max(20,e.inlineTextBuilder.maxLineLength-u);this._stackItem=new nt(this.options,e,{prefix:t,maxLineLength:i,leadingLineBreaks:e.interRowLineBreaks})}closeListItem(){let t=this._popStackItem(),e=t.next,u=Math.max(t.prefix.length,e.maxPrefixLength),i=`
|
|
16
|
+
`+" ".repeat(u),r=(e.prefixAlign==="right"?t.prefix.padStart(u):t.prefix.padEnd(u))+it(t).replace(/\n/g,i);_t(e,r,t.leadingLineBreaks,Math.max(t.stashedLineBreaks,e.interRowLineBreaks))}closeList({trailingLineBreaks:t=2}={}){let e=this._popStackItem(),u=it(e);u&&_t(this._stackItem,u,e.leadingLineBreaks,t)}openTable(){this._stackItem=new Li(this._stackItem)}openTableRow(){if(!(this._stackItem instanceof Li))throw new Error("Can't add a table row to something that is not a table! Check the formatter.");this._stackItem=new Ni(this._stackItem)}openTableCell({maxColumnWidth:t=void 0}={}){if(!(this._stackItem instanceof Ni))throw new Error("Can't add a table cell to something that is not a table row! Check the formatter.");this._stackItem=new at(this.options,this._stackItem,t)}closeTableCell({colspan:t=1,rowspan:e=1}={}){let u=this._popStackItem(),i=Ar(it(u),`
|
|
17
|
+
`);u.next.cells.push({colspan:t,rowspan:e,text:i})}closeTableRow(){let t=this._popStackItem();t.next.rows.push(t.cells)}closeTable({tableToString:t,leadingLineBreaks:e=2,trailingLineBreaks:u=2}){let i=this._popStackItem(),r=t(i.rows);r&&_t(this._stackItem,r,e,u)}toString(){return it(this._stackItem.getRoot())}};function it(t){if(!(t instanceof G||t instanceof nt||t instanceof at))throw new Error("Only blocks, list items and table cells can be requested for text contents.");return t.inlineTextBuilder.isEmpty()?t.rawText:t.rawText+t.inlineTextBuilder.toString()}function _t(t,e,u,i){if(!(t instanceof G||t instanceof nt||t instanceof at))throw new Error("Only blocks, list items and table cells can contain text.");let r=it(t),n=Math.max(t.stashedLineBreaks,u);t.inlineTextBuilder.clear(),r?t.rawText=r+`
|
|
18
|
+
`.repeat(n)+e:(t.rawText=e,t.leadingLineBreaks=n),t.stashedLineBreaks=i}function Cr(t,e){return e?Cr(e.transform(t),e.next):t}function rs(t={}){let e=t.selectors.filter(a=>!a.format);if(e.length)throw new Error("Following selectors have no specified format: "+e.map(a=>`\`${a.selector}\``).join(", "));let u=new fi(t.selectors.map(a=>[a.selector,a])).build(xi);typeof t.encodeCharacters!="function"&&(t.encodeCharacters=os(t.encodeCharacters));let i=new fi(t.baseElements.selectors.map((a,s)=>[a,s+1])).build(xi);function r(a){return as(a,t,i)}let n=$e(t.limits.maxDepth,ss,function(a,s){s.addInline(t.limits.ellipsis||"")});return function(a,s=void 0){return ns(a,s,t,u,r,n)}}function ns(t,e,u,i,r,n){let a=u.limits.maxInputLength;a&&t&&t.length>a&&(console.warn(`Input length ${t.length} is above allowed limit of ${a}. Truncating without ellipsis.`),t=t.substring(0,a));let s=Ya(t,{decodeEntities:u.decodeEntities}),o=r(s.children),l=new is(u,i,e);return n(o,l),l.toString()}function as(t,e,u){let i=[];function r(n,a){a=a.slice(0,e.limits.maxChildNodes);for(let s of a){if(s.type!=="tag")continue;let o=u.pick1(s);if(o>0?i.push({selectorIndex:o,element:s}):s.children&&n(s.children),i.length>=e.limits.maxBaseElements)return}}return $e(e.limits.maxDepth,r)(t),e.baseElements.orderBy!=="occurrence"&&i.sort((n,a)=>n.selectorIndex-a.selectorIndex),e.baseElements.returnDomByDefault&&i.length===0?t:i.map(n=>n.element)}function ss(t,e,u){if(!e)return;let i=u.options;e.length>i.limits.maxChildNodes&&(e=e.slice(0,i.limits.maxChildNodes),e.push({data:i.limits.ellipsis,type:"text"}));for(let r of e)switch(r.type){case"text":{u.addInline(r.data);break}case"tag":{let n=u.picker.pick1(r),a=i.formatters[n.format];a(r,t,u,n.options||{});break}}}function os(t){if(!t||Object.keys(t).length===0)return;let e=Object.entries(t).filter(([,n])=>n!==!1),u=new RegExp(e.map(([n])=>`(${Qa([...n][0])})`).join("|"),"g"),i=e.map(([,n])=>n),r=(n,...a)=>i[a.findIndex(s=>s)];return n=>n.replace(u,r)}function cs(t,e,u,i){}function ls(t,e,u,i){u.addLiteral(i.string||"")}function hs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.addLiteral(i.string||""),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function ds(t,e,u,i){e(t.children,u)}function ps(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Dr(t){let e=t.attribs&&t.attribs.length?" "+Object.entries(t.attribs).map(([u,i])=>i===""?u:`${u}=${i.replace(/"/g,""")}`).join(" "):"";return`<${t.name}${e}>`}function br(t){return`</${t.name}>`}function gs(t,e,u,i){u.startNoWrap(),u.addLiteral(Dr(t)),u.stopNoWrap(),e(t.children,u),u.startNoWrap(),u.addLiteral(br(t)),u.stopNoWrap()}function fs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(Dr(t)),u.stopNoWrap(),e(t.children,u),u.startNoWrap(),u.addLiteral(br(t)),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function ms(t,e,u,i){u.startNoWrap(),u.addLiteral(Vt(t,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap()}function xs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(Vt(t,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function As(t,e,u,i){u.addLiteral(i.prefix||""),e(t.children,u),u.addLiteral(i.suffix||"")}var Es=Object.freeze({__proto__:null,block:ps,blockHtml:xs,blockString:hs,blockTag:fs,inline:ds,inlineHtml:ms,inlineString:ls,inlineSurround:As,inlineTag:gs,skip:cs});function Mt(t,e){return t[e]||(t[e]=[]),t[e]}function Bs(t,e=0){for(;t[e];)e++;return e}function Cs(t,e){for(let u=0;u<e;u++){let i=Mt(t,u);for(let r=0;r<u;r++){let n=Mt(t,r);if(i[r]||n[u]){let a=i[r];i[r]=n[u],n[u]=a}}}}function Ds(t,e,u,i){for(let r=0;r<t.rowspan;r++){let n=Mt(e,u+r);for(let a=0;a<t.colspan;a++)n[i+a]=t}}function Ce(t,e){return t[e]===void 0&&(t[e]=e===0?0:1+Ce(t,e-1)),t[e]}function $i(t,e,u,i){t[e+u]=Math.max(Ce(t,e+u),Ce(t,e)+i)}function bs(t,e,u){let i=[],r=0,n=t.length,a=[0];for(let l=0;l<n;l++){let p=Mt(i,l),A=t[l],E=0;for(let x=0;x<A.length;x++){let B=A[x];E=Bs(p,E),Ds(B,i,l,E),E+=B.colspan,B.lines=B.text.split(`
|
|
19
|
+
`);let y=B.lines.length;$i(a,l,B.rowspan,y+e)}r=p.length>r?p.length:r}Cs(i,n>r?n:r);let s=[],o=[0];for(let l=0;l<r;l++){let p=0,A,E=Math.min(n,i[l].length);for(;p<E;)if(A=i[l][p],A){if(!A.rendered){let x=0;for(let B=0;B<A.lines.length;B++){let y=A.lines[B],b=a[p]+B;s[b]=(s[b]||"").padEnd(o[l])+y,x=y.length>x?y.length:x}$i(o,l,A.colspan,x+u),A.rendered=!0}p+=A.rowspan}else{let x=a[p];s[x]=s[x]||"",p++}}return s.join(`
|
|
20
|
+
`)}function ws(t,e,u,i){u.addLineBreak()}function ys(t,e,u,i){u.addWordBreakOpportunity()}function Fs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.addInline("-".repeat(i.length||u.options.wordwrap||40)),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function vs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function ks(t,e,u,i){u.openBlock({isPre:!0,leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ss(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),i.uppercase!==!1?(u.pushWordTransform(r=>r.toUpperCase()),e(t.children,u),u.popWordTransform()):e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ts(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2,reservedLineLength:2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2,blockTransform:r=>(i.trimEmptyLines!==!1?Ar(r,`
|
|
21
|
+
`):r).split(`
|
|
22
|
+
`).map(n=>"> "+n).join(`
|
|
23
|
+
`)})}function De(t,e){if(!e)return t;let u=typeof e[0]=="string"?e[0]:"[",i=typeof e[1]=="string"?e[1]:"]";return u+t+i}function wr(t,e,u,i,r){let n=typeof e=="function"?e(t,i,r):t;return n[0]==="/"&&u?Za(u,"/")+n:n}function _s(t,e,u,i){let r=t.attribs||{},n=r.alt?r.alt:"",a=r.src?wr(r.src,i.pathRewrite,i.baseUrl,u.metadata,t):"",s=a?n?n+" "+De(a,i.linkBrackets):De(a,i.linkBrackets):n;u.addInline(s,{noWordTransform:!0})}function Is(t,e,u,i){function r(){if(i.ignoreHref||!t.attribs||!t.attribs.href)return"";let a=t.attribs.href.replace(/^mailto:/,"");return i.noAnchorUrl&&a[0]==="#"?"":(a=wr(a,i.pathRewrite,i.baseUrl,u.metadata,t),a)}let n=r();if(!n)e(t.children,u);else{let a="";u.pushWordTransform(s=>(s&&(a+=s),s)),e(t.children,u),u.popWordTransform(),i.hideLinkHrefIfSameAsText&&n===a||u.addInline(a?" "+De(n,i.linkBrackets):n,{noWordTransform:!0})}}function yr(t,e,u,i,r){let n=ft(t,["parent","name"])==="li",a=0,s=(t.children||[]).filter(o=>o.type!=="text"||!/^\s*$/.test(o.data)).map(function(o){if(o.name!=="li")return{node:o,prefix:""};let l=n?r().trimStart():r();return l.length>a&&(a=l.length),{node:o,prefix:l}});if(s.length){u.openList({interRowLineBreaks:1,leadingLineBreaks:n?1:i.leadingLineBreaks||2,maxPrefixLength:a,prefixAlign:"left"});for(let{node:o,prefix:l}of s)u.openListItem({prefix:l}),e([o],u),u.closeListItem();u.closeList({trailingLineBreaks:n?1:i.trailingLineBreaks||2})}}function Ls(t,e,u,i){let r=i.itemPrefix||" * ";return yr(t,e,u,i,()=>r)}function Ns(t,e,u,i){let r=Number(t.attribs.start||"1"),n=$s(t.attribs.type);return yr(t,e,u,i,()=>" "+n(r++)+". ")}function $s(t="1"){switch(t){case"a":return e=>Si(e,"a");case"A":return e=>Si(e,"A");case"i":return e=>_i(e).toLowerCase();case"I":return e=>_i(e);case"1":default:return e=>e.toString()}}function Ps(t){let e=[],u=[];for(let i of t)i.startsWith(".")?e.push(i.substring(1)):i.startsWith("#")&&u.push(i.substring(1));return{classes:e,ids:u}}function Rs(t,e){if(e===!0)return!0;if(!t)return!1;let{classes:u,ids:i}=Ps(e),r=(t.class||"").split(" "),n=(t.id||"").split(" ");return r.some(a=>u.includes(a))||n.some(a=>i.includes(a))}function qs(t,e,u,i){return Rs(t.attribs,u.options.tables)?Fr(t,e,u,i):Os(t,e,u,i)}function Os(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks})}function Fr(t,e,u,i){u.openTable(),t.children.forEach(n),u.closeTable({tableToString:a=>bs(a,i.rowSpacing??0,i.colSpacing??3),leadingLineBreaks:i.leadingLineBreaks,trailingLineBreaks:i.trailingLineBreaks});function r(a){let s=+ft(a,["attribs","colspan"])||1,o=+ft(a,["attribs","rowspan"])||1;u.openTableCell({maxColumnWidth:i.maxColumnWidth}),e(a.children,u),u.closeTableCell({colspan:s,rowspan:o})}function n(a){if(a.type!=="tag")return;let s=i.uppercaseHeaderCells!==!1?o=>{u.pushWordTransform(l=>l.toUpperCase()),r(o),u.popWordTransform()}:r;switch(a.name){case"thead":case"tbody":case"tfoot":case"center":a.children.forEach(n);return;case"tr":{u.openTableRow();for(let o of a.children)if(o.type==="tag")switch(o.name){case"th":{s(o);break}case"td":{r(o);break}}u.closeTableRow();break}}}}var Ms=Object.freeze({__proto__:null,anchor:Is,blockquote:Ts,dataTable:Fr,heading:Ss,horizontalLine:Fs,image:_s,lineBreak:ws,orderedList:Ns,paragraph:vs,pre:ks,table:qs,unorderedList:Ls,wbr:ys}),Us={baseElements:{selectors:["body"],orderBy:"selectors",returnDomByDefault:!0},decodeEntities:!0,encodeCharacters:{},formatters:{},limits:{ellipsis:"...",maxBaseElements:void 0,maxChildNodes:void 0,maxDepth:void 0,maxInputLength:1<<24},longWordSplit:{forceWrapOnLimit:!1,wrapCharacters:[]},preserveNewlines:!1,selectors:[{selector:"*",format:"inline"},{selector:"a",format:"anchor",options:{baseUrl:null,hideLinkHrefIfSameAsText:!1,ignoreHref:!1,linkBrackets:["[","]"],noAnchorUrl:!0}},{selector:"article",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"aside",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"blockquote",format:"blockquote",options:{leadingLineBreaks:2,trailingLineBreaks:2,trimEmptyLines:!0}},{selector:"br",format:"lineBreak"},{selector:"div",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"footer",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"form",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"h1",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h2",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h3",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h4",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h5",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h6",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"header",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"hr",format:"horizontalLine",options:{leadingLineBreaks:2,length:void 0,trailingLineBreaks:2}},{selector:"img",format:"image",options:{baseUrl:null,linkBrackets:["[","]"]}},{selector:"main",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"nav",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"ol",format:"orderedList",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"p",format:"paragraph",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"pre",format:"pre",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"section",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"table",format:"table",options:{colSpacing:3,leadingLineBreaks:2,maxColumnWidth:60,rowSpacing:0,trailingLineBreaks:2,uppercaseHeaderCells:!0}},{selector:"ul",format:"unorderedList",options:{itemPrefix:" * ",leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"wbr",format:"wbr"}],tables:[],whitespaceCharacters:` \r
|
|
24
|
+
\f\u200B`,wordwrap:80},Hs=(t,e,u)=>[...t,...e],vr=(t,e,u)=>[...e],js=(t,e,u)=>t.some(i=>typeof i=="object")?Hs(t,e):vr(t,e);function Vs(t={}){return t=(0,xr.default)(Us,t,{arrayMerge:vr,customMerge:e=>e==="selectors"?js:void 0}),t.formatters=Object.assign({},Es,Ms,t.formatters),t.selectors=Er(t.selectors,e=>e.selector),Gs(t),rs(t)}function Ws(t,e={},u=void 0){return Vs(e)(t,u)}function Gs(t){if(t.tags){let u=Object.entries(t.tags).map(([i,r])=>({...r,selector:i||"*"}));t.selectors.push(...u),t.selectors=Er(t.selectors,i=>i.selector)}function e(u,i,r){let n=i.pop();for(let a of i){let s=u[a];s||(s={},u[a]=s),u=s}u[n]=r}if(t.baseElement){let u=t.baseElement;e(t,["baseElements","selectors"],Array.isArray(u)?u:[u])}t.returnDomByDefault!==void 0&&e(t,["baseElements","returnDomByDefault"],t.returnDomByDefault);for(let u of t.selectors)u.format==="anchor"&&ft(u,["options","noLinkBrackets"])&&e(u,["options","linkBrackets"],!1)}async function zs(t,e,u){let{apiKey:i,domain:r}=t;if(!i||!r)throw new Error("Mailgun configuration missing. Please provide apiKey and domain");let n=[];try{let a=`https://api.mailgun.net/v3/${r}/events`,s={event:"accepted",limit:"10",ascending:"yes",recipient:e};if(u.from_email&&(s.from=u.from_email),u.since)s.begin=Math.floor(u.since/1e3).toString();else{let p=new Date(Date.now()-6e5);s.begin=Math.floor(p.getTime()/1e3).toString()}c.info(`Mailgun params: ${JSON.stringify(s)}`);let o=await fetch(a+"?"+new URLSearchParams(s),{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`}});if(!o.ok){let p=await o.text();throw new Error(`Mailgun events API error: ${p}`)}let l=(await o.json()).items||[];for(let p of l.slice(0,10)){if(p.event!=="accepted")continue;let A=(p.storage||{}).url;if(c.info(`message_url: ${A}`),!A){let B=(p.message||{}).headers||{},y=B.subject||"",b=B.from||"",D=B.to||"";if(u.from_email&&!b.toLowerCase().includes(u.from_email.toLowerCase())||u.to_email&&!D.toLowerCase().includes(u.to_email.toLowerCase())||u.subject&&!y.toLowerCase().includes(u.subject.toLowerCase()))continue;n.push({subject:y,from:b,to:D,date:new Date(p.timestamp*1e3).toUTCString(),body:"Message body not available (Mailgun storage disabled)",message_id:B["message-id"]||""});continue}let E=A.split("/"),x=E[E.length-1];if(c.info(`Storage key: ${x}`),x){let B=`https://api.mailgun.net/v3/domains/${r}/messages/${x}`;try{let y=await fetch(B,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`,Accept:"application/json"}});if(y.ok){let b=await y.json(),D=b.Subject||"",F=b.From||"",m=b.To||"",w=b.Date||"",v=b["Message-Id"]||"";c.info(`subject: ${D}`),c.info(`from_addr: ${F}`),c.info(`to_addr: ${m}`),c.info(`date: ${w}`),c.info(`message_id: ${v}`);let I=b["body-html"]||b["body-plain"]||"";if(I&&I.includes("<")&&(I=Ws(I)),c.info(`Body: ${I.substring(0,200)}...`),u.subject&&!D.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!I.toLowerCase().includes(u.body_contains.toLowerCase()))continue;n.push({subject:D,from:F,to:m,date:w,body:I,message_id:v});continue}else c.warn(`Messages API returned ${y.status}`)}catch(y){c.warn(`Failed to parse JSON response: ${y}`)}}try{let B=await fetch(A,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`}});if(!B.ok){c.warn(`Could not fetch stored message: ${B.status}`);continue}let y=await B.text();c.info(`Fallback: Raw email length: ${y.length}`);let b=y.split(`
|
|
25
|
+
`),D=!0,F={},m="";for(let ot=0;ot<b.length;ot++){let ct=b[ot];if(ct.trim()===""&&D){D=!1;continue}if(D){let lt=ct.match(/^([^:]+):\s*(.+)$/);lt&&(F[lt[1].toLowerCase()]=lt[2])}else m+=ct+`
|
|
26
|
+
`}let w=F.subject||"",v=F.from||"",I=F.to||"",$=F.date||"",Y=F["message-id"]||"";if(u.subject&&!w.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!m.toLowerCase().includes(u.body_contains.toLowerCase()))continue;n.push({subject:w,from:v,to:I,date:$,body:m.trim(),message_id:Y})}catch(B){c.warn(`Error fetching raw message: ${B}`)}}if(n.length>0){try{n.sort((A,E)=>{let x=new Date(A.date).getTime();return new Date(E.date).getTime()-x})}catch{}let p=n[0];return c.info(`Returning most recent email: ${p.subject}`),[p]}return n}catch(a){throw c.error(`Error fetching emails from Mailgun: ${a.message}`),new Error(`Error fetching emails from Mailgun: ${a.message}`)}}function Ks(t,e){if(t==="verification_code")return`You are analyzing an email to extract an OTP (One-Time Password) or verification code.
|
|
27
|
+
|
|
28
|
+
Please carefully examine the email content and look for:
|
|
29
|
+
1. Numeric codes (usually 4-8 digits)
|
|
30
|
+
2. Alphanumeric codes
|
|
31
|
+
3. Verification codes, OTP codes, authentication codes
|
|
32
|
+
4. Text like "Your code is", "Verification code:", "Enter this code", etc.
|
|
33
|
+
|
|
34
|
+
Extract the code exactly as shown in the email.
|
|
35
|
+
If you find a code, return just the code.
|
|
36
|
+
If you cannot find a code, return "NOT_FOUND".
|
|
37
|
+
|
|
38
|
+
Examples of what to extract:
|
|
39
|
+
- From: "Your verification code is: 123456"
|
|
40
|
+
Extract: 123456
|
|
41
|
+
|
|
42
|
+
- From: "Enter code: ABC123XYZ"
|
|
43
|
+
Extract: ABC123XYZ
|
|
44
|
+
|
|
45
|
+
- From: "OTP: 789012 (valid for 10 minutes)"
|
|
46
|
+
Extract: 789012
|
|
47
|
+
|
|
48
|
+
- From: "Use this code to verify: AB12-CD34-EF56"
|
|
49
|
+
Extract: AB12-CD34-EF56
|
|
50
|
+
|
|
51
|
+
Return ONLY the extracted code or "NOT_FOUND".`;if(t==="activation_link")return`You are analyzing an email to extract a magic link or verification link.
|
|
52
|
+
|
|
53
|
+
Please carefully examine the email content and look for:
|
|
54
|
+
1. URLs that contain terms like "verify", "confirm", "activate", "login", "auth"
|
|
55
|
+
2. Button links with text like "Verify Email", "Confirm Account", "Click Here"
|
|
56
|
+
3. Links that appear to be for authentication or verification purposes
|
|
57
|
+
|
|
58
|
+
CRITICAL INSTRUCTIONS:
|
|
59
|
+
- Extract the COMPLETE URL from start to finish
|
|
60
|
+
- Include the ENTIRE URL starting with http:// or https://
|
|
61
|
+
- Include ALL query parameters, tokens, and path segments
|
|
62
|
+
- Do NOT truncate, shorten, or cut off any part of the URL
|
|
63
|
+
- Do NOT add ellipsis (...) or any other modifications
|
|
64
|
+
- Return the URL exactly as it appears in the email
|
|
65
|
+
|
|
66
|
+
If you find a magic link, return ONLY the complete URL with nothing else.
|
|
67
|
+
If you cannot find a magic link, return "NOT_FOUND".
|
|
68
|
+
|
|
69
|
+
Examples of what to extract:
|
|
70
|
+
- From: "Click here to verify: https://example.com/verify?token=abc123def456ghi789"
|
|
71
|
+
Extract: https://example.com/verify?token=abc123def456ghi789
|
|
72
|
+
|
|
73
|
+
- From: "Confirm your account: https://app.example.com/auth/confirm/xyz789?user_id=12345&redirect=/dashboard"
|
|
74
|
+
Extract: https://app.example.com/auth/confirm/xyz789?user_id=12345&redirect=/dashboard
|
|
75
|
+
|
|
76
|
+
- From: "[Verify Email](https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1¶m2=value2)"
|
|
77
|
+
Extract: https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1¶m2=value2
|
|
78
|
+
|
|
79
|
+
- From: "Verify Email [https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1¶m2=value2]"
|
|
80
|
+
Extract: https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1¶m2=value2
|
|
81
|
+
|
|
82
|
+
Return ONLY the complete extracted URL or "NOT_FOUND".`;if(t==="custom"){if(!e)throw new Error("Custom prompt is required when extraction_type is custom");return e+`
|
|
83
|
+
Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${t}`)}async function Js(t,e,u){try{let i=`${e}
|
|
84
|
+
---
|
|
85
|
+
Email Content:
|
|
86
|
+
---
|
|
87
|
+
${t}
|
|
88
|
+
---
|
|
89
|
+
`,r=ie(u);return(await Ft({model:r,messages:[{role:"user",content:i}],temperature:0,providerOptions:Eu(u,0)})).text.trim()||"NOT_FOUND"}catch(i){throw c.error(`Error in LLM extraction: ${i.message}`),new Error(`Error in LLM extraction: ${i.message}`)}}async function Ys(t,e){c.info(`extract_email_content:
|
|
90
|
+
forward_email: ${e.forward_email}
|
|
91
|
+
extraction_type: ${e.extraction_type}
|
|
92
|
+
filters: ${JSON.stringify(e.filters||{})}
|
|
93
|
+
timeout: ${e.timeout||60}
|
|
94
|
+
polling_interval: 10`);let u=e.timeout||60,i=10;try{if(e.extraction_type==="custom"&&!e.prompt)return{data:void 0,status:"error",message:"Custom prompt is required when extraction_type is custom"};let r=Ks(e.extraction_type,e.prompt),n=new Date,a=new Date(n.getTime()+u*1e3),s=0;for(c.info(`Starting email polling for ${u} seconds with ${i}s intervals`);new Date<a;){s++,c.info(`Polling attempt ${s}`);try{let l=e.filters||{},p=await zs(t,e.forward_email,l);if(p.length>0){c.info(`Found ${p.length} emails matching criteria`);let A=[];for(let E of p){let x=`Subject: ${E.subject}
|
|
95
|
+
From: ${E.from}
|
|
96
|
+
To: ${E.to}
|
|
97
|
+
Date: ${E.date}
|
|
98
|
+
|
|
99
|
+
Body:
|
|
100
|
+
${E.body}`,B=await Js(x,r,e.model);c.info(`Extracted content: ${B}`),B&&B!=="NOT_FOUND"&&A.push({content:B,email_subject:E.subject,email_from:E.from,email_date:E.date})}if(A.length>0){let E=A[0],x=`$email_${e.extraction_type}`;e.extraction_type==="custom"?x="$email_extracted_content":e.extraction_type==="activation_link"?x="$email_magic_link":e.extraction_type==="verification_code"&&(x="$email_otp_code");let B=(new Date().getTime()-n.getTime())/1e3;return c.info(`Successfully extracted content after ${s} attempts in ${B.toFixed(1)} seconds`),{data:E.content,result_variable:x,status:"success",message:`Successfully extracted content from email: ${E.email_subject.substring(0,50)}... (attempts: ${s})`}}else c.info(`Found emails but no extractable content in attempt ${s}`)}else c.info(`No emails found in attempt ${s}`)}catch(l){c.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+i*1e3)>=a){c.info("Not enough time for another polling attempt");break}c.info(`Waiting ${i} seconds before next attempt...`),await new Promise(l=>setTimeout(l,i*1e3))}let o=(new Date().getTime()-n.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${o.toFixed(1)} seconds`}}catch(r){return c.error(`Error extracting email content: ${r.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${r.message}`}}}function kr(t){switch(t){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var Zs=class{getMailgunConfig(){let t=iu().env||{};if(t.MAILGUN_API_KEY)return{apiKey:t.MAILGUN_API_KEY,domain:t.MAILGUN_DOMAIN||""}}async execute(t,e,u){let i=e.action_data;if(!i)throw new Error("Action data not found");let r=this.getMailgunConfig();if(!r)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let n=i.kwargs,a=u.getModel?.()||"gemini-2.5-pro",s=await Ys(r,{model:a,forward_email:n.forward_email,extraction_type:n.extraction_type,prompt:n.prompt,filters:{from_email:n.filter_from_email,to_email:n.filter_to_email,subject:n.filter_subject,body_contains:n.filter_body_contains},timeout:n.timeout});if(s.status==="success"&&s.data){let o=s.result_variable?.replace(/^\$/,"")||kr(n.extraction_type);u.variableStore.set(o,s.data),c.info(`[extract_email_content] Extracted and saved to ${o}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(t){let e=t.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(e)} },`,"});"]}},Qs=Q.object({forward_email:Q.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Q.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Q.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Q.string().optional().describe("Filter emails by sender address"),filter_to_email:Q.string().optional().describe("Filter emails by recipient address"),filter_subject:Q.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Q.string().optional().describe("Filter emails by body content (partial match)"),timeout:Q.number().optional().describe("Timeout in seconds for polling (default: 60)")});function Xs(t,e){t.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:Qs,async execute(u,i){let{forward_email:r,extraction_type:n,prompt:a,filter_from_email:s,filter_to_email:o,filter_subject:l,filter_body_contains:p,timeout:A}=u,{page:E,agentServices:x}=i;c.info(`[extract_email_content] Extracting ${n} from ${r}`);try{let B={action_description:`Extract ${n} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:r,extraction_type:n,prompt:a,filter_from_email:s,filter_to_email:o,filter_subject:l,filter_body_contains:p,timeout:A}}};await e.execute(E,B,x);let y=kr(n);return{success:!0,actionEntity:B,message:`Extracted ${n} and saved to $${y}`}}catch(B){return{success:!1,error:B.message,actionEntity:{action_description:`Extract ${n} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:r,extraction_type:n,prompt:a,filter_from_email:s,filter_to_email:o,filter_subject:l,filter_body_contains:p,timeout:A}},feedback:B.message}}}}})}var It=null;async function J(){if(It)return It;let t=(await import("./handler-2DVP4PMD-IFR4HH7D.js")).default;return It=new t,It}async function Pe(t){let e=await J(),u=e.getAction("click"),i=e.getAction("hover"),r=e.getAction("right_click"),n=e.getAction("double_click");return Ku(t,u),Ou(t,i),_u(t,r),ju(t,n),"Click, hover, double-click, right-click, or drag elements"}async function Re(t){let e=await J(),u=e.getAction("go_to_url"),i=e.getAction("go_back"),r=e.getAction("reload_page");return qu(t,u),Ru(t,i),Tu(t,r),"Navigate to URLs, go back, or reload the page"}async function qe(t){let e=await J(),u=e.getAction("clear_input"),i=e.getAction("input_text"),r=e.getAction("press");return zu(t,u),Mu(t,i),Su(t,r),"Type text into inputs, clear input values, or press keyboard keys"}async function Oe(t){let e=await J(),u=e.getAction("scroll_on_element"),i=e.getAction("scroll_to_text"),r=e.getAction("scroll");return Nu(t,u),$u(t,i),Lu(t,r),"Scroll the page or scroll to specific text/elements"}async function Me(t){let e=await J(),u=e.getAction("close_tab"),i=e.getAction("switch_tab");return Uu(t,u),wu(t,i),"Switch between browser tabs or close tabs"}async function Ue(t){let e=await J(),u=e.getAction("upload_file"),i=e.getAction("wait_for_download_complete");return Fu(t,u),ku(t,i),"Upload files or wait for downloads to complete"}async function He(t){let e=await J(),u=e.getAction("get_dropdown_options"),i=e.getAction("select_dropdown_option"),r=e.getAction("set_date_for_native_date_picker");return Pu(t,u),Du(t,i),bu(t,r),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function je(t){let e=await J(),u=e.getAction("wait"),i=e.getAction("save_variable"),r=e.getAction("done");return vu(t,u),Iu(t,i),Hu(t,r),zr(t),"Wait for conditions, save variables, or complete tasks"}async function Ve(t){let e=(await J()).getAction("generate_2fa_code");Vu(t,e);let u=new Zs;return(await import("./handler-2DVP4PMD-IFR4HH7D.js")).default.registerAction("extract_email_content",u),Xs(t,u),"Generate 2FA codes or extract email/activation codes"}async function We(t){let e=await J(),u=e.getAction("verify"),i=e.getAction("ai_extract"),r=e.getAction("ai_wait_until");return Wu(t,u),Gu(t,i),Cu(t,r),"Perform AI-powered assertions, extractions, or wait conditions"}async function to(t){let[e,u,i,r,n,a,s,o,l,p]=await Promise.all([Pe(t),Re(t),qe(t),Oe(t),Me(t),Ue(t),He(t),je(t),Ve(t),We(t)]);return{mouse:e,navigation:u,input:i,scroll:r,tabs:n,files:a,forms:s,utility:o,auth:l,ai:p}}function eo(t){return[`- Mouse: ${t.mouse}`,`- Navigation: ${t.navigation}`,`- Input: ${t.input}`,`- Scroll: ${t.scroll}`,`- Tabs: ${t.tabs}`,`- Files: ${t.files}`,`- Forms: ${t.forms}`,`- Utility: ${t.utility}`,`- Auth: ${t.auth}`,`- AI: ${t.ai}`].join(`
|
|
101
|
+
`)}var uo=[Pe(H),Re(H),qe(H),Oe(H),Me(H),Ue(H),He(H),je(H),We(H),Ve(H)],io=Promise.all(uo);async function v0(){await io}function k0(){return H}function S0(t=!0){let e=new ue;return t&&(Pe(e),Re(e),qe(e),Oe(e),Me(e),Ue(e),He(e),Ve(e),je(e),We(e)),e}async function T0(){let t=new ue,e=await to(t),u=eo(e);return{registry:t,capabilities:e,summary:u}}function _0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
|
|
102
|
+
`)}var I0=class{constructor(t,e){this.registry=t,this.getContext=e}getToolDefinitions(){return this.registry.getTools().filter(t=>t.availability.mcp).map(t=>({name:t.name,description:t.description,inputSchema:vt(t.schema)}))}getToolDefinitionsFiltered(t){let e=new Set(t);return this.registry.getTools().filter(u=>e.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:vt(u.schema)}))}async createServer(t="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(t,e){let u=await this.getContext(),i=await this.registry.execute(t,e,u);return{content:[{type:"text",text:i.success?i.message||"Tool executed successfully":i.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function L0(t){return t.getTools().map(e=>({name:e.name,description:e.description,inputSchema:vt(e.schema)}))}async function ao(t,e){let u=JSON.parse(Rt.readFileSync(e,"utf-8"));u.cookies?.length&&await t.addCookies(u.cookies)}var R0=class{constructor(t={}){t.testDir&&(this.testDir=t.testDir,this.videoBasePath=Lt.join(t.testDir,"videos"),this.statesBasePath=Lt.join(t.testDir,"states"),this.downloadsBasePath=Lt.join(t.testDir,"downloads"),Rt.mkdirSync(this.videoBasePath,{recursive:!0}),Rt.mkdirSync(this.statesBasePath,{recursive:!0}),Rt.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=t.terminationTimeout??null,this.defaultHeadless=t.headless??!1,this.additionalArgs=t.additionalArgs??[]}async launchBrowser(t={}){let e=t.debugPort,u=t.headless??this.defaultHeadless,i=fu(t.deviceName),r=gu(t.deviceName),n=i===xt.Chromium,a=!!t.extensionPath;c.info(`[BrowserManager] Launching ${i} browser for device: ${t.deviceName||"default"}${e?` on port ${e}`:""}`);let s={headless:u};if(n){a&&u&&(c.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let F=[];(t.enableCamera||t.enableMicrophone)&&(F.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),t.enableMicrophone&&t.fakeAudioCapturePath&&(F.push(`--use-file-for-fake-audio-capture=${t.fakeAudioCapturePath}`),c.info(`[BrowserManager] Using fake audio capture file: ${t.fakeAudioCapturePath}`)));let m=a&&t.extensionPath?[`--disable-extensions-except=${t.extensionPath}`,`--load-extension=${t.extensionPath}`]:[];s.args=[...nu(e,t.disableSecurity??!0,u),...F,...m,...this.additionalArgs],r&&(s.channel=r,c.debug(`[BrowserManager] Launching browser with channel: ${r}`))}let o=hu(t.deviceName),l=pu(t.deviceName),p={acceptDownloads:!0,...o,timezoneId:"America/Los_Angeles",locale:t.locale||"en-US"},A=a&&n?t.localStorageStatePath:void 0;t.localStorageStatePath&&!A&&(p.storageState=t.localStorageStatePath),t.recordVideo&&this.videoBasePath&&(p.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),t.proxy&&(p.proxy=t.proxy);let E,x,B;if(a&&n){if(t.userDataDir)B=t.userDataDir;else if(this.testDir)B=Lt.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let F={...s,...p};x=await Pi.launchPersistentContext(B,F),A&&(await ao(x,A),c.info(`[BrowserManager] Loaded storage state into persistent context from ${A}`)),E=x.browser(),c.info(`[BrowserManager] Launched persistent context for extension at ${t.extensionPath}`)}else{switch(i){case xt.Firefox:E=await ro.launch(s);break;case xt.Webkit:E=await no.launch(s);break;case xt.Chromium:default:E=await Pi.launch(s);break}x=await E.newContext(p)}if(x.addInitScript(ru),t.enableCamera||t.enableMicrophone)if(!n)c.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let F=[];t.enableCamera&&F.push("camera"),t.enableMicrophone&&F.push("microphone");try{await x.grantPermissions(F),c.info(`[BrowserManager] Granted permissions: ${F.join(", ")}`)}catch(m){c.warn("[BrowserManager] Failed to grant camera/microphone permissions:",m)}}if(t.cookies&&t.cookies.length>0){let F=(Date.now()+31536e6)/1e3,m=t.cookies.map(w=>({...w,expires:F}));await x.addCookies(m),c.info(`[BrowserManager] Added ${t.cookies.length} cookies to browser context with expires=${F}`)}let y=du(t.deviceName);c.info(`[BrowserManager] windowSize=${JSON.stringify(y)}`),n&&x.on("page",async F=>{try{await su(F,y.width,y.height)}catch(m){c.warn("[BrowserManager] Failed to set window bounds via CDP:",m)}});let b="";if(n&&e!==void 0)try{b=await au(e)}catch(F){c.warn("[BrowserManager] Failed to get CDP WebSocket URL:",F)}let D={debugPort:e,browser:E,context:x,startTime:new Date,timeout:null,browserWsUrl:b,downloadsBasePath:this.downloadsBasePath,browserType:i,userDataDir:B};if(this.terminationTimeout!==null){let F=setTimeout(()=>{c.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(D).catch(m=>c.error("[BrowserManager] Error terminating browser:",m))},this.terminationTimeout);D.timeout=F}return D}async terminateBrowser(t){t.timeout&&clearTimeout(t.timeout),await t.context.close(),await t.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}},q0=t=>{if(!t||t===cu)return"desktop";let e=lu(t);return e&&e.isMobile?"mobile":"desktop"},so=(t=>(t.Desktop="desktop",t.Mobile="mobile",t))(so||{}),oo=class{constructor(t){this.currentPage=null,this.currentIndex=-1,this.context=t,this.initialize()}initialize(){this.context.on("page",async e=>{await this.handleNewPage(e)});let t=this.context.pages();t.length>0&&(this.currentPage=t[0],this.currentIndex=0);for(let e of t)this.setupPageListeners(e)}async handleNewPage(t){try{this.setupPageListeners(t);let e=this.context.pages().indexOf(t);await this.setCurrentPage(t,e)}catch{}}setupPageListeners(t){t.on("close",async()=>{await this.handlePageClose(t)})}async handlePageClose(t){try{if(this.currentPage===t){let e=this.context.pages(),u=e.slice().reverse().find(i=>!i.isClosed());u&&await this.setCurrentPage(u,e.indexOf(u))}}catch{}}async setCurrentPage(t,e){let u=this.currentPage!==t;this.currentPage=t,this.currentIndex=e,u&&await t.bringToFront()}async switchToPage(t){let e=this.context.pages();if(t<0||t>=e.length)throw new Error(`Invalid page index: ${t}. Available pages: 0-${e.length-1}`);let u=e[t];if(u.isClosed())throw new Error(`Page at index ${t} is closed`);return await this.setCurrentPage(u,t),u}async closePage(t){let e=this.context.pages();if(t<0||t>=e.length)throw new Error(`Invalid page index: ${t}. Available pages: 0-${e.length-1}`);let u=e[t];if(u.isClosed())throw new Error(`Page at index ${t} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function co(t,e=3e3,u=1e3){try{await Xt(t,e,u)}catch{}}async function lo(t,e,u){let i=u*1e3,r=100,n=Date.now();for(;!e.downloadStatus||e.downloadStatus.status==="inProgress";){if(Date.now()-n>i){let a;throw e.downloadStatus?a=`Timed out after ${i}ms waiting for download to complete`:a="No download in progress or completed",c.error(a),new Error(a)}await t.waitForTimeout(r)}if(e.downloadStatus.status==="failed"){let a=`Download failed: ${e.downloadStatus.error||"Unknown error"}`;throw c.error(a),new Error(a)}e.agentNote=`Download completed: ${e.downloadStatus.filename}`}async function ho(t,e,u,i=60,r){let n=Math.min(i,280),a=Math.max(10,n/10)*1e3,s=Date.now()+n*1e3;for(c.info(`Waiting for condition: "${e}" (timeout: ${n}s)`);;){let o=Date.now();try{if(await u(t,e,r))return c.info(`Condition met: "${e}"`),!0}catch(p){c.warn(`Error evaluating condition: ${p.message}`)}if(Date.now()>s)return c.warn(`Timeout waiting for condition: "${e}"`),!1;let l=a-(Date.now()-o);l>0&&await t.waitForTimeout(l)}}var po=te(Vr(),1);function go(t){return t.url()===":"}var fo=class{constructor(t){this.context=t,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(t,e){this.testDataDownloader=t,this.testDataFileNames=e??[]}setupPageTracking(t){this.tabManager=new oo(t)}async switchTab(t){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(t)}async closeTab(t){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(t)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(t){let e=this.getCurrentPage();if(e&&e!==t&&!e.isClosed())return c.info(`[validatePage] Page changed, switching to ${e.url()}`),e;if(t.isClosed()){let u=t.context().pages().filter(i=>!i.isClosed());if(u.length>0){let i=u[u.length-1];return c.info(`[validatePage] Page closed, switching to ${i.url()}`),i}c.error("[validatePage] No valid pages found")}return t}replaceVariables(t){return mu(t,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(t){let e=this.context.testDataDir||process.cwd();return Bt.join(e,t)}async downloadTestDataFiles(t){if(t.length===0){c.debug("[AgentServices] No file paths provided for download");return}let e=this.context.testDataDir||process.cwd(),u=t.filter(i=>{let r=Bt.basename(i),n=Bt.join(e,r),a=Sr.existsSync(n);return a&&c.debug(`[AgentServices] File already exists locally: ${r}`),!a});if(u.length===0){c.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){c.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}c.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,e)}async waitForDownloadComplete(t,e){return lo(t,this.context,e)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(c.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(c.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(c.warn("Download completed but file path is missing"),null):(c.debug("No download found"),null)}addSensitive(t,e){this.context.variableStore.set(t,e,!0)}saveVariable(t,e){let u=t.startsWith("$")?t.slice(1):t;this.context.variableStore.set(u,e),c.debug(`Saved variable: ${u} = ${JSON.stringify(e)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(t){!t||t.trim()===""||(this.context.agentNote?this.context.agentNote+=`
|
|
103
|
+
${t.trim()}`:this.context.agentNote=t.trim())}readVariable(t){let e=t.startsWith("$")?t.slice(1):t,u=this.context.variableStore.get(e);return c.debug(`Read variable: ${e} = ${JSON.stringify(u)}`),u}async generate2faCode(t){try{let e=po.authenticator.generate(t);return c.info(`Generated 2FA code: ${e}`),e}catch(e){throw c.error(`Failed to generate 2FA code: ${e.message}`),new Error(`Failed to generate 2FA code: ${e.message}`)}}async getDOMText(t){return await t.evaluate(()=>document.body.innerText)}async waitUntilStable(t,e){return Xt(t,e)}setPage(t){this.context.setPage?(c.info("[AgentServices] Calling setPage callback"),this.context.setPage(t)):c.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}getIframeFallbackDomains(){return this.context.organizationSettings?.agent_settings?.iframe_fallback_domains||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let t=process.env.USE_DOM_TREE_TS;return t!==void 0?t==="true"||t==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(t){this.extensionEnabled=t}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(t){this.knowledgeRetriever=t}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(t,e,u,i){if(!this.knowledgeRetriever)return c.debug("[AgentServices] No knowledge retriever configured"),[];try{let r=await this.knowledgeRetriever(t,e,u,i);return c.debug(`[AgentServices] Retrieved ${r.length} knowledges for statement`),r}catch(r){return c.warn(`[AgentServices] Failed to retrieve knowledges: ${r.message}`),[]}}},mo=(t=>(t.Started="started",t.Action="action",t.Completion="completion",t.Error="error",t.Aborted="aborted",t.Keepalive="keepalive",t))(mo||{}),xo=class extends Error{constructor(t){super(t),this.name="AgentTaskFailedError",this.details=t}},Ao=1,Eo=3,Bo=40;function At(t,e){let u={};for(let[i,r]of Object.entries(t))u[i]=e.has(i)?"*****":r;return u}var Co=class{constructor(t){this.context=t,this._newActionEntities=new Map,this.agentServices=new fo(t),this.agentServices.agent=this,this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:t}=await import("./handler-2DVP4PMD-IFR4HH7D.js");this._actionHandler=new t}return this._actionHandler}async execAction(t,e,u){let i=(await this.getActionHandler()).getAction(t);if(!i)throw new Error(`Unknown action: ${t}`);await i.execute(e,u,this.agentServices)}async dismissModalIfPresent(t,e){try{let u=await this.execute(t,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
|
|
104
|
+
|
|
105
|
+
ONLY dismiss intrusive popups such as:
|
|
106
|
+
- Cookie/GDPR consent banners
|
|
107
|
+
- Newsletter or email signup popups
|
|
108
|
+
- Promotional discount or upsell popups
|
|
109
|
+
- "Rate our app" or feedback request popups
|
|
110
|
+
- Push notification permission requests
|
|
111
|
+
- Age verification popups
|
|
112
|
+
- Or similar unwanted popups that interrupt the user experience
|
|
113
|
+
|
|
114
|
+
DO NOT dismiss or interact with:
|
|
115
|
+
- Normal UI elements, buttons, or controls on the page
|
|
116
|
+
- Dialogs that are part of the user's workflow (confirmations, form submissions, etc.)
|
|
117
|
+
- Dropdown menus, filters, or date pickers
|
|
118
|
+
${e?`- Anything related to: "${e}"`:""}
|
|
119
|
+
|
|
120
|
+
If you find an intrusive popup, dismiss it by clicking its close/X button or "No thanks"/"Decline" button.
|
|
121
|
+
|
|
122
|
+
IMPORTANT: Only act with HIGH CONFIDENCE. If unsure whether something is an intrusive popup, do nothing.
|
|
123
|
+
It's better to miss a popup than to accidentally interact with normal page elements.
|
|
124
|
+
|
|
125
|
+
If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,Eo),i=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:i,details:u.details||(i?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(t){if(c.info(`[Download Tracking] Setting up download tracking for page: ${t.url()}`),go(t)){c.info(`[Download Tracking] Skipping download tracking for blank tab: ${t.url()}`),t.close();return}t.on("download",async e=>{let u=e.suggestedFilename();c.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},c.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let i=this.context.downloadDir||M.join(process.cwd(),"downloads");R.existsSync(i)||R.mkdirSync(i,{recursive:!0});let r=M.join(i,u);c.info(`[Download Tracking] Downloading file to: ${r}`),await e.saveAs(r),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:r,timestamp:Date.now()},c.info(`[Download Tracking] Download completed: ${r}`),c.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(i){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:i.message,timestamp:Date.now()},c.error(`[Download Tracking] Download failed for ${u}: ${i.message}`)}})}setupDialogHandling(t){if(c.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${t.isClosed()}, url=${t.url()}`),t.isClosed()){c.debug("[Dialog Handling] Skipping - page is closed");return}c.info(`[Dialog Handling] Setting up dialog handling for page: ${t.url()}`),t.on("dialog",async e=>{let u=e.type(),i=e.message();c.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${i}"`);let r=u==="beforeunload";try{r?await e.dismiss():await e.accept(),this.context.dialogStatus={type:u,message:i,response:r?"dismiss":"accept",timestamp:Date.now()},c.info(`[Dialog Handling] Dialog ${r?"dismissed":"accepted"} - type: ${u}, message: "${i}"`)}catch(n){c.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${n}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(t){this.agentServices.addNote(t)}collectTokenUsages(t){let e;Array.isArray(t)?e=t:t?.tokenUsages&&(e=t.tokenUsages),e&&e.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...e),c.debug(`[collectTokenUsages] Added ${e.length} token usage(s), total: ${this.context.tokenUsages.length}`)):c.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(t,e,u,i=1,r,n){if(!t)return;let a=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(o=>o.stepId===t&&o.actionType===e);s?(s.count+=i,a.length>0&&s.tokenUsages.push(...a),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),n&&(s.explanation=n)):this.context.aiActionDetails.push({stepId:t,actionType:e,count:i,tokenUsages:[...a],statement:r,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:n,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),c.debug(`[trackAIAction] Tracked ${e} for step ${t}, count: ${i}`)}async assert(t,e,u){c.info(`Asserting statement: ${e}`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),await this.agentServices.waitUntilStable(t);try{let i=this.getCompletedExecutionHistory(),r=await ae(e,t,this.agentServices,{executionHistory:i,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(r.debugInfo),this.context.lastActionDebugInfo=r.debugInfo;let n=r.explanation||r.error||"No explanation";if(u&&this.trackAIAction(u,"assert",r.debugInfo,1,e,n),this.context.agentNote=n,u&&this.context.stepTracking&&await this.updateStepResult(u,r.success?"success":"failure",n,void 0,r.debugInfo),!r.success)throw this.addToExecutionHistory(`Assert: "${e}"`,`Failed: ${n}`),new Error(`Assertion failed: ${n}`);return this.addToExecutionHistory(`Assert: "${e}"`,`Passed: ${n}`),!0}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async evaluate(t,e,u){c.info(`Evaluating condition: ${e}`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),await this.agentServices.waitUntilStable(t);try{let i=this.getCompletedExecutionHistory(),r=await ae(e,t,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(r.debugInfo),this.context.lastActionDebugInfo=r.debugInfo;let n=r.explanation||r.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",r.debugInfo,1,e,n),this.context.agentNote=n,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",n,void 0,r.debugInfo),r.success?(this.addToExecutionHistory(`Evaluate: "${e}"`,`Result: true - ${n}`),!0):(c.warn(`AI evaluation returned false/unknown: ${n}`),this.addToExecutionHistory(`Evaluate: "${e}"`,`Unknown/False: ${n}`),!1)}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async performAction(t,e){c.info(`Act: ${e}`);let u=this.getCompletedExecutionHistory(),i=await ne(e,t,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(i.debugInfo),i.status!=="success"||i.actionEntities.length===0)return{success:!1,details:i.explanation||i.error||"Action failed"};let r=i.actionEntities[0]?.action_description||e;return this.addToExecutionHistory(e,r),{success:!0,details:i.explanation}}async execute(t,e,u,i,r){if(r!==void 0&&r<=0)throw new Error(`maxSteps must be >= 1, got ${r}`);let n=r!==void 0&&r>1;c.info(`Executing statement: ${e} (${n?`multi, maxSteps: ${r}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),t=this.agentServices.validatePage(t),await this.agentServices.waitUntilStable(t);try{let a=this.getCompletedExecutionHistory();this.context.agentNote="";let s,o;if(n){let p=u&&this.context.stepTracking?.artifactsDir?A=>{if(A.type==="action"&&A.debugInfo){let E=`${u}-step${A.step}`;this.saveDebugInfoToFiles(E,A.debugInfo,this.context.model)}}:void 0;if(s=await se(e,t,this.agentServices,p,{executionHistory:a,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:r??Bo}),o=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let A={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",A,s.actionEntities?.length||1,e,s.explanation||"Multi-step execution completed")}}else if(t=this.agentServices.validatePage(t),s=await ne(e,t,this.agentServices,{executionHistory:a,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:i}),o=s.completed,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let p=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,e,p)}if(s.status!=="success"||s.actionEntities.length===0||!o){let p=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",p,void 0,s.debugInfo),new Error(`Action failed: ${p}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${e}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(a){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",a.message),this.addToExecutionHistory(`Execute: "${e}"`,`Failed: ${a.message}`),a}}async generate(t,e,u,i){u&&this.context.stepTracking&&await this.createStepResult(t,u,e);try{let r=this.getCompletedExecutionHistory(),n=await Qu(e,t,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:i});if(this.collectTokenUsages(n.debugInfo),n.status!=="success"||n.actionEntities.length===0){let o=n.explanation||n.error||"No explanation";throw u&&this.trackAIAction(u,"generate",n.debugInfo,1,e,o),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",o,void 0,n.debugInfo),new Error(o)}let a=n.completed,s=n.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",n.debugInfo,1,e,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,n.debugInfo),c.info(`[generate] Generated action for "${e}": ${s}, goalAccomplished: ${n.completed}`),{success:a,details:s,actions:n.actionEntities,debugInfo:n.debugInfo}}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async run(t,e,u,i){u&&this.context.stepTracking&&await this.createStepResult(t,u,e);try{let r=this.getCompletedExecutionHistory();this.context.agentNote="";let n=u&&this.context.stepTracking?.artifactsDir,a=i?.onAction||n?p=>{if(p.type==="action"&&p.action_entity&&(i?.onAction?.(p.action_entity),n&&p.debugInfo)){let A=`${u}-step${p.step}`;this.saveDebugInfoToFiles(A,p.debugInfo,this.context.model)}}:void 0,s=await se(e,t,this.agentServices,a,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:i?.abortSignal,maxSteps:i?.maxSteps});S.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let o=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(o?"Step completed":"Step failed");if(u&&s.tokenUsages){let p={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",p,s.actionEntities?.length||1,e,l)}if(!o)throw new xo(l);return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${e}"`,l),S.log(`Run result: success=${o}, details=${l}`),{success:o,details:l,actions:s.actionEntities}}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),this.addToExecutionHistory(`Run: "${e}"`,`Failed: ${r.message}`),r}}async step(t,e,u,i,r,n=!0,a){let s=Date.now();this.context.stepTracking&&await this.createStepResult(t,i,u),t=this.agentServices.validatePage(t),await this.agentServices.waitUntilStable(t),this.context.stepTracking&&(this.context.stepTracking.currentStepId=i),t=this.agentServices.validatePage(t);let o=t.url(),l=await this.captureDOMSnapshot(t),p=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},A=this.context.stepTracking?.results[i]?.screenshot;try{c.info(`Executing step ${i}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="",t=this.agentServices.validatePage(t);let E=await e();t=this.agentServices.validatePage(t);let x=t.url(),B=await this.captureDOMSnapshot(t),y=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(i,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let D=Date.now()-s,F=this.context.stepTracking.results[i]?.screenshot,m=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:D,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:x,domSnapshot:B||void 0,variables:y,screenshotPath:F,timestamp:m})}let b=this.context.agentNote;return(!b||b.trim()==="")&&(b="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=b),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),E}catch(E){t=this.agentServices.validatePage(t);let x=n&&!this.context.isSelfHealing;if(x&&(this.context.stepTracking&&await this.updateStepResult(i,"failure",E.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=E.message)),!u||u.trim()==="")throw c.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),E;if(!x){if(c.info(`Failed to heal at step ${i}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let b=t.url(),D=await this.captureDOMSnapshot(t),F=this.context.stepTracking.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},m=Date.now()-s,w=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:m,status:"failure",errorMessage:E.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:b,domSnapshot:D||void 0,variables:F,timestamp:w})}throw this.context.stepTracking&&(await this.updateStepResult(i,void 0,void 0),this.context.stepTracking.currentStepId=void 0),E}this.context.isSelfHealing=!0,c.info(`Action failed at step ${i}. ${u}`),c.info(`with error: ${E.message}`);let B;if(this.context.autoDisableModal){c.info("Attempting modal dismissal before self-healing...");let b=await this.dismissModalIfPresent(t,u);if(c.info(`Modal dismissal result: ${b.details}`),b.modalDismissed){B=`[Auto-dismissed modal: ${b.details}]`,c.info(`Modal dismissed, retrying original action for step ${i}`);try{let D=await e();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=B+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(i,"success",B),this.context.stepTracking.currentStepId=void 0),D}catch(D){c.info(`Retry after modal dismissal failed: ${D.message}, falling back to self-healing`)}}}let y=a??Ao;c.info(`Calling execute() to self-heal (maxSteps: ${y})`);try{let b=await this.execute(t,u,i,!1,y);if(this.context.isSelfHealing=!1,!b.success)throw new Error(`Self-healing failed: ${b.details}`);let D=b.actions?.at(-1);r&&D&&(this._newActionEntities.set(r,D),c.info(`Stored new action entity for stmtUid: ${r} (last of ${b.actions?.length} actions)`));let F=t.url(),m=await this.captureDOMSnapshot(t),w=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let v=B||"";await this.updateStepResult(i,"success",v)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let v=Date.now()-s,I=this.context.stepTracking.results[i]?.screenshot,$=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{actionEntity:D,playwrightCode:b.actions?.map(Y=>Y.locator||""),llmPrompt:b.debugInfo?.userPrompt,llmResponse:b.debugInfo?.rawLlmResponse,llmReasoning:b.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(i),durationMs:v,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:F,domSnapshot:m||void 0,variables:w,screenshotPath:I,timestamp:$})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),b}catch(b){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let D=t.url(),F=await this.captureDOMSnapshot(t),m=this.context.stepTracking.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},w=Date.now()-s,v=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:w,status:"failure",errorMessage:b.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:D,domSnapshot:F||void 0,variables:m,timestamp:v})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),b}}}async extract(t,e,u,i){i&&this.context.stepTracking&&await this.createStepResult(t,i,`Extract ${e} into ${u}`);try{let r=`Extract ${e} and save to ${u}`,n=await this.execute(t,r,i);if(!n.success)throw new Error(`AI extraction failed: ${n.details}`);i&&this.context.stepTracking&&await this.updateStepResult(i,"success",`Extracted ${e} to ${u}`)}catch(r){throw i&&this.context.stepTracking&&await this.updateStepResult(i,"failure",r.message),r}}async getDOMText(t){let e=new re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),i=this.agentServices.getIframeFallbackDomains();return(await e.getClickableElements(t,{interactiveClassNames:u,playwrightFrameFallbackDomains:i})).elementTree.clickableElementsToString()}async captureDOMSnapshot(t){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let e=new re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),i=this.agentServices.getIframeFallbackDomains(),r=await e.getClickableElements(t,{interactiveClassNames:u,playwrightFrameFallbackDomains:i,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(e){return c.warn("Failed to capture DOM snapshot:",e),null}}getConsoleLogsForStep(t){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(e=>e.stepId===t).map(e=>({type:e.type,message:e.message,timestamp:e.timestamp})):[]}async waitUntilStable(t,e=3e3,u=1e3){return co(t,e,u)}async waitUntilCondition(t,e,u=60,i){return ho(t,e,(r,n,a)=>this.evaluate(r,n,a),u,i)}async uploadFile(t,e,u={},i){return yu(t,e,u,this.context,(r,n,a)=>this.execute(r,n,a),i)}async loginPage(t,e,u){let{LoginType:i}=await import("./agentLogin-VLDCPI66-52P67BMY.js");if(c.info("Start login"),S.section("Login Flow"),S.log(`Site URL: ${e.site_url}`),S.log(`Account type: ${e.account.type}`),S.log(`Has cached actions: ${!!u?.cached_actions?.length}`),S.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),e.skip_verification)return c.info("Skipping login verification (skip_verification=true)"),{success:!0,page:t};if((e.account.type===i.PASSWORD||e.account.type===i.OAUTH2)&&(this.context.variableStore.set("username",e.account.username,!0),this.context.variableStore.set("password",e.account.password,!0)),e.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",e.account.two_factor_auth_config.data,!0),c.info(`Navigating to: ${e.site_url}`),await t.goto(e.site_url),await this.waitUntilStable(t,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(S.log("Level 1: Checking if already logged in via storage state..."),S.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await ee(t,u.validation_exprs))return S.log("Level 1 SUCCESS: Already logged in via storage state"),c.info("Login: Already logged in via storage state"),{success:!0,page:t,storage_state:null,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0};S.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){S.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(t,u.cached_actions,u.validation_exprs)).success){S.log("Level 2 SUCCESS: Cached login succeeded"),c.info("Login: Cached login succeeded");let n=await t.context().storageState();return{success:!0,page:t,storage_state:n,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}S.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(n){S.log(`Level 2 ERROR: ${n.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&S.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let r=`First check if the page is already signed in. If it is, do nothing.
|
|
126
|
+
Use your best judgement to determine if the page is signed in.
|
|
127
|
+
`;if(e.verification_hint&&(r+=`
|
|
128
|
+
Signed in verification hint: ${e.verification_hint}
|
|
129
|
+
`),e.account.type===i.PASSWORD)r+=`
|
|
130
|
+
If the page is not signed in, sign in using provided credentials ($username, $password, etc).
|
|
131
|
+
`;else{let n=e.account;r+=`
|
|
132
|
+
If the page is not signed in, sign in with the OAuth provider "${n.provider_name}" using provided credentials
|
|
133
|
+
($username, $password), and use $otp_secret_key to generate $otp_code for two-factor authentication. If you can't login with the provided credentials, just stop and report the failure.
|
|
134
|
+
`}e.additional_prompt&&(r+=`
|
|
135
|
+
Additional instructions: ${e.additional_prompt}
|
|
136
|
+
`);try{S.log("Level 3: Attempting agent-based login"),S.log(`Login prompt:
|
|
137
|
+
${r}`);let n=this.agentServices.knowledgeRetriever,a=!1;this.agentServices.hasKnowledgeRetriever()&&n&&(S.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(E,x,B,y)=>await n(E,x,B,"login")),a=!0,S.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(t,r,"login"),!s.success)return S.log("Level 3 FAILED: Agent login failed"),c.info("Login: Failed"),{success:!1,page:t}}finally{a&&n&&(this.agentServices.setKnowledgeRetriever(n),S.log("Restored original knowledge retriever"))}let o=await t.context().storageState(),l;if(e.num_verification_exprs!==0)try{S.log("Generating validation locators for future login verification...");let E=await Au(t,e.site_url,{verification_hint:e.verification_hint,num_verification_exprs:e.num_verification_exprs},async(x,B)=>this.run(x,B),async x=>this.getDOMText(x));E?(l=E,S.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):S.log("Failed to generate validation locators, login will still succeed")}catch(E){S.log(`Error generating validation locators: ${E.message}`)}else S.log("Skipping validation locator generation (num_verification_exprs=0)");S.log("Level 3 SUCCESS: Agent login succeeded"),c.info("Login: Agent login succeeded");let p=s.actions||[],A=p.length>0?p:u?.cached_actions;return{success:!0,page:t,storage_state:o,cached_actions:A,validation_exprs:l}}catch(n){return S.error(`Agent login failed: ${n.message}`),c.info("Login: Failed"),{success:!1,page:t}}}async executeCachedLogin(t,e,u){let i=(await import("./handler-2DVP4PMD-IFR4HH7D.js")).default,r=new i;for(let n=0;n<e.length;n++){let a=e[n];S.log(`Executing cached action ${n+1}/${e.length}: ${a.action_description||a.action_data?.action_name}`);try{if(!a.action_data){S.log(`Action ${n+1} missing action_data, skipping`);continue}await r.execute(t,a,this.agentServices),await this.waitUntilStable(t,5e3)}catch(s){return S.error(`Cached action ${n+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await ee(t,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let t=this.context.executionHistory[this.context.executionHistory.length-1];return!t[1]||t[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(t,e){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([t,e])}async createStepResult(t,e,u){if(!this.context.stepTracking||this.context.stepTracking.results[e])return;this.context.stepTracking.currentStepId=e,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(e),t=this.agentServices.validatePage(t),await this.waitUntilStable(t);let i={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let r=M.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));R.mkdirSync(r,{recursive:!0});let n=M.join(r,"screenshot.png");t=this.agentServices.validatePage(t),await t.screenshot({type:"png",path:n}),i.screenshot=n}this.context.stepTracking.results[e]=i}saveDebugInfoToFiles(t,e,u){let i={};if(!this.context.stepTracking?.artifactsDir)return c.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),i;let r=M.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));try{if(R.mkdirSync(r,{recursive:!0}),e.systemPrompt){let n=M.join(r,"system_prompt.txt");R.writeFileSync(n,e.systemPrompt),i.system_prompt_path=n,c.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${n}`)}if(e.userPrompt)if(typeof e.userPrompt=="string"){let n=M.join(r,"user_prompt.txt");R.writeFileSync(n,e.userPrompt),i.user_prompt_path=n,c.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${n}`)}else{let n=e.userPrompt.map(o=>Array.isArray(o.content)?{...o,content:o.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:o),a=M.join(r,"messages.json"),s={system:e.systemPrompt,messages:n};R.writeFileSync(a,JSON.stringify(s,null,2)),i.messages_path=a,c.debug(`[saveDebugInfoToFiles] Saved messages to: ${a}`)}if(e.rawLlmResponse){let n=u?u.replace(/[\/\\:]/g,"-"):"llm",a=M.join(r,`${n}_response.txt`);R.writeFileSync(a,e.rawLlmResponse),i.response_path=a,c.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${a}`)}if(e.screenshotWithSom){let n=M.join(r,"screenshot.png");R.writeFileSync(n,Buffer.from(e.screenshotWithSom,"base64")),i.screenshot_path=n,c.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${n}`)}if(e.reasoningContent){let n=M.join(r,"reasoning.txt");R.writeFileSync(n,e.reasoningContent),i.reasoning_path=n,c.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${n}`)}c.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(i).length} artifacts for step ${t}`)}catch(n){c.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${t}:`,n)}return i}async updateStepResult(t,e,u,i,r){if(!this.context.stepTracking)return;let n=this.context.stepTracking.results[t];if(n){if(e&&(n.status=e,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(n.message=u),i&&n.artifacts.push(i),r){let a=r.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(t,r,a);Object.keys(s).length>0&&n.artifacts.push(s)}n.duration=Date.now()-n.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(t,n)}}async writeExecutionResults(t,e){try{if(await R.promises.mkdir(t,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=M.join(t,"test-results.json");await R.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),c.debug(`Test results written to: ${u}`)}if(e?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=M.join(t,"token-usages.json");await R.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),c.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=M.join(t,"ai-actions.json");await R.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),c.debug(`AI action details written to: ${u}`)}}catch(u){throw c.error("Failed to write execution results:",u),u}}};function Do(){let t=new Date,e=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(t),u=e.find(D=>D.type==="year").value,i=e.find(D=>D.type==="month").value,r=e.find(D=>D.type==="day").value,n=e.find(D=>D.type==="hour").value,a=e.find(D=>D.type==="minute").value,s=e.find(D=>D.type==="second").value,o=String(t.getMilliseconds()).padStart(3,"0"),l=`${u}-${i}-${r}T${n}:${a}:${s}.${o}`,p=t.toISOString().slice(0,-1),A=Date.parse(l+"Z"),E=Date.parse(p+"Z"),x=Math.round((E-A)/(1e3*60)),B=String(Math.floor(Math.abs(x)/60)).padStart(2,"0"),y=String(Math.abs(x)%60).padStart(2,"0"),b=x<=0?"+":"-";return`${u}-${i}-${r}T${n}:${a}:${s}.${o}${b}${B}:${y}`}function bo(t){let e=t.variableStore;return e.has("currentTime")||e.set("currentTime",Do()),{model:t.model,variableStore:e,organizationId:t.organizationId,organizationSettings:t.organizationSettings,executionHistory:t.executionHistory||[],testDataDir:t.testDataDir,downloadDir:t.downloadDir,useNativeGenerator:t.useNativeGenerator,autoDisableModal:t.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function O0(t){let e=new xu,u=new Set(t.sensitiveKeys||[]);if(t.variables)for(let[r,n]of Object.entries(t.variables))e.set(r,n,u.has(r));let i=bo({model:t.model,variableStore:e,testDataDir:t.testDataDir,downloadDir:t.downloadDir});return new Co(i)}var M0="1.0.0",wo=Nt.object({found:Nt.boolean().describe("Whether an activation code was found in the document"),activation_code:Nt.string().nullable().describe("The extracted activation code, or null if not found"),explanation:Nt.string().describe("Brief explanation of what was found or why nothing was found")});async function yo(t,e,u){c.info(`Extracting activation code from file: ${t}`);let i=`${e}/${t}`;if(!Wt.existsSync(i))throw new Error(`PDF file not found: ${i}`);let r=Wt.readFileSync(i).toString("base64"),n=`You are analyzing a PDF document to extract an activation code.
|
|
138
|
+
|
|
139
|
+
Please carefully examine the PDF and look for:
|
|
140
|
+
1. The activation code on the first page top right corner
|
|
141
|
+
2. It might be labeled as "Activation Code", etc.
|
|
142
|
+
3. The code is typically numeric
|
|
143
|
+
|
|
144
|
+
If you find an activation code, extract it exactly as shown.
|
|
145
|
+
If you cannot find an activation code, explain what you found instead.`,a=[{role:"user",content:[{type:"text",text:"Please examine this PDF document and extract the activation code."},{type:"file",data:r,mediaType:"application/pdf"}]}],s=await le(async()=>(await Ft({model:ie(u),system:n,messages:a,output:Bu.object({schema:wo}),temperature:.1})).output,{retries:3,onFailedAttempt:o=>{c.warn(`Activation code extraction attempt ${o.attemptNumber} failed. ${o.retriesLeft} retries left. Error: ${o.message}`)}});if(s.found&&s.activation_code)return c.info(`Activation code extracted: ${s.activation_code.substring(0,10)}...`),s.activation_code;{let o=s.explanation||"Activation code not found in PDF";throw c.error(`Activation code extraction failed: ${o}`),new Error(o)}}var Fo=class{async execute(t,e,u){let i=e.action_data;if(!i)throw new Error("Action data not found");let r=i.kwargs,n=u.getDownloadDir?.();if(!n)throw new Error("Download directory not configured. Please set downloadDir when creating the agent.");let a=u.getModel?.()||"gemini-2.5-pro",s=await yo(r.file_name,n,a);u.variableStore.set("activation_code",s,!0),c.info("[extract_activation_code] Extracted and saved to $activation_code")}transpile(t){let e=t.action_data?.kwargs||{};return['await agent.execAction("extract_activation_code", page, {',` action_data: { kwargs: ${JSON.stringify(e)} },`,"});"]}},vo=Ri.object({file_name:Ri.string().describe("Name of the PDF file to extract activation code from (must be in the download directory)")});function ko(t,e){t.register({name:"extract_activation_code",description:"Extract activation code from a downloaded PDF file. The PDF should contain an activation code, typically in the top right corner of the first page. The extracted code will be saved to the $activation_code variable.",schema:vo,async execute(u,i){let{file_name:r}=u,{page:n,agentServices:a}=i;c.info(`[extract_activation_code] Extracting activation code from file: ${r}`);try{let s={action_description:"Extract activation code from PDF",action_data:{action_name:"extract_activation_code",kwargs:{file_name:r}}};return await e.execute(n,s,a),{success:!0,actionEntity:s,message:"Extracted activation code and saved to $activation_code"}}catch(s){return{success:!1,error:s.message,actionEntity:{action_description:"Extract activation code from PDF (failed)",action_data:{action_name:"extract_activation_code",kwargs:{file_name:r}},feedback:s.message}}}}})}function So(){if(c.debug("[sdk-internal] Registering internal tools..."),H.has("extract_activation_code")){c.debug("[sdk-internal] Internal tools already registered, skipping");return}let t=new Fo;Ju.registerAction("extract_activation_code",t),ko(H,t),c.debug("[sdk-internal] Registered tool: extract_activation_code"),c.debug("[sdk-internal] Internal tools registered successfully")}So();export{Wr as a,f0 as b,m0 as c,x0 as d,A0 as e,v0 as f,k0 as g,S0 as h,T0 as i,_0 as j,I0 as k,L0 as l,R0 as m,q0 as n,fo as o,mo as p,xo as q,Co as r,bo as s,O0 as t,M0 as u};
|
|
146
|
+
/*! Bundled license information:
|
|
147
|
+
|
|
148
|
+
@otplib/plugin-crypto/index.js:
|
|
149
|
+
(**
|
|
150
|
+
* @otplib/plugin-crypto
|
|
151
|
+
*
|
|
152
|
+
* @author Gerald Yeo <contact@fusedthought.com>
|
|
153
|
+
* @version: 12.0.1
|
|
154
|
+
* @license: MIT
|
|
155
|
+
**)
|
|
156
|
+
|
|
157
|
+
@otplib/plugin-thirty-two/index.js:
|
|
158
|
+
(**
|
|
159
|
+
* @otplib/plugin-thirty-two
|
|
160
|
+
*
|
|
161
|
+
* @author Gerald Yeo <contact@fusedthought.com>
|
|
162
|
+
* @version: 12.0.1
|
|
163
|
+
* @license: MIT
|
|
164
|
+
**)
|
|
165
|
+
|
|
166
|
+
@otplib/core/index.js:
|
|
167
|
+
(**
|
|
168
|
+
* @otplib/core
|
|
169
|
+
*
|
|
170
|
+
* @author Gerald Yeo <contact@fusedthought.com>
|
|
171
|
+
* @version: 12.0.1
|
|
172
|
+
* @license: MIT
|
|
173
|
+
**)
|
|
174
|
+
|
|
175
|
+
@otplib/preset-default/index.js:
|
|
176
|
+
(**
|
|
177
|
+
* @otplib/preset-default
|
|
178
|
+
*
|
|
179
|
+
* @author Gerald Yeo <contact@fusedthought.com>
|
|
180
|
+
* @version: 12.0.1
|
|
181
|
+
* @license: MIT
|
|
182
|
+
**)
|
|
183
|
+
|
|
184
|
+
otplib/index.js:
|
|
185
|
+
(**
|
|
186
|
+
* otplib
|
|
187
|
+
*
|
|
188
|
+
* @author Gerald Yeo <contact@fusedthought.com>
|
|
189
|
+
* @version: 12.0.1
|
|
190
|
+
* @license: MIT
|
|
191
|
+
**)
|
|
192
|
+
*/
|