diff --git a/electron/package.json b/electron/package.json index 0b0de7ba..5105be03 100644 --- a/electron/package.json +++ b/electron/package.json @@ -2,6 +2,7 @@ "name": "presenton", "productName": "Presenton Open Source", "version": "0.6.2-beta", + "exportVersion": "v0.1.0", "main": "app_dist/main.js", "description": "Open-Source AI Presentation Generator", "homepage": "https://presenton.ai", @@ -29,12 +30,15 @@ "dist": "electron-builder", "postinstall": "electron-builder install-app-deps", "dev": "rm -rf app_dist && tsc && electron .", - "setup:env": "npm install && cd servers/fastapi && uv sync && cd ../../servers/nextjs && npm install", + "setup:env": "npm install && cd servers/fastapi && uv sync && cd ../../servers/nextjs && npm install && cd ../.. && npm run setup:export-runtime", "install:pyinstaller": "cd servers/fastapi && echo 'pyinstaller already in dependencies'", "build:ts": "rm -rf app_dist && tsc", "build:css": "tailwindcss -i ./resources/ui/assets/css/tailwind.import.css -o ./resources/ui/assets/css/tailwind.css --watch", "build:vectorstore": "cd servers/fastapi && uv run python build_vectorstore.py", "build:export-runtime": "node sync_export_runtime.js", + "setup:export-runtime": "node sync_export_runtime.js", + "fetch:export-runtime": "node sync_export_runtime.js --force", + "fetch:export-runtime:latest": "EXPORT_RUNTIME_VERSION=latest node sync_export_runtime.js --force", "build:nextjs": "rm -rf resources/nextjs && cd servers/nextjs && cross-env BUILD_TARGET=electron npm run build && cp -r .next-build ../../resources/nextjs && cp -r app/presentation-templates ../../resources/nextjs/presentation-templates", "build:fastapi": "rm -rf resources/fastapi && npm run build:vectorstore && (cp ../servers/fastapi/alembic/versions/*.py servers/fastapi/alembic/versions/ 2>/dev/null || true) && cd servers/fastapi && uv run python -m PyInstaller --distpath ../../resources server.spec", "generate:version": "node generate_update.js", diff --git a/electron/resources/export/index.js b/electron/resources/export/index.js deleted file mode 100644 index bdfa1f6c..00000000 --- a/electron/resources/export/index.js +++ /dev/null @@ -1,1035 +0,0 @@ -"use strict";var LQr=Object.create;var eae=Object.defineProperty;var OQr=Object.getOwnPropertyDescriptor;var UQr=Object.getOwnPropertyNames;var Lbt=Object.getPrototypeOf,GQr=Object.prototype.hasOwnProperty;var JQr=Reflect.get;var Yje=a=>{throw TypeError(a)};var HQr=(a,r,s)=>r in a?eae(a,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[r]=s;var Nn=(a,r)=>()=>(a&&(r=a(a=0)),r);var Gt=(a,r)=>()=>(r||a((r={exports:{}}).exports,r),r.exports),Ck=(a,r)=>{for(var s in r)eae(a,s,{get:r[s],enumerable:!0})},Obt=(a,r,s,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let f of UQr(r))!GQr.call(a,f)&&f!==s&&eae(a,f,{get:()=>r[f],enumerable:!(c=OQr(r,f))||c.enumerable});return a};var wc=(a,r,s)=>(s=a!=null?LQr(Lbt(a)):{},Obt(r||!a||!a.__esModule?eae(s,"default",{value:a,enumerable:!0}):s,a)),l_=a=>Obt(eae({},"__esModule",{value:!0}),a);var Hr=(a,r,s)=>HQr(a,typeof r!="symbol"?r+"":r,s),Vje=(a,r,s)=>r.has(a)||Yje("Cannot "+s),wh=(a,r)=>Object(r)!==r?Yje('Cannot use the "in" operator on this value'):a.has(r),I=(a,r,s)=>(Vje(a,r,"read from private field"),s?s.call(a):r.get(a)),Ae=(a,r,s)=>r.has(a)?Yje("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(a):r.set(a,s),Be=(a,r,s,c)=>(Vje(a,r,"write to private field"),c?c.call(a,s):r.set(a,s),s),Ke=(a,r,s)=>(Vje(a,r,"access private method"),s);var l3=(a,r,s,c)=>({set _(f){Be(a,r,f,s)},get _(){return I(a,r,c)}}),Ubt=(a,r,s)=>JQr(Lbt(a),s,r);function AN(a,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");$je(a,r);function s(){this.constructor=a}a.prototype=r===null?Object.create(r):(s.prototype=r.prototype,new s)}function jQr(a,r,s,c){function f(p){return p instanceof s?p:new s(function(C){C(p)})}return new(s||(s=Promise))(function(p,C){function b(O){try{L(c.next(O))}catch(j){C(j)}}function N(O){try{L(c.throw(O))}catch(j){C(j)}}function L(O){O.done?p(O.value):f(O.value).then(b,N)}L((c=c.apply(a,r||[])).next())})}function Wbt(a,r){var s={label:0,sent:function(){if(p[0]&1)throw p[1];return p[1]},trys:[],ops:[]},c,f,p,C=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return C.next=b(0),C.throw=b(1),C.return=b(2),typeof Symbol=="function"&&(C[Symbol.iterator]=function(){return this}),C;function b(L){return function(O){return N([L,O])}}function N(L){if(c)throw new TypeError("Generator is already executing.");for(;C&&(C=0,L[0]&&(s=0)),s;)try{if(c=1,f&&(p=L[0]&2?f.return:L[0]?f.throw||((p=f.return)&&p.call(f),0):f.next)&&!(p=p.call(f,L[1])).done)return p;switch(f=0,p&&(L=[L[0]&2,p.value]),L[0]){case 0:case 1:p=L;break;case 4:return s.label++,{value:L[1],done:!1};case 5:s.label++,f=L[1],L=[0];continue;case 7:L=s.ops.pop(),s.trys.pop();continue;default:if(p=s.trys,!(p=p.length>0&&p[p.length-1])&&(L[0]===6||L[0]===2)){s=0;continue}if(L[0]===3&&(!p||L[1]>p[0]&&L[1]=a.length&&(a=void 0),{value:a&&a[c++],done:!a}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function cN(a,r){var s=typeof Symbol=="function"&&a[Symbol.iterator];if(!s)return a;var c=s.call(a),f,p=[],C;try{for(;(r===void 0||r-- >0)&&!(f=c.next()).done;)p.push(f.value)}catch(b){C={error:b}}finally{try{f&&!f.done&&(s=c.return)&&s.call(c)}finally{if(C)throw C.error}}return p}function f3(a,r,s){if(s||arguments.length===2)for(var c=0,f=r.length,p;c1||N(R,H)})},J&&(f[R]=J(f[R])))}function N(R,J){try{L(c[R](J))}catch(H){k(p[0][3],H)}}function L(R){R.value instanceof eq?Promise.resolve(R.value.v).then(O,j):k(p[0][2],R)}function O(R){N("next",R)}function j(R){N("throw",R)}function k(R,J){R(J),p.shift(),p.length&&N(p[0][0],p[0][1])}}function qQr(a){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=a[Symbol.asyncIterator],s;return r?r.call(a):(a=typeof aN=="function"?aN(a):a[Symbol.iterator](),s={},c("next"),c("throw"),c("return"),s[Symbol.asyncIterator]=function(){return this},s);function c(p){s[p]=a[p]&&function(C){return new Promise(function(b,N){C=a[p](C),f(b,N,C.done,C.value)})}}function f(p,C,b,N){Promise.resolve(N).then(function(L){p({value:L,done:b})},C)}}function Ng(a){return typeof a=="function"}function eKe(a){var r=function(c){Error.call(c),c.stack=new Error().stack},s=a(r);return s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,s}function tae(a,r){if(a){var s=a.indexOf(r);0<=s&&a.splice(s,1)}}function Vbt(a){return a instanceof nae||a&&"closed"in a&&Ng(a.remove)&&Ng(a.add)&&Ng(a.unsubscribe)}function Gbt(a){Ng(a)?a():a.unsubscribe()}function zbt(a){H1e.setTimeout(function(){var r=m5.onUnhandledError;if(r)r(a);else throw a})}function h5(){}function YQr(a){return tKe("E",void 0,a)}function VQr(a){return tKe("N",a,void 0)}function tKe(a,r,s){return{kind:a,value:r,error:s}}function J1e(a){if(m5.useDeprecatedSynchronousErrorHandling){var r=!_5;if(r&&(_5={errorThrown:!1,error:null}),a(),r){var s=_5,c=s.errorThrown,f=s.error;if(_5=null,c)throw f}}else a()}function zQr(a){m5.useDeprecatedSynchronousErrorHandling&&_5&&(_5.errorThrown=!0,_5.error=a)}function Xje(a,r){return XQr.call(a,r)}function G1e(a){m5.useDeprecatedSynchronousErrorHandling?zQr(a):zbt(a)}function $Qr(a){throw a}function Zje(a,r){var s=m5.onStoppedNotification;s&&H1e.setTimeout(function(){return s(a,r)})}function Qw(a){return a}function Xbt(){for(var a=[],r=0;r=2;return function(c){return c.pipe(a?pQ(function(f,p){return a(f,p,c)}):Qw,iae(1),s?cKe(r):oae(function(){return new q1e}))}}function yDt(a,r,s){return s===void 0&&(s=1/0),Wm(function(c,f){var p=r;return _Dt(c,f,function(C,b){return a(p,C,b)},s,function(C){p=C},!1,void 0,function(){return p=null})})}function Cp(){for(var a=[],r=0;r{$je=function(a,r){return $je=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,c){s.__proto__=c}||function(s,c){for(var f in c)Object.prototype.hasOwnProperty.call(c,f)&&(s[f]=c[f])},$je(a,r)};zje=eKe(function(a){return function(s){a(this),this.message=s?s.length+` errors occurred during unsubscription: -`+s.map(function(c,f){return f+1+") "+c.toString()}).join(` - `):"",this.name="UnsubscriptionError",this.errors=s}});nae=(function(){function a(r){this.initialTeardown=r,this.closed=!1,this._parentage=null,this._finalizers=null}return a.prototype.unsubscribe=function(){var r,s,c,f,p;if(!this.closed){this.closed=!0;var C=this._parentage;if(C)if(this._parentage=null,Array.isArray(C))try{for(var b=aN(C),N=b.next();!N.done;N=b.next()){var L=N.value;L.remove(this)}}catch(H){r={error:H}}finally{try{N&&!N.done&&(s=b.return)&&s.call(b)}finally{if(r)throw r.error}}else C.remove(this);var O=this.initialTeardown;if(Ng(O))try{O()}catch(H){p=H instanceof zje?H.errors:[H]}var j=this._finalizers;if(j){this._finalizers=null;try{for(var k=aN(j),R=k.next();!R.done;R=k.next()){var J=R.value;try{Gbt(J)}catch(H){p=p??[],H instanceof zje?p=f3(f3([],cN(p)),cN(H.errors)):p.push(H)}}}catch(H){c={error:H}}finally{try{R&&!R.done&&(f=k.return)&&f.call(k)}finally{if(c)throw c.error}}}if(p)throw new zje(p)}},a.prototype.add=function(r){var s;if(r&&r!==this)if(this.closed)Gbt(r);else{if(r instanceof a){if(r.closed||r._hasParent(this))return;r._addParent(this)}(this._finalizers=(s=this._finalizers)!==null&&s!==void 0?s:[]).push(r)}},a.prototype._hasParent=function(r){var s=this._parentage;return s===r||Array.isArray(s)&&s.includes(r)},a.prototype._addParent=function(r){var s=this._parentage;this._parentage=Array.isArray(s)?(s.push(r),s):s?[s,r]:r},a.prototype._removeParent=function(r){var s=this._parentage;s===r?this._parentage=null:Array.isArray(s)&&tae(s,r)},a.prototype.remove=function(r){var s=this._finalizers;s&&tae(s,r),r instanceof a&&r._removeParent(this)},a.EMPTY=(function(){var r=new a;return r.closed=!0,r})(),a})(),Ybt=nae.EMPTY;m5={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},H1e={setTimeout:function(a,r){for(var s=[],c=2;c0},enumerable:!1,configurable:!0}),r.prototype._trySubscribe=function(s){return this._throwIfClosed(),a.prototype._trySubscribe.call(this,s)},r.prototype._subscribe=function(s){return this._throwIfClosed(),this._checkFinalizedStatuses(s),this._innerSubscribe(s)},r.prototype._innerSubscribe=function(s){var c=this,f=this,p=f.hasError,C=f.isStopped,b=f.observers;return p||C?Ybt:(this.currentObservers=null,b.push(s),new nae(function(){c.currentObservers=null,tae(b,s)}))},r.prototype._checkFinalizedStatuses=function(s){var c=this,f=c.hasError,p=c.thrownError,C=c.isStopped;f?s.error(p):C&&s.complete()},r.prototype.asObservable=function(){var s=new im;return s.source=this,s},r.create=function(s,c){return new Hbt(s,c)},r})(im),Hbt=(function(a){AN(r,a);function r(s,c){var f=a.call(this)||this;return f.destination=s,f.source=c,f}return r.prototype.next=function(s){var c,f;(f=(c=this.destination)===null||c===void 0?void 0:c.next)===null||f===void 0||f.call(c,s)},r.prototype.error=function(s){var c,f;(f=(c=this.destination)===null||c===void 0?void 0:c.error)===null||f===void 0||f.call(c,s)},r.prototype.complete=function(){var s,c;(c=(s=this.destination)===null||s===void 0?void 0:s.complete)===null||c===void 0||c.call(s)},r.prototype._subscribe=function(s){var c,f;return(f=(c=this.source)===null||c===void 0?void 0:c.subscribe(s))!==null&&f!==void 0?f:Ybt},r})($bt),nKe={now:function(){return(nKe.delegate||Date).now()},delegate:void 0},eDt=(function(a){AN(r,a);function r(s,c,f){s===void 0&&(s=1/0),c===void 0&&(c=1/0),f===void 0&&(f=nKe);var p=a.call(this)||this;return p._bufferSize=s,p._windowTime=c,p._timestampProvider=f,p._buffer=[],p._infiniteTimeWindow=!0,p._infiniteTimeWindow=c===1/0,p._bufferSize=Math.max(1,s),p._windowTime=Math.max(1,c),p}return r.prototype.next=function(s){var c=this,f=c.isStopped,p=c._buffer,C=c._infiniteTimeWindow,b=c._timestampProvider,N=c._windowTime;f||(p.push(s),!C&&p.push(b.now()+N)),this._trimBuffer(),a.prototype.next.call(this,s)},r.prototype._subscribe=function(s){this._throwIfClosed(),this._trimBuffer();for(var c=this._innerSubscribe(s),f=this,p=f._infiniteTimeWindow,C=f._buffer,b=C.slice(),N=0;N>>0,1):a.set(r,[]))},emit:function(r,s){var c=a.get(r);c&&c.slice().map(function(f){f(s)}),(c=a.get("*"))&&c.slice().map(function(f){f(r,s)})}}}var vDt=Nn(()=>{});var go,bh,wDt,bDt,g3,Ik,fKe,uKe,Jl,DDt,SDt,d3,PD,gKe,lKe,Y1e,uae,lae,Aae,zYr,tg=Nn(()=>{Symbol.dispose??(Symbol.dispose=Symbol("dispose"));Symbol.asyncDispose??(Symbol.asyncDispose=Symbol("asyncDispose"));go=Symbol.dispose,bh=Symbol.asyncDispose,fKe=class fKe{constructor(){Ae(this,g3,!1);Ae(this,Ik,[]);Hr(this,wDt,"DisposableStack")}get disposed(){return I(this,g3)}dispose(){this[go]()}use(r){return r&&typeof r[go]=="function"&&I(this,Ik).push(r),r}adopt(r,s){return I(this,Ik).push({[go](){s(r)}}),r}defer(r){I(this,Ik).push({[go](){r()}})}move(){if(I(this,g3))throw new ReferenceError("A disposed stack can not use anything new");let r=new fKe;return Be(r,Ik,I(this,Ik)),Be(this,Ik,[]),Be(this,g3,!0),r}[(bDt=go,wDt=Symbol.toStringTag,bDt)](){if(I(this,g3))return;Be(this,g3,!0);let r=[];for(let s of I(this,Ik).reverse())try{s[go]()}catch(c){r.push(c)}if(r.length===1)throw r[0];if(r.length>1){let s=null;for(let c of r)s===null?s=c:s=new Aae(c,s);throw s}}};g3=new WeakMap,Ik=new WeakMap;uKe=fKe,Jl=globalThis.DisposableStack??uKe,gKe=class gKe{constructor(){Ae(this,d3,!1);Ae(this,PD,[]);Hr(this,DDt,"AsyncDisposableStack")}get disposed(){return I(this,d3)}async disposeAsync(){await this[bh]()}use(r){if(r){let s=r[bh],c=r[go];typeof s=="function"?I(this,PD).push(r):typeof c=="function"&&I(this,PD).push({[bh]:async()=>{r[go]()}})}return r}adopt(r,s){return I(this,PD).push({[bh](){return s(r)}}),r}defer(r){I(this,PD).push({[bh](){return r()}})}move(){if(I(this,d3))throw new ReferenceError("A disposed stack can not use anything new");let r=new gKe;return Be(r,PD,I(this,PD)),Be(this,PD,[]),Be(this,d3,!0),r}async[(SDt=bh,DDt=Symbol.toStringTag,SDt)](){if(I(this,d3))return;Be(this,d3,!0);let r=[];for(let s of I(this,PD).reverse())try{await s[bh]()}catch(c){r.push(c)}if(r.length===1)throw r[0];if(r.length>1){let s=null;for(let c of r)s===null?s=c:s=new Aae(c,s);throw s}}};d3=new WeakMap,PD=new WeakMap;lKe=gKe,Y1e=globalThis.AsyncDisposableStack??lKe,Aae=class extends Error{constructor(s,c,f="An error was suppressed during disposal"){super(f);Ae(this,uae);Ae(this,lae);this.name="SuppressedError",Be(this,uae,s),Be(this,lae,c)}get error(){return I(this,uae)}get suppressed(){return I(this,lae)}};uae=new WeakMap,lae=new WeakMap;zYr=globalThis.SuppressedError??Aae});var dN,Ek,ya,Nf=Nn(()=>{vDt();tg();ya=class{constructor(r=QDt(new Map)){Ae(this,dN);Ae(this,Ek,new Map);Be(this,dN,r)}on(r,s){let c=I(this,Ek).get(r);return c===void 0?I(this,Ek).set(r,[s]):c.push(s),I(this,dN).on(r,s),this}off(r,s){let c=I(this,Ek).get(r)??[];if(s===void 0){for(let p of c)I(this,dN).off(r,p);return I(this,Ek).delete(r),this}let f=c.lastIndexOf(s);return f>-1&&I(this,dN).off(r,...c.splice(f,1)),this}emit(r,s){return I(this,dN).emit(r,s),this.listenerCount(r)>0}once(r,s){let c=f=>{s(f),this.off(r,c)};return this.on(r,c)}listenerCount(r){return I(this,Ek).get(r)?.length||0}removeAllListeners(r){return r!==void 0?this.off(r):(this[go](),this)}[go](){for(let[r,s]of I(this,Ek))for(let c of s)I(this,dN).off(r,c);I(this,Ek).clear()}};dN=new WeakMap,Ek=new WeakMap});var fae,Ym,yk=Nn(()=>{fae=!!(typeof process<"u"&&process.version),Ym={value:{get fs(){throw new Error("fs is not available in this environment")},get ScreenRecorder(){throw new Error("ScreenRecorder is not available in this environment")}}}});var Is,Rf=Nn(()=>{Is=(a,r)=>{if(!a)throw new Error(r)}});function ww(a,r=!1){return r?"fromBase64"in Uint8Array?Uint8Array.fromBase64(a):typeof Buffer=="function"?Buffer.from(a,"base64"):Uint8Array.from(atob(a),s=>s.codePointAt(0)):new TextEncoder().encode(a)}function V1e(a){return dKe(new TextEncoder().encode(a))}function dKe(a){let s=[];for(let f=0;f{});var X1e,pKe=Nn(()=>{X1e="24.39.1"});var kDt=Gt((oVr,xDt)=>{var aq=1e3,oq=aq*60,cq=oq*60,E5=cq*24,Vvr=E5*7,zvr=E5*365.25;xDt.exports=function(a,r){r=r||{};var s=typeof a;if(s==="string"&&a.length>0)return Xvr(a);if(s==="number"&&isFinite(a))return r.long?$vr(a):Zvr(a);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))};function Xvr(a){if(a=String(a),!(a.length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(a);if(r){var s=parseFloat(r[1]),c=(r[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return s*zvr;case"weeks":case"week":case"w":return s*Vvr;case"days":case"day":case"d":return s*E5;case"hours":case"hour":case"hrs":case"hr":case"h":return s*cq;case"minutes":case"minute":case"mins":case"min":case"m":return s*oq;case"seconds":case"second":case"secs":case"sec":case"s":return s*aq;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}}}function Zvr(a){var r=Math.abs(a);return r>=E5?Math.round(a/E5)+"d":r>=cq?Math.round(a/cq)+"h":r>=oq?Math.round(a/oq)+"m":r>=aq?Math.round(a/aq)+"s":a+"ms"}function $vr(a){var r=Math.abs(a);return r>=E5?Z1e(a,r,E5,"day"):r>=cq?Z1e(a,r,cq,"hour"):r>=oq?Z1e(a,r,oq,"minute"):r>=aq?Z1e(a,r,aq,"second"):a+" ms"}function Z1e(a,r,s,c){var f=r>=s*1.5;return Math.round(a/s)+" "+c+(f?"s":"")}});var _Ke=Gt((cVr,TDt)=>{function ewr(a){s.debug=s,s.default=s,s.coerce=N,s.disable=C,s.enable=f,s.enabled=b,s.humanize=kDt(),s.destroy=L,Object.keys(a).forEach(O=>{s[O]=a[O]}),s.names=[],s.skips=[],s.formatters={};function r(O){let j=0;for(let k=0;k{if(We==="%%")return"%";be++;let or=s.formatters[st];if(typeof or=="function"){let gt=X[be];We=or.call(ge,gt),X.splice(be,1),be--}return We}),s.formatArgs.call(ge,X),(ge.log||s.log).apply(ge,X)}return H.namespace=O,H.useColors=s.useColors(),H.color=s.selectColor(O),H.extend=c,H.destroy=s.destroy,Object.defineProperty(H,"enabled",{enumerable:!0,configurable:!1,get:()=>k!==null?k:(R!==s.namespaces&&(R=s.namespaces,J=s.enabled(O)),J),set:X=>{k=X}}),typeof s.init=="function"&&s.init(H),H}function c(O,j){let k=s(this.namespace+(typeof j>"u"?":":j)+O);return k.log=this.log,k}function f(O){s.save(O),s.namespaces=O,s.names=[],s.skips=[];let j=(typeof O=="string"?O:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let k of j)k[0]==="-"?s.skips.push(k.slice(1)):s.names.push(k)}function p(O,j){let k=0,R=0,J=-1,H=0;for(;k"-"+j)].join(",");return s.enable(""),O}function b(O){for(let j of s.skips)if(p(O,j))return!1;for(let j of s.names)if(p(O,j))return!0;return!1}function N(O){return O instanceof Error?O.stack||O.message:O}function L(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return s.enable(s.load()),s}TDt.exports=ewr});var FDt=Gt((QB,$1e)=>{QB.formatArgs=rwr;QB.save=iwr;QB.load=nwr;QB.useColors=twr;QB.storage=swr();QB.destroy=(()=>{let a=!1;return()=>{a||(a=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();QB.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function twr(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let a;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function rwr(a){if(a[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+a[0]+(this.useColors?"%c ":" ")+"+"+$1e.exports.humanize(this.diff),!this.useColors)return;let r="color: "+this.color;a.splice(1,0,r,"color: inherit");let s=0,c=0;a[0].replace(/%[a-zA-Z%]/g,f=>{f!=="%%"&&(s++,f==="%c"&&(c=s))}),a.splice(c,0,r)}QB.log=console.debug||console.log||(()=>{});function iwr(a){try{a?QB.storage.setItem("debug",a):QB.storage.removeItem("debug")}catch{}}function nwr(){let a;try{a=QB.storage.getItem("debug")||QB.storage.getItem("DEBUG")}catch{}return!a&&typeof process<"u"&&"env"in process&&(a=process.env.DEBUG),a}function swr(){try{return localStorage}catch{}}$1e.exports=_Ke()(QB);var{formatters:awr}=$1e.exports;awr.j=function(a){try{return JSON.stringify(a)}catch(r){return"[UnexpectedJSONParseError]: "+r.message}}});var RDt=Gt((jC,tQe)=>{var owr=require("tty"),eQe=require("util");jC.init=dwr;jC.log=lwr;jC.formatArgs=Awr;jC.save=fwr;jC.load=gwr;jC.useColors=cwr;jC.destroy=eQe.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");jC.colors=[6,2,3,4,5,1];try{let a=require("supports-color");a&&(a.stderr||a).level>=2&&(jC.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}jC.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,r)=>{let s=r.substring(6).toLowerCase().replace(/_([a-z])/g,(f,p)=>p.toUpperCase()),c=process.env[r];return/^(yes|on|true|enabled)$/i.test(c)?c=!0:/^(no|off|false|disabled)$/i.test(c)?c=!1:c==="null"?c=null:c=Number(c),a[s]=c,a},{});function cwr(){return"colors"in jC.inspectOpts?!!jC.inspectOpts.colors:owr.isatty(process.stderr.fd)}function Awr(a){let{namespace:r,useColors:s}=this;if(s){let c=this.color,f="\x1B[3"+(c<8?c:"8;5;"+c),p=` ${f};1m${r} \x1B[0m`;a[0]=p+a[0].split(` -`).join(` -`+p),a.push(f+"m+"+tQe.exports.humanize(this.diff)+"\x1B[0m")}else a[0]=uwr()+r+" "+a[0]}function uwr(){return jC.inspectOpts.hideDate?"":new Date().toISOString()+" "}function lwr(...a){return process.stderr.write(eQe.formatWithOptions(jC.inspectOpts,...a)+` -`)}function fwr(a){a?process.env.DEBUG=a:delete process.env.DEBUG}function gwr(){return process.env.DEBUG}function dwr(a){a.inspectOpts={};let r=Object.keys(jC.inspectOpts);for(let s=0;sr.trim()).join(" ")};NDt.O=function(a){return this.inspectOpts.colors=this.useColors,eQe.inspect(a,this.inspectOpts)}});var KC=Gt((AVr,hKe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?hKe.exports=FDt():hKe.exports=RDt()});async function pwr(){return mKe||(mKe=(await Promise.resolve().then(()=>wc(KC(),1))).default),mKe}var mKe,Bk,_wr,hwr,Aq=Nn(()=>{yk();mKe=null;Bk=a=>fae?async(...r)=>{hwr&&_wr.push(a+r),(await pwr())(a)(r)}:(...r)=>{let s=globalThis.__PUPPETEER_DEBUG;!s||!(s==="*"||(s.endsWith("*")?a.startsWith(s):a===s))||console.log(`${a}:`,...r)},_wr=[],hwr=!1});var uq,ay,_N,gae,dae,Dh,Uo,Sh,lq,wl=Nn(()=>{uq=class extends Error{constructor(r,s){super(r,s),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},ay=class extends uq{},_N=class extends uq{},Dh=class extends uq{constructor(){super(...arguments);Ae(this,gae);Ae(this,dae,"")}set code(s){Be(this,gae,s)}get code(){return I(this,gae)}set originalMessage(s){Be(this,dae,s)}get originalMessage(){return I(this,dae)}};gae=new WeakMap,dae=new WeakMap;Uo=class extends uq{},Sh=class extends Dh{},lq=class extends Dh{}});var PDt,CKe=Nn(()=>{PDt={letter:{cm:{width:21.59,height:27.94},in:{width:8.5,height:11}},legal:{cm:{width:21.59,height:35.56},in:{width:8.5,height:14}},tabloid:{cm:{width:27.94,height:43.18},in:{width:11,height:17}},ledger:{cm:{width:43.18,height:27.94},in:{width:17,height:11}},a0:{cm:{width:84.1,height:118.9},in:{width:33.1102,height:46.811}},a1:{cm:{width:59.4,height:84.1},in:{width:23.3858,height:33.1102}},a2:{cm:{width:42,height:59.4},in:{width:16.5354,height:23.3858}},a3:{cm:{width:29.7,height:42},in:{width:11.6929,height:16.5354}},a4:{cm:{width:21,height:29.7},in:{width:8.2677,height:11.6929}},a5:{cm:{width:14.8,height:21},in:{width:5.8268,height:8.2677}},a6:{cm:{width:10.5,height:14.8},in:{width:4.1339,height:5.8268}}}});function dq(a,...r){if(MI(a))return Is(r.length===0,"Cannot evaluate a string with arguments"),a;function s(c){return Object.is(c,void 0)?"undefined":JSON.stringify(c)}return`(${a})(${r.map(s).join(",")})`}async function nQe(a,r){let s=[],c=a.getReader();if(r){let f=await Ym.value.fs.promises.open(r,"w+");try{for(;;){let{done:p,value:C}=await c.read();if(p)break;s.push(C),await f.writeFile(C)}}finally{await f.close()}}else for(;;){let{done:f,value:p}=await c.read();if(f)break;s.push(p)}try{let f=z1e(s);return f.length===0?null:f}catch(f){return Ss(f),null}}async function sQe(a,r){return new ReadableStream({async pull(s){let{data:c,base64Encoded:f,eof:p}=await a.send("IO.read",{handle:r});s.enqueue(ww(c,f??!1)),p&&(await a.send("IO.close",{handle:r}),s.close())}})}function UDt(a){let r=null;return Cwr.has(a)&&(r=a),Is(r,`Unknown javascript dialog type: ${a}`),r}function q_(a,r){return a===0?oKe:C5(a).pipe(eg(()=>{throw new ay(`Timed out after waiting ${a}ms`,{cause:r})}))}function aQe(a){return`//# sourceURL=${a}`}function oQe(a={},r="in"){let s={scale:1,displayHeaderFooter:!1,headerTemplate:"",footerTemplate:"",printBackground:!1,landscape:!1,pageRanges:"",preferCSSPageSize:!1,omitBackground:!1,outline:!1,tagged:!0,waitForFonts:!0},c=8.5,f=11;if(a.format){let C=PDt[a.format.toLowerCase()][r];Is(C,"Unknown paper format: "+a.format),c=C.width,f=C.height}else c=fq(a.width,r)??c,f=fq(a.height,r)??f;let p={top:fq(a.margin?.top,r)||0,left:fq(a.margin?.left,r)||0,bottom:fq(a.margin?.bottom,r)||0,right:fq(a.margin?.right,r)||0};return a.outline&&(a.tagged=!0),{...s,...a,width:c,height:f,margin:p}}function fq(a,r="in"){if(typeof a>"u")return;let s;if(mwr(a))s=a;else if(MI(a)){let c=a,f=c.substring(c.length-2).toLowerCase(),p="";f in IKe?p=c.substring(0,c.length-2):(f="px",p=c);let C=Number(p);Is(!isNaN(C),"Failed to parse parameter value: "+c),s=C*IKe[f]}else throw new Error("page.pdf() Cannot handle parameter type: "+typeof a);return s/IKe[r]}function Hl(a,r){return new im(s=>{let c=f=>{s.next(f)};return a.on(r,c),()=>{a.off(r,c)}})}function MD(a,r){return a?tq(a,"abort").pipe(eg(()=>{throw a.reason instanceof Error?(a.reason.cause=r,a.reason):new Error(a.reason,{cause:r})})):oKe}function p3(a){return f_(r=>cu(Promise.resolve(a(r))).pipe(pQ(s=>s),eg(()=>r)))}var Ss,gq,rQe,B5,Q5,y5,Vm,Pp,iQe,MI,mwr,MDt,LDt,ODt,Cwr,EKe,pq,GDt,IKe,GA=Nn(()=>{vw();yk();Rf();pN();pKe();Aq();wl();CKe();Ss=Bk("puppeteer:error"),gq=Object.freeze({width:800,height:600}),rQe=Symbol("Source URL for Puppeteer evaluation scripts"),y5=class y5{constructor(){Ae(this,B5);Ae(this,Q5)}static fromCallSite(r,s){let c=new y5;return Be(c,B5,r),Be(c,Q5,s.toString()),c}get functionName(){return I(this,B5)}get siteString(){return I(this,Q5)}toString(){return`pptr:${[I(this,B5),encodeURIComponent(I(this,Q5))].join(";")}`}};B5=new WeakMap,Q5=new WeakMap,Hr(y5,"INTERNAL_URL","pptr:internal"),Hr(y5,"parse",r=>{r=r.slice(5);let[s="",c=""]=r.split(";"),f=new y5;return Be(f,B5,s),Be(f,Q5,decodeURIComponent(c)),f}),Hr(y5,"isPuppeteerURL",r=>r.startsWith("pptr:"));Vm=y5,Pp=(a,r)=>{if(Object.prototype.hasOwnProperty.call(r,rQe))return r;let s=Error.prepareStackTrace;Error.prepareStackTrace=(f,p)=>p[2];let c=new Error().stack;return Error.prepareStackTrace=s,Object.assign(r,{[rQe]:Vm.fromCallSite(a,c)})},iQe=a=>{if(Object.prototype.hasOwnProperty.call(a,rQe))return a[rQe]},MI=a=>typeof a=="string"||a instanceof String,mwr=a=>typeof a=="number"||a instanceof Number,MDt=a=>typeof a=="object"&&a?.constructor===Object,LDt=a=>typeof a=="object"&&a?.constructor===RegExp,ODt=a=>typeof a=="object"&&a?.constructor===Date;Cwr=new Set(["alert","confirm","prompt","beforeunload"]);EKe="__puppeteer_utility_world__"+X1e,pq=/^[\x20\t]*\/\/[@#] sourceURL=\s{0,10}(\S*?)\s{0,10}$/m;GDt=500;IKe={px:1,in:96,cm:37.8,mm:3.78}});var pae,_q,hq=Nn(()=>{vw();Nf();GA();tg();pae=new Map([["accelerometer","sensors"],["ambient-light-sensor","sensors"],["background-sync","backgroundSync"],["camera","videoCapture"],["clipboard-read","clipboardReadWrite"],["clipboard-sanitized-write","clipboardSanitizedWrite"],["clipboard-write","clipboardReadWrite"],["geolocation","geolocation"],["gyroscope","sensors"],["idle-detection","idleDetection"],["keyboard-lock","keyboardLock"],["magnetometer","sensors"],["microphone","audioCapture"],["midi","midi"],["notifications","notifications"],["payment-handler","paymentHandler"],["persistent-storage","durableStorage"],["pointer-lock","pointerLock"],["midi-sysex","midiSysex"]]),_q=class extends ya{constructor(){super()}async waitForTarget(r,s={}){let{timeout:c=3e4,signal:f}=s;return await ed(fN(Hl(this,"targetcreated"),Hl(this,"targetchanged"),cu(this.targets())).pipe(p3(r),Cp(MD(f),q_(c))))}async pages(r=!1){return(await Promise.all(this.browserContexts().map(c=>c.pages(r)))).reduce((c,f)=>c.concat(f),[])}async cookies(){return await this.defaultBrowserContext().cookies()}async setCookie(...r){return await this.defaultBrowserContext().setCookie(...r)}async deleteCookie(...r){return await this.defaultBrowserContext().deleteCookie(...r)}async deleteMatchingCookies(...r){return await this.defaultBrowserContext().deleteMatchingCookies(...r)}async setPermission(r,...s){return await this.defaultBrowserContext().setPermission(r,...s)}isConnected(){return this.connected}[go](){return this.process()?void this.close().catch(Ss):void this.disconnect().catch(Ss)}[bh](){return this.process()?this.close():this.disconnect()}}});var _3,h3,v5,_ae,cQe,mq,hae,mae,yKe,Cq,AQe,ZA,qC=Nn(()=>{wl();AQe=class AQe{constructor(r){Ae(this,mae);Ae(this,_3,!1);Ae(this,h3,!1);Ae(this,v5);Ae(this,_ae);Ae(this,cQe,new Promise(r=>{Be(this,_ae,r)}));Ae(this,mq);Ae(this,hae);Ae(this,Cq);r&&r.timeout>0&&(Be(this,hae,new ay(r.message)),Be(this,mq,setTimeout(()=>{this.reject(I(this,hae))},r.timeout)))}static create(r){return new AQe(r)}static async race(r){let s=new Set;try{let c=r.map(f=>f instanceof AQe?(I(f,mq)&&s.add(f),f.valueOrThrow()):f);return await Promise.race(c)}finally{for(let c of s)c.reject(new Error("Timeout cleared"))}}resolve(r){I(this,h3)||I(this,_3)||(Be(this,_3,!0),Ke(this,mae,yKe).call(this,r))}reject(r){I(this,h3)||I(this,_3)||(Be(this,h3,!0),Ke(this,mae,yKe).call(this,r))}resolved(){return I(this,_3)}finished(){return I(this,_3)||I(this,h3)}value(){return I(this,v5)}valueOrThrow(){return I(this,Cq)||Be(this,Cq,(async()=>{if(await I(this,cQe),I(this,h3))throw I(this,v5);return I(this,v5)})()),I(this,Cq)}};_3=new WeakMap,h3=new WeakMap,v5=new WeakMap,_ae=new WeakMap,cQe=new WeakMap,mq=new WeakMap,hae=new WeakMap,mae=new WeakSet,yKe=function(r){clearTimeout(I(this,mq)),Be(this,v5,r),I(this,_ae).call(this)},Cq=new WeakMap;ZA=AQe});var Iae,Eae,JDt,Iq,yae,Cae,m3,Bae=Nn(()=>{qC();tg();Cae=class Cae{constructor(){Ae(this,Iq,!1);Ae(this,yae,[])}async acquire(r){if(!I(this,Iq))return Be(this,Iq,!0),new Cae.Guard(this);let s=ZA.create();return I(this,yae).push(s.resolve.bind(s)),await s.valueOrThrow(),new Cae.Guard(this,r)}release(){let r=I(this,yae).shift();if(!r){Be(this,Iq,!1);return}r()}};Iq=new WeakMap,yae=new WeakMap,Hr(Cae,"Guard",(JDt=class{constructor(s,c){Ae(this,Iae);Ae(this,Eae);Be(this,Iae,s),Be(this,Eae,c)}[go](){var s;return(s=I(this,Eae))==null||s.call(this),I(this,Iae).release()}},Iae=new WeakMap,Eae=new WeakMap,JDt));m3=Cae});var w5,Eq,yq,uQe=Nn(()=>{vw();Nf();GA();tg();Bae();yq=class extends ya{constructor(){super();Ae(this,w5);Ae(this,Eq,0)}startScreenshot(){let s=I(this,w5)||new m3;return Be(this,w5,s),l3(this,Eq)._++,s.acquire(()=>{l3(this,Eq)._--,I(this,Eq)===0&&Be(this,w5,void 0)})}waitForScreenshotOperations(){return I(this,w5)?.acquire()}async waitForTarget(s,c={}){let{timeout:f=3e4}=c;return await ed(fN(Hl(this,"targetcreated"),Hl(this,"targetchanged"),cu(this.targets())).pipe(p3(s),Cp(q_(f))))}async deleteCookie(...s){return await this.setCookie(...s.map(c=>({...c,expires:1})))}async deleteMatchingCookies(...s){let f=(await this.cookies()).filter(p=>s.some(C=>{if(C.name===p.name){if(C.domain!==void 0&&C.domain===p.domain||C.path!==void 0&&C.path===p.path)return!0;if(C.partitionKey!==void 0&&p.partitionKey!==void 0){if(typeof p.partitionKey!="object")throw new Error("Unexpected string partition key");if(typeof C.partitionKey=="string"){if(C.partitionKey===p.partitionKey?.sourceOrigin)return!0}else if(C.partitionKey.sourceOrigin===p.partitionKey?.sourceOrigin)return!0}if(C.url!==void 0){let b=new URL(C.url);if(b.hostname===p.domain&&b.pathname===p.path)return!0}return!0}return!1}));await this.deleteCookie(...f)}get closed(){return!this.browser().browserContexts().includes(this)}get id(){}[go](){return void this.close().catch(Ss)}[bh](){return this.close()}};w5=new WeakMap,Eq=new WeakMap});var bl,Bq,vB=Nn(()=>{Nf();(function(a){a.Disconnected=Symbol("CDPSession.Disconnected"),a.Swapped=Symbol("CDPSession.Swapped"),a.Ready=Symbol("CDPSession.Ready"),a.SessionAttached="sessionattached",a.SessionDetached="sessiondetached"})(bl||(bl={}));Bq=class extends ya{constructor(){super()}parentSession(){}}});var Qq,lQe=Nn(()=>{Qq=class{constructor(){Hr(this,"devices",[])}}});var Qae,vae,wae,vq,fQe=Nn(()=>{Rf();vq=class{constructor(r,s,c=""){Ae(this,Qae);Ae(this,vae);Ae(this,wae);Hr(this,"handled",!1);Be(this,Qae,r),Be(this,vae,s),Be(this,wae,c)}type(){return I(this,Qae)}message(){return I(this,vae)}defaultValue(){return I(this,wae)}async accept(r){Is(!this.handled,"Cannot accept dialog which is already handled!"),this.handled=!0,await this.handle({accept:!0,text:r})}async dismiss(){Is(!this.handled,"Cannot dismiss dialog which is already handled!"),this.handled=!0,await this.handle({accept:!1})}};Qae=new WeakMap,vae=new WeakMap,wae=new WeakMap});var wB,C3=Nn(()=>{wB=class{static async*map(r,s){for await(let c of r)yield await s(c)}static async*flatMap(r,s){for await(let c of r)yield*s(c)}static async collect(r){let s=[];for await(let c of r)s.push(c);return s}static async first(r){for await(let s of r)return s}}});var wq,BKe=Nn(()=>{wq=Symbol("_isElementHandle")});function g_(a){return typeof a=="object"&&a!==null&&"name"in a&&"message"in a}function QKe(a,r,s){return a.message=r,a.originalMessage=s??a.originalMessage,a}function gQe(a){let r=a.error.message;return a.error&&typeof a.error=="object"&&"data"in a.error&&(r+=` ${a.error.data}`),r}var LI=Nn(()=>{});function OI(a){let r=a.toString();if(r.match(/^(async )*function(\(|\s)/)||r.match(/^(async )*function\s*\*\s*/)||r.startsWith("(")||r.match(/^async\s*\(/)||r.match(/^(async)*\s*(?:[$_\p{ID_Start}])(?:[$\u200C\u200D\p{ID_Continue}])*\s*=>/u))return r;let c="function ";return r.startsWith("async ")&&(c=`async ${c}`,r=r.substring(6)),`${c}${r}`}var HDt,Iwr,hN,b5=Nn(()=>{HDt=new Map,Iwr=a=>{let r=HDt.get(a);return r||(r=new Function(`return ${a}`)(),HDt.set(a,r),r)};hN=(a,r)=>{let s=OI(a);for(let[c,f]of Object.entries(r))s=s.replace(new RegExp(`PLACEHOLDER\\(\\s*(?:'${c}'|"${c}")\\s*\\)`,"g"),`(${f})`);return Iwr(s)}});async function*ywr(a,r){let s={stack:[],error:void 0,hasError:!1};try{let f=await dQe(s,await a.evaluateHandle(async(b,N)=>{let L=[];for(;L.length{for(let b of p){let N={stack:[],error:void 0,hasError:!1};try{dQe(N,b,!1)[go]()}catch(L){N.error=L,N.hasError=!0}finally{vKe(N)}}}),yield*p,f.size===0}catch(c){s.error=c,s.hasError=!0}finally{vKe(s)}}async function*Bwr(a){let r=Ewr;for(;!(yield*ywr(a,r));)r<<=1}async function*pQe(a){let r={stack:[],error:void 0,hasError:!1};try{let s=dQe(r,await a.evaluateHandle(c=>(async function*(){yield*c})()),!1);yield*Bwr(s)}catch(s){r.error=s,r.hasError=!0}finally{vKe(r)}}var dQe,vKe,Ewr,_Qe=Nn(()=>{tg();dQe=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},vKe=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),Ewr=20});var bae,hQe,WC,D5=Nn(()=>{hQe=class hQe{constructor(r){Ae(this,bae);Be(this,bae,r)}async get(r){return await I(this,bae).call(this,r)}};bae=new WeakMap,Hr(hQe,"create",r=>new hQe(r));WC=hQe});var mQe,CQe,YC,mN=Nn(()=>{BKe();LI();b5();wl();_Qe();D5();mQe=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},CQe=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),YC=class{static get _querySelector(){if(this.querySelector)return this.querySelector;if(!this.querySelectorAll)throw new Error("Cannot create default `querySelector`.");return this.querySelector=hN(async(r,s,c)=>{let p=PLACEHOLDER("querySelectorAll")(r,s,c);for await(let C of p)return C;return null},{querySelectorAll:OI(this.querySelectorAll)})}static get _querySelectorAll(){if(this.querySelectorAll)return this.querySelectorAll;if(!this.querySelector)throw new Error("Cannot create default `querySelectorAll`.");return this.querySelectorAll=hN(async function*(r,s,c){let p=await PLACEHOLDER("querySelector")(r,s,c);p&&(yield p)},{querySelector:OI(this.querySelector)})}static async*queryAll(r,s){let c={stack:[],error:void 0,hasError:!1};try{let f=mQe(c,await r.evaluateHandle(this._querySelectorAll,s,WC.create(p=>p.puppeteerUtil)),!1);yield*pQe(f)}catch(f){c.error=f,c.hasError=!0}finally{CQe(c)}}static async queryOne(r,s){let c={stack:[],error:void 0,hasError:!1};try{let f=mQe(c,await r.evaluateHandle(this._querySelector,s,WC.create(p=>p.puppeteerUtil)),!1);return wq in f?f.move():null}catch(f){c.error=f,c.hasError=!0}finally{CQe(c)}}static async waitFor(r,s,c){let f={stack:[],error:void 0,hasError:!1};try{let p,C=mQe(f,await(async()=>{if(!(wq in r)){p=r;return}return p=r.frame,await p.isolatedRealm().adoptHandle(r)})(),!1),{visible:b=!1,hidden:N=!1,timeout:L,signal:O}=c,j=b||N?"raf":c.polling;try{let k={stack:[],error:void 0,hasError:!1};try{O?.throwIfAborted();let R=mQe(k,await p.isolatedRealm().waitForFunction(async(J,H,X,ge,Te)=>{let be=await J.createFunction(H)(ge??document,X,J);return J.checkVisibility(be,Te)},{polling:j,root:C,timeout:L,signal:O},WC.create(J=>J.puppeteerUtil),OI(this._querySelector),s,C,b?!0:N?!1:void 0),!1);if(O?.aborted)throw O.reason;return wq in R?await p.mainRealm().transferHandle(R):null}catch(R){k.error=R,k.hasError=!0}finally{CQe(k)}}catch(k){if(!g_(k)||k.name==="AbortError")throw k;let R=new(k instanceof ay?ay:Error)(`Waiting for selector \`${s}\` failed`);throw R.cause=k,R}}catch(p){f.error=p,f.hasError=!0}finally{CQe(f)}}};Hr(YC,"querySelectorAll"),Hr(YC,"querySelector")});var Qwr,vwr,wwr,Dae,Qk,Sae=Nn(()=>{Rf();C3();mN();Qwr=a=>["name","role"].includes(a),vwr=/\[\s*(?\w+)\s*=\s*(?"|')(?\\.|.*?(?=\k))\k\s*\]/g,wwr=a=>{if(a.length>1e4)throw new Error(`Selector ${a} is too long`);let r={},s=a.replace(vwr,(c,f,p,C)=>(Is(Qwr(f),`Unknown aria attribute "${f}" in selector`),r[f]=C,""));return s&&!r.name&&(r.name=s),r},Dae=class Dae extends YC{static async*queryAll(r,s){let{name:c,role:f}=wwr(s);yield*r.queryAXTree(c,f)}};Hr(Dae,"querySelector",async(r,s,{ariaQuerySelector:c})=>await c(r,s)),Hr(Dae,"queryOne",async(r,s)=>await wB.first(Dae.queryAll(r,s))??null);Qk=Dae});var S5,jDt=Nn(()=>{mN();S5=class extends YC{};Hr(S5,"querySelector",(r,s,{cssQuerySelector:c})=>c(r,s)),Hr(S5,"querySelectorAll",(r,s,{cssQuerySelectorAll:c})=>c(r,s))});var KDt,qDt=Nn(()=>{KDt='"use strict";var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)g(t,r,{get:e[r],enumerable:!0})},G=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of B(e))!Y.call(t,s)&&s!==r&&g(t,s,{get:()=>e[s],enumerable:!(o=X(e,s))||o.enumerable});return t};var J=t=>G(g({},"__esModule",{value:!0}),t);var pe={};l(pe,{default:()=>he});module.exports=J(pe);var N=class extends Error{constructor(e,r){super(e,r),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},p=class extends N{};var c=class t{static create(e){return new t(e)}static async race(e){let r=new Set;try{let o=e.map(s=>s instanceof t?(s.#s&&r.add(s),s.valueOrThrow()):s);return await Promise.race(o)}finally{for(let o of r)o.reject(new Error("Timeout cleared"))}}#e=!1;#r=!1;#o;#t;#a=new Promise(e=>{this.#t=e});#s;#i;constructor(e){e&&e.timeout>0&&(this.#i=new p(e.message),this.#s=setTimeout(()=>{this.reject(this.#i)},e.timeout))}#l(e){clearTimeout(this.#s),this.#o=e,this.#t()}resolve(e){this.#r||this.#e||(this.#e=!0,this.#l(e))}reject(e){this.#r||this.#e||(this.#r=!0,this.#l(e))}resolved(){return this.#e}finished(){return this.#e||this.#r}value(){return this.#o}#n;valueOrThrow(){return this.#n||(this.#n=(async()=>{if(await this.#a,this.#r)throw this.#o;return this.#o})()),this.#n}};var L=new Map,W=t=>{let e=L.get(t);return e||(e=new Function(`return ${t}`)(),L.set(t,e),e)};var b={};l(b,{ariaQuerySelector:()=>z,ariaQuerySelectorAll:()=>x});var z=(t,e)=>globalThis.__ariaQuerySelector(t,e),x=async function*(t,e){yield*await globalThis.__ariaQuerySelectorAll(t,e)};var E={};l(E,{cssQuerySelector:()=>K,cssQuerySelectorAll:()=>Z});var K=(t,e)=>t.querySelector(e),Z=function(t,e){return t.querySelectorAll(e)};var A={};l(A,{customQuerySelectors:()=>P});var v=class{#e=new Map;register(e,r){if(!r.queryOne&&r.queryAll){let o=r.queryAll;r.queryOne=(s,i)=>{for(let n of o(s,i))return n;return null}}else if(r.queryOne&&!r.queryAll){let o=r.queryOne;r.queryAll=(s,i)=>{let n=o(s,i);return n?[n]:[]}}else if(!r.queryOne||!r.queryAll)throw new Error("At least one query method must be defined.");this.#e.set(e,{querySelector:r.queryOne,querySelectorAll:r.queryAll})}unregister(e){this.#e.delete(e)}get(e){return this.#e.get(e)}clear(){this.#e.clear()}},P=new v;var R={};l(R,{pierceQuerySelector:()=>ee,pierceQuerySelectorAll:()=>te});var ee=(t,e)=>{let r=null,o=s=>{let i=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT);do{let n=i.currentNode;n.shadowRoot&&o(n.shadowRoot),!(n instanceof ShadowRoot)&&n!==s&&!r&&n.matches(e)&&(r=n)}while(!r&&i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r},te=(t,e)=>{let r=[],o=s=>{let i=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT);do{let n=i.currentNode;n.shadowRoot&&o(n.shadowRoot),!(n instanceof ShadowRoot)&&n!==s&&n.matches(e)&&r.push(n)}while(i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r};var u=(t,e)=>{if(!t)throw new Error(e)};var y=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=new MutationObserver(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())}),this.#o.observe(this.#r,{childList:!0,subtree:!0,attributes:!0})}async stop(){u(this.#t,"Polling never started."),this.#t.finished()||this.#t.reject(new Error("Polling stopped")),this.#o&&(this.#o.disconnect(),this.#o=void 0)}result(){return u(this.#t,"Polling never started."),this.#t.valueOrThrow()}},w=class{#e;#r;constructor(e){this.#e=e}async start(){let e=this.#r=c.create(),r=await this.#e();if(r){e.resolve(r);return}let o=async()=>{if(e.finished())return;let s=await this.#e();if(!s){window.requestAnimationFrame(o);return}e.resolve(s),await this.stop()};window.requestAnimationFrame(o)}async stop(){u(this.#r,"Polling never started."),this.#r.finished()||this.#r.reject(new Error("Polling stopped"))}result(){return u(this.#r,"Polling never started."),this.#r.valueOrThrow()}},T=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=setInterval(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())},this.#r)}async stop(){u(this.#t,"Polling never started."),this.#t.finished()||this.#t.reject(new Error("Polling stopped")),this.#o&&(clearInterval(this.#o),this.#o=void 0)}result(){return u(this.#t,"Polling never started."),this.#t.valueOrThrow()}};var _={};l(_,{PCombinator:()=>H,pQuerySelector:()=>fe,pQuerySelectorAll:()=>$});var a=class{static async*map(e,r){for await(let o of e)yield await r(o)}static async*flatMap(e,r){for await(let o of e)yield*r(o)}static async collect(e){let r=[];for await(let o of e)r.push(o);return r}static async first(e){for await(let r of e)return r}};var C={};l(C,{textQuerySelectorAll:()=>m});var re=new Set(["checkbox","image","radio"]),oe=t=>t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!re.has(t.type),se=new Set(["SCRIPT","STYLE"]),f=t=>!se.has(t.nodeName)&&!document.head?.contains(t),I=new WeakMap,F=t=>{for(;t;)I.delete(t),t instanceof ShadowRoot?t=t.host:t=t.parentNode},j=new WeakSet,ne=new MutationObserver(t=>{for(let e of t)F(e.target)}),d=t=>{let e=I.get(t);if(e||(e={full:"",immediate:[]},!f(t)))return e;let r="";if(oe(t))e.full=t.value,e.immediate.push(t.value),t.addEventListener("input",o=>{F(o.target)},{once:!0,capture:!0});else{for(let o=t.firstChild;o;o=o.nextSibling){if(o.nodeType===Node.TEXT_NODE){e.full+=o.nodeValue??"",r+=o.nodeValue??"";continue}r&&e.immediate.push(r),r="",o.nodeType===Node.ELEMENT_NODE&&(e.full+=d(o).full)}r&&e.immediate.push(r),t instanceof Element&&t.shadowRoot&&(e.full+=d(t.shadowRoot).full),j.has(t)||(ne.observe(t,{childList:!0,characterData:!0,subtree:!0}),j.add(t))}return I.set(t,e),e};var m=function*(t,e){let r=!1;for(let o of t.childNodes)if(o instanceof Element&&f(o)){let s;o.shadowRoot?s=m(o.shadowRoot,e):s=m(o,e);for(let i of s)yield i,r=!0}r||t instanceof Element&&f(t)&&d(t).full.includes(e)&&(yield t)};var k={};l(k,{checkVisibility:()=>le,pierce:()=>S,pierceAll:()=>O});var ie=["hidden","collapse"],le=(t,e)=>{if(!t)return e===!1;if(e===void 0)return t;let r=t.nodeType===Node.TEXT_NODE?t.parentElement:t,o=window.getComputedStyle(r),s=o&&!ie.includes(o.visibility)&&!ae(r);return e===s?t:!1};function ae(t){let e=t.getBoundingClientRect();return e.width===0||e.height===0}var ce=t=>"shadowRoot"in t&&t.shadowRoot instanceof ShadowRoot;function*S(t){ce(t)?yield t.shadowRoot:yield t}function*O(t){t=S(t).next().value,yield t;let e=[document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT)];for(let r of e){let o;for(;o=r.nextNode();)o.shadowRoot&&(yield o.shadowRoot,e.push(document.createTreeWalker(o.shadowRoot,NodeFilter.SHOW_ELEMENT)))}}var D={};l(D,{xpathQuerySelectorAll:()=>q});var q=function*(t,e,r=-1){let s=(t.ownerDocument||document).evaluate(e,t,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),i=[],n;for(;(n=s.iterateNext())&&(i.push(n),!(r&&i.length===r)););for(let h=0;h(r.Descendent=">>>",r.Child=">>>>",r))(H||{}),V=t=>"querySelectorAll"in t,Q=class{#e;#r=[];#o=void 0;elements;constructor(e,r){this.elements=[e],this.#e=r,this.#t()}async run(){for(typeof this.#o=="string"&&this.#o.trimStart()===":scope"&&this.#t();this.#o!==void 0;this.#t()){let e=this.#o;typeof e=="string"?e[0]&&ue.test(e[0])?this.elements=a.flatMap(this.elements,async function*(r){V(r)&&(yield*r.querySelectorAll(e))}):this.elements=a.flatMap(this.elements,async function*(r){if(!r.parentElement){if(!V(r))return;yield*r.querySelectorAll(e);return}let o=0;for(let s of r.parentElement.children)if(++o,s===r)break;yield*r.parentElement.querySelectorAll(`:scope>:nth-child(${o})${e}`)}):this.elements=a.flatMap(this.elements,async function*(r){switch(e.name){case"text":yield*m(r,e.value);break;case"xpath":yield*q(r,e.value);break;case"aria":yield*x(r,e.value);break;default:let o=P.get(e.name);if(!o)throw new Error(`Unknown selector type: ${e.name}`);yield*o.querySelectorAll(r,e.value)}})}}#t(){if(this.#r.length!==0){this.#o=this.#r.shift();return}if(this.#e.length===0){this.#o=void 0;return}let e=this.#e.shift();switch(e){case">>>>":{this.elements=a.flatMap(this.elements,S),this.#t();break}case">>>":{this.elements=a.flatMap(this.elements,O),this.#t();break}default:this.#r=e,this.#t();break}}},M=class{#e=new WeakMap;calculate(e,r=[]){if(e===null)return r;e instanceof ShadowRoot&&(e=e.host);let o=this.#e.get(e);if(o)return[...o,...r];let s=0;for(let n=e.previousSibling;n;n=n.previousSibling)++s;let i=this.calculate(e.parentNode,[s]);return this.#e.set(e,i),[...i,...r]}},U=(t,e)=>{if(t.length+e.length===0)return 0;let[r=-1,...o]=t,[s=-1,...i]=e;return r===s?U(o,i):r[o,r.calculate(o)]).sort(([,o],[,s])=>U(o,s)).map(([o])=>o)},$=function(t,e){let r=JSON.parse(e);if(r.some(o=>{let s=0;return o.some(i=>(typeof i=="string"?++s:s=0,s>1))}))throw new Error("Multiple deep combinators found in sequence.");return de(a.flatMap(r,o=>{let s=new Q(t,o);return s.run(),s.elements}))},fe=async function(t,e){for await(let r of $(t,e))return r;return null};var me=Object.freeze({...b,...A,...R,..._,...C,...k,...D,...E,Deferred:c,createFunction:W,createTextContent:d,IntervalPoller:T,isSuitableNodeForTextMatching:f,MutationPoller:y,RAFPoller:w}),he=me;\n'});var bq,Dq,x5,bKe,WDt,wKe,I3,xae=Nn(()=>{qDt();wKe=class{constructor(){Ae(this,x5);Ae(this,bq,!1);Ae(this,Dq,new Set)}append(r){Ke(this,x5,bKe).call(this,()=>{I(this,Dq).add(r)})}pop(r){Ke(this,x5,bKe).call(this,()=>{I(this,Dq).delete(r)})}inject(r,s=!1){(I(this,bq)||s)&&r(Ke(this,x5,WDt).call(this)),Be(this,bq,!1)}};bq=new WeakMap,Dq=new WeakMap,x5=new WeakSet,bKe=function(r){r(),Be(this,bq,!0)},WDt=function(){return`(() => { - const module = {}; - ${KDt} - ${[...I(this,Dq)].map(r=>`(${r})(module.exports.default);`).join("")} - return module.exports.default; - })()`};I3=new wKe});var LD,DKe,kae,IQe=Nn(()=>{Rf();b5();mN();xae();DKe=class{constructor(){Ae(this,LD,new Map)}get(r){let s=I(this,LD).get(r);return s?s[1]:void 0}register(r,s){var p;Is(!I(this,LD).has(r),`Cannot register over existing handler: ${r}`),Is(/^[a-zA-Z]+$/.test(r),"Custom query handler names may only contain [a-zA-Z]"),Is(s.queryAll||s.queryOne,"At least one query method must be implemented.");let c=(p=class extends YC{},Hr(p,"querySelectorAll",hN((C,b,N)=>N.customQuerySelectors.get(PLACEHOLDER("name")).querySelectorAll(C,b),{name:JSON.stringify(r)})),Hr(p,"querySelector",hN((C,b,N)=>N.customQuerySelectors.get(PLACEHOLDER("name")).querySelector(C,b),{name:JSON.stringify(r)})),p),f=hN(C=>{C.customQuerySelectors.register(PLACEHOLDER("name"),{queryAll:PLACEHOLDER("queryAll"),queryOne:PLACEHOLDER("queryOne")})},{name:JSON.stringify(r),queryAll:s.queryAll?OI(s.queryAll):String(void 0),queryOne:s.queryOne?OI(s.queryOne):String(void 0)}).toString();I(this,LD).set(r,[f,c]),I3.append(f)}unregister(r){let s=I(this,LD).get(r);if(!s)throw new Error(`Cannot unregister unknown handler: ${r}`);I3.pop(s[0]),I(this,LD).delete(r)}names(){return[...I(this,LD).keys()]}clear(){for(let[r]of I(this,LD))I3.pop(r);I(this,LD).clear()}};LD=new WeakMap;kae=new DKe});var Sq,SKe=Nn(()=>{mN();Sq=class extends YC{};Hr(Sq,"querySelector",(r,s,{pierceQuerySelector:c})=>c(r,s)),Hr(Sq,"querySelectorAll",(r,s,{pierceQuerySelectorAll:c})=>c(r,s))});var xq,xKe=Nn(()=>{mN();xq=class extends YC{};Hr(xq,"querySelectorAll",(r,s,{pQuerySelectorAll:c})=>c(r,s)),Hr(xq,"querySelector",(r,s,{pQuerySelector:c})=>c(r,s))});function Swr(a,r){let s=0,c="";for(;r(s.push({value:p,offset:C}),"\uE000".repeat(p.length))),a=a.replace(kwr,(p,C,b,N)=>(s.push({value:p,offset:N}),`${C}${"\uE001".repeat(b.length)}${C}`));{let p=0,C;for(;(C=a.indexOf("(",p))>-1;){let b=Swr(a,C);s.push({value:b,offset:C}),a=`${a.substring(0,C)}(${"\xB6".repeat(b.length-2)})${a.substring(C+b.length)}`,p=C+b.length}}let c=xwr(a,r),f=new Set;for(let p of s.reverse())for(let C of c){let{offset:b,value:N}=p;if(!(C.pos[0]<=b&&b+N.length<=C.pos[1]))continue;let{content:L}=C,O=b-C.pos[0];C.content=L.slice(0,O)+N+L.slice(O+N.length),C.content!==L&&f.add(C)}for(let p of f){let C=Dwr(p.type);if(!C)throw new Error(`Unknown token type: ${p.type}`);C.lastIndex=0;let b=C.exec(p.content);if(!b)throw new Error(`Unable to parse content for ${p.type}: ${p.content}`);Object.assign(p,b.groups)}return c}function OD(a){if(Array.isArray(a))return a.map(r=>r.content).join("");switch(a.type){case"list":return a.list.map(OD).join(",");case"relative":return a.combinator+OD(a.right);case"complex":return OD(a.left)+a.combinator+OD(a.right);case"compound":return a.list.map(OD).join("");default:return a.content}}var k5,bwr,Dwr,kwr,Twr,VDt=Nn(()=>{k5={attribute:/\[\s*(?:(?\*|[-\w\P{ASCII}]*)\|)?(?[-\w\P{ASCII}]+)\s*(?:(?\W?=)\s*(?.+?)\s*(\s(?[iIsS]))?\s*)?\]/gu,id:/#(?[-\w\P{ASCII}]+)/gu,class:/\.(?[-\w\P{ASCII}]+)/gu,comma:/\s*,\s*/g,combinator:/\s*[\s>+~]\s*/g,"pseudo-element":/::(?[-\w\P{ASCII}]+)(?:\((?¶*)\))?/gu,"pseudo-class":/:(?[-\w\P{ASCII}]+)(?:\((?¶*)\))?/gu,universal:/(?:(?\*|[-\w\P{ASCII}]*)\|)?\*/gu,type:/(?:(?\*|[-\w\P{ASCII}]*)\|)?(?[-\w\P{ASCII}]+)/gu},bwr=new Set(["combinator","comma"]),Dwr=a=>{switch(a){case"pseudo-element":case"pseudo-class":return new RegExp(k5[a].source.replace("(?\xB6*)","(?.*)"),"gu");default:return k5[a]}};kwr=/(['"])([^\\\n]*?)\1/g,Twr=/\\./g});function zDt(a){let r=!0,s=!1,c=!1,f=YDt(a);if(f.length===0)return[[],r,c,!1];let p=[],C=[p],b=[C],N=[];for(let L of f){switch(L.type){case"combinator":switch(L.content){case">>>":r=!1,N.length&&(p.push(OD(N)),N.splice(0)),p=[],C.push(">>>"),C.push(p);continue;case">>>>":r=!1,N.length&&(p.push(OD(N)),N.splice(0)),p=[],C.push(">>>>"),C.push(p);continue}break;case"pseudo-element":if(!L.name.startsWith("-p-"))break;r=!1,N.length&&(p.push(OD(N)),N.splice(0));let O=L.name.slice(3);O==="aria"&&(s=!0),p.push({name:O,value:Nwr(L.argument??"")});continue;case"pseudo-class":c=!0;break;case"comma":N.length&&(p.push(OD(N)),N.splice(0)),p=[],C=[p],b.push(C);continue}N.push(L)}return N.length&&p.push(OD(N)),[b,r,c,s]}var Fwr,Nwr,kKe=Nn(()=>{VDt();k5.nesting=/&/g;k5.combinator=/\s*(>>>>?|[\s>+~])\s*/g;Fwr=/\\[\s\S]/g,Nwr=a=>a.length<=1?a:((a[0]==='"'||a[0]==="'")&&a.endsWith(a[0])&&(a=a.slice(1,-1)),a.replace(Fwr,r=>r[1]))});var Tae,TKe=Nn(()=>{mN();Tae=class extends YC{};Hr(Tae,"querySelectorAll",(r,s,{textQuerySelectorAll:c})=>c(r,s))});var kq,FKe=Nn(()=>{mN();kq=class extends YC{};Hr(kq,"querySelectorAll",(r,s,{xpathQuerySelectorAll:c})=>c(r,s)),Hr(kq,"querySelector",(r,s,{xpathQuerySelectorAll:c})=>{for(let f of c(r,s,1))return f;return null})});function Tq(a){for(let r of[kae.names().map(s=>[s,kae.get(s)]),Object.entries(Rwr)])for(let[s,c]of r)for(let f of Pwr){let p=`${s}${f}`;if(a.startsWith(p))return a=a.slice(p.length),{updatedSelector:a,polling:s==="aria"?"raf":"mutation",QueryHandler:c}}try{let[r,s,c,f]=zDt(a);return s?{updatedSelector:a,polling:c?"raf":"mutation",QueryHandler:S5}:{updatedSelector:JSON.stringify(r),polling:f?"raf":"mutation",QueryHandler:xq}}catch{return{updatedSelector:a,polling:"mutation",QueryHandler:S5}}}var Rwr,Pwr,EQe=Nn(()=>{Sae();jDt();IQe();SKe();xKe();kKe();TKe();FKe();Rwr={aria:Qk,pierce:Sq,xpath:kq,text:Tae},Pwr=["=","/"]});function ZDt(a,r){let s=!1;if(a.prototype[go]){let c=a.prototype[go];a.prototype[go]=function(){if(Fae.has(this)){Fae.delete(this);return}return c.call(this)},s=!0}if(a.prototype[bh]){let c=a.prototype[bh];a.prototype[bh]=function(){if(Fae.has(this)){Fae.delete(this);return}return c.call(this)},s=!0}return s&&(a.prototype.move=function(){return Fae.add(this),this}),a}function aa(a=r=>`Attempted to use disposed ${r.constructor.name}.`){return(r,s)=>function(...c){if(this.disposed)throw new Error(a(this));return r.call(this,...c)}}function UI(a,r){return function(...s){if(!this.disposed)return a.call(this,...s)}}function bB(a,r){let s=new WeakMap,c=-1;return function(...f){if(c===-1&&(c=f.length),c!==f.length)throw new Error("Memoized method was called with the wrong number of arguments");let p=!1,C=s;for(let b of f)C.has(b)||(p=!0,C.set(b,new WeakMap)),C=C.get(b);if(p)return a.call(this,...f)}}function Nae(a=function(){return this}){return(r,s)=>{let c=new WeakMap;return async function(...f){let p={stack:[],error:void 0,hasError:!1};try{let C=a.call(this),b=c.get(C);b||(b=new m3,c.set(C,b));let N=Mwr(p,await b.acquire(),!0);return await r.call(this,...f)}catch(C){p.error=C,p.hasError=!0}finally{let C=Lwr(p);C&&await C}}}}function E3(a){return({set:r,get:s},c)=>(c.addInitializer(function(){return XDt.apply(this,[a])}),{set(f){let p=yQe.get(this).get(a),C=s.call(this);C!==void 0&&C.off("*",p),f!==void 0&&(f.on("*",p),r.call(this,f))},init(f){if(f===void 0)return f;XDt.apply(this,[a]);let p=yQe.get(this).get(a);return f.on("*",p),f}})}var Mwr,Lwr,Fae,yQe,XDt,xh=Nn(()=>{tg();Bae();Mwr=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},Lwr=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),Fae=new WeakSet;yQe=new WeakMap,XDt=function(a){let r=yQe.get(this)??new Map;if(r.has(a))return;let s=a!==void 0?(c,f)=>{a.includes(c)&&this.emit(c,f)}:(c,f)=>{this.emit(c,f)};r.set(a,s),yQe.set(this,r)}});var $Dt,NKe,Owr,Uwr,UD,Fq=Nn(()=>{GA();xh();tg();$Dt=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;R--){var J={};for(var H in c)J[H]=H==="access"?{}:c[H];for(var H in c.access)J.access[H]=c.access[H];J.addInitializer=function(ge){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(ge||null))};var X=(0,s[R])(b==="accessor"?{get:O.get,set:O.set}:O[N],J);if(b==="accessor"){if(X===void 0)continue;if(X===null||typeof X!="object")throw new TypeError("Object expected");(j=C(X.get))&&(O.get=j),(j=C(X.set))&&(O.set=j),(j=C(X.init))&&f.unshift(j)}else(j=C(X))&&(b==="field"?f.unshift(j):O[N]=j)}L&&Object.defineProperty(L,c.name,O),k=!0},Owr=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},Uwr=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),UD=(()=>{var N;let a=[ZDt],r,s=[],c,f=[],p,C;var b=(N=class{constructor(){$Dt(this,f)}async evaluate(O,...j){return O=Pp(this.evaluate.name,O),await this.realm.evaluate(O,this,...j)}async evaluateHandle(O,...j){return O=Pp(this.evaluateHandle.name,O),await this.realm.evaluateHandle(O,this,...j)}async getProperty(O){return await this.evaluateHandle((j,k)=>j[k],O)}async getProperties(){let O=await this.evaluate(R=>{let J=[],H=Object.getOwnPropertyDescriptors(R);for(let X in H)H[X]?.enumerable&&J.push(X);return J}),j=new Map,k=await Promise.all(O.map(R=>this.getProperty(R)));for(let[R,J]of Object.entries(O)){let H={stack:[],error:void 0,hasError:!1};try{let X=Owr(H,k[R],!1);X&&j.set(J,X.move())}catch(X){H.error=X,H.hasError=!0}finally{Uwr(H)}}return j}[(p=[aa()],C=[aa()],go)](){return void this.dispose().catch(Ss)}[bh](){return this.dispose()}},c=N,(()=>{let O=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;NKe(N,null,p,{kind:"method",name:"getProperty",static:!1,private:!1,access:{has:j=>"getProperty"in j,get:j=>j.getProperty},metadata:O},null,f),NKe(N,null,C,{kind:"method",name:"getProperties",static:!1,private:!1,access:{has:j=>"getProperties"in j,get:j=>j.getProperties},metadata:O},null,f),NKe(null,r={value:c},a,{kind:"class",name:c.name,metadata:O},null,s),b=c=r.value,O&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:O}),$Dt(c,s)})(),N);return b=c})()});function Hwr(a){for(let r of a)if(!(r instanceof CN))throw new Error("Unknown locator for race candidate");return a}var Gwr,Jwr,Nq,T5,F5,N5,Pae,R5,P5,vk,eSt,tSt,rSt,iSt,CN,Rq,Pq,bQe,Gq,GI,QQe,Mq,PKe,vQe,Lq,MKe,wQe,Oq,y3,DQe,Rae,B3,Uq,SQe,RKe,BQe,Mae=Nn(()=>{vw();Nf();GA();Gwr=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},Jwr=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c});(function(a){a.Action="action"})(Nq||(Nq={}));CN=class extends ya{constructor(){super(...arguments);Ae(this,vk);Hr(this,"visibility",null);Hr(this,"_timeout",3e4);Ae(this,T5,!0);Ae(this,F5,!0);Ae(this,N5,!0);Hr(this,"operators",{conditions:(s,c)=>f_(f=>fN(...s.map(p=>p(f,c))).pipe(cKe(f))),retryAndRaceWithSignalAndTimer:(s,c)=>{let f=[];return s&&f.push(MD(s,c)),f.push(q_(this._timeout,c)),Xbt(cae({delay:BQe}),Cp(...f))}});Ae(this,Pae,(s,c)=>I(this,F5)?cu(s.frame.waitForFunction(f=>f instanceof HTMLElement?!["BUTTON","INPUT","SELECT","TEXTAREA","OPTION","OPTGROUP"].includes(f.nodeName)||!f.hasAttribute("disabled"):!0,{timeout:this._timeout,signal:c},s)).pipe(nq()):uN);Ae(this,R5,s=>I(this,N5)?lN(()=>cu(s.evaluate(c=>new Promise(f=>{window.requestAnimationFrame(()=>{let p=c.getBoundingClientRect();window.requestAnimationFrame(()=>{let C=c.getBoundingClientRect();f([{x:p.x,y:p.y,width:p.width,height:p.height},{x:C.x,y:C.y,width:C.width,height:C.height}])})})})))).pipe(gN(([c,f])=>c.x===f.x&&c.y===f.y&&c.width===f.width&&c.height===f.height),cae({delay:BQe}),nq()):uN);Ae(this,P5,s=>I(this,T5)?cu(s.isIntersectingViewport({threshold:0})).pipe(pQ(c=>!c),f_(()=>cu(s.scrollIntoView())),f_(()=>lN(()=>cu(s.isIntersectingViewport({threshold:0}))).pipe(gN(Qw),cae({delay:BQe}),nq()))):uN)}static race(s){return RKe.create(s)}get timeout(){return this._timeout}setTimeout(s){let c=this._clone();return c._timeout=s,c}setVisibility(s){let c=this._clone();return c.visibility=s,c}setWaitForEnabled(s){let c=this._clone();return Be(c,F5,s),c}setEnsureElementIsInTheViewport(s){let c=this._clone();return Be(c,T5,s),c}setWaitForStableBoundingBox(s){let c=this._clone();return Be(c,N5,s),c}copyOptions(s){return this._timeout=s._timeout,this.visibility=s.visibility,Be(this,F5,I(s,F5)),Be(this,T5,I(s,T5)),Be(this,N5,I(s,N5)),this}clone(){return this._clone()}async waitHandle(s){let c=new Error("Locator.waitHandle");return await ed(this._wait(s).pipe(this.operators.retryAndRaceWithSignalAndTimer(s?.signal,c)))}async wait(s){let c={stack:[],error:void 0,hasError:!1};try{return await Gwr(c,await this.waitHandle(s),!1).jsonValue()}catch(f){c.error=f,c.hasError=!0}finally{Jwr(c)}}map(s){return new wQe(this._clone(),c=>c.evaluateHandle(s))}filter(s){return new vQe(this._clone(),async(c,f)=>(await c.frame.waitForFunction(s,{signal:f,timeout:this._timeout},c),!0))}filterHandle(s){return new vQe(this._clone(),s)}mapHandle(s){return new wQe(this._clone(),s)}click(s){return ed(Ke(this,vk,eSt).call(this,s))}fill(s,c){return ed(Ke(this,vk,tSt).call(this,s,c))}hover(s){return ed(Ke(this,vk,rSt).call(this,s))}scroll(s){return ed(Ke(this,vk,iSt).call(this,s))}};T5=new WeakMap,F5=new WeakMap,N5=new WeakMap,Pae=new WeakMap,R5=new WeakMap,P5=new WeakMap,vk=new WeakSet,eSt=function(s){let c=s?.signal,f=new Error("Locator.click");return this._wait(s).pipe(this.operators.conditions([I(this,P5),I(this,R5),I(this,Pae)],c),I5(()=>this.emit(Nq.Action,void 0)),f_(p=>cu(p.click(s)).pipe(iq(C=>{throw p.dispose().catch(Ss),C}))),this.operators.retryAndRaceWithSignalAndTimer(c,f))},tSt=function(s,c){let f=c?.signal,p=c?.typingThreshold??100,C=new Error("Locator.fill");return this._wait(c).pipe(this.operators.conditions([I(this,P5),I(this,R5),I(this,Pae)],f),I5(()=>this.emit(Nq.Action,void 0)),f_(b=>cu(b.evaluate(N=>N instanceof HTMLSelectElement?"select":N instanceof HTMLTextAreaElement?"typeable-input":N instanceof HTMLInputElement?new Set(["textarea","text","url","tel","search","password","number","email"]).has(N.type)?"typeable-input":"other-input":N.isContentEditable?"contenteditable":"unknown")).pipe(f_(N=>{let L=()=>cu(b.focus()).pipe(f_(()=>cu(b.evaluate((O,j)=>{let k=O;(k.isContentEditable?k.innerText:k.value)!==j&&(k.isContentEditable?k.innerText=j:k.value=j,k.dispatchEvent(new Event("input",{bubbles:!0})),k.dispatchEvent(new Event("change",{bubbles:!0})))},s))));switch(N){case"select":return cu(b.select(s).then(h5));case"contenteditable":case"typeable-input":return s.length{let k=O,R=k.isContentEditable?k.innerText:O.value;return j.length<=R.length||!j.startsWith(R)?(k.isContentEditable?k.innerText="":O.value="",j):(k.isContentEditable?(k.innerText="",k.innerText=R):(O.value="",O.value=R),j.substring(R.length))},s)).pipe(f_(O=>O?cu(b.type(O)):sy(void 0))):L();case"other-input":return L();case"unknown":throw new Error("Element cannot be filled out.")}})).pipe(iq(N=>{throw b.dispose().catch(Ss),N}))),this.operators.retryAndRaceWithSignalAndTimer(f,C))},rSt=function(s){let c=s?.signal,f=new Error("Locator.hover");return this._wait(s).pipe(this.operators.conditions([I(this,P5),I(this,R5)],c),I5(()=>this.emit(Nq.Action,void 0)),f_(p=>cu(p.hover()).pipe(iq(C=>{throw p.dispose().catch(Ss),C}))),this.operators.retryAndRaceWithSignalAndTimer(c,f))},iSt=function(s){let c=s?.signal,f=new Error("Locator.scroll");return this._wait(s).pipe(this.operators.conditions([I(this,P5),I(this,R5)],c),I5(()=>this.emit(Nq.Action,void 0)),f_(p=>cu(p.evaluate((C,b,N)=>{b!==void 0&&(C.scrollTop=b),N!==void 0&&(C.scrollLeft=N)},s?.scrollTop,s?.scrollLeft)).pipe(iq(C=>{throw p.dispose().catch(Ss),C}))),this.operators.retryAndRaceWithSignalAndTimer(c,f))};bQe=class bQe extends CN{constructor(s,c){super();Ae(this,Rq);Ae(this,Pq);Be(this,Rq,s),Be(this,Pq,c)}static create(s,c){return new bQe(s,c).setTimeout("getDefaultTimeout"in s?s.getDefaultTimeout():s.page().getDefaultTimeout())}_clone(){return new bQe(I(this,Rq),I(this,Pq))}_wait(s){let c=s?.signal;return lN(()=>cu(I(this,Rq).waitForFunction(I(this,Pq),{timeout:this.timeout,signal:c}))).pipe(oae())}};Rq=new WeakMap,Pq=new WeakMap;Gq=bQe,QQe=class extends CN{constructor(s){super();Ae(this,GI);Be(this,GI,s),this.copyOptions(I(this,GI))}get delegate(){return I(this,GI)}setTimeout(s){let c=super.setTimeout(s);return Be(c,GI,I(this,GI).setTimeout(s)),c}setVisibility(s){let c=super.setVisibility(s);return Be(c,GI,I(c,GI).setVisibility(s)),c}setWaitForEnabled(s){let c=super.setWaitForEnabled(s);return Be(c,GI,I(this,GI).setWaitForEnabled(s)),c}setEnsureElementIsInTheViewport(s){let c=super.setEnsureElementIsInTheViewport(s);return Be(c,GI,I(this,GI).setEnsureElementIsInTheViewport(s)),c}setWaitForStableBoundingBox(s){let c=super.setWaitForStableBoundingBox(s);return Be(c,GI,I(this,GI).setWaitForStableBoundingBox(s)),c}};GI=new WeakMap;PKe=class PKe extends QQe{constructor(s,c){super(s);Ae(this,Mq);Be(this,Mq,c)}_clone(){return new PKe(this.delegate.clone(),I(this,Mq)).copyOptions(this)}_wait(s){return this.delegate._wait(s).pipe(f_(c=>cu(Promise.resolve(I(this,Mq).call(this,c,s?.signal))).pipe(pQ(f=>f),eg(()=>c))),oae())}};Mq=new WeakMap;vQe=PKe,MKe=class MKe extends QQe{constructor(s,c){super(s);Ae(this,Lq);Be(this,Lq,c)}_clone(){return new MKe(this.delegate.clone(),I(this,Lq)).copyOptions(this)}_wait(s){return this.delegate._wait(s).pipe(f_(c=>cu(Promise.resolve(I(this,Lq).call(this,c,s?.signal)))))}};Lq=new WeakMap;wQe=MKe,Rae=class Rae extends CN{constructor(s,c){super();Ae(this,Oq);Ae(this,y3);Ae(this,DQe,s=>this.visibility?(()=>{switch(this.visibility){case"hidden":return lN(()=>cu(s.isHidden()));case"visible":return lN(()=>cu(s.isVisible()))}})().pipe(gN(Qw),cae({delay:BQe}),nq()):uN);Be(this,Oq,s),Be(this,y3,c)}static create(s,c){return new Rae(s,c).setTimeout("getDefaultTimeout"in s?s.getDefaultTimeout():s.page().getDefaultTimeout())}static createFromHandle(s,c){return new Rae(s,c).setTimeout("getDefaultTimeout"in s?s.getDefaultTimeout():s.page().getDefaultTimeout())}_clone(){return new Rae(I(this,Oq),I(this,y3)).copyOptions(this)}_wait(s){let c=s?.signal;return lN(()=>typeof I(this,y3)=="string"?cu(I(this,Oq).waitForSelector(I(this,y3),{visible:!1,timeout:this._timeout,signal:c})):sy(I(this,y3))).pipe(pQ(f=>f!==null),oae(),this.operators.conditions([I(this,DQe)],c))}};Oq=new WeakMap,y3=new WeakMap,DQe=new WeakMap;B3=Rae;SQe=class SQe extends CN{constructor(s){super();Ae(this,Uq);Be(this,Uq,s)}static create(s){let c=Hwr(s);return new SQe(c)}_clone(){return new SQe(I(this,Uq).map(s=>s.clone())).copyOptions(this)}_wait(s){return rq(...I(this,Uq).map(c=>c._wait(s)))}};Uq=new WeakMap;RKe=SQe,BQe=100});function Yl(a,r){return async function(...s){if(this.realm===this.frame.isolatedRealm())return await a.call(this,...s);let c;this.isolatedHandle?c=this.isolatedHandle:this.isolatedHandle=c=await this.frame.isolatedRealm().adoptHandle(this);let f=await a.call(c,...s);return f===c?this:f instanceof UD?await this.realm.transferHandle(f):(Array.isArray(f)&&await Promise.all(f.map(async(p,C,b)=>{p instanceof UD&&(b[C]=await this.realm.transferHandle(p))})),f instanceof Map&&await Promise.all([...f.entries()].map(async([p,C])=>{C instanceof UD&&f.set(p,await this.realm.transferHandle(C))})),f)}}function qwr(a,r,s){a.width=Math.max(a.x>=0?Math.min(r-a.x,a.width):Math.min(r,a.width+a.x),0),a.height=Math.max(a.y>=0?Math.min(s-a.y,a.height):Math.min(s,a.height+a.y),0),a.x=Math.max(a.x,0),a.y=Math.max(a.y,0)}var jwr,Pf,Lae,Oae,Kwr,xQe,kQe=Nn(()=>{EQe();D5();GA();Rf();C3();xh();BKe();Fq();Mae();jwr=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;R--){var J={};for(var H in c)J[H]=H==="access"?{}:c[H];for(var H in c.access)J.access[H]=c.access[H];J.addInitializer=function(ge){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(ge||null))};var X=(0,s[R])(b==="accessor"?{get:O.get,set:O.set}:O[N],J);if(b==="accessor"){if(X===void 0)continue;if(X===null||typeof X!="object")throw new TypeError("Object expected");(j=C(X.get))&&(O.get=j),(j=C(X.set))&&(O.set=j),(j=C(X.init))&&f.unshift(j)}else(j=C(X))&&(b==="field"?f.unshift(j):O[N]=j)}L&&Object.defineProperty(L,c.name,O),k=!0},Lae=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},Oae=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),Kwr=function(a,r,s){return typeof r=="symbol"&&(r=r.description?"[".concat(r.description,"]"):""),Object.defineProperty(a,"name",{configurable:!0,value:s?"".concat(s," ",r):r})};xQe=(()=>{var Yr,LKe,OKe,UKe,nSt,GKe,JKe,sSt,aSt,oSt,Zn;let a=UD,r=[],s,c,f,p,C,b,N,L,O,j,k,R,J,H,X,ge,Te,Ue,be,ut,We,st,or,gt,jt,Et,Nt,Dt,Tt,qr,zr,bt,ji;return Zn=class extends a{constructor(Fi){super();Ae(this,Yr);Hr(this,"isolatedHandle",jwr(this,r));Hr(this,"handle");this.handle=Fi,this[wq]=!0}get id(){return this.handle.id}get disposed(){return this.handle.disposed}async getProperty(Fi){return await this.handle.getProperty(Fi)}async getProperties(){return await this.handle.getProperties()}async evaluate(Fi,...Qe){return Fi=Pp(this.evaluate.name,Fi),await this.handle.evaluate(Fi,...Qe)}async evaluateHandle(Fi,...Qe){return Fi=Pp(this.evaluateHandle.name,Fi),await this.handle.evaluateHandle(Fi,...Qe)}async jsonValue(){return await this.handle.jsonValue()}toString(){return this.handle.toString()}remoteObject(){return this.handle.remoteObject()}async dispose(){await Promise.all([this.handle.dispose(),this.isolatedHandle?.dispose()])}asElement(){return this}async $(Fi){let{updatedSelector:Qe,QueryHandler:Vr}=Tq(Fi);return await Vr.queryOne(this,Qe)}async $$(Fi,Qe){return Qe?.isolate===!1?await Ke(this,Yr,OKe).call(this,Fi):await I(this,Yr,LKe).call(this,Fi)}async $eval(Fi,Qe,...Vr){let vt={stack:[],error:void 0,hasError:!1};try{Qe=Pp(this.$eval.name,Qe);let ai=Lae(vt,await this.$(Fi),!1);if(!ai)throw new Error(`Error: failed to find element matching selector "${Fi}"`);return await ai.evaluate(Qe,...Vr)}catch(ai){vt.error=ai,vt.hasError=!0}finally{Oae(vt)}}async $$eval(Fi,Qe,...Vr){let vt={stack:[],error:void 0,hasError:!1};try{Qe=Pp(this.$$eval.name,Qe);let ai=await this.$$(Fi),Ci=Lae(vt,await this.evaluateHandle((ei,...ms)=>ms,...ai),!1),[Zr]=await Promise.all([Ci.evaluate(Qe,...Vr),...ai.map(ei=>ei.dispose())]);return Zr}catch(ai){vt.error=ai,vt.hasError=!0}finally{Oae(vt)}}async waitForSelector(Fi,Qe={}){let{updatedSelector:Vr,QueryHandler:vt,polling:ai}=Tq(Fi);return await vt.waitFor(this,Vr,{polling:ai,...Qe})}async isVisible(){return await Ke(this,Yr,UKe).call(this,!0)}async isHidden(){return await Ke(this,Yr,UKe).call(this,!1)}async toElement(Fi){if(!await this.evaluate((Vr,vt)=>Vr.nodeName===vt.toUpperCase(),Fi))throw new Error(`Element is not a(n) \`${Fi}\` element`);return this}async clickablePoint(Fi){let Qe=await Ke(this,Yr,nSt).call(this);if(!Qe)throw new Error("Node is either not clickable or not an Element");return Fi!==void 0?{x:Qe.x+Fi.x,y:Qe.y+Fi.y}:{x:Qe.x+Qe.width/2,y:Qe.y+Qe.height/2}}async hover(){await this.scrollIntoViewIfNeeded();let{x:Fi,y:Qe}=await this.clickablePoint();await this.frame.page().mouse.move(Fi,Qe)}async click(Fi={}){await this.scrollIntoViewIfNeeded();let{x:Qe,y:Vr}=await this.clickablePoint(Fi.offset);try{await this.frame.page().mouse.click(Qe,Vr,Fi)}finally{Fi.debugHighlight&&await this.frame.page().evaluate((vt,ai)=>{let Ci=document.createElement("div");Ci.innerHTML=``,Ci.addEventListener("animationend",()=>{Ci.remove()},{once:!0}),document.body.append(Ci)},Qe,Vr)}}async drag(Fi){await this.scrollIntoViewIfNeeded();let Qe=this.frame.page();if(Qe.isDragInterceptionEnabled()){let Vr=await this.clickablePoint();return Fi instanceof Zn&&(Fi=await Fi.clickablePoint()),await Qe.mouse.drag(Vr,Fi)}try{Qe._isDragging||(Qe._isDragging=!0,await this.hover(),await Qe.mouse.down()),Fi instanceof Zn?await Fi.hover():await Qe.mouse.move(Fi.x,Fi.y)}catch(Vr){throw Qe._isDragging=!1,Vr}}async dragEnter(Fi={items:[],dragOperationsMask:1}){let Qe=this.frame.page();await this.scrollIntoViewIfNeeded();let Vr=await this.clickablePoint();await Qe.mouse.dragEnter(Vr,Fi)}async dragOver(Fi={items:[],dragOperationsMask:1}){let Qe=this.frame.page();await this.scrollIntoViewIfNeeded();let Vr=await this.clickablePoint();await Qe.mouse.dragOver(Vr,Fi)}async drop(Fi={items:[],dragOperationsMask:1}){let Qe=this.frame.page();if("items"in Fi){await this.scrollIntoViewIfNeeded();let Vr=await this.clickablePoint();await Qe.mouse.drop(Vr,Fi)}else await Fi.drag(this),Qe._isDragging=!1,await Qe.mouse.up()}async dragAndDrop(Fi,Qe){let Vr=this.frame.page();Is(Vr.isDragInterceptionEnabled(),"Drag Interception is not enabled!"),await this.scrollIntoViewIfNeeded();let vt=await this.clickablePoint(),ai=await Fi.clickablePoint();await Vr.mouse.dragAndDrop(vt,ai,Qe)}async select(...Fi){for(let Qe of Fi)Is(MI(Qe),'Values must be strings. Found value "'+Qe+'" of type "'+typeof Qe+'"');return await this.evaluate((Qe,Vr)=>{let vt=new Set(Vr);if(!(Qe instanceof HTMLSelectElement))throw new Error("Element is not a ");let J=Ym.value.path;if(J&&(k=k.map(X=>J.win32.isAbsolute(X)||J.posix.isAbsolute(X)?X:J.resolve(X))),k.length===0){await this.evaluate(X=>{X.files=new DataTransfer().files,X.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),X.dispatchEvent(new Event("change",{bubbles:!0}))});return}let{node:{backendNodeId:H}}=await this.client.send("DOM.describeNode",{objectId:this.id});await this.client.send("DOM.setFileInputFiles",{objectId:this.id,files:k,backendNodeId:H})}async autofill(k){let J=(await this.client.send("DOM.describeNode",{objectId:this.handle.id})).node.backendNodeId,H=this.frame._id;await this.client.send("Autofill.trigger",{fieldId:J,frameId:H,card:k.creditCard})}async*queryAXTree(k,R){let{nodes:J}=await this.client.send("Accessibility.queryAXTree",{objectId:this.id,accessibleName:k,role:R}),H=J.filter(X=>!(X.ignored||!X.role||sbr.has(X.role.value)));return yield*wB.map(H,X=>this.realm.adoptBackendNode(X.backendDOMNodeId))}async backendNodeId(){if(I(this,C))return I(this,C);let{node:k}=await this.client.send("DOM.describeNode",{objectId:this.handle.id});return Be(this,C,k.backendNodeId),I(this,C)}},C=new WeakMap,b=new WeakSet,wSt=function(){return this.frame._frameManager},(()=>{let k=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;s=[aa()],c=[aa(),Yl],f=[aa(),Yl],p=[aa()],eve(L,null,s,{kind:"method",name:"contentFrame",static:!1,private:!1,access:{has:R=>"contentFrame"in R,get:R=>R.contentFrame},metadata:k},null,r),eve(L,null,c,{kind:"method",name:"scrollIntoView",static:!1,private:!1,access:{has:R=>"scrollIntoView"in R,get:R=>R.scrollIntoView},metadata:k},null,r),eve(L,null,f,{kind:"method",name:"uploadFile",static:!1,private:!1,access:{has:R=>"uploadFile"in R,get:R=>R.uploadFile},metadata:k},null,r),eve(L,null,p,{kind:"method",name:"autofill",static:!1,private:!1,access:{has:R=>"autofill"in R,get:R=>R.autofill},metadata:k},null,r),k&&Object.defineProperty(L,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:k})})(),L})();var abr=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},obr=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),cbr=new k3("__ariaQuerySelector",Qk.queryOne,""),Abr=new k3("__ariaQuerySelectorAll",(async(a,r)=>{let s=Qk.queryAll(a,r);return await a.realm.evaluateHandle((...c)=>c,...await wB.collect(s))}),""),M3,a7,jD,xW,koe,o7,rve,xB,DSt,SSt,xSt,Toe,L3,pqe,_qe,kW=class extends ya{constructor(s,c,f){super();Ae(this,xB);Ae(this,M3);Ae(this,a7);Ae(this,jD);Ae(this,xW);Ae(this,koe,new Jl);Ae(this,o7,new Map);Ae(this,rve,new m3);Ae(this,Toe,!1);Ae(this,L3);Be(this,M3,s),Be(this,a7,f),Be(this,jD,c.id),c.name&&Be(this,xW,c.name);let p=I(this,koe).use(new ya(I(this,M3)));p.on("Runtime.bindingCalled",Ke(this,xB,SSt).bind(this)),p.on("Runtime.executionContextDestroyed",async C=>{C.executionContextId===I(this,jD)&&this[go]()}),p.on("Runtime.executionContextsCleared",async()=>{this[go]()}),p.on("Runtime.consoleAPICalled",Ke(this,xB,xSt).bind(this)),p.on(bl.Disconnected,()=>{this[go]()})}get id(){return I(this,jD)}get puppeteerUtil(){let s=Promise.resolve();return I(this,Toe)||(s=Promise.all([Ke(this,xB,pqe).call(this,cbr),Ke(this,xB,pqe).call(this,Abr)]),Be(this,Toe,!0)),I3.inject(c=>{I(this,L3)&&I(this,L3).then(f=>{f.dispose()}),Be(this,L3,s.then(()=>this.evaluateHandle(c)))},!I(this,L3)),I(this,L3)}async evaluate(s,...c){return await Ke(this,xB,_qe).call(this,!0,s,...c)}async evaluateHandle(s,...c){return await Ke(this,xB,_qe).call(this,!1,s,...c)}[go](){I(this,koe).dispose(),this.emit("disposed",void 0)}};M3=new WeakMap,a7=new WeakMap,jD=new WeakMap,xW=new WeakMap,koe=new WeakMap,o7=new WeakMap,rve=new WeakMap,xB=new WeakSet,DSt=async function(s){let c={stack:[],error:void 0,hasError:!1};try{if(I(this,o7).has(s.name))return;let f=abr(c,await I(this,rve).acquire(),!1);try{await I(this,M3).send("Runtime.addBinding",I(this,xW)?{name:R3+s.name,executionContextName:I(this,xW)}:{name:R3+s.name,executionContextId:I(this,jD)}),await this.evaluate(gqe,"internal",s.name,R3),I(this,o7).set(s.name,s)}catch(p){if(p instanceof Error&&(p.message.includes("Execution context was destroyed")||p.message.includes("Cannot find context with specified id")))return;Ss(p)}}catch(f){c.error=f,c.hasError=!0}finally{obr(c)}},SSt=async function(s){if(s.executionContextId!==I(this,jD))return;let c;try{c=JSON.parse(s.payload)}catch{return}let{type:f,name:p,seq:C,args:b,isTrivial:N}=c;if(f!=="internal"){this.emit("bindingcalled",s);return}if(!I(this,o7).has(p)){this.emit("bindingcalled",s);return}try{await I(this,o7).get(p)?.run(this,C,b,N)}catch(L){Ss(L)}},xSt=function(s){s.executionContextId===I(this,jD)&&this.emit("consoleapicalled",s)},Toe=new WeakMap,L3=new WeakMap,pqe=async function(s){try{await Ke(this,xB,DSt).call(this,s)}catch(c){Ss(c)}},_qe=async function(s,c,...f){let p=aQe(iQe(c)?.toString()??Vm.INTERNAL_URL);if(MI(c)){let R=I(this,jD),J=c,H=pq.test(J)?J:`${J} -${p} -`,{exceptionDetails:X,result:ge}=await I(this,M3).send("Runtime.evaluate",{expression:H,contextId:R,returnByValue:s,awaitPromise:!0,userGesture:!0}).catch(bSt);if(X)throw fqe(X);return s?DN(ge):I(this,a7).createCdpHandle(ge)}let C=OI(c),b=pq.test(C)?C:`${C} -${p} -`,N;try{N=I(this,M3).send("Runtime.callFunctionOn",{functionDeclaration:b,executionContextId:I(this,jD),arguments:f.some(R=>R instanceof WC)?await Promise.all(f.map(R=>j(this,R))):f.map(R=>k(this,R)),returnByValue:s,awaitPromise:!0,userGesture:!0})}catch(R){throw R instanceof TypeError&&R.message.startsWith("Converting circular structure to JSON")&&(R.message+=" Recursive objects are not allowed."),R}let{exceptionDetails:L,result:O}=await N.catch(bSt);if(L)throw fqe(L);if(s)return DN(O);return I(this,a7).createCdpHandle(O);async function j(R,J){return J instanceof WC&&(J=await J.get(R)),k(R,J)}function k(R,J){if(typeof J=="bigint")return{unserializableValue:`${J.toString()}n`};if(Object.is(J,-0))return{unserializableValue:"-0"};if(Object.is(J,1/0))return{unserializableValue:"Infinity"};if(Object.is(J,-1/0))return{unserializableValue:"-Infinity"};if(Object.is(J,NaN))return{unserializableValue:"NaN"};let H=J&&(J instanceof P3||J instanceof tve)?J:null;if(H){if(H.realm!==I(R,a7))throw new Error("JSHandles can be evaluated only in the context they were created!");if(H.disposed)throw new Error("JSHandle is disposed!");return H.remoteObject().unserializableValue?{unserializableValue:H.remoteObject().unserializableValue}:H.remoteObject().objectId?{objectId:H.remoteObject().objectId}:{value:H.remoteObject().value}}return{value:J}}};var bSt=a=>{if(a.message.includes("Object reference chain is too long"))return{result:{type:"undefined"}};if(a.message.includes("Object couldn't be returned by value"))return{result:{type:"undefined"}};throw a.message.endsWith("Cannot find context with specified id")||a.message.endsWith("Inspected target navigated or closed")?new Error("Execution context was destroyed, most likely because of a navigation."):a};Jq();wl();GA();qC();tg();LI();HQe();var W_;(function(a){a.FrameAttached=Symbol("FrameManager.FrameAttached"),a.FrameNavigated=Symbol("FrameManager.FrameNavigated"),a.FrameDetached=Symbol("FrameManager.FrameDetached"),a.FrameSwapped=Symbol("FrameManager.FrameSwapped"),a.LifecycleEvent=Symbol("FrameManager.LifecycleEvent"),a.FrameNavigatedWithinDocument=Symbol("FrameManager.FrameNavigatedWithinDocument"),a.ConsoleApiCalled=Symbol("FrameManager.ConsoleApiCalled"),a.BindingCalled=Symbol("FrameManager.BindingCalled")})(W_||(W_={}));vw();GQe();Nf();GA();tg();var xk,KD,O3,JI,kSt,TSt,FSt,ive,nve,c7=class extends zq{constructor(s,c){super(c);Ae(this,JI);Ae(this,xk);Ae(this,KD,new ya);Ae(this,O3);Be(this,O3,s)}get environment(){return I(this,O3)}get client(){return I(this,O3).client}get emitter(){return I(this,KD)}setContext(s){I(this,xk)?.[go](),s.once("disposed",Ke(this,JI,kSt).bind(this)),s.on("consoleapicalled",Ke(this,JI,TSt).bind(this)),s.on("bindingcalled",Ke(this,JI,FSt).bind(this)),Be(this,xk,s),I(this,KD).emit("context",s),this.taskManager.rerunAll()}hasContext(){return!!I(this,xk)}get context(){return I(this,xk)}async evaluateHandle(s,...c){s=Pp(this.evaluateHandle.name,s);let f=Ke(this,JI,ive).call(this);return f||(f=await Ke(this,JI,nve).call(this)),await f.evaluateHandle(s,...c)}async evaluate(s,...c){s=Pp(this.evaluate.name,s);let f=Ke(this,JI,ive).call(this);return f||(f=await Ke(this,JI,nve).call(this)),await f.evaluate(s,...c)}async adoptBackendNode(s){let c=Ke(this,JI,ive).call(this);c||(c=await Ke(this,JI,nve).call(this));let{object:f}=await this.client.send("DOM.resolveNode",{backendNodeId:s,executionContextId:c.id});return this.createCdpHandle(f)}async adoptHandle(s){if(s.realm===this)return await s.evaluateHandle(f=>f);let c=await this.client.send("DOM.describeNode",{objectId:s.id});return await this.adoptBackendNode(c.node.backendNodeId)}async transferHandle(s){if(s.realm===this||s.remoteObject().objectId===void 0)return s;let c=await this.client.send("DOM.describeNode",{objectId:s.remoteObject().objectId}),f=await this.adoptBackendNode(c.node.backendNodeId);return await s.dispose(),f}createCdpHandle(s){return s.subtype==="node"?new tve(this,s):new P3(this,s)}[go](){I(this,xk)?.[go](),I(this,KD).emit("disposed",void 0),super[go](),I(this,KD).removeAllListeners()}};xk=new WeakMap,KD=new WeakMap,O3=new WeakMap,JI=new WeakSet,kSt=function(){Be(this,xk,void 0),"clearDocumentHandle"in I(this,O3)&&I(this,O3).clearDocumentHandle()},TSt=function(s){I(this,KD).emit("consoleapicalled",s)},FSt=function(s){I(this,KD).emit("bindingcalled",s)},ive=function(){if(this.disposed)throw new Error(`Execution context is not available in detached frame or worker "${this.environment.url()}" (are you trying to evaluate?)`);return I(this,xk)},nve=async function(){let s=new Error("Execution context was destroyed");return await ed(Hl(I(this,KD),"context").pipe(Cp(Hl(I(this,KD),"disposed").pipe(eg(()=>{throw s})),q_(this.timeoutSettings.timeout()))))};var EQ=Symbol("mainWorld"),TW=Symbol("puppeteerWorld");Jq();Nf();Rf();qC();tg();var ubr=new Map([["load","load"],["domcontentloaded","DOMContentLoaded"],["networkidle0","networkIdle"],["networkidle2","networkAlmostIdle"]]),Foe,U3,FW,G3,u7,Noe,J3,Roe,Poe,Moe,H3,Loe,Ooe,SN,Ip,NSt,RSt,PSt,MSt,LSt,OSt,sve,A7,NW=class{constructor(r,s,c,f,p){Ae(this,Ip);Ae(this,Foe);Ae(this,U3);Ae(this,FW);Ae(this,G3,null);Ae(this,u7,new Jl);Ae(this,Noe);Ae(this,J3);Ae(this,Roe,ZA.create());Ae(this,Poe,ZA.create());Ae(this,Moe,ZA.create());Ae(this,H3,new Error("LifecycleWatcher terminated"));Ae(this,Loe);Ae(this,Ooe);Ae(this,SN);Array.isArray(c)?c=c.slice():typeof c=="string"&&(c=[c]),Be(this,Noe,s._loaderId),Be(this,Foe,c.map(L=>{let O=ubr.get(L);return Is(O,"Unknown value for options.waitUntil: "+L),O})),p?.addEventListener("abort",()=>{p.reason instanceof Error&&(p.reason.cause=I(this,H3)),I(this,J3).reject(p.reason)}),Be(this,U3,s),Be(this,FW,f),I(this,u7).use(new ya(s._frameManager)).on(W_.LifecycleEvent,Ke(this,Ip,A7).bind(this));let b=I(this,u7).use(new ya(s));b.on(am.FrameNavigatedWithinDocument,Ke(this,Ip,LSt).bind(this)),b.on(am.FrameNavigated,Ke(this,Ip,OSt).bind(this)),b.on(am.FrameSwapped,Ke(this,Ip,sve).bind(this)),b.on(am.FrameSwappedByActivation,Ke(this,Ip,sve).bind(this)),b.on(am.FrameDetached,Ke(this,Ip,MSt).bind(this));let N=I(this,u7).use(new ya(r));N.on(kh.Request,Ke(this,Ip,NSt).bind(this)),N.on(kh.Response,Ke(this,Ip,PSt).bind(this)),N.on(kh.RequestFailed,Ke(this,Ip,RSt).bind(this)),Be(this,J3,ZA.create({timeout:I(this,FW),message:`Navigation timeout of ${I(this,FW)} ms exceeded`})),Ke(this,Ip,A7).call(this)}async navigationResponse(){return await I(this,SN)?.valueOrThrow(),I(this,G3)?I(this,G3).response():null}sameDocumentNavigationPromise(){return I(this,Roe).valueOrThrow()}newDocumentNavigationPromise(){return I(this,Moe).valueOrThrow()}lifecyclePromise(){return I(this,Poe).valueOrThrow()}terminationPromise(){return I(this,J3).valueOrThrow()}dispose(){I(this,u7).dispose(),I(this,H3).cause=new Error("LifecycleWatcher disposed"),I(this,J3).resolve(I(this,H3))}};Foe=new WeakMap,U3=new WeakMap,FW=new WeakMap,G3=new WeakMap,u7=new WeakMap,Noe=new WeakMap,J3=new WeakMap,Roe=new WeakMap,Poe=new WeakMap,Moe=new WeakMap,H3=new WeakMap,Loe=new WeakMap,Ooe=new WeakMap,SN=new WeakMap,Ip=new WeakSet,NSt=function(r){r.frame()!==I(this,U3)||!r.isNavigationRequest()||(Be(this,G3,r),I(this,SN)?.resolve(),Be(this,SN,ZA.create()),r.response()!==null&&I(this,SN)?.resolve())},RSt=function(r){I(this,G3)?.id===r.id&&I(this,SN)?.resolve()},PSt=function(r){I(this,G3)?.id===r.request().id&&I(this,SN)?.resolve()},MSt=function(r){if(I(this,U3)===r){I(this,H3).message="Navigating frame was detached",I(this,J3).resolve(I(this,H3));return}Ke(this,Ip,A7).call(this)},LSt=function(){Be(this,Loe,!0),Ke(this,Ip,A7).call(this)},OSt=function(r){if(r==="BackForwardCacheRestore")return Ke(this,Ip,sve).call(this);Ke(this,Ip,A7).call(this)},sve=function(){Be(this,Ooe,!0),Ke(this,Ip,A7).call(this)},A7=function(){if(!r(I(this,U3),I(this,Foe)))return;I(this,Poe).resolve(),I(this,Loe)&&I(this,Roe).resolve(void 0),(I(this,Ooe)||I(this,U3)._loaderId!==I(this,Noe))&&I(this,Moe).resolve(void 0);function r(s,c){for(let f of c)if(!s._lifecycleEvents.has(f))return!1;for(let f of s.childFrames())if(f._hasStartedLoading&&!r(f,c))return!1;return!0}};var lbr=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;R--){var J={};for(var H in c)J[H]=H==="access"?{}:c[H];for(var H in c.access)J.access[H]=c.access[H];J.addInitializer=function(ge){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(ge||null))};var X=(0,s[R])(b==="accessor"?{get:O.get,set:O.set}:O[N],J);if(b==="accessor"){if(X===void 0)continue;if(X===null||typeof X!="object")throw new TypeError("Object expected");(j=C(X.get))&&(O.get=j),(j=C(X.set))&&(O.set=j),(j=C(X.init))&&f.unshift(j)}else(j=C(X))&&(b==="field"?f.unshift(j):O[N]=j)}L&&Object.defineProperty(L,c.name,O),k=!0},hqe=(()=>{var L,O,j,k,USt,GSt,JSt,X;let a=TQe,r=[],s,c,f,p,C,b,N;return X=class extends a{constructor(Ue,be,ut,We){super();Ae(this,k);Ae(this,L,(lbr(this,r),""));Ae(this,O,!1);Ae(this,j);Hr(this,"_frameManager");Hr(this,"_loaderId","");Hr(this,"_lifecycleEvents",new Set);Hr(this,"_id");Hr(this,"_parentId");Hr(this,"accessibility");Hr(this,"worlds");this._frameManager=Ue,Be(this,L,""),this._id=be,this._parentId=ut,Be(this,O,!1),Be(this,j,We),this._loaderId="",this.worlds={[EQ]:new c7(this,this._frameManager.timeoutSettings),[TW]:new c7(this,this._frameManager.timeoutSettings)},this.accessibility=new iW(this.worlds[EQ],be),this.on(am.FrameSwappedByActivation,()=>{this._onLoadingStarted(),this._onLoadingStopped()}),this.worlds[EQ].emitter.on("consoleapicalled",Ke(this,k,USt).bind(this)),this.worlds[EQ].emitter.on("bindingcalled",Ke(this,k,GSt).bind(this))}_client(){return I(this,j)}updateId(Ue){this._id=Ue}updateClient(Ue){Be(this,j,Ue)}page(){return this._frameManager.page()}async goto(Ue,be={}){let{referer:ut=this._frameManager.networkManager.extraHTTPHeaders().referer,referrerPolicy:We=this._frameManager.networkManager.extraHTTPHeaders()["referer-policy"],waitUntil:st=["load"],timeout:or=this._frameManager.timeoutSettings.navigationTimeout()}=be,gt=!1,jt=new NW(this._frameManager.networkManager,this,st,or),Et=await ZA.race([Nt(I(this,j),Ue,ut,We?fbr(We):void 0,this._id),jt.terminationPromise()]);Et||(Et=await ZA.race([jt.terminationPromise(),gt?jt.newDocumentNavigationPromise():jt.sameDocumentNavigationPromise()]));try{if(Et)throw Et;return await jt.navigationResponse()}finally{jt.dispose()}async function Nt(Dt,Tt,qr,zr,bt){try{let ji=await Dt.send("Page.navigate",{url:Tt,referrer:qr,frameId:bt,referrerPolicy:zr});return gt=!!ji.loaderId,ji.errorText==="net::ERR_HTTP_RESPONSE_CODE_FAILURE"?null:ji.errorText?new Error(`${ji.errorText} at ${Tt}`):null}catch(ji){if(g_(ji))return ji;throw ji}}}async waitForNavigation(Ue={}){let{waitUntil:be=["load"],timeout:ut=this._frameManager.timeoutSettings.navigationTimeout(),signal:We}=Ue,st=new NW(this._frameManager.networkManager,this,be,ut,We),or=await ZA.race([st.terminationPromise(),...Ue.ignoreSameDocumentNavigation?[]:[st.sameDocumentNavigationPromise()],st.newDocumentNavigationPromise()]);try{if(or)throw or;let gt=await ZA.race([st.terminationPromise(),st.navigationResponse()]);if(gt instanceof Error)throw or;return gt||null}finally{st.dispose()}}get client(){return I(this,j)}mainRealm(){return this.worlds[EQ]}isolatedRealm(){return this.worlds[TW]}async setContent(Ue,be={}){let{waitUntil:ut=["load"],timeout:We=this._frameManager.timeoutSettings.navigationTimeout()}=be;await this.setFrameContent(Ue);let st=new NW(this._frameManager.networkManager,this,ut,We),or=await ZA.race([st.terminationPromise(),st.lifecyclePromise()]);if(st.dispose(),or)throw or}url(){return I(this,L)}parentFrame(){return this._frameManager._frameTree.parentFrame(this._id)||null}childFrames(){return this._frameManager._frameTree.childFrames(this._id)}async addPreloadScript(Ue){let be=this.parentFrame();if(be&&I(this,j)===be.client||Ue.getIdForFrame(this))return;let{identifier:ut}=await I(this,j).send("Page.addScriptToEvaluateOnNewDocument",{source:Ue.source});Ue.setIdForFrame(this,ut)}async addExposedFunctionBinding(Ue){this!==this._frameManager.mainFrame()&&!this._hasStartedLoading||await Promise.all([I(this,j).send("Runtime.addBinding",{name:R3+Ue.name}),this.evaluate(Ue.initSource).catch(Ss)])}async removeExposedFunctionBinding(Ue){this!==this._frameManager.mainFrame()&&!this._hasStartedLoading||await Promise.all([I(this,j).send("Runtime.removeBinding",{name:R3+Ue.name}),this.evaluate(be=>{globalThis[be]=void 0},Ue.name).catch(Ss)])}async waitForDevicePrompt(Ue={}){return await Ke(this,k,JSt).call(this).waitForDevicePrompt(Ue)}_navigated(Ue){this._name=Ue.name,Be(this,L,`${Ue.url}${Ue.urlFragment||""}`)}_navigatedWithinDocument(Ue){Be(this,L,Ue)}_onLifecycleEvent(Ue,be){be==="init"&&(this._loaderId=Ue,this._lifecycleEvents.clear()),this._lifecycleEvents.add(be)}_onLoadingStopped(){this._lifecycleEvents.add("DOMContentLoaded"),this._lifecycleEvents.add("load")}_onLoadingStarted(){this._hasStartedLoading=!0}get detached(){return I(this,O)}[(s=[Dl],c=[Dl],f=[Dl],p=[Dl],C=[Dl],b=[Dl],N=[Dl],go)](){I(this,O)||(Be(this,O,!0),this.worlds[EQ][go](),this.worlds[TW][go]())}exposeFunction(){throw new Uo}async frameElement(){let Ue=this.parentFrame();if(!Ue)return null;let{backendNodeId:be}=await Ue.client.send("DOM.getFrameOwner",{frameId:this._id});return await Ue.mainRealm().adoptBackendNode(be)}},L=new WeakMap,O=new WeakMap,j=new WeakMap,k=new WeakSet,USt=function(Ue){this._frameManager.emit(W_.ConsoleApiCalled,[this.worlds[EQ],Ue])},GSt=function(Ue){this._frameManager.emit(W_.BindingCalled,[this.worlds[EQ],Ue])},JSt=function(){return this._frameManager._deviceRequestPromptManager(I(this,j))},(()=>{let Ue=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;l7(X,null,s,{kind:"method",name:"goto",static:!1,private:!1,access:{has:be=>"goto"in be,get:be=>be.goto},metadata:Ue},null,r),l7(X,null,c,{kind:"method",name:"waitForNavigation",static:!1,private:!1,access:{has:be=>"waitForNavigation"in be,get:be=>be.waitForNavigation},metadata:Ue},null,r),l7(X,null,f,{kind:"method",name:"setContent",static:!1,private:!1,access:{has:be=>"setContent"in be,get:be=>be.setContent},metadata:Ue},null,r),l7(X,null,p,{kind:"method",name:"addPreloadScript",static:!1,private:!1,access:{has:be=>"addPreloadScript"in be,get:be=>be.addPreloadScript},metadata:Ue},null,r),l7(X,null,C,{kind:"method",name:"addExposedFunctionBinding",static:!1,private:!1,access:{has:be=>"addExposedFunctionBinding"in be,get:be=>be.addExposedFunctionBinding},metadata:Ue},null,r),l7(X,null,b,{kind:"method",name:"removeExposedFunctionBinding",static:!1,private:!1,access:{has:be=>"removeExposedFunctionBinding"in be,get:be=>be.removeExposedFunctionBinding},metadata:Ue},null,r),l7(X,null,N,{kind:"method",name:"waitForDevicePrompt",static:!1,private:!1,access:{has:be=>"waitForDevicePrompt"in be,get:be=>be.waitForDevicePrompt},metadata:Ue},null,r),Ue&&Object.defineProperty(X,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:Ue})})(),X})();function fbr(a){return a.replaceAll(/-./g,r=>r[1].toUpperCase())}qC();var f7,RW,j3,PW,MW,Uoe,ave=class{constructor(){Ae(this,f7,new Map);Ae(this,RW,new Map);Ae(this,j3,new Map);Ae(this,PW);Ae(this,MW,!1);Ae(this,Uoe,new Map)}getMainFrame(){return I(this,PW)}getById(r){return I(this,f7).get(r)}waitForFrame(r){let s=this.getById(r);if(s)return Promise.resolve(s);let c=ZA.create();return(I(this,Uoe).get(r)||new Set).add(c),c.valueOrThrow()}frames(){return Array.from(I(this,f7).values())}addFrame(r){I(this,f7).set(r._id,r),r._parentId?(I(this,RW).set(r._id,r._parentId),I(this,j3).has(r._parentId)||I(this,j3).set(r._parentId,new Set),I(this,j3).get(r._parentId).add(r._id)):(!I(this,PW)||I(this,MW))&&(Be(this,PW,r),Be(this,MW,!1)),I(this,Uoe).get(r._id)?.forEach(s=>s.resolve(r))}removeFrame(r){I(this,f7).delete(r._id),I(this,RW).delete(r._id),r._parentId?I(this,j3).get(r._parentId)?.delete(r._id):Be(this,MW,!0)}childFrames(r){let s=I(this,j3).get(r);return s?Array.from(s).map(c=>this.getById(c)).filter(c=>c!==void 0):[]}parentFrame(r){let s=I(this,RW).get(r);return s?this.getById(s):void 0}};f7=new WeakMap,RW=new WeakMap,j3=new WeakMap,PW=new WeakMap,MW=new WeakMap,Uoe=new WeakMap;vB();Nf();GA();Rf();tg();LI();NQe();GA();pN();var kk,Goe,Joe,Hoe,joe,Koe,LW,qoe,Woe,Yoe,g7=class extends w3{constructor(s,c,f,p,C,b){super();Hr(this,"id");Ae(this,kk);Ae(this,Goe);Ae(this,Joe);Ae(this,Hoe);Ae(this,joe);Ae(this,Koe,!1);Ae(this,LW);Ae(this,qoe,{});Ae(this,Woe);Ae(this,Yoe);Be(this,kk,s),this.id=C.requestId,Be(this,Goe,C.requestId===C.loaderId&&C.type==="Document"),this._interceptionId=f,Be(this,Joe,C.request.url+(C.request.urlFragment??"")),Be(this,Hoe,(C.type||"other").toLowerCase()),Be(this,joe,C.request.method),C.request.postDataEntries&&C.request.postDataEntries.length>0?Be(this,LW,new TextDecoder().decode(z1e(C.request.postDataEntries.map(N=>N.bytes?ww(N.bytes,!0):null).filter(N=>N!==null)))):Be(this,LW,C.request.postData),Be(this,Koe,C.request.hasPostData??!1),Be(this,Woe,c),this._redirectChain=b,Be(this,Yoe,C.initiator),this.interception.enabled=p,this.updateHeaders(C.request.headers)}get client(){return I(this,kk)}set client(s){Be(this,kk,s)}updateHeaders(s){for(let[c,f]of Object.entries(s))I(this,qoe)[c.toLowerCase()]=f}url(){return I(this,Joe)}resourceType(){return I(this,Hoe)}method(){return I(this,joe)}postData(){return I(this,LW)}hasPostData(){return I(this,Koe)}async fetchPostData(){try{return(await I(this,kk).send("Network.getRequestPostData",{requestId:this.id})).postData}catch(s){Ss(s);return}}headers(){return structuredClone(I(this,qoe))}response(){return this._response}frame(){return I(this,Woe)}isNavigationRequest(){return I(this,Goe)}initiator(){return I(this,Yoe)}redirectChain(){return this._redirectChain.slice()}failure(){return this._failureText?{errorText:this._failureText}:null}canBeIntercepted(){return!this.url().startsWith("data:")&&!this._fromMemoryCache}async _continue(s={}){let{url:c,method:f,postData:p,headers:C}=s;this.interception.handled=!0;let b=p?V1e(p):void 0;if(this._interceptionId===void 0)throw new Error("HTTPRequest is missing _interceptionId needed for Fetch.continueRequest");await I(this,kk).send("Fetch.continueRequest",{requestId:this._interceptionId,url:c,method:f,postData:b,headers:C?HKe(C):void 0}).catch(N=>(this.interception.handled=!1,Hq(N)))}async _respond(s){this.interception.handled=!0;let c;s.body&&(c=w3.getResponse(s.body));let f={};if(s.headers)for(let C of Object.keys(s.headers)){let b=s.headers[C];f[C.toLowerCase()]=Array.isArray(b)?b.map(N=>String(N)):String(b)}s.contentType&&(f["content-type"]=s.contentType),c?.contentLength&&!("content-length"in f)&&(f["content-length"]=String(c.contentLength));let p=s.status||200;if(this._interceptionId===void 0)throw new Error("HTTPRequest is missing _interceptionId needed for Fetch.fulfillRequest");await I(this,kk).send("Fetch.fulfillRequest",{requestId:this._interceptionId,responseCode:p,responsePhrase:FQe[p],responseHeaders:HKe(f),body:c?.base64}).catch(C=>(this.interception.handled=!1,Hq(C)))}async _abort(s){if(this.interception.handled=!0,this._interceptionId===void 0)throw new Error("HTTPRequest is missing _interceptionId needed for Fetch.failRequest");await I(this,kk).send("Fetch.failRequest",{requestId:this._interceptionId,errorReason:s||"Failed"}).catch(Hq)}};kk=new WeakMap,Goe=new WeakMap,Joe=new WeakMap,Hoe=new WeakMap,joe=new WeakMap,Koe=new WeakMap,LW=new WeakMap,qoe=new WeakMap,Woe=new WeakMap,Yoe=new WeakMap;RQe();wl();ove();qC();pN();var Tk,UW,GW,rce,ice,nce,sce,ace,oce,cce,Ace,cve,HSt,tce=class extends jq{constructor(s,c,f){super();Ae(this,cve);Ae(this,Tk);Ae(this,UW,null);Ae(this,GW,ZA.create());Ae(this,rce);Ae(this,ice);Ae(this,nce);Ae(this,sce);Ae(this,ace);Ae(this,oce,{});Ae(this,cce);Ae(this,Ace);Be(this,Tk,s),Be(this,rce,{ip:c.remoteIPAddress,port:c.remotePort}),Be(this,nce,Ke(this,cve,HSt).call(this,f)||c.statusText),Be(this,sce,!!c.fromDiskCache),Be(this,ace,!!c.fromServiceWorker),Be(this,ice,f?f.statusCode:c.status);let p=f?f.headers:c.headers;for(let[C,b]of Object.entries(p))I(this,oce)[C.toLowerCase()]=b;Be(this,cce,c.securityDetails?new OW(c.securityDetails):null),Be(this,Ace,c.timing||null)}_resolveBody(s){return s?I(this,GW).reject(s):I(this,GW).resolve()}remoteAddress(){return I(this,rce)}url(){return I(this,Tk).url()}status(){return I(this,ice)}statusText(){return I(this,nce)}headers(){return I(this,oce)}securityDetails(){return I(this,cce)}timing(){return I(this,Ace)}content(){return I(this,UW)||Be(this,UW,I(this,GW).valueOrThrow().then(async()=>{try{let s=await I(this,Tk).client.send("Network.getResponseBody",{requestId:I(this,Tk).id});return ww(s.body,s.base64Encoded)}catch(s){throw s instanceof Dh&&s.originalMessage==="No resource with given identifier found"?new Dh("Could not load response body for this request. This might happen if the request is a preflight request."):s}})),I(this,UW)}request(){return I(this,Tk)}fromCache(){return I(this,sce)||I(this,Tk)._fromMemoryCache}fromServiceWorker(){return I(this,ace)}frame(){return I(this,Tk).frame()}};Tk=new WeakMap,UW=new WeakMap,GW=new WeakMap,rce=new WeakMap,ice=new WeakMap,nce=new WeakMap,sce=new WeakMap,ace=new WeakMap,oce=new WeakMap,cce=new WeakMap,Ace=new WeakMap,cve=new WeakSet,HSt=function(s){if(!s||!s.headersText)return;let c=s.headersText.split("\r",1)[0];if(!c||c.length>1e3)return;let f=c.match(/[^ ]* [^ ]* (.*)/);if(!f)return;let p=f[1];if(p)return p};var K3,q3,W3,d7,Y3,p7,_7,Ave=class{constructor(){Ae(this,K3,new Map);Ae(this,q3,new Map);Ae(this,W3,new Map);Ae(this,d7,new Map);Ae(this,Y3,new Map);Ae(this,p7,new Map);Ae(this,_7,new Map)}forget(r){I(this,K3).delete(r),I(this,q3).delete(r),I(this,d7).delete(r),I(this,_7).delete(r),I(this,p7).delete(r),I(this,Y3).delete(r)}requestExtraInfo(r){return I(this,d7).has(r)||I(this,d7).set(r,[]),I(this,d7).get(r)}responseExtraInfo(r){return I(this,Y3).has(r)||I(this,Y3).set(r,[]),I(this,Y3).get(r)}queuedRedirectInfo(r){return I(this,p7).has(r)||I(this,p7).set(r,[]),I(this,p7).get(r)}queueRedirectInfo(r,s){this.queuedRedirectInfo(r).push(s)}takeQueuedRedirectInfo(r){return this.queuedRedirectInfo(r).shift()}inFlightRequestsCount(){let r=0;for(let s of I(this,W3).values())s.response()||r++;return r}storeRequestWillBeSent(r,s){I(this,K3).set(r,s)}getRequestWillBeSent(r){return I(this,K3).get(r)}forgetRequestWillBeSent(r){I(this,K3).delete(r)}getRequestPaused(r){return I(this,q3).get(r)}forgetRequestPaused(r){I(this,q3).delete(r)}storeRequestPaused(r,s){I(this,q3).set(r,s)}getRequest(r){return I(this,W3).get(r)}storeRequest(r,s){I(this,W3).set(r,s)}forgetRequest(r){I(this,W3).delete(r)}getQueuedEventGroup(r){return I(this,_7).get(r)}queueEventGroup(r,s){I(this,_7).set(r,s)}forgetQueuedEventGroup(r){I(this,_7).delete(r)}printState(){function r(s,c){return c instanceof Map?{dataType:"Map",value:Array.from(c.entries())}:c instanceof g7?{dataType:"CdpHTTPRequest",value:`${c.id}: ${c.url()}`}:c}console.log("httpRequestsMap",JSON.stringify(I(this,W3),r,2)),console.log("requestWillBeSentMap",JSON.stringify(I(this,K3),r,2)),console.log("requestWillBeSentMap",JSON.stringify(I(this,Y3),r,2)),console.log("requestWillBeSentMap",JSON.stringify(I(this,q3),r,2))}};K3=new WeakMap,q3=new WeakMap,W3=new WeakMap,d7=new WeakMap,Y3=new WeakMap,p7=new WeakMap,_7=new WeakMap;var HW,Sl,m7,z3,jW,Fk,Nk,X3,O0,KW,lce,fce,dve,Z3,gce,Xa,h7,jSt,mqe,V3,uve,Cqe,lve,uce,KSt,qSt,WSt,Iqe,YSt,JW,VSt,zSt,XSt,Eqe,ZSt,$St,fve,ext,yqe,txt,Bqe,Qqe,gve=class extends ya{constructor(s,c){super();Ae(this,Xa);Ae(this,HW);Ae(this,Sl,new Ave);Ae(this,m7);Ae(this,z3,null);Ae(this,jW,new Set);Ae(this,Fk,!1);Ae(this,Nk);Ae(this,X3);Ae(this,O0);Ae(this,KW);Ae(this,lce);Ae(this,fce);Ae(this,dve,[["Fetch.requestPaused",Ke(this,Xa,WSt)],["Fetch.authRequired",Ke(this,Xa,qSt)],["Network.requestWillBeSent",Ke(this,Xa,KSt)],["Network.requestWillBeSentExtraInfo",Ke(this,Xa,VSt)],["Network.requestServedFromCache",Ke(this,Xa,zSt)],["Network.responseReceived",Ke(this,Xa,ZSt)],["Network.loadingFinished",Ke(this,Xa,ext)],["Network.loadingFailed",Ke(this,Xa,txt)],["Network.responseReceivedExtraInfo",Ke(this,Xa,$St)],[bl.Disconnected,Ke(this,Xa,jSt)]]);Ae(this,Z3,new Map);Ae(this,gce,!0);Be(this,HW,s),Be(this,gce,c??!0)}async addClient(s){if(!I(this,gce)||I(this,Z3).has(s))return;let c=new Jl;I(this,Z3).set(s,c);let f=c.use(new ya(s));for(let[p,C]of I(this,dve))f.on(p,b=>C.bind(this)(s,b));try{await Promise.all([s.send("Network.enable"),Ke(this,Xa,mqe).call(this,s),Ke(this,Xa,uve).call(this,s),Ke(this,Xa,uce).call(this,s),Ke(this,Xa,lve).call(this,s),Ke(this,Xa,Cqe).call(this,s)])}catch(p){if(Ke(this,Xa,h7).call(this,p))return;throw p}}async authenticate(s){Be(this,z3,s);let c=I(this,Fk)||!!I(this,z3);c!==I(this,Nk)&&(Be(this,Nk,c),await Ke(this,Xa,V3).call(this,Ke(this,Xa,lve).bind(this)))}async setExtraHTTPHeaders(s){let c={};for(let[f,p]of Object.entries(s))Is(MI(p),`Expected value of header "${f}" to be String, but "${typeof p}" is found.`),c[f.toLowerCase()]=p;Be(this,m7,c),await Ke(this,Xa,V3).call(this,Ke(this,Xa,mqe).bind(this))}extraHTTPHeaders(){return Object.assign({},I(this,m7))}inFlightRequestsCount(){return I(this,Sl).inFlightRequestsCount()}async setOfflineMode(s){I(this,O0)||Be(this,O0,{offline:!1,upload:-1,download:-1,latency:0}),I(this,O0).offline=s,await Ke(this,Xa,V3).call(this,Ke(this,Xa,uve).bind(this))}async emulateNetworkConditions(s){I(this,O0)||Be(this,O0,{offline:s?.offline??!1,upload:-1,download:-1,latency:0}),I(this,O0).upload=s?s.upload:-1,I(this,O0).download=s?s.download:-1,I(this,O0).latency=s?s.latency:0,I(this,O0).offline=s?.offline??!1,await Ke(this,Xa,V3).call(this,Ke(this,Xa,uve).bind(this))}async setUserAgent(s,c,f){Be(this,KW,s),Be(this,lce,c),Be(this,fce,f),await Ke(this,Xa,V3).call(this,Ke(this,Xa,Cqe).bind(this))}async setCacheEnabled(s){Be(this,X3,!s),await Ke(this,Xa,V3).call(this,Ke(this,Xa,uce).bind(this))}async setRequestInterception(s){Be(this,Fk,s);let c=I(this,Fk)||!!I(this,z3);c!==I(this,Nk)&&(Be(this,Nk,c),await Ke(this,Xa,V3).call(this,Ke(this,Xa,lve).bind(this)))}};HW=new WeakMap,Sl=new WeakMap,m7=new WeakMap,z3=new WeakMap,jW=new WeakMap,Fk=new WeakMap,Nk=new WeakMap,X3=new WeakMap,O0=new WeakMap,KW=new WeakMap,lce=new WeakMap,fce=new WeakMap,dve=new WeakMap,Z3=new WeakMap,gce=new WeakMap,Xa=new WeakSet,h7=function(s){return g_(s)&&(V5(s)||s.message.includes("Not supported")||s.message.includes("wasn't found"))},jSt=async function(s){I(this,Z3).get(s)?.dispose(),I(this,Z3).delete(s)},mqe=async function(s){if(I(this,m7)!==void 0)try{await s.send("Network.setExtraHTTPHeaders",{headers:I(this,m7)})}catch(c){if(Ke(this,Xa,h7).call(this,c))return;throw c}},V3=async function(s){await Promise.all(Array.from(I(this,Z3).keys()).map(c=>s(c)))},uve=async function(s){if(I(this,O0)!==void 0)try{await s.send("Network.emulateNetworkConditions",{offline:I(this,O0).offline,latency:I(this,O0).latency,uploadThroughput:I(this,O0).upload,downloadThroughput:I(this,O0).download})}catch(c){if(Ke(this,Xa,h7).call(this,c))return;throw c}},Cqe=async function(s){if(I(this,KW)!==void 0)try{await s.send("Network.setUserAgentOverride",{userAgent:I(this,KW),userAgentMetadata:I(this,lce),platform:I(this,fce)})}catch(c){if(Ke(this,Xa,h7).call(this,c))return;throw c}},lve=async function(s){if(I(this,Nk)!==void 0){I(this,X3)===void 0&&Be(this,X3,!1);try{I(this,Nk)?await Promise.all([Ke(this,Xa,uce).call(this,s),s.send("Fetch.enable",{handleAuthRequests:!0,patterns:[{urlPattern:"*"}]})]):await Promise.all([Ke(this,Xa,uce).call(this,s),s.send("Fetch.disable")])}catch(c){if(Ke(this,Xa,h7).call(this,c))return;throw c}}},uce=async function(s){if(I(this,X3)!==void 0)try{await s.send("Network.setCacheDisabled",{cacheDisabled:I(this,X3)})}catch(c){if(Ke(this,Xa,h7).call(this,c))return;throw c}},KSt=function(s,c){if(I(this,Fk)&&!c.request.url.startsWith("data:")){let{requestId:f}=c;I(this,Sl).storeRequestWillBeSent(f,c);let p=I(this,Sl).getRequestPaused(f);if(p){let{requestId:C}=p;Ke(this,Xa,Iqe).call(this,c,p),Ke(this,Xa,JW).call(this,s,c,C),I(this,Sl).forgetRequestPaused(f)}return}Ke(this,Xa,JW).call(this,s,c,void 0)},qSt=function(s,c){let f="Default";I(this,jW).has(c.requestId)?f="CancelAuth":I(this,z3)&&(f="ProvideCredentials",I(this,jW).add(c.requestId));let{username:p,password:C}=I(this,z3)||{username:void 0,password:void 0};s.send("Fetch.continueWithAuth",{requestId:c.requestId,authChallengeResponse:{response:f,username:p,password:C}}).catch(Ss)},WSt=function(s,c){!I(this,Fk)&&I(this,Nk)&&s.send("Fetch.continueRequest",{requestId:c.requestId}).catch(Ss);let{networkId:f,requestId:p}=c;if(!f){Ke(this,Xa,YSt).call(this,s,c);return}let C=(()=>{let b=I(this,Sl).getRequestWillBeSent(f);if(b&&(b.request.url!==c.request.url||b.request.method!==c.request.method)){I(this,Sl).forgetRequestWillBeSent(f);return}return b})();C?(Ke(this,Xa,Iqe).call(this,C,c),Ke(this,Xa,JW).call(this,s,C,p)):I(this,Sl).storeRequestPaused(f,c)},Iqe=function(s,c){s.request.headers={...s.request.headers,...c.request.headers}},YSt=function(s,c){let f=c.frameId?I(this,HW).frame(c.frameId):null,p=new g7(s,f,c.requestId,I(this,Fk),c,[]);this.emit(kh.Request,p),p.finalizeInterceptions()},JW=function(s,c,f,p=!1){let C=[];if(c.redirectResponse){let O=null;if(c.redirectHasExtraInfo&&(O=I(this,Sl).responseExtraInfo(c.requestId).shift(),!O)){I(this,Sl).queueRedirectInfo(c.requestId,{event:c,fetchRequestId:f});return}let j=I(this,Sl).getRequest(c.requestId);if(j){Ke(this,Xa,XSt).call(this,s,j,c.redirectResponse,O),C=j._redirectChain;let k=I(this,Sl).requestExtraInfo(c.requestId).shift();k&&j.updateHeaders(k.headers)}}let b=c.frameId?I(this,HW).frame(c.frameId):null,N=new g7(s,b,f,I(this,Fk),c,C),L=I(this,Sl).requestExtraInfo(c.requestId).shift();L&&N.updateHeaders(L.headers),N._fromMemoryCache=p,I(this,Sl).storeRequest(c.requestId,N),this.emit(kh.Request,N),N.finalizeInterceptions()},VSt=function(s,c){let f=I(this,Sl).getRequest(c.requestId);f?f.updateHeaders(c.headers):I(this,Sl).requestExtraInfo(c.requestId).push(c)},zSt=function(s,c){let f=I(this,Sl).getRequestWillBeSent(c.requestId),p=I(this,Sl).getRequest(c.requestId);if(p&&(p._fromMemoryCache=!0),!p&&f&&(Ke(this,Xa,JW).call(this,s,f,void 0,!0),p=I(this,Sl).getRequest(c.requestId)),!p){Ss(new Error(`Request ${c.requestId} was served from cache but we could not find the corresponding request object`));return}this.emit(kh.RequestServedFromCache,p)},XSt=function(s,c,f,p){let C=new tce(c,f,p);c._response=C,c._redirectChain.push(c),C._resolveBody(new Error("Response body is unavailable for redirect responses")),Ke(this,Xa,fve).call(this,c,!1),this.emit(kh.Response,C),this.emit(kh.RequestFinished,c)},Eqe=function(s,c,f){let p=I(this,Sl).getRequest(c.requestId);if(!p)return;I(this,Sl).responseExtraInfo(c.requestId).length&&Ss(new Error("Unexpected extraInfo events for request "+c.requestId)),c.response.fromDiskCache&&(f=null);let b=new tce(p,c.response,f);p._response=b,this.emit(kh.Response,b)},ZSt=function(s,c){let f=I(this,Sl).getRequest(c.requestId),p=null;if(f&&!f._fromMemoryCache&&c.hasExtraInfo&&(p=I(this,Sl).responseExtraInfo(c.requestId).shift(),!p)){I(this,Sl).queueEventGroup(c.requestId,{responseReceivedEvent:c});return}Ke(this,Xa,Eqe).call(this,s,c,p)},$St=function(s,c){let f=I(this,Sl).takeQueuedRedirectInfo(c.requestId);if(f){I(this,Sl).responseExtraInfo(c.requestId).push(c),Ke(this,Xa,JW).call(this,s,f.event,f.fetchRequestId);return}let p=I(this,Sl).getQueuedEventGroup(c.requestId);if(p){I(this,Sl).forgetQueuedEventGroup(c.requestId),Ke(this,Xa,Eqe).call(this,s,p.responseReceivedEvent,c),p.loadingFinishedEvent&&Ke(this,Xa,yqe).call(this,s,p.loadingFinishedEvent),p.loadingFailedEvent&&Ke(this,Xa,Bqe).call(this,s,p.loadingFailedEvent);return}I(this,Sl).responseExtraInfo(c.requestId).push(c)},fve=function(s,c){let f=s.id,p=s._interceptionId;I(this,Sl).forgetRequest(f),p!==void 0&&I(this,jW).delete(p),c&&I(this,Sl).forget(f)},ext=function(s,c){let f=I(this,Sl).getQueuedEventGroup(c.requestId);f?f.loadingFinishedEvent=c:Ke(this,Xa,yqe).call(this,s,c)},yqe=function(s,c){let f=I(this,Sl).getRequest(c.requestId);f&&(Ke(this,Xa,Qqe).call(this,s,f),f.response()&&f.response()?._resolveBody(),Ke(this,Xa,fve).call(this,f,!0),this.emit(kh.RequestFinished,f))},txt=function(s,c){let f=I(this,Sl).getQueuedEventGroup(c.requestId);f?f.loadingFailedEvent=c:Ke(this,Xa,Bqe).call(this,s,c)},Bqe=function(s,c){let f=I(this,Sl).getRequest(c.requestId);if(!f)return;Ke(this,Xa,Qqe).call(this,s,f),f._failureText=c.errorText;let p=f.response();p&&p._resolveBody(),Ke(this,Xa,fve).call(this,f,!0),this.emit(kh.RequestFailed,f)},Qqe=function(s,c){s!==c.client&&(c.client=s)};var gbr=100,qW,$3,WW,dce,qD,I7,YW,E7,pce,Ay,Vl,vqe,rxt,ixt,nxt,wqe,bqe,Dqe,sxt,axt,oxt,cxt,C7,pve=class extends ya{constructor(s,c,f){super();Ae(this,Vl);Ae(this,qW);Ae(this,$3);Ae(this,WW);Ae(this,dce,new Set);Ae(this,qD);Ae(this,I7,new Map);Ae(this,YW,new Set);Hr(this,"_frameTree",new ave);Ae(this,E7,new Set);Ae(this,pce,new WeakMap);Ae(this,Ay);Be(this,qD,s),Be(this,qW,c),Be(this,$3,new gve(this,c.browser().isNetworkEnabled())),Be(this,WW,f),this.setupEventListeners(I(this,qD)),s.once(bl.Disconnected,()=>{Ke(this,Vl,vqe).call(this).catch(Ss)})}get timeoutSettings(){return I(this,WW)}get networkManager(){return I(this,$3)}get client(){return I(this,qD)}async swapFrameTree(s){Be(this,qD,s);let c=this._frameTree.getMainFrame();c&&(I(this,E7).add(I(this,qD).target()._targetId),this._frameTree.removeFrame(c),c.updateId(I(this,qD).target()._targetId),this._frameTree.addFrame(c),c.updateClient(s)),this.setupEventListeners(s),s.once(bl.Disconnected,()=>{Ke(this,Vl,vqe).call(this).catch(Ss)}),await this.initialize(s,c),await I(this,$3).addClient(s),c&&c.emit(am.FrameSwappedByActivation,void 0)}async registerSpeculativeSession(s){await I(this,$3).addClient(s)}setupEventListeners(s){s.on("Page.frameAttached",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,bqe).call(this,s,c.frameId,c.parentFrameId)}),s.on("Page.frameNavigated",async c=>{I(this,E7).add(c.frame.id),await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,Dqe).call(this,c.frame,c.type)}),s.on("Page.navigatedWithinDocument",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,axt).call(this,c.frameId,c.url)}),s.on("Page.frameDetached",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,oxt).call(this,c.frameId,c.reason)}),s.on("Page.frameStartedLoading",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,ixt).call(this,c.frameId)}),s.on("Page.frameStoppedLoading",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,nxt).call(this,c.frameId)}),s.on("Runtime.executionContextCreated",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,cxt).call(this,c.context,s)}),s.on("Page.lifecycleEvent",async c=>{await I(this,Ay)?.valueOrThrow(),Ke(this,Vl,rxt).call(this,c)})}async initialize(s,c){try{I(this,Ay)?.resolve(),Be(this,Ay,ZA.create()),await Promise.all([I(this,$3).addClient(s),s.send("Page.enable"),s.send("Page.getFrameTree").then(({frameTree:f})=>{Ke(this,Vl,wqe).call(this,s,f),I(this,Ay)?.resolve()}),s.send("Page.setLifecycleEventsEnabled",{enabled:!0}),s.send("Runtime.enable").then(()=>Ke(this,Vl,sxt).call(this,s,EKe)),...(c?Array.from(I(this,I7).values()):[]).map(f=>c?.addPreloadScript(f)),...(c?Array.from(I(this,YW).values()):[]).map(f=>c?.addExposedFunctionBinding(f))])}catch(f){if(I(this,Ay)?.resolve(),g_(f)&&V5(f))return;throw f}}page(){return I(this,qW)}mainFrame(){let s=this._frameTree.getMainFrame();return Is(s,"Requesting main frame too early!"),s}frames(){return Array.from(this._frameTree.frames())}frame(s){return this._frameTree.getById(s)||null}async addExposedFunctionBinding(s){I(this,YW).add(s),await Promise.all(this.frames().map(async c=>await c.addExposedFunctionBinding(s)))}async removeExposedFunctionBinding(s){I(this,YW).delete(s),await Promise.all(this.frames().map(async c=>await c.removeExposedFunctionBinding(s)))}async evaluateOnNewDocument(s){let{identifier:c}=await this.mainFrame()._client().send("Page.addScriptToEvaluateOnNewDocument",{source:s}),f=new XQe(this.mainFrame(),c,s);return I(this,I7).set(c,f),await Promise.all(this.frames().map(async p=>await p.addPreloadScript(f))),{identifier:c}}async removeScriptToEvaluateOnNewDocument(s){let c=I(this,I7).get(s);if(!c)throw new Error(`Script to evaluate on new document with id ${s} not found`);I(this,I7).delete(s),await Promise.all(this.frames().map(f=>{let p=c.getIdForFrame(f);if(p)return f._client().send("Page.removeScriptToEvaluateOnNewDocument",{identifier:p}).catch(Ss)}))}onAttachedToTarget(s){if(s._getTargetInfo().type!=="iframe")return;let c=this.frame(s._getTargetInfo().targetId);c&&c.updateClient(s._session()),this.setupEventListeners(s._session()),this.initialize(s._session(),c).catch(Ss)}_deviceRequestPromptManager(s){let c=I(this,pce).get(s);return c===void 0&&(c=new ZQe(s,I(this,WW)),I(this,pce).set(s,c)),c}};qW=new WeakMap,$3=new WeakMap,WW=new WeakMap,dce=new WeakMap,qD=new WeakMap,I7=new WeakMap,YW=new WeakMap,E7=new WeakMap,pce=new WeakMap,Ay=new WeakMap,Vl=new WeakSet,vqe=async function(){let s=this._frameTree.getMainFrame();if(!s)return;if(!I(this,qW).browser().connected){Ke(this,Vl,C7).call(this,s);return}for(let f of s.childFrames())Ke(this,Vl,C7).call(this,f);let c=ZA.create({timeout:gbr,message:"Frame was not swapped"});s.once(am.FrameSwappedByActivation,()=>{c.resolve()});try{await c.valueOrThrow()}catch{Ke(this,Vl,C7).call(this,s)}},rxt=function(s){let c=this.frame(s.frameId);c&&(c._onLifecycleEvent(s.loaderId,s.name),this.emit(W_.LifecycleEvent,c),c.emit(am.LifecycleEvent,void 0))},ixt=function(s){let c=this.frame(s);c&&c._onLoadingStarted()},nxt=function(s){let c=this.frame(s);c&&(c._onLoadingStopped(),this.emit(W_.LifecycleEvent,c),c.emit(am.LifecycleEvent,void 0))},wqe=function(s,c){if(c.frame.parentId&&Ke(this,Vl,bqe).call(this,s,c.frame.id,c.frame.parentId),I(this,E7).has(c.frame.id)?I(this,E7).delete(c.frame.id):Ke(this,Vl,Dqe).call(this,c.frame,"Navigation"),!!c.childFrames)for(let f of c.childFrames)Ke(this,Vl,wqe).call(this,s,f)},bqe=function(s,c,f){let p=this.frame(c);if(p){let C=this.frame(f);s&&C&&p.client!==C?.client&&p.updateClient(s);return}p=new hqe(this,c,f,s),this._frameTree.addFrame(p),this.emit(W_.FrameAttached,p)},Dqe=async function(s,c){let f=s.id,p=!s.parentId,C=this._frameTree.getById(f);if(C)for(let b of C.childFrames())Ke(this,Vl,C7).call(this,b);p&&(C?(this._frameTree.removeFrame(C),C._id=f):C=new hqe(this,f,void 0,I(this,qD)),this._frameTree.addFrame(C)),C=await this._frameTree.waitForFrame(f),C._navigated(s),this.emit(W_.FrameNavigated,C),C.emit(am.FrameNavigated,c)},sxt=async function(s,c){let f=`${s.id()}:${c}`;I(this,dce).has(f)||(await s.send("Page.addScriptToEvaluateOnNewDocument",{source:`//# sourceURL=${Vm.INTERNAL_URL}`,worldName:c}),await Promise.all(this.frames().filter(p=>p.client===s).map(p=>s.send("Page.createIsolatedWorld",{frameId:p._id,worldName:c,grantUniveralAccess:!0}).catch(Ss))),I(this,dce).add(f))},axt=function(s,c){let f=this.frame(s);f&&(f._navigatedWithinDocument(c),this.emit(W_.FrameNavigatedWithinDocument,f),f.emit(am.FrameNavigatedWithinDocument,void 0),this.emit(W_.FrameNavigated,f),f.emit(am.FrameNavigated,"Navigation"))},oxt=function(s,c){let f=this.frame(s);if(f)switch(c){case"remove":Ke(this,Vl,C7).call(this,f);break;case"swap":this.emit(W_.FrameSwapped,f),f.emit(am.FrameSwapped,void 0);break}},cxt=function(s,c){let f=s.auxData,p=f&&f.frameId,C=typeof p=="string"?this.frame(p):void 0,b;if(C){if(C.client!==c)return;s.auxData&&s.auxData.isDefault?b=C.worlds[EQ]:s.name===EKe&&(b=C.worlds[TW])}if(!b)return;let N=new kW(C?.client||I(this,qD),s,b);b.setContext(N)},C7=function(s){for(let c of s.childFrames())Ke(this,Vl,C7).call(this,c);s[go](),this._frameTree.removeFrame(s),this.emit(W_.FrameDetached,s),s.emit(am.FrameDetached,s)};PQe();wl();var Sqe={0:{keyCode:48,key:"0",code:"Digit0"},1:{keyCode:49,key:"1",code:"Digit1"},2:{keyCode:50,key:"2",code:"Digit2"},3:{keyCode:51,key:"3",code:"Digit3"},4:{keyCode:52,key:"4",code:"Digit4"},5:{keyCode:53,key:"5",code:"Digit5"},6:{keyCode:54,key:"6",code:"Digit6"},7:{keyCode:55,key:"7",code:"Digit7"},8:{keyCode:56,key:"8",code:"Digit8"},9:{keyCode:57,key:"9",code:"Digit9"},Power:{key:"Power",code:"Power"},Eject:{key:"Eject",code:"Eject"},Abort:{keyCode:3,code:"Abort",key:"Cancel"},Help:{keyCode:6,code:"Help",key:"Help"},Backspace:{keyCode:8,code:"Backspace",key:"Backspace"},Tab:{keyCode:9,code:"Tab",key:"Tab"},Numpad5:{keyCode:12,shiftKeyCode:101,key:"Clear",code:"Numpad5",shiftKey:"5",location:3},NumpadEnter:{keyCode:13,code:"NumpadEnter",key:"Enter",text:"\r",location:3},Enter:{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\r":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\n":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},ShiftLeft:{keyCode:16,code:"ShiftLeft",key:"Shift",location:1},ShiftRight:{keyCode:16,code:"ShiftRight",key:"Shift",location:2},ControlLeft:{keyCode:17,code:"ControlLeft",key:"Control",location:1},ControlRight:{keyCode:17,code:"ControlRight",key:"Control",location:2},AltLeft:{keyCode:18,code:"AltLeft",key:"Alt",location:1},AltRight:{keyCode:18,code:"AltRight",key:"Alt",location:2},Pause:{keyCode:19,code:"Pause",key:"Pause"},CapsLock:{keyCode:20,code:"CapsLock",key:"CapsLock"},Escape:{keyCode:27,code:"Escape",key:"Escape"},Convert:{keyCode:28,code:"Convert",key:"Convert"},NonConvert:{keyCode:29,code:"NonConvert",key:"NonConvert"},Space:{keyCode:32,code:"Space",key:" "},Numpad9:{keyCode:33,shiftKeyCode:105,key:"PageUp",code:"Numpad9",shiftKey:"9",location:3},PageUp:{keyCode:33,code:"PageUp",key:"PageUp"},Numpad3:{keyCode:34,shiftKeyCode:99,key:"PageDown",code:"Numpad3",shiftKey:"3",location:3},PageDown:{keyCode:34,code:"PageDown",key:"PageDown"},End:{keyCode:35,code:"End",key:"End"},Numpad1:{keyCode:35,shiftKeyCode:97,key:"End",code:"Numpad1",shiftKey:"1",location:3},Home:{keyCode:36,code:"Home",key:"Home"},Numpad7:{keyCode:36,shiftKeyCode:103,key:"Home",code:"Numpad7",shiftKey:"7",location:3},ArrowLeft:{keyCode:37,code:"ArrowLeft",key:"ArrowLeft"},Numpad4:{keyCode:37,shiftKeyCode:100,key:"ArrowLeft",code:"Numpad4",shiftKey:"4",location:3},Numpad8:{keyCode:38,shiftKeyCode:104,key:"ArrowUp",code:"Numpad8",shiftKey:"8",location:3},ArrowUp:{keyCode:38,code:"ArrowUp",key:"ArrowUp"},ArrowRight:{keyCode:39,code:"ArrowRight",key:"ArrowRight"},Numpad6:{keyCode:39,shiftKeyCode:102,key:"ArrowRight",code:"Numpad6",shiftKey:"6",location:3},Numpad2:{keyCode:40,shiftKeyCode:98,key:"ArrowDown",code:"Numpad2",shiftKey:"2",location:3},ArrowDown:{keyCode:40,code:"ArrowDown",key:"ArrowDown"},Select:{keyCode:41,code:"Select",key:"Select"},Open:{keyCode:43,code:"Open",key:"Execute"},PrintScreen:{keyCode:44,code:"PrintScreen",key:"PrintScreen"},Insert:{keyCode:45,code:"Insert",key:"Insert"},Numpad0:{keyCode:45,shiftKeyCode:96,key:"Insert",code:"Numpad0",shiftKey:"0",location:3},Delete:{keyCode:46,code:"Delete",key:"Delete"},NumpadDecimal:{keyCode:46,shiftKeyCode:110,code:"NumpadDecimal",key:"\0",shiftKey:".",location:3},Digit0:{keyCode:48,code:"Digit0",shiftKey:")",key:"0"},Digit1:{keyCode:49,code:"Digit1",shiftKey:"!",key:"1"},Digit2:{keyCode:50,code:"Digit2",shiftKey:"@",key:"2"},Digit3:{keyCode:51,code:"Digit3",shiftKey:"#",key:"3"},Digit4:{keyCode:52,code:"Digit4",shiftKey:"$",key:"4"},Digit5:{keyCode:53,code:"Digit5",shiftKey:"%",key:"5"},Digit6:{keyCode:54,code:"Digit6",shiftKey:"^",key:"6"},Digit7:{keyCode:55,code:"Digit7",shiftKey:"&",key:"7"},Digit8:{keyCode:56,code:"Digit8",shiftKey:"*",key:"8"},Digit9:{keyCode:57,code:"Digit9",shiftKey:"(",key:"9"},KeyA:{keyCode:65,code:"KeyA",shiftKey:"A",key:"a"},KeyB:{keyCode:66,code:"KeyB",shiftKey:"B",key:"b"},KeyC:{keyCode:67,code:"KeyC",shiftKey:"C",key:"c"},KeyD:{keyCode:68,code:"KeyD",shiftKey:"D",key:"d"},KeyE:{keyCode:69,code:"KeyE",shiftKey:"E",key:"e"},KeyF:{keyCode:70,code:"KeyF",shiftKey:"F",key:"f"},KeyG:{keyCode:71,code:"KeyG",shiftKey:"G",key:"g"},KeyH:{keyCode:72,code:"KeyH",shiftKey:"H",key:"h"},KeyI:{keyCode:73,code:"KeyI",shiftKey:"I",key:"i"},KeyJ:{keyCode:74,code:"KeyJ",shiftKey:"J",key:"j"},KeyK:{keyCode:75,code:"KeyK",shiftKey:"K",key:"k"},KeyL:{keyCode:76,code:"KeyL",shiftKey:"L",key:"l"},KeyM:{keyCode:77,code:"KeyM",shiftKey:"M",key:"m"},KeyN:{keyCode:78,code:"KeyN",shiftKey:"N",key:"n"},KeyO:{keyCode:79,code:"KeyO",shiftKey:"O",key:"o"},KeyP:{keyCode:80,code:"KeyP",shiftKey:"P",key:"p"},KeyQ:{keyCode:81,code:"KeyQ",shiftKey:"Q",key:"q"},KeyR:{keyCode:82,code:"KeyR",shiftKey:"R",key:"r"},KeyS:{keyCode:83,code:"KeyS",shiftKey:"S",key:"s"},KeyT:{keyCode:84,code:"KeyT",shiftKey:"T",key:"t"},KeyU:{keyCode:85,code:"KeyU",shiftKey:"U",key:"u"},KeyV:{keyCode:86,code:"KeyV",shiftKey:"V",key:"v"},KeyW:{keyCode:87,code:"KeyW",shiftKey:"W",key:"w"},KeyX:{keyCode:88,code:"KeyX",shiftKey:"X",key:"x"},KeyY:{keyCode:89,code:"KeyY",shiftKey:"Y",key:"y"},KeyZ:{keyCode:90,code:"KeyZ",shiftKey:"Z",key:"z"},MetaLeft:{keyCode:91,code:"MetaLeft",key:"Meta",location:1},MetaRight:{keyCode:92,code:"MetaRight",key:"Meta",location:2},ContextMenu:{keyCode:93,code:"ContextMenu",key:"ContextMenu"},NumpadMultiply:{keyCode:106,code:"NumpadMultiply",key:"*",location:3},NumpadAdd:{keyCode:107,code:"NumpadAdd",key:"+",location:3},NumpadSubtract:{keyCode:109,code:"NumpadSubtract",key:"-",location:3},NumpadDivide:{keyCode:111,code:"NumpadDivide",key:"/",location:3},F1:{keyCode:112,code:"F1",key:"F1"},F2:{keyCode:113,code:"F2",key:"F2"},F3:{keyCode:114,code:"F3",key:"F3"},F4:{keyCode:115,code:"F4",key:"F4"},F5:{keyCode:116,code:"F5",key:"F5"},F6:{keyCode:117,code:"F6",key:"F6"},F7:{keyCode:118,code:"F7",key:"F7"},F8:{keyCode:119,code:"F8",key:"F8"},F9:{keyCode:120,code:"F9",key:"F9"},F10:{keyCode:121,code:"F10",key:"F10"},F11:{keyCode:122,code:"F11",key:"F11"},F12:{keyCode:123,code:"F12",key:"F12"},F13:{keyCode:124,code:"F13",key:"F13"},F14:{keyCode:125,code:"F14",key:"F14"},F15:{keyCode:126,code:"F15",key:"F15"},F16:{keyCode:127,code:"F16",key:"F16"},F17:{keyCode:128,code:"F17",key:"F17"},F18:{keyCode:129,code:"F18",key:"F18"},F19:{keyCode:130,code:"F19",key:"F19"},F20:{keyCode:131,code:"F20",key:"F20"},F21:{keyCode:132,code:"F21",key:"F21"},F22:{keyCode:133,code:"F22",key:"F22"},F23:{keyCode:134,code:"F23",key:"F23"},F24:{keyCode:135,code:"F24",key:"F24"},NumLock:{keyCode:144,code:"NumLock",key:"NumLock"},ScrollLock:{keyCode:145,code:"ScrollLock",key:"ScrollLock"},AudioVolumeMute:{keyCode:173,code:"AudioVolumeMute",key:"AudioVolumeMute"},AudioVolumeDown:{keyCode:174,code:"AudioVolumeDown",key:"AudioVolumeDown"},AudioVolumeUp:{keyCode:175,code:"AudioVolumeUp",key:"AudioVolumeUp"},MediaTrackNext:{keyCode:176,code:"MediaTrackNext",key:"MediaTrackNext"},MediaTrackPrevious:{keyCode:177,code:"MediaTrackPrevious",key:"MediaTrackPrevious"},MediaStop:{keyCode:178,code:"MediaStop",key:"MediaStop"},MediaPlayPause:{keyCode:179,code:"MediaPlayPause",key:"MediaPlayPause"},Semicolon:{keyCode:186,code:"Semicolon",shiftKey:":",key:";"},Equal:{keyCode:187,code:"Equal",shiftKey:"+",key:"="},NumpadEqual:{keyCode:187,code:"NumpadEqual",key:"=",location:3},Comma:{keyCode:188,code:"Comma",shiftKey:"<",key:","},Minus:{keyCode:189,code:"Minus",shiftKey:"_",key:"-"},Period:{keyCode:190,code:"Period",shiftKey:">",key:"."},Slash:{keyCode:191,code:"Slash",shiftKey:"?",key:"/"},Backquote:{keyCode:192,code:"Backquote",shiftKey:"~",key:"`"},BracketLeft:{keyCode:219,code:"BracketLeft",shiftKey:"{",key:"["},Backslash:{keyCode:220,code:"Backslash",shiftKey:"|",key:"\\"},BracketRight:{keyCode:221,code:"BracketRight",shiftKey:"}",key:"]"},Quote:{keyCode:222,code:"Quote",shiftKey:'"',key:"'"},AltGraph:{keyCode:225,code:"AltGraph",key:"AltGraph"},Props:{keyCode:247,code:"Props",key:"CrSel"},Cancel:{keyCode:3,key:"Cancel",code:"Abort"},Clear:{keyCode:12,key:"Clear",code:"Numpad5",location:3},Shift:{keyCode:16,key:"Shift",code:"ShiftLeft",location:1},Control:{keyCode:17,key:"Control",code:"ControlLeft",location:1},Alt:{keyCode:18,key:"Alt",code:"AltLeft",location:1},Accept:{keyCode:30,key:"Accept"},ModeChange:{keyCode:31,key:"ModeChange"}," ":{keyCode:32,key:" ",code:"Space"},Print:{keyCode:42,key:"Print"},Execute:{keyCode:43,key:"Execute",code:"Open"},"\0":{keyCode:46,key:"\0",code:"NumpadDecimal",location:3},a:{keyCode:65,key:"a",code:"KeyA"},b:{keyCode:66,key:"b",code:"KeyB"},c:{keyCode:67,key:"c",code:"KeyC"},d:{keyCode:68,key:"d",code:"KeyD"},e:{keyCode:69,key:"e",code:"KeyE"},f:{keyCode:70,key:"f",code:"KeyF"},g:{keyCode:71,key:"g",code:"KeyG"},h:{keyCode:72,key:"h",code:"KeyH"},i:{keyCode:73,key:"i",code:"KeyI"},j:{keyCode:74,key:"j",code:"KeyJ"},k:{keyCode:75,key:"k",code:"KeyK"},l:{keyCode:76,key:"l",code:"KeyL"},m:{keyCode:77,key:"m",code:"KeyM"},n:{keyCode:78,key:"n",code:"KeyN"},o:{keyCode:79,key:"o",code:"KeyO"},p:{keyCode:80,key:"p",code:"KeyP"},q:{keyCode:81,key:"q",code:"KeyQ"},r:{keyCode:82,key:"r",code:"KeyR"},s:{keyCode:83,key:"s",code:"KeyS"},t:{keyCode:84,key:"t",code:"KeyT"},u:{keyCode:85,key:"u",code:"KeyU"},v:{keyCode:86,key:"v",code:"KeyV"},w:{keyCode:87,key:"w",code:"KeyW"},x:{keyCode:88,key:"x",code:"KeyX"},y:{keyCode:89,key:"y",code:"KeyY"},z:{keyCode:90,key:"z",code:"KeyZ"},Meta:{keyCode:91,key:"Meta",code:"MetaLeft",location:1},"*":{keyCode:106,key:"*",code:"NumpadMultiply",location:3},"+":{keyCode:107,key:"+",code:"NumpadAdd",location:3},"-":{keyCode:109,key:"-",code:"NumpadSubtract",location:3},"/":{keyCode:111,key:"/",code:"NumpadDivide",location:3},";":{keyCode:186,key:";",code:"Semicolon"},"=":{keyCode:187,key:"=",code:"Equal"},",":{keyCode:188,key:",",code:"Comma"},".":{keyCode:190,key:".",code:"Period"},"`":{keyCode:192,key:"`",code:"Backquote"},"[":{keyCode:219,key:"[",code:"BracketLeft"},"\\":{keyCode:220,key:"\\",code:"Backslash"},"]":{keyCode:221,key:"]",code:"BracketRight"},"'":{keyCode:222,key:"'",code:"Quote"},Attn:{keyCode:246,key:"Attn"},CrSel:{keyCode:247,key:"CrSel",code:"Props"},ExSel:{keyCode:248,key:"ExSel"},EraseEof:{keyCode:249,key:"EraseEof"},Play:{keyCode:250,key:"Play"},ZoomOut:{keyCode:251,key:"ZoomOut"},")":{keyCode:48,key:")",code:"Digit0"},"!":{keyCode:49,key:"!",code:"Digit1"},"@":{keyCode:50,key:"@",code:"Digit2"},"#":{keyCode:51,key:"#",code:"Digit3"},$:{keyCode:52,key:"$",code:"Digit4"},"%":{keyCode:53,key:"%",code:"Digit5"},"^":{keyCode:54,key:"^",code:"Digit6"},"&":{keyCode:55,key:"&",code:"Digit7"},"(":{keyCode:57,key:"(",code:"Digit9"},A:{keyCode:65,key:"A",code:"KeyA"},B:{keyCode:66,key:"B",code:"KeyB"},C:{keyCode:67,key:"C",code:"KeyC"},D:{keyCode:68,key:"D",code:"KeyD"},E:{keyCode:69,key:"E",code:"KeyE"},F:{keyCode:70,key:"F",code:"KeyF"},G:{keyCode:71,key:"G",code:"KeyG"},H:{keyCode:72,key:"H",code:"KeyH"},I:{keyCode:73,key:"I",code:"KeyI"},J:{keyCode:74,key:"J",code:"KeyJ"},K:{keyCode:75,key:"K",code:"KeyK"},L:{keyCode:76,key:"L",code:"KeyL"},M:{keyCode:77,key:"M",code:"KeyM"},N:{keyCode:78,key:"N",code:"KeyN"},O:{keyCode:79,key:"O",code:"KeyO"},P:{keyCode:80,key:"P",code:"KeyP"},Q:{keyCode:81,key:"Q",code:"KeyQ"},R:{keyCode:82,key:"R",code:"KeyR"},S:{keyCode:83,key:"S",code:"KeyS"},T:{keyCode:84,key:"T",code:"KeyT"},U:{keyCode:85,key:"U",code:"KeyU"},V:{keyCode:86,key:"V",code:"KeyV"},W:{keyCode:87,key:"W",code:"KeyW"},X:{keyCode:88,key:"X",code:"KeyX"},Y:{keyCode:89,key:"Y",code:"KeyY"},Z:{keyCode:90,key:"Z",code:"KeyZ"},":":{keyCode:186,key:":",code:"Semicolon"},"<":{keyCode:188,key:"<",code:"Comma"},_:{keyCode:189,key:"_",code:"Minus"},">":{keyCode:190,key:">",code:"Period"},"?":{keyCode:191,key:"?",code:"Slash"},"~":{keyCode:192,key:"~",code:"Backquote"},"{":{keyCode:219,key:"{",code:"BracketLeft"},"|":{keyCode:220,key:"|",code:"Backslash"},"}":{keyCode:221,key:"}",code:"BracketRight"},'"':{keyCode:222,key:'"',code:"Quote"},SoftLeft:{key:"SoftLeft",code:"SoftLeft",location:4},SoftRight:{key:"SoftRight",code:"SoftRight",location:4},Camera:{keyCode:44,key:"Camera",code:"Camera",location:4},Call:{key:"Call",code:"Call",location:4},EndCall:{keyCode:95,key:"EndCall",code:"EndCall",location:4},VolumeDown:{keyCode:182,key:"VolumeDown",code:"VolumeDown",location:4},VolumeUp:{keyCode:183,key:"VolumeUp",code:"VolumeUp",location:4}};Rf();var eM,VW,rM,xqe,kqe,hve=class extends Kq{constructor(s){super();Ae(this,rM);Ae(this,eM);Ae(this,VW,new Set);Hr(this,"_modifiers",0);Be(this,eM,s)}updateClient(s){Be(this,eM,s)}async down(s,c={text:void 0,commands:[]}){let f=Ke(this,rM,kqe).call(this,s),p=I(this,VW).has(f.code);I(this,VW).add(f.code),this._modifiers|=Ke(this,rM,xqe).call(this,f.key);let C=c.text===void 0?f.text:c.text;await I(this,eM).send("Input.dispatchKeyEvent",{type:C?"keyDown":"rawKeyDown",modifiers:this._modifiers,windowsVirtualKeyCode:f.keyCode,code:f.code,key:f.key,text:C,unmodifiedText:C,autoRepeat:p,location:f.location,isKeypad:f.location===3,commands:c.commands})}async up(s){let c=Ke(this,rM,kqe).call(this,s);this._modifiers&=~Ke(this,rM,xqe).call(this,c.key),I(this,VW).delete(c.code),await I(this,eM).send("Input.dispatchKeyEvent",{type:"keyUp",modifiers:this._modifiers,key:c.key,windowsVirtualKeyCode:c.keyCode,code:c.code,location:c.location})}async sendCharacter(s){await I(this,eM).send("Input.insertText",{text:s})}charIsKey(s){return!!Sqe[s]}async type(s,c={}){let f=c.delay||void 0;for(let p of s)this.charIsKey(p)?await this.press(p,{delay:f}):(f&&await new Promise(C=>setTimeout(C,f)),await this.sendCharacter(p))}async press(s,c={}){let{delay:f=null}=c;await this.down(s,c),f&&await new Promise(p=>setTimeout(p,c.delay)),await this.up(s)}};eM=new WeakMap,VW=new WeakMap,rM=new WeakSet,xqe=function(s){return s==="Alt"?1:s==="Control"?2:s==="Meta"?4:s==="Shift"?8:0},kqe=function(s){let c=this._modifiers&8,f={key:"",keyCode:0,code:"",text:"",location:0},p=Sqe[s];return Is(p,`Unknown key: "${s}"`),p.key&&(f.key=p.key),c&&p.shiftKey&&(f.key=p.shiftKey),p.keyCode&&(f.keyCode=p.keyCode),c&&p.shiftKeyCode&&(f.keyCode=p.shiftKeyCode),p.code&&(f.code=p.code),p.location&&(f.location=p.location),f.key.length===1&&(f.text=f.key),p.text&&(f.text=p.text),c&&p.shiftText&&(f.text=p.shiftText),this._modifiers&-9&&(f.text=""),f};var Axt=a=>{switch(a){case vd.Left:return 1;case vd.Right:return 2;case vd.Middle:return 4;case vd.Back:return 8;case vd.Forward:return 16}},dbr=a=>a&1?vd.Left:a&2?vd.Right:a&4?vd.Middle:a&8?vd.Back:a&16?vd.Forward:"none",BQ,WD,zW,Th,yQ,y7,uxt,_ve,mve=class extends qq{constructor(s,c){super();Ae(this,Th);Ae(this,BQ);Ae(this,WD);Ae(this,zW,{position:{x:0,y:0},buttons:0});Ae(this,y7,[]);Be(this,BQ,s),Be(this,WD,c)}updateClient(s){Be(this,BQ,s)}async reset(){let s=[];for(let[c,f]of[[1,vd.Left],[4,vd.Middle],[2,vd.Right],[16,vd.Forward],[8,vd.Back]])I(this,Th,yQ).buttons&c&&s.push(this.up({button:f}));(I(this,Th,yQ).position.x!==0||I(this,Th,yQ).position.y!==0)&&s.push(this.move(0,0)),await Promise.all(s)}async move(s,c,f={}){let{steps:p=1}=f,C=I(this,Th,yQ).position,b={x:s,y:c};for(let N=1;N<=p;N++)await Ke(this,Th,_ve).call(this,L=>{L({position:{x:C.x+(b.x-C.x)*(N/p),y:C.y+(b.y-C.y)*(N/p)}});let{buttons:O,position:j}=I(this,Th,yQ);return I(this,BQ).send("Input.dispatchMouseEvent",{type:"mouseMoved",modifiers:I(this,WD)._modifiers,buttons:O,button:dbr(O),...j})})}async down(s={}){let{button:c=vd.Left,clickCount:f=1}=s,p=Axt(c);if(!p)throw new Error(`Unsupported mouse button: ${c}`);if(I(this,Th,yQ).buttons&p)throw new Error(`'${c}' is already pressed.`);await Ke(this,Th,_ve).call(this,C=>{C({buttons:I(this,Th,yQ).buttons|p});let{buttons:b,position:N}=I(this,Th,yQ);return I(this,BQ).send("Input.dispatchMouseEvent",{type:"mousePressed",modifiers:I(this,WD)._modifiers,clickCount:f,buttons:b,button:c,...N})})}async up(s={}){let{button:c=vd.Left,clickCount:f=1}=s,p=Axt(c);if(!p)throw new Error(`Unsupported mouse button: ${c}`);if(!(I(this,Th,yQ).buttons&p))throw new Error(`'${c}' is not pressed.`);await Ke(this,Th,_ve).call(this,C=>{C({buttons:I(this,Th,yQ).buttons&~p});let{buttons:b,position:N}=I(this,Th,yQ);return I(this,BQ).send("Input.dispatchMouseEvent",{type:"mouseReleased",modifiers:I(this,WD)._modifiers,clickCount:f,buttons:b,button:c,...N})})}async click(s,c,f={}){let{delay:p,count:C=1,clickCount:b=C}=f;if(C<1)throw new Error("Click must occur a positive number of times.");let N=[this.move(s,c)];if(b===C)for(let L=1;L{setTimeout(L,p)})),N.push(this.up({...f,clickCount:b})),await Promise.all(N)}async wheel(s={}){let{deltaX:c=0,deltaY:f=0}=s,{position:p,buttons:C}=I(this,Th,yQ);await I(this,BQ).send("Input.dispatchMouseEvent",{type:"mouseWheel",pointerType:"mouse",modifiers:I(this,WD)._modifiers,deltaY:f,deltaX:c,buttons:C,...p})}async drag(s,c){let f=new Promise(p=>{I(this,BQ).once("Input.dragIntercepted",C=>p(C.data))});return await this.move(s.x,s.y),await this.down(),await this.move(c.x,c.y),await f}async dragEnter(s,c){await I(this,BQ).send("Input.dispatchDragEvent",{type:"dragEnter",x:s.x,y:s.y,modifiers:I(this,WD)._modifiers,data:c})}async dragOver(s,c){await I(this,BQ).send("Input.dispatchDragEvent",{type:"dragOver",x:s.x,y:s.y,modifiers:I(this,WD)._modifiers,data:c})}async drop(s,c){await I(this,BQ).send("Input.dispatchDragEvent",{type:"drop",x:s.x,y:s.y,modifiers:I(this,WD)._modifiers,data:c})}async dragAndDrop(s,c,f={}){let{delay:p=null}=f,C=await this.drag(s,c);await this.dragEnter(c,C),await this.dragOver(c,C),p&&await new Promise(b=>setTimeout(b,p)),await this.drop(c,C),await this.up()}};BQ=new WeakMap,WD=new WeakMap,zW=new WeakMap,Th=new WeakSet,yQ=function(){return Object.assign({...I(this,zW)},...I(this,y7))},y7=new WeakMap,uxt=function(){let s={};I(this,y7).push(s);let c=()=>{I(this,y7).splice(I(this,y7).indexOf(s),1)};return{update:f=>{Object.assign(s,f)},commit:()=>{Be(this,zW,{...I(this,zW),...s}),c()},rollback:c}},_ve=async function(s){let{update:c,commit:f,rollback:p}=Ke(this,Th,uxt).call(this);try{await s(c),f()}catch(C){throw p(),C}};var _ce,hce,xN,tM,B7,Tqe=class{constructor(r,s,c,f){Ae(this,_ce,!1);Ae(this,hce);Ae(this,xN);Ae(this,tM);Ae(this,B7);Be(this,tM,r),Be(this,hce,s),Be(this,B7,c),Be(this,xN,f)}updateClient(r){Be(this,tM,r)}async start(){if(I(this,_ce))throw new _N("Touch has already started");await I(this,tM).send("Input.dispatchTouchEvent",{type:"touchStart",touchPoints:[I(this,xN)],modifiers:I(this,B7)._modifiers}),Be(this,_ce,!0)}move(r,s){return I(this,xN).x=Math.round(r),I(this,xN).y=Math.round(s),I(this,tM).send("Input.dispatchTouchEvent",{type:"touchMove",touchPoints:[I(this,xN)],modifiers:I(this,B7)._modifiers})}async end(){await I(this,tM).send("Input.dispatchTouchEvent",{type:"touchEnd",touchPoints:[I(this,xN)],modifiers:I(this,B7)._modifiers}),I(this,hce).removeHandle(this)}};_ce=new WeakMap,hce=new WeakMap,xN=new WeakMap,tM=new WeakMap,B7=new WeakMap;var XW,mce,Cve=class extends Wq{constructor(s,c){super();Ae(this,XW);Ae(this,mce);Be(this,XW,s),Be(this,mce,c)}updateClient(s){Be(this,XW,s),this.touches.forEach(c=>{c.updateClient(s)})}async touchStart(s,c){let f=this.idGenerator(),p={x:Math.round(s),y:Math.round(c),radiusX:.5,radiusY:.5,force:.5,id:f},C=new Tqe(I(this,XW),this,I(this,mce),p);return await C.start(),this.touches.push(C),C}};XW=new WeakMap,mce=new WeakMap;Ive();vB();Yae();JQe();Gae();GA();var Rk,Pk,eY,Ice,tY=class extends Xq{constructor(s,c,f,p,C,b,N){super(c);Ae(this,Rk);Ae(this,Pk);Ae(this,eY);Ae(this,Ice);Be(this,eY,f),Be(this,Pk,s),Be(this,Ice,p),Be(this,Rk,new c7(this,new b3)),I(this,Pk).once("Runtime.executionContextCreated",async L=>{I(this,Rk).setContext(new kW(s,L.context,I(this,Rk)))}),I(this,Rk).emitter.on("consoleapicalled",async L=>{try{return C(I(this,Rk),L)}catch(O){Ss(O)}}),I(this,Pk).on("Runtime.exceptionThrown",b),I(this,Pk).once(bl.Disconnected,()=>{I(this,Rk).dispose()}),N?.addClient(I(this,Pk)).catch(Ss),I(this,Pk).send("Runtime.enable").catch(Ss)}mainRealm(){return I(this,Rk)}get client(){return I(this,Pk)}async close(){switch(I(this,Ice)){case om.SERVICE_WORKER:{await this.client.connection()?.send("Target.closeTarget",{targetId:I(this,eY)}),await this.client.connection()?.send("Target.detachFromTarget",{sessionId:this.client.id()});break}case om.SHARED_WORKER:{await this.client.connection()?.send("Target.closeTarget",{targetId:I(this,eY)});break}default:await this.evaluate(()=>{self.close()})}}};Rk=new WeakMap,Pk=new WeakMap,eY=new WeakMap,Ice=new WeakMap;var Fqe=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},Nqe=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c});function lxt(a){switch(a){case"warning":return"warn";default:return a}}function Uqe(a){switch(a){case"Strict":case"Lax":case"None":return a;default:return}}var Ece,iM,yce,Af,Sw,nM,sM,aM,rY,iY,td,Fh,nY,oM,sY,aY,oY,Q7,TN,yve,Bce,Qce,xl,fxt,gxt,dxt,Rqe,vce,cY,pxt,_xt,hxt,mxt,Cxt,Pqe,Mqe,Lqe,Ixt,Ext,Oqe,Gqe=class Gqe extends MQe{constructor(s,c){super();Ae(this,xl);Ae(this,Ece,!1);Ae(this,iM);Ae(this,yce);Ae(this,Af);Ae(this,Sw);Ae(this,nM);Ae(this,sM);Ae(this,aM);Ae(this,rY);Ae(this,iY);Ae(this,td);Ae(this,Fh);Ae(this,nY);Ae(this,oM,new Map);Ae(this,sY,new Map);Ae(this,aY);Ae(this,oY);Ae(this,Q7,new Map);Ae(this,TN,new Set);Ae(this,yve,ZA.create());Ae(this,Bce,!1);Ae(this,Qce,!1);Ae(this,vce,s=>{let c=s._session()?.id(),f=I(this,Q7).get(c);f&&(I(this,Q7).delete(c),this.emit("workerdestroyed",f))});Ae(this,cY,s=>{if(Is(s instanceof hQ),I(this,td).onAttachedToTarget(s.target()),s.target()._getTargetInfo().type==="worker"){let c=new tY(s,s.target().url(),s.target()._targetId,s.target().type(),Ke(this,xl,Lqe).bind(this),Ke(this,xl,Mqe).bind(this),I(this,td).networkManager);I(this,Q7).set(s.id(),c),this.emit("workercreated",c)}s.on(bl.Ready,I(this,cY))});Be(this,Af,s),Be(this,nM,s.parentSession()),Is(I(this,nM),"Tab target session is not defined."),Be(this,sM,I(this,nM).target()),Is(I(this,sM),"Tab target is not defined."),this._tabId=I(this,sM)._getTargetInfo().targetId,Be(this,Sw,c),Be(this,iM,c._targetManager()),Be(this,aM,new hve(s)),Be(this,rY,new mve(s,I(this,aM))),Be(this,iY,new Cve(s,I(this,aM))),Be(this,td,new pve(s,this,this._timeoutSettings)),Be(this,Fh,new VQe(s)),Be(this,nY,new $W(s)),Be(this,aY,new IW(s)),Be(this,oY,null),Be(this,yce,new jQe(I(this,Af).connection()));let f=new ya(I(this,td));f.on(W_.FrameAttached,C=>{this.emit("frameattached",C)}),f.on(W_.FrameDetached,C=>{this.emit("framedetached",C)}),f.on(W_.FrameNavigated,C=>{this.emit("framenavigated",C)}),f.on(W_.ConsoleApiCalled,([C,b])=>{Ke(this,xl,Lqe).call(this,C,b)}),f.on(W_.BindingCalled,([C,b])=>{Ke(this,xl,Ixt).call(this,C,b)});let p=new ya(I(this,td).networkManager);p.on(kh.Request,C=>{this.emit("request",C)}),p.on(kh.RequestServedFromCache,C=>{this.emit("requestservedfromcache",C)}),p.on(kh.Response,C=>{this.emit("response",C)}),p.on(kh.RequestFailed,C=>{this.emit("requestfailed",C)}),p.on(kh.RequestFinished,C=>{this.emit("requestfinished",C)}),I(this,nM).on(bl.Swapped,Ke(this,xl,gxt).bind(this)),I(this,nM).on(bl.Ready,Ke(this,xl,dxt).bind(this)),I(this,iM).on("targetGone",I(this,vce)),I(this,sM)._isClosedDeferred.valueOrThrow().then(()=>{I(this,iM).off("targetGone",I(this,vce)),this.emit("close",void 0),Be(this,Ece,!0)}).catch(Ss),Ke(this,xl,Rqe).call(this),Ke(this,xl,fxt).call(this)}static async _create(s,c,f){var C;let p=new Gqe(s,c);if(await Ke(C=p,xl,pxt).call(C),f)try{await p.setViewport(f)}catch(b){if(g_(b)&&V5(b))Ss(b);else throw b}return p}async resize(s){let c=await this.windowId();await I(this,Af).send("Browser.setContentsSize",{windowId:Number(c),width:s.contentWidth,height:s.contentHeight})}async windowId(){let{windowId:s}=await I(this,Af).send("Browser.getWindowForTarget");return s.toString()}_client(){return I(this,Af)}isServiceWorkerBypassed(){return I(this,Bce)}isDragInterceptionEnabled(){return I(this,Qce)}isJavaScriptEnabled(){return I(this,Fh).javascriptEnabled}async openDevTools(){let s=this.target()._targetId;return await this.browser()._createDevToolsPage(s)}async hasDevTools(){return!!await this.browser()._hasDevToolsTarget(this.target()._targetId)}async waitForFileChooser(s={}){let c=I(this,TN).size===0,{timeout:f=this._timeoutSettings.timeout()}=s,p=ZA.create({message:`Waiting for \`FileChooser\` failed: ${f}ms exceeded`,timeout:f});s.signal&&s.signal.addEventListener("abort",()=>{p.reject(s.signal?.reason)},{once:!0}),I(this,TN).add(p);let C;c&&(C=I(this,Af).send("Page.setInterceptFileChooserDialog",{enabled:!0}));try{let[b]=await Promise.all([p.valueOrThrow(),C]);return b}catch(b){throw I(this,TN).delete(p),b}}async setGeolocation(s){return await I(this,Fh).setGeolocation(s)}target(){return I(this,Sw)}browser(){return I(this,Sw).browser()}browserContext(){return I(this,Sw).browserContext()}mainFrame(){return I(this,td).mainFrame()}get keyboard(){return I(this,aM)}get touchscreen(){return I(this,iY)}get coverage(){return I(this,aY)}get tracing(){return I(this,nY)}frames(){return I(this,td).frames()}workers(){return Array.from(I(this,Q7).values())}async setRequestInterception(s){return await I(this,td).networkManager.setRequestInterception(s)}async setBypassServiceWorker(s){return Be(this,Bce,s),await I(this,Af).send("Network.setBypassServiceWorker",{bypass:s})}async setDragInterception(s){return Be(this,Qce,s),await I(this,Af).send("Input.setInterceptDrags",{enabled:s})}async setOfflineMode(s){return await I(this,td).networkManager.setOfflineMode(s)}async emulateNetworkConditions(s){return await I(this,td).networkManager.emulateNetworkConditions(s)}async emulateFocusedPage(s){return await I(this,Fh).emulateFocus(s)}setDefaultNavigationTimeout(s){this._timeoutSettings.setDefaultNavigationTimeout(s)}setDefaultTimeout(s){this._timeoutSettings.setDefaultTimeout(s)}getDefaultTimeout(){return this._timeoutSettings.timeout()}getDefaultNavigationTimeout(){return this._timeoutSettings.navigationTimeout()}async queryObjects(s){Is(!s.disposed,"Prototype JSHandle is disposed!"),Is(s.id,"Prototype JSHandle must not be referencing primitive value");let c=await this.mainFrame().client.send("Runtime.queryObjects",{prototypeObjectId:s.id});return this.mainFrame().mainRealm().createCdpHandle(c.objects)}async cookies(...s){let c=(await I(this,Af).send("Network.getCookies",{urls:s.length?s:[this.url()]})).cookies,f=["sourcePort"],p=C=>{for(let b of f)delete C[b];return C};return c.map(p).map(C=>({...C,partitionKey:C.partitionKey?C.partitionKey.topLevelSite:void 0,sameParty:!1}))}async deleteCookie(...s){let c=this.url();for(let f of s){let p={...f,partitionKey:Eve(f.partitionKey)};if(!f.url&&c.startsWith("http")&&(p.url=c),await I(this,Af).send("Network.deleteCookies",p),c.startsWith("http")&&!p.partitionKey){let C=new URL(c);await I(this,Af).send("Network.deleteCookies",{...p,partitionKey:{topLevelSite:C.origin.replace(`:${C.port}`,""),hasCrossSiteAncestor:!1}})}}}async setCookie(...s){let c=this.url(),f=c.startsWith("http"),p=s.map(C=>{let b=Object.assign({},C);return!b.url&&f&&(b.url=c),Is(b.url!=="about:blank",`Blank page can not have cookie "${b.name}"`),Is(!String.prototype.startsWith.call(b.url||"","data:"),`Data URL page can not have cookie "${b.name}"`),b});await this.deleteCookie(...p),p.length&&await I(this,Af).send("Network.setCookies",{cookies:p.map(C=>({...C,partitionKey:Eve(C.partitionKey),sameSite:Uqe(C.sameSite)}))})}async exposeFunction(s,c){if(I(this,oM).has(s))throw new Error(`Failed to add page binding with name ${s}: window['${s}'] already exists!`);let f=vSt("exposedFun",s),p;switch(typeof c){case"function":p=new k3(s,c,f);break;default:p=new k3(s,c.default,f);break}I(this,oM).set(s,p);let[{identifier:C}]=await Promise.all([I(this,td).evaluateOnNewDocument(f),I(this,td).addExposedFunctionBinding(p)]);I(this,sY).set(s,C)}async removeExposedFunction(s){let c=I(this,sY).get(s);if(!c)throw new Error(`Function with name "${s}" does not exist`);let f=I(this,oM).get(s);I(this,sY).delete(s),I(this,oM).delete(s),await Promise.all([I(this,td).removeScriptToEvaluateOnNewDocument(c),I(this,td).removeExposedFunctionBinding(f)])}async authenticate(s){return await I(this,td).networkManager.authenticate(s)}async setExtraHTTPHeaders(s){return await I(this,td).networkManager.setExtraHTTPHeaders(s)}async setUserAgent(s,c){if(typeof s=="string")return await I(this,td).networkManager.setUserAgent(s,c);{let f=s.userAgent??await this.browser().userAgent();return await I(this,td).networkManager.setUserAgent(f,s.userAgentMetadata,s.platform)}}async metrics(){let s=await I(this,Af).send("Performance.getMetrics");return Ke(this,xl,Pqe).call(this,s.metrics)}async captureHeapSnapshot(s){let{createWriteStream:c}=Ym.value.fs,f=c(s.path),p=new Promise((N,L)=>{f.on("error",L),f.on("finish",N)}),C=I(this,Af);await C.send("HeapProfiler.enable"),await C.send("HeapProfiler.collectGarbage");let b=N=>{f.write(N.chunk)};C.on("HeapProfiler.addHeapSnapshotChunk",b);try{await C.send("HeapProfiler.takeHeapSnapshot",{reportProgress:!1})}finally{C.off("HeapProfiler.addHeapSnapshotChunk",b),await C.send("HeapProfiler.disable")}f.end(),await p}async reload(s){let[c]=await Promise.all([this.waitForNavigation({...s,ignoreSameDocumentNavigation:!0}),I(this,Af).send("Page.reload",{ignoreCache:s?.ignoreCache??!1})]);return c}async createCDPSession(){return await this.target().createCDPSession()}async goBack(s={}){return await Ke(this,xl,Oqe).call(this,-1,s)}async goForward(s={}){return await Ke(this,xl,Oqe).call(this,1,s)}async bringToFront(){await I(this,Af).send("Page.bringToFront")}async setJavaScriptEnabled(s){return await I(this,Fh).setJavaScriptEnabled(s)}async setBypassCSP(s){await I(this,Af).send("Page.setBypassCSP",{enabled:s})}async emulateMediaType(s){return await I(this,Fh).emulateMediaType(s)}async emulateCPUThrottling(s){return await I(this,Fh).emulateCPUThrottling(s)}async emulateMediaFeatures(s){return await I(this,Fh).emulateMediaFeatures(s)}async emulateTimezone(s){return await I(this,Fh).emulateTimezone(s)}async emulateIdleState(s){return await I(this,Fh).emulateIdleState(s)}async emulateVisionDeficiency(s){return await I(this,Fh).emulateVisionDeficiency(s)}async setViewport(s){let c=await I(this,Fh).emulateViewport(s);Be(this,oY,s),c&&await this.reload()}viewport(){return I(this,oY)}async evaluateOnNewDocument(s,...c){let f=dq(s,...c);return await I(this,td).evaluateOnNewDocument(f)}async removeScriptToEvaluateOnNewDocument(s){return await I(this,td).removeScriptToEvaluateOnNewDocument(s)}async setCacheEnabled(s=!0){await I(this,td).networkManager.setCacheEnabled(s)}async _screenshot(s){let c={stack:[],error:void 0,hasError:!1};try{let{fromSurface:f,omitBackground:p,optimizeForSpeed:C,quality:b,clip:N,type:L,captureBeyondViewport:O}=s,j=Fqe(c,new Y1e,!0);p&&(L==="png"||L==="webp")&&(await I(this,Fh).setTransparentBackgroundColor(),j.defer(async()=>{await I(this,Fh).resetDefaultBackgroundColor().catch(Ss)}));let k=N;if(k&&!O){let J=await this.mainFrame().isolatedRealm().evaluate(()=>{let{height:H,pageLeft:X,pageTop:ge,width:Te}=window.visualViewport;return{x:X,y:ge,height:H,width:Te}});k=_br(k,J)}let{data:R}=await I(this,Af).send("Page.captureScreenshot",{format:L,optimizeForSpeed:C,fromSurface:f,...b!==void 0?{quality:Math.round(b)}:{},...k?{clip:{...k,scale:k.scale??1}}:{},captureBeyondViewport:O});return R}catch(f){c.error=f,c.hasError=!0}finally{let f=Nqe(c);f&&await f}}async createPDFStream(s={}){let{timeout:c=this._timeoutSettings.timeout()}=s,{landscape:f,displayHeaderFooter:p,headerTemplate:C,footerTemplate:b,printBackground:N,scale:L,width:O,height:j,margin:k,pageRanges:R,preferCSSPageSize:J,omitBackground:H,tagged:X,outline:ge,waitForFonts:Te}=oQe(s);H&&await I(this,Fh).setTransparentBackgroundColor(),Te&&await ed(cu(this.mainFrame().isolatedRealm().evaluate(()=>document.fonts.ready)).pipe(Cp(q_(c))));let Ue=I(this,Af).send("Page.printToPDF",{transferMode:"ReturnAsStream",landscape:f,displayHeaderFooter:p,headerTemplate:C,footerTemplate:b,printBackground:N,scale:L,paperWidth:O,paperHeight:j,marginTop:k.top,marginBottom:k.bottom,marginLeft:k.left,marginRight:k.right,pageRanges:R,preferCSSPageSize:J,generateTaggedPDF:X,generateDocumentOutline:ge}),be=await ed(cu(Ue).pipe(Cp(q_(c))));return H&&await I(this,Fh).resetDefaultBackgroundColor(),Is(be.stream,"`stream` is missing from `Page.printToPDF"),await sQe(I(this,Af),be.stream)}async pdf(s={}){let{path:c=void 0}=s,f=await this.createPDFStream(s),p=await nQe(f,c);return Is(p,"Could not create typed array"),p}async close(s={runBeforeUnload:void 0}){let c={stack:[],error:void 0,hasError:!1};try{let f=Fqe(c,await this.browserContext().waitForScreenshotOperations(),!1),p=I(this,Af).connection();Is(p,"Connection closed. Most likely the page has been closed."),!!s.runBeforeUnload?await I(this,Af).send("Page.close"):(await p.send("Target.closeTarget",{targetId:I(this,Sw)._targetId}),await I(this,sM)._isClosedDeferred.valueOrThrow())}catch(f){c.error=f,c.hasError=!0}finally{Nqe(c)}}isClosed(){return I(this,Ece)}get mouse(){return I(this,rY)}async waitForDevicePrompt(s={}){return await this.mainFrame().waitForDevicePrompt(s)}get bluetooth(){return I(this,yce)}};Ece=new WeakMap,iM=new WeakMap,yce=new WeakMap,Af=new WeakMap,Sw=new WeakMap,nM=new WeakMap,sM=new WeakMap,aM=new WeakMap,rY=new WeakMap,iY=new WeakMap,td=new WeakMap,Fh=new WeakMap,nY=new WeakMap,oM=new WeakMap,sY=new WeakMap,aY=new WeakMap,oY=new WeakMap,Q7=new WeakMap,TN=new WeakMap,yve=new WeakMap,Bce=new WeakMap,Qce=new WeakMap,xl=new WeakSet,fxt=function(){let s=[];for(let f of I(this,iM).getChildTargets(I(this,Sw)))s.push(f);let c=0;for(;c{I(this,yve).reject(new Sh("Target closed"))}),s.on("Page.domContentEventFired",()=>{this.emit("domcontentloaded",void 0)}),s.on("Page.loadEventFired",()=>{this.emit("load",void 0)}),s.on("Page.javascriptDialogOpening",Ke(this,xl,Ext).bind(this)),s.on("Runtime.exceptionThrown",Ke(this,xl,Mqe).bind(this)),s.on("Inspector.targetCrashed",Ke(this,xl,hxt).bind(this)),s.on("Performance.metrics",Ke(this,xl,Cxt).bind(this)),s.on("Log.entryAdded",Ke(this,xl,mxt).bind(this)),s.on("Page.fileChooserOpened",Ke(this,xl,_xt).bind(this))},vce=new WeakMap,cY=new WeakMap,pxt=async function(){try{await Promise.all([I(this,td).initialize(I(this,Af)),I(this,Af).send("Performance.enable"),I(this,Af).send("Log.enable")])}catch(s){if(g_(s)&&V5(s))Ss(s);else throw s}},_xt=async function(s){let c={stack:[],error:void 0,hasError:!1};try{if(!I(this,TN).size)return;let f=I(this,td).frame(s.frameId);Is(f,"This should never happen.");let p=Fqe(c,await f.worlds[EQ].adoptBackendNode(s.backendNodeId),!1),C=new oW(p.move(),s.mode!=="selectSingle");for(let b of I(this,TN))b.resolve(C);I(this,TN).clear()}catch(f){c.error=f,c.hasError=!0}finally{Nqe(c)}},hxt=function(){this.emit("error",new Error("Page crashed!"))},mxt=function(s){let{level:c,text:f,args:p,source:C,url:b,lineNumber:N,stackTrace:L}=s.entry;p&&p.map(O=>{dqe(I(this,Af),O)}),C!=="worker"&&this.emit("console",new H5(lxt(c),f,[],[{url:b,lineNumber:N}],void 0,L,I(this,Sw)._targetId))},Cxt=function(s){this.emit("metrics",{title:s.title,metrics:Ke(this,xl,Pqe).call(this,s.metrics)})},Pqe=function(s){let c={};for(let f of s||[])pbr.has(f.name)&&(c[f.name]=f.value);return c},Mqe=function(s){this.emit("pageerror",BSt(s.exceptionDetails))},Lqe=function(s,c){let f=c.args.map(L=>s.createCdpHandle(L));if(!this.listenerCount("console")){f.forEach(L=>L.dispose());return}let p=[];for(let L of f)p.push(QSt(L));let C=[];if(c.stackTrace)for(let L of c.stackTrace.callFrames)C.push({url:L.url,lineNumber:L.lineNumber,columnNumber:L.columnNumber});let b;s.environment.client instanceof hQ&&(b=s.environment.client.target()._targetId);let N=new H5(lxt(c.type),p.join(" "),f,C,void 0,c.stackTrace,b);this.emit("console",N)},Ixt=async function(s,c){let f;try{f=JSON.parse(c.payload)}catch{return}let{type:p,name:C,seq:b,args:N,isTrivial:L}=f;if(p!=="exposedFun")return;let O=s.context;if(!O)return;await I(this,oM).get(C)?.run(O,b,N,L)},Ext=function(s){let c=UDt(s.type),f=new YQe(I(this,Af),c,s.message,s.defaultPrompt);this.emit("dialog",f)},Oqe=async function(s,c){let f=await I(this,Af).send("Page.getNavigationHistory"),p=f.entries[f.currentIndex+s];if(!p)throw new Error("History entry to navigate to not found.");return(await Promise.all([this.waitForNavigation(c),I(this,Af).send("Page.navigateToHistoryEntry",{entryId:p.id})]))[0]};var AY=Gqe,pbr=new Set(["Timestamp","Documents","Frames","JSEventListeners","Nodes","LayoutCount","RecalcStyleCount","LayoutDuration","RecalcStyleDuration","ScriptDuration","TaskDuration","JSHeapUsedSize","JSHeapTotalSize"]);function _br(a,r){let s=Math.max(a.x,r.x),c=Math.max(a.y,r.y);return{x:s,y:c,width:Math.max(Math.min(a.x+a.width,r.x+r.width)-s,0),height:Math.max(Math.min(a.y+a.height,r.y+r.height)-c,0)}}function Eve(a){if(a!==void 0)return typeof a=="string"?{topLevelSite:a,hasCrossSiteAncestor:!1}:{topLevelSite:a.sourceOrigin,hasCrossSiteAncestor:a.hasCrossSiteAncestor??!1}}var hbr=function(a,r,s){if(r!=null){if(typeof r!="object"&&typeof r!="function")throw new TypeError("Object expected.");var c,f;if(s){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");c=r[Symbol.asyncDispose]}if(c===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");c=r[Symbol.dispose],s&&(f=c)}if(typeof c!="function")throw new TypeError("Object not disposable.");f&&(c=function(){try{f.call(this)}catch(p){return Promise.reject(p)}}),a.stack.push({value:r,dispose:c,async:s})}else s&&a.stack.push({async:!0});return r},mbr=(function(a){return function(r){function s(C){r.error=r.hasError?new a(C,r.error,"An error was suppressed during disposal."):C,r.hasError=!0}var c,f=0;function p(){for(;c=r.stack.pop();)try{if(!c.async&&f===1)return f=0,r.stack.push(c),Promise.resolve().then(p);if(c.dispose){var C=c.dispose.call(c.value);if(c.async)return f|=2,Promise.resolve(C).then(p,function(b){return s(b),p()})}else f|=1}catch(b){s(b)}if(f===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return p()}})(typeof SuppressedError=="function"?SuppressedError:function(a,r,s){var c=new Error(s);return c.name="SuppressedError",c.error=a,c.suppressed=r,c}),Mk,FN,kB,uY=class extends yq{constructor(s,c,f){super();Ae(this,Mk);Ae(this,FN);Ae(this,kB);Be(this,Mk,s),Be(this,FN,c),Be(this,kB,f)}get id(){return I(this,kB)}targets(){return I(this,FN).targets().filter(s=>s.browserContext()===this)}async pages(s=!1){return(await Promise.all(this.targets().filter(f=>f.type()==="page"||(f.type()==="other"||s)&&I(this,FN)._getIsPageTargetCallback()?.(f)).map(f=>f.page()))).filter(f=>!!f)}async overridePermissions(s,c){let f=c.map(p=>{let C=pae.get(p);if(!C)throw new Error("Unknown permission: "+p);return C});await I(this,Mk).send("Browser.grantPermissions",{origin:s,browserContextId:I(this,kB)||void 0,permissions:f})}async setPermission(s,...c){await Promise.all(c.map(async f=>{let p={name:f.permission.name,userVisibleOnly:f.permission.userVisibleOnly,sysex:f.permission.sysex,allowWithoutSanitization:f.permission.allowWithoutSanitization,panTiltZoom:f.permission.panTiltZoom};await I(this,Mk).send("Browser.setPermission",{origin:s==="*"?void 0:s,browserContextId:I(this,kB)||void 0,permission:p,setting:f.state})}))}async clearPermissionOverrides(){await I(this,Mk).send("Browser.resetPermissions",{browserContextId:I(this,kB)||void 0})}async newPage(s){let c={stack:[],error:void 0,hasError:!1};try{let f=hbr(c,await this.waitForScreenshotOperations(),!1);return await I(this,FN)._createPageInContext(I(this,kB),s)}catch(f){c.error=f,c.hasError=!0}finally{mbr(c)}}browser(){return I(this,FN)}async close(){Is(I(this,kB),"Default BrowserContext cannot be closed!"),await I(this,FN)._disposeContext(I(this,kB))}async cookies(){let{cookies:s}=await I(this,Mk).send("Storage.getCookies",{browserContextId:I(this,kB)});return s.map(c=>({...c,partitionKey:c.partitionKey?{sourceOrigin:c.partitionKey.topLevelSite,hasCrossSiteAncestor:c.partitionKey.hasCrossSiteAncestor}:void 0,sameParty:!1}))}async setCookie(...s){return await I(this,Mk).send("Storage.setCookies",{browserContextId:I(this,kB),cookies:s.map(c=>({...c,partitionKey:Eve(c.partitionKey),sameSite:Uqe(c.sameSite)}))})}async setDownloadBehavior(s){await I(this,Mk).send("Browser.setDownloadBehavior",{behavior:s.policy,downloadPath:s.downloadPath,browserContextId:I(this,kB)})}};Mk=new WeakMap,FN=new WeakMap,kB=new WeakMap;Yae();GA();qC();var uy;(function(a){a.SUCCESS="success",a.ABORTED="aborted"})(uy||(uy={}));var cM,v7,Lk,lY,AM,fY,wce=class extends yN{constructor(s,c,f,p,C){super();Ae(this,cM);Ae(this,v7);Ae(this,Lk);Ae(this,lY);Ae(this,AM);Ae(this,fY,new Set);Hr(this,"_initializedDeferred",ZA.create());Hr(this,"_isClosedDeferred",ZA.create());Hr(this,"_targetId");Be(this,v7,c),Be(this,lY,p),Be(this,Lk,s),Be(this,cM,f),this._targetId=s.targetId,Be(this,AM,C),I(this,v7)&&I(this,v7).setTarget(this)}async asPage(){let s=this._session();return s?await AY._create(s,this,null):await this.createCDPSession().then(c=>AY._create(c,this,null))}_subtype(){return I(this,Lk).subtype}_session(){return I(this,v7)}_addChildTarget(s){I(this,fY).add(s)}_removeChildTarget(s){I(this,fY).delete(s)}_childTargets(){return I(this,fY)}_sessionFactory(){if(!I(this,AM))throw new Error("sessionFactory is not initialized");return I(this,AM)}createCDPSession(){if(!I(this,AM))throw new Error("sessionFactory is not initialized");return I(this,AM).call(this,!1).then(s=>(s.setTarget(this),s))}url(){return I(this,Lk).url}type(){switch(I(this,Lk).type){case"page":return om.PAGE;case"background_page":return om.BACKGROUND_PAGE;case"service_worker":return om.SERVICE_WORKER;case"shared_worker":return om.SHARED_WORKER;case"browser":return om.BROWSER;case"webview":return om.WEBVIEW;case"tab":return om.TAB;default:return om.OTHER}}_targetManager(){if(!I(this,lY))throw new Error("targetManager is not initialized");return I(this,lY)}_getTargetInfo(){return I(this,Lk)}browser(){if(!I(this,cM))throw new Error("browserContext is not initialized");return I(this,cM).browser()}browserContext(){if(!I(this,cM))throw new Error("browserContext is not initialized");return I(this,cM)}opener(){let{openerId:s}=I(this,Lk);if(s)return this.browser().targets().find(c=>c._targetId===s)}_targetInfoChanged(s){Be(this,Lk,s),this._checkIfInitialized()}_initialize(){this._initializedDeferred.resolve(uy.SUCCESS)}_isTargetExposed(){return this.type()!==om.TAB&&!this._subtype()}_checkIfInitialized(){this._initializedDeferred.resolved()||this._initializedDeferred.resolve(uy.SUCCESS)}};cM=new WeakMap,v7=new WeakMap,Lk=new WeakMap,lY=new WeakMap,AM=new WeakMap,fY=new WeakMap;var Dce,Jqe=class Jqe extends wce{constructor(s,c,f,p,C,b){super(s,c,f,p,C);Ae(this,Dce);Hr(this,"pagePromise");Be(this,Dce,b??void 0)}_initialize(){this._initializedDeferred.valueOrThrow().then(async s=>{if(s===uy.ABORTED)return;let c=this.opener();if(!(c instanceof Jqe))return;if(!c||!c.pagePromise||this.type()!=="page")return!0;let f=await c.pagePromise;if(!f.listenerCount("popup"))return!0;let p=await this.page();return f.emit("popup",p),!0}).catch(Ss),this._checkIfInitialized()}async page(){if(!this.pagePromise){let s=this._session();this.pagePromise=(s?Promise.resolve(s):this._sessionFactory()(!1)).then(c=>AY._create(c,this,I(this,Dce)??null))}return await this.pagePromise??null}_checkIfInitialized(){this._initializedDeferred.resolved()||this._getTargetInfo().url!==""&&this._initializedDeferred.resolve(uy.SUCCESS)}};Dce=new WeakMap;var bce=Jqe,Bve=class extends bce{},gY,Qve=class extends wce{constructor(){super(...arguments);Ae(this,gY)}async worker(){if(!I(this,gY)){let s=this._session();Be(this,gY,(s?Promise.resolve(s):this._sessionFactory()(!1)).then(c=>new tY(c,this._getTargetInfo().url,this._targetId,this.type(),()=>{},()=>{},void 0)))}return await I(this,gY)}};gY=new WeakMap;var vve=class extends wce{};vB();Nf();GA();Rf();qC();function Cbr(a,r){return!!a._subtype()&&!r.subtype}var VC,w7,TB,b7,xce,dY,D7,S7,x7,kce,Tce,pY,_Y,hY,QQ,Hqe,jqe,Fce,bve,Nce,Rce,Pce,Mce,Dve,Sce,Sve,wve=class extends ya{constructor(s,c,f,p=!0){super();Ae(this,QQ);Ae(this,VC);Ae(this,w7,new Map);Ae(this,TB,new Map);Ae(this,b7,new Map);Ae(this,xce,new Set);Ae(this,dY);Ae(this,D7);Ae(this,S7,new WeakMap);Ae(this,x7,new WeakMap);Ae(this,kce,ZA.create());Ae(this,Tce,!0);Ae(this,pY,[{}]);Ae(this,_Y,new Set);Ae(this,hY,!1);Ae(this,Fce,async(s,c)=>{await s.send("Runtime.runIfWaitingForDebugger").catch(Ss),await c.send("Target.detachFromTarget",{sessionId:s.id()}).catch(Ss)});Ae(this,bve,s=>s instanceof hQ?s.target():null);Ae(this,Nce,s=>{Ke(this,QQ,jqe).call(this,s)});Ae(this,Rce,async s=>{if(I(this,w7).set(s.targetInfo.targetId,s.targetInfo),this.emit("targetDiscovered",s.targetInfo),s.targetInfo.type==="browser"&&s.targetInfo.attached){if(I(this,TB).has(s.targetInfo.targetId))return;let c=I(this,D7).call(this,s.targetInfo,void 0);c._initialize(),I(this,TB).set(s.targetInfo.targetId,c)}});Ae(this,Pce,s=>{let c=I(this,w7).get(s.targetId);if(I(this,w7).delete(s.targetId),Ke(this,QQ,Sce).call(this,s.targetId),c?.type==="service_worker"){let f=I(this,TB).get(s.targetId);f&&(this.emit("targetGone",f),I(this,TB).delete(s.targetId))}});Ae(this,Mce,s=>{if(I(this,w7).set(s.targetInfo.targetId,s.targetInfo),I(this,xce).has(s.targetInfo.targetId)||!s.targetInfo.attached)return;let c=I(this,TB).get(s.targetInfo.targetId);if(!c)return;let f=c.url(),p=c._initializedDeferred.value()===uy.SUCCESS;if(Cbr(c,s.targetInfo)){let C=c._session();Is(C,"Target that is being activated is missing a CDPSession."),C.parentSession()?.emit(bl.Swapped,C)}c._targetInfoChanged(s.targetInfo),p&&f!==c.url()&&this.emit("targetChanged",{target:c,wasInitialized:p,previousURL:f})});Ae(this,Dve,async(s,c)=>{let f=c.targetInfo,p=I(this,VC)._session(c.sessionId);if(!p)throw new Error(`Session ${c.sessionId} was not created.`);if(!I(this,VC).isAutoAttached(f.targetId))return;if(f.type==="service_worker"){if(await I(this,Fce).call(this,p,s),I(this,TB).has(f.targetId))return;let L=I(this,D7).call(this,f);L._initialize(),I(this,TB).set(f.targetId,L),this.emit("targetAvailable",L);return}let C=I(this,TB).get(f.targetId),b=C!==void 0;C||(C=I(this,D7).call(this,f,p,s instanceof hQ?s:void 0));let N=I(this,bve).call(this,s);if(I(this,dY)&&!I(this,dY).call(this,C)){I(this,xce).add(f.targetId),N?.type()==="tab"&&Ke(this,QQ,Sce).call(this,N._targetId),await I(this,Fce).call(this,p,s);return}I(this,Tce)&&c.targetInfo.type==="tab"&&!I(this,hY)&&I(this,_Y).add(c.targetInfo.targetId),Ke(this,QQ,Hqe).call(this,p),b?(p.setTarget(C),I(this,b7).set(p.id(),C)):(C._initialize(),I(this,TB).set(f.targetId,C),I(this,b7).set(p.id(),C)),N?._addChildTarget(C),s.emit(bl.Ready,p),b||this.emit("targetAvailable",C),N?.type()==="tab"&&Ke(this,QQ,Sce).call(this,N._targetId),await Promise.all([p.send("Target.setAutoAttach",{waitForDebuggerOnStart:!0,flatten:!0,autoAttach:!0,filter:I(this,pY)}),p.send("Runtime.runIfWaitingForDebugger")]).catch(Ss)});Ae(this,Sve,(s,c)=>{let f=I(this,b7).get(c.sessionId);I(this,b7).delete(c.sessionId),f&&(s instanceof hQ&&s.target()._removeChildTarget(f),I(this,TB).delete(f._targetId),this.emit("targetGone",f))});Be(this,VC,s),Be(this,dY,f),Be(this,D7,c),Be(this,Tce,p),I(this,VC).on("Target.targetCreated",I(this,Rce)),I(this,VC).on("Target.targetDestroyed",I(this,Pce)),I(this,VC).on("Target.targetInfoChanged",I(this,Mce)),I(this,VC).on(bl.SessionDetached,I(this,Nce)),Ke(this,QQ,Hqe).call(this,I(this,VC))}async initialize(){await I(this,VC).send("Target.setDiscoverTargets",{discover:!0,filter:I(this,pY)}),await I(this,VC).send("Target.setAutoAttach",{waitForDebuggerOnStart:!0,flatten:!0,autoAttach:!0,filter:[{type:"page",exclude:!0},...I(this,pY)]}),Be(this,hY,!0),Ke(this,QQ,Sce).call(this),await I(this,kce).valueOrThrow()}getChildTargets(s){return s._childTargets()}dispose(){I(this,VC).off("Target.targetCreated",I(this,Rce)),I(this,VC).off("Target.targetDestroyed",I(this,Pce)),I(this,VC).off("Target.targetInfoChanged",I(this,Mce)),I(this,VC).off(bl.SessionDetached,I(this,Nce)),Ke(this,QQ,jqe).call(this,I(this,VC))}getAvailableTargets(){return I(this,TB)}};VC=new WeakMap,w7=new WeakMap,TB=new WeakMap,b7=new WeakMap,xce=new WeakMap,dY=new WeakMap,D7=new WeakMap,S7=new WeakMap,x7=new WeakMap,kce=new WeakMap,Tce=new WeakMap,pY=new WeakMap,_Y=new WeakMap,hY=new WeakMap,QQ=new WeakSet,Hqe=function(s){let c=p=>{I(this,Dve).call(this,s,p)};Is(!I(this,S7).has(s)),I(this,S7).set(s,c),s.on("Target.attachedToTarget",c);let f=p=>I(this,Sve).call(this,s,p);Is(!I(this,x7).has(s)),I(this,x7).set(s,f),s.on("Target.detachedFromTarget",f)},jqe=function(s){let c=I(this,S7).get(s);c&&(s.off("Target.attachedToTarget",c),I(this,S7).delete(s));let f=I(this,x7).get(s);f&&(s.off("Target.detachedFromTarget",f),I(this,x7).delete(s))},Fce=new WeakMap,bve=new WeakMap,Nce=new WeakMap,Rce=new WeakMap,Pce=new WeakMap,Mce=new WeakMap,Dve=new WeakMap,Sce=function(s){s!==void 0&&I(this,_Y).delete(s),I(this,hY)&&I(this,_Y).size===0&&I(this,kce).resolve()},Sve=new WeakMap;function yxt(a){return a.startsWith("devtools://devtools/bundled/devtools_app.html")}var mY,Lce,wd,Oce,Uce,CY,NN,RN,Gce,cm,Jce,Hce,k7,Bxt,xve,jce,Kce,qce,Wce,Kqe,qqe=class qqe extends _q{constructor(s,c,f,p,C,b,N,L=!0,O=!0,j=!1){super();Ae(this,k7);Hr(this,"protocol","cdp");Ae(this,mY);Ae(this,Lce);Ae(this,wd);Ae(this,Oce);Ae(this,Uce);Ae(this,CY);Ae(this,NN);Ae(this,RN,new Map);Ae(this,Gce,!0);Ae(this,cm);Ae(this,Jce,!1);Ae(this,Hce,()=>{this.emit("disconnected",void 0)});Ae(this,xve,(s,c)=>{let{browserContextId:f}=s,p=f&&I(this,RN).has(f)?I(this,RN).get(f):I(this,NN);if(!p)throw new Error("Missing browser context");let C=N=>I(this,wd)._createSession(s,N),b=new vve(s,c,p,I(this,cm),C);return s.url&&yxt(s.url)?new Bve(s,c,p,I(this,cm),C,I(this,mY)??null):I(this,CY).call(this,b)?new bce(s,c,p,I(this,cm),C,I(this,mY)??null):s.type==="service_worker"||s.type==="shared_worker"?new Qve(s,c,p,I(this,cm),C):b});Ae(this,jce,async s=>{s._isTargetExposed()&&await s._initializedDeferred.valueOrThrow()===uy.SUCCESS&&(this.emit("targetcreated",s),s.browserContext().emit("targetcreated",s))});Ae(this,Kce,async s=>{s._initializedDeferred.resolve(uy.ABORTED),s._isClosedDeferred.resolve(),s._isTargetExposed()&&await s._initializedDeferred.valueOrThrow()===uy.SUCCESS&&(this.emit("targetdestroyed",s),s.browserContext().emit("targetdestroyed",s))});Ae(this,qce,({target:s})=>{this.emit("targetchanged",s),s.browserContext().emit("targetchanged",s)});Ae(this,Wce,s=>{this.emit("targetdiscovered",s)});Be(this,Gce,O),Be(this,mY,f),Be(this,Lce,p),Be(this,wd,s),Be(this,Oce,C||(()=>{})),Be(this,Uce,b||(()=>!0)),Be(this,Jce,j),Ke(this,k7,Bxt).call(this,N),Be(this,cm,new wve(s,I(this,xve),I(this,Uce),L)),Be(this,NN,new uY(I(this,wd),this));for(let k of c)I(this,RN).set(k,new uY(I(this,wd),this,k))}static async _create(s,c,f,p,C,b,N,L,O,j=!0,k=!0,R=!1){let J=new qqe(s,c,p,b,N,L,O,j,k,R);return f&&await s.send("Security.setIgnoreCertificateErrors",{ignore:!0}),await J._attach(C),J}async _attach(s){I(this,wd).on(bl.Disconnected,I(this,Hce)),s&&await I(this,NN).setDownloadBehavior(s),I(this,cm).on("targetAvailable",I(this,jce)),I(this,cm).on("targetGone",I(this,Kce)),I(this,cm).on("targetChanged",I(this,qce)),I(this,cm).on("targetDiscovered",I(this,Wce)),await I(this,cm).initialize()}_detach(){I(this,wd).off(bl.Disconnected,I(this,Hce)),I(this,cm).off("targetAvailable",I(this,jce)),I(this,cm).off("targetGone",I(this,Kce)),I(this,cm).off("targetChanged",I(this,qce)),I(this,cm).off("targetDiscovered",I(this,Wce))}process(){return I(this,Lce)??null}_targetManager(){return I(this,cm)}_getIsPageTargetCallback(){return I(this,CY)}async createBrowserContext(s={}){let{proxyServer:c,proxyBypassList:f,downloadBehavior:p}=s,{browserContextId:C}=await I(this,wd).send("Target.createBrowserContext",{proxyServer:c,proxyBypassList:f&&f.join(",")}),b=new uY(I(this,wd),this,C);return p&&await b.setDownloadBehavior(p),I(this,RN).set(C,b),b}browserContexts(){return[I(this,NN),...Array.from(I(this,RN).values())]}defaultBrowserContext(){return I(this,NN)}async _disposeContext(s){s&&(await I(this,wd).send("Target.disposeBrowserContext",{browserContextId:s}),I(this,RN).delete(s))}wsEndpoint(){return I(this,wd).url()}async newPage(s){return await I(this,NN).newPage(s)}async _createPageInContext(s,c){let f=this.targets().filter(O=>O.browserContext().id===s).length>0,p=c?.type==="window"?c.windowBounds:void 0,{targetId:C}=await I(this,wd).send("Target.createTarget",{url:"about:blank",browserContextId:s||void 0,left:p?.left,top:p?.top,width:p?.width,height:p?.height,windowState:p?.windowState,newWindow:f&&c?.type==="window"?!0:void 0,background:c?.background}),b=await this.waitForTarget(O=>O._targetId===C);if(!b)throw new Error(`Missing target for page (id = ${C})`);if(!(await b._initializedDeferred.valueOrThrow()===uy.SUCCESS))throw new Error(`Failed to create target for page (id = ${C})`);let L=await b.page();if(!L)throw new Error(`Failed to create a page for context (id = ${s})`);return L}async _createDevToolsPage(s){let c=await I(this,wd).send("Target.openDevTools",{targetId:s}),f=await this.waitForTarget(b=>b._targetId===c.targetId);if(!f)throw new Error(`Missing target for DevTools page (id = ${s})`);if(!(await f._initializedDeferred.valueOrThrow()===uy.SUCCESS))throw new Error(`Failed to create target for DevTools page (id = ${s})`);let C=await f.page();if(!C)throw new Error(`Failed to create a DevTools Page for target (id = ${s})`);return C}async _hasDevToolsTarget(s){return(await I(this,wd).send("Target.getDevToolsTarget",{targetId:s})).targetId}async installExtension(s){let{id:c}=await I(this,wd).send("Extensions.loadUnpacked",{path:s});return c}uninstallExtension(s){return I(this,wd).send("Extensions.uninstall",{id:s})}async screens(){let{screenInfos:s}=await I(this,wd).send("Emulation.getScreenInfos");return s}async addScreen(s){let{screenInfo:c}=await I(this,wd).send("Emulation.addScreen",s);return c}async removeScreen(s){return await I(this,wd).send("Emulation.removeScreen",{screenId:s})}async getWindowBounds(s){let{bounds:c}=await I(this,wd).send("Browser.getWindowBounds",{windowId:Number(s)});return c}async setWindowBounds(s,c){await I(this,wd).send("Browser.setWindowBounds",{windowId:Number(s),bounds:c})}targets(){return Array.from(I(this,cm).getAvailableTargets().values()).filter(s=>s._isTargetExposed()&&s._initializedDeferred.value()===uy.SUCCESS)}target(){let s=this.targets().find(c=>c.type()==="browser");if(!s)throw new Error("Browser target is not found");return s}async version(){return(await Ke(this,k7,Kqe).call(this)).product}async userAgent(){return(await Ke(this,k7,Kqe).call(this)).userAgent}async close(){await I(this,Oce).call(null),await this.disconnect()}disconnect(){return I(this,cm).dispose(),I(this,wd).dispose(),this._detach(),Promise.resolve()}get connected(){return!I(this,wd)._closed}get debugInfo(){return{pendingProtocolErrors:I(this,wd).getPendingProtocolErrors()}}isNetworkEnabled(){return I(this,Gce)}};mY=new WeakMap,Lce=new WeakMap,wd=new WeakMap,Oce=new WeakMap,Uce=new WeakMap,CY=new WeakMap,NN=new WeakMap,RN=new WeakMap,Gce=new WeakMap,cm=new WeakMap,Jce=new WeakMap,Hce=new WeakMap,k7=new WeakSet,Bxt=function(s){Be(this,CY,s||(c=>c.type()==="page"||c.type()==="background_page"||c.type()==="webview"||I(this,Jce)&&c.type()==="other"&&yxt(c.url())))},xve=new WeakMap,jce=new WeakMap,Kce=new WeakMap,qce=new WeakMap,Wce=new WeakMap,Kqe=function(){return I(this,wd).send("Browser.getVersion")};var IY=qqe;GA();M5();async function Qxt(a,r,s){let{acceptInsecureCerts:c=!1,networkEnabled:f=!0,defaultViewport:p=gq,downloadBehavior:C,targetFilter:b,_isPageTarget:N,slowMo:L=0,protocolTimeout:O,handleDevToolsAsPage:j,idGenerator:k=wk()}=s,R=new wN(r,a,L,O,!1,k),{browserContextIds:J}=await R.send("Target.getBrowserContexts");return await IY._create(R,J,c,p,C,void 0,()=>R.send("Browser.close").catch(Ss),b,N,void 0,f,j)}WQe();zQe();var Hii=Object.freeze({"Slow 3G":{download:5e4,upload:5e4,latency:2e3},"Fast 3G":{download:18e4,upload:84375,latency:562.5},"Slow 4G":{download:18e4,upload:84375,latency:562.5},"Fast 4G":{download:1012500,upload:168750,latency:165}});Ive();Vqe();moe();Sae();KQe();IQe();Aq();var Ibr=[{name:"Blackberry PlayBook",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+",viewport:{width:600,height:1024,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Blackberry PlayBook landscape",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+",viewport:{width:1024,height:600,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"BlackBerry Z30",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"BlackBerry Z30 landscape",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Note 3",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Note 3 landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Note II",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Note II landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S III",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S III landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S5",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S8",userAgent:"Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",viewport:{width:360,height:740,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S8 landscape",userAgent:"Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",viewport:{width:740,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S9+",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",viewport:{width:320,height:658,deviceScaleFactor:4.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S9+ landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",viewport:{width:658,height:320,deviceScaleFactor:4.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Tab S4",userAgent:"Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36",viewport:{width:712,height:1138,deviceScaleFactor:2.25,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Tab S4 landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36",viewport:{width:1138,height:712,deviceScaleFactor:2.25,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad (gen 6)",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad (gen 6) landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad (gen 7)",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:810,height:1080,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad (gen 7) landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:1080,height:810,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Mini",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Mini landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Pro",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:1366,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Pro landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1366,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Pro 11",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:834,height:1194,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Pro 11 landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:1194,height:834,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 4",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",viewport:{width:320,height:480,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 4 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",viewport:{width:480,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 5",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:320,height:568,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 5 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:568,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 6",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 6 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 6 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 6 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 7",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 7 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 7 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 7 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 8",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 8 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 8 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 8 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone SE",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:320,height:568,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone SE landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:568,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone X",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:812,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone X landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:812,height:375,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone XR",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",viewport:{width:414,height:896,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone XR landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",viewport:{width:896,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 11",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1",viewport:{width:414,height:828,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 11 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1",viewport:{width:828,height:414,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 11 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1",viewport:{width:375,height:812,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 11 Pro landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1",viewport:{width:812,height:375,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 11 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1",viewport:{width:414,height:896,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 11 Pro Max landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1",viewport:{width:896,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 12",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:390,height:844,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 12 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:844,height:390,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 12 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:390,height:844,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 12 Pro landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:844,height:390,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 12 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:428,height:926,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 12 Pro Max landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:926,height:428,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 12 Mini",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:375,height:812,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 12 Mini landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:812,height:375,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 13",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:390,height:844,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 13 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:844,height:390,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 13 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:390,height:844,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 13 Pro landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:844,height:390,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 13 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:428,height:926,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 13 Pro Max landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:926,height:428,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 13 Mini",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:375,height:812,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 13 Mini landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1",viewport:{width:812,height:375,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 14",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:390,height:663,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 14 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:750,height:340,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 14 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:428,height:745,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 14 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:832,height:378,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 14 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:393,height:659,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 14 Pro landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:734,height:343,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 14 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:430,height:739,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 14 Pro Max landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",viewport:{width:814,height:380,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 15",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:393,height:659,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 15 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:734,height:343,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 15 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:430,height:739,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 15 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:814,height:380,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 15 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:393,height:659,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 15 Pro landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:734,height:343,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 15 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:430,height:739,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 15 Pro Max landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",viewport:{width:814,height:380,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"JioPhone 2",userAgent:"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5",viewport:{width:240,height:320,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"JioPhone 2 landscape",userAgent:"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5",viewport:{width:320,height:240,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Kindle Fire HDX",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",viewport:{width:800,height:1280,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Kindle Fire HDX landscape",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",viewport:{width:1280,height:800,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"LG Optimus L70",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:384,height:640,deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"LG Optimus L70 landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:384,deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Microsoft Lumia 550",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Microsoft Lumia 950",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:360,height:640,deviceScaleFactor:4,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Microsoft Lumia 950 landscape",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:640,height:360,deviceScaleFactor:4,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 10",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:800,height:1280,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 10 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:1280,height:800,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 4",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:384,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 4 landscape",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:384,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 5",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 5X",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 5X landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 6",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 6 landscape",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 6P",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 6P landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 7",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:600,height:960,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 7 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:960,height:600,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nokia Lumia 520",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",viewport:{width:320,height:533,deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nokia Lumia 520 landscape",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",viewport:{width:533,height:320,deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nokia N9",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",viewport:{width:480,height:854,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nokia N9 landscape",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",viewport:{width:854,height:480,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 2",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:411,height:731,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 2 landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:731,height:411,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 2 XL",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:411,height:823,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 2 XL landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:823,height:411,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 3",userAgent:"Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36",viewport:{width:393,height:786,deviceScaleFactor:2.75,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 3 landscape",userAgent:"Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36",viewport:{width:786,height:393,deviceScaleFactor:2.75,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 4",userAgent:"Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",viewport:{width:353,height:745,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 4 landscape",userAgent:"Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",viewport:{width:745,height:353,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 4a (5G)",userAgent:"Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",viewport:{width:353,height:745,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 4a (5G) landscape",userAgent:"Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",viewport:{width:745,height:353,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 5",userAgent:"Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",viewport:{width:393,height:851,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",viewport:{width:851,height:393,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Moto G4",userAgent:"Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Moto G4 landscape",userAgent:"Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}}],wxt={};for(let a of Ibr)wxt[a.name]=a;var xni=Object.freeze(wxt);wl();Nf();qQe();EQe();_Qe();D5();CKe();SKe();xKe();kKe();wl();GA();M5();async function eNt(a,r,s){let{acceptInsecureCerts:c=!1,networkEnabled:f=!0,defaultViewport:p=gq}=s,{bidiConnection:C,cdpConnection:b,closeCallback:N}=await Txr(a,r,s);return await(await Promise.resolve().then(()=>(ble(),wle))).BidiBrowser.create({connection:C,cdpConnection:b,closeCallback:N,process:void 0,defaultViewport:p,acceptInsecureCerts:c,networkEnabled:f,capabilities:s.capabilities})}async function Txr(a,r,s){let c=await Promise.resolve().then(()=>(ble(),wle)),{slowMo:f=0,protocolTimeout:p,idGenerator:C=wk()}=s,b=new c.BidiConnection(r,a,C,f,p);try{let j=await b.send("session.status",{});if("type"in j&&j.type==="success")return{bidiConnection:b,closeCallback:async()=>{await b.send("browser.close",{}).catch(Ss)}}}catch(j){if(!(j instanceof Dh))throw j}b.unbind();let N=new wN(r,a,f,p,!0,C);if((await N.send("Browser.getVersion")).product.toLowerCase().includes("firefox"))throw new Uo("Firefox is not supported in BiDi over CDP mode.");let O=await c.connectBidiOverCdp(N);return{cdpConnection:N,bidiConnection:O,closeCallback:async()=>{await N.send("Browser.close").catch(Ss)}}}yk();Rf();LI();var trt=async()=>fae?(await Promise.resolve().then(()=>($ze(),cRt))).NodeWebSocketTransport:(await Promise.resolve().then(()=>(Vqe(),vxt))).BrowserWebSocketTransport;async function z7t(a){let{connectionTransport:r,endpointUrl:s}=await _Ur(a);return a.protocol==="webDriverBiDi"?await eNt(r,s,a):await Qxt(r,s,a)}async function _Ur(a){let{browserWSEndpoint:r,browserURL:s,channel:c,transport:f,headers:p={}}=a;if(Is(+!!r+ +!!s+ +!!f+ +!!c==1,"Exactly one of browserWSEndpoint, browserURL, transport or channel must be passed to puppeteer.connect"),f)return{connectionTransport:f,endpointUrl:""};if(r)return{connectionTransport:await(await trt()).create(r,p),endpointUrl:r};if(s){let C=await hUr(s);return{connectionTransport:await(await trt()).create(C),endpointUrl:C}}else if(a.channel&&fae){let{detectBrowserPlatform:C,resolveDefaultUserDataDir:b,Browser:N}=await Promise.resolve().then(()=>(k9(),Y7t)),L=C();if(!L)throw new Error("Could not detect required browser platform");let{convertPuppeteerChannelToBrowsersChannel:O}=await Promise.resolve().then(()=>(ert(),V7t)),{join:j}=await import("node:path"),k=b(N.CHROME,L,O(a.channel)),R=j(k,"DevToolsActivePort");try{let J=await Ym.value.fs.promises.readFile(R,"ascii"),[H,X]=J.split(` -`).map(ut=>ut.trim()).filter(ut=>!!ut);if(!H||!X)throw new Error(`Invalid DevToolsActivePort '${J}' found`);let ge=parseInt(H,10);if(isNaN(ge)||ge<=0||ge>65535)throw new Error(`Invalid port '${H}' found`);let Te=`ws://localhost:${ge}${X}`;return{connectionTransport:await(await trt()).create(Te,p),endpointUrl:Te}}catch(J){throw new Error(`Could not find DevToolsActivePort for ${a.channel} at ${R}`,{cause:J})}}throw new Error("Invalid connection options")}async function hUr(a){let r=new URL("/json/version",a);try{let s=await globalThis.fetch(r.toString(),{method:"GET"});if(!s.ok)throw new Error(`HTTP ${s.statusText}`);return(await s.json()).webSocketDebuggerUrl}catch(s){throw g_(s)&&(s.message=`Failed to fetch browser webSocket URL from ${r}: `+s.message),s}}IQe();var Vfe=class{constructor(r){Hr(this,"_isPuppeteerCore");Hr(this,"_changedBrowsers",!1);this._isPuppeteerCore=r.isPuppeteerCore,this.connect=this.connect.bind(this)}static registerCustomQueryHandler(r,s){return this.customQueryHandlers.register(r,s)}static unregisterCustomQueryHandler(r){return this.customQueryHandlers.unregister(r)}static customQueryHandlerNames(){return this.customQueryHandlers.names()}static clearCustomQueryHandlers(){return this.customQueryHandlers.clear()}connect(r){return z7t(r)}};Hr(Vfe,"customQueryHandlers",kae);mN();xae();ove();TKe();Gae();GA();KKe();FKe();var qX=Object.freeze({chrome:"146.0.7680.76","chrome-headless-shell":"146.0.7680.76",firefox:"stable_148.0.2"});Rf();qC();Bae();LI();C3();tg();M5();var rUt=require("node:fs/promises"),iUt=wc(require("node:os"),1),Gke=wc(require("node:path"),1);k9();GA();Rf();var zfe=require("node:fs"),Z7t=require("node:os"),rrt=require("node:path");k9();vw();wl();GA();M5();$ze();Nf();GA();Rf();tg();var WX,YX,VX,T9,Oke,X7t,Lke=class{constructor(r,s){Ae(this,Oke);Ae(this,WX);Ae(this,YX,new Jl);Ae(this,VX,!1);Ae(this,T9,[]);Hr(this,"onclose");Hr(this,"onmessage");Be(this,WX,r);let c=I(this,YX).use(new ya(s));c.on("data",p=>Ke(this,Oke,X7t).call(this,p)),c.on("close",()=>{this.onclose&&this.onclose.call(null)}),c.on("error",Ss),I(this,YX).use(new ya(r)).on("error",Ss)}send(r){Is(!I(this,VX),"`PipeTransport` is closed."),I(this,WX).write(r),I(this,WX).write("\0")}close(){Be(this,VX,!0),I(this,YX).dispose()}};WX=new WeakMap,YX=new WeakMap,VX=new WeakMap,T9=new WeakMap,Oke=new WeakSet,X7t=function(r){if(Is(!I(this,VX),"`PipeTransport` is closed."),I(this,T9).push(r),r.indexOf("\0")===-1)return;let s=Buffer.concat(I(this,T9)),c=0,f=s.indexOf("\0");for(;f!==-1;){let p=s.toString(void 0,c,f);setImmediate(()=>{this.onmessage&&this.onmessage.call(null,p)}),c=f+1,f=s.indexOf("\0",c)}c>=s.length?Be(this,T9,[]):Be(this,T9,[s.subarray(c)])};var b2,zX=class{constructor(r,s){Ae(this,b2);Hr(this,"puppeteer");this.puppeteer=r,Be(this,b2,s)}get browser(){return I(this,b2)}async launch(r={}){let{dumpio:s=!1,enableExtensions:c=!1,env:f=process.env,handleSIGINT:p=!0,handleSIGTERM:C=!0,handleSIGHUP:b=!0,acceptInsecureCerts:N=!1,networkEnabled:L=!0,defaultViewport:O=gq,downloadBehavior:j,slowMo:k=0,timeout:R=3e4,waitForInitialPage:J=!0,protocolTimeout:H,handleDevToolsAsPage:X,idGenerator:ge=wk()}=r,{protocol:Te}=r;if(I(this,b2)==="firefox"&&Te===void 0&&(Te="webDriverBiDi"),I(this,b2)==="firefox"&&Te==="cdp")throw new Error("Connecting to Firefox using CDP is no longer supported");let Ue=await this.computeLaunchArguments({...r,protocol:Te});if(!(0,zfe.existsSync)(Ue.executablePath))throw new Error(`Browser was not found at the configured executablePath (${Ue.executablePath})`);let be=Ue.args.includes("--remote-debugging-pipe"),ut=async()=>{await this.cleanUserDataDir(Ue.userDataDir,{isTemp:Ue.isTempUserDataDir})};if(I(this,b2)==="firefox"&&Te==="webDriverBiDi"&&be)throw new Error("Pipe connections are not supported with Firefox and WebDriver BiDi");let We=CX({executablePath:Ue.executablePath,args:Ue.args,handleSIGHUP:b,handleSIGTERM:C,handleSIGINT:p,dumpio:s,env:f,pipe:be,onExit:ut,signal:r.signal}),st,or,gt=!1,jt=async()=>{gt||(gt=!0,await this.closeBrowser(We,or))};try{I(this,b2)==="firefox"?st=await this.createBiDiBrowser(We,jt,{timeout:R,protocolTimeout:H,slowMo:k,defaultViewport:O,acceptInsecureCerts:N,networkEnabled:L,idGenerator:ge}):(be?or=await this.createCdpPipeConnection(We,{timeout:R,protocolTimeout:H,slowMo:k,idGenerator:ge}):or=await this.createCdpSocketConnection(We,{timeout:R,protocolTimeout:H,slowMo:k,idGenerator:ge}),Te==="webDriverBiDi"?st=await this.createBiDiOverCdpBrowser(We,or,jt,{defaultViewport:O,acceptInsecureCerts:N,networkEnabled:L}):st=await IY._create(or,[],N,O,j,We.nodeProcess,jt,r.targetFilter,void 0,void 0,L,X))}catch(Et){jt();let Nt=We.getRecentLogs().join(` -`);throw Nt.includes("Failed to create a ProcessSingleton for your profile directory")||process.platform==="win32"&&(0,zfe.existsSync)((0,rrt.join)(Ue.userDataDir,"lockfile"))?new Error(`The browser is already running for ${Ue.userDataDir}. Use a different \`userDataDir\` or stop the running browser first.`):Nt.includes("Missing X server")&&r.headless===!1?new Error("Missing X server to start the headful browser. Either set headless to true or use xvfb-run to run your Puppeteer script."):Et instanceof a9?new ay(Et.message):Et}if(Array.isArray(c)){if(I(this,b2)==="chrome"&&!be)throw new Error("To use `enableExtensions` with a list of paths in Chrome, you must be connected with `--remote-debugging-pipe` (`pipe: true`).");await Promise.all([c.map(Et=>st.installExtension(Et))])}return J&&await this.waitForPageTarget(st,R),st}async closeBrowser(r,s){if(s)try{await s.closeBrowser(),await r.hasClosed()}catch(c){Ss(c),await r.close()}else await ed(rq(cu(r.hasClosed()),C5(5e3).pipe(eg(()=>cu(r.close())))))}async waitForPageTarget(r,s){try{await r.waitForTarget(c=>c.type()==="page",{timeout:s})}catch(c){throw await r.close(),c}}async createCdpSocketConnection(r,s){let c=await r.waitForLineOutput(Dxe,s.timeout),f=await Ez.create(c);return new wN(c,f,s.slowMo,s.protocolTimeout,!1,s.idGenerator)}async createCdpPipeConnection(r,s){let{3:c,4:f}=r.nodeProcess.stdio,p=new Lke(c,f);return new wN("",p,s.slowMo,s.protocolTimeout,!1,s.idGenerator)}async createBiDiOverCdpBrowser(r,s,c,f){let p=process.env.PUPPETEER_WEBDRIVER_BIDI_ONLY==="true",C=await Promise.resolve().then(()=>(ble(),wle)),b=await C.connectBidiOverCdp(s);return await C.BidiBrowser.create({connection:b,cdpConnection:p?void 0:s,closeCallback:c,process:r.nodeProcess,defaultViewport:f.defaultViewport,acceptInsecureCerts:f.acceptInsecureCerts,networkEnabled:f.networkEnabled})}async createBiDiBrowser(r,s,c){let f=await r.waitForLineOutput(Sxe,c.timeout)+"/session",p=await Ez.create(f),C=await Promise.resolve().then(()=>(ble(),wle)),b=new C.BidiConnection(f,p,c.idGenerator,c.slowMo,c.protocolTimeout);return await C.BidiBrowser.create({connection:b,closeCallback:s,process:r.nodeProcess,defaultViewport:c.defaultViewport,acceptInsecureCerts:c.acceptInsecureCerts,networkEnabled:c.networkEnabled??!0})}getProfilePath(){return(0,rrt.join)(this.puppeteer.configuration.temporaryDirectory??(0,Z7t.tmpdir)(),`puppeteer_dev_${this.browser}_profile-`)}resolveExecutablePath(r,s=!0){let c=this.puppeteer.configuration.executablePath;if(c){if(s&&!(0,zfe.existsSync)(c))throw new Error(`Tried to find the browser at the configured path (${c}), but no executable was found.`);return c}function f(C,b){switch(C){case"chrome":return b==="shell"?gc.CHROMEHEADLESSSHELL:gc.CHROME;case"firefox":return gc.FIREFOX}return gc.CHROME}let p=f(this.browser,r);if(c=o9({cacheDir:this.puppeteer.defaultDownloadPath,browser:p,buildId:this.puppeteer.browserVersion}),s&&!(0,zfe.existsSync)(c)){let C=this.puppeteer.configuration?.[this.browser]?.version;if(C)throw new Error(`Tried to find the browser at the configured path (${c}) for version ${C}, but no executable was found.`);switch(this.browser){case"chrome":throw new Error(`Could not find Chrome (ver. ${this.puppeteer.browserVersion}). This can occur if either - 1. you did not perform an installation before running the script (e.g. \`npx puppeteer browsers install ${p}\`) or - 2. your cache path is incorrectly configured (which is: ${this.puppeteer.configuration.cacheDirectory}). -For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.`);case"firefox":throw new Error(`Could not find Firefox (rev. ${this.puppeteer.browserVersion}). This can occur if either - 1. you did not perform an installation for Firefox before running the script (e.g. \`npx puppeteer browsers install firefox\`) or - 2. your cache path is incorrectly configured (which is: ${this.puppeteer.configuration.cacheDirectory}). -For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.`)}}return c}};b2=new WeakMap;ert();var $7t=wc(require("node:fs"),1);var mUr={force:!0,recursive:!0,maxRetries:5};async function Uke(a){await $7t.default.promises.rm(a,mUr)}var Jke=class extends zX{constructor(r){super(r,"chrome")}launch(r={}){return this.puppeteer.configuration.logLevel==="warn"&&process.platform==="darwin"&&process.arch==="x64"&&iUt.default.cpus()[0]?.model.includes("Apple")&&console.warn(["\x1B[1m\x1B[43m\x1B[30m","Degraded performance warning:\x1B[0m\x1B[33m","Launching Chrome on Mac Silicon (arm64) from an x64 Node installation results in","Rosetta translating the Chrome binary, even if Chrome is already arm64. This would","result in huge performance issues. To resolve this, you must run Puppeteer with","a version of Node built for arm64."].join(` - `)),super.launch(r)}async computeLaunchArguments(r={}){let{ignoreDefaultArgs:s=!1,args:c=[],pipe:f=!1,debuggingPort:p,channel:C,executablePath:b}=r,N=[];s?Array.isArray(s)?N.push(...this.defaultArgs(r).filter(R=>!s.includes(R))):N.push(...c):N.push(...this.defaultArgs(r)),N.some(R=>R.startsWith("--remote-debugging-"))||(f?(Is(!p,"Browser should be launched with either pipe or debugging port - not both."),N.push("--remote-debugging-pipe")):N.push(`--remote-debugging-port=${p||0}`));let L=!1,O=N.findIndex(R=>R.startsWith("--user-data-dir"));O<0&&(L=!0,N.push(`--user-data-dir=${await(0,rUt.mkdtemp)(this.getProfilePath())}`),O=N.length-1);let j=N[O].split("=",2)[1];Is(typeof j=="string","`--user-data-dir` is malformed");let k=b;return k||(Is(C||!this.puppeteer._isPuppeteerCore,"An `executablePath` or `channel` must be specified for `puppeteer-core`"),k=C?this.executablePath(C):this.resolveExecutablePath(r.headless??!0)),{executablePath:k,args:N,isTempUserDataDir:L,userDataDir:j}}async cleanUserDataDir(r,s){if(s.isTemp)try{await Uke(r)}catch(c){throw Ss(c),c}}defaultArgs(r={}){let s=eUt("--disable-features",r.args);r.args&&s.length>0&&tUt(r.args,"--disable-features");let f=["Translate","AcceptCHFrame","MediaRouter","OptimizationHints","RenderDocument","PartitionAllocSchedulerLoopQuarantineTaskControlledPurge",...process.env.PUPPETEER_TEST_EXPERIMENTAL_CHROME_FEATURES==="true"?[]:["ProcessPerSiteUpToMainFrameThreshold","IsolateSandboxedIframes"],...s].filter(R=>R!==""),p=eUt("--enable-features",r.args);r.args&&p.length>0&&tUt(r.args,"--enable-features");let C=["PdfOopif",...p].filter(R=>R!==""),b=["--allow-pre-commit-input","--disable-background-networking","--disable-background-timer-throttling","--disable-backgrounding-occluded-windows","--disable-breakpad","--disable-client-side-phishing-detection","--disable-component-extensions-with-background-pages","--disable-crash-reporter","--disable-default-apps","--disable-dev-shm-usage","--disable-hang-monitor","--disable-infobars","--disable-ipc-flooding-protection","--disable-popup-blocking","--disable-prompt-on-repost","--disable-renderer-backgrounding","--disable-search-engine-choice-screen","--disable-sync","--enable-automation","--export-tagged-pdf","--force-color-profile=srgb","--generate-pdf-document-outline","--metrics-recording-only","--no-first-run","--password-store=basic","--use-mock-keychain",`--disable-features=${f.join(",")}`,`--enable-features=${C.join(",")}`].filter(R=>R!==""),{devtools:N=!1,headless:L=!N,args:O=[],userDataDir:j,enableExtensions:k=!1}=r;return j&&b.push(`--user-data-dir=${Gke.default.posix.isAbsolute(j)||Gke.default.win32.isAbsolute(j)?j:Gke.default.resolve(j)}`),N&&b.push("--auto-open-devtools-for-tabs"),L&&b.push(L==="shell"?"--headless":"--headless=new","--hide-scrollbars","--mute-audio"),b.push(k?"--enable-unsafe-extension-debugging":"--disable-extensions"),O.every(R=>R.startsWith("-"))&&b.push("about:blank"),b.push(...O),b}executablePath(r,s=!0){return r?mX({browser:gc.CHROME,channel:$tt(r)}):this.resolveExecutablePath(void 0,s)}};function eUt(a,r=[]){return r.filter(s=>s.startsWith(a.endsWith("=")?a:`${a}=`)).map(s=>s.split(new RegExp(`${a}=\\s*`))[1]?.trim()).filter(s=>s)}function tUt(a,r){let s=new RegExp(`^${r}=.*`),c=0;for(;c!s.includes(R))):N.push(...c):N.push(...this.defaultArgs(r)),N.some(R=>R.startsWith("--remote-debugging-"))||(p&&Is(b===null,"Browser should be launched with either pipe or debugging port - not both."),N.push(`--remote-debugging-port=${b||0}`));let L,O=!0,j=N.findIndex(R=>["-profile","--profile"].includes(R));if(j!==-1){if(L=N[j+1],!L)throw new Error("Missing value for profile command line argument");O=!1}else L=await(0,XX.mkdtemp)(this.getProfilePath()),N.push("--profile"),N.push(L);await yxe(gc.FIREFOX,{path:L,preferences:a.getPreferences(C)});let k;return this.puppeteer._isPuppeteerCore||f?(Is(f,"An `executablePath` must be specified for `puppeteer-core`"),k=f):k=this.executablePath(void 0),{isTempUserDataDir:O,userDataDir:L,args:N,executablePath:k}}async cleanUserDataDir(r,s){if(s.isTemp)try{await Uke(r)}catch(c){throw Ss(c),c}else try{let c=".puppeteer",f=["prefs.js","user.js"],p=await Promise.allSettled(f.map(async C=>{let b=irt.default.join(r,C+c);if(nUt.default.existsSync(b)){let N=irt.default.join(r,C);await(0,XX.unlink)(N),await(0,XX.rename)(b,N)}}));for(let C of p)if(C.status==="rejected")throw C.reason}catch(c){Ss(c)}}executablePath(r,s=!0){return this.resolveExecutablePath(void 0,s)}defaultArgs(r={}){let{devtools:s=!1,headless:c=!s,args:f=[],userDataDir:p=null}=r,C=[];switch(sUt.default.platform()){case"darwin":C.push("--foreground");break;case"win32":C.push("--wait-for-browser");break}return p&&(C.push("--profile"),C.push(p)),c&&C.push("--headless"),s&&C.push("--devtools"),f.every(b=>b.startsWith("-"))&&C.push("about:blank"),C.push(...f),C}};k9();var y8,Xfe,B8,ZX,$X=class extends Vfe{constructor(s){let{configuration:c,...f}=s;super(f);Ae(this,B8);Ae(this,y8);Ae(this,Xfe);Hr(this,"defaultBrowserRevision");Hr(this,"configuration",{});switch(c&&(this.configuration=c),this.configuration.defaultBrowser){case"firefox":this.defaultBrowserRevision=qX.firefox;break;default:this.configuration.defaultBrowser="chrome",this.defaultBrowserRevision=qX.chrome;break}this.connect=this.connect.bind(this),this.launch=this.launch.bind(this),this.executablePath=this.executablePath.bind(this),this.defaultArgs=this.defaultArgs.bind(this),this.trimCache=this.trimCache.bind(this)}connect(s){return super.connect(s)}launch(s={}){let{browser:c=this.defaultBrowser}=s;switch(Be(this,Xfe,c),c){case"chrome":this.defaultBrowserRevision=qX.chrome;break;case"firefox":this.defaultBrowserRevision=qX.firefox;break;default:throw new Error(`Unknown product: ${c}`)}return Be(this,y8,Ke(this,B8,ZX).call(this,c)),I(this,y8).launch(s)}executablePath(s){return s===void 0?Ke(this,B8,ZX).call(this,this.lastLaunchedBrowser).executablePath(void 0,!1):typeof s=="string"?Ke(this,B8,ZX).call(this,"chrome").executablePath(s,!1):Ke(this,B8,ZX).call(this,s.browser??this.lastLaunchedBrowser).resolveExecutablePath(s.headless,!1)}get browserVersion(){return this.configuration?.[this.lastLaunchedBrowser]?.version??this.defaultBrowserRevision}get defaultDownloadPath(){return this.configuration.cacheDirectory}get lastLaunchedBrowser(){return I(this,Xfe)??this.defaultBrowser}get defaultBrowser(){return this.configuration.defaultBrowser??"chrome"}get product(){return this.lastLaunchedBrowser}defaultArgs(s={}){return Ke(this,B8,ZX).call(this,s.browser??this.lastLaunchedBrowser).defaultArgs(s)}async trimCache(){let s=K0();if(!s)throw new Error("The current platform is not supported.");let c=this.configuration.cacheDirectory,f=await Ake({cacheDir:c}),p=[{product:"chrome",browser:gc.CHROME,currentBuildId:""},{product:"firefox",browser:gc.FIREFOX,currentBuildId:""}];await Promise.all(p.map(async N=>{let L=this.configuration?.[N.product]?.version??qX[N.product];N.currentBuildId=await fX(N.browser,s,L)}));let C=new Set(p.map(N=>`${N.browser}_${N.currentBuildId}`)),b=new Set(p.map(N=>N.browser));for(let N of f)b.has(N.browser)&&(C.has(`${N.browser}_${N.buildId}`)||await cke({browser:N.browser,platform:s,cacheDir:c,buildId:N.buildId}))}};y8=new WeakMap,Xfe=new WeakMap,B8=new WeakSet,ZX=function(s){if(I(this,y8)&&I(this,y8).browser===s)return I(this,y8);switch(s){case"chrome":return new Jke(this);case"firefox":return new Hke(this);default:throw new Error(`Unknown product: ${s}`)}};var Kke=require("node:child_process"),cUt=wc(require("node:fs"),1),AUt=wc(require("node:os"),1),uUt=require("node:path"),lUt=require("node:stream"),fUt=wc(KC(),1);vw();vB();GA();xh();tg();var CUr=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;R--){var J={};for(var H in c)J[H]=H==="access"?{}:c[H];for(var H in c.access)J.access[H]=c.access[H];J.addInitializer=function(ge){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(ge||null))};var X=(0,s[R])(b==="accessor"?{get:O.get,set:O.set}:O[N],J);if(b==="accessor"){if(X===void 0)continue;if(X===null||typeof X!="object")throw new TypeError("Object expected");(j=C(X.get))&&(O.get=j),(j=C(X.set))&&(O.set=j),(j=C(X.init))&&f.unshift(j)}else(j=C(X))&&(b==="field"?f.unshift(j):O[N]=j)}L&&Object.defineProperty(L,c.name,O),k=!0},IUr=function(a,r,s){return typeof r=="symbol"&&(r=r.description?"[".concat(r.description,"]"):""),Object.defineProperty(a,"name",{configurable:!0,value:s?"".concat(s," ",r):r})},EUr=30,oUt=30,yUr=(0,fUt.default)("puppeteer:ffmpeg"),gUt=(()=>{var p,C,b,N,L,O,dUt,jke,R;let a=lUt.PassThrough,r=[],s,c,f;return R=class extends a{constructor(X,ge,Te,{ffmpegPath:Ue,speed:be,scale:ut,crop:We,format:st,fps:or,loop:gt,delay:jt,quality:Et,colors:Nt,path:Dt,overwrite:Tt}={}){super({allowHalfOpen:!1});Ae(this,O);Ae(this,p,CUr(this,r));Ae(this,C);Ae(this,b,new AbortController);Ae(this,N);Ae(this,L);Ue??(Ue="ffmpeg"),st??(st="webm"),or??(or=oUt),gt||(gt=-1),jt??(jt=-1),Et??(Et=EUr),Nt??(Nt=256),Tt??(Tt=!0),Be(this,L,or);let{error:qr}=(0,Kke.spawnSync)(Ue);if(qr)throw qr;let zr=[`crop='min(${ge},iw):min(${Te},ih):0:0'`,`pad=${ge}:${Te}:0:0`];be&&zr.push(`setpts=${1/be}*PTS`),We&&zr.push(`crop=${We.width}:${We.height}:${We.x}:${We.y}`),ut&&zr.push(`scale=iw*${ut}:-1:flags=lanczos`);let bt=Ke(this,O,dUt).call(this,st,or,gt,jt,Et,Nt),ji=bt.indexOf("-vf");ji!==-1&&zr.push(bt.splice(ji,2).at(-1)??""),Dt&&cUt.default.mkdirSync((0,uUt.dirname)(Dt),{recursive:Tt}),Be(this,C,(0,Kke.spawn)(Ue,[["-loglevel","error"],["-avioflags","direct"],["-fpsprobesize","0","-probesize","32","-analyzeduration","0","-fflags","nobuffer"],["-f","image2pipe","-vcodec","png","-i","pipe:0"],["-an"],["-threads","1"],["-framerate",`${or}`],["-b:v","0"],bt,["-vf",zr.join()],[Tt?"-y":"-n"],"pipe:1"].flat(),{stdio:["pipe","pipe","pipe"]})),I(this,C).stdout.pipe(this),I(this,C).stderr.on("data",gi=>{yUr(gi.toString("utf8"))}),Be(this,p,X);let{client:Yr}=I(this,p).mainFrame();Yr.once(bl.Disconnected,()=>{this.stop().catch(Ss)}),Be(this,N,dDt(Hl(Yr,"Page.screencastFrame").pipe(I5(gi=>{Yr.send("Page.screencastFrameAck",{sessionId:gi.sessionId})}),pQ(gi=>gi.metadata.timestamp!==void 0),eg(gi=>({buffer:Buffer.from(gi.data,"base64"),timestamp:gi.metadata.timestamp})),CDt(2,1),IDt(([{timestamp:gi,buffer:Gr},{timestamp:kn}])=>cu(Array(Math.round(or*Math.max(kn-gi,0))).fill(Gr))),eg(gi=>(I(this,O,jke).call(this,gi),[gi,performance.now()])),W1e(tq(I(this,b).signal,"abort"))),{defaultValue:[Buffer.from([]),performance.now()]}))}async stop(){if(I(this,b).signal.aborted)return;await I(this,p)._stopScreencast().catch(Ss),I(this,b).abort();let[X,ge]=await I(this,N);await Promise.all(Array(Math.max(1,Math.round(I(this,L)*(performance.now()-ge)/1e3))).fill(X).map(I(this,O,jke).bind(this))),I(this,C).stdin.end(),await new Promise(Te=>{I(this,C).once("close",Te)})}async[(s=[Nae()],f=[Nae()],bh)](){await this.stop()}},p=new WeakMap,C=new WeakMap,b=new WeakMap,N=new WeakMap,L=new WeakMap,O=new WeakSet,dUt=function(X,ge,Te,Ue,be,ut){let We=[["-vcodec","vp9"],["-crf",`${be}`],["-deadline","realtime","-cpu-used",`${Math.min(AUt.default.cpus().length/2,8)}`]];switch(X){case"webm":return[...We,["-f","webm"]].flat();case"gif":return ge=oUt===ge?20:"source_fps",Te===1/0&&(Te=0),Ue!==-1&&(Ue/=10),[["-vf",`fps=${ge},split[s0][s1];[s0]palettegen=stats_mode=diff:max_colors=${ut}[p];[s1][p]paletteuse=dither=bayer`],["-loop",`${Te}`],["-final_delay",`${Ue}`],["-f","gif"]].flat();case"mp4":return[...We,["-movflags","hybrid_fragmented"],["-f","mp4"]].flat()}},jke=function(){return c.value},(()=>{let X=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;aUt(R,c={value:IUr(async function(ge){let Te=await new Promise(Ue=>{I(this,C).stdin.write(ge,Ue)});Te&&console.log(`ffmpeg failed to write: ${Te.message}.`)},"#writeFrame")},s,{kind:"method",name:"#writeFrame",static:!1,private:!0,access:{has:ge=>wh(O,ge),get:ge=>I(ge,O,jke)},metadata:X},null,r),aUt(R,null,f,{kind:"method",name:"stop",static:!1,private:!1,access:{has:ge=>"stop"in ge,get:ge=>ge.stop},metadata:X},null,r),X&&Object.defineProperty(R,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:X})})(),R})();var pUt=wc(require("node:fs"),1),_Ut=wc(require("node:path"),1);yk();Ym.value={fs:pUt.default,path:_Ut.default,ScreenRecorder:gUt};var QUr=new $X({isPuppeteerCore:!0}),{connect:zCi,defaultArgs:XCi,executablePath:ZCi,launch:$Ci}=QUr;var gJt=require("node:os"),dJt=require("node:path"),pJt=wc(fJt(),1);function dit(a){let r=process.env[a];if(r!==void 0)switch(r.toLowerCase()){case"":case"0":case"false":case"off":return!1;default:return!0}}function iHr(a){switch(a){case"chrome":case"firefox":return!0;default:return!1}}function nHr(a){if(a&&!iHr(a))throw new Error(`Unsupported browser ${a}`);switch(a){case"firefox":return"firefox";default:return"chrome"}}function sHr(a){switch(a){case"silent":return"silent";case"error":return"error";default:return"warn"}}function git(a,r,s={}){if(r.skipDownload)return{skipDownload:!0};let c={},f=a.replaceAll("-","_").toUpperCase();return c.version=process.env[`PUPPETEER_${f}_VERSION`]??r[a]?.version??s.version,c.downloadBaseUrl=process.env[`PUPPETEER_${f}_DOWNLOAD_BASE_URL`]??r[a]?.downloadBaseUrl??s.downloadBaseUrl,c.skipDownload=dit(`PUPPETEER_${f}_SKIP_DOWNLOAD`)??dit(`PUPPETEER_SKIP_${f}_DOWNLOAD`)??r[a]?.skipDownload??s.skipDownload,c}var _Jt=()=>{let a=(0,pJt.cosmiconfigSync)("puppeteer",{searchStrategy:"global"}).search(),r=a?{...a.config}:{};return r.logLevel=sHr(process.env.PUPPETEER_LOGLEVEL??r.logLevel),r.defaultBrowser=nHr(process.env.PUPPETEER_BROWSER??r.defaultBrowser),r.executablePath=process.env.PUPPETEER_EXECUTABLE_PATH??r.executablePath,r.executablePath&&(r.skipDownload=!0),r.skipDownload=dit("PUPPETEER_SKIP_DOWNLOAD")??r.skipDownload,r.chrome=git("chrome",r),r["chrome-headless-shell"]=git("chrome-headless-shell",r),r.firefox=git("firefox",r,{skipDownload:!0}),r.cacheDirectory=process.env.PUPPETEER_CACHE_DIR??r.cacheDirectory??(0,dJt.join)((0,gJt.homedir)(),".cache","puppeteer"),r.temporaryDirectory=process.env.PUPPETEER_TMP_DIR??r.temporaryDirectory,r.experiments??(r.experiments={}),r};var aHr=_Jt(),hJt=new $X({isPuppeteerCore:!1,configuration:aHr}),{connect:FIi,defaultArgs:NIi,executablePath:RIi,launch:PIi,trimCache:MIi}=hJt,mJt=hJt;var gm=class extends Error{constructor(s,c){super(s);Hr(this,"status");this.status=c}};async function CJt(){try{return await mJt.launch({headless:!0,pipe:!0,timeout:6e4,args:["--no-sandbox","--disable-gpu","--single-process","--disable-dev-shm-usage","--no-zygote","--no-extensions"]})}catch(a){throw console.log(a),new gm("Failed to launch browser",500)}}async function IJt(a,r){let c=(await a.pages())[0];if(r.format==="pptx")await c.setViewport({width:3e3,height:3e3,deviceScaleFactor:1});else if(r.format==="pdf"||r.format==="png")await c.setViewport({width:1280,height:720,deviceScaleFactor:1});else throw new gm("Invalid task specified",400);c.setDefaultTimeout(12e4),r.fastapiUrl&&await c.evaluateOnNewDocument(f=>{let p=window;p.env={...p.env||{},NEXT_PUBLIC_FAST_API:f}},r.fastapiUrl),await c.goto(r.url,{waitUntil:"networkidle0"});try{await c.waitForFunction(()=>document.readyState==="complete")}catch{}try{await AHr(c)}catch{}try{await uHr(c)}catch{}try{await lHr(c)}catch{}try{await oHr(c)}catch{}try{await cHr(c)}catch{}return c}async function oHr(a,r=2e3,s=1e4){console.log("[waitForDomIdle] Waiting for DOM to be idle"),await a.evaluate(async(c,f)=>{let p=Date.now(),C=Date.now(),b=new MutationObserver(()=>{C=Date.now()});b.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),await new Promise(N=>{let L=()=>{let O=Date.now();if(O-C>=c){b.disconnect(),N();return}if(O-p>=f){b.disconnect(),N();return}setTimeout(L,50)};setTimeout(L,c)})},r,s),console.log("[waitForDomIdle] DOM idle")}async function cHr(a,r=15e3){console.log("[waitForAllContentLoaded] Waiting for all content to be loaded"),await a.waitForFunction(` - () => { - const allElements = document.querySelectorAll('*'); - let loadedElements = 0; - let totalElements = allElements.length; - - for (let el of allElements) { - const style = window.getComputedStyle(el); - const isVisible = style.display !== 'none' && - style.visibility !== 'hidden' && - style.opacity !== '0'; - - if (isVisible && el.offsetWidth > 0 && el.offsetHeight > 0) { - loadedElements++; - } - } - - return (loadedElements / totalElements) >= 0.99; - } - `,{timeout:r}),await new Promise(s=>setTimeout(s,2e3)),console.log("[waitForAllContentLoaded] All content loaded")}async function AHr(a,r=1e4){console.log("[waitForTailwindCdn] Waiting for Tailwind CDN to be ready"),await a.waitForFunction(()=>{if(!document.body)return!1;let s=document.createElement("div");s.className="hidden",document.body.appendChild(s);let c=window.getComputedStyle(s).display;return s.remove(),c==="none"},{timeout:r,polling:100}),console.log("[waitForTailwindCdn] Tailwind CDN ready")}async function uHr(a,r=15e3){console.log("[waitForAllImagesLoaded] Waiting for all images to be loaded"),await a.evaluate(async s=>{let c=Date.now()+s;function f(b){let N=b.backgroundImage||"",L=[],O=/url\(("|'|)(.*?)\1\)/g,j;for(;(j=O.exec(N))!==null;){let k=(j[2]||"").trim();k&&L.push(k)}return L}function p(b){return new Promise(N=>{let L=new Image;L.onload=()=>N(),L.onerror=()=>N(),L.src=b})}async function C(b){let N=b.map(L=>typeof L.decode=="function"?L.decode().catch(()=>{}):L.complete&&L.naturalWidth>0?Promise.resolve():new Promise(O=>{let j=()=>O();L.addEventListener("load",j,{once:!0}),L.addEventListener("error",j,{once:!0})}));await Promise.all(N)}for(;;){let b=Array.from(document.images);await C(b);let N=Array.from(document.querySelectorAll("*")),L=new Set;for(let j of N){let k=getComputedStyle(j);for(let R of f(k))L.add(R)}if(await Promise.all(Array.from(L).map(j=>p(j))),await new Promise(j=>setTimeout(j,50)),Array.from(document.images).every(j=>j.complete)||Date.now()>c)return}},r),console.log("[waitForAllImagesLoaded] All images loaded")}async function lHr(a,r=1e4){console.log("[waitForFontsReady] Waiting for fonts to be ready"),await a.evaluate(async s=>{let c=document.fonts;c&&await Promise.race([c.ready,new Promise(f=>setTimeout(f,s))])},r),console.log("[waitForFontsReady] Fonts ready")}var SZ=wc(require("node:fs/promises"));var q0=[];for(let a=0;a<256;++a)q0.push((a+256).toString(16).slice(1));function EJt(a,r=0){return(q0[a[r+0]]+q0[a[r+1]]+q0[a[r+2]]+q0[a[r+3]]+"-"+q0[a[r+4]]+q0[a[r+5]]+"-"+q0[a[r+6]]+q0[a[r+7]]+"-"+q0[a[r+8]]+q0[a[r+9]]+"-"+q0[a[r+10]]+q0[a[r+11]]+q0[a[r+12]]+q0[a[r+13]]+q0[a[r+14]]+q0[a[r+15]]).toLowerCase()}var yJt=require("node:crypto"),p2e=new Uint8Array(256),d2e=p2e.length;function pit(){return d2e>p2e.length-16&&((0,yJt.randomFillSync)(p2e),d2e=0),p2e.slice(d2e,d2e+=16)}var BJt=require("node:crypto"),_it={randomUUID:BJt.randomUUID};function fHr(a,r,s){a=a||{};let c=a.random??a.rng?.()??pit();if(c.length<16)throw new Error("Random bytes length must be >= 16");if(c[6]=c[6]&15|64,c[8]=c[8]&63|128,r){if(s=s||0,s<0||s+16>r.length)throw new RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let f=0;f<16;++f)r[s+f]=c[f];return r}return EJt(c)}function gHr(a,r,s){return _it.randomUUID&&!r&&!a?_it.randomUUID():fHr(a,r,s)}var jQ=gHr;var zit=wc(require("node:fs/promises"));async function hit(a){let r=jQ();return await a.evaluate((c,f)=>{try{c.setAttribute("data-pptx-element-identifier",f)}catch{}function p(Et){if(!Et||Et==="transparent"||Et==="rgba(0, 0, 0, 0)")return{hex:void 0,opacity:void 0};if(Et.startsWith("rgba(")||Et.startsWith("hsla(")){let bt=Et.match(/rgba?\(([^)]+)\)|hsla?\(([^)]+)\)/);if(bt){let Yr=(bt[1]||bt[2]).split(",").map(gi=>gi.trim());if(Yr.length>=4){let gi=parseFloat(Yr[3]),Gr=Et.replace(/rgba?\(|hsla?\(|\)/g,"").split(",").slice(0,3).join(","),kn=Et.startsWith("rgba")?`rgb(${Gr})`:`hsl(${Gr})`,wn=document.createElement("canvas").getContext("2d");if(wn){wn.fillStyle=kn;let Jn=wn.fillStyle;return{hex:Jn.startsWith("#")?Jn.substring(1):Jn,opacity:isNaN(gi)?void 0:gi}}}}}if(Et.startsWith("rgb(")||Et.startsWith("hsl(")){let ji=document.createElement("canvas").getContext("2d");if(ji){ji.fillStyle=Et;let Yr=ji.fillStyle;return{hex:Yr.startsWith("#")?Yr.substring(1):Yr,opacity:void 0}}}if(Et.startsWith("#"))return{hex:Et.substring(1),opacity:void 0};let Dt=document.createElement("canvas").getContext("2d");if(!Dt)return{hex:Et,opacity:void 0};Dt.fillStyle=Et;let Tt=Dt.fillStyle;return{hex:Tt.startsWith("#")?Tt.substring(1):Tt,opacity:void 0}}function C(Et){let Nt=Et.childNodes;for(let Dt=0;Dtkn==="transparent"||/rgba\s*\([^\)]*,\s*0\s*\)/i.test(kn)||/hsla\s*\([^\)]*,\s*0\s*\)/i.test(kn),Gr=bt&&(Tt||gi(Yr)||gi(ji));return Tt||Gr}function j(Et,Nt){try{if(Et.tagName.toLowerCase()!=="li")return;let Tt=(Nt.display||"").toLowerCase(),qr=(Nt.listStyleType||"").toLowerCase(),zr=Tt==="list-item"&&qr!=="none",bt;try{let Yr=window.getComputedStyle(Et,"::marker");if(Yr){let gi=(Yr.content||"").trim(),Gr=(Yr.listStyleType||"").toLowerCase();gi&&gi!=="none"&&gi!=="normal"&&gi!=='""'&&(zr=!0),Gr&&Gr!=="none"&&(zr=!0);let kn=Yr.color;kn&&(bt=p(kn).hex)}}catch{}if(!zr)return;let ji={};return bt&&(ji.color=bt),ji}catch{return}}function k(Et){let Nt=p(Et.borderColor),Dt=(Gr,kn)=>{let jn=parseFloat(Gr||"0"),wn=(kn||"").toLowerCase();return!isFinite(jn)||jn<=0||wn==="none"||wn==="hidden"?0:jn},Tt=Dt(Et.borderTopWidth,Et.borderTopStyle),qr=Dt(Et.borderRightWidth,Et.borderRightStyle),zr=Dt(Et.borderBottomWidth,Et.borderBottomStyle),bt=Dt(Et.borderLeftWidth,Et.borderLeftStyle),ji=[];Tt>0&&ji.push("top"),qr>0&&ji.push("right"),zr>0&&ji.push("bottom"),bt>0&&ji.push("left");let Yr=Math.max(Tt,qr,zr,bt);if(!isFinite(Yr)||Yr<=0)return;let gi={color:Nt.hex,width:Yr,opacity:Nt.opacity};if(ji.length>0&&ji.length<4&&(gi.sides=ji),!(!gi.color&&gi.width===void 0&&gi.opacity===void 0))return gi}function R(Et){let Nt=Et.boxShadow,Dt={};if(Nt&&Nt!=="none"){let Tt=[],qr="",zr=0;for(let Yr=0;Yr0){let oa=jn.join(" "),Kc=p(oa);Ps=!!(Kc.hex&&Kc.hex!=="000000"&&Kc.opacity!==0)}let po=kn.some(oa=>oa!==0),Zn=0;po&&(Zn+=kn.filter(oa=>oa!==0).length),Ps&&(Zn+=2),(po||Ps)&&Zn>ji&&(bt=gi,ji=Zn)}if(!bt&&Tt.length>0&&(bt=Tt[0]),bt){let Yr=bt.split(" "),gi=[],Gr=[],kn=!1,jn="",wn=!1;for(let Jn=0;Jn=2){let Jn=gi[0],Jr=gi[1],Ps=gi.length>=3?gi[2]:0,po=gi.length>=4?gi[3]:0;if(Gr.length>0){let Zn=Gr.join(" "),oa=p(Zn);oa.hex&&(Dt={offset:[Jn,Jr],color:oa.hex,opacity:oa.opacity,radius:Ps,spread:po,inset:kn,angle:Math.atan2(Jr,Jn)*(180/Math.PI)})}}}}if(Object.keys(Dt).length!==0)return Dt}function J(Et,Nt){let Dt=parseFloat(Et.fontSize),Tt=parseInt(Et.fontWeight),qr=p(Et.color),zr=Et.fontStyle;function bt(jn){let wn=(jn||"").split(",").map(Ps=>Ps.trim().replace(/['"]/g,"")),Jn=wn[0]||"",Jr=Jn.match(/^__([A-Za-z0-9]+(?:_[A-Za-z0-9]+)*)_[A-Za-z0-9]+$/);return Jr?Jr[1].split(/[_-]+/).filter(po=>po.length>0).map(po=>po.charAt(0).toUpperCase()+po.slice(1).toLowerCase()).join(" "):/^__/.test(Jn)?(wn.find(po=>!/^__/.test(po)&&!/(^|\s)(fallback)$/i.test(po)&&!/^(system-ui|ui-sans-serif|ui-serif|ui-monospace|ui-rounded|sans-serif|serif|monospace|cursive|fantasy|emoji|math|fangsong)$/i.test(po))||Jn).replace(/\s+Fallback$/i,""):Jn}function ji(jn,wn){try{let Vr=function(Pa){Zn.font=`${Qe} ${Fi} ${Kc} ${Pa}`},vt=function(Pa){return Vr(Pa),Zn.measureText(oa).width};var Jn=Vr,Jr=vt;let Ps=document.createElement("canvas");Ps.width=600,Ps.height=100;let po=Ps.getContext("2d");if(!po)return bt(wn.fontFamily||"");let Zn=po,oa=`mmmmmmmmmmlliWWWWW@#$%^&*()_+-=[]{}|;':",./<>? 1234567890`.repeat(3),Kc=wn.fontSize||"16px",Fi=wn.fontWeight||"400",Qe=wn.fontStyle||"normal",ai=vt("monospace"),Ci=vt("serif"),Zr=vt("sans-serif"),ei=(wn.fontFamily||"").split(",").map(Pa=>Pa.trim()).filter(Pa=>Pa.length>0),ms=Pa=>/^("|')?(system-ui|ui-sans-serif|ui-serif|ui-monospace|ui-rounded|sans-serif|serif|monospace|cursive|fantasy|emoji|math|fangsong)("|')?$/i.test(Pa);for(let Pa of ei){let qc=Pa.replace(/^\s*["']|["']\s*$/g,"");if(ms(qc))continue;let oc=vt(`"${qc}", monospace`),kl=vt(`"${qc}", serif`),oi=vt(`"${qc}", sans-serif`);if(oc!==ai||kl!==Ci||oi!==Zr)return bt(qc)}return ei.some(Pa=>/^['"]?serif['"]?$/i.test(Pa))?"serif":ei.some(Pa=>/^['"]?monospace['"]?$/i.test(Pa))?"monospace":(ei.find(Pa=>ms(Pa))||"serif").replace(/^["']|["']$/g,"")}catch{return bt(wn.fontFamily||"")}}let Yr=ji(Nt,Et);function gi(jn){let wn=(jn||"").trim();if(!wn)return"Noto Sans";let Jn=wn.toLowerCase();return Jn==="serif"?"Noto Serif":Jn==="monospace"?"Noto Sans Mono":Jn==="emoji"?"Noto Color Emoji":Jn==="sans-serif"||Jn==="system-ui"||Jn==="ui-sans-serif"||Jn==="ui-monospace"||Jn==="ui-serif"||Jn==="ui-rounded"||Jn==="cursive"||Jn==="fantasy"||Jn==="math"||Jn==="fangsong"?"Noto Sans":wn}let kn={name:gi(Yr),size:isNaN(Dt)?void 0:Dt,weight:isNaN(Tt)?void 0:Tt,color:qr.hex,italic:zr==="italic"};if(!(!kn.name&&kn.size===void 0&&kn.weight===void 0&&!kn.color&&!kn.italic))return kn}function H(Et,Nt){let Dt=Et.lineHeight;if(!Dt||Dt==="normal")return;let Tt=String(Dt).trim(),qr=parseFloat(Et.fontSize),zr;if(Tt.endsWith("px")){let bt=parseFloat(Tt);zr=isNaN(bt)?void 0:bt}else if(Tt.endsWith("%")){let bt=parseFloat(Tt);zr=isNaN(bt)?void 0:bt/100*qr}else if(Tt.endsWith("em")){let bt=parseFloat(Tt);zr=isNaN(bt)?void 0:bt*qr}else if(Tt.endsWith("rem")){let bt=parseFloat(Tt);try{let ji=window.getComputedStyle(document.documentElement).fontSize,Yr=parseFloat(ji);zr=isNaN(bt)||isNaN(Yr)?void 0:bt*Yr}catch{zr=isNaN(bt)?void 0:bt*qr}}else{let bt=parseFloat(Tt);isNaN(bt)||(zr=bt*qr)}return zr!==void 0&&isFinite(zr)?zr:void 0}function X(Et,Nt){let Dt=Et.letterSpacing;if(!Dt||Dt==="normal")return;let Tt=parseFloat(Dt);if(!isNaN(Tt))return Tt}function ge(Et){let Nt=Et.textDecorationLine||Et.textDecoration;if(!Nt)return;let Dt=String(Nt).toLowerCase();if(Dt.includes("line-through"))return"line-through";if(Dt.includes("underline"))return"underline";if(Dt.includes("overline"))return"overline"}function Te(Et){let Nt=(Et.textTransform||"").toLowerCase();if(Nt==="uppercase")return"uppercase";if(Nt==="lowercase")return"lowercase";if(Nt==="capitalize")return"capitalize"}function Ue(Et){let Nt=parseFloat(Et.marginTop),Dt=parseFloat(Et.marginBottom),Tt=parseFloat(Et.marginLeft),qr=parseFloat(Et.marginRight),zr={top:isNaN(Nt)?void 0:Nt,bottom:isNaN(Dt)?void 0:Dt,left:isNaN(Tt)?void 0:Tt,right:isNaN(qr)?void 0:qr};return zr.top===0&&zr.bottom===0&&zr.left===0&&zr.right===0?void 0:zr}function be(Et){let Nt=parseFloat(Et.paddingTop),Dt=parseFloat(Et.paddingBottom),Tt=parseFloat(Et.paddingLeft),qr=parseFloat(Et.paddingRight),zr={top:isNaN(Nt)?void 0:Nt,bottom:isNaN(Dt)?void 0:Dt,left:isNaN(Tt)?void 0:Tt,right:isNaN(qr)?void 0:qr};return zr.top===0&&zr.bottom===0&&zr.left===0&&zr.right===0?void 0:zr}function ut(Et,Nt){let Dt=Et.borderRadius,Tt;if(Dt&&Dt!=="0px"){let qr=Dt.split(" ").map(zr=>parseFloat(zr));if(qr.length===1?Tt=[qr[0],qr[0],qr[0],qr[0]]:qr.length===2?Tt=[qr[0],qr[1],qr[0],qr[1]]:qr.length===3?Tt=[qr[0],qr[1],qr[2],qr[1]]:qr.length===4&&(Tt=qr),Tt){let zr=Nt.getBoundingClientRect(),bt=Math.min(zr.width,zr.height)/2;Tt=Tt.map(ji=>Math.max(0,Math.min(ji,bt)))}}return Tt}function We(Et,Nt){if(Et.tagName.toLowerCase()==="img")return Nt&&Nt.length===4&&Nt.every(Dt=>Dt===50)?"circle":"rectangle"}function st(Et){let Nt=Et.filter;if(!Nt||Nt==="none")return;let Dt={},Tt=Nt.match(/[a-zA-Z]+\([^)]*\)/g);return Tt&&Tt.forEach(qr=>{let zr=qr.match(/([a-zA-Z]+)\(([^)]*)\)/);if(zr){let bt=zr[1],ji=parseFloat(zr[2]);if(!isNaN(ji))switch(bt){case"invert":Dt.invert=ji;break;case"brightness":Dt.brightness=ji;break;case"contrast":Dt.contrast=ji;break;case"saturate":Dt.saturate=ji;break;case"hue-rotate":Dt.hueRotate=ji;break;case"blur":Dt.blur=ji;break;case"grayscale":Dt.grayscale=ji;break;case"sepia":Dt.sepia=ji;break;case"opacity":Dt.opacity=ji;break}}}),Object.keys(Dt).length>0?Dt:void 0}function or(Et){let Nt=Et.transform;if(!Nt||Nt==="none")return;let Dt=Nt.match(/rotate(?:Z)?\(([^)]+)\)/);if(Dt){let bt=Dt[1].trim();if(bt.endsWith("deg")){let ji=parseFloat(bt.replace("deg",""));if(!isNaN(ji))return zr(ji)}else if(bt.endsWith("rad")){let ji=parseFloat(bt.replace("rad",""));if(!isNaN(ji))return zr(ji*180/Math.PI)}else if(bt.endsWith("turn")){let ji=parseFloat(bt.replace("turn",""));if(!isNaN(ji))return zr(ji*360)}else{let ji=parseFloat(bt);if(!isNaN(ji))return zr(ji)}}let Tt=Nt.match(/matrix\(([^)]+)\)/);if(Tt){let bt=Tt[1].split(",").map(ji=>parseFloat(ji.trim()));if(bt.length>=2&&!bt.some(ji=>isNaN(ji))){let ji=bt[0],Yr=bt[1],gi=Math.atan2(Yr,ji);return zr(gi*180/Math.PI)}}let qr=Nt.match(/matrix3d\(([^)]+)\)/);if(qr){let bt=qr[1].split(",").map(ji=>parseFloat(ji.trim()));if(bt.length===16&&!bt.some(ji=>isNaN(ji))){let ji=bt[0],Yr=bt[1],gi=Math.atan2(Yr,ji);return zr(gi*180/Math.PI)}}return;function zr(bt){let ji=bt%360;return ji<0&&(ji+=360),Math.round(ji)}}function gt(Et){let Nt=Et.textAlign,Dt=Et.direction||"ltr";Nt==="start"?Nt=Dt==="rtl"?"right":"left":Nt==="end"&&(Nt=Dt==="rtl"?"left":"right");let Tt=Et.display,qr=Et.flexDirection,zr=Et.alignItems,bt=Et.justifyContent,ji=Et.justifyItems,Yr=Et.placeItems,gi=Et.verticalAlign,Gr,kn=Jn=>{if(Jn){if(Jn==="center")return"center";if(Jn==="flex-end"||Jn==="end"||Jn==="right")return"right";if(Jn==="flex-start"||Jn==="start"||Jn==="left")return"left"}},jn=kn;Tt==="flex"||Tt==="inline-flex"?Gr=!!qr&&qr.startsWith("column")?jn(zr):kn(bt):Tt==="grid"||Tt==="inline-grid"?Gr=kn(ji)||(Yr==="center"?"center":void 0):Yr==="center"&&(Gr="center"),Gr&&(Nt=Gr);let wn;if(Yr==="center"?wn="middle":Tt==="flex"||Tt==="inline-flex"?qr&&qr.startsWith("column")?bt==="center"?wn="middle":bt==="flex-end"||bt==="end"?wn="bottom":(bt==="flex-start"||bt==="start")&&(wn="top"):zr==="center"?wn="middle":zr==="flex-end"||zr==="end"?wn="bottom":(zr==="flex-start"||zr==="start")&&(wn="top"):(Tt==="grid"||Tt==="inline-grid")&&(zr==="center"?wn="middle":zr==="end"?wn="bottom":zr==="start"&&(wn="top")),!wn&&gi){let Jn=gi.toLowerCase();Jn==="middle"?wn="middle":Jn==="bottom"||Jn==="sub"||Jn==="text-bottom"?wn="bottom":(Jn==="top"||Jn==="super"||Jn==="text-top")&&(wn="top")}return{textAlign:Nt,textVerticalAlign:wn}}function jt(Et,Nt){let Dt=Et.tagName.toLowerCase(),Tt=Array.from(Et.attributes).reduce((kl,oi)=>(oi.name.startsWith("data-")&&oi.name!=="data-pptx-element-identifier"&&(kl[oi.name]=oi.value),kl),{}),qr=window.getComputedStyle(Et),zr=b(Et),bt=R(qr),ji=N(qr),Yr=O(qr),gi=k(qr),Gr=J(qr,Et),kn=H(qr,Et),jn=X(qr,Et),wn=ge(qr),Jn=Te(qr),Jr=Gr||kn!==void 0||jn!==void 0||wn!==void 0||Jn!==void 0?{...Gr||{},lineHeight:kn,letterSpacing:jn,textDecoration:wn,textTransform:Jn}:void 0,Ps=Ue(qr),po=be(qr),Zn=C(Et)&&Et.textContent||void 0;Zn&&(Zn=Zn.replace(/^\n+|\n+$/g,"").trim().replace(/[ \t]+/g," ").replace(//gi,` -`),Zn.trim().length<=0&&(Zn=void 0));let oa=qr.zIndex,Kc=parseInt(oa),Fi=isNaN(Kc)?void 0:Kc,{textAlign:Qe,textVerticalAlign:Vr}=gt(qr),vt=qr.objectFit,ai=L(qr),Ci=Et.src||ai,Zr=ut(qr,Et),ei=We(Et,Zr),ms=qr.whiteSpace!=="nowrap",ga=st(qr),Za=parseFloat(qr.opacity),eA=isNaN(Za)?void 0:Za,Pa=qr.clipPath==="none"?void 0:qr.clipPath,qc=or(qr),oc=j(Et,qr);return{tagName:Dt,path:[],id:Et.id,className:Et.className&&typeof Et.className=="string"?Et.className:Et.className?Et.className.toString():void 0,innerText:Zn,passedAttributes:Tt,opacity:eA,background:ji,hasGradient:Yr,marker:oc,border:gi,shadow:bt,font:Jr,position:zr,margin:Ps,padding:po,zIndex:Fi,textAlign:Qe!=="left"?Qe:void 0,textVerticalAlign:Vr&&Vr!=="top"?Vr:void 0,borderRadius:Zr,rotation:qc,imageSrc:Ci,objectFit:vt,clip:!1,overlay:void 0,shape:ei,connectorType:void 0,textWrap:ms,shouldScreenshot:!1,identifier:Nt,filters:ga,clipPath:Pa}}return jt(c,f)},r)}var qit=wc(Jjt());async function Hjt(a,r,s,c,f){if(!a)throw new Error("cropImage requires an input image");if(!(c>0)||!(f>0))throw new Error("cropImage requires positive width and height");let p=Buffer.isBuffer(a)?a:Buffer.from(a),C=await(0,qit.default)(p).metadata(),b=C.width||0,N=C.height||0;if(b<=0||N<=0)throw new Error("Invalid image dimensions");let L=Math.max(0,Math.floor(r)),O=Math.max(0,Math.floor(s)),j=Math.max(0,Math.floor(c)),k=Math.max(0,Math.floor(f));if(L>=b||O>=N)throw new Error("Crop origin is outside image bounds");let R=Math.max(1,Math.min(j,b-L)),J=Math.max(1,Math.min(k,N-O)),H=await(0,qit.default)(p).extract({left:L,top:O,width:R,height:J}).png({compressionLevel:9}).toBuffer();return Buffer.from(H)}function jjt(a,r,s){let[c=0,f=0,p=0,C=0]=r||[];if(c<=0&&f<=0&&p<=0&&C<=0)return!1;let b=a.left,N=a.top,L=a.left+a.width,O=a.top+a.height,j=s.left,k=s.top,R=s.left+s.width,J=s.top+s.height,H=b+c,X=N+c,ge=L-f,Te=N+f,Ue=L-p,be=O-p,ut=b+C,We=O-C,st=j0,or=R>L-f&&k0,gt=R>L-p&&J>O-p&&p>0,jt=jO-C&&C>0,Et=st&&(j-H)*(j-H)+(k-X)*(k-X)>c*c,Nt=or&&(R-ge)*(R-ge)+(k-Te)*(k-Te)>f*f,Dt=gt&&(R-Ue)*(R-Ue)+(J-be)*(J-be)>p*p,Tt=jt&&(j-ut)*(j-ut)+(J-We)*(J-We)>C*C;return Et||Nt||Dt||Tt}function Kjt(a){if(!a)return;let r=a.replace(/^[\s\u200B\u200C\u200D\uFEFF]+|[\s\u200B\u200C\u200D\uFEFF]+$/g,"");if(r&&(r=r.replace(/\s*/gi,` -`).replace(/\r\n?/g,` -`).replace(/\n[^\S\n]+/g,` -`),!!r.trim()))return r}function Yit(a,r){if(a.length>r.length)return!1;for(let s=0;s *"),H=[];for(let Te=0;TeArray.from(Tt.querySelectorAll("*")).map(qr=>qr.tagName.toLowerCase())),Nt=new Set(["strong","u","em","code","s","b","br"]),Dt=Et.every(Tt=>Nt.has(Tt));if(Et.length>0&&Dt){let Tt=await Ue.evaluate(qr=>qr.innerHTML||"");be.innerText=Kjt(Tt),H.push(be);continue}}if(be.hasImmediateUnwrappedText=await NWr(Ue),be.hasImmediateUnwrappedText){let Et=await Ue.evaluate(Nt=>Nt.innerHTML||"");be.innerText=Kjt(Et)}if(be.tagName==="svg"||be.tagName==="canvas"){be.shouldScreenshot=!0,be.includeChildrenInScreenshot=!0,H.push(be);continue}if(be.tagName==="table"&&(be.shouldScreenshot=!0,be.includeChildrenInScreenshot=!0,be.excludeTextInScreenshot=!0),(be.position.left<0||be.position.top<0||be.position.left+be.position.width>1280||be.position.top+be.position.height>720)&&(be.background?.color||be.border?.color)&&(be.shouldScreenshot=!0,be.includeChildrenInScreenshot=!0,be.excludeTextInScreenshot=!0),(be.clipPath&&be.background?.color||be.hasGradient)&&(be.shouldScreenshot=!0,be.excludeTextInScreenshot=!0),be.border&&be.border.sides&&(be.shouldScreenshot=!0,be.excludeTextInScreenshot=!0),be.borderRadius&&Array.isArray(be.borderRadius)&&be.borderRadius.length===4&&!be.imageSrc&&(be.background&&be.background.color||be.border&&be.border.color)){let[Et,Nt,Dt,Tt]=be.borderRadius;Et===Nt&&Nt===Dt&&Dt===Tt||(be.shouldScreenshot=!0,be.excludeTextInScreenshot=!0)}let ut=be.passedAttributes??{},We=Wit(ut["data-screenshot-include-children"]),st=Wit(ut["data-screenshot-exclude-text"]),or=Wit(ut["data-screenshot"]);if(We&&(be.shouldScreenshot=!0,be.includeChildrenInScreenshot=!0),st&&(be.excludeTextInScreenshot=!0),or&&(be.shouldScreenshot=!0),be.shouldScreenshot&&!be.excludeTextInScreenshot){H.push(be);continue}let jt=(await Vit({element:Ue,rootRect:r,depth:s+1,inheritedPath:Array.isArray(c)?[...c,Te]:[Te],inheritedFont:be.font,inheritedRectangle:be.position,inheritedBackground:be.background||p,inheritedBorderRadius:be.borderRadius||b,inheritedBorderRadiusRect:be.position&&{left:be.position.left??0,top:be.position.top??0,width:be.position.width??0,height:be.position.height??0}||N,inheritedOpacity:be.opacity||O,inheritedRotation:be.rotation||j,inheritedClipPath:be.clipPath||k,inheritedZIndex:be.zIndex??L,inheritedZPath:be.zIndex!==void 0?[...be.zPath||[],be.zIndex]:be.zPath||R})).elements;if(be.shouldScreenshot&&be.includeChildrenInScreenshot&&be.excludeTextInScreenshot&&(jt=jt.filter(Et=>Et.innerText&&Et.innerText.trim().length>0),jt.forEach(Et=>{Et.isExcludedTextChild=!0})),be.tagName==="ul"||be.tagName==="ol"){let Et=be.path||[],Nt=jt.filter(qr=>qr.tagName!=="li"||!qr.path?!1:FWr(Et,qr.path)),Dt=[],Tt=[];for(let qr of Nt){let zr=qr.path||[],ji=jt.filter(kn=>!kn.path||kn===qr?!1:Yit(zr,kn.path)).filter(kn=>kn.innerText&&kn.innerText.trim().length>0).sort((kn,jn)=>{let wn=kn.position?.top??Number.MAX_SAFE_INTEGER,Jn=jn.position?.top??Number.MAX_SAFE_INTEGER;return wn!==Jn?wn-Jn:(kn.path?.length??0)-(jn.path?.length??0)}),gi=!!(qr.innerText&&qr.innerText.trim().length>0)?qr:ji[0];if(!gi){Tt.push(zr);continue}let Gr={...gi,marker:gi.marker||qr.marker};Dt.push(Gr),Tt.push(zr)}if(Dt.length>0)jt=jt.filter(qr=>qr.path?!Tt.some(zr=>Yit(zr,qr.path)):!0),be.relatedElements=Dt;else{let qr=jt.filter(zr=>zr.tagName==="li"&&!!zr.marker);jt=jt.filter(zr=>!(zr.tagName==="li"&&zr.marker)),be.relatedElements=qr}}be.hasImmediateUnwrappedText&&(be.relatedElements=jt,jt=[]),H.push(be),H.push(...jt)}let X=p?.color;if(s===0){let Te=H.filter(Ue=>Ue.position&&Ue.position.left===0&&Ue.position.top===0&&Ue.position.width===r.width&&Ue.position.height===r.height);for(let Ue of Te)Ue.background&&Ue.background.color&&(X=Ue.background.color)}let ge=s===0?H.filter(Te=>{let Ue=Te.background&&Te.background.color,be=Te.border&&Te.border.color,ut=Te.shadow&&Te.shadow.color,We=Te.innerText&&Te.innerText.trim().length>0,st=Te.imageSrc,or=Te.tagName==="svg",gt=Te.tagName==="canvas",jt=Te.tagName==="table",Et=Te.relatedElements&&Te.relatedElements.length>0,Nt=Ue||be||ut||We,Dt=st||or||gt||jt||Te.hasGradient||Et;return Nt||Dt}):H;if(s===0){let Te=ge.sort((be,ut)=>{let We=be.zPath||[],st=ut.zPath||[],or=Math.max(We.length,st.length);for(let zr=0;zr(be.shadow&&be.shadow.color&&(!be.background||!be.background.color)&&X&&(be.background={color:X,opacity:void 0}),be)),{elements:Te,backgroundColor:X}}else return{elements:ge,backgroundColor:X}}async function NWr(a){return await a.evaluate(r=>{let s=Array.from(r.childNodes);for(let c of s)if(c.nodeType===Node.TEXT_NODE&&(c.textContent??"").trim().length>0)return!0;return!1})}async function qjt(a,r){let s=J=>new Promise(H=>setTimeout(H,J)),c=`[data-pptx-element-identifier="${r.identifier}"]`,f=await a.$(c);if(!f){f=a;for(let J of r.path){if(!f)break;f=(await f.$$(":scope > *"))[J]||null}if(!f)throw new Error(`Element at path [${r.path.join(",")}] not found for screenshot`)}let p=!!(r.includeChildrenInScreenshot??!1),C=!!(r.excludeTextInScreenshot??!1),b=`__pptx_visible_${Date.now()}_${Math.random().toString(36).slice(2)}`,N=null,L="init",O=p?"1":"0",j=C?"1":"0",k=Number.parseInt(process.env.PPTX_SCREENSHOT_RENDER_WAIT_MS||"2500",10),R=100;console.log(`[Export] [screenshotElement] element=${r.identifier} tagName=${r.tagName} path=${JSON.stringify(r.path)} includeChildren=${O} excludeText=${j}`);try{let J=f.frame;if(!J&&f.executionContext){let Ue=f.executionContext(),be=Ue&&Ue.frame;typeof be=="function"?J=be.call(Ue):be&&(J=be)}let H=J?J.page?.()??J.page:null,X=H?await H.createCDPSession():null;if(X)try{await X.send("Emulation.setDefaultBackgroundColorOverride",{color:{r:0,g:0,b:0,a:0}})}catch{}let ge=async()=>{try{return await f.evaluate(be=>be.isConnected===!0?1:0)===1}catch{return!1}},Te=async()=>{if(!(r.tagName==="svg"||r.tagName==="canvas")||!H)return;let be=Date.now();for(;Date.now()-be{let or=st,gt=or.getBoundingClientRect(),jt=window.getComputedStyle(or),Et=or.tagName.toLowerCase(),Nt=!0;if(Et==="svg"){let Dt=or;Nt=!!Dt.querySelector("path,rect,circle,ellipse,line,polyline,polygon,text,tspan,use,image")||Dt.childElementCount>0}return{width:gt.width,height:gt.height,display:jt.display,visibility:jt.visibility,opacity:jt.opacity,hasRenderableContent:Nt}});if(ut.display!=="none"&&ut.visibility!=="hidden"&&Number.parseFloat(ut.opacity||"1")>0&&ut.width>4&&ut.height>4&&ut.hasRenderableContent){await H.evaluate(()=>new Promise(st=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>st())})}));return}await s(R)}console.warn(`[Export] [screenshotElement] render wait timeout for ${r.identifier} (${r.tagName})`)};for(let Ue=0;Ue<2;Ue++){if(L="isConnected",console.log("[Export] [screenshotElement] step: isConnected"),!await ge()){if(H&&Ue===0)try{await s(200);continue}catch{}throw new Error("Target node is detached from document before screenshot")}L="inject",console.log(`[Export] [screenshotElement] step: inject (marker, includeChildren=${O}, excludeText=${j})`);try{N=b,await f.evaluate((be,ut,We,st)=>{let or=be.ownerDocument||document,gt=String(We)==="1",jt=String(st)==="1";if(be.tagName.toLowerCase()==="svg"){let zr=be,bt=Array.from(zr.querySelectorAll("[id]")),ji=new Map;for(let Jn of bt){let Jr=Jn.getAttribute("id");if(!Jr)continue;let Ps=`${ut}__${Jr}`;ji.set(Jr,Ps)}bt.forEach(Jn=>{let Jr=Jn.getAttribute("id");if(!Jr)return;let Ps=ji.get(Jr);Ps&&Ps!==Jr&&Jn.setAttribute("id",Ps)});let Yr=["fill","stroke","filter","clip-path","mask","marker-start","marker-mid","marker-end","href","xlink:href"],gi=Jn=>Jn.replace(/url\(#([^\)]+)\)/g,(Jr,Ps)=>{let po=ji.get(Ps);return po?`url(#${po})`:Jr}),Gr=Array.from(zr.querySelectorAll("*"));for(let Jn of Gr){for(let Ps of Yr){let po=Jn.getAttribute(Ps);po&&po.includes("url(#")&&Jn.setAttribute(Ps,gi(po))}let Jr=Jn.getAttribute("style");Jr&&Jr.includes("url(#")&&Jn.setAttribute("style",gi(Jr))}let kn=Array.from(zr.querySelectorAll("style"));for(let Jn of kn)Jn.textContent&&Jn.textContent.includes("url(#")&&(Jn.textContent=gi(Jn.textContent));let jn=["fill","stroke","stop-color"],wn=[zr,...Array.from(zr.querySelectorAll("*"))];for(let Jn of wn){let Jr=window.getComputedStyle(Jn);for(let Ps of jn)if((Jn.getAttribute(Ps)||Jn.style?.getPropertyValue(Ps)||"").includes("var(")){let Zn=Jr.getPropertyValue(Ps)||Jr[Ps];Zn&&Zn!=="none"&&Jn.setAttribute(Ps,Zn)}}}or.body.setAttribute("data-pptx-scope",ut);let Nt=or.createElement("style");Nt.setAttribute("data-pptx-style",ut),Nt.textContent=` - html, body { background: transparent !important; } - /* Hide within the active slide scope except the target and its ancestors */ - [data-pptx-scope="${ut}"] *:not([data-pptx-visible="${ut}"]):not([data-pptx-ancestor="${ut}"]) { - opacity: 0 !important; - pointer-events: none !important; - } - /* Ensure marked nodes render fully */ - [data-pptx-visible="${ut}"], [data-pptx-ancestor="${ut}"] { - visibility: visible !important; - } - /* Ancestors remain visible for layout but do not paint backgrounds */ - [data-pptx-ancestor="${ut}"] { - background: none !important; - background-color: transparent !important; - background-image: none !important; - box-shadow: none !important; - border-color: transparent !important; - outline: none !important; - } - [data-pptx-ancestor="${ut}"]::before, - [data-pptx-ancestor="${ut}"]::after { - background: none !important; - background-color: transparent !important; - background-image: none !important; - box-shadow: none !important; - border-color: transparent !important; - outline: none !important; - } - /* When excluding text, force text to be transparent within the target scope */ - [data-pptx-exclude-text="${ut}"], - [data-pptx-exclude-text="${ut}"] *, - [data-pptx-exclude-text="${ut}"]::before, - [data-pptx-exclude-text="${ut}"]::after, - [data-pptx-exclude-text="${ut}"] *::before, - [data-pptx-exclude-text="${ut}"] *::after { - color: transparent !important; - -webkit-text-fill-color: transparent !important; - text-shadow: none !important; - } - [data-pptx-exclude-text="${ut}"] svg text, - [data-pptx-exclude-text="${ut}"] svg tspan, - [data-pptx-exclude-text="${ut}"] svg tref, - [data-pptx-exclude-text="${ut}"] svg textPath { - fill: transparent !important; - stroke: transparent !important; - } - [data-pptx-hidden="${ut}"] { - opacity: 0 !important; - visibility: hidden !important; - } - `,or.head.appendChild(Nt);let Dt=zr=>{zr.setAttribute("data-pptx-visible",ut)};Dt(be),gt&&be.querySelectorAll("*").forEach(zr=>Dt(zr)),jt&&be.setAttribute("data-pptx-exclude-text",ut);let Tt=be.parentElement,qr=be;for(;Tt;){Tt.setAttribute("data-pptx-ancestor",ut);let bt=Array.from(Tt.children);for(let ji of bt){if(ji===qr||ji.getAttribute("data-pptx-hidden")===ut)continue;let Yr=ji.style.getPropertyValue("opacity"),gi=ji.style.getPropertyPriority("opacity"),Gr=ji.style.getPropertyValue("visibility"),kn=ji.style.getPropertyPriority("visibility");Yr&&ji.setAttribute("data-pptx-prev-opacity",Yr),gi&&ji.setAttribute("data-pptx-prev-opacity-priority",gi),Gr&&ji.setAttribute("data-pptx-prev-visibility",Gr),kn&&ji.setAttribute("data-pptx-prev-visibility-priority",kn),ji.setAttribute("data-pptx-hidden",ut),ji.style.setProperty("opacity","0","important"),ji.style.setProperty("visibility","hidden","important")}qr=Tt,Tt=Tt.parentElement}},b,p?"1":"0",C?"1":"0"),console.log("[Export] [screenshotElement] step: inject done");break}catch(be){let ut=String(be?.message||be||"");if((/detached/i.test(ut)||/Node is detached/i.test(ut))&&H&&Ue===0)try{await s(200);continue}catch{}throw be}}await Te();try{L="screenshot",console.log("[Export] [screenshotElement] step: screenshot");let Ue=null;for(let be=0;be<2;be++)try{Ue=await f.screenshot({type:"png",omitBackground:!0}),console.log("[Export] [screenshotElement] step: screenshot done");break}catch(ut){if(be===0){let We=String(ut?.message||ut||"");if((/detached/i.test(We)||/Node is detached/i.test(We))&&H)try{await s(200);continue}catch{}}throw ut}if(!Ue)throw new Error("Failed to capture screenshot buffer");if(r.position&&typeof r.position.width=="number"&&typeof r.position.height=="number"){let be=typeof r.position.left=="number"?r.position.left:0,ut=typeof r.position.top=="number"?r.position.top:0,We=Math.max(0,Math.round(r.position.width)),st=Math.max(0,Math.round(r.position.height)),or=0,gt=0,jt=We,Et=st;be<0&&(or=Math.min(We-1,Math.max(0,Math.round(-be)))),ut<0&&(gt=Math.min(st-1,Math.max(0,Math.round(-ut))));let Nt=Math.max(0,Math.round(be+We-1280)),Dt=Math.max(0,Math.round(ut+st-720));jt=Math.max(1,jt-or-Nt),Et=Math.max(1,Et-gt-Dt),(or!==0||gt!==0||Nt>0||Dt>0)&&(Ue=await Hjt(Ue,or,gt,jt,Et))}return new Uint8Array(Ue)}finally{if(L="cleanup",console.log("[Export] [screenshotElement] step: cleanup"),N!==null&&H)try{await H.evaluate(Ue=>{let be=document,ut=be.querySelector(`style[data-pptx-style="${Ue}"]`);ut&&ut.parentNode&&ut.parentNode.removeChild(ut),be.querySelectorAll(`[data-pptx-visible="${Ue}"]`).forEach(st=>{st.removeAttribute("data-pptx-visible")}),be.querySelectorAll(`[data-pptx-ancestor="${Ue}"]`).forEach(st=>{st.removeAttribute("data-pptx-ancestor")}),be.querySelectorAll(`[data-pptx-exclude-text="${Ue}"]`).forEach(st=>{st.removeAttribute("data-pptx-exclude-text")}),be.querySelectorAll(`[data-pptx-hidden="${Ue}"]`).forEach(st=>{let or=st,gt=or.getAttribute("data-pptx-prev-opacity"),jt=or.getAttribute("data-pptx-prev-opacity-priority")||void 0;gt!==null?or.style.setProperty("opacity",gt,jt):or.style.removeProperty("opacity");let Et=or.getAttribute("data-pptx-prev-visibility"),Nt=or.getAttribute("data-pptx-prev-visibility-priority")||void 0;Et!==null?or.style.setProperty("visibility",Et,Nt):or.style.removeProperty("visibility"),or.removeAttribute("data-pptx-prev-opacity"),or.removeAttribute("data-pptx-prev-opacity-priority"),or.removeAttribute("data-pptx-prev-visibility"),or.removeAttribute("data-pptx-prev-visibility-priority"),or.removeAttribute("data-pptx-hidden")});let We=be.querySelector(`[data-pptx-scope="${Ue}"]`);return We&&We.removeAttribute("data-pptx-scope"),!0},N),console.log("[Export] [screenshotElement] step: cleanup done")}catch(Ue){console.warn(`[Export] [screenshotElement] cleanup warning: ${Ue?.message||Ue} (element: ${r.identifier}, tagName: ${r.tagName}, path: ${JSON.stringify(r.path)})`)}if(X)try{await X.send("Emulation.setDefaultBackgroundColorOverride",{}),await X.detach()}catch(Ue){console.warn(`[Export] [screenshotElement] cleanup client warning: ${Ue?.message||Ue} (element: ${r.identifier}, tagName: ${r.tagName}, path: ${JSON.stringify(r.path)})`)}}}catch(J){throw console.log(`[Export] [screenshotElement] failed at step=${L} error=${J?.message||J}`),new Error(`[step: ${L}] ${J?.message||J}`)}}var Xit=wc(require("node:path"));async function Wjt(a){let r=await RWr(a),s=await PWr(r);return{slides:await r.$$(":scope > div > div > div > div > div"),speakerNotes:s}}async function RWr(a){let r=await a.$("#presentation-slides-wrapper");if(!r)throw new gm("Presentation slides not found",500);return r}async function PWr(a){return await a.evaluate(r=>Array.from(r.querySelectorAll("[data-speaker-note]")).map(s=>s.getAttribute("data-speaker-note")||""))}async function Yjt(a){let r=[];for(let s of a){let c=await Vit({element:s});r.push(c)}if(process.env.NODE_ENV==="development"){let s=Xit.default.join(process.env.APP_DATA_DIRECTORY,"slides_attributes.json");zit.default.writeFile(s,JSON.stringify(r,null,2))}return r}async function Vjt(a,r,s,c){let f=process.env.PPTX_STRICT_SCREENSHOT==="1";for(let[p,C]of r.entries()){for(let b of C.elements)if(b.shouldScreenshot)try{let N=await qjt(a[p],b);b.imageSrc=Xit.default.join(c,`${b.identifier}.png`),await zit.default.writeFile(b.imageSrc,N)}catch(N){if(console.warn(`[postProcessSlidesAttributes] Skipped screenshot due to error: ${N?.message||N} (element: ${b.identifier}, tagName: ${b.tagName}, path: ${JSON.stringify(b.path)})`),f)throw N;b.skipExport=!0,b.shouldScreenshot=!1}C.speakerNote=s[p]}}var Zit,MWr=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]]),yZ=(Zit=String.fromCodePoint)!==null&&Zit!==void 0?Zit:(a=>{let r="";return a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),r});function $it(a){var r;return a>=55296&&a<=57343||a>1114111?65533:(r=MWr.get(a))!==null&&r!==void 0?r:a}function F2e(a){let r=typeof atob=="function"?atob(a):typeof Buffer.from=="function"?Buffer.from(a,"base64").toString("binary"):new Buffer(a,"base64").toString("binary"),s=r.length&-2,c=new Uint16Array(s/2);for(let f=0,p=0;f=__.ZERO&&a<=__.NINE}function LWr(a){return a>=__.UPPER_A&&a<=__.UPPER_F||a>=__.LOWER_A&&a<=__.LOWER_F}function OWr(a){return a>=__.UPPER_A&&a<=__.UPPER_Z||a>=__.LOWER_A&&a<=__.LOWER_Z||ent(a)}function UWr(a){return a===__.EQUALS||OWr(a)}var n0;(function(a){a[a.EntityStart=0]="EntityStart",a[a.NumericStart=1]="NumericStart",a[a.NumericDecimal=2]="NumericDecimal",a[a.NumericHex=3]="NumericHex",a[a.NamedEntity=4]="NamedEntity"})(n0||(n0={}));var Qy;(function(a){a[a.Legacy=0]="Legacy",a[a.Strict=1]="Strict",a[a.Attribute=2]="Attribute"})(Qy||(Qy={}));var BZ=class{constructor(r,s,c){this.decodeTree=r,this.emitCodePoint=s,this.errors=c,this.state=n0.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Qy.Strict,this.runConsumed=0}startEntity(r){this.decodeMode=r,this.state=n0.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(r,s){switch(this.state){case n0.EntityStart:return r.charCodeAt(s)===__.NUM?(this.state=n0.NumericStart,this.consumed+=1,this.stateNumericStart(r,s+1)):(this.state=n0.NamedEntity,this.stateNamedEntity(r,s));case n0.NumericStart:return this.stateNumericStart(r,s);case n0.NumericDecimal:return this.stateNumericDecimal(r,s);case n0.NumericHex:return this.stateNumericHex(r,s);case n0.NamedEntity:return this.stateNamedEntity(r,s)}}stateNumericStart(r,s){return s>=r.length?-1:(r.charCodeAt(s)|zjt)===__.LOWER_X?(this.state=n0.NumericHex,this.consumed+=1,this.stateNumericHex(r,s+1)):(this.state=n0.NumericDecimal,this.stateNumericDecimal(r,s))}stateNumericHex(r,s){for(;s>14;for(;s>7;if(this.runConsumed===0){let N=f&AE.JUMP_TABLE;if(r.charCodeAt(s)!==N)return this.result===0?0:this.emitNotTerminatedNamedEntity();s++,this.excess++,this.runConsumed++}for(;this.runConsumed=r.length)return-1;let N=this.runConsumed-1,L=c[this.treeIndex+1+(N>>1)],O=N%2===0?L&255:L>>8&255;if(r.charCodeAt(s)!==O)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();s++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(b>>1),f=c[this.treeIndex],p=(f&AE.VALUE_LENGTH)>>14}if(s>=r.length)break;let C=r.charCodeAt(s);if(C===__.SEMI&&p!==0&&(f&AE.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,p,this.consumed+this.excess);if(this.treeIndex=GWr(c,f,this.treeIndex+Math.max(1,p),C),this.treeIndex<0)return this.result===0||this.decodeMode===Qy.Attribute&&(p===0||UWr(C))?0:this.emitNotTerminatedNamedEntity();if(f=c[this.treeIndex],p=(f&AE.VALUE_LENGTH)>>14,p!==0){if(C===__.SEMI)return this.emitNamedEntityData(this.treeIndex,p,this.consumed+this.excess);this.decodeMode!==Qy.Strict&&(f&AE.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}s++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var r;let{result:s,decodeTree:c}=this,f=(c[s]&AE.VALUE_LENGTH)>>14;return this.emitNamedEntityData(s,f,this.consumed),(r=this.errors)===null||r===void 0||r.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(r,s,c){let{decodeTree:f}=this;return this.emitCodePoint(s===1?f[r]&~(AE.VALUE_LENGTH|AE.FLAG13):f[r+1],c),s===3&&this.emitCodePoint(f[r+2],c),c}end(){var r;switch(this.state){case n0.NamedEntity:return this.result!==0&&(this.decodeMode!==Qy.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case n0.NumericDecimal:return this.emitNumericEntity(0,2);case n0.NumericHex:return this.emitNumericEntity(0,3);case n0.NumericStart:return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case n0.EntityStart:return 0}}};function Xjt(a){let r="",s=new BZ(a,c=>r+=yZ(c));return function(f,p){let C=0,b=0;for(;(b=f.indexOf("&",b))>=0;){r+=f.slice(C,b),s.startEntity(p);let L=s.write(f,b+1);if(L<0){C=b+s.end();break}C=b+L,b=L===0?C+1:C}let N=r+f.slice(C);return r="",N}}function GWr(a,r,s,c){let f=(r&AE.BRANCH_LENGTH)>>7,p=r&AE.JUMP_TABLE;if(f===0)return p!==0&&c===p?s:-1;if(p){let L=c-p;return L<0||L>=f?-1:a[s+L]-1}let C=f+1>>1,b=0,N=f-1;for(;b<=N;){let L=b+N>>>1,O=L>>1,k=a[s+O]>>(L&1)*8&255;if(kc)N=L-1;else return a[s+C+L]}return-1}var JWr=Xjt(Ige),HWr=Xjt(Ege);function yge(a,r=Qy.Legacy){return JWr(a,r)}function N2e(a){return HWr(a,Qy.Strict)}var _A;(function(a){a[a.Tab=9]="Tab",a[a.NewLine=10]="NewLine",a[a.FormFeed=12]="FormFeed",a[a.CarriageReturn=13]="CarriageReturn",a[a.Space=32]="Space",a[a.ExclamationMark=33]="ExclamationMark",a[a.Number=35]="Number",a[a.Amp=38]="Amp",a[a.SingleQuote=39]="SingleQuote",a[a.DoubleQuote=34]="DoubleQuote",a[a.Dash=45]="Dash",a[a.Slash=47]="Slash",a[a.Zero=48]="Zero",a[a.Nine=57]="Nine",a[a.Semi=59]="Semi",a[a.Lt=60]="Lt",a[a.Eq=61]="Eq",a[a.Gt=62]="Gt",a[a.Questionmark=63]="Questionmark",a[a.UpperA=65]="UpperA",a[a.LowerA=97]="LowerA",a[a.UpperF=70]="UpperF",a[a.LowerF=102]="LowerF",a[a.UpperZ=90]="UpperZ",a[a.LowerZ=122]="LowerZ",a[a.LowerX=120]="LowerX",a[a.OpeningSquareBracket=91]="OpeningSquareBracket"})(_A||(_A={}));var fa;(function(a){a[a.Text=1]="Text",a[a.BeforeTagName=2]="BeforeTagName",a[a.InTagName=3]="InTagName",a[a.InSelfClosingTag=4]="InSelfClosingTag",a[a.BeforeClosingTagName=5]="BeforeClosingTagName",a[a.InClosingTagName=6]="InClosingTagName",a[a.AfterClosingTagName=7]="AfterClosingTagName",a[a.BeforeAttributeName=8]="BeforeAttributeName",a[a.InAttributeName=9]="InAttributeName",a[a.AfterAttributeName=10]="AfterAttributeName",a[a.BeforeAttributeValue=11]="BeforeAttributeValue",a[a.InAttributeValueDq=12]="InAttributeValueDq",a[a.InAttributeValueSq=13]="InAttributeValueSq",a[a.InAttributeValueNq=14]="InAttributeValueNq",a[a.BeforeDeclaration=15]="BeforeDeclaration",a[a.InDeclaration=16]="InDeclaration",a[a.InProcessingInstruction=17]="InProcessingInstruction",a[a.BeforeComment=18]="BeforeComment",a[a.CDATASequence=19]="CDATASequence",a[a.InSpecialComment=20]="InSpecialComment",a[a.InCommentLike=21]="InCommentLike",a[a.BeforeSpecialS=22]="BeforeSpecialS",a[a.BeforeSpecialT=23]="BeforeSpecialT",a[a.SpecialStartSequence=24]="SpecialStartSequence",a[a.InSpecialTag=25]="InSpecialTag",a[a.InEntity=26]="InEntity"})(fa||(fa={}));function xR(a){return a===_A.Space||a===_A.NewLine||a===_A.Tab||a===_A.FormFeed||a===_A.CarriageReturn}function R2e(a){return a===_A.Slash||a===_A.Gt||xR(a)}function jWr(a){return a>=_A.LowerA&&a<=_A.LowerZ||a>=_A.UpperA&&a<=_A.UpperZ}var cb;(function(a){a[a.NoValue=0]="NoValue",a[a.Unquoted=1]="Unquoted",a[a.Single=2]="Single",a[a.Double=3]="Double"})(cb||(cb={}));var dm={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]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])},QZ=class{constructor({xmlMode:r=!1,decodeEntities:s=!0},c){this.cbs=c,this.state=fa.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=fa.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=r,this.decodeEntities=s,this.entityDecoder=new BZ(r?Ege:Ige,(f,p)=>this.emitCodePoint(f,p))}reset(){this.state=fa.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=fa.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(r){this.offset+=this.buffer.length,this.buffer=r,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=fa.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&r===_A.Amp&&this.startEntity()}stateSpecialStartSequence(r){let s=this.sequenceIndex===this.currentSequence.length;if(!(s?R2e(r):(r|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!s){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=fa.InTagName,this.stateInTagName(r)}stateInSpecialTag(r){if(this.sequenceIndex===this.currentSequence.length){if(r===_A.Gt||xR(r)){let s=this.index-this.currentSequence.length;if(this.sectionStart=0)this.state=this.baseState,s===0&&(this.index-=1);else{if(r=r||(this.state===fa.InCommentLike?this.currentSequence===dm.CdataEnd?this.cbs.oncdata(this.sectionStart,r,0):this.cbs.oncomment(this.sectionStart,r,0):this.state===fa.InTagName||this.state===fa.BeforeAttributeName||this.state===fa.BeforeAttributeValue||this.state===fa.AfterAttributeName||this.state===fa.InAttributeName||this.state===fa.InAttributeValueSq||this.state===fa.InAttributeValueDq||this.state===fa.InAttributeValueNq||this.state===fa.InClosingTagName||this.cbs.ontext(this.sectionStart,r))}emitCodePoint(r,s){this.baseState!==fa.Text&&this.baseState!==fa.InSpecialTag?(this.sectionStart0&&C.has(this.stack[0]);){let b=this.stack.shift();(c=(s=this.cbs).onclosetag)===null||c===void 0||c.call(s,b,!0)}this.isVoidElement(r)||(this.stack.unshift(r),this.htmlMode&&(tKt.has(r)?this.foreignContext.unshift(!0):rKt.has(r)&&this.foreignContext.unshift(!1))),(p=(f=this.cbs).onopentagname)===null||p===void 0||p.call(f,r),this.cbs.onopentag&&(this.attribs={})}endOpenTag(r){var s,c;this.startIndex=this.openTagStart,this.attribs&&((c=(s=this.cbs).onopentag)===null||c===void 0||c.call(s,this.tagname,this.attribs,r),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(r){this.endIndex=r,this.endOpenTag(!1),this.startIndex=r+1}onclosetag(r,s){var c,f,p,C,b,N,L,O;this.endIndex=s;let j=this.getSlice(r,s);if(this.lowerCaseTagNames&&(j=j.toLowerCase()),this.htmlMode&&(tKt.has(j)||rKt.has(j))&&this.foreignContext.shift(),this.isVoidElement(j))this.htmlMode&&j==="br"&&((C=(p=this.cbs).onopentagname)===null||C===void 0||C.call(p,"br"),(N=(b=this.cbs).onopentag)===null||N===void 0||N.call(b,"br",{},!0),(O=(L=this.cbs).onclosetag)===null||O===void 0||O.call(L,"br",!1));else{let k=this.stack.indexOf(j);if(k!==-1)for(let R=0;R<=k;R++){let J=this.stack.shift();(f=(c=this.cbs).onclosetag)===null||f===void 0||f.call(c,J,R!==k)}else this.htmlMode&&j==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=s+1}onselfclosingtag(r){this.endIndex=r,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=r+1):this.onopentagend(r)}closeCurrentTag(r){var s,c;let f=this.tagname;this.endOpenTag(r),this.stack[0]===f&&((c=(s=this.cbs).onclosetag)===null||c===void 0||c.call(s,f,!r),this.stack.shift())}onattribname(r,s){this.startIndex=r;let c=this.getSlice(r,s);this.attribname=this.lowerCaseAttributeNames?c.toLowerCase():c}onattribdata(r,s){this.attribvalue+=this.getSlice(r,s)}onattribentity(r){this.attribvalue+=yZ(r)}onattribend(r,s){var c,f;this.endIndex=s,(f=(c=this.cbs).onattribute)===null||f===void 0||f.call(c,this.attribname,this.attribvalue,r===cb.Double?'"':r===cb.Single?"'":r===cb.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(r){let s=r.search(WWr),c=s<0?r:r.substr(0,s);return this.lowerCaseTagNames&&(c=c.toLowerCase()),c}ondeclaration(r,s){this.endIndex=s;let c=this.getSlice(r,s);if(this.cbs.onprocessinginstruction){let f=this.getInstructionName(c);this.cbs.onprocessinginstruction(`!${f}`,`!${c}`)}this.startIndex=s+1}onprocessinginstruction(r,s){this.endIndex=s;let c=this.getSlice(r,s);if(this.cbs.onprocessinginstruction){let f=this.getInstructionName(c);this.cbs.onprocessinginstruction(`?${f}`,`?${c}`)}this.startIndex=s+1}oncomment(r,s,c){var f,p,C,b;this.endIndex=s,(p=(f=this.cbs).oncomment)===null||p===void 0||p.call(f,this.getSlice(r,s-c)),(b=(C=this.cbs).oncommentend)===null||b===void 0||b.call(C),this.startIndex=s+1}oncdata(r,s,c){var f,p,C,b,N,L,O,j,k,R;this.endIndex=s;let J=this.getSlice(r,s-c);!this.htmlMode||this.options.recognizeCDATA?((p=(f=this.cbs).oncdatastart)===null||p===void 0||p.call(f),(b=(C=this.cbs).ontext)===null||b===void 0||b.call(C,J),(L=(N=this.cbs).oncdataend)===null||L===void 0||L.call(N)):((j=(O=this.cbs).oncomment)===null||j===void 0||j.call(O,`[CDATA[${J}]]`),(R=(k=this.cbs).oncommentend)===null||R===void 0||R.call(k)),this.startIndex=s+1}onend(){var r,s;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let c=0;c=this.buffers[0].length;)this.shiftBuffer();let c=this.buffers[0].slice(r-this.bufferOffset,s-this.bufferOffset);for(;s-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),c+=this.buffers[0].slice(0,s-this.bufferOffset);return c}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(r){var s,c;if(this.ended){(c=(s=this.cbs).onerror)===null||c===void 0||c.call(s,new Error(".write() after done!"));return}this.buffers.push(r),this.tokenizer.running&&(this.tokenizer.write(r),this.writeIndex++)}end(r){var s,c;if(this.ended){(c=(s=this.cbs).onerror)===null||c===void 0||c.call(s,new Error(".end() after done!"));return}r&&this.write(r),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex\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(a=>a.charCodeAt(0)));var sKt=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(a=>a.charCodeAt(0)));var tnt,iYr=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]]),rnt=(tnt=String.fromCodePoint)!==null&&tnt!==void 0?tnt:function(a){let r="";return a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),r};function int(a){var r;return a>=55296&&a<=57343||a>1114111?65533:(r=iYr.get(a))!==null&&r!==void 0?r:a}var a0;(function(a){a[a.NUM=35]="NUM",a[a.SEMI=59]="SEMI",a[a.EQUALS=61]="EQUALS",a[a.ZERO=48]="ZERO",a[a.NINE=57]="NINE",a[a.LOWER_A=97]="LOWER_A",a[a.LOWER_F=102]="LOWER_F",a[a.LOWER_X=120]="LOWER_X",a[a.LOWER_Z=122]="LOWER_Z",a[a.UPPER_A=65]="UPPER_A",a[a.UPPER_F=70]="UPPER_F",a[a.UPPER_Z=90]="UPPER_Z"})(a0||(a0={}));var nYr=32,R8;(function(a){a[a.VALUE_LENGTH=49152]="VALUE_LENGTH",a[a.BRANCH_LENGTH=16256]="BRANCH_LENGTH",a[a.JUMP_TABLE=127]="JUMP_TABLE"})(R8||(R8={}));function nnt(a){return a>=a0.ZERO&&a<=a0.NINE}function sYr(a){return a>=a0.UPPER_A&&a<=a0.UPPER_F||a>=a0.LOWER_A&&a<=a0.LOWER_F}function aYr(a){return a>=a0.UPPER_A&&a<=a0.UPPER_Z||a>=a0.LOWER_A&&a<=a0.LOWER_Z||nnt(a)}function oYr(a){return a===a0.EQUALS||aYr(a)}var s0;(function(a){a[a.EntityStart=0]="EntityStart",a[a.NumericStart=1]="NumericStart",a[a.NumericDecimal=2]="NumericDecimal",a[a.NumericHex=3]="NumericHex",a[a.NamedEntity=4]="NamedEntity"})(s0||(s0={}));var kR;(function(a){a[a.Legacy=0]="Legacy",a[a.Strict=1]="Strict",a[a.Attribute=2]="Attribute"})(kR||(kR={}));var P2e=class{constructor(r,s,c){this.decodeTree=r,this.emitCodePoint=s,this.errors=c,this.state=s0.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=kR.Strict}startEntity(r){this.decodeMode=r,this.state=s0.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(r,s){switch(this.state){case s0.EntityStart:return r.charCodeAt(s)===a0.NUM?(this.state=s0.NumericStart,this.consumed+=1,this.stateNumericStart(r,s+1)):(this.state=s0.NamedEntity,this.stateNamedEntity(r,s));case s0.NumericStart:return this.stateNumericStart(r,s);case s0.NumericDecimal:return this.stateNumericDecimal(r,s);case s0.NumericHex:return this.stateNumericHex(r,s);case s0.NamedEntity:return this.stateNamedEntity(r,s)}}stateNumericStart(r,s){return s>=r.length?-1:(r.charCodeAt(s)|nYr)===a0.LOWER_X?(this.state=s0.NumericHex,this.consumed+=1,this.stateNumericHex(r,s+1)):(this.state=s0.NumericDecimal,this.stateNumericDecimal(r,s))}addToNumericResult(r,s,c,f){if(s!==c){let p=c-s;this.result=this.result*Math.pow(f,p)+parseInt(r.substr(s,p),f),this.consumed+=p}}stateNumericHex(r,s){let c=s;for(;s>14;for(;s>14,p!==0){if(C===a0.SEMI)return this.emitNamedEntityData(this.treeIndex,p,this.consumed+this.excess);this.decodeMode!==kR.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var r;let{result:s,decodeTree:c}=this,f=(c[s]&R8.VALUE_LENGTH)>>14;return this.emitNamedEntityData(s,f,this.consumed),(r=this.errors)===null||r===void 0||r.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(r,s,c){let{decodeTree:f}=this;return this.emitCodePoint(s===1?f[r]&~R8.VALUE_LENGTH:f[r+1],c),s===3&&this.emitCodePoint(f[r+2],c),c}end(){var r;switch(this.state){case s0.NamedEntity:return this.result!==0&&(this.decodeMode!==kR.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case s0.NumericDecimal:return this.emitNumericEntity(0,2);case s0.NumericHex:return this.emitNumericEntity(0,3);case s0.NumericStart:return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case s0.EntityStart:return 0}}};function aKt(a){let r="",s=new P2e(a,c=>r+=rnt(c));return function(f,p){let C=0,b=0;for(;(b=f.indexOf("&",b))>=0;){r+=f.slice(C,b),s.startEntity(p);let L=s.write(f,b+1);if(L<0){C=b+s.end();break}C=b+L,b=L===0?C+1:C}let N=r+f.slice(C);return r="",N}}function cYr(a,r,s,c){let f=(r&R8.BRANCH_LENGTH)>>7,p=r&R8.JUMP_TABLE;if(f===0)return p!==0&&c===p?s:-1;if(p){let N=c-p;return N<0||N>=f?-1:a[s+N]-1}let C=s,b=C+f-1;for(;C<=b;){let N=C+b>>>1,L=a[N];if(Lc)b=N-1;else return a[N+f]}return-1}var Gyi=aKt(nKt),Jyi=aKt(sKt);function M2e(a){for(let r=1;ra.codePointAt(r):(a,r)=>(a.charCodeAt(r)&64512)===55296?(a.charCodeAt(r)-55296)*1024+a.charCodeAt(r+1)-56320+65536:a.charCodeAt(r);function snt(a,r){return function(c){let f,p=0,C="";for(;f=a.exec(c);)p!==f.index&&(C+=c.substring(p,f.index)),C+=r.get(f[0].charCodeAt(0)),p=f.index+1;return C+c.substring(p)}}var oKt=snt(/[&<>'"]/g,uYr),ant=snt(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),ont=snt(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]));var cKt;(function(a){a[a.XML=0]="XML",a[a.HTML=1]="HTML"})(cKt||(cKt={}));var AKt;(function(a){a[a.UTF8=0]="UTF8",a[a.ASCII=1]="ASCII",a[a.Extensive=2]="Extensive",a[a.Attribute=3]="Attribute",a[a.Text=4]="Text"})(AKt||(AKt={}));var gYr=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(a=>[a.toLowerCase(),a])),dYr=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(a=>[a.toLowerCase(),a]));var dKt;(function(a){a[a.DISCONNECTED=1]="DISCONNECTED",a[a.PRECEDING=2]="PRECEDING",a[a.FOLLOWING=4]="FOLLOWING",a[a.CONTAINS=8]="CONTAINS",a[a.CONTAINED_BY=16]="CONTAINED_BY"})(dKt||(dKt={}));var CYr=String.prototype.codePointAt==null?(a,r)=>(a.charCodeAt(r)&64512)===55296?(a.charCodeAt(r)-55296)*1024+a.charCodeAt(r+1)-56320+65536:a.charCodeAt(r):(a,r)=>a.codePointAt(r);var U2e;(function(a){a[a.XML=0]="XML",a[a.HTML=1]="HTML"})(U2e||(U2e={}));var _Kt;(function(a){a[a.UTF8=0]="UTF8",a[a.ASCII=1]="ASCII",a[a.Extensive=2]="Extensive",a[a.Attribute=3]="Attribute",a[a.Text=4]="Text"})(_Kt||(_Kt={}));function mKt(a,r=U2e.XML){if((typeof r=="number"?r:r.level)===U2e.HTML){let c=typeof r=="object"?r.mode:void 0;return yge(a,c)}return N2e(a)}var Bge={name:"Inter",size:16,font_weight:400,italic:!1,color:"000000"};function vYr(a){return{name:a?.name??Bge.name,size:a?.size??Bge.size,font_weight:a?.font_weight??Bge.font_weight,italic:a?.italic??Bge.italic,color:a?.color??Bge.color,underline:a?.underline,strike:a?.strike}}function G2e(a){return a?mKt(a):""}function wYr(a){let r=a.replace(/\r\n?/g,` -`);return r=r.replace(/>\s*\n\s*<"),r=r.replace(/\n/g,"
"),r=r.replace(/ ?/gi," "),r.replace(/&(?!#\d+;|#x[0-9A-Fa-f]+;|[A-Za-z][A-Za-z0-9]+;)/g,"&")}function bYr(a,r){if(!r)return a;switch(r){case"uppercase":return a.toUpperCase();case"lowercase":return a.toLowerCase();case"capitalize":return a.replace(/\b\w/g,s=>s.toUpperCase());default:return a}}function DYr(a,r){let s=vYr(a),c=f=>r.some(p=>f.includes(p.toLowerCase()));return c(["strong","b"])&&(s.font_weight=700),c(["em","i"])&&(s.italic=!0),c(["u"])&&(s.underline=!0),c(["s","strike","del"])&&(s.strike=!0),c(["code"])&&(s.name="Courier New"),s}function IKt(a,r,s){if(!a)return[];let c=wYr(a),f=[],p=[],C=new j9({onopentag(b){let N=b.toLowerCase();if(N==="br"){f.push({text:` -`});return}p.push(N)},onclosetag(b){let N=b.toLowerCase();for(let L=p.length-1;L>=0;L--)if(p[L]===N){p.splice(L,1);break}},ontext(b){if(!b)return;let N=bYr(b,s);if(!N)return;let L=G2e(N);L&&f.push({text:L,font:DYr(r,p)})}},{decodeEntities:!0});return C.write(c),C.end(),f.filter(b=>b.text.length>0)}var SYr=new Set(["a","abbr","b","br","code","em","i","img","mark","small","span","strong","sub","sup","time","u","wbr"]);function xYr(a){return a?SYr.has(a.toLowerCase()):!1}function EKt(a){if(!a.relatedElements||a.relatedElements.length===0)return[];let r=a.path||[];return a.relatedElements.filter(s=>{let c=s.path||[];if(c.length!==r.length+1)return!1;for(let f=0;f(s.path[s.path.length-1]||0)-(c.path[c.path.length-1]||0))}function kYr(a){if(!a)return"";let r=0,s="",c=new j9({onopentag(f){if(f.toLowerCase()==="br"&&r===0){s+=` -`;return}r+=1},onclosetag(){r=Math.max(0,r-1)},ontext(f){r===0&&f&&(s+=f)}},{decodeEntities:!0});return c.write(a),c.end(),G2e(s).trim()}function TYr(a,r){if(!a.position)return null;let s=a.padding?.left??0,c=a.padding?.right??0,f=a.padding?.top??0,p=a.padding?.bottom??0,C=a.font?.size??16,b=a.font?.lineHeight??Math.round(C*1.2),N=a.position.left+s,L=Math.max(1,a.position.width-s-c),O=a.position.top+f;if(r.length>0){let k=r.filter(R=>R.position).sort((R,J)=>(R.position.top??0)-(J.position.top??0));if(k.length>0){let R=[];for(let X=0;X=0&&R.push(Ue)}let J=R.length>0?Math.round(R.reduce((X,ge)=>X+ge,0)/R.length):0,H=k[k.length-1].position;O=H.top+H.height+J}}let j=a.position.top+a.position.height-p-b;return O>j&&(O=Math.max(a.position.top+f,j)),{left:N,top:O,width:L,height:b}}function FYr(a,r){if(a.length>=r.length)return!1;for(let s=0;ss.path&&s.position);return r.length===0?[]:r.filter(s=>{let c=s.path;return!r.some(f=>f!==s&&FYr(c,f.path))})}function yKt(a){if(!a.hasImmediateUnwrappedText||!a.relatedElements||a.relatedElements.length===0||!a.innerText)return null;let r=EKt(a);if(r.length===0)return null;let s="PPTX_BR",c=a.innerText;c=c.replace(/(\r?\n)[^\S\r\n]+(?=<)/g,"$1").replace(/>\s+(?=<)/g,"><").replace(/\r?\n(?=\s*<)/g,""),c=c.replace(//gi,s);let f=[],p=[],C=[],b=H=>{let X=!!(H.border?.color&&(H.border?.width??0)>0),ge=!!H.background?.color,Te=!!H.imageSrc,Ue=!!(H.hasGradient||H.shape||H.shouldScreenshot);return ge||X||Te||Ue};for(let H=0;H]+>/g,""),be=b(X)||Ue.length===0,ut=`PPTX_RUN_${H}`;if(!be&&Ue){let st=c.indexOf(Ue);if(st!==-1){c=c.slice(0,st)+ut+c.slice(st+Ue.length),f.push(ut),p.push(X),C.push("run");continue}}let We=!1;if(Ue){let st=c.indexOf(Ue);st!==-1&&(c=c.slice(0,st)+ut+c.slice(st+Ue.length),We=!0)}if(!We){let st=(X.tagName||"span").toLowerCase();try{let or=new RegExp(`<${st}[^>]*>`,"i");or.test(c)&&(c=c.replace(or,ut),We=!0)}catch{}}We||(c=ut+c),f.push(ut),p.push(X),C.push("shape")}let N=c.replace(/<[^>]+>/g,"").replace(/^[\s\u200B\u200C\u200D\uFEFF]+|[\s\u200B\u200C\u200D\uFEFF]+$/g,""),L=[];if(f.length===0)L.push({text:N});else{let H=0;for(;HH&&L.push({text:N.slice(H,X)});let Te=f.indexOf(ge);Te!==-1&&L.push({child:p[Te],kind:C[Te]}),H=X+ge.length}}let O=[];for(let H of L)if(H.text&&H.text.includes(s)){let X=H.text.split(s);X.forEach((ge,Te)=>{ge&&O.push({text:ge}),Te{!H&&k.length===0||(j.push(k),k=[])};for(let H of O){if(H.hardBreak){J(!0);continue}if(H.child)if(H.kind==="run"){let X=G2e((H.child.innerText||"").replace(/<[^>]+>/g,"").replace(/^[\s\u200B\u200C\u200D\uFEFF]+|[\s\u200B\u200C\u200D\uFEFF]+$/g,""));if(X){let ge=Qge(H.child,X,a);ge&&k.push({text:ge,font:J2e(H.child)})}}else{let X=a.font?.size??H.child.font?.size??16,ge=a.font?.letterSpacing??0,Te=H.child.position?.width??0,be=((We,st,or)=>{let gt=[[1,"\u2003"],[.5,"\u2002"],[.3333333333333333,"\u2004"],[.25,"\u2005"],[.16666666666666666,"\u2006"],[.2,"\u2009"],[.08333333333333333,"\u200A"]],jt=Math.max(0,We),Et="";for(let[Nt,Dt]of gt){let Tt=Nt*st+or;if(Tt<=0)continue;let qr=Math.floor(jt/Tt);qr>0&&(Et+=Dt.repeat(qr),jt-=qr*Tt)}return Et||(Et=" "),Et})(Te,X,ge);k.push({text:be});let ut=lnt(H.child)||[];ut.length>0&&R.push(...ut)}else if(H.text&&H.text.length>0){let X=G2e(H.text),ge=Qge(a,X);ge&&k.push({text:ge})}}return(k.length>0||j.length===0)&&J(!0),{paragraphRuns:j,extraShapes:R}}function RYr(a){if(a.length<=1)return a[0]?[...a[0]]:[];let r=[];return a.forEach((s,c)=>{r.push(...s),c{let s=[];for(let f of r.elements){let p=lnt(f);p&&s.push(...p)}let c={shapes:s,note:r.speakerNote};return r.backgroundColor&&(c.background={color:r.backgroundColor,opacity:1}),c})}function lnt(a){if(a.skipExport)return[];if(!a.position)return[];if(a.relatedElements&&a.relatedElements.length>0)return PYr(a);if(a.imageSrc)return wKt(a);let s=a.background?.color||a.border?.color,c=a.borderRadius&&a.borderRadius.some(f=>f>0);return a.innerText?s&&c&&!a.isExcludedTextChild?CKt(a):Cnt(a):a.tagName==="hr"?OYr(a):CKt(a)}function QKt(a){if(a)switch(a.toLowerCase()){case"left":return 1;case"center":return 2;case"right":return 3;case"justify":return 4;default:return 1}}function fnt(a){if(a)switch(a.toLowerCase()){case"top":return 1;case"middle":return 3;case"bottom":return 4;default:return}}function gnt(a){return a.padding&&(a.padding.top||a.padding.bottom||a.padding.left||a.padding.right)?{top:Math.round(a.padding?.top??0),bottom:Math.round(a.padding?.bottom??0),left:Math.round(a.padding?.left??0),right:Math.round(a.padding?.right??0)}:void 0}function wZ(a){return{left:a.position?.left??0,top:a.position?.top??0,width:a.position?.width??0,height:a.position?.height??0}}function dnt(a){return a.background?.color?{color:a.background.color,opacity:Math.min(a.opacity??1,a.background.opacity??1)}:void 0}function pnt(a){return a.border?.color?{color:a.border.color,thickness:a.border.width??1,opacity:Math.min(a.opacity??1,a.border.opacity??1)}:void 0}function _nt(a){if(!a.shadow?.color)return;let r=a.shadow.offset?Math.sqrt(a.shadow.offset[0]**2+a.shadow.offset[1]**2):0;return{radius:a.shadow.radius??4,offset:r,color:a.shadow.color,opacity:Math.min(a.opacity??.5,a.shadow.opacity??.5),angle:a.shadow.angle??0}}function hnt(a,r){return a?.font?.textTransform??r?.font?.textTransform??void 0}function Qge(a,r,s){if(r==null)return r;let c=hnt(a,s);if(!c)return r;switch(c){case"uppercase":return r.toUpperCase();case"lowercase":return r.toLowerCase();case"capitalize":return r.replace(/\b\w/g,f=>f.toUpperCase());default:return r}}function J2e(a){if(!a.font)return;let r=a.font.textDecoration;return{name:a.font.name??"Inter",size:a.font.size??16,font_weight:a.font.weight??400,italic:a.font.italic??!1,color:a.font.color??"000000",underline:r==="underline"?!0:void 0,strike:r==="line-through"?!0:void 0}}function mnt(a){let r=J2e(a),s=hnt(a),c=a.innerText&&a.innerText.length>0?IKt(a.innerText,r,s):void 0,f=c&&c.length>0?c:void 0,p=f&&f.length>0?f.map(C=>C.text).join(""):Qge(a,a.innerText);return{alignment:QKt(a.textAlign),font:r,line_height:a.font?.lineHeight,letter_spacing:a.font?.letterSpacing,text:p,text_runs:f}}function vKt(a){let r;for(let s of a.borderRadius??[])s>0&&(r=Math.max(r??0,s));return r}function PYr(a){let r=[];a.imageSrc&&r.push(...wKt(a));let s=wZ(a),c=gnt(a),f=dnt(a),p=pnt(a),C=_nt(a),b=a.rotation,N=a.textWrap??!0,L=fnt(a.textVerticalAlign),O=vKt(a),j=a.background?.color||a.border?.color,k=!!(O&&j);k&&r.push({shape_type:"autoshape",type:5,position:s,margin:c,fill:f,stroke:p,shadow:C,rotation:b,border_radius:O});let R=EKt(a),J=a.hasImmediateUnwrappedText&&R.length>0&&R.every(H=>xYr(H.tagName));if(a.hasImmediateUnwrappedText&&J)r.push(...MYr(a,k,s,N,c,f,p,C,b,L));else if(a.hasImmediateUnwrappedText&&R.length>0){let H=a.relatedElements?NYr(a.relatedElements):[],X=H.length>0?H:R;for(let Ue of X){let be=lnt(Ue);be&&r.push(...be)}let ge=kYr(a.innerText??""),Te=Qge(a,ge);if(Te&&Te.trim().length>0){let Ue=TYr(a,R),be={...a,innerText:Te,position:Ue??a.position,textVerticalAlign:"top"};r.push(...Cnt(be,!0))}}else r.push(...LYr(a,k,s,N,c,f,p,C,b,L));return r}function MYr(a,r,s,c,f,p,C,b,N,L){let O={left:s.left,top:s.top,width:s.width+2,height:s.height},j=yKt(a),k=mnt(a),R=[],J=[];if(j){J=j.extraShapes;let X=j.paragraphRuns.length>0?j.paragraphRuns:[[]];for(let ge of X)R.push({...k,text:void 0,text_runs:ge.length>0?ge:void 0})}else R.push(k);return[{shape_type:"textbox",position:O,margin:f,fill:r?void 0:p,stroke:r?void 0:C,shadow:r?void 0:b,rotation:N,text_wrap:c,vertical_alignment:L,paragraphs:R},...J]}function LYr(a,r,s,c,f,p,C,b,N,L){let O=a.font?.size??a.relatedElements[0].font?.size??16,j={left:s.left-O,top:s.top,width:s.width+O,height:s.height},k,R=a.relatedElements.length,J=[];for(let ge=0;ge=0&&J.push(be)}J.length>0&&(k=Math.floor(J.reduce((ge,Te)=>ge+Te,0)/J.length));let H=[],X=[];for(let ge=0;ge0&&X.push(...be.extraShapes),ut=RYr(be.paragraphRuns);else if(Te.innerText){let st=J2e(Te),or=IKt(Te.innerText,st,hnt(Te,a));ut=or.length>0?or:void 0}let We=ut&&ut.length>0?ut.map(st=>st.text).join(""):Qge(Te,Te.innerText??"",a)??"";H.push({spacing:{top:0,bottom:Ue??0,left:0,right:0},alignment:QKt(Te.textAlign),font:J2e(Te),line_height:Te.font?.lineHeight,level:0,bullet:Te.marker?Te.marker.color?{type:"default",color:Te.marker.color}:{type:"default"}:void 0,letter_spacing:Te.font?.letterSpacing,text:We,text_runs:ut})}return[{shape_type:"textbox",position:j,margin:f,fill:r?void 0:p,stroke:r?void 0:C,shadow:r?void 0:b,rotation:N,text_wrap:c,vertical_alignment:L,paragraphs:H},...X]}function Cnt(a,r=!1){let s=!(r||a.isExcludedTextChild),c=wZ(a),f=gnt(a),p=s?dnt(a):void 0,C=s?pnt(a):void 0,b=s?_nt(a):void 0,N=mnt(a);return c.width+=2,[{shape_type:"textbox",margin:f,fill:p,stroke:C,shadow:b,position:c,rotation:a.rotation,text_wrap:a.textWrap??!0,vertical_alignment:fnt(a.textVerticalAlign),paragraphs:[N]}]}function CKt(a){let r=wZ(a),s=gnt(a),c=dnt(a),f=pnt(a),p=_nt(a),C={left:r.left,top:r.top,width:r.width+2,height:r.height},b=a.innerText?[mnt(a)]:void 0,N=a.borderRadius?5:1,L=vKt(a);if(L){let O=[];return O.push({shape_type:"autoshape",type:N,margin:s,fill:c,stroke:f,shadow:p,position:r,rotation:a.rotation,border_radius:L}),b&&O.push({shape_type:"textbox",position:C,margin:s,rotation:a.rotation,text_wrap:a.textWrap??!0,vertical_alignment:fnt(a.textVerticalAlign),paragraphs:b}),O}return[{shape_type:"autoshape",type:N,margin:s,fill:c,stroke:f,shadow:p,position:r,rotation:a.rotation,text_wrap:a.textWrap??!0,border_radius:L||void 0,paragraphs:b}]}function wKt(a){let r=(()=>{let p=a.position?.left??0,C=a.position?.top??0,b=Math.max(0,a.position?.width??0),N=Math.max(0,a.position?.height??0);return p<0&&(b=Math.max(1,b+p),p=0),C<0&&(N=Math.max(1,N+C),C=0),p+b>1280&&(b=Math.max(1,1280-p)),C+N>720&&(N=Math.max(1,720-C)),{left:p,top:C,width:b,height:N}})(),s=a.objectFit?a.objectFit:"contain",c={is_network:a.imageSrc?a.imageSrc.startsWith("http"):!1,path:a.imageSrc||""},f=[];return f.push({shape_type:"picture",position:r,margin:void 0,rotation:a.rotation,clip:a.clip??!0,invert:a.filters?.invert===1,opacity:a.shouldScreenshot?void 0:a.opacity,border_radius:a.shouldScreenshot?void 0:a.borderRadius,shape:a.shape?a.shape:"rectangle",object_fit:{fit:s},picture:c}),a.innerText&&a.shouldScreenshot&&a.excludeTextInScreenshot&&f.push(...Cnt(a,!0)),f}function OYr(a){let r=wZ(a);return[{shape_type:"connector",type:1,position:r,rotation:a.rotation,thickness:a.border?.width??.5,color:a.border?.color||a.background?.color||"000000",opacity:a.border?.opacity??1}]}function bZ(){let a=process.env.TEMP_DIRECTORY;if(!a)throw new gm("TEMP_DIRECTORY must be set",500);return a}var W2e=wc(require("node:path"));var K2e=wc(require("node:path")),wge=wc(require("node:fs/promises"));var SKt=require("node:child_process");function DZ(a){return(a??"").trim().replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"")||"presentation"}var H2e=wc(require("node:fs/promises")),vge=wc(require("node:path")),Int=require("node:url");function UYr(){let a=process.env.APP_DATA_DIRECTORY;if(!a)throw new gm("APP_DATA_DIRECTORY must be set",500);return a}async function bKt(){let a=UYr(),r=vge.default.join(a,"exports");return await H2e.default.mkdir(r,{recursive:!0}),r}async function DKt(a,r){let s=await bKt(),c=vge.default.join(s,a);return await H2e.default.writeFile(c,r),{filePath:c,url:(0,Int.pathToFileURL)(c).toString()}}async function j2e(a,r){let s=await bKt(),c=vge.default.join(s,r??vge.default.basename(a));return await H2e.default.copyFile(a,c),{filePath:c,url:(0,Int.pathToFileURL)(c).toString()}}async function q2e(a,r){let s=!1;r||(s=!0,r=K2e.default.join(bZ(),jQ()),await wge.default.mkdir(r,{recursive:!0}));try{let c=`${DZ(a.data.name??"presentation")}_${jQ()}`,f=K2e.default.join(r,`${c}.json`);await wge.default.writeFile(f,JSON.stringify(a));let p=process.env.BUILT_PYTHON_MODULE_PATH?.trim(),b=p&&p.length>0?{cmd:p,args:[f]}:{cmd:".venv/bin/python",args:["py/convert.py",f]},N=(0,SKt.spawn)(b.cmd,b.args,{cwd:process.cwd(),stdio:"inherit",env:{...process.env,FASTAPI_URL:process.env.FASTAPI_URL}});await new Promise((j,k)=>{N.once("error",k),N.once("close",R=>{if(R===0)return j();k(new Error(`convert.py exited with code ${R}`))})});let L=K2e.default.join(r,`${c}.pptx`);try{await wge.default.access(L)}catch{throw new gm("Failed to create PPTX file",500)}let{url:O}=await j2e(L,`${c}.pptx`);return{url:O}}finally{s&&await wge.default.rm(r,{recursive:!0,force:!0})}}async function xKt(a,r){let{slides:s,speakerNotes:c}=await Wjt(a);console.log("[handler] Slides and speaker notes retrieved");let f=await Yjt(s);console.log("[handler] Slides attributes retrieved");let p=W2e.default.join(bZ(),jQ()),C=W2e.default.join(p,"screenshots");await SZ.default.mkdir(p,{recursive:!0}),await SZ.default.mkdir(C,{recursive:!0});try{await Vjt(s,f,c,C),console.log("[handler] Screenshots processed");let b=BKt(f);console.log("[handler] Slides PPTX models retrieved");let N={name:r.title,slides:b};if(process.env.NODE_ENV==="development"){let L=W2e.default.join(process.env.APP_DATA_DIRECTORY,"pptx_model.json");SZ.default.writeFile(L,JSON.stringify(N,null,2))}return await q2e({type:"pptx-from-json",url:r.url,data:N},p)}finally{await SZ.default.rm(p,{recursive:!0,force:!0}),await SZ.default.rm(C,{recursive:!0,force:!0})}}async function kKt(a,r){let s=await a.pdf({width:"1280px",height:"720px",printBackground:!0,margin:{top:0,right:0,bottom:0,left:0}}),c=DZ(r.title??"presentation")+"_"+jQ()+".pdf",{url:f}=await DKt(c,s);return{url:f}}var bge=wc(require("node:path")),xZ=wc(require("node:fs/promises")),TKt=require("node:child_process");async function FKt(a,r){let s=await a.pdf({width:"1280px",height:"720px",printBackground:!0,margin:{top:0,right:0,bottom:0,left:0}}),c=DZ(r.title??"presentation")+"_"+jQ(),f=`${c}.pdf`,p=`${c}_images.zip`,C=bge.default.join(bZ(),jQ());await xZ.default.mkdir(C,{recursive:!0});try{let b=bge.default.join(C,f);await xZ.default.writeFile(b,s);let N=bge.default.join(C,`${c}.json`),L={type:"pdf-to-png-zip",pdf_path:b,output_dir:C};await xZ.default.writeFile(N,JSON.stringify(L));let O=process.env.BUILT_PYTHON_MODULE_PATH?.trim(),k=O&&O.length>0?{cmd:O,args:[N]}:{cmd:".venv/bin/python",args:["py/convert.py",N]},R=(0,TKt.spawn)(k.cmd,k.args,{cwd:process.cwd(),stdio:["ignore","pipe","inherit"]}),J="";R.stdout?.on("data",Te=>{J+=Te.toString()}),await new Promise((Te,Ue)=>{R.once("error",Ue),R.once("close",be=>{if(be===0)return Te();Ue(new Error(`convert.py exited with code ${be}`))})});let H=J.trim().split(/\r?\n/).pop(),X=H&&H.length>0?H:bge.default.join(C,p);try{await xZ.default.access(X)}catch{throw new gm("Failed to create PNG zip",500)}let{url:ge}=await j2e(X);return{url:ge}}finally{await xZ.default.rm(C,{recursive:!0,force:!0})}}async function NKt(a){if(a.type==="export")return GYr(a);if(a.type==="pptx-from-json")return q2e(a);throw new gm("Invalid task type",400)}async function GYr(a){let r=await CJt();try{let s=await IJt(r,a);if(a.format==="pptx"){let c=await xKt(s,a);return console.log("[handleExportTask] PPTX response",c),c}else if(a.format==="pdf"){let c=await kKt(s,a);return console.log("[handleExportTask] PDF response",c),c}else if(a.format==="png"){let c=await FKt(s,a);return console.log("[handleExportTask] PNG response",c),c}}finally{await r.close()}throw new gm("Invalid export task format",400)}function JYr(a){let r=a.slice(2).find(s=>!s.startsWith("-"));if(!r)throw new Error("Task JSON path must be provided as the first argument");return r}function HYr(a){let r=ynt.default.parse(a);return ynt.default.join(r.dir,`${r.name}.response.json`)}async function jYr(a){let r=await Ent.default.readFile(a,"utf8"),s=JSON.parse(r),c=await NKt(s),f=HYr(a);return await Ent.default.writeFile(f,`${JSON.stringify(c)} -`,"utf8"),f}(async()=>{try{let a=JYr(process.argv),r=await jYr(a);console.log(r)}catch(a){a instanceof gm&&(console.error(`[index] ${a.message}`),process.exit(a.status));let r=a instanceof Error?a.message:String(a);console.error(`[index] ${r}`),process.exit(1)}})();0&&(module.exports={handleTask}); -/*! Bundled license information: - -puppeteer-core/lib/esm/puppeteer/util/disposable.js: -puppeteer-core/lib/esm/puppeteer/api/ElementHandleSymbol.js: -puppeteer-core/lib/esm/puppeteer/util/Function.js: -puppeteer-core/lib/esm/puppeteer/common/HandleIterator.js: -puppeteer-core/lib/esm/puppeteer/common/QueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/CSSQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/CustomQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/PierceQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/PQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/PSelectorParser.js: -puppeteer-core/lib/esm/puppeteer/common/TextQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/XPathQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/GetQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/util/decorators.js: -puppeteer-core/lib/esm/puppeteer/api/JSHandle.js: -puppeteer-core/lib/esm/puppeteer/api/ElementHandle.js: -puppeteer-core/lib/esm/puppeteer/api/Frame.js: -puppeteer-core/lib/esm/puppeteer/api/HTTPResponse.js: -puppeteer-core/lib/esm/puppeteer/api/Realm.js: -puppeteer-core/lib/esm/puppeteer/api/Target.js: -puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js: -puppeteer-core/lib/esm/puppeteer/bidi/BidiOverCdp.js: -puppeteer-core/lib/esm/puppeteer/bidi/Deserializer.js: -puppeteer-core/lib/esm/puppeteer/bidi/JSHandle.js: -puppeteer-core/lib/esm/puppeteer/bidi/ElementHandle.js: -puppeteer-core/lib/esm/puppeteer/bidi/ExposedFunction.js: -puppeteer-core/lib/esm/puppeteer/bidi/Serializer.js: -puppeteer-core/lib/esm/puppeteer/bidi/util.js: -puppeteer-core/lib/esm/puppeteer/bidi/Frame.js: -puppeteer-core/lib/esm/puppeteer/bidi/Target.js: -@puppeteer/browsers/lib/esm/browser-data/types.js: -@puppeteer/browsers/lib/esm/httpUtil.js: -@puppeteer/browsers/lib/esm/browser-data/chrome.js: -@puppeteer/browsers/lib/esm/browser-data/chrome-headless-shell.js: -@puppeteer/browsers/lib/esm/browser-data/chromedriver.js: -@puppeteer/browsers/lib/esm/browser-data/chromium.js: -@puppeteer/browsers/lib/esm/browser-data/firefox.js: -@puppeteer/browsers/lib/esm/browser-data/browser-data.js: -@puppeteer/browsers/lib/esm/detectPlatform.js: -@puppeteer/browsers/lib/esm/Cache.js: -@puppeteer/browsers/lib/esm/debug.js: -@puppeteer/browsers/lib/esm/launch.js: -@puppeteer/browsers/lib/esm/fileUtil.js: -@puppeteer/browsers/lib/esm/CLI.js: -@puppeteer/browsers/lib/esm/main.js: -puppeteer-core/lib/esm/puppeteer/cdp/FrameManagerEvents.js: -puppeteer-core/lib/esm/puppeteer/cdp/cdp.js: -puppeteer-core/lib/esm/puppeteer/bidi/BrowserConnector.js: -puppeteer-core/lib/esm/puppeteer/common/BrowserConnector.js: -puppeteer-core/lib/esm/puppeteer/node/util/fs.js: -puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js: -puppeteer-core/lib/esm/puppeteer/node/FirefoxLauncher.js: -puppeteer-core/lib/esm/puppeteer/node/ScreenRecorder.js: -puppeteer/lib/esm/puppeteer/getConfiguration.js: - (** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/common/EventEmitter.js: -puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js: -puppeteer-core/lib/esm/puppeteer/common/LazyArg.js: -puppeteer-core/lib/esm/puppeteer/common/WaitTask.js: -puppeteer-core/lib/esm/puppeteer/bidi/Page.js: -puppeteer-core/lib/esm/puppeteer/bidi/BrowserContext.js: -puppeteer-core/lib/esm/puppeteer/bidi/Browser.js: -puppeteer-core/lib/esm/puppeteer/bidi/bidi.js: -puppeteer-core/lib/esm/puppeteer/api/api.js: -puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js: -puppeteer-core/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js: -puppeteer-core/lib/esm/puppeteer/cdp/IsolatedWorlds.js: -puppeteer-core/lib/esm/puppeteer/cdp/FrameTree.js: -puppeteer-core/lib/esm/puppeteer/cdp/NetworkEventManager.js: -puppeteer-core/lib/esm/puppeteer/cdp/TargetManager.js: -puppeteer-core/lib/esm/puppeteer/common/common.js: -puppeteer-core/lib/esm/puppeteer/util/util.js: -puppeteer-core/lib/esm/puppeteer/node/node.js: - (** - * @license - * Copyright 2022 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/environment.js: -puppeteer-core/lib/esm/puppeteer/util/assert.js: -puppeteer-core/lib/esm/puppeteer/common/Debug.js: -puppeteer-core/lib/esm/puppeteer/common/PDFOptions.js: -puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js: -puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js: -puppeteer-core/lib/esm/puppeteer/common/FileChooser.js: -puppeteer-core/lib/esm/puppeteer/common/SecurityDetails.js: -puppeteer-core/lib/esm/puppeteer/node/LaunchOptions.js: -puppeteer-core/lib/esm/puppeteer/cdp/BrowserConnector.js: -puppeteer-core/lib/esm/puppeteer/common/TaskQueue.js: -puppeteer-core/lib/esm/puppeteer/revisions.js: -puppeteer-core/lib/esm/puppeteer/node/PuppeteerNode.js: - (** - * @license - * Copyright 2020 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/util/encoding.js: -puppeteer-core/lib/esm/puppeteer/util/Deferred.js: -puppeteer-core/lib/esm/puppeteer/util/Mutex.js: -puppeteer-core/lib/esm/puppeteer/common/ScriptInjector.js: -puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/Navigation.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/Realm.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/Request.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/UserPrompt.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/BrowsingContext.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/UserContext.js: -puppeteer-core/lib/esm/puppeteer/bidi/WebWorker.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/Browser.js: -puppeteer-core/lib/esm/puppeteer/bidi/core/Session.js: -puppeteer-core/lib/esm/puppeteer/cdp/Binding.js: -puppeteer-core/lib/esm/puppeteer/cdp/CdpPreloadScript.js: -puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js: -puppeteer-core/lib/esm/puppeteer/cdp/TargetManageEvents.js: - (** - * @license - * Copyright 2024 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/util/version.js: -puppeteer-core/lib/esm/puppeteer/api/DeviceRequestPrompt.js: -puppeteer-core/lib/esm/puppeteer/bidi/BluetoothEmulation.js: -puppeteer-core/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js: - (** - * @license - * Copyright 2025 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/common/Errors.js: -puppeteer-core/lib/esm/puppeteer/api/WebWorker.js: -puppeteer-core/lib/esm/puppeteer/cdp/Accessibility.js: -puppeteer-core/lib/esm/puppeteer/node/NodeWebSocketTransport.js: - (** - * @license - * Copyright 2018 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/common/util.js: -puppeteer-core/lib/esm/puppeteer/api/BrowserContext.js: -puppeteer-core/lib/esm/puppeteer/api/Dialog.js: -puppeteer-core/lib/esm/puppeteer/api/Input.js: -puppeteer-core/lib/esm/puppeteer/api/Page.js: -puppeteer-core/lib/esm/puppeteer/cdp/Coverage.js: -puppeteer-core/lib/esm/puppeteer/bidi/Connection.js: -puppeteer-core/lib/esm/puppeteer/bidi/Dialog.js: -puppeteer-core/lib/esm/puppeteer/bidi/Input.js: -@puppeteer/browsers/lib/esm/install.js: -puppeteer-core/lib/esm/puppeteer/cdp/CdpSession.js: -puppeteer-core/lib/esm/puppeteer/cdp/Connection.js: -puppeteer-core/lib/esm/puppeteer/cdp/Dialog.js: -puppeteer-core/lib/esm/puppeteer/cdp/utils.js: -puppeteer-core/lib/esm/puppeteer/cdp/ExecutionContext.js: -puppeteer-core/lib/esm/puppeteer/cdp/Frame.js: -puppeteer-core/lib/esm/puppeteer/cdp/NetworkManager.js: -puppeteer-core/lib/esm/puppeteer/cdp/FrameManager.js: -puppeteer-core/lib/esm/puppeteer/common/USKeyboardLayout.js: -puppeteer-core/lib/esm/puppeteer/cdp/Input.js: -puppeteer-core/lib/esm/puppeteer/cdp/Page.js: -puppeteer-core/lib/esm/puppeteer/cdp/Browser.js: -puppeteer-core/lib/esm/puppeteer/common/Device.js: -puppeteer-core/lib/esm/puppeteer/common/Puppeteer.js: -puppeteer-core/lib/esm/puppeteer/index-browser.js: -puppeteer-core/lib/esm/puppeteer/node/BrowserLauncher.js: -puppeteer-core/lib/esm/puppeteer/index.js: -puppeteer-core/lib/esm/puppeteer/puppeteer-core.js: -puppeteer/lib/esm/puppeteer/puppeteer.js: - (** - * @license - * Copyright 2017 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js: -puppeteer-core/lib/esm/puppeteer/cdp/JSHandle.js: -puppeteer-core/lib/esm/puppeteer/cdp/ElementHandle.js: -puppeteer-core/lib/esm/puppeteer/cdp/IsolatedWorld.js: -puppeteer-core/lib/esm/puppeteer/cdp/LifecycleWatcher.js: -puppeteer-core/lib/esm/puppeteer/cdp/Target.js: - (** - * @license - * Copyright 2019 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -progress/lib/node-progress.js: - (*! - * node-progress - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - *) - -@puppeteer/browsers/lib/esm/DefaultProvider.js: -@puppeteer/browsers/lib/esm/provider.js: - (** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) - -yargs-parser/build/lib/string-utils.js: -yargs-parser/build/lib/tokenize-arg-string.js: -yargs-parser/build/lib/yargs-parser-types.js: -yargs-parser/build/lib/yargs-parser.js: - (** - * @license - * Copyright (c) 2016, Contributors - * SPDX-License-Identifier: ISC - *) - -yargs-parser/build/lib/index.js: - (** - * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js - * CJS and ESM environments. - * - * @license - * Copyright (c) 2016, Contributors - * SPDX-License-Identifier: ISC - *) - -typescript/lib/typescript.js: - (*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** *) - -cosmiconfig/dist/loaders.js: -cosmiconfig/dist/util.js: - (* istanbul ignore next -- @preserve *) - -cosmiconfig/dist/ExplorerBase.js: - (* istanbul ignore if -- @preserve *) - (* istanbul ignore next -- @preserve *) - -cosmiconfig/dist/Explorer.js: -cosmiconfig/dist/ExplorerSync.js: - (* istanbul ignore if -- @preserve *) - -puppeteer-core/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js: - (** - * @license - * Copyright 2021 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - *) -*/ diff --git a/electron/resources/export/py/convert b/electron/resources/export/py/convert deleted file mode 100755 index be7aea50..00000000 Binary files a/electron/resources/export/py/convert and /dev/null differ diff --git a/electron/sync_export_runtime.js b/electron/sync_export_runtime.js index 2e84294b..bedd9346 100644 --- a/electron/sync_export_runtime.js +++ b/electron/sync_export_runtime.js @@ -1,30 +1,83 @@ const fs = require("fs"); +const http = require("http"); +const https = require("https"); const path = require("path"); +const { execFileSync } = require("child_process"); + +const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"), "utf8")); + const targetRoot = path.join(__dirname, "resources", "export"); const targetPyDir = path.join(targetRoot, "py"); const targetIndex = path.join(targetRoot, "index.js"); -const targetConvertDefault = path.join(targetPyDir, "convert"); +const cacheDir = path.join(__dirname, ".cache", "export-runtime"); +const exportRepoBase = "https://github.com/presenton/presenton-export/releases/download"; +const exportVersion = packageJson.exportVersion || "v0.1.0"; -function getConverterCandidates() { - const tagged = path.join( - targetPyDir, - `convert-${process.platform}-${process.arch}${process.platform === "win32" ? ".exe" : ""}` - ); - const platformOnly = path.join( - targetPyDir, - `convert-${process.platform}${process.platform === "win32" ? ".exe" : ""}` - ); - const legacy = process.platform === "win32" - ? [path.join(targetPyDir, "convert.exe"), targetConvertDefault] - : [targetConvertDefault]; +const cliArgs = new Set(process.argv.slice(2)); +const forceDownload = cliArgs.has("--force"); +const checkOnly = cliArgs.has("--check-only"); - return [tagged, platformOnly, ...legacy]; +async function getTargetVersion() { + const requestedVersion = process.env.EXPORT_RUNTIME_VERSION || exportVersion; + if (requestedVersion !== "latest") { + return requestedVersion; + } + + const apiUrl = "https://api.github.com/repos/presenton/presenton-export/releases/latest"; + const latest = await requestJson(apiUrl); + if (!latest.tag_name) { + throw new Error(`Could not resolve latest release tag from ${apiUrl}`); + } + + return latest.tag_name; } -function ensureExists(filePath, label) { - if (!fs.existsSync(filePath)) { - throw new Error(`${label} not found at: ${filePath}`); +function getPlatformAssetName() { + const platformArch = `${process.platform}-${process.arch}`; + if (platformArch === "linux-x64") return "export-Linux-X64.zip"; + if (platformArch === "darwin-arm64") return "export-macOS-ARM64.zip"; + if (platformArch === "win32-x64") return "export-Windows-X64.zip"; + + throw new Error( + `Unsupported export runtime platform: ${platformArch}. Supported: linux-x64, darwin-arm64, win32-x64` + ); +} + +function getConverterCandidates() { + const platformAliases = { + linux: ["linux"], + darwin: ["darwin", "macos", "mac"], + win32: ["win32", "windows", "win"], + }; + const archAliases = { + x64: ["x64", "amd64"], + arm64: ["arm64", "aarch64"], + }; + + const candidates = []; + const platforms = platformAliases[process.platform] || [process.platform]; + const archs = archAliases[process.arch] || [process.arch]; + const windows = process.platform === "win32"; + + for (const p of platforms) { + for (const a of archs) { + candidates.push(path.join(targetPyDir, `convert-${p}-${a}`)); + candidates.push(path.join(targetPyDir, `convert-${p}-${a}.exe`)); + } + candidates.push(path.join(targetPyDir, `convert-${p}`)); + candidates.push(path.join(targetPyDir, `convert-${p}.exe`)); } + + if (windows) { + candidates.push(path.join(targetPyDir, "convert.exe")); + } + candidates.push(path.join(targetPyDir, "convert")); + + return [...new Set(candidates)]; +} + +function ensureDir(dirPath) { + fs.mkdirSync(dirPath, { recursive: true }); } function chmodIfPossible(filePath) { @@ -72,42 +125,238 @@ function isFormatCompatible(format) { return true; } -function main() { - ensureExists( - targetIndex, - "Committed runtime JS bundle (electron/resources/export/index.js)" - ); +function validateExistingRuntime() { + if (!fs.existsSync(targetIndex)) { + return { ok: false, reason: `Missing runtime bundle: ${targetIndex}` }; + } const converterCandidates = getConverterCandidates(); const converterPath = converterCandidates.find((candidate) => fs.existsSync(candidate)); if (!converterPath) { - throw new Error( - [ + return { + ok: false, + reason: [ "No converter binary found in electron/resources/export/py.", "Expected one of:", ...converterCandidates.map((candidate) => ` - ${candidate}`), - ].join("\n") - ); + ].join("\n"), + }; } const binaryFormat = detectBinaryFormat(converterPath); if (!isFormatCompatible(binaryFormat)) { - throw new Error( - [ + return { + ok: false, + reason: [ `Converter binary is not valid for ${process.platform}/${process.arch}.`, `Selected converter: ${converterPath}`, `Detected format: ${binaryFormat}`, - "Bundle a platform-correct converter binary (e.g. convert-darwin-arm64, convert-darwin-x64, convert-linux-x64, convert.exe).", - ].join("\n") - ); + ].join("\n"), + }; } chmodIfPossible(converterPath); - - console.log("[export-runtime] Using committed runtime artifacts:"); - console.log(` - ${targetIndex}`); - console.log(` - ${converterPath}`); + return { ok: true, converterPath }; } -main(); +function hasExportDirectoryContent() { + if (!fs.existsSync(targetRoot)) return false; + return fs.readdirSync(targetRoot).length > 0; +} + +function request(url) { + const client = url.startsWith("https:") ? https : http; + return client; +} + +function requestJson(url, redirects = 5) { + return new Promise((resolve, reject) => { + const client = request(url); + const req = client.get( + url, + { + headers: { + "User-Agent": "presenton-export-runtime-sync", + Accept: "application/vnd.github+json", + }, + }, + (res) => { + if ([301, 302, 303, 307, 308].includes(res.statusCode) && res.headers.location) { + if (redirects <= 0) { + reject(new Error(`Too many redirects for JSON request: ${url}`)); + return; + } + requestJson(res.headers.location, redirects - 1).then(resolve).catch(reject); + return; + } + + if (res.statusCode < 200 || res.statusCode >= 300) { + reject(new Error(`Failed to fetch ${url}. HTTP ${res.statusCode}`)); + return; + } + + let payload = ""; + res.setEncoding("utf8"); + res.on("data", (chunk) => { + payload += chunk; + }); + res.on("end", () => { + try { + resolve(JSON.parse(payload)); + } catch (error) { + reject(new Error(`Invalid JSON received from ${url}: ${error.message}`)); + } + }); + } + ); + + req.on("error", reject); + }); +} + +function downloadFile(url, outputPath, redirects = 5) { + return new Promise((resolve, reject) => { + const client = request(url); + const req = client.get( + url, + { + headers: { + "User-Agent": "presenton-export-runtime-sync", + Accept: "application/octet-stream", + }, + }, + (res) => { + if ([301, 302, 303, 307, 308].includes(res.statusCode) && res.headers.location) { + if (redirects <= 0) { + reject(new Error(`Too many redirects while downloading ${url}`)); + return; + } + downloadFile(res.headers.location, outputPath, redirects - 1).then(resolve).catch(reject); + return; + } + + if (res.statusCode < 200 || res.statusCode >= 300) { + reject(new Error(`Failed to download ${url}. HTTP ${res.statusCode}`)); + return; + } + + ensureDir(path.dirname(outputPath)); + const fileStream = fs.createWriteStream(outputPath); + res.pipe(fileStream); + fileStream.on("finish", () => { + fileStream.close(resolve); + }); + fileStream.on("error", reject); + } + ); + + req.on("error", reject); + }); +} + +function unzipArchive(zipPath, destDir) { + ensureDir(destDir); + if (process.platform === "win32") { + execFileSync( + "powershell", + [ + "-NoProfile", + "-Command", + `Expand-Archive -Path '${zipPath}' -DestinationPath '${destDir}' -Force`, + ], + { stdio: "inherit" } + ); + return; + } + + execFileSync("unzip", ["-o", zipPath, "-d", destDir], { stdio: "inherit" }); +} + +function resolveExtractedRoot(extractDir) { + const directIndex = path.join(extractDir, "index.js"); + const directPy = path.join(extractDir, "py"); + if (fs.existsSync(directIndex) && fs.existsSync(directPy)) { + return extractDir; + } + + const children = fs.readdirSync(extractDir, { withFileTypes: true }); + for (const entry of children) { + if (!entry.isDirectory()) continue; + const candidate = path.join(extractDir, entry.name); + const candidateIndex = path.join(candidate, "index.js"); + const candidatePy = path.join(candidate, "py"); + if (fs.existsSync(candidateIndex) && fs.existsSync(candidatePy)) { + return candidate; + } + } + + throw new Error(`Unable to locate export runtime root under ${extractDir}`); +} + +async function downloadAndInstallRuntime() { + const tag = await getTargetVersion(); + const assetName = getPlatformAssetName(); + const downloadUrl = `${exportRepoBase}/${tag}/${assetName}`; + + ensureDir(cacheDir); + const zipPath = path.join(cacheDir, assetName); + const extractDir = path.join(cacheDir, `extract-${Date.now()}`); + + console.log(`[export-runtime] Downloading ${downloadUrl}`); + await downloadFile(downloadUrl, zipPath); + + console.log(`[export-runtime] Extracting ${zipPath}`); + unzipArchive(zipPath, extractDir); + + const sourceRoot = resolveExtractedRoot(extractDir); + fs.rmSync(targetRoot, { recursive: true, force: true }); + ensureDir(targetRoot); + fs.cpSync(sourceRoot, targetRoot, { recursive: true, force: true }); + + fs.rmSync(extractDir, { recursive: true, force: true }); + + return { tag, downloadUrl }; +} + +async function main() { + const existing = validateExistingRuntime(); + + if (checkOnly) { + if (!existing.ok) { + throw new Error(existing.reason); + } + console.log("[export-runtime] Existing runtime is valid."); + console.log(` - ${targetIndex}`); + console.log(` - ${existing.converterPath}`); + return; + } + + if (existing.ok && !forceDownload) { + console.log("[export-runtime] Using existing runtime artifacts:"); + console.log(` - ${targetIndex}`); + console.log(` - ${existing.converterPath}`); + return; + } + + if (!existing.ok && hasExportDirectoryContent()) { + console.log("[export-runtime] Existing export directory is invalid, re-syncing package."); + } + + const { tag, downloadUrl } = await downloadAndInstallRuntime(); + const installed = validateExistingRuntime(); + if (!installed.ok) { + throw new Error(installed.reason); + } + + console.log("[export-runtime] Runtime synced successfully:"); + console.log(` - release: ${tag}`); + console.log(` - url: ${downloadUrl}`); + console.log(` - ${targetIndex}`); + console.log(` - ${installed.converterPath}`); +} + +main().catch((error) => { + console.error(`[export-runtime] ${error.message}`); + process.exit(1); +});