diff --git a/electron/app/ipc/export_handlers.ts b/electron/app/ipc/export_handlers.ts index 0b1b0e12..72a72368 100644 --- a/electron/app/ipc/export_handlers.ts +++ b/electron/app/ipc/export_handlers.ts @@ -1,10 +1,11 @@ -import { BrowserWindow, ipcMain, } from "electron"; -import { baseDir, downloadsDir } from "../utils/constants"; +import { ipcMain } from "electron"; +import { appDataDir, baseDir, downloadsDir, tempDir } from "../utils/constants"; import fs from "fs"; import path from "path"; -import { showFileDownloadedDialog } from "../utils/dialog"; -import { sanitizeFilename } from "../utils"; +import { showFileDownloadedDialog } from "../utils/dialog"; +import { v4 as uuidv4 } from 'uuid'; +import { spawn } from "child_process"; export function setupExportHandlers() { ipcMain.handle("file-downloaded", async (_, filePath: string): Promise => { @@ -16,43 +17,108 @@ export function setupExportHandlers() { return { success }; }); - ipcMain.handle("export-as-pdf", async (_, id: string, title: string) => { - const ppt_url = `${process.env.NEXT_PUBLIC_URL}/pdf-maker?id=${id}`; - const browser = new BrowserWindow({ - width: 1280, - height: 720, - icon: path.join(baseDir, "resources/ui/assets/images/presenton_short_filled.png"), - webPreferences: { - webSecurity: false, + ipcMain.handle("export-presentation", async (_, id: string, title: string, exportAs: "pptx" | "pdf" | "png") => { + try { + const pptUrl = `${process.env.NEXT_PUBLIC_URL}/pdf-maker?id=${id}`; - preload: path.join(__dirname, '../preloads/index.js'), - }, - show: false, - }); - browser.loadURL(ppt_url); + let exportTask = { + type: "export", + url: pptUrl, + format: exportAs, + title: title, + } - const success = await new Promise((resolve, _) => { - browser.webContents.on('did-finish-load', async () => { - // Wait for 1 second to make sure the page is loaded - await new Promise((resolve, _) => { - setTimeout(resolve, 1000); - }); + const randomUuid = uuidv4(); + const exportTempDir = path.join(tempDir, randomUuid); + await fs.promises.mkdir(exportTempDir, { recursive: true }); - const pdfBuffer = await browser.webContents.printToPDF({ - printBackground: true, - pageSize: { width: 1280 / 96, height: 720 / 96 }, - margins: { top: 0, right: 0, bottom: 0, left: 0 } - }); - browser.close(); - const sanitizedTitle = sanitizeFilename(title); - const destinationPath = path.join(downloadsDir, `${sanitizedTitle}.pdf`); - await fs.promises.writeFile(destinationPath, pdfBuffer); + const exportTaskPath = path.join(exportTempDir, "export_task.json"); + await fs.promises.writeFile(exportTaskPath, JSON.stringify(exportTask)); - const success = await showFileDownloadedDialog(destinationPath); - resolve(success); + const exportScriptPath = path.join(baseDir, "resources", "export", "index.js"); + const pythonModulePath = path.join(baseDir, "resources", "export", "py", "convert"); + const exportTaskProcess = spawn("node", [exportScriptPath, exportTaskPath], { + stdio: ["ignore", "pipe", "pipe"], + env: { + ...process.env, + TEMP_DIRECTORY: tempDir, + APP_DATA_DIRECTORY: appDataDir, + BUILT_PYTHON_MODULE_PATH: pythonModulePath, + }, }); - }); - return { success }; + + exportTaskProcess.stdout.on("data", (data: Buffer) => { + console.log(`[Export] ${data.toString()}`); + }); + exportTaskProcess.stderr.on("data", (data: Buffer) => { + console.error(`[Export] ${data.toString()}`); + }); + + await new Promise((resolve, reject) => { + exportTaskProcess.on("error", reject); + exportTaskProcess.on("exit", (code) => { + if (code === 0) { + resolve(); + } else { + reject(new Error(`Export process exited with code ${code}`)); + } + }); + }); + + const responsePath = exportTaskPath.replace(".json", ".response.json"); + const responseRaw = await fs.promises.readFile(responsePath, "utf8"); + const responseData = JSON.parse(responseRaw); + const exportFilePath = resolveExportedFilePath(responseData); + + if (!exportFilePath) { + return { success: false, message: "Export finished but output file was not found." }; + } + + const destinationPath = path.join(downloadsDir, path.basename(exportFilePath)); + await moveFile(exportFilePath, destinationPath); + const success = await showFileDownloadedDialog(destinationPath); + return { success, message: success ? "Export completed." : "Export completed but dialog failed." }; + } catch (error: any) { + console.error("[Export] Error exporting presentation:", error); + return { success: false, message: error?.message ?? "Export failed." }; + } }) +} + +function resolveExportedFilePath(responseData: any): string | null { + if (responseData?.path && typeof responseData.path === "string") { + return path.isAbsolute(responseData.path) + ? responseData.path + : path.join(appDataDir, responseData.path); + } + + if (responseData?.url && typeof responseData.url === "string") { + try { + const parsed = new URL(responseData.url); + if (parsed.protocol === "file:") { + const filePath = decodeURIComponent(parsed.pathname); + if (process.platform === "win32" && filePath.startsWith("/")) { + return filePath.slice(1); + } + return filePath; + } + } catch { + return null; + } + } + + return null; +} + +async function moveFile(sourcePath: string, destinationPath: string) { + try { + await fs.promises.rename(sourcePath, destinationPath); + } catch (error: any) { + if (error?.code !== "EXDEV") { + throw error; + } + await fs.promises.copyFile(sourcePath, destinationPath); + await fs.promises.unlink(sourcePath); + } } \ No newline at end of file diff --git a/electron/app/preloads/index.ts b/electron/app/preloads/index.ts index 9de2f097..df1ae364 100644 --- a/electron/app/preloads/index.ts +++ b/electron/app/preloads/index.ts @@ -11,6 +11,8 @@ contextBridge.exposeInMainWorld('env', { contextBridge.exposeInMainWorld('electron', { fileDownloaded: (filePath: string) => ipcRenderer.invoke("file-downloaded", filePath), exportAsPDF: (id: string, title: string) => ipcRenderer.invoke("export-as-pdf", id, title), + exportPresentation: (id: string, title: string, format: "pptx" | "pdf" | "png") => + ipcRenderer.invoke("export-presentation", id, title, format), getUserConfig: () => ipcRenderer.invoke("get-user-config"), setUserConfig: (userConfig: UserConfig) => ipcRenderer.invoke("set-user-config", userConfig), getCanChangeKeys: () => ipcRenderer.invoke("get-can-change-keys"), diff --git a/electron/resources/export/index.js b/electron/resources/export/index.js new file mode 100644 index 00000000..38371118 --- /dev/null +++ b/electron/resources/export/index.js @@ -0,0 +1,1035 @@ +"use strict";var f1r=Object.create;var Hse=Object.defineProperty;var d1r=Object.getOwnPropertyDescriptor;var g1r=Object.getOwnPropertyNames;var iwt=Object.getPrototypeOf,p1r=Object.prototype.hasOwnProperty;var _1r=Reflect.get;var wje=a=>{throw TypeError(a)};var h1r=(a,r,s)=>r in a?Hse(a,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[r]=s;var Fn=(a,r)=>()=>(a&&(r=a(a=0)),r);var qt=(a,r)=>()=>(r||a((r={exports:{}}).exports,r),r.exports),ux=(a,r)=>{for(var s in r)Hse(a,s,{get:r[s],enumerable:!0})},nwt=(a,r,s,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let f of g1r(r))!p1r.call(a,f)&&f!==s&&Hse(a,f,{get:()=>r[f],enumerable:!(c=d1r(r,f))||c.enumerable});return a};var Qc=(a,r,s)=>(s=a!=null?f1r(iwt(a)):{},nwt(r||!a||!a.__esModule?Hse(s,"default",{value:a,enumerable:!0}):s,a)),o_=a=>nwt(Hse({},"__esModule",{value:!0}),a);var Gr=(a,r,s)=>h1r(a,typeof r!="symbol"?r+"":r,s),Dje=(a,r,s)=>r.has(a)||wje("Cannot "+s),yh=(a,r)=>Object(r)!==r?wje('Cannot use the "in" operator on this value'):a.has(r),I=(a,r,s)=>(Dje(a,r,"read from private field"),s?s.call(a):r.get(a)),ue=(a,r,s)=>r.has(a)?wje("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(a):r.set(a,s),Be=(a,r,s,c)=>(Dje(a,r,"write to private field"),c?c.call(a,s):r.set(a,s),s),Ke=(a,r,s)=>(Dje(a,r,"access private method"),s);var $8=(a,r,s,c)=>({set _(f){Be(a,r,f,s)},get _(){return I(a,r,c)}}),swt=(a,r,s)=>_1r(iwt(a),s,r);function zF(a,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");Tje(a,r);function s(){this.constructor=a}a.prototype=r===null?Object.create(r):(s.prototype=r.prototype,new s)}function m1r(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 w(O){try{U(c.next(O))}catch(j){C(j)}}function P(O){try{U(c.throw(O))}catch(j){C(j)}}function U(O){O.done?p(O.value):f(O.value).then(w,P)}U((c=c.apply(a,r||[])).next())})}function fwt(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=w(0),C.throw=w(1),C.return=w(2),typeof Symbol=="function"&&(C[Symbol.iterator]=function(){return this}),C;function w(U){return function(O){return P([U,O])}}function P(U){if(c)throw new TypeError("Generator is already executing.");for(;C&&(C=0,U[0]&&(s=0)),s;)try{if(c=1,f&&(p=U[0]&2?f.return:U[0]?f.throw||((p=f.return)&&p.call(f),0):f.next)&&!(p=p.call(f,U[1])).done)return p;switch(f=0,p&&(U=[U[0]&2,p.value]),U[0]){case 0:case 1:p=U;break;case 4:return s.label++,{value:U[1],done:!1};case 5:s.label++,f=U[1],U=[0];continue;case 7:U=s.ops.pop(),s.trys.pop();continue;default:if(p=s.trys,!(p=p.length>0&&p[p.length-1])&&(U[0]===6||U[0]===2)){s=0;continue}if(U[0]===3&&(!p||U[1]>p[0]&&U[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 VF(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(w){C={error:w}}finally{try{f&&!f.done&&(s=c.return)&&s.call(c)}finally{if(C)throw C.error}}return p}function e6(a,r,s){if(s||arguments.length===2)for(var c=0,f=r.length,p;c1||P(N,H)})},G&&(f[N]=G(f[N])))}function P(N,G){try{U(c[N](G))}catch(H){k(p[0][3],H)}}function U(N){N.value instanceof GK?Promise.resolve(N.value.v).then(O,j):k(p[0][2],N)}function O(N){P("next",N)}function j(N){P("throw",N)}function k(N,G){N(G),p.shift(),p.length&&P(p[0][0],p[0][1])}}function I1r(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 WF=="function"?WF(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(w,P){C=a[p](C),f(w,P,C.done,C.value)})}}function f(p,C,w,P){Promise.resolve(P).then(function(U){p({value:U,done:w})},C)}}function kd(a){return typeof a=="function"}function Fje(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 jse(a,r){if(a){var s=a.indexOf(r);0<=s&&a.splice(s,1)}}function gwt(a){return a instanceof Wse||a&&"closed"in a&&kd(a.remove)&&kd(a.add)&&kd(a.unsubscribe)}function awt(a){kd(a)?a():a.unsubscribe()}function pwt(a){T1e.setTimeout(function(){var r=sO.onUnhandledError;if(r)r(a);else throw a})}function nO(){}function y1r(a){return Nje("E",void 0,a)}function B1r(a){return Nje("N",a,void 0)}function Nje(a,r,s){return{kind:a,value:r,error:s}}function k1e(a){if(sO.useDeprecatedSynchronousErrorHandling){var r=!iO;if(r&&(iO={errorThrown:!1,error:null}),a(),r){var s=iO,c=s.errorThrown,f=s.error;if(iO=null,c)throw f}}else a()}function Q1r(a){sO.useDeprecatedSynchronousErrorHandling&&iO&&(iO.errorThrown=!0,iO.error=a)}function xje(a,r){return v1r.call(a,r)}function x1e(a){sO.useDeprecatedSynchronousErrorHandling?Q1r(a):pwt(a)}function w1r(a){throw a}function kje(a,r){var s=sO.onStoppedNotification;s&&T1e.setTimeout(function(){return s(a,r)})}function pb(a){return a}function _wt(){for(var a=[],r=0;r=2;return function(c){return c.pipe(a?aQ(function(f,p){return a(f,p,c)}):pb,qse(1),s?Gje(r):zse(function(){return new P1e}))}}function Gwt(a,r,s){return s===void 0&&(s=1/0),Hm(function(c,f){var p=r;return Pwt(c,f,function(C,w){return a(p,C,w)},s,function(C){p=C},!1,void 0,function(){return p=null})})}function _p(){for(var a=[],r=0;r{Tje=function(a,r){return Tje=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])},Tje(a,r)};Sje=Fje(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}});Wse=(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 w=WF(C),P=w.next();!P.done;P=w.next()){var U=P.value;U.remove(this)}}catch(H){r={error:H}}finally{try{P&&!P.done&&(s=w.return)&&s.call(w)}finally{if(r)throw r.error}}else C.remove(this);var O=this.initialTeardown;if(kd(O))try{O()}catch(H){p=H instanceof Sje?H.errors:[H]}var j=this._finalizers;if(j){this._finalizers=null;try{for(var k=WF(j),N=k.next();!N.done;N=k.next()){var G=N.value;try{awt(G)}catch(H){p=p??[],H instanceof Sje?p=e6(e6([],VF(p)),VF(H.errors)):p.push(H)}}}catch(H){c={error:H}}finally{try{N&&!N.done&&(f=k.return)&&f.call(k)}finally{if(c)throw c.error}}}if(p)throw new Sje(p)}},a.prototype.add=function(r){var s;if(r&&r!==this)if(this.closed)awt(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)&&jse(s,r)},a.prototype.remove=function(r){var s=this._finalizers;s&&jse(s,r),r instanceof a&&r._removeParent(this)},a.EMPTY=(function(){var r=new a;return r.closed=!0,r})(),a})(),dwt=Wse.EMPTY;sO={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},T1e={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,w=f.observers;return p||C?dwt:(this.currentObservers=null,w.push(s),new Wse(function(){c.currentObservers=null,jse(w,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 $h;return s.source=this,s},r.create=function(s,c){return new cwt(s,c)},r})($h),cwt=(function(a){zF(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:dwt},r})(mwt),Mje={now:function(){return(Mje.delegate||Date).now()},delegate:void 0},Cwt=(function(a){zF(r,a);function r(s,c,f){s===void 0&&(s=1/0),c===void 0&&(c=1/0),f===void 0&&(f=Mje);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,w=c._timestampProvider,P=c._windowTime;f||(p.push(s),!C&&p.push(w.now()+P)),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,w=C.slice(),P=0;P>>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 jwt=Fn(()=>{});var go,Bh,Kwt,qwt,t6,Ax,Kje,Hje,Ol,Wwt,Ywt,r6,bD,qje,jje,M1e,$se,eae,Zse,dqr,Zf=Fn(()=>{Symbol.dispose??(Symbol.dispose=Symbol("dispose"));Symbol.asyncDispose??(Symbol.asyncDispose=Symbol("asyncDispose"));go=Symbol.dispose,Bh=Symbol.asyncDispose,Kje=class Kje{constructor(){ue(this,t6,!1);ue(this,Ax,[]);Gr(this,Kwt,"DisposableStack")}get disposed(){return I(this,t6)}dispose(){this[go]()}use(r){return r&&typeof r[go]=="function"&&I(this,Ax).push(r),r}adopt(r,s){return I(this,Ax).push({[go](){s(r)}}),r}defer(r){I(this,Ax).push({[go](){r()}})}move(){if(I(this,t6))throw new ReferenceError("A disposed stack can not use anything new");let r=new Kje;return Be(r,Ax,I(this,Ax)),Be(this,Ax,[]),Be(this,t6,!0),r}[(qwt=go,Kwt=Symbol.toStringTag,qwt)](){if(I(this,t6))return;Be(this,t6,!0);let r=[];for(let s of I(this,Ax).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 Zse(c,s);throw s}}};t6=new WeakMap,Ax=new WeakMap;Hje=Kje,Ol=globalThis.DisposableStack??Hje,qje=class qje{constructor(){ue(this,r6,!1);ue(this,bD,[]);Gr(this,Wwt,"AsyncDisposableStack")}get disposed(){return I(this,r6)}async disposeAsync(){await this[Bh]()}use(r){if(r){let s=r[Bh],c=r[go];typeof s=="function"?I(this,bD).push(r):typeof c=="function"&&I(this,bD).push({[Bh]:async()=>{r[go]()}})}return r}adopt(r,s){return I(this,bD).push({[Bh](){return s(r)}}),r}defer(r){I(this,bD).push({[Bh](){return r()}})}move(){if(I(this,r6))throw new ReferenceError("A disposed stack can not use anything new");let r=new qje;return Be(r,bD,I(this,bD)),Be(this,bD,[]),Be(this,r6,!0),r}async[(Ywt=Bh,Wwt=Symbol.toStringTag,Ywt)](){if(I(this,r6))return;Be(this,r6,!0);let r=[];for(let s of I(this,bD).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 Zse(c,s);throw s}}};r6=new WeakMap,bD=new WeakMap;jje=qje,M1e=globalThis.AsyncDisposableStack??jje,Zse=class extends Error{constructor(s,c,f="An error was suppressed during disposal"){super(f);ue(this,$se);ue(this,eae);this.name="SuppressedError",Be(this,$se,s),Be(this,eae,c)}get error(){return I(this,$se)}get suppressed(){return I(this,eae)}};$se=new WeakMap,eae=new WeakMap;dqr=globalThis.SuppressedError??Zse});var tN,lx,ya,kf=Fn(()=>{jwt();Zf();ya=class{constructor(r=Hwt(new Map)){ue(this,tN);ue(this,lx,new Map);Be(this,tN,r)}on(r,s){let c=I(this,lx).get(r);return c===void 0?I(this,lx).set(r,[s]):c.push(s),I(this,tN).on(r,s),this}off(r,s){let c=I(this,lx).get(r)??[];if(s===void 0){for(let p of c)I(this,tN).off(r,p);return I(this,lx).delete(r),this}let f=c.lastIndexOf(s);return f>-1&&I(this,tN).off(r,...c.splice(f,1)),this}emit(r,s){return I(this,tN).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,lx).get(r)?.length||0}removeAllListeners(r){return r!==void 0?this.off(r):(this[go](),this)}[go](){for(let[r,s]of I(this,lx))for(let c of s)I(this,tN).off(r,c);I(this,lx).clear()}};tN=new WeakMap,lx=new WeakMap});var tae,jm,fx=Fn(()=>{tae=!!(typeof process<"u"&&process.version),jm={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 Cs,Tf=Fn(()=>{Cs=(a,r)=>{if(!a)throw new Error(r)}});function hb(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 L1e(a){return Wje(new TextEncoder().encode(a))}function Wje(a){let s=[];for(let f=0;f{});var U1e,Yje=Fn(()=>{U1e="24.38.0"});var zwt=qt((Qqr,Vwt)=>{var WK=1e3,YK=WK*60,VK=YK*60,cO=VK*24,BQr=cO*7,QQr=cO*365.25;Vwt.exports=function(a,r){r=r||{};var s=typeof a;if(s==="string"&&a.length>0)return vQr(a);if(s==="number"&&isFinite(a))return r.long?wQr(a):bQr(a);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))};function vQr(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*QQr;case"weeks":case"week":case"w":return s*BQr;case"days":case"day":case"d":return s*cO;case"hours":case"hour":case"hrs":case"hr":case"h":return s*VK;case"minutes":case"minute":case"mins":case"min":case"m":return s*YK;case"seconds":case"second":case"secs":case"sec":case"s":return s*WK;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}}}function bQr(a){var r=Math.abs(a);return r>=cO?Math.round(a/cO)+"d":r>=VK?Math.round(a/VK)+"h":r>=YK?Math.round(a/YK)+"m":r>=WK?Math.round(a/WK)+"s":a+"ms"}function wQr(a){var r=Math.abs(a);return r>=cO?G1e(a,r,cO,"day"):r>=VK?G1e(a,r,VK,"hour"):r>=YK?G1e(a,r,YK,"minute"):r>=WK?G1e(a,r,WK,"second"):a+" ms"}function G1e(a,r,s,c){var f=r>=s*1.5;return Math.round(a/s)+" "+c+(f?"s":"")}});var Vje=qt((vqr,Xwt)=>{function DQr(a){s.debug=s,s.default=s,s.coerce=P,s.disable=C,s.enable=f,s.enabled=w,s.humanize=zwt(),s.destroy=U,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(Ve==="%%")return"%";Te++;let cr=s.formatters[st];if(typeof cr=="function"){let ct=X[Te];Ve=cr.call(de,ct),X.splice(Te,1),Te--}return Ve}),s.formatArgs.call(de,X),(de.log||s.log).apply(de,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:(N!==s.namespaces&&(N=s.namespaces,G=s.enabled(O)),G),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,N=0,G=-1,H=0;for(;k"-"+j)].join(",");return s.enable(""),O}function w(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 P(O){return O instanceof Error?O.stack||O.message:O}function U(){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}Xwt.exports=DQr});var Zwt=qt((pB,J1e)=>{pB.formatArgs=xQr;pB.save=kQr;pB.load=TQr;pB.useColors=SQr;pB.storage=FQr();pB.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`."))}})();pB.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 SQr(){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 xQr(a){if(a[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+a[0]+(this.useColors?"%c ":" ")+"+"+J1e.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)}pB.log=console.debug||console.log||(()=>{});function kQr(a){try{a?pB.storage.setItem("debug",a):pB.storage.removeItem("debug")}catch{}}function TQr(){let a;try{a=pB.storage.getItem("debug")||pB.storage.getItem("DEBUG")}catch{}return!a&&typeof process<"u"&&"env"in process&&(a=process.env.DEBUG),a}function FQr(){try{return localStorage}catch{}}J1e.exports=Vje()(pB);var{formatters:NQr}=J1e.exports;NQr.j=function(a){try{return JSON.stringify(a)}catch(r){return"[UnexpectedJSONParseError]: "+r.message}}});var eDt=qt((O0,j1e)=>{var PQr=require("tty"),H1e=require("util");O0.init=JQr;O0.log=OQr;O0.formatArgs=MQr;O0.save=UQr;O0.load=GQr;O0.useColors=RQr;O0.destroy=H1e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");O0.colors=[6,2,3,4,5,1];try{let a=require("supports-color");a&&(a.stderr||a).level>=2&&(O0.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{}O0.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 RQr(){return"colors"in O0.inspectOpts?!!O0.inspectOpts.colors:PQr.isatty(process.stderr.fd)}function MQr(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+"+j1e.exports.humanize(this.diff)+"\x1B[0m")}else a[0]=LQr()+r+" "+a[0]}function LQr(){return O0.inspectOpts.hideDate?"":new Date().toISOString()+" "}function OQr(...a){return process.stderr.write(H1e.formatWithOptions(O0.inspectOpts,...a)+` +`)}function UQr(a){a?process.env.DEBUG=a:delete process.env.DEBUG}function GQr(){return process.env.DEBUG}function JQr(a){a.inspectOpts={};let r=Object.keys(O0.inspectOpts);for(let s=0;sr.trim()).join(" ")};$wt.O=function(a){return this.inspectOpts.colors=this.useColors,H1e.inspect(a,this.inspectOpts)}});var U0=qt((bqr,zje)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?zje.exports=Zwt():zje.exports=eDt()});async function HQr(){return Xje||(Xje=(await Promise.resolve().then(()=>Qc(U0(),1))).default),Xje}var Xje,dx,jQr,KQr,zK=Fn(()=>{fx();Xje=null;dx=a=>tae?async(...r)=>{KQr&&jQr.push(a+r),(await HQr())(a)(r)}:(...r)=>{let s=globalThis.__PUPPETEER_DEBUG;!s||!(s==="*"||(s.endsWith("*")?a.startsWith(s):a===s))||console.log(`${a}:`,...r)},jQr=[],KQr=!1});var XK,$E,iN,rae,iae,Qh,Ho,vh,ZK,Bl=Fn(()=>{XK=class extends Error{constructor(r,s){super(r,s),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},$E=class extends XK{},iN=class extends XK{},Qh=class extends XK{constructor(){super(...arguments);ue(this,rae);ue(this,iae,"")}set code(s){Be(this,rae,s)}get code(){return I(this,rae)}set originalMessage(s){Be(this,iae,s)}get originalMessage(){return I(this,iae)}};rae=new WeakMap,iae=new WeakMap;Ho=class extends XK{},vh=class extends Qh{},ZK=class extends Qh{}});var tDt,Zje=Fn(()=>{tDt={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 tq(a,...r){if(FI(a))return Cs(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 W1e(a,r){let s=[],c=a.getReader();if(r){let f=await jm.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=O1e(s);return f.length===0?null:f}catch(f){return Ss(f),null}}async function Y1e(a,r){return new ReadableStream({async pull(s){let{data:c,base64Encoded:f,eof:p}=await a.send("IO.read",{handle:r});s.enqueue(hb(c,f??!1)),p&&(await a.send("IO.close",{handle:r}),s.close())}})}function sDt(a){let r=null;return WQr.has(a)&&(r=a),Cs(r,`Unknown javascript dialog type: ${a}`),r}function G_(a,r){return a===0?Uje:aO(a).pipe(Xf(()=>{throw new $E(`Timed out after waiting ${a}ms`,{cause:r})}))}function V1e(a){return`//# sourceURL=${a}`}function z1e(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=tDt[a.format.toLowerCase()][r];Cs(C,"Unknown paper format: "+a.format),c=C.width,f=C.height}else c=$K(a.width,r)??c,f=$K(a.height,r)??f;let p={top:$K(a.margin?.top,r)||0,left:$K(a.margin?.left,r)||0,bottom:$K(a.margin?.bottom,r)||0,right:$K(a.margin?.right,r)||0};return a.outline&&(a.tagged=!0),{...s,...a,width:c,height:f,margin:p}}function $K(a,r="in"){if(typeof a>"u")return;let s;if(qQr(a))s=a;else if(FI(a)){let c=a,f=c.substring(c.length-2).toLowerCase(),p="";f in $je?p=c.substring(0,c.length-2):(f="px",p=c);let C=Number(p);Cs(!isNaN(C),"Failed to parse parameter value: "+c),s=C*$je[f]}else throw new Error("page.pdf() Cannot handle parameter type: "+typeof a);return s/$je[r]}function Ul(a,r){return new $h(s=>{let c=f=>{s.next(f)};return a.on(r,c),()=>{a.off(r,c)}})}function wD(a,r){return a?JK(a,"abort").pipe(Xf(()=>{throw a.reason instanceof Error?(a.reason.cause=r,a.reason):new Error(a.reason,{cause:r})})):Uje}function i6(a){return c_(r=>aA(Promise.resolve(a(r))).pipe(aQ(s=>s),Xf(()=>r)))}var Ss,eq,K1e,AO,lO,uO,Km,Tp,q1e,FI,qQr,rDt,iDt,nDt,WQr,eKe,rq,aDt,$je,Ou=Fn(()=>{_b();fx();Tf();rN();Yje();zK();Bl();Zje();Ss=dx("puppeteer:error"),eq=Object.freeze({width:800,height:600}),K1e=Symbol("Source URL for Puppeteer evaluation scripts"),uO=class uO{constructor(){ue(this,AO);ue(this,lO)}static fromCallSite(r,s){let c=new uO;return Be(c,AO,r),Be(c,lO,s.toString()),c}get functionName(){return I(this,AO)}get siteString(){return I(this,lO)}toString(){return`pptr:${[I(this,AO),encodeURIComponent(I(this,lO))].join(";")}`}};AO=new WeakMap,lO=new WeakMap,Gr(uO,"INTERNAL_URL","pptr:internal"),Gr(uO,"parse",r=>{r=r.slice(5);let[s="",c=""]=r.split(";"),f=new uO;return Be(f,AO,s),Be(f,lO,decodeURIComponent(c)),f}),Gr(uO,"isPuppeteerURL",r=>r.startsWith("pptr:"));Km=uO,Tp=(a,r)=>{if(Object.prototype.hasOwnProperty.call(r,K1e))return r;let s=Error.prepareStackTrace;Error.prepareStackTrace=(f,p)=>p[2];let c=new Error().stack;return Error.prepareStackTrace=s,Object.assign(r,{[K1e]:Km.fromCallSite(a,c)})},q1e=a=>{if(Object.prototype.hasOwnProperty.call(a,K1e))return a[K1e]},FI=a=>typeof a=="string"||a instanceof String,qQr=a=>typeof a=="number"||a instanceof Number,rDt=a=>typeof a=="object"&&a?.constructor===Object,iDt=a=>typeof a=="object"&&a?.constructor===RegExp,nDt=a=>typeof a=="object"&&a?.constructor===Date;WQr=new Set(["alert","confirm","prompt","beforeunload"]);eKe="__puppeteer_utility_world__"+U1e,rq=/^[\x20\t]*\/\/[@#] sourceURL=\s{0,10}(\S*?)\s{0,10}$/m;aDt=500;$je={px:1,in:96,cm:37.8,mm:3.78}});var nae,iq,nq=Fn(()=>{_b();kf();Ou();Zf();nae=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"]]),iq=class extends ya{constructor(){super()}async waitForTarget(r,s={}){let{timeout:c=3e4,signal:f}=s;return await Xd($F(Ul(this,"targetcreated"),Ul(this,"targetchanged"),aA(this.targets())).pipe(i6(r),_p(wD(f),G_(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 n6,s6,fO,sae,X1e,sq,aae,oae,tKe,aq,Z1e,zu,G0=Fn(()=>{Bl();Z1e=class Z1e{constructor(r){ue(this,oae);ue(this,n6,!1);ue(this,s6,!1);ue(this,fO);ue(this,sae);ue(this,X1e,new Promise(r=>{Be(this,sae,r)}));ue(this,sq);ue(this,aae);ue(this,aq);r&&r.timeout>0&&(Be(this,aae,new $E(r.message)),Be(this,sq,setTimeout(()=>{this.reject(I(this,aae))},r.timeout)))}static create(r){return new Z1e(r)}static async race(r){let s=new Set;try{let c=r.map(f=>f instanceof Z1e?(I(f,sq)&&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,s6)||I(this,n6)||(Be(this,n6,!0),Ke(this,oae,tKe).call(this,r))}reject(r){I(this,s6)||I(this,n6)||(Be(this,s6,!0),Ke(this,oae,tKe).call(this,r))}resolved(){return I(this,n6)}finished(){return I(this,n6)||I(this,s6)}value(){return I(this,fO)}valueOrThrow(){return I(this,aq)||Be(this,aq,(async()=>{if(await I(this,X1e),I(this,s6))throw I(this,fO);return I(this,fO)})()),I(this,aq)}};n6=new WeakMap,s6=new WeakMap,fO=new WeakMap,sae=new WeakMap,X1e=new WeakMap,sq=new WeakMap,aae=new WeakMap,oae=new WeakSet,tKe=function(r){clearTimeout(I(this,sq)),Be(this,fO,r),I(this,sae).call(this)},aq=new WeakMap;zu=Z1e});var uae,Aae,oDt,oq,lae,cae,a6,fae=Fn(()=>{G0();Zf();cae=class cae{constructor(){ue(this,oq,!1);ue(this,lae,[])}async acquire(r){if(!I(this,oq))return Be(this,oq,!0),new cae.Guard(this);let s=zu.create();return I(this,lae).push(s.resolve.bind(s)),await s.valueOrThrow(),new cae.Guard(this,r)}release(){let r=I(this,lae).shift();if(!r){Be(this,oq,!1);return}r()}};oq=new WeakMap,lae=new WeakMap,Gr(cae,"Guard",(oDt=class{constructor(s,c){ue(this,uae);ue(this,Aae);Be(this,uae,s),Be(this,Aae,c)}[go](){var s;return(s=I(this,Aae))==null||s.call(this),I(this,uae).release()}},uae=new WeakMap,Aae=new WeakMap,oDt));a6=cae});var dO,cq,uq,$1e=Fn(()=>{_b();kf();Ou();Zf();fae();uq=class extends ya{constructor(){super();ue(this,dO);ue(this,cq,0)}startScreenshot(){let s=I(this,dO)||new a6;return Be(this,dO,s),$8(this,cq)._++,s.acquire(()=>{$8(this,cq)._--,I(this,cq)===0&&Be(this,dO,void 0)})}waitForScreenshotOperations(){return I(this,dO)?.acquire()}async waitForTarget(s,c={}){let{timeout:f=3e4}=c;return await Xd($F(Ul(this,"targetcreated"),Ul(this,"targetchanged"),aA(this.targets())).pipe(i6(s),_p(G_(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 w=new URL(C.url);if(w.hostname===p.domain&&w.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()}};dO=new WeakMap,cq=new WeakMap});var Ql,Aq,_B=Fn(()=>{kf();(function(a){a.Disconnected=Symbol("CDPSession.Disconnected"),a.Swapped=Symbol("CDPSession.Swapped"),a.Ready=Symbol("CDPSession.Ready"),a.SessionAttached="sessionattached",a.SessionDetached="sessiondetached"})(Ql||(Ql={}));Aq=class extends ya{constructor(){super()}parentSession(){}}});var lq,eQe=Fn(()=>{lq=class{constructor(){Gr(this,"devices",[])}}});var dae,gae,pae,fq,tQe=Fn(()=>{Tf();fq=class{constructor(r,s,c=""){ue(this,dae);ue(this,gae);ue(this,pae);Gr(this,"handled",!1);Be(this,dae,r),Be(this,gae,s),Be(this,pae,c)}type(){return I(this,dae)}message(){return I(this,gae)}defaultValue(){return I(this,pae)}async accept(r){Cs(!this.handled,"Cannot accept dialog which is already handled!"),this.handled=!0,await this.handle({accept:!0,text:r})}async dismiss(){Cs(!this.handled,"Cannot dismiss dialog which is already handled!"),this.handled=!0,await this.handle({accept:!1})}};dae=new WeakMap,gae=new WeakMap,pae=new WeakMap});var hB,o6=Fn(()=>{hB=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 dq,rKe=Fn(()=>{dq=Symbol("_isElementHandle")});function u_(a){return typeof a=="object"&&a!==null&&"name"in a&&"message"in a}function iKe(a,r,s){return a.message=r,a.originalMessage=s??a.originalMessage,a}function rQe(a){let r=a.error.message;return a.error&&typeof a.error=="object"&&"data"in a.error&&(r+=` ${a.error.data}`),r}var NI=Fn(()=>{});function PI(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 cDt,YQr,nN,gO=Fn(()=>{cDt=new Map,YQr=a=>{let r=cDt.get(a);return r||(r=new Function(`return ${a}`)(),cDt.set(a,r),r)};nN=(a,r)=>{let s=PI(a);for(let[c,f]of Object.entries(r))s=s.replace(new RegExp(`PLACEHOLDER\\(\\s*(?:'${c}'|"${c}")\\s*\\)`,"g"),`(${f})`);return YQr(s)}});async function*zQr(a,r){let s={stack:[],error:void 0,hasError:!1};try{let f=await iQe(s,await a.evaluateHandle(async(w,P)=>{let U=[];for(;U.length{for(let w of p){let P={stack:[],error:void 0,hasError:!1};try{iQe(P,w,!1)[go]()}catch(U){P.error=U,P.hasError=!0}finally{nKe(P)}}}),yield*p,f.size===0}catch(c){s.error=c,s.hasError=!0}finally{nKe(s)}}async function*XQr(a){let r=VQr;for(;!(yield*zQr(a,r));)r<<=1}async function*nQe(a){let r={stack:[],error:void 0,hasError:!1};try{let s=iQe(r,await a.evaluateHandle(c=>(async function*(){yield*c})()),!1);yield*XQr(s)}catch(s){r.error=s,r.hasError=!0}finally{nKe(r)}}var iQe,nKe,VQr,sQe=Fn(()=>{Zf();iQe=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},nKe=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),VQr=20});var _ae,aQe,J0,pO=Fn(()=>{aQe=class aQe{constructor(r){ue(this,_ae);Be(this,_ae,r)}async get(r){return await I(this,_ae).call(this,r)}};_ae=new WeakMap,Gr(aQe,"create",r=>new aQe(r));J0=aQe});var oQe,cQe,H0,sN=Fn(()=>{rKe();NI();gO();Bl();sQe();pO();oQe=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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),H0=class{static get _querySelector(){if(this.querySelector)return this.querySelector;if(!this.querySelectorAll)throw new Error("Cannot create default `querySelector`.");return this.querySelector=nN(async(r,s,c)=>{let p=PLACEHOLDER("querySelectorAll")(r,s,c);for await(let C of p)return C;return null},{querySelectorAll:PI(this.querySelectorAll)})}static get _querySelectorAll(){if(this.querySelectorAll)return this.querySelectorAll;if(!this.querySelector)throw new Error("Cannot create default `querySelectorAll`.");return this.querySelectorAll=nN(async function*(r,s,c){let p=await PLACEHOLDER("querySelector")(r,s,c);p&&(yield p)},{querySelector:PI(this.querySelector)})}static async*queryAll(r,s){let c={stack:[],error:void 0,hasError:!1};try{let f=oQe(c,await r.evaluateHandle(this._querySelectorAll,s,J0.create(p=>p.puppeteerUtil)),!1);yield*nQe(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=oQe(c,await r.evaluateHandle(this._querySelector,s,J0.create(p=>p.puppeteerUtil)),!1);return dq 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=oQe(f,await(async()=>{if(!(dq in r)){p=r;return}return p=r.frame,await p.isolatedRealm().adoptHandle(r)})(),!1),{visible:w=!1,hidden:P=!1,timeout:U,signal:O}=c,j=w||P?"raf":c.polling;try{let k={stack:[],error:void 0,hasError:!1};try{O?.throwIfAborted();let N=oQe(k,await p.isolatedRealm().waitForFunction(async(G,H,X,de,we)=>{let Te=await G.createFunction(H)(de??document,X,G);return G.checkVisibility(Te,we)},{polling:j,root:C,timeout:U,signal:O},J0.create(G=>G.puppeteerUtil),PI(this._querySelector),s,C,w?!0:P?!1:void 0),!1);if(O?.aborted)throw O.reason;return dq in N?await p.mainRealm().transferHandle(N):null}catch(N){k.error=N,k.hasError=!0}finally{cQe(k)}}catch(k){if(!u_(k)||k.name==="AbortError")throw k;let N=new(k instanceof $E?$E:Error)(`Waiting for selector \`${s}\` failed`);throw N.cause=k,N}}catch(p){f.error=p,f.hasError=!0}finally{cQe(f)}}};Gr(H0,"querySelectorAll"),Gr(H0,"querySelector")});var ZQr,$Qr,evr,hae,gx,mae=Fn(()=>{Tf();o6();sN();ZQr=a=>["name","role"].includes(a),$Qr=/\[\s*(?\w+)\s*=\s*(?"|')(?\\.|.*?(?=\k))\k\s*\]/g,evr=a=>{if(a.length>1e4)throw new Error(`Selector ${a} is too long`);let r={},s=a.replace($Qr,(c,f,p,C)=>(Cs(ZQr(f),`Unknown aria attribute "${f}" in selector`),r[f]=C,""));return s&&!r.name&&(r.name=s),r},hae=class hae extends H0{static async*queryAll(r,s){let{name:c,role:f}=evr(s);yield*r.queryAXTree(c,f)}};Gr(hae,"querySelector",async(r,s,{ariaQuerySelector:c})=>await c(r,s)),Gr(hae,"queryOne",async(r,s)=>await hB.first(hae.queryAll(r,s))??null);gx=hae});var _O,uDt=Fn(()=>{sN();_O=class extends H0{};Gr(_O,"querySelector",(r,s,{cssQuerySelector:c})=>c(r,s)),Gr(_O,"querySelectorAll",(r,s,{cssQuerySelectorAll:c})=>c(r,s))});var ADt,lDt=Fn(()=>{ADt='"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 gq,pq,hO,aKe,fDt,sKe,c6,Cae=Fn(()=>{lDt();sKe=class{constructor(){ue(this,hO);ue(this,gq,!1);ue(this,pq,new Set)}append(r){Ke(this,hO,aKe).call(this,()=>{I(this,pq).add(r)})}pop(r){Ke(this,hO,aKe).call(this,()=>{I(this,pq).delete(r)})}inject(r,s=!1){(I(this,gq)||s)&&r(Ke(this,hO,fDt).call(this)),Be(this,gq,!1)}};gq=new WeakMap,pq=new WeakMap,hO=new WeakSet,aKe=function(r){r(),Be(this,gq,!0)},fDt=function(){return`(() => { + const module = {}; + ${ADt} + ${[...I(this,pq)].map(r=>`(${r})(module.exports.default);`).join("")} + return module.exports.default; + })()`};c6=new sKe});var DD,oKe,Iae,uQe=Fn(()=>{Tf();gO();sN();Cae();oKe=class{constructor(){ue(this,DD,new Map)}get(r){let s=I(this,DD).get(r);return s?s[1]:void 0}register(r,s){var p;Cs(!I(this,DD).has(r),`Cannot register over existing handler: ${r}`),Cs(/^[a-zA-Z]+$/.test(r),"Custom query handler names may only contain [a-zA-Z]"),Cs(s.queryAll||s.queryOne,"At least one query method must be implemented.");let c=(p=class extends H0{},Gr(p,"querySelectorAll",nN((C,w,P)=>P.customQuerySelectors.get(PLACEHOLDER("name")).querySelectorAll(C,w),{name:JSON.stringify(r)})),Gr(p,"querySelector",nN((C,w,P)=>P.customQuerySelectors.get(PLACEHOLDER("name")).querySelector(C,w),{name:JSON.stringify(r)})),p),f=nN(C=>{C.customQuerySelectors.register(PLACEHOLDER("name"),{queryAll:PLACEHOLDER("queryAll"),queryOne:PLACEHOLDER("queryOne")})},{name:JSON.stringify(r),queryAll:s.queryAll?PI(s.queryAll):String(void 0),queryOne:s.queryOne?PI(s.queryOne):String(void 0)}).toString();I(this,DD).set(r,[f,c]),c6.append(f)}unregister(r){let s=I(this,DD).get(r);if(!s)throw new Error(`Cannot unregister unknown handler: ${r}`);c6.pop(s[0]),I(this,DD).delete(r)}names(){return[...I(this,DD).keys()]}clear(){for(let[r]of I(this,DD))c6.pop(r);I(this,DD).clear()}};DD=new WeakMap;Iae=new oKe});var _q,cKe=Fn(()=>{sN();_q=class extends H0{};Gr(_q,"querySelector",(r,s,{pierceQuerySelector:c})=>c(r,s)),Gr(_q,"querySelectorAll",(r,s,{pierceQuerySelectorAll:c})=>c(r,s))});var hq,uKe=Fn(()=>{sN();hq=class extends H0{};Gr(hq,"querySelectorAll",(r,s,{pQuerySelectorAll:c})=>c(r,s)),Gr(hq,"querySelector",(r,s,{pQuerySelector:c})=>c(r,s))});function ivr(a,r){let s=0,c="";for(;r(s.push({value:p,offset:C}),"\uE000".repeat(p.length))),a=a.replace(svr,(p,C,w,P)=>(s.push({value:p,offset:P}),`${C}${"\uE001".repeat(w.length)}${C}`));{let p=0,C;for(;(C=a.indexOf("(",p))>-1;){let w=ivr(a,C);s.push({value:w,offset:C}),a=`${a.substring(0,C)}(${"\xB6".repeat(w.length-2)})${a.substring(C+w.length)}`,p=C+w.length}}let c=nvr(a,r),f=new Set;for(let p of s.reverse())for(let C of c){let{offset:w,value:P}=p;if(!(C.pos[0]<=w&&w+P.length<=C.pos[1]))continue;let{content:U}=C,O=w-C.pos[0];C.content=U.slice(0,O)+P+U.slice(O+P.length),C.content!==U&&f.add(C)}for(let p of f){let C=rvr(p.type);if(!C)throw new Error(`Unknown token type: ${p.type}`);C.lastIndex=0;let w=C.exec(p.content);if(!w)throw new Error(`Unable to parse content for ${p.type}: ${p.content}`);Object.assign(p,w.groups)}return c}function SD(a){if(Array.isArray(a))return a.map(r=>r.content).join("");switch(a.type){case"list":return a.list.map(SD).join(",");case"relative":return a.combinator+SD(a.right);case"complex":return SD(a.left)+a.combinator+SD(a.right);case"compound":return a.list.map(SD).join("");default:return a.content}}var mO,tvr,rvr,svr,avr,gDt=Fn(()=>{mO={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},tvr=new Set(["combinator","comma"]),rvr=a=>{switch(a){case"pseudo-element":case"pseudo-class":return new RegExp(mO[a].source.replace("(?\xB6*)","(?.*)"),"gu");default:return mO[a]}};svr=/(['"])([^\\\n]*?)\1/g,avr=/\\./g});function pDt(a){let r=!0,s=!1,c=!1,f=dDt(a);if(f.length===0)return[[],r,c,!1];let p=[],C=[p],w=[C],P=[];for(let U of f){switch(U.type){case"combinator":switch(U.content){case">>>":r=!1,P.length&&(p.push(SD(P)),P.splice(0)),p=[],C.push(">>>"),C.push(p);continue;case">>>>":r=!1,P.length&&(p.push(SD(P)),P.splice(0)),p=[],C.push(">>>>"),C.push(p);continue}break;case"pseudo-element":if(!U.name.startsWith("-p-"))break;r=!1,P.length&&(p.push(SD(P)),P.splice(0));let O=U.name.slice(3);O==="aria"&&(s=!0),p.push({name:O,value:cvr(U.argument??"")});continue;case"pseudo-class":c=!0;break;case"comma":P.length&&(p.push(SD(P)),P.splice(0)),p=[],C=[p],w.push(C);continue}P.push(U)}return P.length&&p.push(SD(P)),[w,r,c,s]}var ovr,cvr,AKe=Fn(()=>{gDt();mO.nesting=/&/g;mO.combinator=/\s*(>>>>?|[\s>+~])\s*/g;ovr=/\\[\s\S]/g,cvr=a=>a.length<=1?a:((a[0]==='"'||a[0]==="'")&&a.endsWith(a[0])&&(a=a.slice(1,-1)),a.replace(ovr,r=>r[1]))});var Eae,lKe=Fn(()=>{sN();Eae=class extends H0{};Gr(Eae,"querySelectorAll",(r,s,{textQuerySelectorAll:c})=>c(r,s))});var mq,fKe=Fn(()=>{sN();mq=class extends H0{};Gr(mq,"querySelectorAll",(r,s,{xpathQuerySelectorAll:c})=>c(r,s)),Gr(mq,"querySelector",(r,s,{xpathQuerySelectorAll:c})=>{for(let f of c(r,s,1))return f;return null})});function Cq(a){for(let r of[Iae.names().map(s=>[s,Iae.get(s)]),Object.entries(uvr)])for(let[s,c]of r)for(let f of Avr){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]=pDt(a);return s?{updatedSelector:a,polling:c?"raf":"mutation",QueryHandler:_O}:{updatedSelector:JSON.stringify(r),polling:f?"raf":"mutation",QueryHandler:hq}}catch{return{updatedSelector:a,polling:"mutation",QueryHandler:_O}}}var uvr,Avr,AQe=Fn(()=>{mae();uDt();uQe();cKe();uKe();AKe();lKe();fKe();uvr={aria:gx,pierce:_q,xpath:mq,text:Eae},Avr=["=","/"]});function hDt(a,r){let s=!1;if(a.prototype[go]){let c=a.prototype[go];a.prototype[go]=function(){if(yae.has(this)){yae.delete(this);return}return c.call(this)},s=!0}if(a.prototype[Bh]){let c=a.prototype[Bh];a.prototype[Bh]=function(){if(yae.has(this)){yae.delete(this);return}return c.call(this)},s=!0}return s&&(a.prototype.move=function(){return yae.add(this),this}),a}function sa(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 RI(a,r){return function(...s){if(!this.disposed)return a.call(this,...s)}}function mB(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 w of f)C.has(w)||(p=!0,C.set(w,new WeakMap)),C=C.get(w);if(p)return a.call(this,...f)}}function Bae(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),w=c.get(C);w||(w=new a6,c.set(C,w));let P=lvr(p,await w.acquire(),!0);return await r.call(this,...f)}catch(C){p.error=C,p.hasError=!0}finally{let C=fvr(p);C&&await C}}}}function u6(a){return({set:r,get:s},c)=>(c.addInitializer(function(){return _Dt.apply(this,[a])}),{set(f){let p=lQe.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;_Dt.apply(this,[a]);let p=lQe.get(this).get(a);return f.on("*",p),f}})}var lvr,fvr,yae,lQe,_Dt,bh=Fn(()=>{Zf();fae();lvr=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},fvr=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),yae=new WeakSet;lQe=new WeakMap,_Dt=function(a){let r=lQe.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),lQe.set(this,r)}});var mDt,dKe,dvr,gvr,xD,Iq=Fn(()=>{Ou();bh();Zf();mDt=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;N--){var G={};for(var H in c)G[H]=H==="access"?{}:c[H];for(var H in c.access)G.access[H]=c.access[H];G.addInitializer=function(de){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(de||null))};var X=(0,s[N])(w==="accessor"?{get:O.get,set:O.set}:O[P],G);if(w==="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))&&(w==="field"?f.unshift(j):O[P]=j)}U&&Object.defineProperty(U,c.name,O),k=!0},dvr=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},gvr=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),xD=(()=>{var P;let a=[hDt],r,s=[],c,f=[],p,C;var w=(P=class{constructor(){mDt(this,f)}async evaluate(O,...j){return O=Tp(this.evaluate.name,O),await this.realm.evaluate(O,this,...j)}async evaluateHandle(O,...j){return O=Tp(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(N=>{let G=[],H=Object.getOwnPropertyDescriptors(N);for(let X in H)H[X]?.enumerable&&G.push(X);return G}),j=new Map,k=await Promise.all(O.map(N=>this.getProperty(N)));for(let[N,G]of Object.entries(O)){let H={stack:[],error:void 0,hasError:!1};try{let X=dvr(H,k[N],!1);X&&j.set(G,X.move())}catch(X){H.error=X,H.hasError=!0}finally{gvr(H)}}return j}[(p=[sa()],C=[sa()],go)](){return void this.dispose().catch(Ss)}[Bh](){return this.dispose()}},c=P,(()=>{let O=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;dKe(P,null,p,{kind:"method",name:"getProperty",static:!1,private:!1,access:{has:j=>"getProperty"in j,get:j=>j.getProperty},metadata:O},null,f),dKe(P,null,C,{kind:"method",name:"getProperties",static:!1,private:!1,access:{has:j=>"getProperties"in j,get:j=>j.getProperties},metadata:O},null,f),dKe(null,r={value:c},a,{kind:"class",name:c.name,metadata:O},null,s),w=c=r.value,O&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:O}),mDt(c,s)})(),P);return w=c})()});function hvr(a){for(let r of a)if(!(r instanceof aN))throw new Error("Unknown locator for race candidate");return a}var pvr,_vr,Eq,CO,IO,EO,vae,yO,BO,px,CDt,IDt,EDt,yDt,aN,yq,Bq,_Qe,Dq,MI,dQe,Qq,pKe,gQe,vq,_Ke,pQe,bq,A6,hQe,Qae,l6,wq,mQe,gKe,fQe,bae=Fn(()=>{_b();kf();Ou();pvr=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},_vr=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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"})(Eq||(Eq={}));aN=class extends ya{constructor(){super(...arguments);ue(this,px);Gr(this,"visibility",null);Gr(this,"_timeout",3e4);ue(this,CO,!0);ue(this,IO,!0);ue(this,EO,!0);Gr(this,"operators",{conditions:(s,c)=>c_(f=>$F(...s.map(p=>p(f,c))).pipe(Gje(f))),retryAndRaceWithSignalAndTimer:(s,c)=>{let f=[];return s&&f.push(wD(s,c)),f.push(G_(this._timeout,c)),_wt(Xse({delay:fQe}),_p(...f))}});ue(this,vae,(s,c)=>I(this,IO)?aA(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(KK()):XF);ue(this,yO,s=>I(this,EO)?ZF(()=>aA(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(eN(([c,f])=>c.x===f.x&&c.y===f.y&&c.width===f.width&&c.height===f.height),Xse({delay:fQe}),KK()):XF);ue(this,BO,s=>I(this,CO)?aA(s.isIntersectingViewport({threshold:0})).pipe(aQ(c=>!c),c_(()=>aA(s.scrollIntoView())),c_(()=>ZF(()=>aA(s.isIntersectingViewport({threshold:0}))).pipe(eN(pb),Xse({delay:fQe}),KK()))):XF)}static race(s){return gKe.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,IO,s),c}setEnsureElementIsInTheViewport(s){let c=this._clone();return Be(c,CO,s),c}setWaitForStableBoundingBox(s){let c=this._clone();return Be(c,EO,s),c}copyOptions(s){return this._timeout=s._timeout,this.visibility=s.visibility,Be(this,IO,I(s,IO)),Be(this,CO,I(s,CO)),Be(this,EO,I(s,EO)),this}clone(){return this._clone()}async waitHandle(s){let c=new Error("Locator.waitHandle");return await Xd(this._wait(s).pipe(this.operators.retryAndRaceWithSignalAndTimer(s?.signal,c)))}async wait(s){let c={stack:[],error:void 0,hasError:!1};try{return await pvr(c,await this.waitHandle(s),!1).jsonValue()}catch(f){c.error=f,c.hasError=!0}finally{_vr(c)}}map(s){return new pQe(this._clone(),c=>c.evaluateHandle(s))}filter(s){return new gQe(this._clone(),async(c,f)=>(await c.frame.waitForFunction(s,{signal:f,timeout:this._timeout},c),!0))}filterHandle(s){return new gQe(this._clone(),s)}mapHandle(s){return new pQe(this._clone(),s)}click(s){return Xd(Ke(this,px,CDt).call(this,s))}fill(s,c){return Xd(Ke(this,px,IDt).call(this,s,c))}hover(s){return Xd(Ke(this,px,EDt).call(this,s))}scroll(s){return Xd(Ke(this,px,yDt).call(this,s))}};CO=new WeakMap,IO=new WeakMap,EO=new WeakMap,vae=new WeakMap,yO=new WeakMap,BO=new WeakMap,px=new WeakSet,CDt=function(s){let c=s?.signal,f=new Error("Locator.click");return this._wait(s).pipe(this.operators.conditions([I(this,BO),I(this,yO),I(this,vae)],c),oO(()=>this.emit(Eq.Action,void 0)),c_(p=>aA(p.click(s)).pipe(jK(C=>{throw p.dispose().catch(Ss),C}))),this.operators.retryAndRaceWithSignalAndTimer(c,f))},IDt=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,BO),I(this,yO),I(this,vae)],f),oO(()=>this.emit(Eq.Action,void 0)),c_(w=>aA(w.evaluate(P=>P instanceof HTMLSelectElement?"select":P instanceof HTMLTextAreaElement?"typeable-input":P instanceof HTMLInputElement?new Set(["textarea","text","url","tel","search","password","number","email"]).has(P.type)?"typeable-input":"other-input":P.isContentEditable?"contenteditable":"unknown")).pipe(c_(P=>{let U=()=>aA(w.focus()).pipe(c_(()=>aA(w.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(P){case"select":return aA(w.select(s).then(nO));case"contenteditable":case"typeable-input":return s.length{let k=O,N=k.isContentEditable?k.innerText:O.value;return j.length<=N.length||!j.startsWith(N)?(k.isContentEditable?k.innerText="":O.value="",j):(k.isContentEditable?(k.innerText="",k.innerText=N):(O.value="",O.value=N),j.substring(N.length))},s)).pipe(c_(O=>O?aA(w.type(O)):ZE(void 0))):U();case"other-input":return U();case"unknown":throw new Error("Element cannot be filled out.")}})).pipe(jK(P=>{throw w.dispose().catch(Ss),P}))),this.operators.retryAndRaceWithSignalAndTimer(f,C))},EDt=function(s){let c=s?.signal,f=new Error("Locator.hover");return this._wait(s).pipe(this.operators.conditions([I(this,BO),I(this,yO)],c),oO(()=>this.emit(Eq.Action,void 0)),c_(p=>aA(p.hover()).pipe(jK(C=>{throw p.dispose().catch(Ss),C}))),this.operators.retryAndRaceWithSignalAndTimer(c,f))},yDt=function(s){let c=s?.signal,f=new Error("Locator.scroll");return this._wait(s).pipe(this.operators.conditions([I(this,BO),I(this,yO)],c),oO(()=>this.emit(Eq.Action,void 0)),c_(p=>aA(p.evaluate((C,w,P)=>{w!==void 0&&(C.scrollTop=w),P!==void 0&&(C.scrollLeft=P)},s?.scrollTop,s?.scrollLeft)).pipe(jK(C=>{throw p.dispose().catch(Ss),C}))),this.operators.retryAndRaceWithSignalAndTimer(c,f))};_Qe=class _Qe extends aN{constructor(s,c){super();ue(this,yq);ue(this,Bq);Be(this,yq,s),Be(this,Bq,c)}static create(s,c){return new _Qe(s,c).setTimeout("getDefaultTimeout"in s?s.getDefaultTimeout():s.page().getDefaultTimeout())}_clone(){return new _Qe(I(this,yq),I(this,Bq))}_wait(s){let c=s?.signal;return ZF(()=>aA(I(this,yq).waitForFunction(I(this,Bq),{timeout:this.timeout,signal:c}))).pipe(zse())}};yq=new WeakMap,Bq=new WeakMap;Dq=_Qe,dQe=class extends aN{constructor(s){super();ue(this,MI);Be(this,MI,s),this.copyOptions(I(this,MI))}get delegate(){return I(this,MI)}setTimeout(s){let c=super.setTimeout(s);return Be(c,MI,I(this,MI).setTimeout(s)),c}setVisibility(s){let c=super.setVisibility(s);return Be(c,MI,I(c,MI).setVisibility(s)),c}setWaitForEnabled(s){let c=super.setWaitForEnabled(s);return Be(c,MI,I(this,MI).setWaitForEnabled(s)),c}setEnsureElementIsInTheViewport(s){let c=super.setEnsureElementIsInTheViewport(s);return Be(c,MI,I(this,MI).setEnsureElementIsInTheViewport(s)),c}setWaitForStableBoundingBox(s){let c=super.setWaitForStableBoundingBox(s);return Be(c,MI,I(this,MI).setWaitForStableBoundingBox(s)),c}};MI=new WeakMap;pKe=class pKe extends dQe{constructor(s,c){super(s);ue(this,Qq);Be(this,Qq,c)}_clone(){return new pKe(this.delegate.clone(),I(this,Qq)).copyOptions(this)}_wait(s){return this.delegate._wait(s).pipe(c_(c=>aA(Promise.resolve(I(this,Qq).call(this,c,s?.signal))).pipe(aQ(f=>f),Xf(()=>c))),zse())}};Qq=new WeakMap;gQe=pKe,_Ke=class _Ke extends dQe{constructor(s,c){super(s);ue(this,vq);Be(this,vq,c)}_clone(){return new _Ke(this.delegate.clone(),I(this,vq)).copyOptions(this)}_wait(s){return this.delegate._wait(s).pipe(c_(c=>aA(Promise.resolve(I(this,vq).call(this,c,s?.signal)))))}};vq=new WeakMap;pQe=_Ke,Qae=class Qae extends aN{constructor(s,c){super();ue(this,bq);ue(this,A6);ue(this,hQe,s=>this.visibility?(()=>{switch(this.visibility){case"hidden":return ZF(()=>aA(s.isHidden()));case"visible":return ZF(()=>aA(s.isVisible()))}})().pipe(eN(pb),Xse({delay:fQe}),KK()):XF);Be(this,bq,s),Be(this,A6,c)}static create(s,c){return new Qae(s,c).setTimeout("getDefaultTimeout"in s?s.getDefaultTimeout():s.page().getDefaultTimeout())}static createFromHandle(s,c){return new Qae(s,c).setTimeout("getDefaultTimeout"in s?s.getDefaultTimeout():s.page().getDefaultTimeout())}_clone(){return new Qae(I(this,bq),I(this,A6)).copyOptions(this)}_wait(s){let c=s?.signal;return ZF(()=>typeof I(this,A6)=="string"?aA(I(this,bq).waitForSelector(I(this,A6),{visible:!1,timeout:this._timeout,signal:c})):ZE(I(this,A6))).pipe(aQ(f=>f!==null),zse(),this.operators.conditions([I(this,hQe)],c))}};bq=new WeakMap,A6=new WeakMap,hQe=new WeakMap;l6=Qae;mQe=class mQe extends aN{constructor(s){super();ue(this,wq);Be(this,wq,s)}static create(s){let c=hvr(s);return new mQe(c)}_clone(){return new mQe(I(this,wq).map(s=>s.clone())).copyOptions(this)}_wait(s){return HK(...I(this,wq).map(c=>c._wait(s)))}};wq=new WeakMap;gKe=mQe,fQe=100});function Kl(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 xD?await this.realm.transferHandle(f):(Array.isArray(f)&&await Promise.all(f.map(async(p,C,w)=>{p instanceof xD&&(w[C]=await this.realm.transferHandle(p))})),f instanceof Map&&await Promise.all([...f.entries()].map(async([p,C])=>{C instanceof xD&&f.set(p,await this.realm.transferHandle(C))})),f)}}function Ivr(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 mvr,Ff,wae,Dae,Cvr,CQe,IQe=Fn(()=>{AQe();pO();Ou();Tf();o6();bh();rKe();Iq();bae();mvr=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;N--){var G={};for(var H in c)G[H]=H==="access"?{}:c[H];for(var H in c.access)G.access[H]=c.access[H];G.addInitializer=function(de){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(de||null))};var X=(0,s[N])(w==="accessor"?{get:O.get,set:O.set}:O[P],G);if(w==="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))&&(w==="field"?f.unshift(j):O[P]=j)}U&&Object.defineProperty(U,c.name,O),k=!0},wae=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},Dae=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),Cvr=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})};CQe=(()=>{var Vr,hKe,mKe,CKe,BDt,IKe,EKe,QDt,vDt,bDt,ns;let a=xD,r=[],s,c,f,p,C,w,P,U,O,j,k,N,G,H,X,de,we,Je,Te,Ct,Ve,st,cr,ct,Yt,yt,Rt,kt,Tt,Yr,Zr,wt,_n;return ns=class extends a{constructor(Fi){super();ue(this,Vr);Gr(this,"isolatedHandle",mvr(this,r));Gr(this,"handle");this.handle=Fi,this[dq]=!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=Tp(this.evaluate.name,Fi),await this.handle.evaluate(Fi,...Qe)}async evaluateHandle(Fi,...Qe){return Fi=Tp(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:qr}=Cq(Fi);return await qr.queryOne(this,Qe)}async $$(Fi,Qe){return Qe?.isolate===!1?await Ke(this,Vr,mKe).call(this,Fi):await I(this,Vr,hKe).call(this,Fi)}async $eval(Fi,Qe,...qr){let vt={stack:[],error:void 0,hasError:!1};try{Qe=Tp(this.$eval.name,Qe);let ai=wae(vt,await this.$(Fi),!1);if(!ai)throw new Error(`Error: failed to find element matching selector "${Fi}"`);return await ai.evaluate(Qe,...qr)}catch(ai){vt.error=ai,vt.hasError=!0}finally{Dae(vt)}}async $$eval(Fi,Qe,...qr){let vt={stack:[],error:void 0,hasError:!1};try{Qe=Tp(this.$$eval.name,Qe);let ai=await this.$$(Fi),Ci=wae(vt,await this.evaluateHandle((ei,...hs)=>hs,...ai),!1),[Xr]=await Promise.all([Ci.evaluate(Qe,...qr),...ai.map(ei=>ei.dispose())]);return Xr}catch(ai){vt.error=ai,vt.hasError=!0}finally{Dae(vt)}}async waitForSelector(Fi,Qe={}){let{updatedSelector:qr,QueryHandler:vt,polling:ai}=Cq(Fi);return await vt.waitFor(this,qr,{polling:ai,...Qe})}async isVisible(){return await Ke(this,Vr,CKe).call(this,!0)}async isHidden(){return await Ke(this,Vr,CKe).call(this,!1)}async toElement(Fi){if(!await this.evaluate((qr,vt)=>qr.nodeName===vt.toUpperCase(),Fi))throw new Error(`Element is not a(n) \`${Fi}\` element`);return this}async clickablePoint(Fi){let Qe=await Ke(this,Vr,BDt).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:qr}=await this.clickablePoint(Fi.offset);try{await this.frame.page().mouse.click(Qe,qr,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,qr)}}async drag(Fi){await this.scrollIntoViewIfNeeded();let Qe=this.frame.page();if(Qe.isDragInterceptionEnabled()){let qr=await this.clickablePoint();return Fi instanceof ns&&(Fi=await Fi.clickablePoint()),await Qe.mouse.drag(qr,Fi)}try{Qe._isDragging||(Qe._isDragging=!0,await this.hover(),await Qe.mouse.down()),Fi instanceof ns?await Fi.hover():await Qe.mouse.move(Fi.x,Fi.y)}catch(qr){throw Qe._isDragging=!1,qr}}async dragEnter(Fi={items:[],dragOperationsMask:1}){let Qe=this.frame.page();await this.scrollIntoViewIfNeeded();let qr=await this.clickablePoint();await Qe.mouse.dragEnter(qr,Fi)}async dragOver(Fi={items:[],dragOperationsMask:1}){let Qe=this.frame.page();await this.scrollIntoViewIfNeeded();let qr=await this.clickablePoint();await Qe.mouse.dragOver(qr,Fi)}async drop(Fi={items:[],dragOperationsMask:1}){let Qe=this.frame.page();if("items"in Fi){await this.scrollIntoViewIfNeeded();let qr=await this.clickablePoint();await Qe.mouse.drop(qr,Fi)}else await Fi.drag(this),Qe._isDragging=!1,await Qe.mouse.up()}async dragAndDrop(Fi,Qe){let qr=this.frame.page();Cs(qr.isDragInterceptionEnabled(),"Drag Interception is not enabled!"),await this.scrollIntoViewIfNeeded();let vt=await this.clickablePoint(),ai=await Fi.clickablePoint();await qr.mouse.dragAndDrop(vt,ai,Qe)}async select(...Fi){for(let Qe of Fi)Cs(FI(Qe),'Values must be strings. Found value "'+Qe+'" of type "'+typeof Qe+'"');return await this.evaluate((Qe,qr)=>{let vt=new Set(qr);if(!(Qe instanceof HTMLSelectElement))throw new Error("Element is not a ");let G=jm.value.path;if(G&&(k=k.map(X=>G.win32.isAbsolute(X)||G.posix.isAbsolute(X)?X:G.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 G=(await this.client.send("DOM.describeNode",{objectId:this.handle.id})).node.backendNodeId,H=this.frame._id;await this.client.send("Autofill.trigger",{fieldId:G,frameId:H,card:k.creditCard})}async*queryAXTree(k,N){let{nodes:G}=await this.client.send("Accessibility.queryAXTree",{objectId:this.id,accessibleName:k,role:N}),H=G.filter(X=>!(X.ignored||!X.role||Fvr.has(X.role.value)));return yield*hB.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,w=new WeakSet,KDt=function(){return this.frame._frameManager},(()=>{let k=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;s=[sa()],c=[sa(),Kl],f=[sa(),Kl],p=[sa()],HQe(U,null,s,{kind:"method",name:"contentFrame",static:!1,private:!1,access:{has:N=>"contentFrame"in N,get:N=>N.contentFrame},metadata:k},null,r),HQe(U,null,c,{kind:"method",name:"scrollIntoView",static:!1,private:!1,access:{has:N=>"scrollIntoView"in N,get:N=>N.scrollIntoView},metadata:k},null,r),HQe(U,null,f,{kind:"method",name:"uploadFile",static:!1,private:!1,access:{has:N=>"uploadFile"in N,get:N=>N.uploadFile},metadata:k},null,r),HQe(U,null,p,{kind:"method",name:"autofill",static:!1,private:!1,access:{has:N=>"autofill"in N,get:N=>N.autofill},metadata:k},null,r),k&&Object.defineProperty(U,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:k})})(),U})();var Nvr=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},Pvr=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),Rvr=new C6("__ariaQuerySelector",gx.queryOne,""),Mvr=new C6("__ariaQuerySelectorAll",(async(a,r)=>{let s=gx.queryAll(a,r);return await a.realm.evaluateHandle((...c)=>c,...await hB.collect(s))}),""),v6,WO,ND,hW,Ioe,YO,KQe,EB,WDt,YDt,VDt,Eoe,b6,YKe,VKe,mW=class extends ya{constructor(s,c,f){super();ue(this,EB);ue(this,v6);ue(this,WO);ue(this,ND);ue(this,hW);ue(this,Ioe,new Ol);ue(this,YO,new Map);ue(this,KQe,new a6);ue(this,Eoe,!1);ue(this,b6);Be(this,v6,s),Be(this,WO,f),Be(this,ND,c.id),c.name&&Be(this,hW,c.name);let p=I(this,Ioe).use(new ya(I(this,v6)));p.on("Runtime.bindingCalled",Ke(this,EB,YDt).bind(this)),p.on("Runtime.executionContextDestroyed",async C=>{C.executionContextId===I(this,ND)&&this[go]()}),p.on("Runtime.executionContextsCleared",async()=>{this[go]()}),p.on("Runtime.consoleAPICalled",Ke(this,EB,VDt).bind(this)),p.on(Ql.Disconnected,()=>{this[go]()})}get id(){return I(this,ND)}get puppeteerUtil(){let s=Promise.resolve();return I(this,Eoe)||(s=Promise.all([Ke(this,EB,YKe).call(this,Rvr),Ke(this,EB,YKe).call(this,Mvr)]),Be(this,Eoe,!0)),c6.inject(c=>{I(this,b6)&&I(this,b6).then(f=>{f.dispose()}),Be(this,b6,s.then(()=>this.evaluateHandle(c)))},!I(this,b6)),I(this,b6)}async evaluate(s,...c){return await Ke(this,EB,VKe).call(this,!0,s,...c)}async evaluateHandle(s,...c){return await Ke(this,EB,VKe).call(this,!1,s,...c)}[go](){I(this,Ioe).dispose(),this.emit("disposed",void 0)}};v6=new WeakMap,WO=new WeakMap,ND=new WeakMap,hW=new WeakMap,Ioe=new WeakMap,YO=new WeakMap,KQe=new WeakMap,EB=new WeakSet,WDt=async function(s){let c={stack:[],error:void 0,hasError:!1};try{if(I(this,YO).has(s.name))return;let f=Nvr(c,await I(this,KQe).acquire(),!1);try{await I(this,v6).send("Runtime.addBinding",I(this,hW)?{name:B6+s.name,executionContextName:I(this,hW)}:{name:B6+s.name,executionContextId:I(this,ND)}),await this.evaluate(qKe,"internal",s.name,B6),I(this,YO).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{Pvr(c)}},YDt=async function(s){if(s.executionContextId!==I(this,ND))return;let c;try{c=JSON.parse(s.payload)}catch{return}let{type:f,name:p,seq:C,args:w,isTrivial:P}=c;if(f!=="internal"){this.emit("bindingcalled",s);return}if(!I(this,YO).has(p)){this.emit("bindingcalled",s);return}try{await I(this,YO).get(p)?.run(this,C,w,P)}catch(U){Ss(U)}},VDt=function(s){s.executionContextId===I(this,ND)&&this.emit("consoleapicalled",s)},Eoe=new WeakMap,b6=new WeakMap,YKe=async function(s){try{await Ke(this,EB,WDt).call(this,s)}catch(c){Ss(c)}},VKe=async function(s,c,...f){let p=V1e(q1e(c)?.toString()??Km.INTERNAL_URL);if(FI(c)){let N=I(this,ND),G=c,H=rq.test(G)?G:`${G} +${p} +`,{exceptionDetails:X,result:de}=await I(this,v6).send("Runtime.evaluate",{expression:H,contextId:N,returnByValue:s,awaitPromise:!0,userGesture:!0}).catch(qDt);if(X)throw KKe(X);return s?pN(de):I(this,WO).createCdpHandle(de)}let C=PI(c),w=rq.test(C)?C:`${C} +${p} +`,P;try{P=I(this,v6).send("Runtime.callFunctionOn",{functionDeclaration:w,executionContextId:I(this,ND),arguments:f.some(N=>N instanceof J0)?await Promise.all(f.map(N=>j(this,N))):f.map(N=>k(this,N)),returnByValue:s,awaitPromise:!0,userGesture:!0})}catch(N){throw N instanceof TypeError&&N.message.startsWith("Converting circular structure to JSON")&&(N.message+=" Recursive objects are not allowed."),N}let{exceptionDetails:U,result:O}=await P.catch(qDt);if(U)throw KKe(U);if(s)return pN(O);return I(this,WO).createCdpHandle(O);async function j(N,G){return G instanceof J0&&(G=await G.get(N)),k(N,G)}function k(N,G){if(typeof G=="bigint")return{unserializableValue:`${G.toString()}n`};if(Object.is(G,-0))return{unserializableValue:"-0"};if(Object.is(G,1/0))return{unserializableValue:"Infinity"};if(Object.is(G,-1/0))return{unserializableValue:"-Infinity"};if(Object.is(G,NaN))return{unserializableValue:"NaN"};let H=G&&(G instanceof Q6||G instanceof jQe)?G:null;if(H){if(H.realm!==I(N,WO))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:G}}};var qDt=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};Sq();Bl();Ou();G0();Zf();NI();TQe();var J_;(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")})(J_||(J_={}));_b();xQe();kf();Ou();Zf();var Ix,PD,w6,LI,zDt,XDt,ZDt,qQe,WQe,VO=class extends Mq{constructor(s,c){super(c);ue(this,LI);ue(this,Ix);ue(this,PD,new ya);ue(this,w6);Be(this,w6,s)}get environment(){return I(this,w6)}get client(){return I(this,w6).client}get emitter(){return I(this,PD)}setContext(s){I(this,Ix)?.[go](),s.once("disposed",Ke(this,LI,zDt).bind(this)),s.on("consoleapicalled",Ke(this,LI,XDt).bind(this)),s.on("bindingcalled",Ke(this,LI,ZDt).bind(this)),Be(this,Ix,s),I(this,PD).emit("context",s),this.taskManager.rerunAll()}hasContext(){return!!I(this,Ix)}get context(){return I(this,Ix)}async evaluateHandle(s,...c){s=Tp(this.evaluateHandle.name,s);let f=Ke(this,LI,qQe).call(this);return f||(f=await Ke(this,LI,WQe).call(this)),await f.evaluateHandle(s,...c)}async evaluate(s,...c){s=Tp(this.evaluate.name,s);let f=Ke(this,LI,qQe).call(this);return f||(f=await Ke(this,LI,WQe).call(this)),await f.evaluate(s,...c)}async adoptBackendNode(s){let c=Ke(this,LI,qQe).call(this);c||(c=await Ke(this,LI,WQe).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 jQe(this,s):new Q6(this,s)}[go](){I(this,Ix)?.[go](),I(this,PD).emit("disposed",void 0),super[go](),I(this,PD).removeAllListeners()}};Ix=new WeakMap,PD=new WeakMap,w6=new WeakMap,LI=new WeakSet,zDt=function(){Be(this,Ix,void 0),"clearDocumentHandle"in I(this,w6)&&I(this,w6).clearDocumentHandle()},XDt=function(s){I(this,PD).emit("consoleapicalled",s)},ZDt=function(s){I(this,PD).emit("bindingcalled",s)},qQe=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,Ix)},WQe=async function(){let s=new Error("Execution context was destroyed");return await Xd(Ul(I(this,PD),"context").pipe(_p(Ul(I(this,PD),"disposed").pipe(Xf(()=>{throw s})),G_(this.timeoutSettings.timeout()))))};var fQ=Symbol("mainWorld"),CW=Symbol("puppeteerWorld");Sq();kf();Tf();G0();Zf();var Lvr=new Map([["load","load"],["domcontentloaded","DOMContentLoaded"],["networkidle0","networkIdle"],["networkidle2","networkAlmostIdle"]]),yoe,D6,IW,S6,XO,Boe,x6,Qoe,voe,boe,k6,woe,Doe,_N,hp,$Dt,eSt,tSt,rSt,iSt,nSt,YQe,zO,EW=class{constructor(r,s,c,f,p){ue(this,hp);ue(this,yoe);ue(this,D6);ue(this,IW);ue(this,S6,null);ue(this,XO,new Ol);ue(this,Boe);ue(this,x6);ue(this,Qoe,zu.create());ue(this,voe,zu.create());ue(this,boe,zu.create());ue(this,k6,new Error("LifecycleWatcher terminated"));ue(this,woe);ue(this,Doe);ue(this,_N);Array.isArray(c)?c=c.slice():typeof c=="string"&&(c=[c]),Be(this,Boe,s._loaderId),Be(this,yoe,c.map(U=>{let O=Lvr.get(U);return Cs(O,"Unknown value for options.waitUntil: "+U),O})),p?.addEventListener("abort",()=>{p.reason instanceof Error&&(p.reason.cause=I(this,k6)),I(this,x6).reject(p.reason)}),Be(this,D6,s),Be(this,IW,f),I(this,XO).use(new ya(s._frameManager)).on(J_.LifecycleEvent,Ke(this,hp,zO).bind(this));let w=I(this,XO).use(new ya(s));w.on(rm.FrameNavigatedWithinDocument,Ke(this,hp,iSt).bind(this)),w.on(rm.FrameNavigated,Ke(this,hp,nSt).bind(this)),w.on(rm.FrameSwapped,Ke(this,hp,YQe).bind(this)),w.on(rm.FrameSwappedByActivation,Ke(this,hp,YQe).bind(this)),w.on(rm.FrameDetached,Ke(this,hp,rSt).bind(this));let P=I(this,XO).use(new ya(r));P.on(wh.Request,Ke(this,hp,$Dt).bind(this)),P.on(wh.Response,Ke(this,hp,tSt).bind(this)),P.on(wh.RequestFailed,Ke(this,hp,eSt).bind(this)),Be(this,x6,zu.create({timeout:I(this,IW),message:`Navigation timeout of ${I(this,IW)} ms exceeded`})),Ke(this,hp,zO).call(this)}async navigationResponse(){return await I(this,_N)?.valueOrThrow(),I(this,S6)?I(this,S6).response():null}sameDocumentNavigationPromise(){return I(this,Qoe).valueOrThrow()}newDocumentNavigationPromise(){return I(this,boe).valueOrThrow()}lifecyclePromise(){return I(this,voe).valueOrThrow()}terminationPromise(){return I(this,x6).valueOrThrow()}dispose(){I(this,XO).dispose(),I(this,k6).cause=new Error("LifecycleWatcher disposed"),I(this,x6).resolve(I(this,k6))}};yoe=new WeakMap,D6=new WeakMap,IW=new WeakMap,S6=new WeakMap,XO=new WeakMap,Boe=new WeakMap,x6=new WeakMap,Qoe=new WeakMap,voe=new WeakMap,boe=new WeakMap,k6=new WeakMap,woe=new WeakMap,Doe=new WeakMap,_N=new WeakMap,hp=new WeakSet,$Dt=function(r){r.frame()!==I(this,D6)||!r.isNavigationRequest()||(Be(this,S6,r),I(this,_N)?.resolve(),Be(this,_N,zu.create()),r.response()!==null&&I(this,_N)?.resolve())},eSt=function(r){I(this,S6)?.id===r.id&&I(this,_N)?.resolve()},tSt=function(r){I(this,S6)?.id===r.request().id&&I(this,_N)?.resolve()},rSt=function(r){if(I(this,D6)===r){I(this,k6).message="Navigating frame was detached",I(this,x6).resolve(I(this,k6));return}Ke(this,hp,zO).call(this)},iSt=function(){Be(this,woe,!0),Ke(this,hp,zO).call(this)},nSt=function(r){if(r==="BackForwardCacheRestore")return Ke(this,hp,YQe).call(this);Ke(this,hp,zO).call(this)},YQe=function(){Be(this,Doe,!0),Ke(this,hp,zO).call(this)},zO=function(){if(!r(I(this,D6),I(this,yoe)))return;I(this,voe).resolve(),I(this,woe)&&I(this,Qoe).resolve(void 0),(I(this,Doe)||I(this,D6)._loaderId!==I(this,Boe))&&I(this,boe).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 Ovr=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;N--){var G={};for(var H in c)G[H]=H==="access"?{}:c[H];for(var H in c.access)G.access[H]=c.access[H];G.addInitializer=function(de){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(de||null))};var X=(0,s[N])(w==="accessor"?{get:O.get,set:O.set}:O[P],G);if(w==="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))&&(w==="field"?f.unshift(j):O[P]=j)}U&&Object.defineProperty(U,c.name,O),k=!0},zKe=(()=>{var U,O,j,k,sSt,aSt,oSt,X;let a=EQe,r=[],s,c,f,p,C,w,P;return X=class extends a{constructor(Je,Te,Ct,Ve){super();ue(this,k);ue(this,U,(Ovr(this,r),""));ue(this,O,!1);ue(this,j);Gr(this,"_frameManager");Gr(this,"_loaderId","");Gr(this,"_lifecycleEvents",new Set);Gr(this,"_id");Gr(this,"_parentId");Gr(this,"accessibility");Gr(this,"worlds");this._frameManager=Je,Be(this,U,""),this._id=Te,this._parentId=Ct,Be(this,O,!1),Be(this,j,Ve),this._loaderId="",this.worlds={[fQ]:new VO(this,this._frameManager.timeoutSettings),[CW]:new VO(this,this._frameManager.timeoutSettings)},this.accessibility=new jq(this.worlds[fQ],Te),this.on(rm.FrameSwappedByActivation,()=>{this._onLoadingStarted(),this._onLoadingStopped()}),this.worlds[fQ].emitter.on("consoleapicalled",Ke(this,k,sSt).bind(this)),this.worlds[fQ].emitter.on("bindingcalled",Ke(this,k,aSt).bind(this))}_client(){return I(this,j)}updateId(Je){this._id=Je}updateClient(Je){Be(this,j,Je)}page(){return this._frameManager.page()}async goto(Je,Te={}){let{referer:Ct=this._frameManager.networkManager.extraHTTPHeaders().referer,referrerPolicy:Ve=this._frameManager.networkManager.extraHTTPHeaders()["referer-policy"],waitUntil:st=["load"],timeout:cr=this._frameManager.timeoutSettings.navigationTimeout()}=Te,ct=!1,Yt=new EW(this._frameManager.networkManager,this,st,cr),yt=await zu.race([Rt(I(this,j),Je,Ct,Ve?Uvr(Ve):void 0,this._id),Yt.terminationPromise()]);yt||(yt=await zu.race([Yt.terminationPromise(),ct?Yt.newDocumentNavigationPromise():Yt.sameDocumentNavigationPromise()]));try{if(yt)throw yt;return await Yt.navigationResponse()}finally{Yt.dispose()}async function Rt(kt,Tt,Yr,Zr,wt){try{let _n=await kt.send("Page.navigate",{url:Tt,referrer:Yr,frameId:wt,referrerPolicy:Zr});return ct=!!_n.loaderId,_n.errorText==="net::ERR_HTTP_RESPONSE_CODE_FAILURE"?null:_n.errorText?new Error(`${_n.errorText} at ${Tt}`):null}catch(_n){if(u_(_n))return _n;throw _n}}}async waitForNavigation(Je={}){let{waitUntil:Te=["load"],timeout:Ct=this._frameManager.timeoutSettings.navigationTimeout(),signal:Ve}=Je,st=new EW(this._frameManager.networkManager,this,Te,Ct,Ve),cr=await zu.race([st.terminationPromise(),...Je.ignoreSameDocumentNavigation?[]:[st.sameDocumentNavigationPromise()],st.newDocumentNavigationPromise()]);try{if(cr)throw cr;let ct=await zu.race([st.terminationPromise(),st.navigationResponse()]);if(ct instanceof Error)throw cr;return ct||null}finally{st.dispose()}}get client(){return I(this,j)}mainRealm(){return this.worlds[fQ]}isolatedRealm(){return this.worlds[CW]}async setContent(Je,Te={}){let{waitUntil:Ct=["load"],timeout:Ve=this._frameManager.timeoutSettings.navigationTimeout()}=Te;await this.setFrameContent(Je);let st=new EW(this._frameManager.networkManager,this,Ct,Ve),cr=await zu.race([st.terminationPromise(),st.lifecyclePromise()]);if(st.dispose(),cr)throw cr}url(){return I(this,U)}parentFrame(){return this._frameManager._frameTree.parentFrame(this._id)||null}childFrames(){return this._frameManager._frameTree.childFrames(this._id)}async addPreloadScript(Je){let Te=this.parentFrame();if(Te&&I(this,j)===Te.client||Je.getIdForFrame(this))return;let{identifier:Ct}=await I(this,j).send("Page.addScriptToEvaluateOnNewDocument",{source:Je.source});Je.setIdForFrame(this,Ct)}async addExposedFunctionBinding(Je){this!==this._frameManager.mainFrame()&&!this._hasStartedLoading||await Promise.all([I(this,j).send("Runtime.addBinding",{name:B6+Je.name}),this.evaluate(Je.initSource).catch(Ss)])}async removeExposedFunctionBinding(Je){this!==this._frameManager.mainFrame()&&!this._hasStartedLoading||await Promise.all([I(this,j).send("Runtime.removeBinding",{name:B6+Je.name}),this.evaluate(Te=>{globalThis[Te]=void 0},Je.name).catch(Ss)])}async waitForDevicePrompt(Je={}){return await Ke(this,k,oSt).call(this).waitForDevicePrompt(Je)}_navigated(Je){this._name=Je.name,Be(this,U,`${Je.url}${Je.urlFragment||""}`)}_navigatedWithinDocument(Je){Be(this,U,Je)}_onLifecycleEvent(Je,Te){Te==="init"&&(this._loaderId=Je,this._lifecycleEvents.clear()),this._lifecycleEvents.add(Te)}_onLoadingStopped(){this._lifecycleEvents.add("DOMContentLoaded"),this._lifecycleEvents.add("load")}_onLoadingStarted(){this._hasStartedLoading=!0}get detached(){return I(this,O)}[(s=[vl],c=[vl],f=[vl],p=[vl],C=[vl],w=[vl],P=[vl],go)](){I(this,O)||(Be(this,O,!0),this.worlds[fQ][go](),this.worlds[CW][go]())}exposeFunction(){throw new Ho}async frameElement(){let Je=this.parentFrame();if(!Je)return null;let{backendNodeId:Te}=await Je.client.send("DOM.getFrameOwner",{frameId:this._id});return await Je.mainRealm().adoptBackendNode(Te)}},U=new WeakMap,O=new WeakMap,j=new WeakMap,k=new WeakSet,sSt=function(Je){this._frameManager.emit(J_.ConsoleApiCalled,[this.worlds[fQ],Je])},aSt=function(Je){this._frameManager.emit(J_.BindingCalled,[this.worlds[fQ],Je])},oSt=function(){return this._frameManager._deviceRequestPromptManager(I(this,j))},(()=>{let Je=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;ZO(X,null,s,{kind:"method",name:"goto",static:!1,private:!1,access:{has:Te=>"goto"in Te,get:Te=>Te.goto},metadata:Je},null,r),ZO(X,null,c,{kind:"method",name:"waitForNavigation",static:!1,private:!1,access:{has:Te=>"waitForNavigation"in Te,get:Te=>Te.waitForNavigation},metadata:Je},null,r),ZO(X,null,f,{kind:"method",name:"setContent",static:!1,private:!1,access:{has:Te=>"setContent"in Te,get:Te=>Te.setContent},metadata:Je},null,r),ZO(X,null,p,{kind:"method",name:"addPreloadScript",static:!1,private:!1,access:{has:Te=>"addPreloadScript"in Te,get:Te=>Te.addPreloadScript},metadata:Je},null,r),ZO(X,null,C,{kind:"method",name:"addExposedFunctionBinding",static:!1,private:!1,access:{has:Te=>"addExposedFunctionBinding"in Te,get:Te=>Te.addExposedFunctionBinding},metadata:Je},null,r),ZO(X,null,w,{kind:"method",name:"removeExposedFunctionBinding",static:!1,private:!1,access:{has:Te=>"removeExposedFunctionBinding"in Te,get:Te=>Te.removeExposedFunctionBinding},metadata:Je},null,r),ZO(X,null,P,{kind:"method",name:"waitForDevicePrompt",static:!1,private:!1,access:{has:Te=>"waitForDevicePrompt"in Te,get:Te=>Te.waitForDevicePrompt},metadata:Je},null,r),Je&&Object.defineProperty(X,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:Je})})(),X})();function Uvr(a){return a.replaceAll(/-./g,r=>r[1].toUpperCase())}G0();var $O,yW,T6,BW,QW,Soe,VQe=class{constructor(){ue(this,$O,new Map);ue(this,yW,new Map);ue(this,T6,new Map);ue(this,BW);ue(this,QW,!1);ue(this,Soe,new Map)}getMainFrame(){return I(this,BW)}getById(r){return I(this,$O).get(r)}waitForFrame(r){let s=this.getById(r);if(s)return Promise.resolve(s);let c=zu.create();return(I(this,Soe).get(r)||new Set).add(c),c.valueOrThrow()}frames(){return Array.from(I(this,$O).values())}addFrame(r){I(this,$O).set(r._id,r),r._parentId?(I(this,yW).set(r._id,r._parentId),I(this,T6).has(r._parentId)||I(this,T6).set(r._parentId,new Set),I(this,T6).get(r._parentId).add(r._id)):(!I(this,BW)||I(this,QW))&&(Be(this,BW,r),Be(this,QW,!1)),I(this,Soe).get(r._id)?.forEach(s=>s.resolve(r))}removeFrame(r){I(this,$O).delete(r._id),I(this,yW).delete(r._id),r._parentId?I(this,T6).get(r._parentId)?.delete(r._id):Be(this,QW,!0)}childFrames(r){let s=I(this,T6).get(r);return s?Array.from(s).map(c=>this.getById(c)).filter(c=>c!==void 0):[]}parentFrame(r){let s=I(this,yW).get(r);return s?this.getById(s):void 0}};$O=new WeakMap,yW=new WeakMap,T6=new WeakMap,BW=new WeakMap,QW=new WeakMap,Soe=new WeakMap;_B();kf();Ou();Tf();Zf();NI();BQe();Ou();rN();var Ex,xoe,koe,Toe,Foe,Noe,vW,Poe,Roe,Moe,e7=class extends g6{constructor(s,c,f,p,C,w){super();Gr(this,"id");ue(this,Ex);ue(this,xoe);ue(this,koe);ue(this,Toe);ue(this,Foe);ue(this,Noe,!1);ue(this,vW);ue(this,Poe,{});ue(this,Roe);ue(this,Moe);Be(this,Ex,s),this.id=C.requestId,Be(this,xoe,C.requestId===C.loaderId&&C.type==="Document"),this._interceptionId=f,Be(this,koe,C.request.url+(C.request.urlFragment??"")),Be(this,Toe,(C.type||"other").toLowerCase()),Be(this,Foe,C.request.method),C.request.postDataEntries&&C.request.postDataEntries.length>0?Be(this,vW,new TextDecoder().decode(O1e(C.request.postDataEntries.map(P=>P.bytes?hb(P.bytes,!0):null).filter(P=>P!==null)))):Be(this,vW,C.request.postData),Be(this,Noe,C.request.hasPostData??!1),Be(this,Roe,c),this._redirectChain=w,Be(this,Moe,C.initiator),this.interception.enabled=p,this.updateHeaders(C.request.headers)}get client(){return I(this,Ex)}set client(s){Be(this,Ex,s)}updateHeaders(s){for(let[c,f]of Object.entries(s))I(this,Poe)[c.toLowerCase()]=f}url(){return I(this,koe)}resourceType(){return I(this,Toe)}method(){return I(this,Foe)}postData(){return I(this,vW)}hasPostData(){return I(this,Noe)}async fetchPostData(){try{return(await I(this,Ex).send("Network.getRequestPostData",{requestId:this.id})).postData}catch(s){Ss(s);return}}headers(){return structuredClone(I(this,Poe))}response(){return this._response}frame(){return I(this,Roe)}isNavigationRequest(){return I(this,xoe)}initiator(){return I(this,Moe)}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 w=p?L1e(p):void 0;if(this._interceptionId===void 0)throw new Error("HTTPRequest is missing _interceptionId needed for Fetch.continueRequest");await I(this,Ex).send("Fetch.continueRequest",{requestId:this._interceptionId,url:c,method:f,postData:w,headers:C?yKe(C):void 0}).catch(P=>(this.interception.handled=!1,xq(P)))}async _respond(s){this.interception.handled=!0;let c;s.body&&(c=g6.getResponse(s.body));let f={};if(s.headers)for(let C of Object.keys(s.headers)){let w=s.headers[C];f[C.toLowerCase()]=Array.isArray(w)?w.map(P=>String(P)):String(w)}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,Ex).send("Fetch.fulfillRequest",{requestId:this._interceptionId,responseCode:p,responsePhrase:yQe[p],responseHeaders:yKe(f),body:c?.base64}).catch(C=>(this.interception.handled=!1,xq(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,Ex).send("Fetch.failRequest",{requestId:this._interceptionId,errorReason:s||"Failed"}).catch(xq)}};Ex=new WeakMap,xoe=new WeakMap,koe=new WeakMap,Toe=new WeakMap,Foe=new WeakMap,Noe=new WeakMap,vW=new WeakMap,Poe=new WeakMap,Roe=new WeakMap,Moe=new WeakMap;QQe();Bl();zQe();G0();rN();var yx,wW,DW,Koe,qoe,Woe,Yoe,Voe,zoe,Xoe,Zoe,XQe,cSt,joe=class extends kq{constructor(s,c,f){super();ue(this,XQe);ue(this,yx);ue(this,wW,null);ue(this,DW,zu.create());ue(this,Koe);ue(this,qoe);ue(this,Woe);ue(this,Yoe);ue(this,Voe);ue(this,zoe,{});ue(this,Xoe);ue(this,Zoe);Be(this,yx,s),Be(this,Koe,{ip:c.remoteIPAddress,port:c.remotePort}),Be(this,Woe,Ke(this,XQe,cSt).call(this,f)||c.statusText),Be(this,Yoe,!!c.fromDiskCache),Be(this,Voe,!!c.fromServiceWorker),Be(this,qoe,f?f.statusCode:c.status);let p=f?f.headers:c.headers;for(let[C,w]of Object.entries(p))I(this,zoe)[C.toLowerCase()]=w;Be(this,Xoe,c.securityDetails?new bW(c.securityDetails):null),Be(this,Zoe,c.timing||null)}_resolveBody(s){return s?I(this,DW).reject(s):I(this,DW).resolve()}remoteAddress(){return I(this,Koe)}url(){return I(this,yx).url()}status(){return I(this,qoe)}statusText(){return I(this,Woe)}headers(){return I(this,zoe)}securityDetails(){return I(this,Xoe)}timing(){return I(this,Zoe)}content(){return I(this,wW)||Be(this,wW,I(this,DW).valueOrThrow().then(async()=>{try{let s=await I(this,yx).client.send("Network.getResponseBody",{requestId:I(this,yx).id});return hb(s.body,s.base64Encoded)}catch(s){throw s instanceof Qh&&s.originalMessage==="No resource with given identifier found"?new Qh("Could not load response body for this request. This might happen if the request is a preflight request."):s}})),I(this,wW)}request(){return I(this,yx)}fromCache(){return I(this,Yoe)||I(this,yx)._fromMemoryCache}fromServiceWorker(){return I(this,Voe)}frame(){return I(this,yx).frame()}};yx=new WeakMap,wW=new WeakMap,DW=new WeakMap,Koe=new WeakMap,qoe=new WeakMap,Woe=new WeakMap,Yoe=new WeakMap,Voe=new WeakMap,zoe=new WeakMap,Xoe=new WeakMap,Zoe=new WeakMap,XQe=new WeakSet,cSt=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 F6,N6,P6,t7,R6,r7,i7,ZQe=class{constructor(){ue(this,F6,new Map);ue(this,N6,new Map);ue(this,P6,new Map);ue(this,t7,new Map);ue(this,R6,new Map);ue(this,r7,new Map);ue(this,i7,new Map)}forget(r){I(this,F6).delete(r),I(this,N6).delete(r),I(this,t7).delete(r),I(this,i7).delete(r),I(this,r7).delete(r),I(this,R6).delete(r)}requestExtraInfo(r){return I(this,t7).has(r)||I(this,t7).set(r,[]),I(this,t7).get(r)}responseExtraInfo(r){return I(this,R6).has(r)||I(this,R6).set(r,[]),I(this,R6).get(r)}queuedRedirectInfo(r){return I(this,r7).has(r)||I(this,r7).set(r,[]),I(this,r7).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,P6).values())s.response()||r++;return r}storeRequestWillBeSent(r,s){I(this,F6).set(r,s)}getRequestWillBeSent(r){return I(this,F6).get(r)}forgetRequestWillBeSent(r){I(this,F6).delete(r)}getRequestPaused(r){return I(this,N6).get(r)}forgetRequestPaused(r){I(this,N6).delete(r)}storeRequestPaused(r,s){I(this,N6).set(r,s)}getRequest(r){return I(this,P6).get(r)}storeRequest(r,s){I(this,P6).set(r,s)}forgetRequest(r){I(this,P6).delete(r)}getQueuedEventGroup(r){return I(this,i7).get(r)}queueEventGroup(r,s){I(this,i7).set(r,s)}forgetQueuedEventGroup(r){I(this,i7).delete(r)}printState(){function r(s,c){return c instanceof Map?{dataType:"Map",value:Array.from(c.entries())}:c instanceof e7?{dataType:"CdpHTTPRequest",value:`${c.id}: ${c.url()}`}:c}console.log("httpRequestsMap",JSON.stringify(I(this,P6),r,2)),console.log("requestWillBeSentMap",JSON.stringify(I(this,F6),r,2)),console.log("requestWillBeSentMap",JSON.stringify(I(this,R6),r,2)),console.log("requestWillBeSentMap",JSON.stringify(I(this,N6),r,2))}};F6=new WeakMap,N6=new WeakMap,P6=new WeakMap,t7=new WeakMap,R6=new WeakMap,r7=new WeakMap,i7=new WeakMap;var xW,bl,s7,L6,kW,Bx,Qx,O6,PC,TW,ece,tce,ive,U6,rce,Xa,n7,uSt,XKe,M6,$Qe,ZKe,eve,$oe,ASt,lSt,fSt,$Ke,dSt,SW,gSt,pSt,_St,eqe,hSt,mSt,tve,CSt,tqe,ISt,rqe,iqe,rve=class extends ya{constructor(s,c){super();ue(this,Xa);ue(this,xW);ue(this,bl,new ZQe);ue(this,s7);ue(this,L6,null);ue(this,kW,new Set);ue(this,Bx,!1);ue(this,Qx);ue(this,O6);ue(this,PC);ue(this,TW);ue(this,ece);ue(this,tce);ue(this,ive,[["Fetch.requestPaused",Ke(this,Xa,fSt)],["Fetch.authRequired",Ke(this,Xa,lSt)],["Network.requestWillBeSent",Ke(this,Xa,ASt)],["Network.requestWillBeSentExtraInfo",Ke(this,Xa,gSt)],["Network.requestServedFromCache",Ke(this,Xa,pSt)],["Network.responseReceived",Ke(this,Xa,hSt)],["Network.loadingFinished",Ke(this,Xa,CSt)],["Network.loadingFailed",Ke(this,Xa,ISt)],["Network.responseReceivedExtraInfo",Ke(this,Xa,mSt)],[Ql.Disconnected,Ke(this,Xa,uSt)]]);ue(this,U6,new Map);ue(this,rce,!0);Be(this,xW,s),Be(this,rce,c??!0)}async addClient(s){if(!I(this,rce)||I(this,U6).has(s))return;let c=new Ol;I(this,U6).set(s,c);let f=c.use(new ya(s));for(let[p,C]of I(this,ive))f.on(p,w=>C.bind(this)(s,w));try{await Promise.all([s.send("Network.enable"),Ke(this,Xa,XKe).call(this,s),Ke(this,Xa,$Qe).call(this,s),Ke(this,Xa,$oe).call(this,s),Ke(this,Xa,eve).call(this,s),Ke(this,Xa,ZKe).call(this,s)])}catch(p){if(Ke(this,Xa,n7).call(this,p))return;throw p}}async authenticate(s){Be(this,L6,s);let c=I(this,Bx)||!!I(this,L6);c!==I(this,Qx)&&(Be(this,Qx,c),await Ke(this,Xa,M6).call(this,Ke(this,Xa,eve).bind(this)))}async setExtraHTTPHeaders(s){let c={};for(let[f,p]of Object.entries(s))Cs(FI(p),`Expected value of header "${f}" to be String, but "${typeof p}" is found.`),c[f.toLowerCase()]=p;Be(this,s7,c),await Ke(this,Xa,M6).call(this,Ke(this,Xa,XKe).bind(this))}extraHTTPHeaders(){return Object.assign({},I(this,s7))}inFlightRequestsCount(){return I(this,bl).inFlightRequestsCount()}async setOfflineMode(s){I(this,PC)||Be(this,PC,{offline:!1,upload:-1,download:-1,latency:0}),I(this,PC).offline=s,await Ke(this,Xa,M6).call(this,Ke(this,Xa,$Qe).bind(this))}async emulateNetworkConditions(s){I(this,PC)||Be(this,PC,{offline:s?.offline??!1,upload:-1,download:-1,latency:0}),I(this,PC).upload=s?s.upload:-1,I(this,PC).download=s?s.download:-1,I(this,PC).latency=s?s.latency:0,I(this,PC).offline=s?.offline??!1,await Ke(this,Xa,M6).call(this,Ke(this,Xa,$Qe).bind(this))}async setUserAgent(s,c,f){Be(this,TW,s),Be(this,ece,c),Be(this,tce,f),await Ke(this,Xa,M6).call(this,Ke(this,Xa,ZKe).bind(this))}async setCacheEnabled(s){Be(this,O6,!s),await Ke(this,Xa,M6).call(this,Ke(this,Xa,$oe).bind(this))}async setRequestInterception(s){Be(this,Bx,s);let c=I(this,Bx)||!!I(this,L6);c!==I(this,Qx)&&(Be(this,Qx,c),await Ke(this,Xa,M6).call(this,Ke(this,Xa,eve).bind(this)))}};xW=new WeakMap,bl=new WeakMap,s7=new WeakMap,L6=new WeakMap,kW=new WeakMap,Bx=new WeakMap,Qx=new WeakMap,O6=new WeakMap,PC=new WeakMap,TW=new WeakMap,ece=new WeakMap,tce=new WeakMap,ive=new WeakMap,U6=new WeakMap,rce=new WeakMap,Xa=new WeakSet,n7=function(s){return u_(s)&&(RO(s)||s.message.includes("Not supported")||s.message.includes("wasn't found"))},uSt=async function(s){I(this,U6).get(s)?.dispose(),I(this,U6).delete(s)},XKe=async function(s){if(I(this,s7)!==void 0)try{await s.send("Network.setExtraHTTPHeaders",{headers:I(this,s7)})}catch(c){if(Ke(this,Xa,n7).call(this,c))return;throw c}},M6=async function(s){await Promise.all(Array.from(I(this,U6).keys()).map(c=>s(c)))},$Qe=async function(s){if(I(this,PC)!==void 0)try{await s.send("Network.emulateNetworkConditions",{offline:I(this,PC).offline,latency:I(this,PC).latency,uploadThroughput:I(this,PC).upload,downloadThroughput:I(this,PC).download})}catch(c){if(Ke(this,Xa,n7).call(this,c))return;throw c}},ZKe=async function(s){if(I(this,TW)!==void 0)try{await s.send("Network.setUserAgentOverride",{userAgent:I(this,TW),userAgentMetadata:I(this,ece),platform:I(this,tce)})}catch(c){if(Ke(this,Xa,n7).call(this,c))return;throw c}},eve=async function(s){if(I(this,Qx)!==void 0){I(this,O6)===void 0&&Be(this,O6,!1);try{I(this,Qx)?await Promise.all([Ke(this,Xa,$oe).call(this,s),s.send("Fetch.enable",{handleAuthRequests:!0,patterns:[{urlPattern:"*"}]})]):await Promise.all([Ke(this,Xa,$oe).call(this,s),s.send("Fetch.disable")])}catch(c){if(Ke(this,Xa,n7).call(this,c))return;throw c}}},$oe=async function(s){if(I(this,O6)!==void 0)try{await s.send("Network.setCacheDisabled",{cacheDisabled:I(this,O6)})}catch(c){if(Ke(this,Xa,n7).call(this,c))return;throw c}},ASt=function(s,c){if(I(this,Bx)&&!c.request.url.startsWith("data:")){let{requestId:f}=c;I(this,bl).storeRequestWillBeSent(f,c);let p=I(this,bl).getRequestPaused(f);if(p){let{requestId:C}=p;Ke(this,Xa,$Ke).call(this,c,p),Ke(this,Xa,SW).call(this,s,c,C),I(this,bl).forgetRequestPaused(f)}return}Ke(this,Xa,SW).call(this,s,c,void 0)},lSt=function(s,c){let f="Default";I(this,kW).has(c.requestId)?f="CancelAuth":I(this,L6)&&(f="ProvideCredentials",I(this,kW).add(c.requestId));let{username:p,password:C}=I(this,L6)||{username:void 0,password:void 0};s.send("Fetch.continueWithAuth",{requestId:c.requestId,authChallengeResponse:{response:f,username:p,password:C}}).catch(Ss)},fSt=function(s,c){!I(this,Bx)&&I(this,Qx)&&s.send("Fetch.continueRequest",{requestId:c.requestId}).catch(Ss);let{networkId:f,requestId:p}=c;if(!f){Ke(this,Xa,dSt).call(this,s,c);return}let C=(()=>{let w=I(this,bl).getRequestWillBeSent(f);if(w&&(w.request.url!==c.request.url||w.request.method!==c.request.method)){I(this,bl).forgetRequestWillBeSent(f);return}return w})();C?(Ke(this,Xa,$Ke).call(this,C,c),Ke(this,Xa,SW).call(this,s,C,p)):I(this,bl).storeRequestPaused(f,c)},$Ke=function(s,c){s.request.headers={...s.request.headers,...c.request.headers}},dSt=function(s,c){let f=c.frameId?I(this,xW).frame(c.frameId):null,p=new e7(s,f,c.requestId,I(this,Bx),c,[]);this.emit(wh.Request,p),p.finalizeInterceptions()},SW=function(s,c,f,p=!1){let C=[];if(c.redirectResponse){let O=null;if(c.redirectHasExtraInfo&&(O=I(this,bl).responseExtraInfo(c.requestId).shift(),!O)){I(this,bl).queueRedirectInfo(c.requestId,{event:c,fetchRequestId:f});return}let j=I(this,bl).getRequest(c.requestId);if(j){Ke(this,Xa,_St).call(this,s,j,c.redirectResponse,O),C=j._redirectChain;let k=I(this,bl).requestExtraInfo(c.requestId).shift();k&&j.updateHeaders(k.headers)}}let w=c.frameId?I(this,xW).frame(c.frameId):null,P=new e7(s,w,f,I(this,Bx),c,C),U=I(this,bl).requestExtraInfo(c.requestId).shift();U&&P.updateHeaders(U.headers),P._fromMemoryCache=p,I(this,bl).storeRequest(c.requestId,P),this.emit(wh.Request,P),P.finalizeInterceptions()},gSt=function(s,c){let f=I(this,bl).getRequest(c.requestId);f?f.updateHeaders(c.headers):I(this,bl).requestExtraInfo(c.requestId).push(c)},pSt=function(s,c){let f=I(this,bl).getRequestWillBeSent(c.requestId),p=I(this,bl).getRequest(c.requestId);if(p&&(p._fromMemoryCache=!0),!p&&f&&(Ke(this,Xa,SW).call(this,s,f,void 0,!0),p=I(this,bl).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(wh.RequestServedFromCache,p)},_St=function(s,c,f,p){let C=new joe(c,f,p);c._response=C,c._redirectChain.push(c),C._resolveBody(new Error("Response body is unavailable for redirect responses")),Ke(this,Xa,tve).call(this,c,!1),this.emit(wh.Response,C),this.emit(wh.RequestFinished,c)},eqe=function(s,c,f){let p=I(this,bl).getRequest(c.requestId);if(!p)return;I(this,bl).responseExtraInfo(c.requestId).length&&Ss(new Error("Unexpected extraInfo events for request "+c.requestId)),c.response.fromDiskCache&&(f=null);let w=new joe(p,c.response,f);p._response=w,this.emit(wh.Response,w)},hSt=function(s,c){let f=I(this,bl).getRequest(c.requestId),p=null;if(f&&!f._fromMemoryCache&&c.hasExtraInfo&&(p=I(this,bl).responseExtraInfo(c.requestId).shift(),!p)){I(this,bl).queueEventGroup(c.requestId,{responseReceivedEvent:c});return}Ke(this,Xa,eqe).call(this,s,c,p)},mSt=function(s,c){let f=I(this,bl).takeQueuedRedirectInfo(c.requestId);if(f){I(this,bl).responseExtraInfo(c.requestId).push(c),Ke(this,Xa,SW).call(this,s,f.event,f.fetchRequestId);return}let p=I(this,bl).getQueuedEventGroup(c.requestId);if(p){I(this,bl).forgetQueuedEventGroup(c.requestId),Ke(this,Xa,eqe).call(this,s,p.responseReceivedEvent,c),p.loadingFinishedEvent&&Ke(this,Xa,tqe).call(this,s,p.loadingFinishedEvent),p.loadingFailedEvent&&Ke(this,Xa,rqe).call(this,s,p.loadingFailedEvent);return}I(this,bl).responseExtraInfo(c.requestId).push(c)},tve=function(s,c){let f=s.id,p=s._interceptionId;I(this,bl).forgetRequest(f),p!==void 0&&I(this,kW).delete(p),c&&I(this,bl).forget(f)},CSt=function(s,c){let f=I(this,bl).getQueuedEventGroup(c.requestId);f?f.loadingFinishedEvent=c:Ke(this,Xa,tqe).call(this,s,c)},tqe=function(s,c){let f=I(this,bl).getRequest(c.requestId);f&&(Ke(this,Xa,iqe).call(this,s,f),f.response()&&f.response()?._resolveBody(),Ke(this,Xa,tve).call(this,f,!0),this.emit(wh.RequestFinished,f))},ISt=function(s,c){let f=I(this,bl).getQueuedEventGroup(c.requestId);f?f.loadingFailedEvent=c:Ke(this,Xa,rqe).call(this,s,c)},rqe=function(s,c){let f=I(this,bl).getRequest(c.requestId);if(!f)return;Ke(this,Xa,iqe).call(this,s,f),f._failureText=c.errorText;let p=f.response();p&&p._resolveBody(),Ke(this,Xa,tve).call(this,f,!0),this.emit(wh.RequestFailed,f)},iqe=function(s,c){s!==c.client&&(c.client=s)};var Gvr=100,FW,G6,NW,ice,RD,o7,PW,c7,nce,ry,ql,nqe,ESt,ySt,BSt,sqe,aqe,oqe,QSt,vSt,bSt,wSt,a7,nve=class extends ya{constructor(s,c,f){super();ue(this,ql);ue(this,FW);ue(this,G6);ue(this,NW);ue(this,ice,new Set);ue(this,RD);ue(this,o7,new Map);ue(this,PW,new Set);Gr(this,"_frameTree",new VQe);ue(this,c7,new Set);ue(this,nce,new WeakMap);ue(this,ry);Be(this,RD,s),Be(this,FW,c),Be(this,G6,new rve(this,c.browser().isNetworkEnabled())),Be(this,NW,f),this.setupEventListeners(I(this,RD)),s.once(Ql.Disconnected,()=>{Ke(this,ql,nqe).call(this).catch(Ss)})}get timeoutSettings(){return I(this,NW)}get networkManager(){return I(this,G6)}get client(){return I(this,RD)}async swapFrameTree(s){Be(this,RD,s);let c=this._frameTree.getMainFrame();c&&(I(this,c7).add(I(this,RD).target()._targetId),this._frameTree.removeFrame(c),c.updateId(I(this,RD).target()._targetId),this._frameTree.addFrame(c),c.updateClient(s)),this.setupEventListeners(s),s.once(Ql.Disconnected,()=>{Ke(this,ql,nqe).call(this).catch(Ss)}),await this.initialize(s,c),await I(this,G6).addClient(s),c&&c.emit(rm.FrameSwappedByActivation,void 0)}async registerSpeculativeSession(s){await I(this,G6).addClient(s)}setupEventListeners(s){s.on("Page.frameAttached",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,aqe).call(this,s,c.frameId,c.parentFrameId)}),s.on("Page.frameNavigated",async c=>{I(this,c7).add(c.frame.id),await I(this,ry)?.valueOrThrow(),Ke(this,ql,oqe).call(this,c.frame,c.type)}),s.on("Page.navigatedWithinDocument",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,vSt).call(this,c.frameId,c.url)}),s.on("Page.frameDetached",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,bSt).call(this,c.frameId,c.reason)}),s.on("Page.frameStartedLoading",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,ySt).call(this,c.frameId)}),s.on("Page.frameStoppedLoading",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,BSt).call(this,c.frameId)}),s.on("Runtime.executionContextCreated",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,wSt).call(this,c.context,s)}),s.on("Page.lifecycleEvent",async c=>{await I(this,ry)?.valueOrThrow(),Ke(this,ql,ESt).call(this,c)})}async initialize(s,c){try{I(this,ry)?.resolve(),Be(this,ry,zu.create()),await Promise.all([I(this,G6).addClient(s),s.send("Page.enable"),s.send("Page.getFrameTree").then(({frameTree:f})=>{Ke(this,ql,sqe).call(this,s,f),I(this,ry)?.resolve()}),s.send("Page.setLifecycleEventsEnabled",{enabled:!0}),s.send("Runtime.enable").then(()=>Ke(this,ql,QSt).call(this,s,eKe)),...(c?Array.from(I(this,o7).values()):[]).map(f=>c?.addPreloadScript(f)),...(c?Array.from(I(this,PW).values()):[]).map(f=>c?.addExposedFunctionBinding(f))])}catch(f){if(I(this,ry)?.resolve(),u_(f)&&RO(f))return;throw f}}page(){return I(this,FW)}mainFrame(){let s=this._frameTree.getMainFrame();return Cs(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,PW).add(s),await Promise.all(this.frames().map(async c=>await c.addExposedFunctionBinding(s)))}async removeExposedFunctionBinding(s){I(this,PW).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 UQe(this.mainFrame(),c,s);return I(this,o7).set(c,f),await Promise.all(this.frames().map(async p=>await p.addPreloadScript(f))),{identifier:c}}async removeScriptToEvaluateOnNewDocument(s){let c=I(this,o7).get(s);if(!c)throw new Error(`Script to evaluate on new document with id ${s} not found`);I(this,o7).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,nce).get(s);return c===void 0&&(c=new GQe(s,I(this,NW)),I(this,nce).set(s,c)),c}};FW=new WeakMap,G6=new WeakMap,NW=new WeakMap,ice=new WeakMap,RD=new WeakMap,o7=new WeakMap,PW=new WeakMap,c7=new WeakMap,nce=new WeakMap,ry=new WeakMap,ql=new WeakSet,nqe=async function(){let s=this._frameTree.getMainFrame();if(!s)return;if(!I(this,FW).browser().connected){Ke(this,ql,a7).call(this,s);return}for(let f of s.childFrames())Ke(this,ql,a7).call(this,f);let c=zu.create({timeout:Gvr,message:"Frame was not swapped"});s.once(rm.FrameSwappedByActivation,()=>{c.resolve()});try{await c.valueOrThrow()}catch{Ke(this,ql,a7).call(this,s)}},ESt=function(s){let c=this.frame(s.frameId);c&&(c._onLifecycleEvent(s.loaderId,s.name),this.emit(J_.LifecycleEvent,c),c.emit(rm.LifecycleEvent,void 0))},ySt=function(s){let c=this.frame(s);c&&c._onLoadingStarted()},BSt=function(s){let c=this.frame(s);c&&(c._onLoadingStopped(),this.emit(J_.LifecycleEvent,c),c.emit(rm.LifecycleEvent,void 0))},sqe=function(s,c){if(c.frame.parentId&&Ke(this,ql,aqe).call(this,s,c.frame.id,c.frame.parentId),I(this,c7).has(c.frame.id)?I(this,c7).delete(c.frame.id):Ke(this,ql,oqe).call(this,c.frame,"Navigation"),!!c.childFrames)for(let f of c.childFrames)Ke(this,ql,sqe).call(this,s,f)},aqe=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 zKe(this,c,f,s),this._frameTree.addFrame(p),this.emit(J_.FrameAttached,p)},oqe=async function(s,c){let f=s.id,p=!s.parentId,C=this._frameTree.getById(f);if(C)for(let w of C.childFrames())Ke(this,ql,a7).call(this,w);p&&(C?(this._frameTree.removeFrame(C),C._id=f):C=new zKe(this,f,void 0,I(this,RD)),this._frameTree.addFrame(C)),C=await this._frameTree.waitForFrame(f),C._navigated(s),this.emit(J_.FrameNavigated,C),C.emit(rm.FrameNavigated,c)},QSt=async function(s,c){let f=`${s.id()}:${c}`;I(this,ice).has(f)||(await s.send("Page.addScriptToEvaluateOnNewDocument",{source:`//# sourceURL=${Km.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,ice).add(f))},vSt=function(s,c){let f=this.frame(s);f&&(f._navigatedWithinDocument(c),this.emit(J_.FrameNavigatedWithinDocument,f),f.emit(rm.FrameNavigatedWithinDocument,void 0),this.emit(J_.FrameNavigated,f),f.emit(rm.FrameNavigated,"Navigation"))},bSt=function(s,c){let f=this.frame(s);if(f)switch(c){case"remove":Ke(this,ql,a7).call(this,f);break;case"swap":this.emit(J_.FrameSwapped,f),f.emit(rm.FrameSwapped,void 0);break}},wSt=function(s,c){let f=s.auxData,p=f&&f.frameId,C=typeof p=="string"?this.frame(p):void 0,w;if(C){if(C.client!==c)return;s.auxData&&s.auxData.isDefault?w=C.worlds[fQ]:s.name===eKe&&(w=C.worlds[CW])}if(!w)return;let P=new mW(C?.client||I(this,RD),s,w);w.setContext(P)},a7=function(s){for(let c of s.childFrames())Ke(this,ql,a7).call(this,c);s[go](),this._frameTree.removeFrame(s),this.emit(J_.FrameDetached,s),s.emit(rm.FrameDetached,s)};vQe();Bl();var cqe={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}};Tf();var J6,RW,j6,uqe,Aqe,ave=class extends Tq{constructor(s){super();ue(this,j6);ue(this,J6);ue(this,RW,new Set);Gr(this,"_modifiers",0);Be(this,J6,s)}updateClient(s){Be(this,J6,s)}async down(s,c={text:void 0,commands:[]}){let f=Ke(this,j6,Aqe).call(this,s),p=I(this,RW).has(f.code);I(this,RW).add(f.code),this._modifiers|=Ke(this,j6,uqe).call(this,f.key);let C=c.text===void 0?f.text:c.text;await I(this,J6).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,j6,Aqe).call(this,s);this._modifiers&=~Ke(this,j6,uqe).call(this,c.key),I(this,RW).delete(c.code),await I(this,J6).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,J6).send("Input.insertText",{text:s})}charIsKey(s){return!!cqe[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)}};J6=new WeakMap,RW=new WeakMap,j6=new WeakSet,uqe=function(s){return s==="Alt"?1:s==="Control"?2:s==="Meta"?4:s==="Shift"?8:0},Aqe=function(s){let c=this._modifiers&8,f={key:"",keyCode:0,code:"",text:"",location:0},p=cqe[s];return Cs(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 DSt=a=>{switch(a){case yg.Left:return 1;case yg.Right:return 2;case yg.Middle:return 4;case yg.Back:return 8;case yg.Forward:return 16}},Jvr=a=>a&1?yg.Left:a&2?yg.Right:a&4?yg.Middle:a&8?yg.Back:a&16?yg.Forward:"none",gQ,MD,MW,Dh,dQ,u7,SSt,sve,ove=class extends Fq{constructor(s,c){super();ue(this,Dh);ue(this,gQ);ue(this,MD);ue(this,MW,{position:{x:0,y:0},buttons:0});ue(this,u7,[]);Be(this,gQ,s),Be(this,MD,c)}updateClient(s){Be(this,gQ,s)}async reset(){let s=[];for(let[c,f]of[[1,yg.Left],[4,yg.Middle],[2,yg.Right],[16,yg.Forward],[8,yg.Back]])I(this,Dh,dQ).buttons&c&&s.push(this.up({button:f}));(I(this,Dh,dQ).position.x!==0||I(this,Dh,dQ).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,Dh,dQ).position,w={x:s,y:c};for(let P=1;P<=p;P++)await Ke(this,Dh,sve).call(this,U=>{U({position:{x:C.x+(w.x-C.x)*(P/p),y:C.y+(w.y-C.y)*(P/p)}});let{buttons:O,position:j}=I(this,Dh,dQ);return I(this,gQ).send("Input.dispatchMouseEvent",{type:"mouseMoved",modifiers:I(this,MD)._modifiers,buttons:O,button:Jvr(O),...j})})}async down(s={}){let{button:c=yg.Left,clickCount:f=1}=s,p=DSt(c);if(!p)throw new Error(`Unsupported mouse button: ${c}`);if(I(this,Dh,dQ).buttons&p)throw new Error(`'${c}' is already pressed.`);await Ke(this,Dh,sve).call(this,C=>{C({buttons:I(this,Dh,dQ).buttons|p});let{buttons:w,position:P}=I(this,Dh,dQ);return I(this,gQ).send("Input.dispatchMouseEvent",{type:"mousePressed",modifiers:I(this,MD)._modifiers,clickCount:f,buttons:w,button:c,...P})})}async up(s={}){let{button:c=yg.Left,clickCount:f=1}=s,p=DSt(c);if(!p)throw new Error(`Unsupported mouse button: ${c}`);if(!(I(this,Dh,dQ).buttons&p))throw new Error(`'${c}' is not pressed.`);await Ke(this,Dh,sve).call(this,C=>{C({buttons:I(this,Dh,dQ).buttons&~p});let{buttons:w,position:P}=I(this,Dh,dQ);return I(this,gQ).send("Input.dispatchMouseEvent",{type:"mouseReleased",modifiers:I(this,MD)._modifiers,clickCount:f,buttons:w,button:c,...P})})}async click(s,c,f={}){let{delay:p,count:C=1,clickCount:w=C}=f;if(C<1)throw new Error("Click must occur a positive number of times.");let P=[this.move(s,c)];if(w===C)for(let U=1;U{setTimeout(U,p)})),P.push(this.up({...f,clickCount:w})),await Promise.all(P)}async wheel(s={}){let{deltaX:c=0,deltaY:f=0}=s,{position:p,buttons:C}=I(this,Dh,dQ);await I(this,gQ).send("Input.dispatchMouseEvent",{type:"mouseWheel",pointerType:"mouse",modifiers:I(this,MD)._modifiers,deltaY:f,deltaX:c,buttons:C,...p})}async drag(s,c){let f=new Promise(p=>{I(this,gQ).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,gQ).send("Input.dispatchDragEvent",{type:"dragEnter",x:s.x,y:s.y,modifiers:I(this,MD)._modifiers,data:c})}async dragOver(s,c){await I(this,gQ).send("Input.dispatchDragEvent",{type:"dragOver",x:s.x,y:s.y,modifiers:I(this,MD)._modifiers,data:c})}async drop(s,c){await I(this,gQ).send("Input.dispatchDragEvent",{type:"drop",x:s.x,y:s.y,modifiers:I(this,MD)._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(w=>setTimeout(w,p)),await this.drop(c,C),await this.up()}};gQ=new WeakMap,MD=new WeakMap,MW=new WeakMap,Dh=new WeakSet,dQ=function(){return Object.assign({...I(this,MW)},...I(this,u7))},u7=new WeakMap,SSt=function(){let s={};I(this,u7).push(s);let c=()=>{I(this,u7).splice(I(this,u7).indexOf(s),1)};return{update:f=>{Object.assign(s,f)},commit:()=>{Be(this,MW,{...I(this,MW),...s}),c()},rollback:c}},sve=async function(s){let{update:c,commit:f,rollback:p}=Ke(this,Dh,SSt).call(this);try{await s(c),f()}catch(C){throw p(),C}};var sce,ace,hN,H6,A7,lqe=class{constructor(r,s,c,f){ue(this,sce,!1);ue(this,ace);ue(this,hN);ue(this,H6);ue(this,A7);Be(this,H6,r),Be(this,ace,s),Be(this,A7,c),Be(this,hN,f)}updateClient(r){Be(this,H6,r)}async start(){if(I(this,sce))throw new iN("Touch has already started");await I(this,H6).send("Input.dispatchTouchEvent",{type:"touchStart",touchPoints:[I(this,hN)],modifiers:I(this,A7)._modifiers}),Be(this,sce,!0)}move(r,s){return I(this,hN).x=Math.round(r),I(this,hN).y=Math.round(s),I(this,H6).send("Input.dispatchTouchEvent",{type:"touchMove",touchPoints:[I(this,hN)],modifiers:I(this,A7)._modifiers})}async end(){await I(this,H6).send("Input.dispatchTouchEvent",{type:"touchEnd",touchPoints:[I(this,hN)],modifiers:I(this,A7)._modifiers}),I(this,ace).removeHandle(this)}};sce=new WeakMap,ace=new WeakMap,hN=new WeakMap,H6=new WeakMap,A7=new WeakMap;var LW,oce,cve=class extends Nq{constructor(s,c){super();ue(this,LW);ue(this,oce);Be(this,LW,s),Be(this,oce,c)}updateClient(s){Be(this,LW,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 lqe(I(this,LW),this,I(this,oce),p);return await C.start(),this.touches.push(C),C}};LW=new WeakMap,oce=new WeakMap;uve();_B();Mae();kQe();xae();Ou();var vx,bx,GW,uce,JW=class extends Lq{constructor(s,c,f,p,C,w,P){super(c);ue(this,vx);ue(this,bx);ue(this,GW);ue(this,uce);Be(this,GW,f),Be(this,bx,s),Be(this,uce,p),Be(this,vx,new VO(this,new p6)),I(this,bx).once("Runtime.executionContextCreated",async U=>{I(this,vx).setContext(new mW(s,U.context,I(this,vx)))}),I(this,vx).emitter.on("consoleapicalled",async U=>{try{return C(I(this,vx),U)}catch(O){Ss(O)}}),I(this,bx).on("Runtime.exceptionThrown",w),I(this,bx).once(Ql.Disconnected,()=>{I(this,vx).dispose()}),P?.addClient(I(this,bx)).catch(Ss),I(this,bx).send("Runtime.enable").catch(Ss)}mainRealm(){return I(this,vx)}get client(){return I(this,bx)}async close(){switch(I(this,uce)){case im.SERVICE_WORKER:{await this.client.connection()?.send("Target.closeTarget",{targetId:I(this,GW)}),await this.client.connection()?.send("Target.detachFromTarget",{sessionId:this.client.id()});break}case im.SHARED_WORKER:{await this.client.connection()?.send("Target.closeTarget",{targetId:I(this,GW)});break}default:await this.evaluate(()=>{self.close()})}}};vx=new WeakMap,bx=new WeakMap,GW=new WeakMap,uce=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},dqe=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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 xSt(a){switch(a){case"warning":return"warn";default:return a}}function Cqe(a){switch(a){case"Strict":case"Lax":case"None":return a;default:return}}var Ace,K6,lce,af,Ib,q6,W6,Y6,HW,jW,Zd,Sh,KW,V6,qW,WW,YW,l7,CN,lve,fce,dce,wl,kSt,TSt,FSt,gqe,gce,VW,NSt,PSt,RSt,MSt,LSt,pqe,_qe,hqe,OSt,USt,mqe,Iqe=class Iqe extends bQe{constructor(s,c){super();ue(this,wl);ue(this,Ace,!1);ue(this,K6);ue(this,lce);ue(this,af);ue(this,Ib);ue(this,q6);ue(this,W6);ue(this,Y6);ue(this,HW);ue(this,jW);ue(this,Zd);ue(this,Sh);ue(this,KW);ue(this,V6,new Map);ue(this,qW,new Map);ue(this,WW);ue(this,YW);ue(this,l7,new Map);ue(this,CN,new Set);ue(this,lve,zu.create());ue(this,fce,!1);ue(this,dce,!1);ue(this,gce,s=>{let c=s._session()?.id(),f=I(this,l7).get(c);f&&(I(this,l7).delete(c),this.emit("workerdestroyed",f))});ue(this,VW,s=>{if(Cs(s instanceof cQ),I(this,Zd).onAttachedToTarget(s.target()),s.target()._getTargetInfo().type==="worker"){let c=new JW(s,s.target().url(),s.target()._targetId,s.target().type(),Ke(this,wl,hqe).bind(this),Ke(this,wl,_qe).bind(this),I(this,Zd).networkManager);I(this,l7).set(s.id(),c),this.emit("workercreated",c)}s.on(Ql.Ready,I(this,VW))});Be(this,af,s),Be(this,q6,s.parentSession()),Cs(I(this,q6),"Tab target session is not defined."),Be(this,W6,I(this,q6).target()),Cs(I(this,W6),"Tab target is not defined."),this._tabId=I(this,W6)._getTargetInfo().targetId,Be(this,Ib,c),Be(this,K6,c._targetManager()),Be(this,Y6,new ave(s)),Be(this,HW,new ove(s,I(this,Y6))),Be(this,jW,new cve(s,I(this,Y6))),Be(this,Zd,new nve(s,this,this._timeoutSettings)),Be(this,Sh,new LQe(s)),Be(this,KW,new UW(s)),Be(this,WW,new oW(s)),Be(this,YW,null),Be(this,lce,new FQe(I(this,af).connection()));let f=new ya(I(this,Zd));f.on(J_.FrameAttached,C=>{this.emit("frameattached",C)}),f.on(J_.FrameDetached,C=>{this.emit("framedetached",C)}),f.on(J_.FrameNavigated,C=>{this.emit("framenavigated",C)}),f.on(J_.ConsoleApiCalled,([C,w])=>{Ke(this,wl,hqe).call(this,C,w)}),f.on(J_.BindingCalled,([C,w])=>{Ke(this,wl,OSt).call(this,C,w)});let p=new ya(I(this,Zd).networkManager);p.on(wh.Request,C=>{this.emit("request",C)}),p.on(wh.RequestServedFromCache,C=>{this.emit("requestservedfromcache",C)}),p.on(wh.Response,C=>{this.emit("response",C)}),p.on(wh.RequestFailed,C=>{this.emit("requestfailed",C)}),p.on(wh.RequestFinished,C=>{this.emit("requestfinished",C)}),I(this,q6).on(Ql.Swapped,Ke(this,wl,TSt).bind(this)),I(this,q6).on(Ql.Ready,Ke(this,wl,FSt).bind(this)),I(this,K6).on("targetGone",I(this,gce)),I(this,W6)._isClosedDeferred.valueOrThrow().then(()=>{I(this,K6).off("targetGone",I(this,gce)),this.emit("close",void 0),Be(this,Ace,!0)}).catch(Ss),Ke(this,wl,gqe).call(this),Ke(this,wl,kSt).call(this)}static async _create(s,c,f){var C;let p=new Iqe(s,c);if(await Ke(C=p,wl,NSt).call(C),f)try{await p.setViewport(f)}catch(w){if(u_(w)&&RO(w))Ss(w);else throw w}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,fce)}isDragInterceptionEnabled(){return I(this,dce)}isJavaScriptEnabled(){return I(this,Sh).javascriptEnabled}async openDevTools(){let s=this.target()._targetId;return await this.browser()._createDevToolsPage(s)}async waitForFileChooser(s={}){let c=I(this,CN).size===0,{timeout:f=this._timeoutSettings.timeout()}=s,p=zu.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,CN).add(p);let C;c&&(C=I(this,af).send("Page.setInterceptFileChooserDialog",{enabled:!0}));try{let[w]=await Promise.all([p.valueOrThrow(),C]);return w}catch(w){throw I(this,CN).delete(p),w}}async setGeolocation(s){return await I(this,Sh).setGeolocation(s)}target(){return I(this,Ib)}browser(){return I(this,Ib).browser()}browserContext(){return I(this,Ib).browserContext()}mainFrame(){return I(this,Zd).mainFrame()}get keyboard(){return I(this,Y6)}get touchscreen(){return I(this,jW)}get coverage(){return I(this,WW)}get tracing(){return I(this,KW)}frames(){return I(this,Zd).frames()}workers(){return Array.from(I(this,l7).values())}async setRequestInterception(s){return await I(this,Zd).networkManager.setRequestInterception(s)}async setBypassServiceWorker(s){return Be(this,fce,s),await I(this,af).send("Network.setBypassServiceWorker",{bypass:s})}async setDragInterception(s){return Be(this,dce,s),await I(this,af).send("Input.setInterceptDrags",{enabled:s})}async setOfflineMode(s){return await I(this,Zd).networkManager.setOfflineMode(s)}async emulateNetworkConditions(s){return await I(this,Zd).networkManager.emulateNetworkConditions(s)}async emulateFocusedPage(s){return await I(this,Sh).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){Cs(!s.disposed,"Prototype JSHandle is disposed!"),Cs(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 w of f)delete C[w];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:Ave(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 w=Object.assign({},C);return!w.url&&f&&(w.url=c),Cs(w.url!=="about:blank",`Blank page can not have cookie "${w.name}"`),Cs(!String.prototype.startsWith.call(w.url||"","data:"),`Data URL page can not have cookie "${w.name}"`),w});await this.deleteCookie(...p),p.length&&await I(this,af).send("Network.setCookies",{cookies:p.map(C=>({...C,partitionKey:Ave(C.partitionKey),sameSite:Cqe(C.sameSite)}))})}async exposeFunction(s,c){if(I(this,V6).has(s))throw new Error(`Failed to add page binding with name ${s}: window['${s}'] already exists!`);let f=jDt("exposedFun",s),p;switch(typeof c){case"function":p=new C6(s,c,f);break;default:p=new C6(s,c.default,f);break}I(this,V6).set(s,p);let[{identifier:C}]=await Promise.all([I(this,Zd).evaluateOnNewDocument(f),I(this,Zd).addExposedFunctionBinding(p)]);I(this,qW).set(s,C)}async removeExposedFunction(s){let c=I(this,qW).get(s);if(!c)throw new Error(`Function with name "${s}" does not exist`);let f=I(this,V6).get(s);I(this,qW).delete(s),I(this,V6).delete(s),await Promise.all([I(this,Zd).removeScriptToEvaluateOnNewDocument(c),I(this,Zd).removeExposedFunctionBinding(f)])}async authenticate(s){return await I(this,Zd).networkManager.authenticate(s)}async setExtraHTTPHeaders(s){return await I(this,Zd).networkManager.setExtraHTTPHeaders(s)}async setUserAgent(s,c){if(typeof s=="string")return await I(this,Zd).networkManager.setUserAgent(s,c);{let f=s.userAgent??await this.browser().userAgent();return await I(this,Zd).networkManager.setUserAgent(f,s.userAgentMetadata,s.platform)}}async metrics(){let s=await I(this,af).send("Performance.getMetrics");return Ke(this,wl,pqe).call(this,s.metrics)}async captureHeapSnapshot(s){let{createWriteStream:c}=jm.value.fs,f=c(s.path),p=new Promise((P,U)=>{f.on("error",U),f.on("finish",P)}),C=I(this,af);await C.send("HeapProfiler.enable"),await C.send("HeapProfiler.collectGarbage");let w=P=>{f.write(P.chunk)};C.on("HeapProfiler.addHeapSnapshotChunk",w);try{await C.send("HeapProfiler.takeHeapSnapshot",{reportProgress:!1})}finally{C.off("HeapProfiler.addHeapSnapshotChunk",w),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,wl,mqe).call(this,-1,s)}async goForward(s={}){return await Ke(this,wl,mqe).call(this,1,s)}async bringToFront(){await I(this,af).send("Page.bringToFront")}async setJavaScriptEnabled(s){return await I(this,Sh).setJavaScriptEnabled(s)}async setBypassCSP(s){await I(this,af).send("Page.setBypassCSP",{enabled:s})}async emulateMediaType(s){return await I(this,Sh).emulateMediaType(s)}async emulateCPUThrottling(s){return await I(this,Sh).emulateCPUThrottling(s)}async emulateMediaFeatures(s){return await I(this,Sh).emulateMediaFeatures(s)}async emulateTimezone(s){return await I(this,Sh).emulateTimezone(s)}async emulateIdleState(s){return await I(this,Sh).emulateIdleState(s)}async emulateVisionDeficiency(s){return await I(this,Sh).emulateVisionDeficiency(s)}async setViewport(s){let c=await I(this,Sh).emulateViewport(s);Be(this,YW,s),c&&await this.reload()}viewport(){return I(this,YW)}async evaluateOnNewDocument(s,...c){let f=tq(s,...c);return await I(this,Zd).evaluateOnNewDocument(f)}async removeScriptToEvaluateOnNewDocument(s){return await I(this,Zd).removeScriptToEvaluateOnNewDocument(s)}async setCacheEnabled(s=!0){await I(this,Zd).networkManager.setCacheEnabled(s)}async _screenshot(s){let c={stack:[],error:void 0,hasError:!1};try{let{fromSurface:f,omitBackground:p,optimizeForSpeed:C,quality:w,clip:P,type:U,captureBeyondViewport:O}=s,j=fqe(c,new M1e,!0);p&&(U==="png"||U==="webp")&&(await I(this,Sh).setTransparentBackgroundColor(),j.defer(async()=>{await I(this,Sh).resetDefaultBackgroundColor().catch(Ss)}));let k=P;if(k&&!O){let G=await this.mainFrame().isolatedRealm().evaluate(()=>{let{height:H,pageLeft:X,pageTop:de,width:we}=window.visualViewport;return{x:X,y:de,height:H,width:we}});k=jvr(k,G)}let{data:N}=await I(this,af).send("Page.captureScreenshot",{format:U,optimizeForSpeed:C,fromSurface:f,...w!==void 0?{quality:Math.round(w)}:{},...k?{clip:{...k,scale:k.scale??1}}:{},captureBeyondViewport:O});return N}catch(f){c.error=f,c.hasError=!0}finally{let f=dqe(c);f&&await f}}async createPDFStream(s={}){let{timeout:c=this._timeoutSettings.timeout()}=s,{landscape:f,displayHeaderFooter:p,headerTemplate:C,footerTemplate:w,printBackground:P,scale:U,width:O,height:j,margin:k,pageRanges:N,preferCSSPageSize:G,omitBackground:H,tagged:X,outline:de,waitForFonts:we}=z1e(s);H&&await I(this,Sh).setTransparentBackgroundColor(),we&&await Xd(aA(this.mainFrame().isolatedRealm().evaluate(()=>document.fonts.ready)).pipe(_p(G_(c))));let Je=I(this,af).send("Page.printToPDF",{transferMode:"ReturnAsStream",landscape:f,displayHeaderFooter:p,headerTemplate:C,footerTemplate:w,printBackground:P,scale:U,paperWidth:O,paperHeight:j,marginTop:k.top,marginBottom:k.bottom,marginLeft:k.left,marginRight:k.right,pageRanges:N,preferCSSPageSize:G,generateTaggedPDF:X,generateDocumentOutline:de}),Te=await Xd(aA(Je).pipe(_p(G_(c))));return H&&await I(this,Sh).resetDefaultBackgroundColor(),Cs(Te.stream,"`stream` is missing from `Page.printToPDF"),await Y1e(I(this,af),Te.stream)}async pdf(s={}){let{path:c=void 0}=s,f=await this.createPDFStream(s),p=await W1e(f,c);return Cs(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();Cs(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,Ib)._targetId}),await I(this,W6)._isClosedDeferred.valueOrThrow())}catch(f){c.error=f,c.hasError=!0}finally{dqe(c)}}isClosed(){return I(this,Ace)}get mouse(){return I(this,HW)}async waitForDevicePrompt(s={}){return await this.mainFrame().waitForDevicePrompt(s)}get bluetooth(){return I(this,lce)}};Ace=new WeakMap,K6=new WeakMap,lce=new WeakMap,af=new WeakMap,Ib=new WeakMap,q6=new WeakMap,W6=new WeakMap,Y6=new WeakMap,HW=new WeakMap,jW=new WeakMap,Zd=new WeakMap,Sh=new WeakMap,KW=new WeakMap,V6=new WeakMap,qW=new WeakMap,WW=new WeakMap,YW=new WeakMap,l7=new WeakMap,CN=new WeakMap,lve=new WeakMap,fce=new WeakMap,dce=new WeakMap,wl=new WeakSet,kSt=function(){let s=[];for(let f of I(this,K6).getChildTargets(I(this,Ib)))s.push(f);let c=0;for(;c{I(this,lve).reject(new vh("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,wl,USt).bind(this)),s.on("Runtime.exceptionThrown",Ke(this,wl,_qe).bind(this)),s.on("Inspector.targetCrashed",Ke(this,wl,RSt).bind(this)),s.on("Performance.metrics",Ke(this,wl,LSt).bind(this)),s.on("Log.entryAdded",Ke(this,wl,MSt).bind(this)),s.on("Page.fileChooserOpened",Ke(this,wl,PSt).bind(this))},gce=new WeakMap,VW=new WeakMap,NSt=async function(){try{await Promise.all([I(this,Zd).initialize(I(this,af)),I(this,af).send("Performance.enable"),I(this,af).send("Log.enable")])}catch(s){if(u_(s)&&RO(s))Ss(s);else throw s}},PSt=async function(s){let c={stack:[],error:void 0,hasError:!1};try{if(!I(this,CN).size)return;let f=I(this,Zd).frame(s.frameId);Cs(f,"This should never happen.");let p=fqe(c,await f.worlds[fQ].adoptBackendNode(s.backendNodeId),!1),C=new Yq(p.move(),s.mode!=="selectSingle");for(let w of I(this,CN))w.resolve(C);I(this,CN).clear()}catch(f){c.error=f,c.hasError=!0}finally{dqe(c)}},RSt=function(){this.emit("error",new Error("Page crashed!"))},MSt=function(s){let{level:c,text:f,args:p,source:C,url:w,lineNumber:P,stackTrace:U}=s.entry;p&&p.map(O=>{WKe(I(this,af),O)}),C!=="worker"&&this.emit("console",new xO(xSt(c),f,[],[{url:w,lineNumber:P}],void 0,U,I(this,Ib)._targetId))},LSt=function(s){this.emit("metrics",{title:s.title,metrics:Ke(this,wl,pqe).call(this,s.metrics)})},pqe=function(s){let c={};for(let f of s||[])Hvr.has(f.name)&&(c[f.name]=f.value);return c},_qe=function(s){this.emit("pageerror",JDt(s.exceptionDetails))},hqe=function(s,c){let f=c.args.map(U=>s.createCdpHandle(U));if(!this.listenerCount("console")){f.forEach(U=>U.dispose());return}let p=[];for(let U of f)p.push(HDt(U));let C=[];if(c.stackTrace)for(let U of c.stackTrace.callFrames)C.push({url:U.url,lineNumber:U.lineNumber,columnNumber:U.columnNumber});let w;s.environment.client instanceof cQ&&(w=s.environment.client.target()._targetId);let P=new xO(xSt(c.type),p.join(" "),f,C,void 0,c.stackTrace,w);this.emit("console",P)},OSt=async function(s,c){let f;try{f=JSON.parse(c.payload)}catch{return}let{type:p,name:C,seq:w,args:P,isTrivial:U}=f;if(p!=="exposedFun")return;let O=s.context;if(!O)return;await I(this,V6).get(C)?.run(O,w,P,U)},USt=function(s){let c=sDt(s.type),f=new MQe(I(this,af),c,s.message,s.defaultPrompt);this.emit("dialog",f)},mqe=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 zW=Iqe,Hvr=new Set(["Timestamp","Documents","Frames","JSEventListeners","Nodes","LayoutCount","RecalcStyleCount","LayoutDuration","RecalcStyleDuration","ScriptDuration","TaskDuration","JSHeapUsedSize","JSHeapTotalSize"]);function jvr(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 Ave(a){if(a!==void 0)return typeof a=="string"?{topLevelSite:a,hasCrossSiteAncestor:!1}:{topLevelSite:a.sourceOrigin,hasCrossSiteAncestor:a.hasCrossSiteAncestor??!1}}var Kvr=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},qvr=(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(w){return s(w),p()})}else f|=1}catch(w){s(w)}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}),wx,IN,yB,XW=class extends uq{constructor(s,c,f){super();ue(this,wx);ue(this,IN);ue(this,yB);Be(this,wx,s),Be(this,IN,c),Be(this,yB,f)}get id(){return I(this,yB)}targets(){return I(this,IN).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,IN)._getIsPageTargetCallback()?.(f)).map(f=>f.page()))).filter(f=>!!f)}async overridePermissions(s,c){let f=c.map(p=>{let C=nae.get(p);if(!C)throw new Error("Unknown permission: "+p);return C});await I(this,wx).send("Browser.grantPermissions",{origin:s,browserContextId:I(this,yB)||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,wx).send("Browser.setPermission",{origin:s==="*"?void 0:s,browserContextId:I(this,yB)||void 0,permission:p,setting:f.state})}))}async clearPermissionOverrides(){await I(this,wx).send("Browser.resetPermissions",{browserContextId:I(this,yB)||void 0})}async newPage(s){let c={stack:[],error:void 0,hasError:!1};try{let f=Kvr(c,await this.waitForScreenshotOperations(),!1);return await I(this,IN)._createPageInContext(I(this,yB),s)}catch(f){c.error=f,c.hasError=!0}finally{qvr(c)}}browser(){return I(this,IN)}async close(){Cs(I(this,yB),"Default BrowserContext cannot be closed!"),await I(this,IN)._disposeContext(I(this,yB))}async cookies(){let{cookies:s}=await I(this,wx).send("Storage.getCookies",{browserContextId:I(this,yB)});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,wx).send("Storage.setCookies",{browserContextId:I(this,yB),cookies:s.map(c=>({...c,partitionKey:Ave(c.partitionKey),sameSite:Cqe(c.sameSite)}))})}async setDownloadBehavior(s){await I(this,wx).send("Browser.setDownloadBehavior",{behavior:s.policy,downloadPath:s.downloadPath,browserContextId:I(this,yB)})}};wx=new WeakMap,IN=new WeakMap,yB=new WeakMap;Mae();Ou();G0();var iy;(function(a){a.SUCCESS="success",a.ABORTED="aborted"})(iy||(iy={}));var z6,f7,Dx,ZW,X6,$W,pce=class extends uN{constructor(s,c,f,p,C){super();ue(this,z6);ue(this,f7);ue(this,Dx);ue(this,ZW);ue(this,X6);ue(this,$W,new Set);Gr(this,"_initializedDeferred",zu.create());Gr(this,"_isClosedDeferred",zu.create());Gr(this,"_targetId");Be(this,f7,c),Be(this,ZW,p),Be(this,Dx,s),Be(this,z6,f),this._targetId=s.targetId,Be(this,X6,C),I(this,f7)&&I(this,f7).setTarget(this)}async asPage(){let s=this._session();return s?await zW._create(s,this,null):await this.createCDPSession().then(c=>zW._create(c,this,null))}_subtype(){return I(this,Dx).subtype}_session(){return I(this,f7)}_addChildTarget(s){I(this,$W).add(s)}_removeChildTarget(s){I(this,$W).delete(s)}_childTargets(){return I(this,$W)}_sessionFactory(){if(!I(this,X6))throw new Error("sessionFactory is not initialized");return I(this,X6)}createCDPSession(){if(!I(this,X6))throw new Error("sessionFactory is not initialized");return I(this,X6).call(this,!1).then(s=>(s.setTarget(this),s))}url(){return I(this,Dx).url}type(){switch(I(this,Dx).type){case"page":return im.PAGE;case"background_page":return im.BACKGROUND_PAGE;case"service_worker":return im.SERVICE_WORKER;case"shared_worker":return im.SHARED_WORKER;case"browser":return im.BROWSER;case"webview":return im.WEBVIEW;case"tab":return im.TAB;default:return im.OTHER}}_targetManager(){if(!I(this,ZW))throw new Error("targetManager is not initialized");return I(this,ZW)}_getTargetInfo(){return I(this,Dx)}browser(){if(!I(this,z6))throw new Error("browserContext is not initialized");return I(this,z6).browser()}browserContext(){if(!I(this,z6))throw new Error("browserContext is not initialized");return I(this,z6)}opener(){let{openerId:s}=I(this,Dx);if(s)return this.browser().targets().find(c=>c._targetId===s)}_targetInfoChanged(s){Be(this,Dx,s),this._checkIfInitialized()}_initialize(){this._initializedDeferred.resolve(iy.SUCCESS)}_isTargetExposed(){return this.type()!==im.TAB&&!this._subtype()}_checkIfInitialized(){this._initializedDeferred.resolved()||this._initializedDeferred.resolve(iy.SUCCESS)}};z6=new WeakMap,f7=new WeakMap,Dx=new WeakMap,ZW=new WeakMap,X6=new WeakMap,$W=new WeakMap;var hce,Eqe=class Eqe extends pce{constructor(s,c,f,p,C,w){super(s,c,f,p,C);ue(this,hce);Gr(this,"pagePromise");Be(this,hce,w??void 0)}_initialize(){this._initializedDeferred.valueOrThrow().then(async s=>{if(s===iy.ABORTED)return;let c=this.opener();if(!(c instanceof Eqe))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=>zW._create(c,this,I(this,hce)??null))}return await this.pagePromise??null}_checkIfInitialized(){this._initializedDeferred.resolved()||this._getTargetInfo().url!==""&&this._initializedDeferred.resolve(iy.SUCCESS)}};hce=new WeakMap;var _ce=Eqe,fve=class extends _ce{},eY,dve=class extends pce{constructor(){super(...arguments);ue(this,eY)}async worker(){if(!I(this,eY)){let s=this._session();Be(this,eY,(s?Promise.resolve(s):this._sessionFactory()(!1)).then(c=>new JW(c,this._getTargetInfo().url,this._targetId,this.type(),()=>{},()=>{},void 0)))}return await I(this,eY)}};eY=new WeakMap;var gve=class extends pce{};_B();kf();Ou();Tf();G0();function Wvr(a,r){return!!a._subtype()&&!r.subtype}var j0,d7,BB,g7,Cce,tY,p7,_7,h7,Ice,Ece,rY,iY,nY,pQ,yqe,Bqe,yce,_ve,Bce,Qce,vce,bce,hve,mce,mve,pve=class extends ya{constructor(s,c,f,p=!0){super();ue(this,pQ);ue(this,j0);ue(this,d7,new Map);ue(this,BB,new Map);ue(this,g7,new Map);ue(this,Cce,new Set);ue(this,tY);ue(this,p7);ue(this,_7,new WeakMap);ue(this,h7,new WeakMap);ue(this,Ice,zu.create());ue(this,Ece,!0);ue(this,rY,[{}]);ue(this,iY,new Set);ue(this,nY,!1);ue(this,yce,async(s,c)=>{await s.send("Runtime.runIfWaitingForDebugger").catch(Ss),await c.send("Target.detachFromTarget",{sessionId:s.id()}).catch(Ss)});ue(this,_ve,s=>s instanceof cQ?s.target():null);ue(this,Bce,s=>{Ke(this,pQ,Bqe).call(this,s)});ue(this,Qce,async s=>{if(I(this,d7).set(s.targetInfo.targetId,s.targetInfo),this.emit("targetDiscovered",s.targetInfo),s.targetInfo.type==="browser"&&s.targetInfo.attached){if(I(this,BB).has(s.targetInfo.targetId))return;let c=I(this,p7).call(this,s.targetInfo,void 0);c._initialize(),I(this,BB).set(s.targetInfo.targetId,c)}});ue(this,vce,s=>{let c=I(this,d7).get(s.targetId);if(I(this,d7).delete(s.targetId),Ke(this,pQ,mce).call(this,s.targetId),c?.type==="service_worker"){let f=I(this,BB).get(s.targetId);f&&(this.emit("targetGone",f),I(this,BB).delete(s.targetId))}});ue(this,bce,s=>{if(I(this,d7).set(s.targetInfo.targetId,s.targetInfo),I(this,Cce).has(s.targetInfo.targetId)||!s.targetInfo.attached)return;let c=I(this,BB).get(s.targetInfo.targetId);if(!c)return;let f=c.url(),p=c._initializedDeferred.value()===iy.SUCCESS;if(Wvr(c,s.targetInfo)){let C=c._session();Cs(C,"Target that is being activated is missing a CDPSession."),C.parentSession()?.emit(Ql.Swapped,C)}c._targetInfoChanged(s.targetInfo),p&&f!==c.url()&&this.emit("targetChanged",{target:c,wasInitialized:p,previousURL:f})});ue(this,hve,async(s,c)=>{let f=c.targetInfo,p=I(this,j0)._session(c.sessionId);if(!p)throw new Error(`Session ${c.sessionId} was not created.`);if(!I(this,j0).isAutoAttached(f.targetId))return;if(f.type==="service_worker"){if(await I(this,yce).call(this,p,s),I(this,BB).has(f.targetId))return;let U=I(this,p7).call(this,f);U._initialize(),I(this,BB).set(f.targetId,U),this.emit("targetAvailable",U);return}let C=I(this,BB).get(f.targetId),w=C!==void 0;C||(C=I(this,p7).call(this,f,p,s instanceof cQ?s:void 0));let P=I(this,_ve).call(this,s);if(I(this,tY)&&!I(this,tY).call(this,C)){I(this,Cce).add(f.targetId),P?.type()==="tab"&&Ke(this,pQ,mce).call(this,P._targetId),await I(this,yce).call(this,p,s);return}I(this,Ece)&&c.targetInfo.type==="tab"&&!I(this,nY)&&I(this,iY).add(c.targetInfo.targetId),Ke(this,pQ,yqe).call(this,p),w?(p.setTarget(C),I(this,g7).set(p.id(),C)):(C._initialize(),I(this,BB).set(f.targetId,C),I(this,g7).set(p.id(),C)),P?._addChildTarget(C),s.emit(Ql.Ready,p),w||this.emit("targetAvailable",C),P?.type()==="tab"&&Ke(this,pQ,mce).call(this,P._targetId),await Promise.all([p.send("Target.setAutoAttach",{waitForDebuggerOnStart:!0,flatten:!0,autoAttach:!0,filter:I(this,rY)}),p.send("Runtime.runIfWaitingForDebugger")]).catch(Ss)});ue(this,mve,(s,c)=>{let f=I(this,g7).get(c.sessionId);I(this,g7).delete(c.sessionId),f&&(s instanceof cQ&&s.target()._removeChildTarget(f),I(this,BB).delete(f._targetId),this.emit("targetGone",f))});Be(this,j0,s),Be(this,tY,f),Be(this,p7,c),Be(this,Ece,p),I(this,j0).on("Target.targetCreated",I(this,Qce)),I(this,j0).on("Target.targetDestroyed",I(this,vce)),I(this,j0).on("Target.targetInfoChanged",I(this,bce)),I(this,j0).on(Ql.SessionDetached,I(this,Bce)),Ke(this,pQ,yqe).call(this,I(this,j0))}async initialize(){await I(this,j0).send("Target.setDiscoverTargets",{discover:!0,filter:I(this,rY)}),await I(this,j0).send("Target.setAutoAttach",{waitForDebuggerOnStart:!0,flatten:!0,autoAttach:!0,filter:[{type:"page",exclude:!0},...I(this,rY)]}),Be(this,nY,!0),Ke(this,pQ,mce).call(this),await I(this,Ice).valueOrThrow()}getChildTargets(s){return s._childTargets()}dispose(){I(this,j0).off("Target.targetCreated",I(this,Qce)),I(this,j0).off("Target.targetDestroyed",I(this,vce)),I(this,j0).off("Target.targetInfoChanged",I(this,bce)),I(this,j0).off(Ql.SessionDetached,I(this,Bce)),Ke(this,pQ,Bqe).call(this,I(this,j0))}getAvailableTargets(){return I(this,BB)}};j0=new WeakMap,d7=new WeakMap,BB=new WeakMap,g7=new WeakMap,Cce=new WeakMap,tY=new WeakMap,p7=new WeakMap,_7=new WeakMap,h7=new WeakMap,Ice=new WeakMap,Ece=new WeakMap,rY=new WeakMap,iY=new WeakMap,nY=new WeakMap,pQ=new WeakSet,yqe=function(s){let c=p=>{I(this,hve).call(this,s,p)};Cs(!I(this,_7).has(s)),I(this,_7).set(s,c),s.on("Target.attachedToTarget",c);let f=p=>I(this,mve).call(this,s,p);Cs(!I(this,h7).has(s)),I(this,h7).set(s,f),s.on("Target.detachedFromTarget",f)},Bqe=function(s){let c=I(this,_7).get(s);c&&(s.off("Target.attachedToTarget",c),I(this,_7).delete(s));let f=I(this,h7).get(s);f&&(s.off("Target.detachedFromTarget",f),I(this,h7).delete(s))},yce=new WeakMap,_ve=new WeakMap,Bce=new WeakMap,Qce=new WeakMap,vce=new WeakMap,bce=new WeakMap,hve=new WeakMap,mce=function(s){s!==void 0&&I(this,iY).delete(s),I(this,nY)&&I(this,iY).size===0&&I(this,Ice).resolve()},mve=new WeakMap;function GSt(a){return a.startsWith("devtools://devtools/bundled/devtools_app.html")}var sY,wce,Ug,Dce,Sce,aY,EN,yN,xce,nm,kce,Tce,m7,JSt,Cve,Fce,Nce,Pce,Rce,Qqe,vqe=class vqe extends iq{constructor(s,c,f,p,C,w,P,U=!0,O=!0,j=!1){super();ue(this,m7);Gr(this,"protocol","cdp");ue(this,sY);ue(this,wce);ue(this,Ug);ue(this,Dce);ue(this,Sce);ue(this,aY);ue(this,EN);ue(this,yN,new Map);ue(this,xce,!0);ue(this,nm);ue(this,kce,!1);ue(this,Tce,()=>{this.emit("disconnected",void 0)});ue(this,Cve,(s,c)=>{let{browserContextId:f}=s,p=f&&I(this,yN).has(f)?I(this,yN).get(f):I(this,EN);if(!p)throw new Error("Missing browser context");let C=P=>I(this,Ug)._createSession(s,P),w=new gve(s,c,p,I(this,nm),C);return s.url&&GSt(s.url)?new fve(s,c,p,I(this,nm),C,I(this,sY)??null):I(this,aY).call(this,w)?new _ce(s,c,p,I(this,nm),C,I(this,sY)??null):s.type==="service_worker"||s.type==="shared_worker"?new dve(s,c,p,I(this,nm),C):w});ue(this,Fce,async s=>{s._isTargetExposed()&&await s._initializedDeferred.valueOrThrow()===iy.SUCCESS&&(this.emit("targetcreated",s),s.browserContext().emit("targetcreated",s))});ue(this,Nce,async s=>{s._initializedDeferred.resolve(iy.ABORTED),s._isClosedDeferred.resolve(),s._isTargetExposed()&&await s._initializedDeferred.valueOrThrow()===iy.SUCCESS&&(this.emit("targetdestroyed",s),s.browserContext().emit("targetdestroyed",s))});ue(this,Pce,({target:s})=>{this.emit("targetchanged",s),s.browserContext().emit("targetchanged",s)});ue(this,Rce,s=>{this.emit("targetdiscovered",s)});Be(this,xce,O),Be(this,sY,f),Be(this,wce,p),Be(this,Ug,s),Be(this,Dce,C||(()=>{})),Be(this,Sce,w||(()=>!0)),Be(this,kce,j),Ke(this,m7,JSt).call(this,P),Be(this,nm,new pve(s,I(this,Cve),I(this,Sce),U)),Be(this,EN,new XW(I(this,Ug),this));for(let k of c)I(this,yN).set(k,new XW(I(this,Ug),this,k))}static async _create(s,c,f,p,C,w,P,U,O,j=!0,k=!0,N=!1){let G=new vqe(s,c,p,w,P,U,O,j,k,N);return f&&await s.send("Security.setIgnoreCertificateErrors",{ignore:!0}),await G._attach(C),G}async _attach(s){I(this,Ug).on(Ql.Disconnected,I(this,Tce)),s&&await I(this,EN).setDownloadBehavior(s),I(this,nm).on("targetAvailable",I(this,Fce)),I(this,nm).on("targetGone",I(this,Nce)),I(this,nm).on("targetChanged",I(this,Pce)),I(this,nm).on("targetDiscovered",I(this,Rce)),await I(this,nm).initialize()}_detach(){I(this,Ug).off(Ql.Disconnected,I(this,Tce)),I(this,nm).off("targetAvailable",I(this,Fce)),I(this,nm).off("targetGone",I(this,Nce)),I(this,nm).off("targetChanged",I(this,Pce)),I(this,nm).off("targetDiscovered",I(this,Rce))}process(){return I(this,wce)??null}_targetManager(){return I(this,nm)}_getIsPageTargetCallback(){return I(this,aY)}async createBrowserContext(s={}){let{proxyServer:c,proxyBypassList:f,downloadBehavior:p}=s,{browserContextId:C}=await I(this,Ug).send("Target.createBrowserContext",{proxyServer:c,proxyBypassList:f&&f.join(",")}),w=new XW(I(this,Ug),this,C);return p&&await w.setDownloadBehavior(p),I(this,yN).set(C,w),w}browserContexts(){return[I(this,EN),...Array.from(I(this,yN).values())]}defaultBrowserContext(){return I(this,EN)}async _disposeContext(s){s&&(await I(this,Ug).send("Target.disposeBrowserContext",{browserContextId:s}),I(this,yN).delete(s))}wsEndpoint(){return I(this,Ug).url()}async newPage(s){return await I(this,EN).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,Ug).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}),w=await this.waitForTarget(O=>O._targetId===C);if(!w)throw new Error(`Missing target for page (id = ${C})`);if(!(await w._initializedDeferred.valueOrThrow()===iy.SUCCESS))throw new Error(`Failed to create target for page (id = ${C})`);let U=await w.page();if(!U)throw new Error(`Failed to create a page for context (id = ${s})`);return U}async _createDevToolsPage(s){let c=await I(this,Ug).send("Target.openDevTools",{targetId:s}),f=await this.waitForTarget(w=>w._targetId===c.targetId);if(!f)throw new Error(`Missing target for DevTools page (id = ${s})`);if(!(await f._initializedDeferred.valueOrThrow()===iy.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 installExtension(s){let{id:c}=await I(this,Ug).send("Extensions.loadUnpacked",{path:s});return c}uninstallExtension(s){return I(this,Ug).send("Extensions.uninstall",{id:s})}async screens(){let{screenInfos:s}=await I(this,Ug).send("Emulation.getScreenInfos");return s}async addScreen(s){let{screenInfo:c}=await I(this,Ug).send("Emulation.addScreen",s);return c}async removeScreen(s){return await I(this,Ug).send("Emulation.removeScreen",{screenId:s})}async getWindowBounds(s){let{bounds:c}=await I(this,Ug).send("Browser.getWindowBounds",{windowId:Number(s)});return c}async setWindowBounds(s,c){await I(this,Ug).send("Browser.setWindowBounds",{windowId:Number(s),bounds:c})}targets(){return Array.from(I(this,nm).getAvailableTargets().values()).filter(s=>s._isTargetExposed()&&s._initializedDeferred.value()===iy.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,m7,Qqe).call(this)).product}async userAgent(){return(await Ke(this,m7,Qqe).call(this)).userAgent}async close(){await I(this,Dce).call(null),await this.disconnect()}disconnect(){return I(this,nm).dispose(),I(this,Ug).dispose(),this._detach(),Promise.resolve()}get connected(){return!I(this,Ug)._closed}get debugInfo(){return{pendingProtocolErrors:I(this,Ug).getPendingProtocolErrors()}}isNetworkEnabled(){return I(this,xce)}};sY=new WeakMap,wce=new WeakMap,Ug=new WeakMap,Dce=new WeakMap,Sce=new WeakMap,aY=new WeakMap,EN=new WeakMap,yN=new WeakMap,xce=new WeakMap,nm=new WeakMap,kce=new WeakMap,Tce=new WeakMap,m7=new WeakSet,JSt=function(s){Be(this,aY,s||(c=>c.type()==="page"||c.type()==="background_page"||c.type()==="webview"||I(this,kce)&&c.type()==="other"&&GSt(c.url())))},Cve=new WeakMap,Fce=new WeakMap,Nce=new WeakMap,Pce=new WeakMap,Rce=new WeakMap,Qqe=function(){return I(this,Ug).send("Browser.getVersion")};var oY=vqe;Ou();QO();async function HSt(a,r,s){let{acceptInsecureCerts:c=!1,networkEnabled:f=!0,defaultViewport:p=eq,downloadBehavior:C,targetFilter:w,_isPageTarget:P,slowMo:U=0,protocolTimeout:O,handleDevToolsAsPage:j,idGenerator:k=_x()}=s,N=new dN(r,a,U,O,!1,k),{browserContextIds:G}=await N.send("Target.getBrowserContexts");return await oY._create(N,G,c,p,C,void 0,()=>N.send("Browser.close").catch(Ss),w,P,void 0,f,j)}RQe();OQe();var ati=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}});uve();Dqe();ooe();mae();NQe();uQe();zK();var Yvr=[{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}}],KSt={};for(let a of Yvr)KSt[a.name]=a;var Wti=Object.freeze(KSt);Bl();kf();PQe();AQe();sQe();pO();Zje();cKe();uKe();AKe();Bl();Ou();QO();async function mFt(a,r,s){let{acceptInsecureCerts:c=!1,networkEnabled:f=!0,defaultViewport:p=eq}=s,{bidiConnection:C,cdpConnection:w,closeCallback:P}=await aSr(a,r,s);return await(await Promise.resolve().then(()=>(_le(),ple))).BidiBrowser.create({connection:C,cdpConnection:w,closeCallback:P,process:void 0,defaultViewport:p,acceptInsecureCerts:c,networkEnabled:f,capabilities:s.capabilities})}async function aSr(a,r,s){let c=await Promise.resolve().then(()=>(_le(),ple)),{slowMo:f=0,protocolTimeout:p,idGenerator:C=_x()}=s,w=new c.BidiConnection(r,a,C,f,p);try{let j=await w.send("session.status",{});if("type"in j&&j.type==="success")return{bidiConnection:w,closeCallback:async()=>{await w.send("browser.close",{}).catch(Ss)}}}catch(j){if(!(j instanceof Qh))throw j}w.unbind();let P=new dN(r,a,f,p,!0,C);if((await P.send("Browser.getVersion")).product.toLowerCase().includes("firefox"))throw new Ho("Firefox is not supported in BiDi over CDP mode.");let O=await c.connectBidiOverCdp(P);return{cdpConnection:P,bidiConnection:O,closeCallback:async()=>{await P.send("Browser.close").catch(Ss)}}}fx();Tf();NI();var Ptt=async()=>tae?(await Promise.resolve().then(()=>(Tze(),bNt))).NodeWebSocketTransport:(await Promise.resolve().then(()=>(Dqe(),jSt))).BrowserWebSocketTransport;async function g7t(a){let{connectionTransport:r,endpointUrl:s}=await qOr(a);return a.protocol==="webDriverBiDi"?await mFt(r,s,a):await HSt(r,s,a)}async function qOr(a){let{browserWSEndpoint:r,browserURL:s,channel:c,transport:f,headers:p={}}=a;if(Cs(+!!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 Ptt()).create(r,p),endpointUrl:r};if(s){let C=await WOr(s);return{connectionTransport:await(await Ptt()).create(C),endpointUrl:C}}else if(a.channel&&tae){let{detectBrowserPlatform:C,resolveDefaultUserDataDir:w,Browser:P}=await Promise.resolve().then(()=>(CU(),f7t)),U=C();if(!U)throw new Error("Could not detect required browser platform");let{convertPuppeteerChannelToBrowsersChannel:O}=await Promise.resolve().then(()=>(Ntt(),d7t)),{join:j}=await import("node:path"),k=w(P.CHROME,U,O(a.channel)),N=j(k,"DevToolsActivePort");try{let G=await jm.value.fs.promises.readFile(N,"ascii"),[H,X]=G.split(` +`).map(Ct=>Ct.trim()).filter(Ct=>!!Ct);if(!H||!X)throw new Error(`Invalid DevToolsActivePort '${G}' found`);let de=parseInt(H,10);if(isNaN(de)||de<=0||de>65535)throw new Error(`Invalid port '${H}' found`);let we=`ws://localhost:${de}${X}`;return{connectionTransport:await(await Ptt()).create(we,p),endpointUrl:we}}catch(G){throw new Error(`Could not find DevToolsActivePort for ${a.channel} at ${N}`,{cause:G})}}throw new Error("Invalid connection options")}async function WOr(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 u_(s)&&(s.message=`Failed to fetch browser webSocket URL from ${r}: `+s.message),s}}uQe();var Ufe=class{constructor(r){Gr(this,"_isPuppeteerCore");Gr(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 g7t(r)}};Gr(Ufe,"customQueryHandlers",Iae);sN();Cae();zQe();lKe();xae();Ou();QKe();fKe();var MX=Object.freeze({chrome:"146.0.7680.31","chrome-headless-shell":"146.0.7680.31",firefox:"stable_148.0"});Tf();G0();fae();NI();o6();Zf();QO();var I7t=require("node:fs/promises"),E7t=Qc(require("node:os"),1),xxe=Qc(require("node:path"),1);CU();Ou();Tf();var Gfe=require("node:fs"),_7t=require("node:os"),Rtt=require("node:path");CU();_b();Bl();Ou();QO();Tze();kf();Ou();Tf();Zf();var LX,OX,UX,IU,Dxe,p7t,wxe=class{constructor(r,s){ue(this,Dxe);ue(this,LX);ue(this,OX,new Ol);ue(this,UX,!1);ue(this,IU,[]);Gr(this,"onclose");Gr(this,"onmessage");Be(this,LX,r);let c=I(this,OX).use(new ya(s));c.on("data",p=>Ke(this,Dxe,p7t).call(this,p)),c.on("close",()=>{this.onclose&&this.onclose.call(null)}),c.on("error",Ss),I(this,OX).use(new ya(r)).on("error",Ss)}send(r){Cs(!I(this,UX),"`PipeTransport` is closed."),I(this,LX).write(r),I(this,LX).write("\0")}close(){Be(this,UX,!0),I(this,OX).dispose()}};LX=new WeakMap,OX=new WeakMap,UX=new WeakMap,IU=new WeakMap,Dxe=new WeakSet,p7t=function(r){if(Cs(!I(this,UX),"`PipeTransport` is closed."),I(this,IU).push(r),r.indexOf("\0")===-1)return;let s=Buffer.concat(I(this,IU)),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,IU,[]):Be(this,IU,[s.subarray(c)])};var pk,GX=class{constructor(r,s){ue(this,pk);Gr(this,"puppeteer");this.puppeteer=r,Be(this,pk,s)}get browser(){return I(this,pk)}async launch(r={}){let{dumpio:s=!1,enableExtensions:c=!1,env:f=process.env,handleSIGINT:p=!0,handleSIGTERM:C=!0,handleSIGHUP:w=!0,acceptInsecureCerts:P=!1,networkEnabled:U=!0,defaultViewport:O=eq,downloadBehavior:j,slowMo:k=0,timeout:N=3e4,waitForInitialPage:G=!0,protocolTimeout:H,handleDevToolsAsPage:X,idGenerator:de=_x()}=r,{protocol:we}=r;if(I(this,pk)==="firefox"&&we===void 0&&(we="webDriverBiDi"),I(this,pk)==="firefox"&&we==="cdp")throw new Error("Connecting to Firefox using CDP is no longer supported");let Je=await this.computeLaunchArguments({...r,protocol:we});if(!(0,Gfe.existsSync)(Je.executablePath))throw new Error(`Browser was not found at the configured executablePath (${Je.executablePath})`);let Te=Je.args.includes("--remote-debugging-pipe"),Ct=async()=>{await this.cleanUserDataDir(Je.userDataDir,{isTemp:Je.isTempUserDataDir})};if(I(this,pk)==="firefox"&&we==="webDriverBiDi"&&Te)throw new Error("Pipe connections are not supported with Firefox and WebDriver BiDi");let Ve=AX({executablePath:Je.executablePath,args:Je.args,handleSIGHUP:w,handleSIGTERM:C,handleSIGINT:p,dumpio:s,env:f,pipe:Te,onExit:Ct,signal:r.signal}),st,cr,ct=!1,Yt=async()=>{ct||(ct=!0,await this.closeBrowser(Ve,cr))};try{I(this,pk)==="firefox"?st=await this.createBiDiBrowser(Ve,Yt,{timeout:N,protocolTimeout:H,slowMo:k,defaultViewport:O,acceptInsecureCerts:P,networkEnabled:U,idGenerator:de}):(Te?cr=await this.createCdpPipeConnection(Ve,{timeout:N,protocolTimeout:H,slowMo:k,idGenerator:de}):cr=await this.createCdpSocketConnection(Ve,{timeout:N,protocolTimeout:H,slowMo:k,idGenerator:de}),we==="webDriverBiDi"?st=await this.createBiDiOverCdpBrowser(Ve,cr,Yt,{defaultViewport:O,acceptInsecureCerts:P,networkEnabled:U}):st=await oY._create(cr,[],P,O,j,Ve.nodeProcess,Yt,r.targetFilter,void 0,void 0,U,X))}catch(yt){Yt();let Rt=Ve.getRecentLogs().join(` +`);throw Rt.includes("Failed to create a ProcessSingleton for your profile directory")||process.platform==="win32"&&(0,Gfe.existsSync)((0,Rtt.join)(Je.userDataDir,"lockfile"))?new Error(`The browser is already running for ${Je.userDataDir}. Use a different \`userDataDir\` or stop the running browser first.`):Rt.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."):yt instanceof Y9?new $E(yt.message):yt}if(Array.isArray(c)){if(I(this,pk)==="chrome"&&!Te)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(yt=>st.installExtension(yt))])}return G&&await this.waitForPageTarget(st,N),st}async closeBrowser(r,s){if(s)try{await s.closeBrowser(),await r.hasClosed()}catch(c){Ss(c),await r.close()}else await Xd(HK(aA(r.hasClosed()),aO(5e3).pipe(Xf(()=>aA(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(h2e,s.timeout),f=await cz.create(c);return new dN(c,f,s.slowMo,s.protocolTimeout,!1,s.idGenerator)}async createCdpPipeConnection(r,s){let{3:c,4:f}=r.nodeProcess.stdio,p=new wxe(c,f);return new dN("",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(()=>(_le(),ple)),w=await C.connectBidiOverCdp(s);return await C.BidiBrowser.create({connection:w,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(m2e,c.timeout)+"/session",p=await cz.create(f),C=await Promise.resolve().then(()=>(_le(),ple)),w=new C.BidiConnection(f,p,c.idGenerator,c.slowMo,c.protocolTimeout);return await C.BidiBrowser.create({connection:w,closeCallback:s,process:r.nodeProcess,defaultViewport:c.defaultViewport,acceptInsecureCerts:c.acceptInsecureCerts,networkEnabled:c.networkEnabled??!0})}getProfilePath(){return(0,Rtt.join)(this.puppeteer.configuration.temporaryDirectory??(0,_7t.tmpdir)(),`puppeteer_dev_${this.browser}_profile-`)}resolveExecutablePath(r,s=!0){let c=this.puppeteer.configuration.executablePath;if(c){if(s&&!(0,Gfe.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,w){switch(C){case"chrome":return w==="shell"?lc.CHROMEHEADLESSSHELL:lc.CHROME;case"firefox":return lc.FIREFOX}return lc.CHROME}let p=f(this.browser,r);if(c=V9({cacheDir:this.puppeteer.defaultDownloadPath,browser:p,buildId:this.puppeteer.browserVersion}),s&&!(0,Gfe.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}};pk=new WeakMap;Ntt();var h7t=Qc(require("node:fs"),1);var YOr={force:!0,recursive:!0,maxRetries:5};async function Sxe(a){await h7t.default.promises.rm(a,YOr)}var kxe=class extends GX{constructor(r){super(r,"chrome")}launch(r={}){return this.puppeteer.configuration.logLevel==="warn"&&process.platform==="darwin"&&process.arch==="x64"&&E7t.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:w}=r,P=[];s?Array.isArray(s)?P.push(...this.defaultArgs(r).filter(N=>!s.includes(N))):P.push(...c):P.push(...this.defaultArgs(r)),P.some(N=>N.startsWith("--remote-debugging-"))||(f?(Cs(!p,"Browser should be launched with either pipe or debugging port - not both."),P.push("--remote-debugging-pipe")):P.push(`--remote-debugging-port=${p||0}`));let U=!1,O=P.findIndex(N=>N.startsWith("--user-data-dir"));O<0&&(U=!0,P.push(`--user-data-dir=${await(0,I7t.mkdtemp)(this.getProfilePath())}`),O=P.length-1);let j=P[O].split("=",2)[1];Cs(typeof j=="string","`--user-data-dir` is malformed");let k=w;return k||(Cs(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:P,isTempUserDataDir:U,userDataDir:j}}async cleanUserDataDir(r,s){if(s.isTemp)try{await Sxe(r)}catch(c){throw Ss(c),c}}defaultArgs(r={}){let s=m7t("--disable-features",r.args);r.args&&s.length>0&&C7t(r.args,"--disable-features");let f=["Translate","AcceptCHFrame","MediaRouter","OptimizationHints","RenderDocument","PartitionAllocSchedulerLoopQuarantineTaskControlledPurge",...process.env.PUPPETEER_TEST_EXPERIMENTAL_CHROME_FEATURES==="true"?[]:["ProcessPerSiteUpToMainFrameThreshold","IsolateSandboxedIframes"],...s].filter(N=>N!==""),p=m7t("--enable-features",r.args);r.args&&p.length>0&&C7t(r.args,"--enable-features");let C=["PdfOopif",...p].filter(N=>N!==""),w=["--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(N=>N!==""),{devtools:P=!1,headless:U=!P,args:O=[],userDataDir:j,enableExtensions:k=!1}=r;return j&&w.push(`--user-data-dir=${xxe.default.posix.isAbsolute(j)||xxe.default.win32.isAbsolute(j)?j:xxe.default.resolve(j)}`),P&&w.push("--auto-open-devtools-for-tabs"),U&&w.push(U==="shell"?"--headless":"--headless=new","--hide-scrollbars","--mute-audio"),w.push(k?"--enable-unsafe-extension-debugging":"--disable-extensions"),O.every(N=>N.startsWith("-"))&&w.push("about:blank"),w.push(...O),w}executablePath(r,s=!0){return r?uX({browser:lc.CHROME,channel:Ftt(r)}):this.resolveExecutablePath(void 0,s)}};function m7t(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 C7t(a,r){let s=new RegExp(`^${r}=.*`),c=0;for(;c!s.includes(N))):P.push(...c):P.push(...this.defaultArgs(r)),P.some(N=>N.startsWith("--remote-debugging-"))||(p&&Cs(w===null,"Browser should be launched with either pipe or debugging port - not both."),P.push(`--remote-debugging-port=${w||0}`));let U,O=!0,j=P.findIndex(N=>["-profile","--profile"].includes(N));if(j!==-1){if(U=P[j+1],!U)throw new Error("Missing value for profile command line argument");O=!1}else U=await(0,JX.mkdtemp)(this.getProfilePath()),P.push("--profile"),P.push(U);await l2e(lc.FIREFOX,{path:U,preferences:a.getPreferences(C)});let k;return this.puppeteer._isPuppeteerCore||f?(Cs(f,"An `executablePath` must be specified for `puppeteer-core`"),k=f):k=this.executablePath(void 0),{isTempUserDataDir:O,userDataDir:U,args:P,executablePath:k}}async cleanUserDataDir(r,s){if(s.isTemp)try{await Sxe(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 w=Mtt.default.join(r,C+c);if(y7t.default.existsSync(w)){let P=Mtt.default.join(r,C);await(0,JX.unlink)(P),await(0,JX.rename)(w,P)}}));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(B7t.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(w=>w.startsWith("-"))&&C.push("about:blank"),C.push(...f),C}};CU();var cR,Jfe,uR,HX,jX=class extends Ufe{constructor(s){let{configuration:c,...f}=s;super(f);ue(this,uR);ue(this,cR);ue(this,Jfe);Gr(this,"defaultBrowserRevision");Gr(this,"configuration",{});switch(c&&(this.configuration=c),this.configuration.defaultBrowser){case"firefox":this.defaultBrowserRevision=MX.firefox;break;default:this.configuration.defaultBrowser="chrome",this.defaultBrowserRevision=MX.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,Jfe,c),c){case"chrome":this.defaultBrowserRevision=MX.chrome;break;case"firefox":this.defaultBrowserRevision=MX.firefox;break;default:throw new Error(`Unknown product: ${c}`)}return Be(this,cR,Ke(this,uR,HX).call(this,c)),I(this,cR).launch(s)}executablePath(s){return s===void 0?Ke(this,uR,HX).call(this,this.lastLaunchedBrowser).executablePath(void 0,!1):typeof s=="string"?Ke(this,uR,HX).call(this,"chrome").executablePath(s,!1):Ke(this,uR,HX).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,Jfe)??this.defaultBrowser}get defaultBrowser(){return this.configuration.defaultBrowser??"chrome"}get product(){return this.lastLaunchedBrowser}defaultArgs(s={}){return Ke(this,uR,HX).call(this,s.browser??this.lastLaunchedBrowser).defaultArgs(s)}async trimCache(){let s=GC();if(!s)throw new Error("The current platform is not supported.");let c=this.configuration.cacheDirectory,f=await Z2e({cacheDir:c}),p=[{product:"chrome",browser:lc.CHROME,currentBuildId:""},{product:"firefox",browser:lc.FIREFOX,currentBuildId:""}];await Promise.all(p.map(async P=>{let U=this.configuration?.[P.product]?.version??MX[P.product];P.currentBuildId=await iX(P.browser,s,U)}));let C=new Set(p.map(P=>`${P.browser}_${P.currentBuildId}`)),w=new Set(p.map(P=>P.browser));for(let P of f)w.has(P.browser)&&(C.has(`${P.browser}_${P.buildId}`)||await X2e({browser:P.browser,platform:s,cacheDir:c,buildId:P.buildId}))}};cR=new WeakMap,Jfe=new WeakMap,uR=new WeakSet,HX=function(s){if(I(this,cR)&&I(this,cR).browser===s)return I(this,cR);switch(s){case"chrome":return new kxe(this);case"firefox":return new Txe(this);default:throw new Error(`Unknown product: ${s}`)}};var Nxe=require("node:child_process"),b7t=Qc(require("node:fs"),1),w7t=Qc(require("node:os"),1),D7t=require("node:path"),S7t=require("node:stream"),x7t=Qc(U0(),1);_b();_B();Ou();bh();Zf();var VOr=function(a,r,s){for(var c=arguments.length>2,f=0;f=0;N--){var G={};for(var H in c)G[H]=H==="access"?{}:c[H];for(var H in c.access)G.access[H]=c.access[H];G.addInitializer=function(de){if(k)throw new TypeError("Cannot add initializers after decoration has completed");p.push(C(de||null))};var X=(0,s[N])(w==="accessor"?{get:O.get,set:O.set}:O[P],G);if(w==="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))&&(w==="field"?f.unshift(j):O[P]=j)}U&&Object.defineProperty(U,c.name,O),k=!0},zOr=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})},XOr=30,v7t=30,ZOr=(0,x7t.default)("puppeteer:ffmpeg"),k7t=(()=>{var p,C,w,P,U,O,T7t,Fxe,N;let a=S7t.PassThrough,r=[],s,c,f;return N=class extends a{constructor(X,de,we,{ffmpegPath:Je,speed:Te,scale:Ct,crop:Ve,format:st,fps:cr,loop:ct,delay:Yt,quality:yt,colors:Rt,path:kt,overwrite:Tt}={}){super({allowHalfOpen:!1});ue(this,O);ue(this,p,VOr(this,r));ue(this,C);ue(this,w,new AbortController);ue(this,P);ue(this,U);Je??(Je="ffmpeg"),st??(st="webm"),cr??(cr=v7t),ct||(ct=-1),Yt??(Yt=-1),yt??(yt=XOr),Rt??(Rt=256),Tt??(Tt=!0),Be(this,U,cr);let{error:Yr}=(0,Nxe.spawnSync)(Je);if(Yr)throw Yr;let Zr=[`crop='min(${de},iw):min(${we},ih):0:0'`,`pad=${de}:${we}:0:0`];Te&&Zr.push(`setpts=${1/Te}*PTS`),Ve&&Zr.push(`crop=${Ve.width}:${Ve.height}:${Ve.x}:${Ve.y}`),Ct&&Zr.push(`scale=iw*${Ct}:-1:flags=lanczos`);let wt=Ke(this,O,T7t).call(this,st,cr,ct,Yt,yt,Rt),_n=wt.indexOf("-vf");_n!==-1&&Zr.push(wt.splice(_n,2).at(-1)??""),kt&&b7t.default.mkdirSync((0,D7t.dirname)(kt),{recursive:Tt}),Be(this,C,(0,Nxe.spawn)(Je,[["-loglevel","error"],["-avioflags","direct"],["-fpsprobesize","0","-probesize","32","-analyzeduration","0","-fflags","nobuffer"],["-f","image2pipe","-vcodec","png","-i","pipe:0"],["-an"],["-threads","1"],["-framerate",`${cr}`],["-b:v","0"],wt,["-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",mi=>{ZOr(mi.toString("utf8"))}),Be(this,p,X);let{client:Vr}=I(this,p).mainFrame();Vr.once(Ql.Disconnected,()=>{this.stop().catch(Ss)}),Be(this,P,Fwt(Ul(Vr,"Page.screencastFrame").pipe(oO(mi=>{Vr.send("Page.screencastFrameAck",{sessionId:mi.sessionId})}),aQ(mi=>mi.metadata.timestamp!==void 0),Xf(mi=>({buffer:Buffer.from(mi.data,"base64"),timestamp:mi.metadata.timestamp})),Lwt(2,1),Owt(([{timestamp:mi,buffer:jr},{timestamp:Yn}])=>aA(Array(Math.round(cr*Math.max(Yn-mi,0))).fill(jr))),Xf(mi=>(I(this,O,Fxe).call(this,mi),[mi,performance.now()])),R1e(JK(I(this,w).signal,"abort"))),{defaultValue:[Buffer.from([]),performance.now()]}))}async stop(){if(I(this,w).signal.aborted)return;await I(this,p)._stopScreencast().catch(Ss),I(this,w).abort();let[X,de]=await I(this,P);await Promise.all(Array(Math.max(1,Math.round(I(this,U)*(performance.now()-de)/1e3))).fill(X).map(I(this,O,Fxe).bind(this))),I(this,C).stdin.end(),await new Promise(we=>{I(this,C).once("close",we)})}async[(s=[Bae()],f=[Bae()],Bh)](){await this.stop()}},p=new WeakMap,C=new WeakMap,w=new WeakMap,P=new WeakMap,U=new WeakMap,O=new WeakSet,T7t=function(X,de,we,Je,Te,Ct){let Ve=[["-vcodec","vp9"],["-crf",`${Te}`],["-deadline","realtime","-cpu-used",`${Math.min(w7t.default.cpus().length/2,8)}`]];switch(X){case"webm":return[...Ve,["-f","webm"]].flat();case"gif":return de=v7t===de?20:"source_fps",we===1/0&&(we=0),Je!==-1&&(Je/=10),[["-vf",`fps=${de},split[s0][s1];[s0]palettegen=stats_mode=diff:max_colors=${Ct}[p];[s1][p]paletteuse=dither=bayer`],["-loop",`${we}`],["-final_delay",`${Je}`],["-f","gif"]].flat();case"mp4":return[...Ve,["-movflags","hybrid_fragmented"],["-f","mp4"]].flat()}},Fxe=function(){return c.value},(()=>{let X=typeof Symbol=="function"&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;Q7t(N,c={value:zOr(async function(de){let we=await new Promise(Je=>{I(this,C).stdin.write(de,Je)});we&&console.log(`ffmpeg failed to write: ${we.message}.`)},"#writeFrame")},s,{kind:"method",name:"#writeFrame",static:!1,private:!0,access:{has:de=>yh(O,de),get:de=>I(de,O,Fxe)},metadata:X},null,r),Q7t(N,null,f,{kind:"method",name:"stop",static:!1,private:!1,access:{has:de=>"stop"in de,get:de=>de.stop},metadata:X},null,r),X&&Object.defineProperty(N,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:X})})(),N})();var F7t=Qc(require("node:fs"),1),N7t=Qc(require("node:path"),1);fx();jm.value={fs:F7t.default,path:N7t.default,ScreenRecorder:k7t};var e7r=new jX({isPuppeteerCore:!0}),{connect:dhi,defaultArgs:ghi,executablePath:phi,launch:_hi}=e7r;var kGt=require("node:os"),TGt=require("node:path"),FGt=Qc(xGt(),1);function Yrt(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 FGr(a){switch(a){case"chrome":case"firefox":return!0;default:return!1}}function NGr(a){if(a&&!FGr(a))throw new Error(`Unsupported browser ${a}`);switch(a){case"firefox":return"firefox";default:return"chrome"}}function PGr(a){switch(a){case"silent":return"silent";case"error":return"error";default:return"warn"}}function Wrt(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=Yrt(`PUPPETEER_${f}_SKIP_DOWNLOAD`)??Yrt(`PUPPETEER_SKIP_${f}_DOWNLOAD`)??r[a]?.skipDownload??s.skipDownload,c}var NGt=()=>{let a=(0,FGt.cosmiconfigSync)("puppeteer",{searchStrategy:"global"}).search(),r=a?{...a.config}:{};return r.logLevel=PGr(process.env.PUPPETEER_LOGLEVEL??r.logLevel),r.defaultBrowser=NGr(process.env.PUPPETEER_BROWSER??r.defaultBrowser),r.executablePath=process.env.PUPPETEER_EXECUTABLE_PATH??r.executablePath,r.executablePath&&(r.skipDownload=!0),r.skipDownload=Yrt("PUPPETEER_SKIP_DOWNLOAD")??r.skipDownload,r.chrome=Wrt("chrome",r),r["chrome-headless-shell"]=Wrt("chrome-headless-shell",r),r.firefox=Wrt("firefox",r,{skipDownload:!0}),r.cacheDirectory=process.env.PUPPETEER_CACHE_DIR??r.cacheDirectory??(0,TGt.join)((0,kGt.homedir)(),".cache","puppeteer"),r.temporaryDirectory=process.env.PUPPETEER_TMP_DIR??r.temporaryDirectory,r.experiments??(r.experiments={}),r};var RGr=NGt(),PGt=new jX({isPuppeteerCore:!1,configuration:RGr}),{connect:zmi,defaultArgs:Xmi,executablePath:Zmi,launch:$mi,trimCache:e0i}=PGt,RGt=PGt;var um=class extends Error{constructor(s,c){super(s);Gr(this,"status");this.status=c}};async function MGt(){try{return await RGt.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 um("Failed to launch browser",500)}}async function LGt(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 um("Invalid task specified",400);c.setDefaultTimeout(12e4),await c.goto(r.url,{waitUntil:"networkidle0"});try{await c.waitForFunction(()=>document.readyState==="complete")}catch{}try{await OGr(c)}catch{}try{await UGr(c)}catch{}try{await GGr(c)}catch{}try{await MGr(c)}catch{}try{await LGr(c)}catch{}return c}async function MGr(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(),w=new MutationObserver(()=>{C=Date.now()});w.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),await new Promise(P=>{let U=()=>{let O=Date.now();if(O-C>=c){w.disconnect(),P();return}if(O-p>=f){w.disconnect(),P();return}setTimeout(U,50)};setTimeout(U,c)})},r,s),console.log("[waitForDomIdle] DOM idle")}async function LGr(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 OGr(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 UGr(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(w){let P=w.backgroundImage||"",U=[],O=/url\(("|'|)(.*?)\1\)/g,j;for(;(j=O.exec(P))!==null;){let k=(j[2]||"").trim();k&&U.push(k)}return U}function p(w){return new Promise(P=>{let U=new Image;U.onload=()=>P(),U.onerror=()=>P(),U.src=w})}async function C(w){let P=w.map(U=>typeof U.decode=="function"?U.decode().catch(()=>{}):U.complete&&U.naturalWidth>0?Promise.resolve():new Promise(O=>{let j=()=>O();U.addEventListener("load",j,{once:!0}),U.addEventListener("error",j,{once:!0})}));await Promise.all(P)}for(;;){let w=Array.from(document.images);await C(w);let P=Array.from(document.querySelectorAll("*")),U=new Set;for(let j of P){let k=getComputedStyle(j);for(let N of f(k))U.add(N)}if(await Promise.all(Array.from(U).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 GGr(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 pde=Qc(require("node:fs/promises"));var JC=[];for(let a=0;a<256;++a)JC.push((a+256).toString(16).slice(1));function OGt(a,r=0){return(JC[a[r+0]]+JC[a[r+1]]+JC[a[r+2]]+JC[a[r+3]]+"-"+JC[a[r+4]]+JC[a[r+5]]+"-"+JC[a[r+6]]+JC[a[r+7]]+"-"+JC[a[r+8]]+JC[a[r+9]]+"-"+JC[a[r+10]]+JC[a[r+11]]+JC[a[r+12]]+JC[a[r+13]]+JC[a[r+14]]+JC[a[r+15]]).toLowerCase()}var UGt=require("node:crypto"),nke=new Uint8Array(256),ike=nke.length;function Vrt(){return ike>nke.length-16&&((0,UGt.randomFillSync)(nke),ike=0),nke.slice(ike,ike+=16)}var GGt=require("node:crypto"),zrt={randomUUID:GGt.randomUUID};function JGr(a,r,s){a=a||{};let c=a.random??a.rng?.()??Vrt();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 OGt(c)}function HGr(a,r,s){return zrt.randomUUID&&!r&&!a?zrt.randomUUID():JGr(a,r,s)}var PQ=HGr;var IHt=Qc(require("node:fs/promises"));async function Xrt(a){let r=PQ();return await a.evaluate((c,f)=>{try{c.setAttribute("data-pptx-element-identifier",f)}catch{}function p(yt){if(!yt||yt==="transparent"||yt==="rgba(0, 0, 0, 0)")return{hex:void 0,opacity:void 0};if(yt.startsWith("rgba(")||yt.startsWith("hsla(")){let wt=yt.match(/rgba?\(([^)]+)\)|hsla?\(([^)]+)\)/);if(wt){let Vr=(wt[1]||wt[2]).split(",").map(mi=>mi.trim());if(Vr.length>=4){let mi=parseFloat(Vr[3]),jr=yt.replace(/rgba?\(|hsla?\(|\)/g,"").split(",").slice(0,3).join(","),Yn=yt.startsWith("rgba")?`rgb(${jr})`:`hsl(${jr})`,Tn=document.createElement("canvas").getContext("2d");if(Tn){Tn.fillStyle=Yn;let vs=Tn.fillStyle;return{hex:vs.startsWith("#")?vs.substring(1):vs,opacity:isNaN(mi)?void 0:mi}}}}}if(yt.startsWith("rgb(")||yt.startsWith("hsl(")){let _n=document.createElement("canvas").getContext("2d");if(_n){_n.fillStyle=yt;let Vr=_n.fillStyle;return{hex:Vr.startsWith("#")?Vr.substring(1):Vr,opacity:void 0}}}if(yt.startsWith("#"))return{hex:yt.substring(1),opacity:void 0};let kt=document.createElement("canvas").getContext("2d");if(!kt)return{hex:yt,opacity:void 0};kt.fillStyle=yt;let Tt=kt.fillStyle;return{hex:Tt.startsWith("#")?Tt.substring(1):Tt,opacity:void 0}}function C(yt){let Rt=yt.childNodes;for(let kt=0;ktYn==="transparent"||/rgba\s*\([^\)]*,\s*0\s*\)/i.test(Yn)||/hsla\s*\([^\)]*,\s*0\s*\)/i.test(Yn),jr=wt&&(Tt||mi(Vr)||mi(_n));return Tt||jr}function j(yt,Rt){try{if(yt.tagName.toLowerCase()!=="li")return;let Tt=(Rt.display||"").toLowerCase(),Yr=(Rt.listStyleType||"").toLowerCase(),Zr=Tt==="list-item"&&Yr!=="none",wt;try{let Vr=window.getComputedStyle(yt,"::marker");if(Vr){let mi=(Vr.content||"").trim(),jr=(Vr.listStyleType||"").toLowerCase();mi&&mi!=="none"&&mi!=="normal"&&mi!=='""'&&(Zr=!0),jr&&jr!=="none"&&(Zr=!0);let Yn=Vr.color;Yn&&(wt=p(Yn).hex)}}catch{}if(!Zr)return;let _n={};return wt&&(_n.color=wt),_n}catch{return}}function k(yt){let Rt=p(yt.borderColor),kt=(jr,Yn)=>{let Vn=parseFloat(jr||"0"),Tn=(Yn||"").toLowerCase();return!isFinite(Vn)||Vn<=0||Tn==="none"||Tn==="hidden"?0:Vn},Tt=kt(yt.borderTopWidth,yt.borderTopStyle),Yr=kt(yt.borderRightWidth,yt.borderRightStyle),Zr=kt(yt.borderBottomWidth,yt.borderBottomStyle),wt=kt(yt.borderLeftWidth,yt.borderLeftStyle),_n=[];Tt>0&&_n.push("top"),Yr>0&&_n.push("right"),Zr>0&&_n.push("bottom"),wt>0&&_n.push("left");let Vr=Math.max(Tt,Yr,Zr,wt);if(!isFinite(Vr)||Vr<=0)return;let mi={color:Rt.hex,width:Vr,opacity:Rt.opacity};if(_n.length>0&&_n.length<4&&(mi.sides=_n),!(!mi.color&&mi.width===void 0&&mi.opacity===void 0))return mi}function N(yt){let Rt=yt.boxShadow,kt={};if(Rt&&Rt!=="none"){let Tt=[],Yr="",Zr=0;for(let Vr=0;Vr0){let aa=Vn.join(" "),Hc=p(aa);ha=!!(Hc.hex&&Hc.hex!=="000000"&&Hc.opacity!==0)}let Wo=Yn.some(aa=>aa!==0),ns=0;Wo&&(ns+=Yn.filter(aa=>aa!==0).length),ha&&(ns+=2),(Wo||ha)&&ns>_n&&(wt=mi,_n=ns)}if(!wt&&Tt.length>0&&(wt=Tt[0]),wt){let Vr=wt.split(" "),mi=[],jr=[],Yn=!1,Vn="",Tn=!1;for(let vs=0;vs=2){let vs=mi[0],zr=mi[1],ha=mi.length>=3?mi[2]:0,Wo=mi.length>=4?mi[3]:0;if(jr.length>0){let ns=jr.join(" "),aa=p(ns);aa.hex&&(kt={offset:[vs,zr],color:aa.hex,opacity:aa.opacity,radius:ha,spread:Wo,inset:Yn,angle:Math.atan2(zr,vs)*(180/Math.PI)})}}}}if(Object.keys(kt).length!==0)return kt}function G(yt,Rt){let kt=parseFloat(yt.fontSize),Tt=parseInt(yt.fontWeight),Yr=p(yt.color),Zr=yt.fontStyle;function wt(Vn){let Tn=(Vn||"").split(",").map(ha=>ha.trim().replace(/['"]/g,"")),vs=Tn[0]||"",zr=vs.match(/^__([A-Za-z0-9]+(?:_[A-Za-z0-9]+)*)_[A-Za-z0-9]+$/);return zr?zr[1].split(/[_-]+/).filter(Wo=>Wo.length>0).map(Wo=>Wo.charAt(0).toUpperCase()+Wo.slice(1).toLowerCase()).join(" "):/^__/.test(vs)?(Tn.find(Wo=>!/^__/.test(Wo)&&!/(^|\s)(fallback)$/i.test(Wo)&&!/^(system-ui|ui-sans-serif|ui-serif|ui-monospace|ui-rounded|sans-serif|serif|monospace|cursive|fantasy|emoji|math|fangsong)$/i.test(Wo))||vs).replace(/\s+Fallback$/i,""):vs}function _n(Vn,Tn){try{let qr=function(Ra){ns.font=`${Qe} ${Fi} ${Hc} ${Ra}`},vt=function(Ra){return qr(Ra),ns.measureText(aa).width};var vs=qr,zr=vt;let ha=document.createElement("canvas");ha.width=600,ha.height=100;let Wo=ha.getContext("2d");if(!Wo)return wt(Tn.fontFamily||"");let ns=Wo,aa=`mmmmmmmmmmlliWWWWW@#$%^&*()_+-=[]{}|;':",./<>? 1234567890`.repeat(3),Hc=Tn.fontSize||"16px",Fi=Tn.fontWeight||"400",Qe=Tn.fontStyle||"normal",ai=vt("monospace"),Ci=vt("serif"),Xr=vt("sans-serif"),ei=(Tn.fontFamily||"").split(",").map(Ra=>Ra.trim()).filter(Ra=>Ra.length>0),hs=Ra=>/^("|')?(system-ui|ui-sans-serif|ui-serif|ui-monospace|ui-rounded|sans-serif|serif|monospace|cursive|fantasy|emoji|math|fangsong)("|')?$/i.test(Ra);for(let Ra of ei){let jc=Ra.replace(/^\s*["']|["']\s*$/g,"");if(hs(jc))continue;let sc=vt(`"${jc}", monospace`),Dl=vt(`"${jc}", serif`),oi=vt(`"${jc}", sans-serif`);if(sc!==ai||Dl!==Ci||oi!==Xr)return wt(jc)}return ei.some(Ra=>/^['"]?serif['"]?$/i.test(Ra))?"serif":ei.some(Ra=>/^['"]?monospace['"]?$/i.test(Ra))?"monospace":(ei.find(Ra=>hs(Ra))||"serif").replace(/^["']|["']$/g,"")}catch{return wt(Tn.fontFamily||"")}}let Vr=_n(Rt,yt);function mi(Vn){let Tn=(Vn||"").trim();if(!Tn)return"Noto Sans";let vs=Tn.toLowerCase();return vs==="serif"?"Noto Serif":vs==="monospace"?"Noto Sans Mono":vs==="emoji"?"Noto Color Emoji":vs==="sans-serif"||vs==="system-ui"||vs==="ui-sans-serif"||vs==="ui-monospace"||vs==="ui-serif"||vs==="ui-rounded"||vs==="cursive"||vs==="fantasy"||vs==="math"||vs==="fangsong"?"Noto Sans":Tn}let Yn={name:mi(Vr),size:isNaN(kt)?void 0:kt,weight:isNaN(Tt)?void 0:Tt,color:Yr.hex,italic:Zr==="italic"};if(!(!Yn.name&&Yn.size===void 0&&Yn.weight===void 0&&!Yn.color&&!Yn.italic))return Yn}function H(yt,Rt){let kt=yt.lineHeight;if(!kt||kt==="normal")return;let Tt=String(kt).trim(),Yr=parseFloat(yt.fontSize),Zr;if(Tt.endsWith("px")){let wt=parseFloat(Tt);Zr=isNaN(wt)?void 0:wt}else if(Tt.endsWith("%")){let wt=parseFloat(Tt);Zr=isNaN(wt)?void 0:wt/100*Yr}else if(Tt.endsWith("em")){let wt=parseFloat(Tt);Zr=isNaN(wt)?void 0:wt*Yr}else if(Tt.endsWith("rem")){let wt=parseFloat(Tt);try{let _n=window.getComputedStyle(document.documentElement).fontSize,Vr=parseFloat(_n);Zr=isNaN(wt)||isNaN(Vr)?void 0:wt*Vr}catch{Zr=isNaN(wt)?void 0:wt*Yr}}else{let wt=parseFloat(Tt);isNaN(wt)||(Zr=wt*Yr)}return Zr!==void 0&&isFinite(Zr)?Zr:void 0}function X(yt,Rt){let kt=yt.letterSpacing;if(!kt||kt==="normal")return;let Tt=parseFloat(kt);if(!isNaN(Tt))return Tt}function de(yt){let Rt=yt.textDecorationLine||yt.textDecoration;if(!Rt)return;let kt=String(Rt).toLowerCase();if(kt.includes("line-through"))return"line-through";if(kt.includes("underline"))return"underline";if(kt.includes("overline"))return"overline"}function we(yt){let Rt=(yt.textTransform||"").toLowerCase();if(Rt==="uppercase")return"uppercase";if(Rt==="lowercase")return"lowercase";if(Rt==="capitalize")return"capitalize"}function Je(yt){let Rt=parseFloat(yt.marginTop),kt=parseFloat(yt.marginBottom),Tt=parseFloat(yt.marginLeft),Yr=parseFloat(yt.marginRight),Zr={top:isNaN(Rt)?void 0:Rt,bottom:isNaN(kt)?void 0:kt,left:isNaN(Tt)?void 0:Tt,right:isNaN(Yr)?void 0:Yr};return Zr.top===0&&Zr.bottom===0&&Zr.left===0&&Zr.right===0?void 0:Zr}function Te(yt){let Rt=parseFloat(yt.paddingTop),kt=parseFloat(yt.paddingBottom),Tt=parseFloat(yt.paddingLeft),Yr=parseFloat(yt.paddingRight),Zr={top:isNaN(Rt)?void 0:Rt,bottom:isNaN(kt)?void 0:kt,left:isNaN(Tt)?void 0:Tt,right:isNaN(Yr)?void 0:Yr};return Zr.top===0&&Zr.bottom===0&&Zr.left===0&&Zr.right===0?void 0:Zr}function Ct(yt,Rt){let kt=yt.borderRadius,Tt;if(kt&&kt!=="0px"){let Yr=kt.split(" ").map(Zr=>parseFloat(Zr));if(Yr.length===1?Tt=[Yr[0],Yr[0],Yr[0],Yr[0]]:Yr.length===2?Tt=[Yr[0],Yr[1],Yr[0],Yr[1]]:Yr.length===3?Tt=[Yr[0],Yr[1],Yr[2],Yr[1]]:Yr.length===4&&(Tt=Yr),Tt){let Zr=Rt.getBoundingClientRect(),wt=Math.min(Zr.width,Zr.height)/2;Tt=Tt.map(_n=>Math.max(0,Math.min(_n,wt)))}}return Tt}function Ve(yt,Rt){if(yt.tagName.toLowerCase()==="img")return Rt&&Rt.length===4&&Rt.every(kt=>kt===50)?"circle":"rectangle"}function st(yt){let Rt=yt.filter;if(!Rt||Rt==="none")return;let kt={},Tt=Rt.match(/[a-zA-Z]+\([^)]*\)/g);return Tt&&Tt.forEach(Yr=>{let Zr=Yr.match(/([a-zA-Z]+)\(([^)]*)\)/);if(Zr){let wt=Zr[1],_n=parseFloat(Zr[2]);if(!isNaN(_n))switch(wt){case"invert":kt.invert=_n;break;case"brightness":kt.brightness=_n;break;case"contrast":kt.contrast=_n;break;case"saturate":kt.saturate=_n;break;case"hue-rotate":kt.hueRotate=_n;break;case"blur":kt.blur=_n;break;case"grayscale":kt.grayscale=_n;break;case"sepia":kt.sepia=_n;break;case"opacity":kt.opacity=_n;break}}}),Object.keys(kt).length>0?kt:void 0}function cr(yt){let Rt=yt.transform;if(!Rt||Rt==="none")return;let kt=Rt.match(/rotate(?:Z)?\(([^)]+)\)/);if(kt){let wt=kt[1].trim();if(wt.endsWith("deg")){let _n=parseFloat(wt.replace("deg",""));if(!isNaN(_n))return Zr(_n)}else if(wt.endsWith("rad")){let _n=parseFloat(wt.replace("rad",""));if(!isNaN(_n))return Zr(_n*180/Math.PI)}else if(wt.endsWith("turn")){let _n=parseFloat(wt.replace("turn",""));if(!isNaN(_n))return Zr(_n*360)}else{let _n=parseFloat(wt);if(!isNaN(_n))return Zr(_n)}}let Tt=Rt.match(/matrix\(([^)]+)\)/);if(Tt){let wt=Tt[1].split(",").map(_n=>parseFloat(_n.trim()));if(wt.length>=2&&!wt.some(_n=>isNaN(_n))){let _n=wt[0],Vr=wt[1],mi=Math.atan2(Vr,_n);return Zr(mi*180/Math.PI)}}let Yr=Rt.match(/matrix3d\(([^)]+)\)/);if(Yr){let wt=Yr[1].split(",").map(_n=>parseFloat(_n.trim()));if(wt.length===16&&!wt.some(_n=>isNaN(_n))){let _n=wt[0],Vr=wt[1],mi=Math.atan2(Vr,_n);return Zr(mi*180/Math.PI)}}return;function Zr(wt){let _n=wt%360;return _n<0&&(_n+=360),Math.round(_n)}}function ct(yt){let Rt=yt.textAlign,kt=yt.direction||"ltr";Rt==="start"?Rt=kt==="rtl"?"right":"left":Rt==="end"&&(Rt=kt==="rtl"?"left":"right");let Tt=yt.display,Yr=yt.flexDirection,Zr=yt.alignItems,wt=yt.justifyContent,_n=yt.justifyItems,Vr=yt.placeItems,mi=yt.verticalAlign,jr,Yn=vs=>{if(vs){if(vs==="center")return"center";if(vs==="flex-end"||vs==="end"||vs==="right")return"right";if(vs==="flex-start"||vs==="start"||vs==="left")return"left"}},Vn=Yn;Tt==="flex"||Tt==="inline-flex"?jr=!!Yr&&Yr.startsWith("column")?Vn(Zr):Yn(wt):Tt==="grid"||Tt==="inline-grid"?jr=Yn(_n)||(Vr==="center"?"center":void 0):Vr==="center"&&(jr="center"),jr&&(Rt=jr);let Tn;if(Vr==="center"?Tn="middle":Tt==="flex"||Tt==="inline-flex"?Yr&&Yr.startsWith("column")?wt==="center"?Tn="middle":wt==="flex-end"||wt==="end"?Tn="bottom":(wt==="flex-start"||wt==="start")&&(Tn="top"):Zr==="center"?Tn="middle":Zr==="flex-end"||Zr==="end"?Tn="bottom":(Zr==="flex-start"||Zr==="start")&&(Tn="top"):(Tt==="grid"||Tt==="inline-grid")&&(Zr==="center"?Tn="middle":Zr==="end"?Tn="bottom":Zr==="start"&&(Tn="top")),!Tn&&mi){let vs=mi.toLowerCase();vs==="middle"?Tn="middle":vs==="bottom"||vs==="sub"||vs==="text-bottom"?Tn="bottom":(vs==="top"||vs==="super"||vs==="text-top")&&(Tn="top")}return{textAlign:Rt,textVerticalAlign:Tn}}function Yt(yt,Rt){let kt=yt.tagName.toLowerCase(),Tt=Array.from(yt.attributes).reduce((Dl,oi)=>(oi.name.startsWith("data-")&&oi.name!=="data-pptx-element-identifier"&&(Dl[oi.name]=oi.value),Dl),{}),Yr=window.getComputedStyle(yt),Zr=w(yt),wt=N(Yr),_n=P(Yr),Vr=O(Yr),mi=k(Yr),jr=G(Yr,yt),Yn=H(Yr,yt),Vn=X(Yr,yt),Tn=de(Yr),vs=we(Yr),zr=jr||Yn!==void 0||Vn!==void 0||Tn!==void 0||vs!==void 0?{...jr||{},lineHeight:Yn,letterSpacing:Vn,textDecoration:Tn,textTransform:vs}:void 0,ha=Je(Yr),Wo=Te(Yr),ns=C(yt)&&yt.textContent||void 0;ns&&(ns=ns.replace(/^\n+|\n+$/g,"").trim().replace(/[ \t]+/g," ").replace(//gi,` +`),ns.trim().length<=0&&(ns=void 0));let aa=Yr.zIndex,Hc=parseInt(aa),Fi=isNaN(Hc)?void 0:Hc,{textAlign:Qe,textVerticalAlign:qr}=ct(Yr),vt=Yr.objectFit,ai=U(Yr),Ci=yt.src||ai,Xr=Ct(Yr,yt),ei=Ve(yt,Xr),hs=Yr.whiteSpace!=="nowrap",fa=st(Yr),Za=parseFloat(Yr.opacity),Zc=isNaN(Za)?void 0:Za,Ra=Yr.clipPath==="none"?void 0:Yr.clipPath,jc=cr(Yr),sc=j(yt,Yr);return{tagName:kt,path:[],id:yt.id,className:yt.className&&typeof yt.className=="string"?yt.className:yt.className?yt.className.toString():void 0,innerText:ns,passedAttributes:Tt,opacity:Zc,background:_n,hasGradient:Vr,marker:sc,border:mi,shadow:wt,font:zr,position:Zr,margin:ha,padding:Wo,zIndex:Fi,textAlign:Qe!=="left"?Qe:void 0,textVerticalAlign:qr&&qr!=="top"?qr:void 0,borderRadius:Xr,rotation:jc,imageSrc:Ci,objectFit:vt,clip:!1,overlay:void 0,shape:ei,connectorType:void 0,textWrap:hs,shouldScreenshot:!1,identifier:Rt,filters:fa,clipPath:Ra}}return Yt(c,f)},r)}var git=Qc(pHt());async function _Ht(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,git.default)(p).metadata(),w=C.width||0,P=C.height||0;if(w<=0||P<=0)throw new Error("Invalid image dimensions");let U=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(U>=w||O>=P)throw new Error("Crop origin is outside image bounds");let N=Math.max(1,Math.min(j,w-U)),G=Math.max(1,Math.min(k,P-O)),H=await(0,git.default)(p).extract({left:U,top:O,width:N,height:G}).png({compressionLevel:9}).toBuffer();return Buffer.from(H)}function hHt(a,r,s){let[c=0,f=0,p=0,C=0]=r||[],w=a.left,P=a.top,U=a.left+a.width,O=a.top+a.height,j=s.left,k=s.top,N=s.left+s.width,G=s.top+s.height;if(j>=w&&N<=U&&k>=P&&G<=O)return!0;let H=j0,X=N>U-f&&k0,de=N>U-p&&G>O-p&&p>0,we=jO-C&&C>0;return!(H||X||de||we)}function mHt(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}async function pit({element:a,rootRect:r=void 0,depth:s=0,inheritedPath:c,inheritedFont:f,inheritedBackground:p,inheritedRectangle:C,inheritedBorderRadius:w,inheritedBorderRadiusRect:P,inheritedZIndex:U,inheritedOpacity:O,inheritedRotation:j,inheritedClipPath:k,inheritedZPath:N}){if(!r){let we=await Xrt(a);f=we.font,p=we.background,r={left:we.position.left??0,top:we.position.top??0,width:we.position.width??1280,height:we.position.height??720},P=we.borderRadius?r:void 0,U=we.zIndex,O=we.opacity,N=we.zIndex!==void 0?[we.zIndex]:[],C=r}let G=await a.$$(":scope > *"),H=[];for(let we=0;weArray.from(yt.querySelectorAll("*")).map(Rt=>Rt.tagName.toLowerCase())),ct=new Set(["strong","u","em","code","s","b","br"]),Yt=cr.every(yt=>ct.has(yt));if(cr.length>0&&Yt){let yt=await Je.evaluate(Rt=>Rt.innerHTML||"");Te.innerText=mHt(yt),H.push(Te);continue}}if(Te.hasImmediateUnwrappedText=await zjr(Je),Te.hasImmediateUnwrappedText){let cr=await Je.evaluate(ct=>ct.innerHTML||"");Te.innerText=mHt(cr)}if(Te.tagName==="svg"||Te.tagName==="canvas"){Te.shouldScreenshot=!0,Te.includeChildrenInScreenshot=!0,H.push(Te);continue}if(Te.tagName==="table"&&(Te.shouldScreenshot=!0,Te.includeChildrenInScreenshot=!0,Te.excludeTextInScreenshot=!0),(Te.position.left<0||Te.position.top<0||Te.position.left+Te.position.width>1280||Te.position.top+Te.position.height>720)&&(Te.background?.color||Te.border?.color)&&(Te.shouldScreenshot=!0,Te.includeChildrenInScreenshot=!0,Te.excludeTextInScreenshot=!0),(Te.clipPath&&Te.background?.color||Te.hasGradient)&&(Te.shouldScreenshot=!0,Te.excludeTextInScreenshot=!0),Te.border&&Te.border.sides&&(Te.shouldScreenshot=!0,Te.excludeTextInScreenshot=!0),Te.borderRadius&&Array.isArray(Te.borderRadius)&&Te.borderRadius.length===4&&!Te.imageSrc&&(Te.background&&Te.background.color||Te.border&&Te.border.color)){let[cr,ct,Yt,yt]=Te.borderRadius;cr===ct&&ct===Yt&&Yt===yt||(Te.shouldScreenshot=!0,Te.excludeTextInScreenshot=!0)}let Ct=Te.passedAttributes??{};if("data-screenshot-include-children"in Ct&&(Te.shouldScreenshot=!0,Te.includeChildrenInScreenshot=!0),"data-screenshot-exclude-text"in Ct&&(Te.excludeTextInScreenshot=!0),"data-screenshot"in Ct&&(Te.shouldScreenshot=!0),Te.shouldScreenshot&&!Te.excludeTextInScreenshot){H.push(Te);continue}let st=(await pit({element:Je,rootRect:r,depth:s+1,inheritedPath:Array.isArray(c)?[...c,we]:[we],inheritedFont:Te.font,inheritedRectangle:Te.position,inheritedBackground:Te.background||p,inheritedBorderRadius:Te.borderRadius||w,inheritedBorderRadiusRect:Te.position&&{left:Te.position.left??0,top:Te.position.top??0,width:Te.position.width??0,height:Te.position.height??0}||P,inheritedOpacity:Te.opacity||O,inheritedRotation:Te.rotation||j,inheritedClipPath:Te.clipPath||k,inheritedZIndex:Te.zIndex??U,inheritedZPath:Te.zIndex!==void 0?[...Te.zPath||[],Te.zIndex]:Te.zPath||N})).elements;if(Te.shouldScreenshot&&Te.includeChildrenInScreenshot&&Te.excludeTextInScreenshot&&(st=st.filter(cr=>cr.innerText&&cr.innerText.trim().length>0),st.forEach(cr=>{cr.isExcludedTextChild=!0})),Te.tagName==="ul"||Te.tagName==="ol"){let cr=st.filter(ct=>ct.tagName==="li"&&!!ct.marker);st=st.filter(ct=>!(ct.tagName==="li"&&ct.marker)),Te.relatedElements=cr}Te.hasImmediateUnwrappedText&&(Te.relatedElements=st,st=[]),H.push(Te),H.push(...st)}let X=p?.color;if(s===0){let we=H.filter(Je=>Je.position&&Je.position.left===0&&Je.position.top===0&&Je.position.width===r.width&&Je.position.height===r.height);for(let Je of we)Je.background&&Je.background.color&&(X=Je.background.color)}let de=s===0?H.filter(we=>{let Je=we.background&&we.background.color,Te=we.border&&we.border.color,Ct=we.shadow&&we.shadow.color,Ve=we.innerText&&we.innerText.trim().length>0,st=we.imageSrc,cr=we.tagName==="svg",ct=we.tagName==="canvas",Yt=we.tagName==="table",yt=we.relatedElements&&we.relatedElements.length>0,Rt=Je||Te||Ct||Ve,kt=st||cr||ct||Yt||we.hasGradient||yt;return Rt||kt}):H;if(s===0){let we=de.sort((Te,Ct)=>{let Ve=Te.zPath||[],st=Ct.zPath||[],cr=Math.max(Ve.length,st.length);for(let Zr=0;Zr(Te.shadow&&Te.shadow.color&&(!Te.background||!Te.background.color)&&X&&(Te.background={color:X,opacity:void 0}),Te)),{elements:we,backgroundColor:X}}else return{elements:de,backgroundColor:X}}async function zjr(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 CHt(a,r){let s=`[data-pptx-element-identifier="${r.identifier}"]`,c=await a.$(s);if(!c){c=a;for(let k of r.path){if(!c)break;c=(await c.$$(":scope > *"))[k]||null}if(!c)throw new Error(`Element at path [${r.path.join(",")}] not found for screenshot`)}let f=r.includeChildrenInScreenshot??!1,p=r.excludeTextInScreenshot??!1,C=`__pptx_visible_${Date.now()}_${Math.random().toString(36).slice(2)}`,w=c.frame;if(!w&&c.executionContext){let k=c.executionContext(),N=k&&k.frame;typeof N=="function"?w=N.call(k):N&&(w=N)}let P=w?w.page?.()??w.page:null,U=P?await P.createCDPSession():null;if(U)try{await U.send("Emulation.setDefaultBackgroundColorOverride",{color:{r:0,g:0,b:0,a:0}})}catch{}let O=async()=>{try{return await c.evaluate(k=>k.isConnected===!0)}catch{return!1}};for(let k=0;k<2;k++){if(!await O()){if(P&&k===0)try{await P.waitForTimeout(200);continue}catch{}throw new Error("Target node is detached from document before screenshot")}try{await c.evaluate((N,G,H,X)=>{let de=N.ownerDocument||document;if(N.tagName.toLowerCase()==="svg"){let st=N,cr=Array.from(st.querySelectorAll("[id]")),ct=new Map;for(let Tt of cr){let Yr=Tt.getAttribute("id");if(!Yr)continue;let Zr=`${G}__${Yr}`;ct.set(Yr,Zr)}cr.forEach(Tt=>{let Yr=Tt.getAttribute("id");if(!Yr)return;let Zr=ct.get(Yr);Zr&&Zr!==Yr&&Tt.setAttribute("id",Zr)});let Yt=["fill","stroke","filter","clip-path","mask","marker-start","marker-mid","marker-end","href","xlink:href"],yt=Tt=>Tt.replace(/url\(#([^\)]+)\)/g,(Yr,Zr)=>{let wt=ct.get(Zr);return wt?`url(#${wt})`:Yr}),Rt=Array.from(st.querySelectorAll("*"));for(let Tt of Rt){for(let Zr of Yt){let wt=Tt.getAttribute(Zr);wt&&wt.includes("url(#")&&Tt.setAttribute(Zr,yt(wt))}let Yr=Tt.getAttribute("style");Yr&&Yr.includes("url(#")&&Tt.setAttribute("style",yt(Yr))}let kt=Array.from(st.querySelectorAll("style"));for(let Tt of kt)Tt.textContent&&Tt.textContent.includes("url(#")&&(Tt.textContent=yt(Tt.textContent))}de.body.setAttribute("data-pptx-scope",G);let Je=de.createElement("style");Je.setAttribute("data-pptx-style",G),Je.textContent=` + html, body { background: transparent !important; } + /* Hide within the active slide scope except the target and its ancestors */ + [data-pptx-scope="${G}"] *:not([data-pptx-visible="${G}"]):not([data-pptx-ancestor="${G}"]) { + opacity: 0 !important; + pointer-events: none !important; + } + /* Ensure marked nodes render fully */ + [data-pptx-visible="${G}"], [data-pptx-ancestor="${G}"] { + visibility: visible !important; + } + /* Ancestors remain visible for layout but do not paint backgrounds */ + [data-pptx-ancestor="${G}"] { + 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="${G}"]::before, + [data-pptx-ancestor="${G}"]::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="${G}"], + [data-pptx-exclude-text="${G}"] *, + [data-pptx-exclude-text="${G}"]::before, + [data-pptx-exclude-text="${G}"]::after, + [data-pptx-exclude-text="${G}"] *::before, + [data-pptx-exclude-text="${G}"] *::after { + color: transparent !important; + -webkit-text-fill-color: transparent !important; + text-shadow: none !important; + } + [data-pptx-exclude-text="${G}"] svg text, + [data-pptx-exclude-text="${G}"] svg tspan, + [data-pptx-exclude-text="${G}"] svg tref, + [data-pptx-exclude-text="${G}"] svg textPath { + fill: transparent !important; + stroke: transparent !important; + } + [data-pptx-hidden="${G}"] { + opacity: 0 !important; + visibility: hidden !important; + } + `,de.head.appendChild(Je);let Te=st=>{st.setAttribute("data-pptx-visible",G)};Te(N),H&&N.querySelectorAll("*").forEach(st=>Te(st)),X&&N.setAttribute("data-pptx-exclude-text",G);let Ct=N.parentElement,Ve=N;for(;Ct;){Ct.setAttribute("data-pptx-ancestor",G);let cr=Array.from(Ct.children);for(let ct of cr){if(ct===Ve||ct.getAttribute("data-pptx-hidden")===G)continue;let Yt=ct.style.getPropertyValue("opacity"),yt=ct.style.getPropertyPriority("opacity"),Rt=ct.style.getPropertyValue("visibility"),kt=ct.style.getPropertyPriority("visibility");Yt&&ct.setAttribute("data-pptx-prev-opacity",Yt),yt&&ct.setAttribute("data-pptx-prev-opacity-priority",yt),Rt&&ct.setAttribute("data-pptx-prev-visibility",Rt),kt&&ct.setAttribute("data-pptx-prev-visibility-priority",kt),ct.setAttribute("data-pptx-hidden",G),ct.style.setProperty("opacity","0","important"),ct.style.setProperty("visibility","hidden","important")}Ve=Ct,Ct=Ct.parentElement}},C,f,p);break}catch(N){let G=String(N?.message||N||"");if((/detached/i.test(G)||/Node is detached/i.test(G))&&P&&k===0)try{await P.waitForTimeout(200);continue}catch{}throw N}}let j=null;for(let k=0;k<2;k++)try{j=await c.screenshot({type:"png",omitBackground:!0});break}catch(N){if(k===0){let G=String(N?.message||N||"");if((/detached/i.test(G)||/Node is detached/i.test(G))&&P)try{await P.waitForTimeout(200);continue}catch{}}throw N}if(!j)throw new Error("Failed to capture screenshot buffer");if(r.position&&typeof r.position.width=="number"&&typeof r.position.height=="number"){let k=typeof r.position.left=="number"?r.position.left:0,N=typeof r.position.top=="number"?r.position.top:0,G=Math.max(0,Math.round(r.position.width)),H=Math.max(0,Math.round(r.position.height)),X=0,de=0,we=G,Je=H;k<0&&(X=Math.min(G-1,Math.max(0,Math.round(-k)))),N<0&&(de=Math.min(H-1,Math.max(0,Math.round(-N))));let Te=Math.max(0,Math.round(k+G-1280)),Ct=Math.max(0,Math.round(N+H-720));we=Math.max(1,we-X-Te),Je=Math.max(1,Je-de-Ct),(X!==0||de!==0||Te>0||Ct>0)&&(j=await _Ht(j,X,de,we,Je))}try{await c.evaluate((k,N)=>{let G=k.ownerDocument||document,H=G.querySelector(`style[data-pptx-style="${N}"]`);H&&H.parentNode&&H.parentNode.removeChild(H),G.querySelectorAll(`[data-pptx-visible="${N}"]`).forEach(de=>{de.removeAttribute("data-pptx-visible")}),G.querySelectorAll(`[data-pptx-ancestor="${N}"]`).forEach(de=>{de.removeAttribute("data-pptx-ancestor")}),G.querySelectorAll(`[data-pptx-exclude-text="${N}"]`).forEach(de=>{de.removeAttribute("data-pptx-exclude-text")}),G.querySelectorAll(`[data-pptx-hidden="${N}"]`).forEach(de=>{let we=de,Je=we.getAttribute("data-pptx-prev-opacity"),Te=we.getAttribute("data-pptx-prev-opacity-priority")||void 0;Je!==null?we.style.setProperty("opacity",Je,Te):we.style.removeProperty("opacity");let Ct=we.getAttribute("data-pptx-prev-visibility"),Ve=we.getAttribute("data-pptx-prev-visibility-priority")||void 0;Ct!==null?we.style.setProperty("visibility",Ct,Ve):we.style.removeProperty("visibility"),we.removeAttribute("data-pptx-prev-opacity"),we.removeAttribute("data-pptx-prev-opacity-priority"),we.removeAttribute("data-pptx-prev-visibility"),we.removeAttribute("data-pptx-prev-visibility-priority"),we.removeAttribute("data-pptx-hidden")});let X=G.querySelector(`[data-pptx-scope="${N}"]`);X&&X.removeAttribute("data-pptx-scope")},C)}catch{}if(U)try{await U.send("Emulation.setDefaultBackgroundColorOverride",{}),await U.detach()}catch{}return new Uint8Array(j)}var EHt=Qc(require("node:path"));async function yHt(a){let r=await Xjr(a),s=await Zjr(r);return{slides:await r.$$(":scope > div > div > div > div > div"),speakerNotes:s}}async function Xjr(a){let r=await a.$("#presentation-slides-wrapper");if(!r)throw new um("Presentation slides not found",500);return r}async function Zjr(a){return await a.evaluate(r=>Array.from(r.querySelectorAll("[data-speaker-note]")).map(s=>s.getAttribute("data-speaker-note")||""))}async function BHt(a){let r=[];for(let s of a){let c=await pit({element:s});r.push(c)}return r}async function QHt(a,r,s,c){for(let[f,p]of r.entries()){for(let C of p.elements)if(C.shouldScreenshot)try{let w=await CHt(a[f],C);C.imageSrc=EHt.default.join(c,`${C.identifier}.png`),await IHt.default.writeFile(C.imageSrc,w)}catch(w){console.warn(`[postProcessSlidesAttributes] Skipped screenshot due to error: ${w?.message||w}`)}p.speakerNote=s[f]}}var cde=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(a=>a.charCodeAt(0)));var ude=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(a=>a.charCodeAt(0)));var _it,$jr=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]]),fZ=(_it=String.fromCodePoint)!==null&&_it!==void 0?_it: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 hit(a){var r;return a>=55296&&a<=57343||a>1114111?65533:(r=$jr.get(a))!==null&&r!==void 0?r:a}var eC;(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"})(eC||(eC={}));var eKr=32,ER;(function(a){a[a.VALUE_LENGTH=49152]="VALUE_LENGTH",a[a.BRANCH_LENGTH=16256]="BRANCH_LENGTH",a[a.JUMP_TABLE=127]="JUMP_TABLE"})(ER||(ER={}));function mit(a){return a>=eC.ZERO&&a<=eC.NINE}function tKr(a){return a>=eC.UPPER_A&&a<=eC.UPPER_F||a>=eC.LOWER_A&&a<=eC.LOWER_F}function rKr(a){return a>=eC.UPPER_A&&a<=eC.UPPER_Z||a>=eC.LOWER_A&&a<=eC.LOWER_Z||mit(a)}function iKr(a){return a===eC.EQUALS||rKr(a)}var $0;(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"})($0||($0={}));var py;(function(a){a[a.Legacy=0]="Legacy",a[a.Strict=1]="Strict",a[a.Attribute=2]="Attribute"})(py||(py={}));var dZ=class{constructor(r,s,c){this.decodeTree=r,this.emitCodePoint=s,this.errors=c,this.state=$0.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=py.Strict}startEntity(r){this.decodeMode=r,this.state=$0.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(r,s){switch(this.state){case $0.EntityStart:return r.charCodeAt(s)===eC.NUM?(this.state=$0.NumericStart,this.consumed+=1,this.stateNumericStart(r,s+1)):(this.state=$0.NamedEntity,this.stateNamedEntity(r,s));case $0.NumericStart:return this.stateNumericStart(r,s);case $0.NumericDecimal:return this.stateNumericDecimal(r,s);case $0.NumericHex:return this.stateNumericHex(r,s);case $0.NamedEntity:return this.stateNamedEntity(r,s)}}stateNumericStart(r,s){return s>=r.length?-1:(r.charCodeAt(s)|eKr)===eC.LOWER_X?(this.state=$0.NumericHex,this.consumed+=1,this.stateNumericHex(r,s+1)):(this.state=$0.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)+Number.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===eC.SEMI)return this.emitNamedEntityData(this.treeIndex,p,this.consumed+this.excess);this.decodeMode!==py.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]&ER.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]&~ER.VALUE_LENGTH:f[r+1],c),s===3&&this.emitCodePoint(f[r+2],c),c}end(){var r;switch(this.state){case $0.NamedEntity:return this.result!==0&&(this.decodeMode!==py.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case $0.NumericDecimal:return this.emitNumericEntity(0,2);case $0.NumericHex:return this.emitNumericEntity(0,3);case $0.NumericStart:return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case $0.EntityStart:return 0}}};function vHt(a){let r="",s=new dZ(a,c=>r+=fZ(c));return function(f,p){let C=0,w=0;for(;(w=f.indexOf("&",w))>=0;){r+=f.slice(C,w),s.startEntity(p);let U=s.write(f,w+1);if(U<0){C=w+s.end();break}C=w+U,w=U===0?C+1:C}let P=r+f.slice(C);return r="",P}}function nKr(a,r,s,c){let f=(r&ER.BRANCH_LENGTH)>>7,p=r&ER.JUMP_TABLE;if(f===0)return p!==0&&c===p?s:-1;if(p){let P=c-p;return P<0||P>=f?-1:a[s+P]-1}let C=s,w=C+f-1;for(;C<=w;){let P=C+w>>>1,U=a[P];if(Uc)w=P-1;else return a[P+f]}return-1}var sKr=vHt(cde),aKr=vHt(ude);function Ade(a,r=py.Legacy){return sKr(a,r)}function gke(a){return aKr(a,py.Strict)}var Cu;(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"})(Cu||(Cu={}));var la;(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"})(la||(la={}));function m3(a){return a===Cu.Space||a===Cu.NewLine||a===Cu.Tab||a===Cu.FormFeed||a===Cu.CarriageReturn}function pke(a){return a===Cu.Slash||a===Cu.Gt||m3(a)}function oKr(a){return a>=Cu.LowerA&&a<=Cu.LowerZ||a>=Cu.UpperA&&a<=Cu.UpperZ}var Zb;(function(a){a[a.NoValue=0]="NoValue",a[a.Unquoted=1]="Unquoted",a[a.Single=2]="Single",a[a.Double=3]="Double"})(Zb||(Zb={}));var Am={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])},gZ=class{constructor({xmlMode:r=!1,decodeEntities:s=!0},c){this.cbs=c,this.state=la.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=la.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 dZ(r?ude:cde,(f,p)=>this.emitCodePoint(f,p))}reset(){this.state=la.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=la.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=la.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&r===Cu.Amp&&this.startEntity()}stateSpecialStartSequence(r){let s=this.sequenceIndex===this.currentSequence.length;if(!(s?pke(r):(r|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!s){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=la.InTagName,this.stateInTagName(r)}stateInSpecialTag(r){if(this.sequenceIndex===this.currentSequence.length){if(r===Cu.Gt||m3(r)){let s=this.index-this.currentSequence.length;if(this.sectionStart=0?(this.state=this.baseState,r===0&&(this.index=this.entityStart)):this.index=this.offset+this.buffer.length-1}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===la.Text||this.state===la.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===la.InAttributeValueDq||this.state===la.InAttributeValueSq||this.state===la.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index=r||(this.state===la.InCommentLike?this.currentSequence===Am.CdataEnd?this.cbs.oncdata(this.sectionStart,r,0):this.cbs.oncomment(this.sectionStart,r,0):this.state===la.InTagName||this.state===la.BeforeAttributeName||this.state===la.BeforeAttributeValue||this.state===la.AfterAttributeName||this.state===la.InAttributeName||this.state===la.InAttributeValueSq||this.state===la.InAttributeValueDq||this.state===la.InAttributeValueNq||this.state===la.InClosingTagName||this.cbs.ontext(this.sectionStart,r))}emitCodePoint(r,s){this.baseState!==la.Text&&this.baseState!==la.InSpecialTag?(this.sectionStart0&&C.has(this.stack[0]);){let w=this.stack.shift();(c=(s=this.cbs).onclosetag)===null||c===void 0||c.call(s,w,!0)}this.isVoidElement(r)||(this.stack.unshift(r),this.htmlMode&&(SHt.has(r)?this.foreignContext.unshift(!0):xHt.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,w,P,U,O;this.endIndex=s;let j=this.getSlice(r,s);if(this.lowerCaseTagNames&&(j=j.toLowerCase()),this.htmlMode&&(SHt.has(j)||xHt.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"),(P=(w=this.cbs).onopentag)===null||P===void 0||P.call(w,"br",{},!0),(O=(U=this.cbs).onclosetag)===null||O===void 0||O.call(U,"br",!1));else{let k=this.stack.indexOf(j);if(k!==-1)for(let N=0;N<=k;N++){let G=this.stack.shift();(f=(c=this.cbs).onclosetag)===null||f===void 0||f.call(c,G,N!==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+=fZ(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===Zb.Double?'"':r===Zb.Single?"'":r===Zb.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(AKr),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,w;this.endIndex=s,(p=(f=this.cbs).oncomment)===null||p===void 0||p.call(f,this.getSlice(r,s-c)),(w=(C=this.cbs).oncommentend)===null||w===void 0||w.call(C),this.startIndex=s+1}oncdata(r,s,c){var f,p,C,w,P,U,O,j,k,N;this.endIndex=s;let G=this.getSlice(r,s-c);!this.htmlMode||this.options.recognizeCDATA?((p=(f=this.cbs).oncdatastart)===null||p===void 0||p.call(f),(w=(C=this.cbs).ontext)===null||w===void 0||w.call(C,G),(U=(P=this.cbs).oncdataend)===null||U===void 0||U.call(P)):((j=(O=this.cbs).oncomment)===null||j===void 0||j.call(O,`[CDATA[${G}]]`),(N=(k=this.cbs).oncommentend)===null||N===void 0||N.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 FHt=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(a=>a.charCodeAt(0)));var Cit,IKr=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]]),Iit=(Cit=String.fromCodePoint)!==null&&Cit!==void 0?Cit: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 Eit(a){var r;return a>=55296&&a<=57343||a>1114111?65533:(r=IKr.get(a))!==null&&r!==void 0?r:a}var rC;(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"})(rC||(rC={}));var EKr=32,yR;(function(a){a[a.VALUE_LENGTH=49152]="VALUE_LENGTH",a[a.BRANCH_LENGTH=16256]="BRANCH_LENGTH",a[a.JUMP_TABLE=127]="JUMP_TABLE"})(yR||(yR={}));function yit(a){return a>=rC.ZERO&&a<=rC.NINE}function yKr(a){return a>=rC.UPPER_A&&a<=rC.UPPER_F||a>=rC.LOWER_A&&a<=rC.LOWER_F}function BKr(a){return a>=rC.UPPER_A&&a<=rC.UPPER_Z||a>=rC.LOWER_A&&a<=rC.LOWER_Z||yit(a)}function QKr(a){return a===rC.EQUALS||BKr(a)}var tC;(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"})(tC||(tC={}));var C3;(function(a){a[a.Legacy=0]="Legacy",a[a.Strict=1]="Strict",a[a.Attribute=2]="Attribute"})(C3||(C3={}));var _ke=class{constructor(r,s,c){this.decodeTree=r,this.emitCodePoint=s,this.errors=c,this.state=tC.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=C3.Strict}startEntity(r){this.decodeMode=r,this.state=tC.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(r,s){switch(this.state){case tC.EntityStart:return r.charCodeAt(s)===rC.NUM?(this.state=tC.NumericStart,this.consumed+=1,this.stateNumericStart(r,s+1)):(this.state=tC.NamedEntity,this.stateNamedEntity(r,s));case tC.NumericStart:return this.stateNumericStart(r,s);case tC.NumericDecimal:return this.stateNumericDecimal(r,s);case tC.NumericHex:return this.stateNumericHex(r,s);case tC.NamedEntity:return this.stateNamedEntity(r,s)}}stateNumericStart(r,s){return s>=r.length?-1:(r.charCodeAt(s)|EKr)===rC.LOWER_X?(this.state=tC.NumericHex,this.consumed+=1,this.stateNumericHex(r,s+1)):(this.state=tC.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===rC.SEMI)return this.emitNamedEntityData(this.treeIndex,p,this.consumed+this.excess);this.decodeMode!==C3.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]&yR.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]&~yR.VALUE_LENGTH:f[r+1],c),s===3&&this.emitCodePoint(f[r+2],c),c}end(){var r;switch(this.state){case tC.NamedEntity:return this.result!==0&&(this.decodeMode!==C3.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case tC.NumericDecimal:return this.emitNumericEntity(0,2);case tC.NumericHex:return this.emitNumericEntity(0,3);case tC.NumericStart:return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case tC.EntityStart:return 0}}};function NHt(a){let r="",s=new _ke(a,c=>r+=Iit(c));return function(f,p){let C=0,w=0;for(;(w=f.indexOf("&",w))>=0;){r+=f.slice(C,w),s.startEntity(p);let U=s.write(f,w+1);if(U<0){C=w+s.end();break}C=w+U,w=U===0?C+1:C}let P=r+f.slice(C);return r="",P}}function vKr(a,r,s,c){let f=(r&yR.BRANCH_LENGTH)>>7,p=r&yR.JUMP_TABLE;if(f===0)return p!==0&&c===p?s:-1;if(p){let P=c-p;return P<0||P>=f?-1:a[s+P]-1}let C=s,w=C+f-1;for(;C<=w;){let P=C+w>>>1,U=a[P];if(Uc)w=P-1;else return a[P+f]}return-1}var NCi=NHt(THt),PCi=NHt(FHt);function hke(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 Bit(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 PHt=Bit(/[&<>'"]/g,wKr),Qit=Bit(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),vit=Bit(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]));var RHt;(function(a){a[a.XML=0]="XML",a[a.HTML=1]="HTML"})(RHt||(RHt={}));var MHt;(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"})(MHt||(MHt={}));var xKr=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])),kKr=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 JHt;(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"})(JHt||(JHt={}));var RKr=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 Ike;(function(a){a[a.XML=0]="XML",a[a.HTML=1]="HTML"})(Ike||(Ike={}));var jHt;(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"})(jHt||(jHt={}));function qHt(a,r=Ike.XML){if((typeof r=="number"?r:r.level)===Ike.HTML){let c=typeof r=="object"?r.mode:void 0;return Ade(a,c)}return gke(a)}var lde={name:"Inter",size:16,font_weight:400,italic:!1,color:"000000"};function JKr(a){return{name:a?.name??lde.name,size:a?.size??lde.size,font_weight:a?.font_weight??lde.font_weight,italic:a?.italic??lde.italic,color:a?.color??lde.color,underline:a?.underline,strike:a?.strike}}function Eke(a){return a?qHt(a):""}function HKr(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 jKr(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 KKr(a,r){let s=JKr(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 YHt(a,r,s){if(!a)return[];let c=HKr(a),f=[],p=[],C=new kU({onopentag(w){let P=w.toLowerCase();if(P==="br"){f.push({text:` +`});return}p.push(P)},onclosetag(w){let P=w.toLowerCase();for(let U=p.length-1;U>=0;U--)if(p[U]===P){p.splice(U,1);break}},ontext(w){if(!w)return;let P=jKr(w,s);if(!P)return;let U=Eke(P);U&&f.push({text:U,font:KKr(r,p)})}},{decodeEntities:!0});return C.write(c),C.end(),f.filter(w=>w.text.length>0)}var qKr=new Set(["a","abbr","b","br","code","em","i","img","mark","small","span","strong","sub","sup","time","u","wbr"]);function WKr(a){return a?qKr.has(a.toLowerCase()):!1}function VHt(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 YKr(a){if(!a)return"";let r=0,s="",c=new kU({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(),Eke(s).trim()}function VKr(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,w=a.font?.lineHeight??Math.round(C*1.2),P=a.position.left+s,U=Math.max(1,a.position.width-s-c),O=a.position.top+f;if(r.length>0){let k=r.filter(N=>N.position).sort((N,G)=>(N.position.top??0)-(G.position.top??0));if(k.length>0){let N=[];for(let X=0;X=0&&N.push(Je)}let G=N.length>0?Math.round(N.reduce((X,de)=>X+de,0)/N.length):0,H=k[k.length-1].position;O=H.top+H.height+G}}let j=a.position.top+a.position.height-p-w;return O>j&&(O=Math.max(a.position.top+f,j)),{left:P,top:O,width:U,height:w}}function zKr(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&&zKr(c,f.path))})}function zHt(a){if(!a.hasImmediateUnwrappedText||!a.relatedElements||a.relatedElements.length===0||!a.innerText)return null;let r=VHt(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=[],w=H=>{let X=!!(H.border?.color&&(H.border?.width??0)>0),de=!!H.background?.color,we=!!H.imageSrc,Je=!!(H.hasGradient||H.shape||H.shouldScreenshot);return de||X||we||Je};for(let H=0;H]+>/g,""),Te=w(X)||Je.length===0,Ct=`PPTX_RUN_${H}`;if(!Te&&Je){let st=c.indexOf(Je);if(st!==-1){c=c.slice(0,st)+Ct+c.slice(st+Je.length),f.push(Ct),p.push(X),C.push("run");continue}}let Ve=!1;if(Je){let st=c.indexOf(Je);st!==-1&&(c=c.slice(0,st)+Ct+c.slice(st+Je.length),Ve=!0)}if(!Ve){let st=(X.tagName||"span").toLowerCase();try{let cr=new RegExp(`<${st}[^>]*>`,"i");cr.test(c)&&(c=c.replace(cr,Ct),Ve=!0)}catch{}}Ve||(c=Ct+c),f.push(Ct),p.push(X),C.push("shape")}let P=c.replace(/<[^>]+>/g,"").replace(/^[\s\u200B\u200C\u200D\uFEFF]+|[\s\u200B\u200C\u200D\uFEFF]+$/g,""),U=[];if(f.length===0)U.push({text:P});else{let H=0;for(;HH&&U.push({text:P.slice(H,X)});let we=f.indexOf(de);we!==-1&&U.push({child:p[we],kind:C[we]}),H=X+de.length}}let O=[];for(let H of U)if(H.text&&H.text.includes(s)){let X=H.text.split(s);X.forEach((de,we)=>{de&&O.push({text:de}),we{!H&&k.length===0||(j.push(k),k=[])};for(let H of O){if(H.hardBreak){G(!0);continue}if(H.child)if(H.kind==="run"){let X=Eke((H.child.innerText||"").replace(/<[^>]+>/g,"").replace(/^[\s\u200B\u200C\u200D\uFEFF]+|[\s\u200B\u200C\u200D\uFEFF]+$/g,""));if(X){let de=fde(H.child,X,a);de&&k.push({text:de,font:yke(H.child)})}}else{let X=a.font?.size??H.child.font?.size??16,de=a.font?.letterSpacing??0,we=H.child.position?.width??0,Te=((Ve,st,cr)=>{let ct=[[1,"\u2003"],[.5,"\u2002"],[.3333333333333333,"\u2004"],[.25,"\u2005"],[.16666666666666666,"\u2006"],[.2,"\u2009"],[.08333333333333333,"\u200A"]],Yt=Math.max(0,Ve),yt="";for(let[Rt,kt]of ct){let Tt=Rt*st+cr;if(Tt<=0)continue;let Yr=Math.floor(Yt/Tt);Yr>0&&(yt+=kt.repeat(Yr),Yt-=Yr*Tt)}return yt||(yt=" "),yt})(we,X,de);k.push({text:Te});let Ct=Sit(H.child)||[];Ct.length>0&&N.push(...Ct)}else if(H.text&&H.text.length>0){let X=Eke(H.text),de=fde(a,X);de&&k.push({text:de})}}return(k.length>0||j.length===0)&&G(!0),{paragraphRuns:j,extraShapes:N}}function ZKr(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=Sit(f);p&&s.push(...p)}let c={shapes:s,note:r.speakerNote};return r.backgroundColor&&(c.background={color:r.backgroundColor,opacity:1}),c})}function Sit(a){if(!a.position)return[];if(a.relatedElements&&a.relatedElements.length>0)return $Kr(a);if(a.imageSrc)return ejt(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?WHt(a):Mit(a):a.tagName==="hr"?rqr(a):WHt(a)}function ZHt(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 xit(a){if(a)switch(a.toLowerCase()){case"top":return 1;case"middle":return 3;case"bottom":return 4;default:return}}function kit(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 _Z(a){return{left:a.position?.left??0,top:a.position?.top??0,width:a.position?.width??0,height:a.position?.height??0}}function Tit(a){return a.background?.color?{color:a.background.color,opacity:Math.min(a.opacity??1,a.background.opacity??1)}:void 0}function Fit(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 Nit(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 Pit(a,r){return a?.font?.textTransform??r?.font?.textTransform??void 0}function fde(a,r,s){if(r==null)return r;let c=Pit(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 yke(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 Rit(a){let r=yke(a),s=Pit(a),c=a.innerText&&a.innerText.length>0?YHt(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(""):fde(a,a.innerText);return{alignment:ZHt(a.textAlign),font:r,line_height:a.font?.lineHeight,letter_spacing:a.font?.letterSpacing,text:p,text_runs:f}}function $Ht(a){let r;for(let s of a.borderRadius??[])s>0&&(r=Math.max(r??0,s));return r}function $Kr(a){let r=[];a.imageSrc&&r.push(...ejt(a));let s=_Z(a),c=kit(a),f=Tit(a),p=Fit(a),C=Nit(a),w=a.rotation,P=a.textWrap??!0,U=xit(a.textVerticalAlign),O=$Ht(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:w,border_radius:O});let N=VHt(a),G=a.hasImmediateUnwrappedText&&N.length>0&&N.every(H=>WKr(H.tagName));if(a.hasImmediateUnwrappedText&&G)r.push(...eqr(a,k,s,P,c,f,p,C,w,U));else if(a.hasImmediateUnwrappedText&&N.length>0){let H=a.relatedElements?XKr(a.relatedElements):[],X=H.length>0?H:N;for(let Je of X){let Te=Sit(Je);Te&&r.push(...Te)}let de=YKr(a.innerText??""),we=fde(a,de);if(we&&we.trim().length>0){let Je=VKr(a,N),Te={...a,innerText:we,position:Je??a.position,textVerticalAlign:"top"};r.push(...Mit(Te,!0))}}else r.push(...tqr(a,k,s,P,c,f,p,C,w,U));return r}function eqr(a,r,s,c,f,p,C,w,P,U){let O={left:s.left,top:s.top,width:s.width+2,height:s.height},j=zHt(a),k=Rit(a),N=[],G=[];if(j){G=j.extraShapes;let X=j.paragraphRuns.length>0?j.paragraphRuns:[[]];for(let de of X)N.push({...k,text:void 0,text_runs:de.length>0?de:void 0})}else N.push(k);return[{shape_type:"textbox",position:O,margin:f,fill:r?void 0:p,stroke:r?void 0:C,shadow:r?void 0:w,rotation:P,text_wrap:c,vertical_alignment:U,paragraphs:N},...G]}function tqr(a,r,s,c,f,p,C,w,P,U){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,N=a.relatedElements.length,G=[];for(let de=0;de0&&(k=Math.floor(G.reduce((de,we)=>de+we,0)/G.length));let H=[],X=[];for(let de=0;de0&&X.push(...Te.extraShapes),Ct=ZKr(Te.paragraphRuns);else if(we.innerText){let st=yke(we),cr=YHt(we.innerText,st,Pit(we,a));Ct=cr.length>0?cr:void 0}let Ve=Ct&&Ct.length>0?Ct.map(st=>st.text).join(""):fde(we,we.innerText??"",a)??"";H.push({spacing:{top:0,bottom:Je??0,left:0,right:0},alignment:ZHt(we.textAlign),font:yke(we),line_height:we.font?.lineHeight,level:0,bullet:we.marker?.color?{type:"default",color:we.marker.color}:{type:"default"},letter_spacing:we.font?.letterSpacing,text:Ve,text_runs:Ct})}return[{shape_type:"textbox",position:j,margin:f,fill:r?void 0:p,stroke:r?void 0:C,shadow:r?void 0:w,rotation:P,text_wrap:c,vertical_alignment:U,paragraphs:H},...X]}function Mit(a,r=!1){let s=!(r||a.isExcludedTextChild),c=_Z(a),f=kit(a),p=s?Tit(a):void 0,C=s?Fit(a):void 0,w=s?Nit(a):void 0,P=Rit(a);return c.width+=2,[{shape_type:"textbox",margin:f,fill:p,stroke:C,shadow:w,position:c,rotation:a.rotation,text_wrap:a.textWrap??!0,vertical_alignment:xit(a.textVerticalAlign),paragraphs:[P]}]}function WHt(a){let r=_Z(a),s=kit(a),c=Tit(a),f=Fit(a),p=Nit(a),C={left:r.left,top:r.top,width:r.width+2,height:r.height},w=a.innerText?[Rit(a)]:void 0,P=a.borderRadius?5:1,U=$Ht(a);if(U){let O=[];return O.push({shape_type:"autoshape",type:P,margin:s,fill:c,stroke:f,shadow:p,position:r,rotation:a.rotation,border_radius:U}),w&&O.push({shape_type:"textbox",position:C,margin:s,rotation:a.rotation,text_wrap:a.textWrap??!0,vertical_alignment:xit(a.textVerticalAlign),paragraphs:w}),O}return[{shape_type:"autoshape",type:P,margin:s,fill:c,stroke:f,shadow:p,position:r,rotation:a.rotation,text_wrap:a.textWrap??!0,border_radius:U||void 0,paragraphs:w}]}function ejt(a){let r=(()=>{let p=a.position?.left??0,C=a.position?.top??0,w=Math.max(0,a.position?.width??0),P=Math.max(0,a.position?.height??0);return p<0&&(w=Math.max(1,w+p),p=0),C<0&&(P=Math.max(1,P+C),C=0),p+w>1280&&(w=Math.max(1,1280-p)),C+P>720&&(P=Math.max(1,720-C)),{left:p,top:C,width:w,height:P}})(),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(...Mit(a,!0)),f}function rqr(a){let r=_Z(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 hZ(){let a=process.env.TEMP_DIRECTORY;if(!a)throw new um("TEMP_DIRECTORY must be set",500);return a}var Oit=Qc(require("node:path"));var vke=Qc(require("node:path")),gde=Qc(require("node:fs/promises"));var ijt=require("node:child_process");function mZ(a){return(a??"").trim().replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"")||"presentation"}var Bke=Qc(require("node:fs/promises")),dde=Qc(require("node:path")),Lit=require("node:url");function iqr(){let a=process.env.APP_DATA_DIRECTORY;if(!a)throw new um("APP_DATA_DIRECTORY must be set",500);return a}async function tjt(){let a=iqr(),r=dde.default.join(a,"exports");return await Bke.default.mkdir(r,{recursive:!0}),r}async function rjt(a,r){let s=await tjt(),c=dde.default.join(s,a);return await Bke.default.writeFile(c,r),{filePath:c,url:(0,Lit.pathToFileURL)(c).toString()}}async function Qke(a,r){let s=await tjt(),c=dde.default.join(s,r??dde.default.basename(a));return await Bke.default.copyFile(a,c),{filePath:c,url:(0,Lit.pathToFileURL)(c).toString()}}async function bke(a,r){let s=!1;r||(s=!0,r=vke.default.join(hZ(),PQ()),await gde.default.mkdir(r,{recursive:!0}));try{let c=`${mZ(a.data.name??"presentation")}_${PQ()}`,f=vke.default.join(r,`${c}.json`);await gde.default.writeFile(f,JSON.stringify(a));let p=process.env.BUILT_PYTHON_MODULE_PATH?.trim(),w=p&&p.length>0?{cmd:p,args:[f]}:{cmd:".venv/bin/python",args:["py/convert.py",f]},P=(0,ijt.spawn)(w.cmd,w.args,{cwd:process.cwd(),stdio:"inherit",env:{...process.env,FASTAPI_URL:process.env.FASTAPI_URL}});await new Promise((j,k)=>{P.once("error",k),P.once("close",N=>{if(N===0)return j();k(new Error(`convert.py exited with code ${N}`))})});let U=vke.default.join(r,`${c}.pptx`);try{await gde.default.access(U)}catch{throw new um("Failed to create PPTX file",500)}let{url:O}=await Qke(U,`${c}.pptx`);return{url:O}}finally{s&&await gde.default.rm(r,{recursive:!0,force:!0})}}async function njt(a,r){let{slides:s,speakerNotes:c}=await yHt(a);console.log("[handler] Slides and speaker notes retrieved");let f=await BHt(s);console.log("[handler] Slides attributes retrieved");let p=Oit.default.join(hZ(),PQ()),C=Oit.default.join(p,"screenshots");await pde.default.mkdir(p,{recursive:!0}),await pde.default.mkdir(C,{recursive:!0});try{await QHt(s,f,c,C),console.log("[handler] Screenshots processed");let w=XHt(f);console.log("[handler] Slides PPTX models retrieved");let P={name:r.title,slides:w};return await bke({type:"pptx-from-json",url:r.url,data:P},p)}finally{await pde.default.rm(p,{recursive:!0,force:!0}),await pde.default.rm(C,{recursive:!0,force:!0})}}async function sjt(a,r){let s=await a.pdf({width:"1280px",height:"720px",printBackground:!0,margin:{top:0,right:0,bottom:0,left:0}}),c=mZ(r.title??"presentation")+"_"+PQ()+".pdf",{url:f}=await rjt(c,s);return{url:f}}var _de=Qc(require("node:path")),CZ=Qc(require("node:fs/promises")),ajt=require("node:child_process");async function ojt(a,r){let s=await a.pdf({width:"1280px",height:"720px",printBackground:!0,margin:{top:0,right:0,bottom:0,left:0}}),c=mZ(r.title??"presentation")+"_"+PQ(),f=`${c}.pdf`,p=`${c}_images.zip`,C=_de.default.join(hZ(),PQ());await CZ.default.mkdir(C,{recursive:!0});try{let w=_de.default.join(C,f);await CZ.default.writeFile(w,s);let P=_de.default.join(C,`${c}.json`),U={type:"pdf-to-png-zip",pdf_path:w,output_dir:C};await CZ.default.writeFile(P,JSON.stringify(U));let O=process.env.BUILT_PYTHON_MODULE_PATH?.trim(),k=O&&O.length>0?{cmd:O,args:[P]}:{cmd:".venv/bin/python",args:["py/convert.py",P]},N=(0,ajt.spawn)(k.cmd,k.args,{cwd:process.cwd(),stdio:["ignore","pipe","inherit"]}),G="";N.stdout?.on("data",we=>{G+=we.toString()}),await new Promise((we,Je)=>{N.once("error",Je),N.once("close",Te=>{if(Te===0)return we();Je(new Error(`convert.py exited with code ${Te}`))})});let H=G.trim().split(/\r?\n/).pop(),X=H&&H.length>0?H:_de.default.join(C,p);try{await CZ.default.access(X)}catch{throw new um("Failed to create PNG zip",500)}let{url:de}=await Qke(X);return{url:de}}finally{await CZ.default.rm(C,{recursive:!0,force:!0})}}async function cjt(a){if(a.type==="export")return nqr(a);if(a.type==="pptx-from-json")return bke(a);throw new um("Invalid task type",400)}async function nqr(a){let r=await MGt();try{let s=await LGt(r,a);if(a.format==="pptx"){let c=await njt(s,a);return console.log("[handleExportTask] PPTX response",c),c}else if(a.format==="pdf"){let c=await sjt(s,a);return console.log("[handleExportTask] PDF response",c),c}else if(a.format==="png"){let c=await ojt(s,a);return console.log("[handleExportTask] PNG response",c),c}}finally{await r.close()}throw new um("Invalid export task format",400)}function sqr(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 aqr(a){let r=Git.default.parse(a);return Git.default.join(r.dir,`${r.name}.response.json`)}async function oqr(a){let r=await Uit.default.readFile(a,"utf8"),s=JSON.parse(r),c=await cjt(s),f=aqr(a);return await Uit.default.writeFile(f,`${JSON.stringify(c)} +`,"utf8"),f}(async()=>{try{let a=sqr(process.argv),r=await oqr(a);console.log(r)}catch(a){a instanceof um&&(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 new file mode 100755 index 00000000..f32dd314 Binary files /dev/null and b/electron/resources/export/py/convert differ diff --git a/electron/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx b/electron/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx index fc3f253b..8406a200 100644 --- a/electron/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx +++ b/electron/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx @@ -75,6 +75,25 @@ const Header = ({ return pptx_model; }; + const exportViaIpc = async (format: "pptx" | "pdf"): Promise => { + if (typeof window === 'undefined') return false; + if (!(window as any).electron?.exportPresentation) return false; + trackEvent( + format === "pptx" + ? MixpanelEvent.Header_ExportAsPPTX_API_Call + : MixpanelEvent.Header_ExportAsPDF_API_Call + ); + const result = await (window as any).electron.exportPresentation( + presentation_id, + presentationData?.title || 'presentation', + format + ); + if (!result?.success) { + throw new Error(result?.message || 'Export failed'); + } + return true; + }; + const handleExportPptx = async () => { if (isStreaming) return; @@ -84,28 +103,12 @@ const Header = ({ // Save the presentation data before exporting trackEvent(MixpanelEvent.Header_UpdatePresentationContent_API_Call); await PresentationGenerationApi.updatePresentationContent(presentationData); - trackEvent(MixpanelEvent.Header_GetPptxModel_API_Call); - const pptx_model = await get_presentation_pptx_model(presentation_id); - if (!pptx_model) { - throw new Error("Failed to get presentation PPTX model"); - } - trackEvent(MixpanelEvent.Header_ExportAsPPTX_API_Call); - const pptx_path = await PresentationGenerationApi.exportAsPPTX(pptx_model); - if (pptx_path) { - // Check if we're in Electron mode - if (typeof window !== 'undefined' && (window as any).electron?.fileDownloaded) { - // Use Electron's file download dialog - const result = await (window as any).electron.fileDownloaded(pptx_path); - if (!result.success) { - throw new Error('Export cancelled or failed'); - } - } else { - // Fallback to direct download for web mode - downloadLink(pptx_path); - } - } else { - throw new Error("No path returned from export"); + if (await exportViaIpc("pptx")) { + toast.success("PPTX exported successfully!"); + return; } + + throw new Error("Export is only supported in the desktop app."); } catch (error) { console.error("Export failed:", error); setShowLoader(false); @@ -130,32 +133,26 @@ const Header = ({ trackEvent(MixpanelEvent.Header_ExportAsPDF_API_Call); - // Check if running in Electron environment - if (typeof window !== 'undefined' && window.electron?.exportAsPDF) { - // Use Electron IPC handler - const result = await window.electron.exportAsPDF(presentation_id, presentationData?.title || 'presentation'); - if (result.success) { - toast.success("PDF exported successfully!"); - } else { - throw new Error("Failed to export PDF"); - } - } else { - // Fallback to API route for web-based deployments - const response = await fetch('/api/export-as-pdf', { - method: 'POST', - body: JSON.stringify({ - id: presentation_id, - title: presentationData?.title, - }) - }); + if (await exportViaIpc("pdf")) { + toast.success("PDF exported successfully!"); + return; + } - if (response.ok) { - const { path: pdfPath } = await response.json(); - // window.open(pdfPath, '_blank'); - downloadLink(pdfPath); - } else { - throw new Error("Failed to export PDF"); - } + // Fallback to API route for web-based deployments + const response = await fetch('/api/export-as-pdf', { + method: 'POST', + body: JSON.stringify({ + id: presentation_id, + title: presentationData?.title, + }) + }); + + if (response.ok) { + const { path: pdfPath } = await response.json(); + // window.open(pdfPath, '_blank'); + downloadLink(pdfPath); + } else { + throw new Error("Failed to export PDF"); } } catch (err) { diff --git a/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx b/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx index e9763ce3..03fb3b7b 100644 --- a/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx +++ b/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx @@ -85,6 +85,25 @@ const PresentationHeader = ({ return pptx_model; }; + const exportViaIpc = async (format: "pptx" | "pdf"): Promise => { + if (typeof window === 'undefined') return false; + if (!(window as any).electron?.exportPresentation) return false; + trackEvent( + format === "pptx" + ? MixpanelEvent.Header_ExportAsPPTX_API_Call + : MixpanelEvent.Header_ExportAsPDF_API_Call + ); + const result = await (window as any).electron.exportPresentation( + presentation_id, + presentationData?.title || 'presentation', + format + ); + if (!result?.success) { + throw new Error(result?.message || 'Export failed'); + } + return true; + }; + const handleExportPptx = async () => { if (isStreaming) return; @@ -93,6 +112,12 @@ const PresentationHeader = ({ // Save the presentation data before exporting trackEvent(MixpanelEvent.Header_UpdatePresentationContent_API_Call); await PresentationGenerationApi.updatePresentationContent(presentationData); + + if (await exportViaIpc("pptx")) { + toast.success("PPTX exported successfully!"); + return; + } + trackEvent(MixpanelEvent.Header_GetPptxModel_API_Call); const pptx_model = await get_presentation_pptx_model(presentation_id); if (!pptx_model) { @@ -127,6 +152,10 @@ const PresentationHeader = ({ await PresentationGenerationApi.updatePresentationContent(presentationData); trackEvent(MixpanelEvent.Header_ExportAsPDF_API_Call); + if (await exportViaIpc("pdf")) { + toast.success("PDF exported successfully!"); + return; + } const response = await fetch('/api/export-as-pdf', { method: 'POST', body: JSON.stringify({