patchright-core 1.58.2 → 1.59.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +126 -650
- package/browsers.json +16 -14
- package/lib/bootstrap.js +77 -0
- package/lib/cli/browserActions.js +308 -0
- package/lib/cli/driver.js +3 -2
- package/lib/cli/installActions.js +171 -0
- package/lib/cli/program.js +47 -411
- package/lib/client/android.js +4 -4
- package/lib/client/api.js +3 -3
- package/lib/client/browser.js +8 -0
- package/lib/client/browserContext.js +22 -61
- package/lib/client/browserType.js +19 -51
- package/lib/client/cdpSession.js +6 -2
- package/lib/client/channelOwner.js +1 -1
- package/lib/client/clientHelper.js +2 -1
- package/lib/client/clock.js +0 -1
- package/lib/client/{webSocket.js → connect.js} +57 -7
- package/lib/client/connection.js +8 -4
- package/lib/client/consoleMessage.js +3 -0
- package/lib/client/debugger.js +57 -0
- package/lib/client/dialog.js +8 -1
- package/lib/client/disposable.js +76 -0
- package/lib/client/electron.js +1 -0
- package/lib/client/elementHandle.js +1 -4
- package/lib/client/events.js +3 -3
- package/lib/client/fetch.js +0 -1
- package/lib/client/frame.js +10 -23
- package/lib/client/harRouter.js +13 -1
- package/lib/client/jsHandle.js +4 -8
- package/lib/client/locator.js +13 -44
- package/lib/client/network.js +15 -16
- package/lib/client/page.js +41 -75
- package/lib/client/platform.js +0 -3
- package/lib/client/screencast.js +88 -0
- package/lib/client/selectors.js +3 -1
- package/lib/client/tracing.js +11 -5
- package/lib/client/video.js +13 -20
- package/lib/client/worker.js +6 -6
- package/lib/generated/bindingsControllerSource.js +1 -1
- package/lib/generated/clockSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/generated/storageScriptSource.js +1 -1
- package/lib/generated/utilityScriptSource.js +1 -1
- package/lib/mcpBundle.js +0 -6
- package/lib/mcpBundleImpl.js +91 -0
- package/lib/protocol/validator.js +224 -138
- package/lib/protocol/validatorPrimitives.js +1 -1
- package/lib/remote/playwrightConnection.js +10 -8
- package/lib/remote/playwrightPipeServer.js +100 -0
- package/lib/remote/playwrightServer.js +13 -8
- package/lib/remote/playwrightWebSocketServer.js +73 -0
- package/lib/remote/serverTransport.js +96 -0
- package/lib/server/android/android.js +2 -2
- package/lib/server/bidi/bidiBrowser.js +30 -8
- package/lib/server/bidi/bidiChromium.js +18 -5
- package/lib/server/bidi/bidiNetworkManager.js +39 -11
- package/lib/server/bidi/bidiPage.js +31 -15
- package/lib/server/bidi/third_party/firefoxPrefs.js +3 -1
- package/lib/server/browser.js +84 -21
- package/lib/server/browserContext.js +110 -58
- package/lib/server/browserType.js +14 -12
- package/lib/server/chromium/chromium.js +15 -12
- package/lib/server/chromium/chromiumSwitches.js +14 -2
- package/lib/server/chromium/crBrowser.js +20 -17
- package/lib/server/chromium/crCoverage.js +1 -13
- package/lib/server/chromium/crDevTools.js +1 -0
- package/lib/server/chromium/crNetworkManager.js +12 -267
- package/lib/server/chromium/crPage.js +67 -199
- package/lib/server/chromium/crServiceWorker.js +7 -14
- package/lib/server/clock.js +33 -41
- package/lib/server/console.js +5 -1
- package/lib/server/debugController.js +12 -6
- package/lib/server/debugger.js +40 -47
- package/lib/server/deviceDescriptorsSource.json +137 -137
- package/lib/server/dispatchers/browserContextDispatcher.js +29 -30
- package/lib/server/dispatchers/browserDispatcher.js +11 -5
- package/lib/server/dispatchers/browserTypeDispatcher.js +7 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +4 -1
- package/lib/server/dispatchers/debuggerDispatcher.js +84 -0
- package/lib/server/dispatchers/dispatcher.js +1 -1
- package/lib/server/dispatchers/disposableDispatcher.js +39 -0
- package/lib/server/dispatchers/electronDispatcher.js +2 -1
- package/lib/server/dispatchers/frameDispatcher.js +6 -6
- package/lib/server/dispatchers/jsHandleDispatcher.js +2 -2
- package/lib/server/dispatchers/localUtilsDispatcher.js +37 -1
- package/lib/server/dispatchers/networkDispatchers.js +6 -5
- package/lib/server/dispatchers/pageDispatcher.js +101 -38
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +4 -5
- package/lib/server/disposable.js +41 -0
- package/lib/server/dom.js +44 -26
- package/lib/server/download.js +3 -2
- package/lib/server/electron/electron.js +12 -7
- package/lib/server/firefox/ffBrowser.js +9 -19
- package/lib/server/firefox/ffInput.js +21 -5
- package/lib/server/firefox/ffNetworkManager.js +2 -2
- package/lib/server/firefox/ffPage.js +24 -27
- package/lib/server/frameSelectors.js +5 -172
- package/lib/server/frames.js +234 -687
- package/lib/server/har/harRecorder.js +2 -2
- package/lib/server/har/harTracer.js +5 -4
- package/lib/server/input.js +49 -4
- package/lib/server/instrumentation.js +5 -0
- package/lib/server/javascript.js +6 -26
- package/lib/server/launchApp.js +1 -3
- package/lib/server/localUtils.js +6 -6
- package/lib/server/network.js +9 -8
- package/lib/server/overlay.js +138 -0
- package/lib/server/page.js +157 -105
- package/lib/server/progress.js +6 -0
- package/lib/server/recorder/recorderApp.js +9 -8
- package/lib/server/recorder.js +76 -40
- package/lib/server/registry/index.js +55 -82
- package/lib/server/registry/nativeDeps.js +1 -0
- package/lib/server/screencast.js +90 -143
- package/lib/server/screenshotter.js +0 -6
- package/lib/server/trace/recorder/snapshotter.js +8 -17
- package/lib/server/trace/recorder/snapshotterInjected.js +82 -20
- package/lib/server/trace/recorder/tracing.js +87 -44
- package/lib/server/trace/viewer/traceViewer.js +3 -4
- package/lib/server/usKeyboardLayout.js +7 -0
- package/lib/server/utils/comparators.js +1 -1
- package/lib/server/utils/disposable.js +32 -0
- package/lib/server/utils/eventsHelper.js +3 -1
- package/lib/server/utils/fileUtils.js +16 -2
- package/lib/server/utils/happyEyeballs.js +15 -12
- package/lib/server/utils/hostPlatform.js +0 -15
- package/lib/server/utils/httpServer.js +5 -3
- package/lib/server/utils/network.js +2 -1
- package/lib/server/utils/nodePlatform.js +0 -6
- package/lib/server/utils/processLauncher.js +6 -5
- package/lib/server/utils/zipFile.js +2 -2
- package/lib/server/videoRecorder.js +82 -12
- package/lib/server/webkit/wkBrowser.js +1 -6
- package/lib/server/webkit/wkPage.js +27 -25
- package/lib/server/webkit/wkWorkers.js +2 -1
- package/lib/serverRegistry.js +156 -0
- package/lib/tools/backend/browserBackend.js +79 -0
- package/lib/tools/backend/common.js +63 -0
- package/lib/tools/backend/config.js +41 -0
- package/lib/tools/backend/console.js +66 -0
- package/lib/tools/backend/context.js +296 -0
- package/lib/tools/backend/cookies.js +152 -0
- package/lib/tools/backend/devtools.js +69 -0
- package/lib/tools/backend/dialogs.js +59 -0
- package/lib/tools/backend/evaluate.js +64 -0
- package/lib/tools/backend/files.js +60 -0
- package/lib/tools/backend/form.js +64 -0
- package/lib/tools/backend/keyboard.js +155 -0
- package/lib/tools/backend/logFile.js +95 -0
- package/lib/tools/backend/mouse.js +168 -0
- package/lib/tools/backend/navigate.js +106 -0
- package/lib/tools/backend/network.js +135 -0
- package/lib/tools/backend/pdf.js +48 -0
- package/lib/tools/backend/response.js +305 -0
- package/lib/tools/backend/route.js +140 -0
- package/lib/tools/backend/runCode.js +77 -0
- package/lib/tools/backend/screenshot.js +88 -0
- package/lib/tools/backend/sessionLog.js +74 -0
- package/lib/tools/backend/snapshot.js +208 -0
- package/lib/tools/backend/storage.js +68 -0
- package/lib/tools/backend/tab.js +445 -0
- package/lib/tools/backend/tabs.js +67 -0
- package/lib/tools/backend/tool.js +47 -0
- package/lib/tools/backend/tools.js +102 -0
- package/lib/tools/backend/tracing.js +78 -0
- package/lib/tools/backend/utils.js +83 -0
- package/lib/tools/backend/verify.js +151 -0
- package/lib/tools/backend/video.js +98 -0
- package/lib/tools/backend/wait.js +63 -0
- package/lib/tools/backend/webstorage.js +223 -0
- package/lib/tools/cli-client/cli.js +6 -0
- package/lib/tools/cli-client/help.json +399 -0
- package/lib/tools/cli-client/minimist.js +128 -0
- package/lib/tools/cli-client/program.js +350 -0
- package/lib/tools/cli-client/registry.js +176 -0
- package/lib/tools/cli-client/session.js +289 -0
- package/lib/tools/cli-client/skill/SKILL.md +328 -0
- package/lib/tools/cli-client/skill/references/element-attributes.md +23 -0
- package/lib/tools/cli-client/skill/references/playwright-tests.md +39 -0
- package/lib/tools/cli-client/skill/references/request-mocking.md +87 -0
- package/lib/tools/cli-client/skill/references/running-code.md +231 -0
- package/lib/tools/cli-client/skill/references/session-management.md +169 -0
- package/lib/tools/cli-client/skill/references/storage-state.md +275 -0
- package/lib/tools/cli-client/skill/references/test-generation.md +88 -0
- package/lib/tools/cli-client/skill/references/tracing.md +139 -0
- package/lib/tools/cli-client/skill/references/video-recording.md +143 -0
- package/lib/tools/cli-daemon/command.js +73 -0
- package/lib/tools/cli-daemon/commands.js +956 -0
- package/lib/tools/cli-daemon/daemon.js +157 -0
- package/lib/tools/cli-daemon/helpGenerator.js +177 -0
- package/lib/tools/cli-daemon/program.js +129 -0
- package/lib/tools/dashboard/appIcon.png +0 -0
- package/lib/tools/dashboard/dashboardApp.js +284 -0
- package/lib/tools/dashboard/dashboardController.js +296 -0
- package/lib/tools/exports.js +60 -0
- package/lib/tools/mcp/browserFactory.js +233 -0
- package/lib/tools/mcp/cdpRelay.js +352 -0
- package/lib/tools/mcp/cli-stub.js +7 -0
- package/lib/tools/mcp/config.d.js +16 -0
- package/lib/tools/mcp/config.js +446 -0
- package/lib/tools/mcp/configIni.js +189 -0
- package/lib/tools/mcp/extensionContextFactory.js +55 -0
- package/lib/tools/mcp/index.js +62 -0
- package/lib/tools/mcp/log.js +35 -0
- package/lib/tools/mcp/program.js +107 -0
- package/lib/tools/mcp/protocol.js +28 -0
- package/lib/tools/mcp/watchdog.js +44 -0
- package/lib/tools/trace/SKILL.md +171 -0
- package/lib/{server/trace/viewer/traceParser.js → tools/trace/installSkill.js} +15 -39
- package/lib/tools/trace/traceActions.js +142 -0
- package/lib/tools/trace/traceAttachments.js +69 -0
- package/lib/tools/trace/traceCli.js +87 -0
- package/lib/tools/trace/traceConsole.js +97 -0
- package/lib/tools/trace/traceErrors.js +55 -0
- package/lib/tools/trace/traceOpen.js +69 -0
- package/lib/tools/trace/traceParser.js +96 -0
- package/lib/tools/trace/traceRequests.js +182 -0
- package/lib/tools/trace/traceScreenshot.js +68 -0
- package/lib/tools/trace/traceSnapshot.js +149 -0
- package/lib/tools/trace/traceUtils.js +153 -0
- package/lib/tools/utils/connect.js +32 -0
- package/lib/tools/utils/mcp/http.js +152 -0
- package/lib/tools/utils/mcp/server.js +230 -0
- package/lib/tools/utils/mcp/tool.js +47 -0
- package/lib/tools/utils/socketConnection.js +108 -0
- package/lib/utils/isomorphic/formatUtils.js +64 -0
- package/lib/utils/isomorphic/jsonSchema.js +89 -0
- package/lib/utils/isomorphic/mimeType.js +7 -2
- package/lib/utils/isomorphic/protocolFormatter.js +2 -2
- package/lib/utils/isomorphic/protocolMetainfo.js +127 -106
- package/lib/utils/isomorphic/stringUtils.js +3 -3
- package/lib/utils/isomorphic/timeoutRunner.js +3 -3
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +35 -42
- package/lib/utils/isomorphic/trace/traceLoader.js +15 -14
- package/lib/utils/isomorphic/trace/traceModel.js +3 -2
- package/lib/utils/isomorphic/trace/traceModernizer.js +1 -0
- package/lib/utils/isomorphic/urlMatch.js +54 -1
- package/lib/utils/isomorphic/utilityScriptSerializers.js +11 -0
- package/lib/utils.js +6 -2
- package/lib/utilsBundle.js +3 -21
- package/lib/utilsBundleImpl/index.js +132 -133
- package/lib/vite/dashboard/assets/index-BAOybkp8.js +50 -0
- package/lib/vite/dashboard/assets/index-CZAYOG76.css +1 -0
- package/lib/vite/dashboard/index.html +28 -0
- package/lib/vite/htmlReport/index.html +2 -70
- package/lib/vite/htmlReport/report.css +1 -0
- package/lib/vite/htmlReport/report.js +72 -0
- package/lib/vite/recorder/assets/{codeMirrorModule-CFUTFUO7.js → codeMirrorModule-C8KMvO9L.js} +20 -20
- package/lib/vite/recorder/assets/index-CqAYX1I3.js +193 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-BVA4h_ZY.js → codeMirrorModule-DS0FLvoc.js} +20 -20
- package/lib/vite/traceViewer/assets/defaultSettingsView-GTWI-W_B.js +262 -0
- package/lib/vite/traceViewer/defaultSettingsView.B4dS75f0.css +1 -0
- package/lib/vite/traceViewer/{index.BtyWtaE-.js → index.C5466mMT.js} +1 -1
- package/lib/vite/traceViewer/{index.BVu7tZDe.css → index.CzXZzn5A.css} +1 -1
- package/lib/vite/traceViewer/index.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +4 -4
- package/lib/vite/traceViewer/uiMode.Vipi55dB.js +6 -0
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/zipBundleImpl.js +2 -2
- package/lib/zodBundle.js +39 -0
- package/lib/zodBundleImpl.js +40 -0
- package/package.json +6 -1
- package/types/protocol.d.ts +947 -51
- package/types/types.d.ts +854 -74
- package/lib/client/pageAgent.js +0 -64
- package/lib/mcpBundleImpl/index.js +0 -147
- package/lib/server/agent/actionRunner.js +0 -335
- package/lib/server/agent/actions.js +0 -128
- package/lib/server/agent/codegen.js +0 -111
- package/lib/server/agent/context.js +0 -150
- package/lib/server/agent/expectTools.js +0 -156
- package/lib/server/agent/pageAgent.js +0 -204
- package/lib/server/agent/performTools.js +0 -262
- package/lib/server/agent/tool.js +0 -109
- package/lib/server/dispatchers/pageAgentDispatcher.js +0 -96
- package/lib/server/pageBinding.js +0 -87
- package/lib/utils/isomorphic/oldUtilityScriptSerializers.js +0 -248
- package/lib/vite/recorder/assets/index-CVkBxsGf.js +0 -193
- package/lib/vite/traceViewer/assets/defaultSettingsView-CjfmcdOz.js +0 -266
- package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +0 -1
- package/lib/vite/traceViewer/uiMode.fyrXARf2.js +0 -5
- /package/lib/{server/utils → utils/isomorphic}/imageUtils.js +0 -0
- /package/lib/utils/isomorphic/{traceUtils.js → trace/traceUtils.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var $s=Object.defineProperty;var Js=(s,t,e)=>t in s?$s(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var We=(s,t,e)=>Js(s,typeof t!="symbol"?t+"":t,e);class Qs{constructor(t,e){this._snapshotIds=new Map,this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,n){const i=this._snapshot(t,e);if(!i)return new Response(null,{status:404});const r=i.render();return this._snapshotIds.set(n,i),new Response(r.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const n=this._snapshot(t,e),i=n==null?void 0:n.closestScreenshot();return i?new Response(await this._resourceLoader(i)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const n=this._snapshot(t,e);return this._respondWithJson(n?{viewport:n.viewport(),url:n.snapshot().frameUrl,timestamp:n.snapshot().timestamp,wallTime:n.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const n=e.get("name");return this._snapshotStorage.snapshotByName(t,n)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,n){let i;const r=this._snapshotIds.get(n);for(const R of t)if(i=r==null?void 0:r.resourceByUrl(zs(R),e),i)break;if(!i)return new Response(null,{status:404});const a=i.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=i.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const d=new Headers;l!=="x-unknown"&&d.set("Content-Type",l);for(const{name:R,value:A}of i.response.headers)d.set(R,A);d.delete("Content-Encoding"),d.delete("Access-Control-Allow-Origin"),d.set("Access-Control-Allow-Origin","*"),d.delete("Content-Length"),d.set("Content-Length",String(o.size)),this._snapshotStorage.hasResourceOverride(i.request.url)?d.set("Cache-Control","no-store, no-cache, max-age=0"):d.set("Cache-Control","public, max-age=31536000");const{status:m}=i.response,y=m===101||m===204||m===205||m===304;return new Response(y?null:o,{headers:d,status:i.response.status,statusText:i.response.statusText})}}function zs(s){try{const t=new URL(s);return t.hash="",t.toString()}catch{return s}}function er(s){const t=new Map,{files:e,stacks:n}=s;for(const i of n){const[r,a]=i;t.set(`call@${r}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}const Wn={"&":"&","<":"<",">":">",'"':""","'":"'"};function tr(s){return s.replace(/[&<>"']/ug,t=>Wn[t])}function nr(s){return s.replace(/[&<]/ug,t=>Wn[t])}function Ut(s,t,e){return s.find((n,i)=>{if(i===s.length-1)return!0;const r=s[i+1];return Math.abs(t(n)-e)<Math.abs(t(r)-e)})}function Hn(s){return Array.isArray(s)&&typeof s[0]=="string"}function sr(s){return Array.isArray(s)&&Array.isArray(s[0])}class rr{constructor(t,e,n,i,r){this._htmlCache=t,this._resources=e,this._snapshots=n,this._index=r,this._snapshot=n[r],this._callId=n[r].callId,this._screencastFrames=i,this.snapshotName=n[r].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var i;const{wallTime:t,timestamp:e}=this.snapshot(),n=t&&((i=this._screencastFrames[0])!=null&&i.frameSwapWallTime)?Ut(this._screencastFrames,r=>r.frameSwapWallTime,t):Ut(this._screencastFrames,r=>r.timestamp,e);return n==null?void 0:n.sha1}render(){const t=[],e=(r,a,o,l)=>{if(typeof r=="string"){o==="STYLE"||o==="style"?t.push(dr(lr(r))):t.push(nr(r));return}if(sr(r)){const _=a-r[0][0];if(_>=0&&_<=a){const d=ar(this._snapshots[_]),m=r[0][1];if(m>=0&&m<d.length)return e(d[m],_,o,l)}}else if(Hn(r)){const[_,d,...m]=r,y=_==="NOSCRIPT"?"X-NOSCRIPT":_,R=Object.entries(d||{});t.push("<",y);const A="__playwright_current_src__",f=y==="IFRAME"||y==="FRAME",c=y==="A",u=y==="IMG",b=u&&R.some(w=>w[0]===A),g=y==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(w=>w[0]===A));for(const[w,S]of R){let h=w;f&&w.toLowerCase()==="src"&&(h="__playwright_src__"),u&&w===A&&(h="src"),["src","srcset"].includes(w.toLowerCase())&&(b||g)&&(h="_"+h);let T=S;!c&&(w.toLowerCase()==="href"||w.toLowerCase()==="src"||w===A)&&(T=ft(S)),t.push(" ",h,'="',tr(T),'"')}t.push(">");for(const w of m)e(w,a,y,R);ir.has(y)||t.push("</",y,">");return}else return},n=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(n.html,this._index,void 0,void 0);const a=(n.doctype?`<!DOCTYPE ${n.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${or(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:n.pageId,frameId:n.frameId,index:this._index}}resourceByUrl(t,e){const n=this._snapshot;let i,r;for(const o of this._resources){if(typeof o._monotonicTime=="number"&&o._monotonicTime>=n.timestamp)break;o.response.status!==304&&o.request.url===t&&o.request.method===e&&(o._frameref===n.frameId?i=o:r=o)}let a=i??r;if(a&&e.toUpperCase()==="GET"){let o=n.resourceOverrides.find(l=>l.url===t);if(o!=null&&o.ref){const l=this._index-o.ref;l>=0&&l<this._snapshots.length&&(o=this._snapshots[l].resourceOverrides.find(_=>_.url===t))}o!=null&&o.sha1&&(a={...a,response:{...a.response,content:{...a.response.content,_sha1:o.sha1}}})}return a}}const ir=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function ar(s){if(!s._nodes){const t=[],e=n=>{if(typeof n=="string")t.push(n);else if(Hn(n)){const[,,...i]=n;for(const r of i)e(r);t.push(n)}};e(s.html),s._nodes=t}return s._nodes}function or(s,...t){function e(n,...i){const r=window,a=new URLSearchParams(r.location.search),o=a.has("shouldPopulateCanvasFromScreenshot"),l=a.has("isUnderTest"),_={viewport:n,frames:new WeakMap};r.__playwright_frame_bounding_rects__=_;const d="Recorded click position in absolute coordinates did not match the center of the clicked element. This is likely due to a difference between the test runner and the trace viewer operating systems.",m=[],y=[],R=[],A=[];let f=r;for(;f!==f.parent&&!f.location.pathname.match(/\/page@[a-z0-9]+$/);)f=f.parent;const c=g=>{for(const w of g.querySelectorAll("[__playwright_scroll_top_]"))m.push(w);for(const w of g.querySelectorAll("[__playwright_scroll_left_]"))y.push(w);for(const w of g.querySelectorAll("[__playwright_value_]")){const S=w;S.type!=="file"&&(S.value=S.getAttribute("__playwright_value_")),w.removeAttribute("__playwright_value_")}for(const w of g.querySelectorAll("[__playwright_checked_]"))w.checked=w.getAttribute("__playwright_checked_")==="true",w.removeAttribute("__playwright_checked_");for(const w of g.querySelectorAll("[__playwright_selected_]"))w.selected=w.getAttribute("__playwright_selected_")==="true",w.removeAttribute("__playwright_selected_");for(const w of g.querySelectorAll("[__playwright_popover_open_]")){try{w.showPopover()}catch{}w.removeAttribute("__playwright_popover_open_")}for(const w of g.querySelectorAll("[__playwright_dialog_open_]")){try{w.getAttribute("__playwright_dialog_open_")==="modal"?w.showModal():w.show()}catch{}w.removeAttribute("__playwright_dialog_open_")}for(const w of i)for(const S of g.querySelectorAll(`[__playwright_target__="${w}"]`)){const h=S.style;h.outline="2px solid #006ab1",h.backgroundColor="#6fa8dc7f",R.push(S)}for(const w of g.querySelectorAll("iframe, frame")){const S=w.getAttribute("__playwright_bounding_rect__");w.removeAttribute("__playwright_bounding_rect__");const h=S?JSON.parse(S):void 0;h&&_.frames.set(w,{boundingRect:h,scrollLeft:0,scrollTop:0});const T=w.getAttribute("__playwright_src__");if(!T)w.setAttribute("src",'data:text/html,<body style="background: #ddd"></body>');else{const E=new URL(r.location.href),O=E.pathname.lastIndexOf("/snapshot/");O!==-1&&(E.pathname=E.pathname.substring(0,O+1)),E.pathname+=T.substring(1),w.setAttribute("src",E.toString())}}{const w=g.querySelector("body[__playwright_custom_elements__]");if(w&&r.customElements){const S=(w.getAttribute("__playwright_custom_elements__")||"").split(",");for(const h of S)r.customElements.define(h,class extends HTMLElement{})}}for(const w of g.querySelectorAll("template[__playwright_shadow_root_]")){const S=w,h=S.parentElement.attachShadow({mode:"open"});h.appendChild(S.content),S.remove(),c(h)}for(const w of g.querySelectorAll("a"))w.addEventListener("click",S=>{S.preventDefault()});if("adoptedStyleSheets"in g){const w=[...g.adoptedStyleSheets];for(const S of g.querySelectorAll("template[__playwright_style_sheet_]")){const h=S,T=new CSSStyleSheet;T.replaceSync(h.getAttribute("__playwright_style_sheet_")),w.push(T)}g.adoptedStyleSheets=w}A.push(...g.querySelectorAll("canvas"))},u=()=>{r.removeEventListener("load",u);for(const S of m)S.scrollTop=+S.getAttribute("__playwright_scroll_top_"),S.removeAttribute("__playwright_scroll_top_"),_.frames.has(S)&&(_.frames.get(S).scrollTop=S.scrollTop);for(const S of y)S.scrollLeft=+S.getAttribute("__playwright_scroll_left_"),S.removeAttribute("__playwright_scroll_left_"),_.frames.has(S)&&(_.frames.get(S).scrollLeft=S.scrollLeft);r.document.styleSheets[0].disabled=!0;const g=new URL(r.location.href).searchParams,w=r===f;if(g.get("pointX")&&g.get("pointY")){const S=+g.get("pointX"),h=+g.get("pointY"),T=g.has("hasInputTarget"),E=R.length>0,O=r.document.documentElement?[r.document.documentElement]:[];for(const x of E?R:O){const p=r.document.createElement("x-pw-pointer");if(p.style.position="fixed",p.style.backgroundColor="#f44336",p.style.width="20px",p.style.height="20px",p.style.borderRadius="10px",p.style.margin="-10px 0 0 -10px",p.style.zIndex="2147483646",p.style.display="flex",p.style.alignItems="center",p.style.justifyContent="center",E){const C=x.getBoundingClientRect(),I=C.left+C.width/2,k=C.top+C.height/2;if(p.style.left=I+"px",p.style.top=k+"px",w&&(Math.abs(I-S)>=10||Math.abs(k-h)>=10)){const N=r.document.createElement("x-pw-pointer-warning");N.textContent="⚠",N.style.fontSize="19px",N.style.color="white",N.style.marginTop="-3.5px",N.style.userSelect="none",p.appendChild(N),p.setAttribute("title",d)}r.document.documentElement.appendChild(p)}else w&&!T&&(p.style.left=S+"px",p.style.top=h+"px",r.document.documentElement.appendChild(p))}}if(A.length>0){let S=function(T,E){function O(){const x=r.document.createElement("canvas");x.width=x.width/Math.floor(x.width/24),x.height=x.height/Math.floor(x.height/24);const p=x.getContext("2d");return p.fillStyle="lightgray",p.fillRect(0,0,x.width,x.height),p.fillStyle="white",p.fillRect(0,0,x.width/2,x.height/2),p.fillRect(x.width/2,x.height/2,x.width,x.height),p.createPattern(x,"repeat")}T.fillStyle=O(),T.fillRect(0,0,E.width,E.height)};const h=new Image;h.onload=()=>{var T;for(const E of A){const O=E.getContext("2d"),x=E.getAttribute("__playwright_bounding_rect__");if(E.removeAttribute("__playwright_bounding_rect__"),!x)continue;let p;try{p=JSON.parse(x)}catch{continue}let C=r;for(;C!==f;){const M=C.frameElement;C=C.parent;const L=(T=C.__playwright_frame_bounding_rects__)==null?void 0:T.frames.get(M);if(!(L!=null&&L.boundingRect))break;const V=L.boundingRect.left-L.scrollLeft,P=L.boundingRect.top-L.scrollTop;p.left+=V,p.top+=P,p.right+=V,p.bottom+=P}const{width:I,height:k}=f.__playwright_frame_bounding_rects__.viewport;p.left=p.left/I,p.top=p.top/k,p.right=p.right/I,p.bottom=p.bottom/k;const N=p.right>1||p.bottom>1;if(p.left>1||p.top>1){E.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}S(O,E),o?(O.drawImage(h,p.left*h.width,p.top*h.height,(p.right-p.left)*h.width,(p.bottom-p.top)*h.height,0,0,E.width,E.height),N?E.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":E.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):E.title="Canvas content display is disabled.",l&&console.log("canvas drawn:",JSON.stringify([p.left,p.top,p.right-p.left,p.bottom-p.top].map(M=>Math.floor(M*100))))}},h.onerror=()=>{for(const T of A){const E=T.getContext("2d");S(E,T),T.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},h.src=location.href.replace("/snapshot","/closest-screenshot")}},b=()=>c(r.document);r.addEventListener("load",u),r.addEventListener("DOMContentLoaded",b)}return`
|
|
2
|
-
(${e.toString()})(${JSON.stringify(s)}${t.map(n=>`, "${n}"`).join("")})`}const
|
|
3
|
-
`))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const n of e)this._innerAppendEvent(n)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>Ht)throw new jn("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.playwrightVersion=t.playwrightVersion,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"";break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const n=this._actionMap.get(t.callId);n.inputSnapshot=t.inputSnapshot,n.point=t.point;break}case"log":{const n=this._actionMap.get(t.callId);if(!n)return;n.log.push({time:t.time,message:t.message});break}case"after":{const n=this._actionMap.get(t.callId);n.afterSnapshot=t.afterSnapshot,n.endTime=t.endTime,n.result=t.result,n.error=t.error,n.attachments=t.attachments,n.annotations=t.annotations,t.point&&(n.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version??t.version??6,n=[t];for(;e<Ht;++e)n=this[`_modernize_${e}_to_${e+1}`].call(this,n);return n}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const n of t)n.type!=="frame-snapshot"||!n.snapshot.isMainFrame||(n.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const n=e.snapshot;e.snapshot={_frameref:n.frameId,request:{url:n.url,method:n.method,headers:n.requestHeaders,postData:n.requestSha1?{_sha1:n.requestSha1}:void 0},response:{status:n.status,headers:n.responseHeaders,content:{mimeType:n.contentType,_sha1:n.responseSha1}},_monotonicTime:n.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const n of t){const i=this._modernize_event_3_to_4(n);i&&e.push(i)}return e}_modernize_event_3_to_4(t){var n,i,r,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(n=e.snapshots.find(o=>o.title==="before"))==null?void 0:n.snapshotName,inputSnapshot:(i=e.snapshots.find(o=>o.title==="input"))==null?void 0:i.snapshotName,afterSnapshot:(r=e.snapshots.find(o=>o.title==="after"))==null?void 0:r.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const n of t){const i=this._modernize_event_4_to_5(n);i&&e.push(i)}return e}_modernize_event_4_to_5(t){var e,n;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const i=(e=t.initializer.args)==null?void 0:e.map(r=>{if(r.guid){const a=this._jsHandles.get(r.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:r.preview||"",value:r.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:i}),null}if(t.type==="event"&&t.method==="console"){const i=this._consoleObjects.get(((n=t.params.message)==null?void 0:n.guid)||"");return i?{type:"console",time:t.time,pageId:t.pageId,messageType:i.type,text:i.text,args:i.args,location:i.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const n of t)if(e.push(n),!(n.type!=="after"||!n.log.length))for(const i of n.log)e.push({type:"log",callId:n.callId,message:i,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const n={type:"context-options",origin:"testRunner",version:6,browserName:"",options:{},platform:"unknown",wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(n)}for(const n of t){if(n.type==="context-options"){e.push({...n,monotonicTime:0,origin:"library",contextId:""});continue}if(n.type==="before"||n.type==="action"){this._contextEntry.wallTime||(this._contextEntry.wallTime=n.wallTime);const i=n,r=n;r.stepId=`${i.apiName}@${i.wallTime}`,e.push(r)}else e.push(n)}return e}_modernize_7_to_8(t){const e=[];for(const n of t)if(n.type==="before"||n.type==="action"){const i=n,r=n;i.apiName&&(r.title=i.apiName,delete r.apiName),r.stepId=i.stepId??i.callId,e.push(r)}else e.push(n);return e}}class mr{constructor(){this.contextEntries=[],this._resourceToContentType=new Map}async load(t,e){var o,l;this._backend=t;const n=[];let i=!1;for(const _ of await this._backend.entryNames()){const d=_.match(/(.+)\.trace$/);d&&n.push(d[1]||""),_.includes("src@")&&(i=!0)}if(!n.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new hr;const r=n.length*3;let a=0;for(const _ of n){const d=wr();d.hasSource=i;const m=new pr(d,this._snapshotStorage),y=await this._backend.readText(_+".trace")||"";m.appendTrace(y),e(++a,r);const R=await this._backend.readText(_+".network")||"";if(m.appendTrace(R),e(++a,r),d.actions=m.actions().sort((f,c)=>f.startTime-c.startTime),!t.isLive()){for(const f of d.actions.slice().reverse())if(!f.endTime&&!f.error)for(const c of d.actions)c.parentId===f.callId&&f.endTime<c.endTime&&(f.endTime=c.endTime)}const A=await this._backend.readText(_+".stacks");if(A){const f=er(JSON.parse(A));for(const c of d.actions)c.stack=c.stack||f.get(c.callId)}e(++a,r);for(const f of d.resources)(o=f.request.postData)!=null&&o._sha1&&this._resourceToContentType.set(f.request.postData._sha1,Bt(f.request.postData.mimeType)),(l=f.response.content)!=null&&l._sha1&&this._resourceToContentType.set(f.response.content._sha1,Bt(f.response.content.mimeType));this.contextEntries.push(d)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),n=this._resourceToContentType.get(t);return!e||n===void 0||n==="x-unknown"?e:new Blob([e],{type:n})}storage(){return this._snapshotStorage}}function Bt(s){const t=s.match(/^(.*);\s*charset=.*$/);return t?t[1]:s}function wr(){return{origin:"testRunner",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}function gr(s,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((n,i)=>(r,a)=>{e[i]=r/a*t[i]*1e3,s(e.reduce((o,l)=>o+l,0),1e3)})}const br=15,v=0,ne=1,yr=2,K=-2,H=-3,jt=-4,se=-5,X=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Gn=1440,Er=0,xr=4,Tr=9,Sr=5,Rr=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Ar=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Or=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ir=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Cr=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Nr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ie=15;function ut(){const s=this;let t,e,n,i,r,a;function o(_,d,m,y,R,A,f,c,u,b,g){let w,S,h,T,E,O,x,p,C,I,k,N,D,M,L;I=0,E=m;do n[_[d+I]]++,I++,E--;while(E!==0);if(n[0]==m)return f[0]=-1,c[0]=0,v;for(p=c[0],O=1;O<=ie&&n[O]===0;O++);for(x=O,p<O&&(p=O),E=ie;E!==0&&n[E]===0;E--);for(h=E,p>E&&(p=E),c[0]=p,M=1<<O;O<E;O++,M<<=1)if((M-=n[O])<0)return H;if((M-=n[E])<0)return H;for(n[E]+=M,a[1]=O=0,I=1,D=2;--E!==0;)a[D]=O+=n[I],D++,I++;E=0,I=0;do(O=_[d+I])!==0&&(g[a[O]++]=E),I++;while(++E<m);for(m=a[h],a[0]=E=0,I=0,T=-1,N=-p,r[0]=0,k=0,L=0;x<=h;x++)for(w=n[x];w--!==0;){for(;x>N+p;){if(T++,N+=p,L=h-N,L=L>p?p:L,(S=1<<(O=x-N))>w+1&&(S-=w+1,D=x,O<L))for(;++O<L&&!((S<<=1)<=n[++D]);)S-=n[D];if(L=1<<O,b[0]+L>Gn)return H;r[T]=k=b[0],b[0]+=L,T!==0?(a[T]=E,i[0]=O,i[1]=p,O=E>>>N-p,i[2]=k-r[T-1]-O,u.set(i,(r[T-1]+O)*3)):f[0]=k}for(i[1]=x-N,I>=m?i[0]=192:g[I]<y?(i[0]=g[I]<256?0:96,i[2]=g[I++]):(i[0]=A[g[I]-y]+16+64,i[2]=R[g[I++]-y]),S=1<<x-N,O=E>>>N;O<L;O+=S)u.set(i,(k+O)*3);for(O=1<<x-1;(E&O)!==0;O>>>=1)E^=O;for(E^=O,C=(1<<N)-1;(E&C)!=a[T];)T--,N-=p,C=(1<<N)-1}return M!==0&&h!=1?se:v}function l(_){let d;for(t||(t=[],e=[],n=new Int32Array(ie+1),i=[],r=new Int32Array(ie),a=new Int32Array(ie+1)),e.length<_&&(e=[]),d=0;d<_;d++)e[d]=0;for(d=0;d<ie+1;d++)n[d]=0;for(d=0;d<3;d++)i[d]=0;r.set(n.subarray(0,ie),0),a.set(n.subarray(0,ie+1),0)}s.inflate_trees_bits=function(_,d,m,y,R){let A;return l(19),t[0]=0,A=o(_,0,19,19,null,null,m,d,y,t,e),A==H?R.msg="oversubscribed dynamic bit lengths tree":(A==se||d[0]===0)&&(R.msg="incomplete dynamic bit lengths tree",A=H),A},s.inflate_trees_dynamic=function(_,d,m,y,R,A,f,c,u){let b;return l(288),t[0]=0,b=o(m,0,_,257,Or,Ir,A,y,c,t,e),b!=v||y[0]===0?(b==H?u.msg="oversubscribed literal/length tree":b!=jt&&(u.msg="incomplete literal/length tree",b=H),b):(l(288),b=o(m,_,d,0,Cr,Nr,f,R,c,t,e),b!=v||R[0]===0&&_>257?(b==H?u.msg="oversubscribed distance tree":b==se?(u.msg="incomplete distance tree",b=H):b!=jt&&(u.msg="empty distance tree with lengths",b=H),b):v)}}ut.inflate_trees_fixed=function(s,t,e,n){return s[0]=Tr,t[0]=Sr,e[0]=Rr,n[0]=Ar,v};const He=0,Gt=1,Yt=2,qt=3,Vt=4,Zt=5,Kt=6,et=7,Xt=8,Be=9;function Pr(){const s=this;let t,e=0,n,i=0,r=0,a=0,o=0,l=0,_=0,d=0,m,y=0,R,A=0;function f(c,u,b,g,w,S,h,T){let E,O,x,p,C,I,k,N,D,M,L,V,P,J,F,U;k=T.next_in_index,N=T.avail_in,C=h.bitb,I=h.bitk,D=h.write,M=D<h.read?h.read-D-1:h.end-D,L=X[c],V=X[u];do{for(;I<20;)N--,C|=(T.read_byte(k++)&255)<<I,I+=8;if(E=C&L,O=b,x=g,U=(x+E)*3,(p=O[U])===0){C>>=O[U+1],I-=O[U+1],h.win[D++]=O[U+2],M--;continue}do{if(C>>=O[U+1],I-=O[U+1],(p&16)!==0){for(p&=15,P=O[U+2]+(C&X[p]),C>>=p,I-=p;I<15;)N--,C|=(T.read_byte(k++)&255)<<I,I+=8;E=C&V,O=w,x=S,U=(x+E)*3,p=O[U];do if(C>>=O[U+1],I-=O[U+1],(p&16)!==0){for(p&=15;I<p;)N--,C|=(T.read_byte(k++)&255)<<I,I+=8;if(J=O[U+2]+(C&X[p]),C>>=p,I-=p,M-=P,D>=J)F=D-J,D-F>0&&2>D-F?(h.win[D++]=h.win[F++],h.win[D++]=h.win[F++],P-=2):(h.win.set(h.win.subarray(F,F+2),D),D+=2,F+=2,P-=2);else{F=D-J;do F+=h.end;while(F<0);if(p=h.end-F,P>p){if(P-=p,D-F>0&&p>D-F)do h.win[D++]=h.win[F++];while(--p!==0);else h.win.set(h.win.subarray(F,F+p),D),D+=p,F+=p,p=0;F=0}}if(D-F>0&&P>D-F)do h.win[D++]=h.win[F++];while(--P!==0);else h.win.set(h.win.subarray(F,F+P),D),D+=P,F+=P,P=0;break}else if((p&64)===0)E+=O[U+2],E+=C&X[p],U=(x+E)*3,p=O[U];else return T.msg="invalid distance code",P=T.avail_in-N,P=I>>3<P?I>>3:P,N+=P,k-=P,I-=P<<3,h.bitb=C,h.bitk=I,T.avail_in=N,T.total_in+=k-T.next_in_index,T.next_in_index=k,h.write=D,H;while(!0);break}if((p&64)===0){if(E+=O[U+2],E+=C&X[p],U=(x+E)*3,(p=O[U])===0){C>>=O[U+1],I-=O[U+1],h.win[D++]=O[U+2],M--;break}}else return(p&32)!==0?(P=T.avail_in-N,P=I>>3<P?I>>3:P,N+=P,k-=P,I-=P<<3,h.bitb=C,h.bitk=I,T.avail_in=N,T.total_in+=k-T.next_in_index,T.next_in_index=k,h.write=D,ne):(T.msg="invalid literal/length code",P=T.avail_in-N,P=I>>3<P?I>>3:P,N+=P,k-=P,I-=P<<3,h.bitb=C,h.bitk=I,T.avail_in=N,T.total_in+=k-T.next_in_index,T.next_in_index=k,h.write=D,H)}while(!0)}while(M>=258&&N>=10);return P=T.avail_in-N,P=I>>3<P?I>>3:P,N+=P,k-=P,I-=P<<3,h.bitb=C,h.bitk=I,T.avail_in=N,T.total_in+=k-T.next_in_index,T.next_in_index=k,h.write=D,v}s.init=function(c,u,b,g,w,S){t=He,_=c,d=u,m=b,y=g,R=w,A=S,n=null},s.proc=function(c,u,b){let g,w,S,h=0,T=0,E=0,O,x,p,C;for(E=u.next_in_index,O=u.avail_in,h=c.bitb,T=c.bitk,x=c.write,p=x<c.read?c.read-x-1:c.end-x;;)switch(t){case He:if(p>=258&&O>=10&&(c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,b=f(_,d,m,y,R,A,c,u),E=u.next_in_index,O=u.avail_in,h=c.bitb,T=c.bitk,x=c.write,p=x<c.read?c.read-x-1:c.end-x,b!=v)){t=b==ne?et:Be;break}r=_,n=m,i=y,t=Gt;case Gt:for(g=r;T<g;){if(O!==0)b=v;else return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);O--,h|=(u.read_byte(E++)&255)<<T,T+=8}if(w=(i+(h&X[g]))*3,h>>>=n[w+1],T-=n[w+1],S=n[w],S===0){a=n[w+2],t=Kt;break}if((S&16)!==0){o=S&15,e=n[w+2],t=Yt;break}if((S&64)===0){r=S,i=w/3+n[w+2];break}if((S&32)!==0){t=et;break}return t=Be,u.msg="invalid literal/length code",b=H,c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);case Yt:for(g=o;T<g;){if(O!==0)b=v;else return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);O--,h|=(u.read_byte(E++)&255)<<T,T+=8}e+=h&X[g],h>>=g,T-=g,r=d,n=R,i=A,t=qt;case qt:for(g=r;T<g;){if(O!==0)b=v;else return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);O--,h|=(u.read_byte(E++)&255)<<T,T+=8}if(w=(i+(h&X[g]))*3,h>>=n[w+1],T-=n[w+1],S=n[w],(S&16)!==0){o=S&15,l=n[w+2],t=Vt;break}if((S&64)===0){r=S,i=w/3+n[w+2];break}return t=Be,u.msg="invalid distance code",b=H,c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);case Vt:for(g=o;T<g;){if(O!==0)b=v;else return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);O--,h|=(u.read_byte(E++)&255)<<T,T+=8}l+=h&X[g],h>>=g,T-=g,t=Zt;case Zt:for(C=x-l;C<0;)C+=c.end;for(;e!==0;){if(p===0&&(x==c.end&&c.read!==0&&(x=0,p=x<c.read?c.read-x-1:c.end-x),p===0&&(c.write=x,b=c.inflate_flush(u,b),x=c.write,p=x<c.read?c.read-x-1:c.end-x,x==c.end&&c.read!==0&&(x=0,p=x<c.read?c.read-x-1:c.end-x),p===0)))return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);c.win[x++]=c.win[C++],p--,C==c.end&&(C=0),e--}t=He;break;case Kt:if(p===0&&(x==c.end&&c.read!==0&&(x=0,p=x<c.read?c.read-x-1:c.end-x),p===0&&(c.write=x,b=c.inflate_flush(u,b),x=c.write,p=x<c.read?c.read-x-1:c.end-x,x==c.end&&c.read!==0&&(x=0,p=x<c.read?c.read-x-1:c.end-x),p===0)))return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);b=v,c.win[x++]=a,p--,t=He;break;case et:if(T>7&&(T-=8,O++,E--),c.write=x,b=c.inflate_flush(u,b),x=c.write,p=x<c.read?c.read-x-1:c.end-x,c.read!=c.write)return c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);t=Xt;case Xt:return b=ne,c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);case Be:return b=H,c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b);default:return b=K,c.bitb=h,c.bitk=T,u.avail_in=O,u.total_in+=E-u.next_in_index,u.next_in_index=E,c.write=x,c.inflate_flush(u,b)}},s.free=function(){}}const $t=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],we=0,tt=1,Jt=2,Qt=3,zt=4,en=5,je=6,Ge=7,tn=8,he=9;function Dr(s,t){const e=this;let n=we,i=0,r=0,a=0,o;const l=[0],_=[0],d=new Pr;let m=0,y=new Int32Array(Gn*3);const R=0,A=new ut;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(f,c){c&&(c[0]=R),n==je&&d.free(f),n=we,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(s,null),e.inflate_flush=function(f,c){let u,b,g;return b=f.next_out_index,g=e.read,u=(g<=e.write?e.write:e.end)-g,u>f.avail_out&&(u=f.avail_out),u!==0&&c==se&&(c=v),f.avail_out-=u,f.total_out+=u,f.next_out.set(e.win.subarray(g,g+u),b),b+=u,g+=u,g==e.end&&(g=0,e.write==e.end&&(e.write=0),u=e.write-g,u>f.avail_out&&(u=f.avail_out),u!==0&&c==se&&(c=v),f.avail_out-=u,f.total_out+=u,f.next_out.set(e.win.subarray(g,g+u),b),b+=u,g+=u),f.next_out_index=b,e.read=g,c},e.proc=function(f,c){let u,b,g,w,S,h,T,E;for(w=f.next_in_index,S=f.avail_in,b=e.bitb,g=e.bitk,h=e.write,T=h<e.read?e.read-h-1:e.end-h;;){let O,x,p,C,I,k,N,D;switch(n){case we:for(;g<3;){if(S!==0)c=v;else return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,b|=(f.read_byte(w++)&255)<<g,g+=8}switch(u=b&7,m=u&1,u>>>1){case 0:b>>>=3,g-=3,u=g&7,b>>>=u,g-=u,n=tt;break;case 1:O=[],x=[],p=[[]],C=[[]],ut.inflate_trees_fixed(O,x,p,C),d.init(O[0],x[0],p[0],0,C[0],0),b>>>=3,g-=3,n=je;break;case 2:b>>>=3,g-=3,n=Qt;break;case 3:return b>>>=3,g-=3,n=he,f.msg="invalid block type",c=H,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c)}break;case tt:for(;g<32;){if(S!==0)c=v;else return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,b|=(f.read_byte(w++)&255)<<g,g+=8}if((~b>>>16&65535)!=(b&65535))return n=he,f.msg="invalid stored block lengths",c=H,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);i=b&65535,b=g=0,n=i!==0?Jt:m!==0?Ge:we;break;case Jt:if(S===0||T===0&&(h==e.end&&e.read!==0&&(h=0,T=h<e.read?e.read-h-1:e.end-h),T===0&&(e.write=h,c=e.inflate_flush(f,c),h=e.write,T=h<e.read?e.read-h-1:e.end-h,h==e.end&&e.read!==0&&(h=0,T=h<e.read?e.read-h-1:e.end-h),T===0)))return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);if(c=v,u=i,u>S&&(u=S),u>T&&(u=T),e.win.set(f.read_buf(w,u),h),w+=u,S-=u,h+=u,T-=u,(i-=u)!==0)break;n=m!==0?Ge:we;break;case Qt:for(;g<14;){if(S!==0)c=v;else return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,b|=(f.read_byte(w++)&255)<<g,g+=8}if(r=u=b&16383,(u&31)>29||(u>>5&31)>29)return n=he,f.msg="too many length or distance symbols",c=H,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);if(u=258+(u&31)+(u>>5&31),!o||o.length<u)o=[];else for(E=0;E<u;E++)o[E]=0;b>>>=14,g-=14,a=0,n=zt;case zt:for(;a<4+(r>>>10);){for(;g<3;){if(S!==0)c=v;else return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,b|=(f.read_byte(w++)&255)<<g,g+=8}o[$t[a++]]=b&7,b>>>=3,g-=3}for(;a<19;)o[$t[a++]]=0;if(l[0]=7,u=A.inflate_trees_bits(o,l,_,y,f),u!=v)return c=u,c==H&&(o=null,n=he),e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);a=0,n=en;case en:for(;u=r,!(a>=258+(u&31)+(u>>5&31));){let M,L;for(u=l[0];g<u;){if(S!==0)c=v;else return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,b|=(f.read_byte(w++)&255)<<g,g+=8}if(u=y[(_[0]+(b&X[u]))*3+1],L=y[(_[0]+(b&X[u]))*3+2],L<16)b>>>=u,g-=u,o[a++]=L;else{for(E=L==18?7:L-14,M=L==18?11:3;g<u+E;){if(S!==0)c=v;else return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,b|=(f.read_byte(w++)&255)<<g,g+=8}if(b>>>=u,g-=u,M+=b&X[E],b>>>=E,g-=E,E=a,u=r,E+M>258+(u&31)+(u>>5&31)||L==16&&E<1)return o=null,n=he,f.msg="invalid bit length repeat",c=H,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);L=L==16?o[E-1]:0;do o[E++]=L;while(--M!==0);a=E}}if(_[0]=-1,I=[],k=[],N=[],D=[],I[0]=9,k[0]=6,u=r,u=A.inflate_trees_dynamic(257+(u&31),1+(u>>5&31),o,I,k,N,D,y,f),u!=v)return u==H&&(o=null,n=he),c=u,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);d.init(I[0],k[0],y,N[0],y,D[0]),n=je;case je:if(e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,(c=d.proc(e,f,c))!=ne)return e.inflate_flush(f,c);if(c=v,d.free(f),w=f.next_in_index,S=f.avail_in,b=e.bitb,g=e.bitk,h=e.write,T=h<e.read?e.read-h-1:e.end-h,m===0){n=we;break}n=Ge;case Ge:if(e.write=h,c=e.inflate_flush(f,c),h=e.write,T=h<e.read?e.read-h-1:e.end-h,e.read!=e.write)return e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);n=tn;case tn:return c=ne,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);case he:return c=H,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);default:return c=K,e.bitb=b,e.bitk=g,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c)}}},e.free=function(f){e.reset(f,null),e.win=null,y=null},e.set_dictionary=function(f,c,u){e.win.set(f.subarray(c,c+u),0),e.read=e.write=u},e.sync_point=function(){return n==tt?1:0}}const kr=32,Lr=8,vr=0,nn=1,sn=2,rn=3,an=4,on=5,nt=6,Se=7,cn=12,ae=13,Fr=[0,0,255,255];function Mr(){const s=this;s.mode=0,s.method=0,s.was=[0],s.need=0,s.marker=0,s.wbits=0;function t(e){return!e||!e.istate?K:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=Se,e.istate.blocks.reset(e,null),v)}s.inflateEnd=function(e){return s.blocks&&s.blocks.free(e),s.blocks=null,v},s.inflateInit=function(e,n){return e.msg=null,s.blocks=null,n<8||n>15?(s.inflateEnd(e),K):(s.wbits=n,e.istate.blocks=new Dr(e,1<<n),t(e),v)},s.inflate=function(e,n){let i,r;if(!e||!e.istate||!e.next_in)return K;const a=e.istate;for(n=n==xr?se:v,i=se;;)switch(a.mode){case vr:if(e.avail_in===0)return i;if(i=n,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Lr){a.mode=ae,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=ae,e.msg="invalid win size",a.marker=5;break}a.mode=nn;case nn:if(e.avail_in===0)return i;if(i=n,e.avail_in--,e.total_in++,r=e.read_byte(e.next_in_index++)&255,((a.method<<8)+r)%31!==0){a.mode=ae,e.msg="incorrect header check",a.marker=5;break}if((r&kr)===0){a.mode=Se;break}a.mode=sn;case sn:if(e.avail_in===0)return i;i=n,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=rn;case rn:if(e.avail_in===0)return i;i=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=an;case an:if(e.avail_in===0)return i;i=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=on;case on:return e.avail_in===0?i:(i=n,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=nt,yr);case nt:return a.mode=ae,e.msg="need dictionary",a.marker=0,K;case Se:if(i=a.blocks.proc(e,i),i==H){a.mode=ae,a.marker=0;break}if(i==v&&(i=n),i!=ne)return i;i=n,a.blocks.reset(e,a.was),a.mode=cn;case cn:return e.avail_in=0,ne;case ae:return H;default:return K}},s.inflateSetDictionary=function(e,n,i){let r=0,a=i;if(!e||!e.istate||e.istate.mode!=nt)return K;const o=e.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,r=i-a),o.blocks.set_dictionary(n,r,a),o.mode=Se,v},s.inflateSync=function(e){let n,i,r,a,o;if(!e||!e.istate)return K;const l=e.istate;if(l.mode!=ae&&(l.mode=ae,l.marker=0),(n=e.avail_in)===0)return se;for(i=e.next_in_index,r=l.marker;n!==0&&r<4;)e.read_byte(i)==Fr[r]?r++:e.read_byte(i)!==0?r=0:r=4-r,i++,n--;return e.total_in+=i-e.next_in_index,e.next_in_index=i,e.avail_in=n,l.marker=r,r!=4?H:(a=e.total_in,o=e.total_out,t(e),e.total_in=a,e.total_out=o,l.mode=Se,v)},s.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?K:e.istate.blocks.sync_point()}}function Yn(){}Yn.prototype={inflateInit(s){const t=this;return t.istate=new Mr,s||(s=br),t.istate.inflateInit(t,s)},inflate(s){const t=this;return t.istate?t.istate.inflate(t,s):K},inflateEnd(){const s=this;if(!s.istate)return K;const t=s.istate.inflateEnd(s);return s.istate=null,t},inflateSync(){const s=this;return s.istate?s.istate.inflateSync(s):K},inflateSetDictionary(s,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,s,t):K},read_byte(s){return this.next_in[s]},read_buf(s,t){return this.next_in.subarray(s,s+t)}};function Ur(s){const t=this,e=new Yn,n=s&&s.chunkSize?Math.floor(s.chunkSize*2):128*1024,i=Er,r=new Uint8Array(n);let a=!1;e.inflateInit(),e.next_out=r,t.append=function(o,l){const _=[];let d,m,y=0,R=0,A=0;if(o.length!==0){e.next_in_index=0,e.next_in=o,e.avail_in=o.length;do{if(e.next_out_index=0,e.avail_out=n,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),d=e.inflate(i),a&&d===se){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(d!==v&&d!==ne)throw new Error("inflating: "+e.msg);if((a||d===ne)&&e.avail_in===o.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===n?_.push(new Uint8Array(r)):_.push(r.subarray(0,e.next_out_index))),A+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=y&&(l(e.next_in_index),y=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(m=new Uint8Array(A),_.forEach(function(f){m.set(f,R),R+=f.length})):m=_[0]?new Uint8Array(_[0]):new Uint8Array,m}},t.flush=function(){e.inflateEnd()}}const pe=4294967295,le=65535,Wr=8,Hr=0,Br=99,jr=67324752,qn=134695760,Gr=qn,ln=33639248,Yr=101010256,fn=101075792,qr=117853008,te=22,st=20,rt=56,Vr=12,Zr=20,un=4,Kr=1,Xr=39169,$r=10,Jr=1,Qr=21589,zr=28789,ei=25461,ti=6534,dn=1,ni=6,_n=8,hn=2048,pn=16,si=61440,ri=16384,ii=73,mn="/",it=30,ai=10,oi=14,ci=18,j=void 0,de="undefined",De="function";class wn{constructor(t){return class extends TransformStream{constructor(e,n){const i=new t(n);super({transform(r,a){a.enqueue(i.append(r))},flush(r){const a=i.flush();a&&r.enqueue(a)}})}}}}const li=64;let Vn=2;try{typeof navigator!=de&&navigator.hardwareConcurrency&&(Vn=navigator.hardwareConcurrency)}catch{}const fi={chunkSize:512*1024,maxWorkers:Vn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:j,CompressionStreamNative:typeof CompressionStream!=de&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=de&&DecompressionStream},fe=Object.assign({},fi);function Zn(){return fe}function ui(s){return Math.max(s.chunkSize,li)}function Kn(s){const{baseURL:t,chunkSize:e,maxWorkers:n,terminateWorkerTimeout:i,useCompressionStream:r,useWebWorkers:a,Deflate:o,Inflate:l,CompressionStream:_,DecompressionStream:d,workerScripts:m}=s;if(oe("baseURL",t),oe("chunkSize",e),oe("maxWorkers",n),oe("terminateWorkerTimeout",i),oe("useCompressionStream",r),oe("useWebWorkers",a),o&&(fe.CompressionStream=new wn(o)),l&&(fe.DecompressionStream=new wn(l)),oe("CompressionStream",_),oe("DecompressionStream",d),m!==j){const{deflate:y,inflate:R}=m;if((y||R)&&(fe.workerScripts||(fe.workerScripts={})),y){if(!Array.isArray(y))throw new Error("workerScripts.deflate must be an array");fe.workerScripts.deflate=y}if(R){if(!Array.isArray(R))throw new Error("workerScripts.inflate must be an array");fe.workerScripts.inflate=R}}}function oe(s,t){t!==j&&(fe[s]=t)}function di(){return"application/octet-stream"}const Xn=[];for(let s=0;s<256;s++){let t=s;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;Xn[s]=t}class Ze{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let n=0,i=t.length|0;n<i;n++)e=e>>>8^Xn[(e^t[n])&255];this.crc=e}get(){return~this.crc}}class $n extends TransformStream{constructor(){let t;const e=new Ze;super({transform(n,i){e.append(n),i.enqueue(n)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function _i(s){if(typeof TextEncoder==de){s=unescape(encodeURIComponent(s));const t=new Uint8Array(s.length);for(let e=0;e<t.length;e++)t[e]=s.charCodeAt(e);return t}else return new TextEncoder().encode(s)}const Z={concat(s,t){if(s.length===0||t.length===0)return s.concat(t);const e=s[s.length-1],n=Z.getPartial(e);return n===32?s.concat(t):Z._shiftRight(t,n,e|0,s.slice(0,s.length-1))},bitLength(s){const t=s.length;if(t===0)return 0;const e=s[t-1];return(t-1)*32+Z.getPartial(e)},clamp(s,t){if(s.length*32<t)return s;s=s.slice(0,Math.ceil(t/32));const e=s.length;return t=t&31,e>0&&t&&(s[e-1]=Z.partial(t,s[e-1]&2147483648>>t-1,1)),s},partial(s,t,e){return s===32?t:(e?t|0:t<<32-s)+s*1099511627776},getPartial(s){return Math.round(s/1099511627776)||32},_shiftRight(s,t,e,n){for(n===void 0&&(n=[]);t>=32;t-=32)n.push(e),e=0;if(t===0)return n.concat(s);for(let a=0;a<s.length;a++)n.push(e|s[a]>>>t),e=s[a]<<32-t;const i=s.length?s[s.length-1]:0,r=Z.getPartial(i);return n.push(Z.partial(t+r&31,t+r>32?e:n.pop(),1)),n}},Ke={bytes:{fromBits(s){const e=Z.bitLength(s)/8,n=new Uint8Array(e);let i;for(let r=0;r<e;r++)(r&3)===0&&(i=s[r/4]),n[r]=i>>>24,i<<=8;return n},toBits(s){const t=[];let e,n=0;for(e=0;e<s.length;e++)n=n<<8|s[e],(e&3)===3&&(t.push(n),n=0);return e&3&&t.push(Z.partial(8*(e&3),n)),t}}},Jn={};Jn.sha1=class{constructor(s){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],s?(t._h=s._h.slice(0),t._buffer=s._buffer.slice(0),t._length=s._length):t.reset()}reset(){const s=this;return s._h=s._init.slice(0),s._buffer=[],s._length=0,s}update(s){const t=this;typeof s=="string"&&(s=Ke.utf8String.toBits(s));const e=t._buffer=Z.concat(t._buffer,s),n=t._length,i=t._length=n+Z.bitLength(s);if(i>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const r=new Uint32Array(e);let a=0;for(let o=t.blockSize+n-(t.blockSize+n&t.blockSize-1);o<=i;o+=t.blockSize)t._block(r.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const s=this;let t=s._buffer;const e=s._h;t=Z.concat(t,[Z.partial(1,1)]);for(let n=t.length+2;n&15;n++)t.push(0);for(t.push(Math.floor(s._length/4294967296)),t.push(s._length|0);t.length;)s._block(t.splice(0,16));return s.reset(),e}_f(s,t,e,n){if(s<=19)return t&e|~t&n;if(s<=39)return t^e^n;if(s<=59)return t&e|t&n|e&n;if(s<=79)return t^e^n}_S(s,t){return t<<s|t>>>32-s}_block(s){const t=this,e=t._h,n=Array(80);for(let _=0;_<16;_++)n[_]=s[_];let i=e[0],r=e[1],a=e[2],o=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(n[_]=t._S(1,n[_-3]^n[_-8]^n[_-14]^n[_-16]));const d=t._S(5,i)+t._f(_,r,a,o)+l+n[_]+t._key[Math.floor(_/20)]|0;l=o,o=a,a=t._S(30,r),r=i,i=d}e[0]=e[0]+i|0,e[1]=e[1]+r|0,e[2]=e[2]+a|0,e[3]=e[3]+o|0,e[4]=e[4]+l|0}};const Qn={};Qn.aes=class{constructor(s){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],n=t._tables[1],i=s.length;let r,a,o,l=1;if(i!==4&&i!==6&&i!==8)throw new Error("invalid aes key size");for(t._key=[a=s.slice(0),o=[]],r=i;r<4*i+28;r++){let _=a[r-1];(r%i===0||i===8&&r%i===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],r%i===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[r]=a[r-i]^_}for(let _=0;r;_++,r--){const d=a[_&3?r:r-4];r<=4||_<4?o[_]=d:o[_]=n[0][e[d>>>24]]^n[1][e[d>>16&255]]^n[2][e[d>>8&255]]^n[3][e[d&255]]}}encrypt(s){return this._crypt(s,0)}decrypt(s){return this._crypt(s,1)}_precompute(){const s=this._tables[0],t=this._tables[1],e=s[4],n=t[4],i=[],r=[];let a,o,l,_;for(let d=0;d<256;d++)r[(i[d]=d<<1^(d>>7)*283)^d]=d;for(let d=a=0;!e[d];d^=o||1,a=r[a]||1){let m=a^a<<1^a<<2^a<<3^a<<4;m=m>>8^m&255^99,e[d]=m,n[m]=d,_=i[l=i[o=i[d]]];let y=_*16843009^l*65537^o*257^d*16843008,R=i[m]*257^m*16843008;for(let A=0;A<4;A++)s[A][d]=R=R<<24^R>>>8,t[A][m]=y=y<<24^y>>>8}for(let d=0;d<5;d++)s[d]=s[d].slice(0),t[d]=t[d].slice(0)}_crypt(s,t){if(s.length!==4)throw new Error("invalid aes block size");const e=this._key[t],n=e.length/4-2,i=[0,0,0,0],r=this._tables[t],a=r[0],o=r[1],l=r[2],_=r[3],d=r[4];let m=s[0]^e[0],y=s[t?3:1]^e[1],R=s[2]^e[2],A=s[t?1:3]^e[3],f=4,c,u,b;for(let g=0;g<n;g++)c=a[m>>>24]^o[y>>16&255]^l[R>>8&255]^_[A&255]^e[f],u=a[y>>>24]^o[R>>16&255]^l[A>>8&255]^_[m&255]^e[f+1],b=a[R>>>24]^o[A>>16&255]^l[m>>8&255]^_[y&255]^e[f+2],A=a[A>>>24]^o[m>>16&255]^l[y>>8&255]^_[R&255]^e[f+3],f+=4,m=c,y=u,R=b;for(let g=0;g<4;g++)i[t?3&-g:g]=d[m>>>24]<<24^d[y>>16&255]<<16^d[R>>8&255]<<8^d[A&255]^e[f++],c=m,m=y,y=R,R=A,A=c;return i}};const hi={getRandomValues(s){const t=new Uint32Array(s.buffer),e=n=>{let i=987654321;const r=4294967295;return function(){return i=36969*(i&65535)+(i>>16)&r,n=18e3*(n&65535)+(n>>16)&r,(((i<<16)+n&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let n=0,i;n<s.length;n+=4){const r=e((i||Math.random())*4294967296);i=r()*987654071,t[n/4]=r()*4294967296|0}return s}},zn={};zn.ctrGladman=class{constructor(s,t){this._prf=s,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(s){return this.calculate(this._prf,s,this._iv)}incWord(s){if((s>>24&255)===255){let t=s>>16&255,e=s>>8&255,n=s&255;t===255?(t=0,e===255?(e=0,n===255?n=0:++n):++e):++t,s=0,s+=t<<16,s+=e<<8,s+=n}else s+=1<<24;return s}incCounter(s){(s[0]=this.incWord(s[0]))===0&&(s[1]=this.incWord(s[1]))}calculate(s,t,e){let n;if(!(n=t.length))return[];const i=Z.bitLength(t);for(let r=0;r<n;r+=4){this.incCounter(e);const a=s.encrypt(e);t[r]^=a[0],t[r+1]^=a[1],t[r+2]^=a[2],t[r+3]^=a[3]}return Z.clamp(t,i)}};const me={importKey(s){return new me.hmacSha1(Ke.bytes.toBits(s))},pbkdf2(s,t,e,n){if(e=e||1e4,n<0||e<0)throw new Error("invalid params to pbkdf2");const i=(n>>5)+1<<2;let r,a,o,l,_;const d=new ArrayBuffer(i),m=new DataView(d);let y=0;const R=Z;for(t=Ke.bytes.toBits(t),_=1;y<(i||1);_++){for(r=a=s.encrypt(R.concat(t,[_])),o=1;o<e;o++)for(a=s.encrypt(a),l=0;l<a.length;l++)r[l]^=a[l];for(o=0;y<(i||1)&&o<r.length;o++)m.setInt32(y,r[o]),y+=4}return d.slice(0,n/8)}};me.hmacSha1=class{constructor(s){const t=this,e=t._hash=Jn.sha1,n=[[],[]];t._baseHash=[new e,new e];const i=t._baseHash[0].blockSize/32;s.length>i&&(s=new e().update(s).finalize());for(let r=0;r<i;r++)n[0][r]=s[r]^909522486,n[1][r]=s[r]^1549556828;t._baseHash[0].update(n[0]),t._baseHash[1].update(n[1]),t._resultHash=new e(t._baseHash[0])}reset(){const s=this;s._resultHash=new s._hash(s._baseHash[0]),s._updated=!1}update(s){const t=this;t._updated=!0,t._resultHash.update(s)}digest(){const s=this,t=s._resultHash.finalize(),e=new s._hash(s._baseHash[1]).update(t).finalize();return s.reset(),e}encrypt(s){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(s),this.digest(s)}};const pi=typeof crypto!=de&&typeof crypto.getRandomValues==De,Et="Invalid password",xt="Invalid signature",Tt="zipjs-abort-check-password";function es(s){return pi?crypto.getRandomValues(s):hi.getRandomValues(s)}const ge=16,mi="raw",ts={name:"PBKDF2"},wi={name:"HMAC"},gi="SHA-1",bi=Object.assign({hash:wi},ts),dt=Object.assign({iterations:1e3,hash:{name:gi}},ts),yi=["deriveBits"],Ie=[8,12,16],Re=[16,24,32],ce=10,Ei=[0,0,0,0],Je=typeof crypto!=de,ke=Je&&crypto.subtle,ns=Je&&typeof ke!=de,z=Ke.bytes,xi=Qn.aes,Ti=zn.ctrGladman,Si=me.hmacSha1;let gn=Je&&ns&&typeof ke.importKey==De,bn=Je&&ns&&typeof ke.deriveBits==De;class Ri extends TransformStream{constructor({password:t,rawPassword:e,signed:n,encryptionStrength:i,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:is(t,e),signed:n,strength:i-1,pending:new Uint8Array})},async transform(a,o){const l=this,{password:_,strength:d,resolveReady:m,ready:y}=l;_?(await Oi(l,d,_,$(a,0,Ie[d]+2)),a=$(a,Ie[d]+2),r?o.error(new Error(Tt)):m()):await y;const R=new Uint8Array(a.length-ce-(a.length-ce)%ge);o.enqueue(ss(l,a,R,0,ce,!0))},async flush(a){const{signed:o,ctr:l,hmac:_,pending:d,ready:m}=this;if(_&&l){await m;const y=$(d,0,d.length-ce),R=$(d,d.length-ce);let A=new Uint8Array;if(y.length){const f=Ne(z,y);_.update(f);const c=l.update(f);A=Ce(z,c)}if(o){const f=$(Ce(z,_.digest()),0,ce);for(let c=0;c<ce;c++)if(f[c]!=R[c])throw new Error(xt)}a.enqueue(A)}}})}}class Ai extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n}){let i;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:is(t,e),strength:n-1,pending:new Uint8Array})},async transform(r,a){const o=this,{password:l,strength:_,resolveReady:d,ready:m}=o;let y=new Uint8Array;l?(y=await Ii(o,_,l),d()):await m;const R=new Uint8Array(y.length+r.length-r.length%ge);R.set(y,0),a.enqueue(ss(o,r,R,y.length,0))},async flush(r){const{ctr:a,hmac:o,pending:l,ready:_}=this;if(o&&a){await _;let d=new Uint8Array;if(l.length){const m=a.update(Ne(z,l));o.update(m),d=Ce(z,m)}i.signature=Ce(z,o.digest()).slice(0,ce),r.enqueue(St(d,i.signature))}}}),i=this}}function ss(s,t,e,n,i,r){const{ctr:a,hmac:o,pending:l}=s,_=t.length-i;l.length&&(t=St(l,t),e=Pi(e,_-_%ge));let d;for(d=0;d<=_-ge;d+=ge){const m=Ne(z,$(t,d,d+ge));r&&o.update(m);const y=a.update(m);r||o.update(y),e.set(Ce(z,y),d+n)}return s.pending=$(t,d),e}async function Oi(s,t,e,n){const i=await rs(s,t,e,$(n,0,Ie[t])),r=$(n,Ie[t]);if(i[0]!=r[0]||i[1]!=r[1])throw new Error(Et)}async function Ii(s,t,e){const n=es(new Uint8Array(Ie[t])),i=await rs(s,t,e,n);return St(n,i)}async function rs(s,t,e,n){s.password=null;const i=await Ci(mi,e,bi,!1,yi),r=await Ni(Object.assign({salt:n},dt),i,8*(Re[t]*2+2)),a=new Uint8Array(r),o=Ne(z,$(a,0,Re[t])),l=Ne(z,$(a,Re[t],Re[t]*2)),_=$(a,Re[t]*2);return Object.assign(s,{keys:{key:o,authentication:l,passwordVerification:_},ctr:new Ti(new xi(o),Array.from(Ei)),hmac:new Si(l)}),_}async function Ci(s,t,e,n,i){if(gn)try{return await ke.importKey(s,t,e,n,i)}catch{return gn=!1,me.importKey(t)}else return me.importKey(t)}async function Ni(s,t,e){if(bn)try{return await ke.deriveBits(s,t,e)}catch{return bn=!1,me.pbkdf2(t,s.salt,dt.iterations,e)}else return me.pbkdf2(t,s.salt,dt.iterations,e)}function is(s,t){return t===j?_i(s):t}function St(s,t){let e=s;return s.length+t.length&&(e=new Uint8Array(s.length+t.length),e.set(s,0),e.set(t,s.length)),e}function Pi(s,t){if(t&&t>s.length){const e=s;s=new Uint8Array(t),s.set(e,0)}return s}function $(s,t,e){return s.subarray(t,e)}function Ce(s,t){return s.fromBits(t)}function Ne(s,t){return s.toBits(t)}const Oe=12;class Di extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:n}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),as(this,t)},transform(i,r){const a=this;if(a.password){const o=yn(a,i.subarray(0,Oe));if(a.password=null,o.at(-1)!=a.passwordVerification)throw new Error(Et);i=i.subarray(Oe)}n?r.error(new Error(Tt)):r.enqueue(yn(a,i))}})}}class ki extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),as(this,t)},transform(n,i){const r=this;let a,o;if(r.password){r.password=null;const l=es(new Uint8Array(Oe));l[Oe-1]=r.passwordVerification,a=new Uint8Array(n.length+l.length),a.set(En(r,l),0),o=Oe}else a=new Uint8Array(n.length),o=0;a.set(En(r,n),o),i.enqueue(a)}})}}function yn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=os(s)^t[n],Rt(s,e[n]);return e}function En(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=os(s)^t[n],Rt(s,t[n]);return e}function as(s,t){const e=[305419896,591751049,878082192];Object.assign(s,{keys:e,crcKey0:new Ze(e[0]),crcKey2:new Ze(e[2])});for(let n=0;n<t.length;n++)Rt(s,t.charCodeAt(n))}function Rt(s,t){let[e,n,i]=s.keys;s.crcKey0.append([t]),e=~s.crcKey0.get(),n=xn(Math.imul(xn(n+cs(e)),134775813)+1),s.crcKey2.append([n>>>24]),i=~s.crcKey2.get(),s.keys=[e,n,i]}function os(s){const t=s.keys[2]|2;return cs(Math.imul(t,t^1)>>>8)}function cs(s){return s&255}function xn(s){return s&4294967295}const At="Invalid uncompressed size",Tn="deflate-raw";class Li extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:n,CompressionStreamNative:i}){super({});const{compressed:r,encrypted:a,useCompressionStream:o,zipCrypto:l,signed:_,level:d}=t,m=this;let y,R,A=super.readable;(!a||l)&&_&&(y=new $n,A=re(A,y)),r&&(A=fs(A,o,{level:d,chunkSize:e},i,n)),a&&(l?A=re(A,new ki(t)):(R=new Ai(t),A=re(A,R))),ls(m,A,()=>{let f;a&&!l&&(f=R.signature),(!a||l)&&_&&(f=new DataView(y.value.buffer).getUint32(0)),m.signature=f})}}class vi extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:n,DecompressionStreamNative:i}){super({});const{zipCrypto:r,encrypted:a,signed:o,signature:l,compressed:_,useCompressionStream:d}=t;let m,y,R=super.readable;a&&(r?R=re(R,new Di(t)):(y=new Ri(t),R=re(R,y))),_&&(R=fs(R,d,{chunkSize:e},i,n)),(!a||r)&&o&&(m=new $n,R=re(R,m)),ls(this,R,()=>{if((!a||r)&&o){const A=new DataView(m.value.buffer);if(l!=A.getUint32(0,!1))throw new Error(xt)}})}}function ls(s,t,e){t=re(t,new TransformStream({flush:e})),Object.defineProperty(s,"readable",{get(){return t}})}function fs(s,t,e,n,i){try{const r=t&&n?n:i;s=re(s,new r(Tn,e))}catch(r){if(t)s=re(s,new i(Tn,e));else throw r}return s}function re(s,t){return s.pipeThrough(t)}const Fi="message",Mi="start",Ui="pull",Sn="data",Wi="ack",Rn="close",Hi="deflate",us="inflate";class Bi extends TransformStream{constructor(t,e){super({});const n=this,{codecType:i}=t;let r;i.startsWith(Hi)?r=Li:i.startsWith(us)&&(r=vi),n.outputSize=0;let a=0;const o=new r(t,e),l=super.readable,_=new TransformStream({transform(m,y){m&&m.length&&(a+=m.length,y.enqueue(m))},flush(){Object.assign(n,{inputSize:a})}}),d=new TransformStream({transform(m,y){if(m&&m.length&&(y.enqueue(m),n.outputSize+=m.length,t.outputSize&&n.outputSize>t.outputSize))throw new Error(At)},flush(){const{signature:m}=o;Object.assign(n,{signature:m,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return l.pipeThrough(_).pipeThrough(o).pipeThrough(d)}})}}class ji extends TransformStream{constructor(t){let e;super({transform:n,flush(i){e&&e.length&&i.enqueue(e)}});function n(i,r){if(e){const a=new Uint8Array(e.length+i.length);a.set(e),a.set(i,e.length),i=a,e=null}i.length>t?(r.enqueue(i.slice(0,t)),n(i.slice(t),r)):e=i}}}let ds=typeof Worker!=de;class at{constructor(t,{readable:e,writable:n},{options:i,config:r,streamOptions:a,useWebWorkers:o,transferStreams:l,scripts:_},d){const{signal:m}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new ji(r.chunkSize)).pipeThrough(new Gi(a),{signal:m}),writable:n,options:Object.assign({},i),scripts:_,transferStreams:l,terminate(){return new Promise(y=>{const{worker:R,busy:A}=t;R?(A?t.resolveTerminated=y:(R.terminate(),y()),t.interface=null):y()})},onTaskFinished(){const{resolveTerminated:y}=t;y&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),y()),t.busy=!1,d(t)}}),(o&&ds?Yi:_s)(t,r)}}class Gi extends TransformStream{constructor({onstart:t,onprogress:e,size:n,onend:i}){let r=0;super({async start(){t&&await ot(t,n)},async transform(a,o){r+=a.length,e&&await ot(e,r,n),o.enqueue(a)},async flush(){i&&await ot(i,r)}})}}async function ot(s,...t){try{await s(...t)}catch{}}function _s(s,t){return{run:()=>qi(s,t)}}function Yi(s,t){const{baseURL:e,chunkSize:n}=t;if(!s.interface){let i;try{i=Ki(s.scripts[0],e,s)}catch{return ds=!1,_s(s,t)}Object.assign(s,{worker:i,interface:{run:()=>Vi(s,{chunkSize:n})}})}return s.interface}async function qi({options:s,readable:t,writable:e,onTaskFinished:n},i){let r;try{r=new Bi(s,i),await t.pipeThrough(r).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:o,outputSize:l}=r;return{signature:a,inputSize:o,outputSize:l}}catch(a){throw r&&(a.outputSize=r.outputSize),a}finally{n()}}async function Vi(s,t){let e,n;const i=new Promise((y,R)=>{e=y,n=R});Object.assign(s,{reader:null,writer:null,resolveResult:e,rejectResult:n,result:i});const{readable:r,options:a,scripts:o}=s,{writable:l,closed:_}=Zi(s.writable),d=Ye({type:Mi,scripts:o.slice(1),options:a,config:t,readable:r,writable:l},s);d||Object.assign(s,{reader:r.getReader(),writer:l.getWriter()});const m=await i;return d||await l.getWriter().close(),await _,m}function Zi(s){let t;const e=new Promise(i=>t=i);return{writable:new WritableStream({async write(i){const r=s.getWriter();await r.ready,await r.write(i),r.releaseLock()},close(){t()},abort(i){return s.getWriter().abort(i)}}),closed:e}}let An=!0,On=!0;function Ki(s,t,e){const n={type:"module"};let i,r;typeof s==De&&(s=s());try{i=new URL(s,t)}catch{i=s}if(An)try{r=new Worker(i)}catch{An=!1,r=new Worker(i,n)}else r=new Worker(i,n);return r.addEventListener(Fi,a=>Xi(a,e)),r}function Ye(s,{worker:t,writer:e,onTaskFinished:n,transferStreams:i}){try{const{value:r,readable:a,writable:o}=s,l=[];if(r&&(r.byteLength<r.buffer.byteLength?s.value=r.buffer.slice(0,r.byteLength):s.value=r.buffer,l.push(s.value)),i&&On?(a&&l.push(a),o&&l.push(o)):s.readable=s.writable=null,l.length)try{return t.postMessage(s,l),!0}catch{On=!1,s.readable=s.writable=null,t.postMessage(s)}else t.postMessage(s)}catch(r){throw e&&e.releaseLock(),n(),r}}async function Xi({data:s},t){const{type:e,value:n,messageId:i,result:r,error:a}=s,{reader:o,writer:l,resolveResult:_,rejectResult:d,onTaskFinished:m}=t;try{if(a){const{message:R,stack:A,code:f,name:c,outputSize:u}=a,b=new Error(R);Object.assign(b,{stack:A,code:f,name:c,outputSize:u}),y(b)}else{if(e==Ui){const{value:R,done:A}=await o.read();Ye({type:Sn,value:R,done:A,messageId:i},t)}e==Sn&&(await l.ready,await l.write(new Uint8Array(n)),Ye({type:Wi,messageId:i},t)),e==Rn&&y(null,r)}}catch(R){Ye({type:Rn,messageId:i},t),y(R)}function y(R,A){R?d(R):_(A),l&&l.releaseLock(),m()}}let ue=[];const ct=[];let In=0;async function $i(s,t){const{options:e,config:n}=t,{transferStreams:i,useWebWorkers:r,useCompressionStream:a,codecType:o,compressed:l,signed:_,encrypted:d}=e,{workerScripts:m,maxWorkers:y}=n;t.transferStreams=i||i===j;const R=!l&&!_&&!d&&!t.transferStreams;return t.useWebWorkers=!R&&(r||r===j&&n.useWebWorkers),t.scripts=t.useWebWorkers&&m?m[o]:[],e.useCompressionStream=a||a===j&&n.useCompressionStream,(await A()).run();async function A(){const c=ue.find(u=>!u.busy);if(c)return _t(c),new at(c,s,t,f);if(ue.length<y){const u={indexWorker:In};return In++,ue.push(u),new at(u,s,t,f)}else return new Promise(u=>ct.push({resolve:u,stream:s,workerOptions:t}))}function f(c){if(ct.length){const[{resolve:u,stream:b,workerOptions:g}]=ct.splice(0,1);u(new at(c,b,g,f))}else c.worker?(_t(c),Ji(c,t)):ue=ue.filter(u=>u!=c)}}function Ji(s,t){const{config:e}=t,{terminateWorkerTimeout:n}=e;Number.isFinite(n)&&n>=0&&(s.terminated?s.terminated=!1:s.terminateTimeout=setTimeout(async()=>{ue=ue.filter(i=>i!=s);try{await s.terminate()}catch{}},n))}function _t(s){const{terminateTimeout:t}=s;t&&(clearTimeout(t),s.terminateTimeout=null)}async function Qi(){await Promise.allSettled(ue.map(s=>(_t(s),s.terminate())))}const hs="HTTP error ",Le="HTTP Range not supported",ps="Writer iterator completed too soon",ms="Writer not initialized",zi="text/plain",ea="Content-Length",ta="Content-Range",na="Accept-Ranges",sa="Range",ra="Content-Type",ia="HEAD",Ot="GET",ws="bytes",aa=64*1024,It="writable";class Qe{constructor(){this.size=0}init(){this.initialized=!0}}class _e extends Qe{get readable(){const t=this,{chunkSize:e=aa}=t,n=new ReadableStream({start(){this.chunkOffset=0},async pull(i){const{offset:r=0,size:a,diskNumberStart:o}=n,{chunkOffset:l}=this,_=a===j?e:Math.min(e,a-l),d=await G(t,r+l,_,o);i.enqueue(d),l+e>a||a===j&&!d.length&&_?i.close():this.chunkOffset+=e}});return n}}class Ct extends Qe{constructor(){super();const t=this,e=new WritableStream({write(n){if(!t.initialized)throw new Error(ms);return t.writeUint8Array(n)}});Object.defineProperty(t,It,{get(){return e}})}writeUint8Array(){}}class oa extends _e{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const n=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:n,size:Math.floor((e-n)*.75)})}readUint8Array(t,e){const{dataStart:n,dataURI:i}=this,r=new Uint8Array(e),a=Math.floor(t/3)*4,o=atob(i.substring(a+n,Math.ceil((t+e)/3)*4+n)),l=t-Math.floor(a/4)*3;let _=0;for(let d=l;d<l+e&&d<o.length;d++)r[d-l]=o.charCodeAt(d),_++;return _<r.length?r.subarray(0,_):r}}class ca extends Ct{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let n=0,i=e.pending;const r=e.pending.length;for(e.pending="",n=0;n<Math.floor((r+t.length)/3)*3-r;n++)i+=String.fromCharCode(t[n]);for(;n<t.length;n++)e.pending+=String.fromCharCode(t[n]);i.length&&(i.length>2?e.data+=btoa(i):e.pending+=i)}getData(){return this.data+btoa(this.pending)}}class Nt extends _e{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const n=this,i=t+e;let a=await(t||i<n.size?n.blob.slice(t,i):n.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,i)),new Uint8Array(a)}}class gs extends Qe{constructor(t){super();const e=this,n=new TransformStream,i=[];t&&i.push([ra,t]),Object.defineProperty(e,It,{get(){return n.writable}}),e.blob=new Response(n.readable,{headers:i}).blob()}getData(){return this.blob}}class la extends Nt{constructor(t){super(new Blob([t],{type:zi}))}}class fa extends gs{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,n=await super.getData();if(n.text&&e)return n.text();{const i=new FileReader;return new Promise((r,a)=>{Object.assign(i,{onload:({target:o})=>r(o.result),onerror:()=>a(i.error)}),i.readAsText(n,t)})}}}class ua extends _e{constructor(t,e){super(),bs(this,t,e)}async init(){await ys(this,ht,Cn),super.init()}readUint8Array(t,e){return Es(this,t,e,ht,Cn)}}class da extends _e{constructor(t,e){super(),bs(this,t,e)}async init(){await ys(this,pt,Nn),super.init()}readUint8Array(t,e){return Es(this,t,e,pt,Nn)}}function bs(s,t,e){const{preventHeadRequest:n,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(s,{url:t,options:e,preventHeadRequest:n,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:a})}async function ys(s,t,e){const{url:n,preventHeadRequest:i,useRangeHeader:r,forceRangeRequests:a,combineSizeEocd:o}=s;if(ma(n)&&(r||a)&&(typeof i>"u"||i)){const l=await t(Ot,s,xs(s,o?-te:void 0));if(!a&&l.headers.get(na)!=ws)throw new Error(Le);{o&&(s.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const d=l.headers.get(ta);if(d){const m=d.trim().split(/\s*\/\s*/);if(m.length){const y=m[1];y&&y!="*"&&(_=Number(y))}}_===j?await Pn(s,t,e):s.size=_}}else await Pn(s,t,e)}async function Es(s,t,e,n,i){const{useRangeHeader:r,forceRangeRequests:a,eocdCache:o,size:l,options:_}=s;if(r||a){if(o&&t==l-te&&e==te)return o;if(t>=l)return new Uint8Array;{t+e>l&&(e=l-t);const d=await n(Ot,s,xs(s,t,e));if(d.status!=206)throw new Error(Le);return new Uint8Array(await d.arrayBuffer())}}else{const{data:d}=s;return d||await i(s,_),new Uint8Array(s.data.subarray(t,t+e))}}function xs(s,t=0,e=1){return Object.assign({},Pt(s),{[sa]:ws+"="+(t<0?t:t+"-"+(t+e-1))})}function Pt({options:s}){const{headers:t}=s;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function Cn(s){await Ts(s,ht)}async function Nn(s){await Ts(s,pt)}async function Ts(s,t){const e=await t(Ot,s,Pt(s));s.data=new Uint8Array(await e.arrayBuffer()),s.size||(s.size=s.data.length)}async function Pn(s,t,e){if(s.preventHeadRequest)await e(s,s.options);else{const i=(await t(ia,s,Pt(s))).headers.get(ea);i?s.size=Number(i):await e(s,s.options)}}async function ht(s,{options:t,url:e},n){const i=await fetch(e,Object.assign({},t,{method:s,headers:n}));if(i.status<400)return i;throw i.status==416?new Error(Le):new Error(hs+(i.statusText||i.status))}function pt(s,{url:t},e){return new Promise((n,i)=>{const r=new XMLHttpRequest;if(r.addEventListener("load",()=>{if(r.status<400){const a=[];r.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(o=>{const l=o.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),n({status:r.status,arrayBuffer:()=>r.response,headers:new Map(a)})}else i(r.status==416?new Error(Le):new Error(hs+(r.statusText||r.status)))},!1),r.addEventListener("error",a=>i(a.detail?a.detail.error:new Error("Network error")),!1),r.open(s,t),e)for(const a of Object.entries(e))r.setRequestHeader(a[0],a[1]);r.responseType="arraybuffer",r.send()})}class Ss extends _e{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new da(t,e):new ua(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class _a extends Ss{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class ha extends _e{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class pa extends Ct{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const n=e.array;e.array=new Uint8Array(n.length+t.length),e.array.set(n)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class Dt extends _e{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(n,i)=>{await n.init(),i!=e.length-1&&(t.lastDiskOffset+=n.size),t.size+=n.size})),super.init()}async readUint8Array(t,e,n=0){const i=this,{readers:r}=this;let a,o=n;o==-1&&(o=r.length-1);let l=t;for(;r[o]&&l>=r[o].size;)l-=r[o].size,o++;const _=r[o];if(_){const d=_.size;if(l+e<=d)a=await G(_,l,e);else{const m=d-l;a=new Uint8Array(e);const y=await G(_,l,m);a.set(y,0);const R=await i.readUint8Array(t+m,e-m,n);a.set(R,m),y.length+R.length<e&&(a=a.subarray(0,y.length+R.length))}}else a=new Uint8Array;return i.lastDiskNumber=Math.max(o,i.lastDiskNumber),a}}class Xe extends Qe{constructor(t,e=4294967295){super();const n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let i,r,a;const o=new WritableStream({async write(d){const{availableSize:m}=n;if(a)d.length>=m?(await l(d.subarray(0,m)),await _(),n.diskOffset+=i.size,n.diskNumber++,a=null,await this.write(d.subarray(m))):await l(d);else{const{value:y,done:R}=await t.next();if(R&&!y)throw new Error(ps);i=y,i.size=0,i.maxSize&&(n.maxSize=i.maxSize),n.availableSize=n.maxSize,await Pe(i),r=y.writable,a=r.getWriter(),await this.write(d)}},async close(){await a.ready,await _()}});Object.defineProperty(n,It,{get(){return o}});async function l(d){const m=d.length;m&&(await a.ready,await a.write(d),i.size+=m,n.size+=m,n.availableSize-=m)}async function _(){await a.close()}}}class Rs{constructor(t){return Array.isArray(t)&&(t=new Dt(t)),t instanceof ReadableStream&&(t={readable:t}),t}}class As{constructor(t){return t.writable===j&&typeof t.next==De&&(t=new Xe(t)),t instanceof WritableStream&&(t={writable:t}),t.size===j&&(t.size=0),t instanceof Xe||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}}function ma(s){const{baseURL:t}=Zn(),{protocol:e}=new URL(s,t);return e=="http:"||e=="https:"}async function Pe(s,t){if(s.init&&!s.initialized)await s.init(t);else return Promise.resolve()}function G(s,t,e,n){return s.readUint8Array(t,e,n)}const wa=Dt,ga=Xe,Os="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),ba=Os.length==256;function ya(s){if(ba){let t="";for(let e=0;e<s.length;e++)t+=Os[s[e]];return t}else return new TextDecoder().decode(s)}function qe(s,t){return t&&t.trim().toLowerCase()=="cp437"?ya(s):new TextDecoder(t).decode(s)}const Is="filename",Cs="rawFilename",Ns="comment",Ps="rawComment",Ds="uncompressedSize",ks="compressedSize",Ls="offset",mt="diskNumberStart",wt="lastModDate",gt="rawLastModDate",vs="lastAccessDate",Ea="rawLastAccessDate",Fs="creationDate",xa="rawCreationDate",Ta="internalFileAttribute",Sa="internalFileAttributes",Ra="externalFileAttribute",Aa="externalFileAttributes",Oa="msDosCompatible",Ia="zip64",Ca="encrypted",Na="version",Pa="versionMadeBy",Da="zipCrypto",ka="directory",La="executable",va="compressionMethod",Fa="signature",Ma="extraField",Ua=[Is,Cs,ks,Ds,wt,gt,Ns,Ps,vs,Fs,Ls,mt,mt,Ta,Sa,Ra,Aa,Oa,Ia,Ca,Na,Pa,Da,ka,La,va,Fa,Ma,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Dn{constructor(t){Ua.forEach(e=>this[e]=t[e])}}const Wa="filenameEncoding",Ha="commentEncoding",Ba="decodeText",ja="extractPrependedData",Ga="extractAppendedData",Ya="password",qa="rawPassword",Va="passThrough",Za="signal",Ka="checkPasswordOnly",Xa="checkOverlappingEntryOnly",$a="checkOverlappingEntry",Ja="checkSignature",Qa="useWebWorkers",za="useCompressionStream",eo="transferStreams",to="preventClose",Ve="File format is not recognized",Ms="End of central directory not found",Us="End of Zip64 central directory locator not found",Ws="Central directory header not found",Hs="Local file header not found",Bs="Zip64 extra field not found",js="File contains encrypted entry",Gs="Encryption method not supported",bt="Compression method not supported",yt="Split zip file",Ys="Overlapping entry found",kn="utf-8",Ln="cp437",no=[[Ds,pe],[ks,pe],[Ls,pe],[mt,le]],so={[le]:{getValue:W,bytes:4},[pe]:{getValue:ye,bytes:8}};class qs{constructor(t,e={}){Object.assign(this,{reader:new Rs(t),options:e,config:Zn(),readRanges:[]})}async*getEntriesGenerator(t={}){const e=this;let{reader:n}=e;const{config:i}=e;if(await Pe(n),(n.size===j||!n.readUint8Array)&&(n=new Nt(await new Response(n.readable).blob()),await Pe(n)),n.size<te)throw new Error(Ve);n.chunkSize=ui(i);const r=await uo(n,Yr,n.size,te,le*16);if(!r){const x=await G(n,0,4),p=B(x);throw W(p)==qn?new Error(yt):new Error(Ms)}const a=B(r);let o=W(a,12),l=W(a,16);const _=r.offset,d=Y(a,20),m=_+te+d;let y=Y(a,4);const R=n.lastDiskNumber||0;let A=Y(a,6),f=Y(a,8),c=0,u=0;if(l==pe||o==pe||f==le||A==le){const x=await G(n,r.offset-st,st),p=B(x);if(W(p,0)==qr){l=ye(p,8);let C=await G(n,l,rt,-1),I=B(C);const k=r.offset-st-rt;if(W(I,0)!=fn&&l!=k){const N=l;l=k,l>N&&(c=l-N),C=await G(n,l,rt,-1),I=B(C)}if(W(I,0)!=fn)throw new Error(Us);y==le&&(y=W(I,16)),A==le&&(A=W(I,20)),f==le&&(f=ye(I,32)),o==pe&&(o=ye(I,40)),l-=o}}if(l>=n.size&&(c=n.size-l-o-te,l=n.size-o-te),R!=y)throw new Error(yt);if(l<0)throw new Error(Ve);let b=0,g=await G(n,l,o,A),w=B(g);if(o){const x=r.offset-o;if(W(w,b)!=ln&&l!=x){const p=l;l=x,l>p&&(c+=l-p),g=await G(n,l,o,A),w=B(g)}}const S=r.offset-l-(n.lastDiskOffset||0);if(o!=S&&S>=0&&(o=S,g=await G(n,l,o,A),w=B(g)),l<0||l>=n.size)throw new Error(Ve);const h=q(e,t,Wa),T=q(e,t,Ha);for(let x=0;x<f;x++){const p=new io(n,i,e.options);if(W(w,b)!=ln)throw new Error(Ws);Vs(p,w,b+6);const C=!!p.bitFlag.languageEncodingFlag,I=b+46,k=I+p.filenameLength,N=k+p.extraFieldLength,D=Y(w,b+4),M=D>>8==0,L=D>>8==3,V=g.subarray(I,k),P=Y(w,b+32),J=N+P,F=g.subarray(N,J),U=C,ve=C,xe=W(w,b+38),ee=M&&(be(w,b+38)&pn)==pn||L&&(xe>>16&si)==ri||V.length&&V.at(-1)==mn.charCodeAt(0),Q=L&&(xe>>16&ii)!=0,kt=W(w,b+42)+c;Object.assign(p,{versionMadeBy:D,msDosCompatible:M,compressedSize:0,uncompressedSize:0,commentLength:P,directory:ee,offset:kt,diskNumberStart:Y(w,b+34),internalFileAttributes:Y(w,b+36),externalFileAttributes:xe,rawFilename:V,filenameUTF8:U,commentUTF8:ve,rawExtraField:g.subarray(k,N),executable:Q}),p.internalFileAttribute=p.internalFileAttributes,p.externalFileAttribute=p.externalFileAttributes;const Lt=q(e,t,Ba)||qe,vt=U?kn:h||Ln,Ft=ve?kn:T||Ln;let Fe=Lt(V,vt);Fe===j&&(Fe=qe(V,vt));let ze=Lt(F,Ft);ze===j&&(ze=qe(F,Ft)),Object.assign(p,{rawComment:F,filename:Fe,comment:ze,directory:ee||Fe.endsWith(mn)}),u=Math.max(kt,u),Zs(p,p,w,b+6),p.zipCrypto=p.encrypted&&!p.extraFieldAES;const Te=new Dn(p);Te.getData=(Me,Ue)=>p.getData(Me,Te,e.readRanges,Ue),Te.arrayBuffer=async Me=>{const Ue=new TransformStream,[Xs]=await Promise.all([new Response(Ue.readable).arrayBuffer(),p.getData(Ue,Te,e.readRanges,Me)]);return Xs},b=J;const{onprogress:Mt}=t;if(Mt)try{await Mt(x+1,f,new Dn(p))}catch{}yield Te}const E=q(e,t,ja),O=q(e,t,Ga);return E&&(e.prependedData=u>0?await G(n,0,u):new Uint8Array),e.comment=d?await G(n,_+te,d):new Uint8Array,O&&(e.appendedData=m<n.size?await G(n,m,n.size-m):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){}}class ro{constructor(t={}){const{readable:e,writable:n}=new TransformStream,i=new qs(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(r){const{done:a,value:o}=await i.next();if(a)return r.close();const l={...o,readable:(function(){const{readable:_,writable:d}=new TransformStream;if(o.getData)return o.getData(d),_})()};delete l.getData,r.enqueue(l)}}),this.writable=n}}class io{constructor(t,e,n){Object.assign(this,{reader:t,config:e,options:n})}async getData(t,e,n,i={}){const r=this,{reader:a,offset:o,diskNumberStart:l,extraFieldAES:_,extraFieldZip64:d,compressionMethod:m,config:y,bitFlag:R,signature:A,rawLastModDate:f,uncompressedSize:c,compressedSize:u}=r,{dataDescriptor:b}=R,g=e.localDirectory={},w=await G(a,o,it,l),S=B(w);let h=q(r,i,Ya),T=q(r,i,qa);const E=q(r,i,Va);if(h=h&&h.length&&h,T=T&&T.length&&T,_&&_.originalCompressionMethod!=Br)throw new Error(bt);if(m!=Hr&&m!=Wr&&!E)throw new Error(bt);if(W(S,0)!=jr)throw new Error(Hs);Vs(g,S,4);const{extraFieldLength:O,filenameLength:x,lastAccessDate:p,creationDate:C}=g;g.rawExtraField=O?await G(a,o+it+x,O,l):new Uint8Array,Zs(r,g,S,4,!0),Object.assign(e,{lastAccessDate:p,creationDate:C});const I=r.encrypted&&g.encrypted&&!E,k=I&&!_;if(E||(e.zipCrypto=k),I){if(!k&&_.strength===j)throw new Error(Gs);if(!h&&!T)throw new Error(js)}const N=o+it+x+O,D=u,M=a.readable;Object.assign(M,{diskNumberStart:l,offset:N,size:D});const L=q(r,i,Za),V=q(r,i,Ka);let P=q(r,i,$a);const J=q(r,i,Xa);J&&(P=!0);const{onstart:F,onprogress:U,onend:ve}=i,xe={options:{codecType:us,password:h,rawPassword:T,zipCrypto:k,encryptionStrength:_&&_.strength,signed:q(r,i,Ja)&&!E,passwordVerification:k&&(b?f>>>8&255:A>>>24&255),outputSize:c,signature:A,compressed:m!=0&&!E,encrypted:r.encrypted&&!E,useWebWorkers:q(r,i,Qa),useCompressionStream:q(r,i,za),transferStreams:q(r,i,eo),checkPasswordOnly:V},config:y,streamOptions:{signal:L,size:D,onstart:F,onprogress:U,onend:ve}};P&&await fo({reader:a,fileEntry:e,offset:o,diskNumberStart:l,signature:A,compressedSize:u,uncompressedSize:c,dataOffset:N,dataDescriptor:b||g.bitFlag.dataDescriptor,extraFieldZip64:d||g.extraFieldZip64,readRanges:n});let ee;try{if(!J){V&&(t=new WritableStream),t=new As(t),await Pe(t,E?u:c),{writable:ee}=t;const{outputSize:Q}=await $i({readable:M,writable:ee},xe);if(t.size+=Q,Q!=(E?u:c))throw new Error(At)}}catch(Q){if(Q.outputSize!==j&&(t.size+=Q.outputSize),!V||Q.message!=Tt)throw Q}finally{!q(r,i,to)&&ee&&!ee.locked&&await ee.getWriter().close()}return V||J?j:t.getData?t.getData():ee}}function Vs(s,t,e){const n=s.rawBitFlag=Y(t,e+2),i=(n&dn)==dn,r=W(t,e+6);Object.assign(s,{encrypted:i,version:Y(t,e),bitFlag:{level:(n&ni)>>1,dataDescriptor:(n&_n)==_n,languageEncodingFlag:(n&hn)==hn},rawLastModDate:r,lastModDate:_o(r),filenameLength:Y(t,e+22),extraFieldLength:Y(t,e+24)})}function Zs(s,t,e,n,i){const{rawExtraField:r}=t,a=t.extraField=new Map,o=B(new Uint8Array(r));let l=0;try{for(;l<r.length;){const u=Y(o,l),b=Y(o,l+2);a.set(u,{type:u,data:r.slice(l+4,l+4+b)}),l+=4+b}}catch{}const _=Y(e,n+4);Object.assign(t,{signature:W(e,n+ai),compressedSize:W(e,n+oi),uncompressedSize:W(e,n+ci)});const d=a.get(Kr);d&&(ao(d,t),t.extraFieldZip64=d);const m=a.get(zr);m&&(vn(m,Is,Cs,t,s),t.extraFieldUnicodePath=m);const y=a.get(ei);y&&(vn(y,Ns,Ps,t,s),t.extraFieldUnicodeComment=y);const R=a.get(Xr);R?(oo(R,t,_),t.extraFieldAES=R):t.compressionMethod=_;const A=a.get($r);A&&(co(A,t),t.extraFieldNTFS=A);const f=a.get(Qr);f&&(lo(f,t,i),t.extraFieldExtendedTimestamp=f);const c=a.get(ti);c&&(t.extraFieldUSDZ=c)}function ao(s,t){t.zip64=!0;const e=B(s.data),n=no.filter(([i,r])=>t[i]==r);for(let i=0,r=0;i<n.length;i++){const[a,o]=n[i];if(t[a]==o){const l=so[o];t[a]=s[a]=l.getValue(e,r),r+=l.bytes}else if(s[a])throw new Error(Bs)}}function vn(s,t,e,n,i){const r=B(s.data),a=new Ze;a.append(i[e]);const o=B(new Uint8Array(4));o.setUint32(0,a.get(),!0);const l=W(r,1);Object.assign(s,{version:be(r,0),[t]:qe(s.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&l==W(o,0)}),s.valid&&(n[t]=s[t],n[t+"UTF8"]=!0)}function oo(s,t,e){const n=B(s.data),i=be(n,4);Object.assign(s,{vendorVersion:be(n,0),vendorId:be(n,2),strength:i,originalCompressionMethod:e,compressionMethod:Y(n,5)}),t.compressionMethod=s.compressionMethod}function co(s,t){const e=B(s.data);let n=4,i;try{for(;n<s.data.length&&!i;){const r=Y(e,n),a=Y(e,n+2);r==Jr&&(i=s.data.slice(n+4,n+4+a)),n+=4+a}}catch{}try{if(i&&i.length==24){const r=B(i),a=r.getBigUint64(0,!0),o=r.getBigUint64(8,!0),l=r.getBigUint64(16,!0);Object.assign(s,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:l});const _=lt(a),d=lt(o),m=lt(l),y={lastModDate:_,lastAccessDate:d,creationDate:m};Object.assign(s,y),Object.assign(t,y)}}catch{}}function lo(s,t,e){const n=B(s.data),i=be(n,0),r=[],a=[];e?((i&1)==1&&(r.push(wt),a.push(gt)),(i&2)==2&&(r.push(vs),a.push(Ea)),(i&4)==4&&(r.push(Fs),a.push(xa))):s.data.length>=5&&(r.push(wt),a.push(gt));let o=1;r.forEach((l,_)=>{if(s.data.length>=o+4){const d=W(n,o);t[l]=s[l]=new Date(d*1e3);const m=a[_];s[m]=d}o+=4})}async function fo({reader:s,fileEntry:t,offset:e,diskNumberStart:n,signature:i,compressedSize:r,uncompressedSize:a,dataOffset:o,dataDescriptor:l,extraFieldZip64:_,readRanges:d}){let m=0;if(n)for(let A=0;A<n;A++){const f=s.readers[A];m+=f.size}let y=0;if(l&&(_?y=Zr:y=Vr),y){const A=await G(s,o+r,y+un,n);if(W(B(A),0)==Gr){const c=W(B(A),4);let u,b;_?(u=ye(B(A),8),b=ye(B(A),16)):(u=W(B(A),8),b=W(B(A),12)),(t.encrypted&&!t.zipCrypto||c==i)&&u==r&&b==a&&(y+=un)}}const R={start:m+e,end:m+o+r+y,fileEntry:t};for(const A of d)if(A.fileEntry!=t&&R.start>=A.start&&R.start<A.end){const f=new Error(Ys);throw f.overlappingEntry=A.fileEntry,f}d.push(R)}async function uo(s,t,e,n,i){const r=new Uint8Array(4),a=B(r);ho(a,0,t);const o=n+i;return await l(n)||await l(Math.min(o,e));async function l(_){const d=e-_,m=await G(s,d,_);for(let y=m.length-n;y>=0;y--)if(m[y]==r[0]&&m[y+1]==r[1]&&m[y+2]==r[2]&&m[y+3]==r[3])return{offset:d+y,buffer:m.slice(y,y+n).buffer}}}function q(s,t,e){return t[e]===j?s.options[e]:t[e]}function _o(s){const t=(s&4294901760)>>16,e=s&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function lt(s){return new Date(Number(s/BigInt(1e4)-BigInt(116444736e5)))}function be(s,t){return s.getUint8(t)}function Y(s,t){return s.getUint16(t,!0)}function W(s,t){return s.getUint32(t,!0)}function ye(s,t){return Number(s.getBigUint64(t,!0))}function ho(s,t,e){s.setUint32(t,e,!0)}function B(s){return new DataView(s.buffer)}Kn({Inflate:Ur});const po=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Nt,BlobWriter:gs,Data64URIReader:oa,Data64URIWriter:ca,ERR_BAD_FORMAT:Ve,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ws,ERR_ENCRYPTED:js,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Us,ERR_EOCDR_NOT_FOUND:Ms,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Bs,ERR_HTTP_RANGE:Le,ERR_INVALID_PASSWORD:Et,ERR_INVALID_SIGNATURE:xt,ERR_INVALID_UNCOMPRESSED_SIZE:At,ERR_ITERATOR_COMPLETED_TOO_SOON:ps,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Hs,ERR_OVERLAPPING_ENTRY:Ys,ERR_SPLIT_ZIP_FILE:yt,ERR_UNSUPPORTED_COMPRESSION:bt,ERR_UNSUPPORTED_ENCRYPTION:Gs,ERR_WRITER_NOT_INITIALIZED:ms,GenericReader:Rs,GenericWriter:As,HttpRangeReader:_a,HttpReader:Ss,Reader:_e,SplitDataReader:Dt,SplitDataWriter:Xe,SplitZipReader:wa,SplitZipWriter:ga,TextReader:la,TextWriter:fa,Uint8ArrayReader:ha,Uint8ArrayWriter:pa,Writer:Ct,ZipReader:qs,ZipReaderStream:ro,configure:Kn,getMimeType:di,initStream:Pe,readUint8Array:G,terminateWorkers:Qi},Symbol.toStringTag,{value:"Module"})),Ae=po;class mo{constructor(t,e){We(this,"_zipReader");We(this,"_entriesPromise");Ae.configure({baseURL:self.location.href}),this._zipReader=new Ae.ZipReader(new Ae.HttpReader(this._resolveTraceURI(t),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:e}).then(n=>{const i=new Map;for(const r of n)i.set(r.filename,r);return i})}_resolveTraceURI(t){return t.startsWith("https://www.dropbox.com/")?"https://dl.dropboxusercontent.com/"+t.substring(24):t}isLive(){return!1}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var r;const n=(await this._entriesPromise).get(t);if(!n)return;const i=new Ae.TextWriter;return await((r=n.getData)==null?void 0:r.call(n,i)),i.getData()}async readBlob(t){const n=(await this._entriesPromise).get(t);if(!n)return;const i=new Ae.BlobWriter;return await n.getData(i),i.getData()}}class wo{constructor(t){We(this,"_entriesPromise");this._entriesPromise=this._readFile(t).then(async e=>{if(!e)throw new Error("File not found");const n=await e.json(),i=new Map;for(const r of n.entries)i.set(r.name,r.path);return i})}isLive(){return!0}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const n=(await this._entriesPromise).get(t);if(n)return this._readFile(n)}async _readFile(t){const e=await fetch(t);if(e.status!==404)return e}}self.addEventListener("install",function(s){self.skipWaiting()});self.addEventListener("activate",function(s){s.waitUntil(self.clients.claim())});const go=new URL(self.registration.scope).pathname,Ee=new Map,$e=new Map,Fn=self.registration.scope.startsWith("https://");function bo(){Ee.clear(),$e.clear()}async function Mn(s,t,e){try{return{loadedTrace:await Ks(s,t,e)}}catch(n){return{errorResponse:new Response(JSON.stringify({error:n==null?void 0:n.message}),{status:500,headers:{"Content-Type":"application/json"}})}}}function Ks(s,t,e){const n=t.searchParams.get("trace");if(!n)throw new Error("trace parameter is missing");$e.set(s,n);const i=Ee.get(n);if(i)return i;const r=yo(n,e);return Ee.set(n,r),r.catch(()=>Ee.delete(n)),r}async function yo(s,t){var i;await To();const e=new mr;try{const[r,a]=gr(t,[.5,.4,.1]),o=Ro(s)||s.endsWith("traces.dir")?new wo(s):new mo(s,r);await e.load(o,a)}catch(r){if(console.error(r),(i=r==null?void 0:r.message)!=null&&i.includes("Cannot find .trace file")&&await e.hasEntry("index.html"))throw new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server.");if(r instanceof jn)throw new Error(`Could not load trace from ${s}. ${r.message}`);let a=`Could not load trace from ${s}. Make sure a valid Playwright Trace is accessible over this url.`;const o=await navigator.permissions.query({name:"local-network-access"}).catch(()=>{});throw o&&o.state!=="granted"&&(a+=`
|
|
1
|
+
class Xs{constructor(t,e){this._snapshotIds=new Map,this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,n){const r=this._snapshot(t,e);if(!r)return new Response(null,{status:404});const i=r.render();return this._snapshotIds.set(n,r),new Response(i.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const n=this._snapshot(t,e),r=n==null?void 0:n.closestScreenshot();return r?new Response(await this._resourceLoader(r)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const n=this._snapshot(t,e);return this._respondWithJson(n?{viewport:n.viewport(),url:n.snapshot().frameUrl,timestamp:n.snapshot().timestamp,wallTime:n.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const n=e.get("name");return this._snapshotStorage.snapshotByName(t,n)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,n){let r;const i=this._snapshotIds.get(n);for(const S of t)if(r=i==null?void 0:i.resourceByUrl($s(S),e),r)break;if(!r)return new Response(null,{status:404});const a=r.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=r.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const d=new Headers;l!=="x-unknown"&&d.set("Content-Type",l);for(const{name:S,value:O}of r.response.headers)d.set(S,O);d.delete("Content-Encoding"),d.delete("Access-Control-Allow-Origin"),d.set("Access-Control-Allow-Origin","*"),d.delete("Content-Length"),d.set("Content-Length",String(o.size)),this._snapshotStorage.hasResourceOverride(r.request.url)?d.set("Cache-Control","no-store, no-cache, max-age=0"):d.set("Cache-Control","public, max-age=31536000");const{status:w}=r.response,m=w===101||w===204||w===205||w===304;return new Response(m?null:o,{headers:d,status:r.response.status,statusText:r.response.statusText})}}function $s(s){try{const t=new URL(s);return t.hash="",t.toString()}catch{return s}}function Js(s){const t=new Map,{files:e,stacks:n}=s;for(const r of n){const[i,a]=r;t.set(`call@${i}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}const Un={"&":"&","<":"<",">":">",'"':""","'":"'"};function Qs(s){return s.replace(/[&<>"']/ug,t=>Un[t])}function zs(s){return s.replace(/[&<]/ug,t=>Un[t])}function Mt(s,t,e){return s.find((n,r)=>{if(r===s.length-1)return!0;const i=s[r+1];return Math.abs(t(n)-e)<Math.abs(t(i)-e)})}function Wn(s){return Array.isArray(s)&&typeof s[0]=="string"}function er(s){return Array.isArray(s)&&Array.isArray(s[0])}class tr{constructor(t,e,n,r,i){this._htmlCache=t,this._resources=e,this._snapshots=n,this._index=i,this._snapshot=n[i],this._callId=n[i].callId,this._screencastFrames=r,this.snapshotName=n[i].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var r;const{wallTime:t,timestamp:e}=this.snapshot(),n=t&&((r=this._screencastFrames[0])!=null&&r.frameSwapWallTime)?Mt(this._screencastFrames,i=>i.frameSwapWallTime,t):Mt(this._screencastFrames,i=>i.timestamp,e);return n==null?void 0:n.sha1}render(){const t=[],e=(i,a,o,l)=>{if(typeof i=="string"){o==="STYLE"||o==="style"?t.push(lr(ar(i))):t.push(zs(i));return}if(er(i)){const _=a-i[0][0];if(_>=0&&_<=a){const d=sr(this._snapshots[_]),w=i[0][1];if(w>=0&&w<d.length)return e(d[w],_,o,l)}}else if(Wn(i)){const[_,d,...w]=i,m=_==="NOSCRIPT"?"X-NOSCRIPT":_,S=Object.entries(d||{});t.push("<",m);const O="__playwright_current_src__",u=m==="IFRAME"||m==="FRAME",c=m==="A",f=m==="IMG",p=f&&S.some(E=>E[0]===O),g=m==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(E=>E[0]===O));for(const[E,R]of S){let h=E;u&&E.toLowerCase()==="src"&&(h="__playwright_src__"),f&&E===O&&(h="src"),["src","srcset"].includes(E.toLowerCase())&&(p||g)&&(h="_"+h);let x=R;!c&&(E.toLowerCase()==="href"||E.toLowerCase()==="src"||E===O)&&(x=lt(R)),t.push(" ",h,'="',Qs(x),'"')}t.push(">");for(const E of w)e(E,a,m,S);nr.has(m)||t.push("</",m,">");return}else return},n=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(n.html,this._index,void 0,void 0);const a=(n.doctype?`<!DOCTYPE ${n.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${rr(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:n.pageId,frameId:n.frameId,index:this._index}}resourceByUrl(t,e){const n=this._snapshot;let r,i;for(const o of this._resources){if(typeof o._monotonicTime=="number"&&o._monotonicTime>=n.timestamp)break;o.response.status!==304&&o.request.url===t&&o.request.method===e&&(o._frameref===n.frameId?r=o:i=o)}let a=r??i;if(a&&e.toUpperCase()==="GET"){let o=n.resourceOverrides.find(l=>l.url===t);if(o!=null&&o.ref){const l=this._index-o.ref;l>=0&&l<this._snapshots.length&&(o=this._snapshots[l].resourceOverrides.find(_=>_.url===t))}o!=null&&o.sha1&&(a={...a,response:{...a.response,content:{...a.response.content,_sha1:o.sha1}}})}return a}}const nr=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function sr(s){if(!s._nodes){const t=[],e=n=>{if(typeof n=="string")t.push(n);else if(Wn(n)){const[,,...r]=n;for(const i of r)e(i);t.push(n)}};e(s.html),s._nodes=t}return s._nodes}function rr(s,...t){function e(n,r,...i){const a=window,o=new URLSearchParams(a.location.search),l=o.has("shouldPopulateCanvasFromScreenshot"),_=o.has("isUnderTest"),d={viewport:r,frames:new WeakMap};a.__playwright_frame_bounding_rects__=d;const w="Recorded click position in absolute coordinates did not match the center of the clicked element. This is either due to the use of provided offset, or due to a difference between the test runner and the trace viewer operating systems.",m=[],S=[],O=[],u=[];let c=a;for(;c!==c.parent&&!c.location.pathname.match(/\/page@[a-z0-9]+$/);)c=c.parent;const f=E=>{for(const R of E.querySelectorAll("[__playwright_scroll_top_]"))m.push(R);for(const R of E.querySelectorAll("[__playwright_scroll_left_]"))S.push(R);for(const R of E.querySelectorAll("[__playwright_value_]")){const h=R;h.type!=="file"&&(h.value=h.getAttribute("__playwright_value_")),R.removeAttribute("__playwright_value_")}for(const R of E.querySelectorAll("[__playwright_checked_]"))R.checked=R.getAttribute("__playwright_checked_")==="true",R.removeAttribute("__playwright_checked_");for(const R of E.querySelectorAll("[__playwright_selected_]"))R.selected=R.getAttribute("__playwright_selected_")==="true",R.removeAttribute("__playwright_selected_");for(const R of E.querySelectorAll("[__playwright_popover_open_]")){try{R.showPopover()}catch{}R.removeAttribute("__playwright_popover_open_")}for(const R of E.querySelectorAll("[__playwright_dialog_open_]")){try{R.getAttribute("__playwright_dialog_open_")==="modal"?R.showModal():R.show()}catch{}R.removeAttribute("__playwright_dialog_open_")}for(const R of i)for(const h of E.querySelectorAll(`[__playwright_target__="${R}"]`)){const x=h.style;x.outline="2px solid #006ab1",x.backgroundColor="#6fa8dc7f",O.push(h)}for(const R of E.querySelectorAll("iframe, frame")){const h=R.getAttribute("__playwright_bounding_rect__");R.removeAttribute("__playwright_bounding_rect__");const x=h?JSON.parse(h):void 0;x&&d.frames.set(R,{boundingRect:x,scrollLeft:0,scrollTop:0});const b=R.getAttribute("__playwright_src__");if(!b)R.setAttribute("src",n);else{const T=new URL(a.location.href),A=T.pathname.lastIndexOf("/snapshot/");A!==-1&&(T.pathname=T.pathname.substring(0,A+1)),T.pathname+=b.substring(1),R.setAttribute("src",T.toString())}}{const R=E.querySelector("body[__playwright_custom_elements__]");if(R&&a.customElements){const h=(R.getAttribute("__playwright_custom_elements__")||"").split(",");for(const x of h)a.customElements.define(x,class extends HTMLElement{})}}for(const R of E.querySelectorAll("template[__playwright_shadow_root_]")){const h=R,x=h.parentElement.attachShadow({mode:"open"});x.appendChild(h.content),h.remove(),f(x)}for(const R of E.querySelectorAll("a"))R.addEventListener("click",h=>{h.preventDefault()});if("adoptedStyleSheets"in E){const R=[...E.adoptedStyleSheets];for(const h of E.querySelectorAll("template[__playwright_style_sheet_]")){const x=h,b=new CSSStyleSheet;b.replaceSync(x.getAttribute("__playwright_style_sheet_")),R.push(b)}E.adoptedStyleSheets=R}u.push(...E.querySelectorAll("canvas"))},p=()=>{a.removeEventListener("load",p);for(const h of m)h.scrollTop=+h.getAttribute("__playwright_scroll_top_"),h.removeAttribute("__playwright_scroll_top_"),d.frames.has(h)&&(d.frames.get(h).scrollTop=h.scrollTop);for(const h of S)h.scrollLeft=+h.getAttribute("__playwright_scroll_left_"),h.removeAttribute("__playwright_scroll_left_"),d.frames.has(h)&&(d.frames.get(h).scrollLeft=h.scrollLeft);a.document.styleSheets[0].disabled=!0;const E=new URL(a.location.href).searchParams;if(a===c&&E.get("pointX")&&E.get("pointY")){const h=+E.get("pointX"),x=+E.get("pointY"),b=a.document.createElement("x-pw-pointer");b.style.position="fixed",b.style.backgroundColor="#f44336",b.style.width="20px",b.style.height="20px",b.style.borderRadius="10px",b.style.margin="-10px 0 0 -10px",b.style.zIndex="2147483646",b.style.display="flex",b.style.alignItems="center",b.style.justifyContent="center";const T=O[0],A=T==null?void 0:T.getBoundingClientRect(),y=T?{x:A.left+A.width/2,y:A.top+A.height/2}:null;if(b.style.left=((y==null?void 0:y.x)??h)+"px",b.style.top=((y==null?void 0:y.y)??x)+"px",!(!y||Math.abs(y.x-h)<=10&&Math.abs(y.y-x)<=10)){const C=a.document.createElement("x-pw-pointer-warning");C.textContent="⚠",C.style.fontSize="19px",C.style.color="white",C.style.marginTop="-3.5px",C.style.userSelect="none",b.appendChild(C),b.setAttribute("title",w)}a.document.documentElement.appendChild(b)}if(u.length>0){let h=function(b,T){function A(){const y=a.document.createElement("canvas");y.width=y.width/Math.floor(y.width/24),y.height=y.height/Math.floor(y.height/24);const I=y.getContext("2d");return I.fillStyle="lightgray",I.fillRect(0,0,y.width,y.height),I.fillStyle="white",I.fillRect(0,0,y.width/2,y.height/2),I.fillRect(y.width/2,y.height/2,y.width,y.height),I.createPattern(y,"repeat")}b.fillStyle=A(),b.fillRect(0,0,T.width,T.height)};const x=new Image;x.onload=()=>{var b;for(const T of u){const A=T.getContext("2d"),y=T.getAttribute("__playwright_bounding_rect__");if(T.removeAttribute("__playwright_bounding_rect__"),!y)continue;let I;try{I=JSON.parse(y)}catch{continue}let C=a;for(;C!==c;){const L=C.frameElement;C=C.parent;const j=(b=C.__playwright_frame_bounding_rects__)==null?void 0:b.frames.get(L);if(!(j!=null&&j.boundingRect))break;const D=j.boundingRect.left-j.scrollLeft,K=j.boundingRect.top-j.scrollTop;I.left+=D,I.top+=K,I.right+=D,I.bottom+=K}const{width:k,height:P}=c.__playwright_frame_bounding_rects__.viewport;I.left=I.left/k,I.top=I.top/P,I.right=I.right/k,I.bottom=I.bottom/P;const N=I.right>1||I.bottom>1;if(I.left>1||I.top>1){T.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}h(A,T),l?(A.drawImage(x,I.left*x.width,I.top*x.height,(I.right-I.left)*x.width,(I.bottom-I.top)*x.height,0,0,T.width,T.height),N?T.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":T.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):T.title="Canvas content display is disabled.",_&&console.log("canvas drawn:",JSON.stringify([I.left,I.top,I.right-I.left,I.bottom-I.top].map(L=>Math.floor(L*100))))}},x.onerror=()=>{for(const b of u){const T=b.getContext("2d");h(T,b),b.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},x.src=location.href.replace("/snapshot","/closest-screenshot")}},g=()=>f(a.document);a.addEventListener("load",p),a.addEventListener("DOMContentLoaded",g)}return`
|
|
2
|
+
(${e.toString()})(${JSON.stringify(fr)},${JSON.stringify(s)}${t.map(n=>`, "${n}"`).join("")})`}const Hn=["about:","blob:","data:","file:","ftp:","http:","https:","mailto:","sftp:","ws:","wss:"],Ut="http://playwright.bloburl/#";function lt(s){s.startsWith(Ut)&&(s=s.substring(Ut.length));try{const t=new URL(s);if(t.protocol==="javascript:"||t.protocol==="vbscript:")return"javascript:void(0)";const e=t.protocol==="blob:",n=t.protocol==="file:";if(!e&&!n&&Hn.includes(t.protocol))return s;const r="pw-"+t.protocol.slice(0,t.protocol.length-1);return n||(t.protocol="https:"),t.hostname=t.hostname?`${r}--${t.hostname}`:r,n&&(t.protocol="https:"),t.toString()}catch{return s}}const ir=/url\(['"]?([\w-]+:)\/\//ig;function ar(s){return s.replace(ir,(t,e)=>!(e==="blob:")&&!(e==="file:")&&Hn.includes(e)?t:t.replace(e+"//",`https://pw-${e.slice(0,-1)}--`))}const or=/url\(\s*'([^']*)'\s*\)/ig,cr=/url\(\s*"([^"]*)"\s*\)/ig;function lr(s){const t=(e,n)=>n.includes("</")?e.replace(n,encodeURI(n)):e;return s.replace(or,t).replace(cr,t)}const fr="data:text/html;base64,"+btoa("<body></body><style>body { color-scheme: light dark; background: light-dark(white, #333) }</style>");class ur{constructor(t){this._maxSize=t,this._map=new Map,this._size=0}getOrCompute(t,e){if(this._map.has(t)){const r=this._map.get(t);return this._map.delete(t),this._map.set(t,r),r.value}const n=e();for(;this._map.size&&this._size+n.size>this._maxSize;){const[r,i]=this._map.entries().next().value;this._size-=i.size,this._map.delete(r)}return this._map.set(t,n),this._size+=n.size,n.value}}class dr{constructor(){this._frameSnapshots=new Map,this._cache=new ur(1e8),this._contextToResources=new Map,this._resourceUrlsWithOverrides=new Set}addResource(t,e){e.request.url=lt(e.request.url),this._ensureResourcesForContext(t).push(e)}addFrameSnapshot(t,e,n){for(const o of e.resourceOverrides)o.url=lt(o.url);let r=this._frameSnapshots.get(e.frameId);r||(r={raw:[],renderers:[]},this._frameSnapshots.set(e.frameId,r),e.isMainFrame&&this._frameSnapshots.set(e.pageId,r)),r.raw.push(e);const i=this._ensureResourcesForContext(t),a=new tr(this._cache,i,r.raw,n,r.raw.length-1);return r.renderers.push(a),a}snapshotByName(t,e){const n=this._frameSnapshots.get(t);return n==null?void 0:n.renderers.find(r=>r.snapshotName===e)}snapshotsForTest(){return[...this._frameSnapshots.keys()]}finalize(){for(const t of this._contextToResources.values())t.sort((e,n)=>(e._monotonicTime||0)-(n._monotonicTime||0));for(const t of this._frameSnapshots.values())for(const e of t.raw)for(const n of e.resourceOverrides)this._resourceUrlsWithOverrides.add(n.url)}hasResourceOverride(t){return this._resourceUrlsWithOverrides.has(t)}_ensureResourcesForContext(t){let e=this._contextToResources.get(t);return e||(e=[],this._contextToResources.set(t,e)),e}}class Bn extends Error{constructor(t){super(t),this.name="TraceVersionError"}}const Wt=8;class _r{constructor(t,e){this._actionMap=new Map,this._pageEntries=new Map,this._jsHandles=new Map,this._consoleObjects=new Map,this._contextEntry=t,this._snapshotStorage=e}appendTrace(t){for(const e of t.split(`
|
|
3
|
+
`))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const n of e)this._innerAppendEvent(n)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>Wt)throw new Bn("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.playwrightVersion=t.playwrightVersion,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"",e.testTimeout=t.testTimeout;break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const n=this._actionMap.get(t.callId);n.inputSnapshot=t.inputSnapshot,n.point=t.point;break}case"log":{const n=this._actionMap.get(t.callId);if(!n)return;n.log.push({time:t.time,message:t.message});break}case"after":{const n=this._actionMap.get(t.callId);n.afterSnapshot=t.afterSnapshot,n.endTime=t.endTime,n.result=t.result,n.error=t.error,n.attachments=t.attachments,n.annotations=t.annotations,t.point&&(n.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version??t.version??6,n=[t];for(;e<Wt;++e)n=this[`_modernize_${e}_to_${e+1}`].call(this,n);return n}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const n of t)n.type!=="frame-snapshot"||!n.snapshot.isMainFrame||(n.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const n=e.snapshot;e.snapshot={_frameref:n.frameId,request:{url:n.url,method:n.method,headers:n.requestHeaders,postData:n.requestSha1?{_sha1:n.requestSha1}:void 0},response:{status:n.status,headers:n.responseHeaders,content:{mimeType:n.contentType,_sha1:n.responseSha1}},_monotonicTime:n.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const n of t){const r=this._modernize_event_3_to_4(n);r&&e.push(r)}return e}_modernize_event_3_to_4(t){var n,r,i,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(n=e.snapshots.find(o=>o.title==="before"))==null?void 0:n.snapshotName,inputSnapshot:(r=e.snapshots.find(o=>o.title==="input"))==null?void 0:r.snapshotName,afterSnapshot:(i=e.snapshots.find(o=>o.title==="after"))==null?void 0:i.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const n of t){const r=this._modernize_event_4_to_5(n);r&&e.push(r)}return e}_modernize_event_4_to_5(t){var e,n;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const r=(e=t.initializer.args)==null?void 0:e.map(i=>{if(i.guid){const a=this._jsHandles.get(i.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:i.preview||"",value:i.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:r}),null}if(t.type==="event"&&t.method==="console"){const r=this._consoleObjects.get(((n=t.params.message)==null?void 0:n.guid)||"");return r?{type:"console",time:t.time,pageId:t.pageId,messageType:r.type,text:r.text,args:r.args,location:r.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const n of t)if(e.push(n),!(n.type!=="after"||!n.log.length))for(const r of n.log)e.push({type:"log",callId:n.callId,message:r,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const n={type:"context-options",origin:"testRunner",version:6,browserName:"",options:{},platform:"unknown",wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(n)}for(const n of t){if(n.type==="context-options"){e.push({...n,monotonicTime:0,origin:"library",contextId:""});continue}if(n.type==="before"||n.type==="action"){this._contextEntry.wallTime||(this._contextEntry.wallTime=n.wallTime);const r=n,i=n;i.stepId=`${r.apiName}@${r.wallTime}`,e.push(i)}else e.push(n)}return e}_modernize_7_to_8(t){const e=[];for(const n of t)if(n.type==="before"||n.type==="action"){const r=n,i=n;r.apiName&&(i.title=r.apiName,delete i.apiName),i.stepId=r.stepId??r.callId,e.push(i)}else e.push(n);return e}}class hr{constructor(){this.contextEntries=[],this._resourceToContentType=new Map}async load(t,e,n){var _,d,w;this._backend=t;const r=(_=e==null?void 0:e.match(/(.+)\.trace$/))==null?void 0:_[1],i=[];let a=!1;for(const m of await this._backend.entryNames()){const S=m.match(/(.+)\.trace$/);S&&(!r||r===S[1])&&i.push(S[1]||""),m.includes("src@")&&(a=!0)}if(!i.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new dr;const o=i.length*3;let l=0;for(const m of i){const S=pr();S.hasSource=a;const O=new _r(S,this._snapshotStorage),u=await this._backend.readText(m+".trace")||"";O.appendTrace(u),n==null||n(++l,o);const c=await this._backend.readText(m+".network")||"";if(O.appendTrace(c),n==null||n(++l,o),S.actions=O.actions().sort((p,g)=>p.startTime-g.startTime),!t.isLive()){for(const p of S.actions.slice().reverse())if(!p.endTime&&!p.error)for(const g of S.actions)g.parentId===p.callId&&p.endTime<g.endTime&&(p.endTime=g.endTime)}const f=await this._backend.readText(m+".stacks");if(f){const p=Js(JSON.parse(f));for(const g of S.actions)g.stack=g.stack||p.get(g.callId)}n==null||n(++l,o);for(const p of S.resources)(d=p.request.postData)!=null&&d._sha1&&this._resourceToContentType.set(p.request.postData._sha1,Ht(p.request.postData.mimeType)),(w=p.response.content)!=null&&w._sha1&&this._resourceToContentType.set(p.response.content._sha1,Ht(p.response.content.mimeType));this.contextEntries.push(S)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),n=this._resourceToContentType.get(t);return!e||n===void 0||n==="x-unknown"?e:new Blob([e],{type:n})}storage(){return this._snapshotStorage}}function Ht(s){const t=s.match(/^(.*);\s*charset=.*$/);return t?t[1]:s}function pr(){return{origin:"testRunner",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}function mr(s,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((n,r)=>(i,a)=>{e[r]=i/a*t[r]*1e3,s(e.reduce((o,l)=>o+l,0),1e3)})}const wr=15,v=0,ne=1,gr=2,X=-2,W=-3,Bt=-4,se=-5,$=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],jn=1440,br=0,yr=4,Er=9,xr=5,Tr=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Sr=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Rr=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ar=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Or=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Ir=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ie=15;function ft(){const s=this;let t,e,n,r,i,a;function o(_,d,w,m,S,O,u,c,f,p,g){let E,R,h,x,b,T,A,y,I,C,k,P,N,H,L;C=0,b=w;do n[_[d+C]]++,C++,b--;while(b!==0);if(n[0]==w)return u[0]=-1,c[0]=0,v;for(y=c[0],T=1;T<=ie&&n[T]===0;T++);for(A=T,y<T&&(y=T),b=ie;b!==0&&n[b]===0;b--);for(h=b,y>b&&(y=b),c[0]=y,H=1<<T;T<b;T++,H<<=1)if((H-=n[T])<0)return W;if((H-=n[b])<0)return W;for(n[b]+=H,a[1]=T=0,C=1,N=2;--b!==0;)a[N]=T+=n[C],N++,C++;b=0,C=0;do(T=_[d+C])!==0&&(g[a[T]++]=b),C++;while(++b<w);for(w=a[h],a[0]=b=0,C=0,x=-1,P=-y,i[0]=0,k=0,L=0;A<=h;A++)for(E=n[A];E--!==0;){for(;A>P+y;){if(x++,P+=y,L=h-P,L=L>y?y:L,(R=1<<(T=A-P))>E+1&&(R-=E+1,N=A,T<L))for(;++T<L&&!((R<<=1)<=n[++N]);)R-=n[N];if(L=1<<T,p[0]+L>jn)return W;i[x]=k=p[0],p[0]+=L,x!==0?(a[x]=b,r[0]=T,r[1]=y,T=b>>>P-y,r[2]=k-i[x-1]-T,f.set(r,(i[x-1]+T)*3)):u[0]=k}for(r[1]=A-P,C>=w?r[0]=192:g[C]<m?(r[0]=g[C]<256?0:96,r[2]=g[C++]):(r[0]=O[g[C]-m]+16+64,r[2]=S[g[C++]-m]),R=1<<A-P,T=b>>>P;T<L;T+=R)f.set(r,(k+T)*3);for(T=1<<A-1;(b&T)!==0;T>>>=1)b^=T;for(b^=T,I=(1<<P)-1;(b&I)!=a[x];)x--,P-=y,I=(1<<P)-1}return H!==0&&h!=1?se:v}function l(_){let d;for(t||(t=[],e=[],n=new Int32Array(ie+1),r=[],i=new Int32Array(ie),a=new Int32Array(ie+1)),e.length<_&&(e=[]),d=0;d<_;d++)e[d]=0;for(d=0;d<ie+1;d++)n[d]=0;for(d=0;d<3;d++)r[d]=0;i.set(n.subarray(0,ie),0),a.set(n.subarray(0,ie+1),0)}s.inflate_trees_bits=function(_,d,w,m,S){let O;return l(19),t[0]=0,O=o(_,0,19,19,null,null,w,d,m,t,e),O==W?S.msg="oversubscribed dynamic bit lengths tree":(O==se||d[0]===0)&&(S.msg="incomplete dynamic bit lengths tree",O=W),O},s.inflate_trees_dynamic=function(_,d,w,m,S,O,u,c,f){let p;return l(288),t[0]=0,p=o(w,0,_,257,Rr,Ar,O,m,c,t,e),p!=v||m[0]===0?(p==W?f.msg="oversubscribed literal/length tree":p!=Bt&&(f.msg="incomplete literal/length tree",p=W),p):(l(288),p=o(w,_,d,0,Or,Ir,u,S,c,t,e),p!=v||S[0]===0&&_>257?(p==W?f.msg="oversubscribed distance tree":p==se?(f.msg="incomplete distance tree",p=W):p!=Bt&&(f.msg="empty distance tree with lengths",p=W),p):v)}}ft.inflate_trees_fixed=function(s,t,e,n){return s[0]=Er,t[0]=xr,e[0]=Tr,n[0]=Sr,v};const We=0,jt=1,Gt=2,Yt=3,qt=4,Vt=5,Zt=6,ze=7,Kt=8,He=9;function Cr(){const s=this;let t,e=0,n,r=0,i=0,a=0,o=0,l=0,_=0,d=0,w,m=0,S,O=0;function u(c,f,p,g,E,R,h,x){let b,T,A,y,I,C,k,P,N,H,L,j,D,K,F,M;k=x.next_in_index,P=x.avail_in,I=h.bitb,C=h.bitk,N=h.write,H=N<h.read?h.read-N-1:h.end-N,L=$[c],j=$[f];do{for(;C<20;)P--,I|=(x.read_byte(k++)&255)<<C,C+=8;if(b=I&L,T=p,A=g,M=(A+b)*3,(y=T[M])===0){I>>=T[M+1],C-=T[M+1],h.win[N++]=T[M+2],H--;continue}do{if(I>>=T[M+1],C-=T[M+1],(y&16)!==0){for(y&=15,D=T[M+2]+(I&$[y]),I>>=y,C-=y;C<15;)P--,I|=(x.read_byte(k++)&255)<<C,C+=8;b=I&j,T=E,A=R,M=(A+b)*3,y=T[M];do if(I>>=T[M+1],C-=T[M+1],(y&16)!==0){for(y&=15;C<y;)P--,I|=(x.read_byte(k++)&255)<<C,C+=8;if(K=T[M+2]+(I&$[y]),I>>=y,C-=y,H-=D,N>=K)F=N-K,N-F>0&&2>N-F?(h.win[N++]=h.win[F++],h.win[N++]=h.win[F++],D-=2):(h.win.set(h.win.subarray(F,F+2),N),N+=2,F+=2,D-=2);else{F=N-K;do F+=h.end;while(F<0);if(y=h.end-F,D>y){if(D-=y,N-F>0&&y>N-F)do h.win[N++]=h.win[F++];while(--y!==0);else h.win.set(h.win.subarray(F,F+y),N),N+=y,F+=y,y=0;F=0}}if(N-F>0&&D>N-F)do h.win[N++]=h.win[F++];while(--D!==0);else h.win.set(h.win.subarray(F,F+D),N),N+=D,F+=D,D=0;break}else if((y&64)===0)b+=T[M+2],b+=I&$[y],M=(A+b)*3,y=T[M];else return x.msg="invalid distance code",D=x.avail_in-P,D=C>>3<D?C>>3:D,P+=D,k-=D,C-=D<<3,h.bitb=I,h.bitk=C,x.avail_in=P,x.total_in+=k-x.next_in_index,x.next_in_index=k,h.write=N,W;while(!0);break}if((y&64)===0){if(b+=T[M+2],b+=I&$[y],M=(A+b)*3,(y=T[M])===0){I>>=T[M+1],C-=T[M+1],h.win[N++]=T[M+2],H--;break}}else return(y&32)!==0?(D=x.avail_in-P,D=C>>3<D?C>>3:D,P+=D,k-=D,C-=D<<3,h.bitb=I,h.bitk=C,x.avail_in=P,x.total_in+=k-x.next_in_index,x.next_in_index=k,h.write=N,ne):(x.msg="invalid literal/length code",D=x.avail_in-P,D=C>>3<D?C>>3:D,P+=D,k-=D,C-=D<<3,h.bitb=I,h.bitk=C,x.avail_in=P,x.total_in+=k-x.next_in_index,x.next_in_index=k,h.write=N,W)}while(!0)}while(H>=258&&P>=10);return D=x.avail_in-P,D=C>>3<D?C>>3:D,P+=D,k-=D,C-=D<<3,h.bitb=I,h.bitk=C,x.avail_in=P,x.total_in+=k-x.next_in_index,x.next_in_index=k,h.write=N,v}s.init=function(c,f,p,g,E,R){t=We,_=c,d=f,w=p,m=g,S=E,O=R,n=null},s.proc=function(c,f,p){let g,E,R,h=0,x=0,b=0,T,A,y,I;for(b=f.next_in_index,T=f.avail_in,h=c.bitb,x=c.bitk,A=c.write,y=A<c.read?c.read-A-1:c.end-A;;)switch(t){case We:if(y>=258&&T>=10&&(c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,p=u(_,d,w,m,S,O,c,f),b=f.next_in_index,T=f.avail_in,h=c.bitb,x=c.bitk,A=c.write,y=A<c.read?c.read-A-1:c.end-A,p!=v)){t=p==ne?ze:He;break}i=_,n=w,r=m,t=jt;case jt:for(g=i;x<g;){if(T!==0)p=v;else return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);T--,h|=(f.read_byte(b++)&255)<<x,x+=8}if(E=(r+(h&$[g]))*3,h>>>=n[E+1],x-=n[E+1],R=n[E],R===0){a=n[E+2],t=Zt;break}if((R&16)!==0){o=R&15,e=n[E+2],t=Gt;break}if((R&64)===0){i=R,r=E/3+n[E+2];break}if((R&32)!==0){t=ze;break}return t=He,f.msg="invalid literal/length code",p=W,c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);case Gt:for(g=o;x<g;){if(T!==0)p=v;else return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);T--,h|=(f.read_byte(b++)&255)<<x,x+=8}e+=h&$[g],h>>=g,x-=g,i=d,n=S,r=O,t=Yt;case Yt:for(g=i;x<g;){if(T!==0)p=v;else return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);T--,h|=(f.read_byte(b++)&255)<<x,x+=8}if(E=(r+(h&$[g]))*3,h>>=n[E+1],x-=n[E+1],R=n[E],(R&16)!==0){o=R&15,l=n[E+2],t=qt;break}if((R&64)===0){i=R,r=E/3+n[E+2];break}return t=He,f.msg="invalid distance code",p=W,c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);case qt:for(g=o;x<g;){if(T!==0)p=v;else return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);T--,h|=(f.read_byte(b++)&255)<<x,x+=8}l+=h&$[g],h>>=g,x-=g,t=Vt;case Vt:for(I=A-l;I<0;)I+=c.end;for(;e!==0;){if(y===0&&(A==c.end&&c.read!==0&&(A=0,y=A<c.read?c.read-A-1:c.end-A),y===0&&(c.write=A,p=c.inflate_flush(f,p),A=c.write,y=A<c.read?c.read-A-1:c.end-A,A==c.end&&c.read!==0&&(A=0,y=A<c.read?c.read-A-1:c.end-A),y===0)))return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);c.win[A++]=c.win[I++],y--,I==c.end&&(I=0),e--}t=We;break;case Zt:if(y===0&&(A==c.end&&c.read!==0&&(A=0,y=A<c.read?c.read-A-1:c.end-A),y===0&&(c.write=A,p=c.inflate_flush(f,p),A=c.write,y=A<c.read?c.read-A-1:c.end-A,A==c.end&&c.read!==0&&(A=0,y=A<c.read?c.read-A-1:c.end-A),y===0)))return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);p=v,c.win[A++]=a,y--,t=We;break;case ze:if(x>7&&(x-=8,T++,b--),c.write=A,p=c.inflate_flush(f,p),A=c.write,y=A<c.read?c.read-A-1:c.end-A,c.read!=c.write)return c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);t=Kt;case Kt:return p=ne,c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);case He:return p=W,c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p);default:return p=X,c.bitb=h,c.bitk=x,f.avail_in=T,f.total_in+=b-f.next_in_index,f.next_in_index=b,c.write=A,c.inflate_flush(f,p)}},s.free=function(){}}const Xt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],we=0,et=1,$t=2,Jt=3,Qt=4,zt=5,Be=6,je=7,en=8,he=9;function Nr(s,t){const e=this;let n=we,r=0,i=0,a=0,o;const l=[0],_=[0],d=new Cr;let w=0,m=new Int32Array(jn*3);const S=0,O=new ft;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(u,c){c&&(c[0]=S),n==Be&&d.free(u),n=we,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(s,null),e.inflate_flush=function(u,c){let f,p,g;return p=u.next_out_index,g=e.read,f=(g<=e.write?e.write:e.end)-g,f>u.avail_out&&(f=u.avail_out),f!==0&&c==se&&(c=v),u.avail_out-=f,u.total_out+=f,u.next_out.set(e.win.subarray(g,g+f),p),p+=f,g+=f,g==e.end&&(g=0,e.write==e.end&&(e.write=0),f=e.write-g,f>u.avail_out&&(f=u.avail_out),f!==0&&c==se&&(c=v),u.avail_out-=f,u.total_out+=f,u.next_out.set(e.win.subarray(g,g+f),p),p+=f,g+=f),u.next_out_index=p,e.read=g,c},e.proc=function(u,c){let f,p,g,E,R,h,x,b;for(E=u.next_in_index,R=u.avail_in,p=e.bitb,g=e.bitk,h=e.write,x=h<e.read?e.read-h-1:e.end-h;;){let T,A,y,I,C,k,P,N;switch(n){case we:for(;g<3;){if(R!==0)c=v;else return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);R--,p|=(u.read_byte(E++)&255)<<g,g+=8}switch(f=p&7,w=f&1,f>>>1){case 0:p>>>=3,g-=3,f=g&7,p>>>=f,g-=f,n=et;break;case 1:T=[],A=[],y=[[]],I=[[]],ft.inflate_trees_fixed(T,A,y,I),d.init(T[0],A[0],y[0],0,I[0],0),p>>>=3,g-=3,n=Be;break;case 2:p>>>=3,g-=3,n=Jt;break;case 3:return p>>>=3,g-=3,n=he,u.msg="invalid block type",c=W,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c)}break;case et:for(;g<32;){if(R!==0)c=v;else return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);R--,p|=(u.read_byte(E++)&255)<<g,g+=8}if((~p>>>16&65535)!=(p&65535))return n=he,u.msg="invalid stored block lengths",c=W,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);r=p&65535,p=g=0,n=r!==0?$t:w!==0?je:we;break;case $t:if(R===0||x===0&&(h==e.end&&e.read!==0&&(h=0,x=h<e.read?e.read-h-1:e.end-h),x===0&&(e.write=h,c=e.inflate_flush(u,c),h=e.write,x=h<e.read?e.read-h-1:e.end-h,h==e.end&&e.read!==0&&(h=0,x=h<e.read?e.read-h-1:e.end-h),x===0)))return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);if(c=v,f=r,f>R&&(f=R),f>x&&(f=x),e.win.set(u.read_buf(E,f),h),E+=f,R-=f,h+=f,x-=f,(r-=f)!==0)break;n=w!==0?je:we;break;case Jt:for(;g<14;){if(R!==0)c=v;else return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);R--,p|=(u.read_byte(E++)&255)<<g,g+=8}if(i=f=p&16383,(f&31)>29||(f>>5&31)>29)return n=he,u.msg="too many length or distance symbols",c=W,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);if(f=258+(f&31)+(f>>5&31),!o||o.length<f)o=[];else for(b=0;b<f;b++)o[b]=0;p>>>=14,g-=14,a=0,n=Qt;case Qt:for(;a<4+(i>>>10);){for(;g<3;){if(R!==0)c=v;else return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);R--,p|=(u.read_byte(E++)&255)<<g,g+=8}o[Xt[a++]]=p&7,p>>>=3,g-=3}for(;a<19;)o[Xt[a++]]=0;if(l[0]=7,f=O.inflate_trees_bits(o,l,_,m,u),f!=v)return c=f,c==W&&(o=null,n=he),e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);a=0,n=zt;case zt:for(;f=i,!(a>=258+(f&31)+(f>>5&31));){let H,L;for(f=l[0];g<f;){if(R!==0)c=v;else return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);R--,p|=(u.read_byte(E++)&255)<<g,g+=8}if(f=m[(_[0]+(p&$[f]))*3+1],L=m[(_[0]+(p&$[f]))*3+2],L<16)p>>>=f,g-=f,o[a++]=L;else{for(b=L==18?7:L-14,H=L==18?11:3;g<f+b;){if(R!==0)c=v;else return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);R--,p|=(u.read_byte(E++)&255)<<g,g+=8}if(p>>>=f,g-=f,H+=p&$[b],p>>>=b,g-=b,b=a,f=i,b+H>258+(f&31)+(f>>5&31)||L==16&&b<1)return o=null,n=he,u.msg="invalid bit length repeat",c=W,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);L=L==16?o[b-1]:0;do o[b++]=L;while(--H!==0);a=b}}if(_[0]=-1,C=[],k=[],P=[],N=[],C[0]=9,k[0]=6,f=i,f=O.inflate_trees_dynamic(257+(f&31),1+(f>>5&31),o,C,k,P,N,m,u),f!=v)return f==W&&(o=null,n=he),c=f,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);d.init(C[0],k[0],m,P[0],m,N[0]),n=Be;case Be:if(e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,(c=d.proc(e,u,c))!=ne)return e.inflate_flush(u,c);if(c=v,d.free(u),E=u.next_in_index,R=u.avail_in,p=e.bitb,g=e.bitk,h=e.write,x=h<e.read?e.read-h-1:e.end-h,w===0){n=we;break}n=je;case je:if(e.write=h,c=e.inflate_flush(u,c),h=e.write,x=h<e.read?e.read-h-1:e.end-h,e.read!=e.write)return e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);n=en;case en:return c=ne,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);case he:return c=W,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c);default:return c=X,e.bitb=p,e.bitk=g,u.avail_in=R,u.total_in+=E-u.next_in_index,u.next_in_index=E,e.write=h,e.inflate_flush(u,c)}}},e.free=function(u){e.reset(u,null),e.win=null,m=null},e.set_dictionary=function(u,c,f){e.win.set(u.subarray(c,c+f),0),e.read=e.write=f},e.sync_point=function(){return n==et?1:0}}const Dr=32,Pr=8,kr=0,tn=1,nn=2,sn=3,rn=4,an=5,tt=6,Se=7,on=12,ae=13,Lr=[0,0,255,255];function vr(){const s=this;s.mode=0,s.method=0,s.was=[0],s.need=0,s.marker=0,s.wbits=0;function t(e){return!e||!e.istate?X:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=Se,e.istate.blocks.reset(e,null),v)}s.inflateEnd=function(e){return s.blocks&&s.blocks.free(e),s.blocks=null,v},s.inflateInit=function(e,n){return e.msg=null,s.blocks=null,n<8||n>15?(s.inflateEnd(e),X):(s.wbits=n,e.istate.blocks=new Nr(e,1<<n),t(e),v)},s.inflate=function(e,n){let r,i;if(!e||!e.istate||!e.next_in)return X;const a=e.istate;for(n=n==yr?se:v,r=se;;)switch(a.mode){case kr:if(e.avail_in===0)return r;if(r=n,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Pr){a.mode=ae,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=ae,e.msg="invalid win size",a.marker=5;break}a.mode=tn;case tn:if(e.avail_in===0)return r;if(r=n,e.avail_in--,e.total_in++,i=e.read_byte(e.next_in_index++)&255,((a.method<<8)+i)%31!==0){a.mode=ae,e.msg="incorrect header check",a.marker=5;break}if((i&Dr)===0){a.mode=Se;break}a.mode=nn;case nn:if(e.avail_in===0)return r;r=n,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=sn;case sn:if(e.avail_in===0)return r;r=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=rn;case rn:if(e.avail_in===0)return r;r=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=an;case an:return e.avail_in===0?r:(r=n,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=tt,gr);case tt:return a.mode=ae,e.msg="need dictionary",a.marker=0,X;case Se:if(r=a.blocks.proc(e,r),r==W){a.mode=ae,a.marker=0;break}if(r==v&&(r=n),r!=ne)return r;r=n,a.blocks.reset(e,a.was),a.mode=on;case on:return e.avail_in=0,ne;case ae:return W;default:return X}},s.inflateSetDictionary=function(e,n,r){let i=0,a=r;if(!e||!e.istate||e.istate.mode!=tt)return X;const o=e.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,i=r-a),o.blocks.set_dictionary(n,i,a),o.mode=Se,v},s.inflateSync=function(e){let n,r,i,a,o;if(!e||!e.istate)return X;const l=e.istate;if(l.mode!=ae&&(l.mode=ae,l.marker=0),(n=e.avail_in)===0)return se;for(r=e.next_in_index,i=l.marker;n!==0&&i<4;)e.read_byte(r)==Lr[i]?i++:e.read_byte(r)!==0?i=0:i=4-i,r++,n--;return e.total_in+=r-e.next_in_index,e.next_in_index=r,e.avail_in=n,l.marker=i,i!=4?W:(a=e.total_in,o=e.total_out,t(e),e.total_in=a,e.total_out=o,l.mode=Se,v)},s.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?X:e.istate.blocks.sync_point()}}function Gn(){}Gn.prototype={inflateInit(s){const t=this;return t.istate=new vr,s||(s=wr),t.istate.inflateInit(t,s)},inflate(s){const t=this;return t.istate?t.istate.inflate(t,s):X},inflateEnd(){const s=this;if(!s.istate)return X;const t=s.istate.inflateEnd(s);return s.istate=null,t},inflateSync(){const s=this;return s.istate?s.istate.inflateSync(s):X},inflateSetDictionary(s,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,s,t):X},read_byte(s){return this.next_in[s]},read_buf(s,t){return this.next_in.subarray(s,s+t)}};function Fr(s){const t=this,e=new Gn,n=s&&s.chunkSize?Math.floor(s.chunkSize*2):128*1024,r=br,i=new Uint8Array(n);let a=!1;e.inflateInit(),e.next_out=i,t.append=function(o,l){const _=[];let d,w,m=0,S=0,O=0;if(o.length!==0){e.next_in_index=0,e.next_in=o,e.avail_in=o.length;do{if(e.next_out_index=0,e.avail_out=n,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),d=e.inflate(r),a&&d===se){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(d!==v&&d!==ne)throw new Error("inflating: "+e.msg);if((a||d===ne)&&e.avail_in===o.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===n?_.push(new Uint8Array(i)):_.push(i.subarray(0,e.next_out_index))),O+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=m&&(l(e.next_in_index),m=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(w=new Uint8Array(O),_.forEach(function(u){w.set(u,S),S+=u.length})):w=_[0]?new Uint8Array(_[0]):new Uint8Array,w}},t.flush=function(){e.inflateEnd()}}const pe=4294967295,le=65535,Mr=8,Ur=0,Wr=99,Hr=67324752,Yn=134695760,Br=Yn,cn=33639248,jr=101010256,ln=101075792,Gr=117853008,te=22,nt=20,st=56,Yr=12,qr=20,fn=4,Vr=1,Zr=39169,Kr=10,Xr=1,$r=21589,Jr=28789,Qr=25461,zr=6534,un=1,ei=6,dn=8,_n=2048,hn=16,ti=61440,ni=16384,si=73,pn="/",rt=30,ri=10,ii=14,ai=18,G=void 0,de="undefined",Pe="function";class mn{constructor(t){return class extends TransformStream{constructor(e,n){const r=new t(n);super({transform(i,a){a.enqueue(r.append(i))},flush(i){const a=r.flush();a&&i.enqueue(a)}})}}}}const oi=64;let qn=2;try{typeof navigator!=de&&navigator.hardwareConcurrency&&(qn=navigator.hardwareConcurrency)}catch{}const ci={chunkSize:512*1024,maxWorkers:qn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:G,CompressionStreamNative:typeof CompressionStream!=de&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=de&&DecompressionStream},fe=Object.assign({},ci);function Vn(){return fe}function li(s){return Math.max(s.chunkSize,oi)}function Zn(s){const{baseURL:t,chunkSize:e,maxWorkers:n,terminateWorkerTimeout:r,useCompressionStream:i,useWebWorkers:a,Deflate:o,Inflate:l,CompressionStream:_,DecompressionStream:d,workerScripts:w}=s;if(oe("baseURL",t),oe("chunkSize",e),oe("maxWorkers",n),oe("terminateWorkerTimeout",r),oe("useCompressionStream",i),oe("useWebWorkers",a),o&&(fe.CompressionStream=new mn(o)),l&&(fe.DecompressionStream=new mn(l)),oe("CompressionStream",_),oe("DecompressionStream",d),w!==G){const{deflate:m,inflate:S}=w;if((m||S)&&(fe.workerScripts||(fe.workerScripts={})),m){if(!Array.isArray(m))throw new Error("workerScripts.deflate must be an array");fe.workerScripts.deflate=m}if(S){if(!Array.isArray(S))throw new Error("workerScripts.inflate must be an array");fe.workerScripts.inflate=S}}}function oe(s,t){t!==G&&(fe[s]=t)}function fi(){return"application/octet-stream"}const Kn=[];for(let s=0;s<256;s++){let t=s;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;Kn[s]=t}class Ve{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let n=0,r=t.length|0;n<r;n++)e=e>>>8^Kn[(e^t[n])&255];this.crc=e}get(){return~this.crc}}class Xn extends TransformStream{constructor(){let t;const e=new Ve;super({transform(n,r){e.append(n),r.enqueue(n)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function ui(s){if(typeof TextEncoder==de){s=unescape(encodeURIComponent(s));const t=new Uint8Array(s.length);for(let e=0;e<t.length;e++)t[e]=s.charCodeAt(e);return t}else return new TextEncoder().encode(s)}const Z={concat(s,t){if(s.length===0||t.length===0)return s.concat(t);const e=s[s.length-1],n=Z.getPartial(e);return n===32?s.concat(t):Z._shiftRight(t,n,e|0,s.slice(0,s.length-1))},bitLength(s){const t=s.length;if(t===0)return 0;const e=s[t-1];return(t-1)*32+Z.getPartial(e)},clamp(s,t){if(s.length*32<t)return s;s=s.slice(0,Math.ceil(t/32));const e=s.length;return t=t&31,e>0&&t&&(s[e-1]=Z.partial(t,s[e-1]&2147483648>>t-1,1)),s},partial(s,t,e){return s===32?t:(e?t|0:t<<32-s)+s*1099511627776},getPartial(s){return Math.round(s/1099511627776)||32},_shiftRight(s,t,e,n){for(n===void 0&&(n=[]);t>=32;t-=32)n.push(e),e=0;if(t===0)return n.concat(s);for(let a=0;a<s.length;a++)n.push(e|s[a]>>>t),e=s[a]<<32-t;const r=s.length?s[s.length-1]:0,i=Z.getPartial(r);return n.push(Z.partial(t+i&31,t+i>32?e:n.pop(),1)),n}},Ze={bytes:{fromBits(s){const e=Z.bitLength(s)/8,n=new Uint8Array(e);let r;for(let i=0;i<e;i++)(i&3)===0&&(r=s[i/4]),n[i]=r>>>24,r<<=8;return n},toBits(s){const t=[];let e,n=0;for(e=0;e<s.length;e++)n=n<<8|s[e],(e&3)===3&&(t.push(n),n=0);return e&3&&t.push(Z.partial(8*(e&3),n)),t}}},$n={};$n.sha1=class{constructor(s){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],s?(t._h=s._h.slice(0),t._buffer=s._buffer.slice(0),t._length=s._length):t.reset()}reset(){const s=this;return s._h=s._init.slice(0),s._buffer=[],s._length=0,s}update(s){const t=this;typeof s=="string"&&(s=Ze.utf8String.toBits(s));const e=t._buffer=Z.concat(t._buffer,s),n=t._length,r=t._length=n+Z.bitLength(s);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const i=new Uint32Array(e);let a=0;for(let o=t.blockSize+n-(t.blockSize+n&t.blockSize-1);o<=r;o+=t.blockSize)t._block(i.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const s=this;let t=s._buffer;const e=s._h;t=Z.concat(t,[Z.partial(1,1)]);for(let n=t.length+2;n&15;n++)t.push(0);for(t.push(Math.floor(s._length/4294967296)),t.push(s._length|0);t.length;)s._block(t.splice(0,16));return s.reset(),e}_f(s,t,e,n){if(s<=19)return t&e|~t&n;if(s<=39)return t^e^n;if(s<=59)return t&e|t&n|e&n;if(s<=79)return t^e^n}_S(s,t){return t<<s|t>>>32-s}_block(s){const t=this,e=t._h,n=Array(80);for(let _=0;_<16;_++)n[_]=s[_];let r=e[0],i=e[1],a=e[2],o=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(n[_]=t._S(1,n[_-3]^n[_-8]^n[_-14]^n[_-16]));const d=t._S(5,r)+t._f(_,i,a,o)+l+n[_]+t._key[Math.floor(_/20)]|0;l=o,o=a,a=t._S(30,i),i=r,r=d}e[0]=e[0]+r|0,e[1]=e[1]+i|0,e[2]=e[2]+a|0,e[3]=e[3]+o|0,e[4]=e[4]+l|0}};const Jn={};Jn.aes=class{constructor(s){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],n=t._tables[1],r=s.length;let i,a,o,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[a=s.slice(0),o=[]],i=r;i<4*r+28;i++){let _=a[i-1];(i%r===0||r===8&&i%r===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],i%r===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[i]=a[i-r]^_}for(let _=0;i;_++,i--){const d=a[_&3?i:i-4];i<=4||_<4?o[_]=d:o[_]=n[0][e[d>>>24]]^n[1][e[d>>16&255]]^n[2][e[d>>8&255]]^n[3][e[d&255]]}}encrypt(s){return this._crypt(s,0)}decrypt(s){return this._crypt(s,1)}_precompute(){const s=this._tables[0],t=this._tables[1],e=s[4],n=t[4],r=[],i=[];let a,o,l,_;for(let d=0;d<256;d++)i[(r[d]=d<<1^(d>>7)*283)^d]=d;for(let d=a=0;!e[d];d^=o||1,a=i[a]||1){let w=a^a<<1^a<<2^a<<3^a<<4;w=w>>8^w&255^99,e[d]=w,n[w]=d,_=r[l=r[o=r[d]]];let m=_*16843009^l*65537^o*257^d*16843008,S=r[w]*257^w*16843008;for(let O=0;O<4;O++)s[O][d]=S=S<<24^S>>>8,t[O][w]=m=m<<24^m>>>8}for(let d=0;d<5;d++)s[d]=s[d].slice(0),t[d]=t[d].slice(0)}_crypt(s,t){if(s.length!==4)throw new Error("invalid aes block size");const e=this._key[t],n=e.length/4-2,r=[0,0,0,0],i=this._tables[t],a=i[0],o=i[1],l=i[2],_=i[3],d=i[4];let w=s[0]^e[0],m=s[t?3:1]^e[1],S=s[2]^e[2],O=s[t?1:3]^e[3],u=4,c,f,p;for(let g=0;g<n;g++)c=a[w>>>24]^o[m>>16&255]^l[S>>8&255]^_[O&255]^e[u],f=a[m>>>24]^o[S>>16&255]^l[O>>8&255]^_[w&255]^e[u+1],p=a[S>>>24]^o[O>>16&255]^l[w>>8&255]^_[m&255]^e[u+2],O=a[O>>>24]^o[w>>16&255]^l[m>>8&255]^_[S&255]^e[u+3],u+=4,w=c,m=f,S=p;for(let g=0;g<4;g++)r[t?3&-g:g]=d[w>>>24]<<24^d[m>>16&255]<<16^d[S>>8&255]<<8^d[O&255]^e[u++],c=w,w=m,m=S,S=O,O=c;return r}};const di={getRandomValues(s){const t=new Uint32Array(s.buffer),e=n=>{let r=987654321;const i=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&i,n=18e3*(n&65535)+(n>>16)&i,(((r<<16)+n&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let n=0,r;n<s.length;n+=4){const i=e((r||Math.random())*4294967296);r=i()*987654071,t[n/4]=i()*4294967296|0}return s}},Qn={};Qn.ctrGladman=class{constructor(s,t){this._prf=s,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(s){return this.calculate(this._prf,s,this._iv)}incWord(s){if((s>>24&255)===255){let t=s>>16&255,e=s>>8&255,n=s&255;t===255?(t=0,e===255?(e=0,n===255?n=0:++n):++e):++t,s=0,s+=t<<16,s+=e<<8,s+=n}else s+=1<<24;return s}incCounter(s){(s[0]=this.incWord(s[0]))===0&&(s[1]=this.incWord(s[1]))}calculate(s,t,e){let n;if(!(n=t.length))return[];const r=Z.bitLength(t);for(let i=0;i<n;i+=4){this.incCounter(e);const a=s.encrypt(e);t[i]^=a[0],t[i+1]^=a[1],t[i+2]^=a[2],t[i+3]^=a[3]}return Z.clamp(t,r)}};const me={importKey(s){return new me.hmacSha1(Ze.bytes.toBits(s))},pbkdf2(s,t,e,n){if(e=e||1e4,n<0||e<0)throw new Error("invalid params to pbkdf2");const r=(n>>5)+1<<2;let i,a,o,l,_;const d=new ArrayBuffer(r),w=new DataView(d);let m=0;const S=Z;for(t=Ze.bytes.toBits(t),_=1;m<(r||1);_++){for(i=a=s.encrypt(S.concat(t,[_])),o=1;o<e;o++)for(a=s.encrypt(a),l=0;l<a.length;l++)i[l]^=a[l];for(o=0;m<(r||1)&&o<i.length;o++)w.setInt32(m,i[o]),m+=4}return d.slice(0,n/8)}};me.hmacSha1=class{constructor(s){const t=this,e=t._hash=$n.sha1,n=[[],[]];t._baseHash=[new e,new e];const r=t._baseHash[0].blockSize/32;s.length>r&&(s=new e().update(s).finalize());for(let i=0;i<r;i++)n[0][i]=s[i]^909522486,n[1][i]=s[i]^1549556828;t._baseHash[0].update(n[0]),t._baseHash[1].update(n[1]),t._resultHash=new e(t._baseHash[0])}reset(){const s=this;s._resultHash=new s._hash(s._baseHash[0]),s._updated=!1}update(s){const t=this;t._updated=!0,t._resultHash.update(s)}digest(){const s=this,t=s._resultHash.finalize(),e=new s._hash(s._baseHash[1]).update(t).finalize();return s.reset(),e}encrypt(s){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(s),this.digest(s)}};const _i=typeof crypto!=de&&typeof crypto.getRandomValues==Pe,yt="Invalid password",Et="Invalid signature",xt="zipjs-abort-check-password";function zn(s){return _i?crypto.getRandomValues(s):di.getRandomValues(s)}const ge=16,hi="raw",es={name:"PBKDF2"},pi={name:"HMAC"},mi="SHA-1",wi=Object.assign({hash:pi},es),ut=Object.assign({iterations:1e3,hash:{name:mi}},es),gi=["deriveBits"],Ie=[8,12,16],Re=[16,24,32],ce=10,bi=[0,0,0,0],$e=typeof crypto!=de,ke=$e&&crypto.subtle,ts=$e&&typeof ke!=de,z=Ze.bytes,yi=Jn.aes,Ei=Qn.ctrGladman,xi=me.hmacSha1;let wn=$e&&ts&&typeof ke.importKey==Pe,gn=$e&&ts&&typeof ke.deriveBits==Pe;class Ti extends TransformStream{constructor({password:t,rawPassword:e,signed:n,encryptionStrength:r,checkPasswordOnly:i}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:rs(t,e),signed:n,strength:r-1,pending:new Uint8Array})},async transform(a,o){const l=this,{password:_,strength:d,resolveReady:w,ready:m}=l;_?(await Ri(l,d,_,J(a,0,Ie[d]+2)),a=J(a,Ie[d]+2),i?o.error(new Error(xt)):w()):await m;const S=new Uint8Array(a.length-ce-(a.length-ce)%ge);o.enqueue(ns(l,a,S,0,ce,!0))},async flush(a){const{signed:o,ctr:l,hmac:_,pending:d,ready:w}=this;if(_&&l){await w;const m=J(d,0,d.length-ce),S=J(d,d.length-ce);let O=new Uint8Array;if(m.length){const u=Ne(z,m);_.update(u);const c=l.update(u);O=Ce(z,c)}if(o){const u=J(Ce(z,_.digest()),0,ce);for(let c=0;c<ce;c++)if(u[c]!=S[c])throw new Error(Et)}a.enqueue(O)}}})}}class Si extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n}){let r;super({start(){Object.assign(this,{ready:new Promise(i=>this.resolveReady=i),password:rs(t,e),strength:n-1,pending:new Uint8Array})},async transform(i,a){const o=this,{password:l,strength:_,resolveReady:d,ready:w}=o;let m=new Uint8Array;l?(m=await Ai(o,_,l),d()):await w;const S=new Uint8Array(m.length+i.length-i.length%ge);S.set(m,0),a.enqueue(ns(o,i,S,m.length,0))},async flush(i){const{ctr:a,hmac:o,pending:l,ready:_}=this;if(o&&a){await _;let d=new Uint8Array;if(l.length){const w=a.update(Ne(z,l));o.update(w),d=Ce(z,w)}r.signature=Ce(z,o.digest()).slice(0,ce),i.enqueue(Tt(d,r.signature))}}}),r=this}}function ns(s,t,e,n,r,i){const{ctr:a,hmac:o,pending:l}=s,_=t.length-r;l.length&&(t=Tt(l,t),e=Ci(e,_-_%ge));let d;for(d=0;d<=_-ge;d+=ge){const w=Ne(z,J(t,d,d+ge));i&&o.update(w);const m=a.update(w);i||o.update(m),e.set(Ce(z,m),d+n)}return s.pending=J(t,d),e}async function Ri(s,t,e,n){const r=await ss(s,t,e,J(n,0,Ie[t])),i=J(n,Ie[t]);if(r[0]!=i[0]||r[1]!=i[1])throw new Error(yt)}async function Ai(s,t,e){const n=zn(new Uint8Array(Ie[t])),r=await ss(s,t,e,n);return Tt(n,r)}async function ss(s,t,e,n){s.password=null;const r=await Oi(hi,e,wi,!1,gi),i=await Ii(Object.assign({salt:n},ut),r,8*(Re[t]*2+2)),a=new Uint8Array(i),o=Ne(z,J(a,0,Re[t])),l=Ne(z,J(a,Re[t],Re[t]*2)),_=J(a,Re[t]*2);return Object.assign(s,{keys:{key:o,authentication:l,passwordVerification:_},ctr:new Ei(new yi(o),Array.from(bi)),hmac:new xi(l)}),_}async function Oi(s,t,e,n,r){if(wn)try{return await ke.importKey(s,t,e,n,r)}catch{return wn=!1,me.importKey(t)}else return me.importKey(t)}async function Ii(s,t,e){if(gn)try{return await ke.deriveBits(s,t,e)}catch{return gn=!1,me.pbkdf2(t,s.salt,ut.iterations,e)}else return me.pbkdf2(t,s.salt,ut.iterations,e)}function rs(s,t){return t===G?ui(s):t}function Tt(s,t){let e=s;return s.length+t.length&&(e=new Uint8Array(s.length+t.length),e.set(s,0),e.set(t,s.length)),e}function Ci(s,t){if(t&&t>s.length){const e=s;s=new Uint8Array(t),s.set(e,0)}return s}function J(s,t,e){return s.subarray(t,e)}function Ce(s,t){return s.fromBits(t)}function Ne(s,t){return s.toBits(t)}const Oe=12;class Ni extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:n}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),is(this,t)},transform(r,i){const a=this;if(a.password){const o=bn(a,r.subarray(0,Oe));if(a.password=null,o.at(-1)!=a.passwordVerification)throw new Error(yt);r=r.subarray(Oe)}n?i.error(new Error(xt)):i.enqueue(bn(a,r))}})}}class Di extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),is(this,t)},transform(n,r){const i=this;let a,o;if(i.password){i.password=null;const l=zn(new Uint8Array(Oe));l[Oe-1]=i.passwordVerification,a=new Uint8Array(n.length+l.length),a.set(yn(i,l),0),o=Oe}else a=new Uint8Array(n.length),o=0;a.set(yn(i,n),o),r.enqueue(a)}})}}function bn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=as(s)^t[n],St(s,e[n]);return e}function yn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=as(s)^t[n],St(s,t[n]);return e}function is(s,t){const e=[305419896,591751049,878082192];Object.assign(s,{keys:e,crcKey0:new Ve(e[0]),crcKey2:new Ve(e[2])});for(let n=0;n<t.length;n++)St(s,t.charCodeAt(n))}function St(s,t){let[e,n,r]=s.keys;s.crcKey0.append([t]),e=~s.crcKey0.get(),n=En(Math.imul(En(n+os(e)),134775813)+1),s.crcKey2.append([n>>>24]),r=~s.crcKey2.get(),s.keys=[e,n,r]}function as(s){const t=s.keys[2]|2;return os(Math.imul(t,t^1)>>>8)}function os(s){return s&255}function En(s){return s&4294967295}const Rt="Invalid uncompressed size",xn="deflate-raw";class Pi extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:l,signed:_,level:d}=t,w=this;let m,S,O=super.readable;(!a||l)&&_&&(m=new Xn,O=re(O,m)),i&&(O=ls(O,o,{level:d,chunkSize:e},r,n)),a&&(l?O=re(O,new Di(t)):(S=new Si(t),O=re(O,S))),cs(w,O,()=>{let u;a&&!l&&(u=S.signature),(!a||l)&&_&&(u=new DataView(m.value.buffer).getUint32(0)),w.signature=u})}}class ki extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:a,signed:o,signature:l,compressed:_,useCompressionStream:d}=t;let w,m,S=super.readable;a&&(i?S=re(S,new Ni(t)):(m=new Ti(t),S=re(S,m))),_&&(S=ls(S,d,{chunkSize:e},r,n)),(!a||i)&&o&&(w=new Xn,S=re(S,w)),cs(this,S,()=>{if((!a||i)&&o){const O=new DataView(w.value.buffer);if(l!=O.getUint32(0,!1))throw new Error(Et)}})}}function cs(s,t,e){t=re(t,new TransformStream({flush:e})),Object.defineProperty(s,"readable",{get(){return t}})}function ls(s,t,e,n,r){try{const i=t&&n?n:r;s=re(s,new i(xn,e))}catch(i){if(t)s=re(s,new r(xn,e));else throw i}return s}function re(s,t){return s.pipeThrough(t)}const Li="message",vi="start",Fi="pull",Tn="data",Mi="ack",Sn="close",Ui="deflate",fs="inflate";class Wi extends TransformStream{constructor(t,e){super({});const n=this,{codecType:r}=t;let i;r.startsWith(Ui)?i=Pi:r.startsWith(fs)&&(i=ki),n.outputSize=0;let a=0;const o=new i(t,e),l=super.readable,_=new TransformStream({transform(w,m){w&&w.length&&(a+=w.length,m.enqueue(w))},flush(){Object.assign(n,{inputSize:a})}}),d=new TransformStream({transform(w,m){if(w&&w.length&&(m.enqueue(w),n.outputSize+=w.length,t.outputSize&&n.outputSize>t.outputSize))throw new Error(Rt)},flush(){const{signature:w}=o;Object.assign(n,{signature:w,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return l.pipeThrough(_).pipeThrough(o).pipeThrough(d)}})}}class Hi extends TransformStream{constructor(t){let e;super({transform:n,flush(r){e&&e.length&&r.enqueue(e)}});function n(r,i){if(e){const a=new Uint8Array(e.length+r.length);a.set(e),a.set(r,e.length),r=a,e=null}r.length>t?(i.enqueue(r.slice(0,t)),n(r.slice(t),i)):e=r}}}let us=typeof Worker!=de;class it{constructor(t,{readable:e,writable:n},{options:r,config:i,streamOptions:a,useWebWorkers:o,transferStreams:l,scripts:_},d){const{signal:w}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new Hi(i.chunkSize)).pipeThrough(new Bi(a),{signal:w}),writable:n,options:Object.assign({},r),scripts:_,transferStreams:l,terminate(){return new Promise(m=>{const{worker:S,busy:O}=t;S?(O?t.resolveTerminated=m:(S.terminate(),m()),t.interface=null):m()})},onTaskFinished(){const{resolveTerminated:m}=t;m&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),m()),t.busy=!1,d(t)}}),(o&&us?ji:ds)(t,i)}}class Bi extends TransformStream{constructor({onstart:t,onprogress:e,size:n,onend:r}){let i=0;super({async start(){t&&await at(t,n)},async transform(a,o){i+=a.length,e&&await at(e,i,n),o.enqueue(a)},async flush(){r&&await at(r,i)}})}}async function at(s,...t){try{await s(...t)}catch{}}function ds(s,t){return{run:()=>Gi(s,t)}}function ji(s,t){const{baseURL:e,chunkSize:n}=t;if(!s.interface){let r;try{r=Vi(s.scripts[0],e,s)}catch{return us=!1,ds(s,t)}Object.assign(s,{worker:r,interface:{run:()=>Yi(s,{chunkSize:n})}})}return s.interface}async function Gi({options:s,readable:t,writable:e,onTaskFinished:n},r){let i;try{i=new Wi(s,r),await t.pipeThrough(i).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:o,outputSize:l}=i;return{signature:a,inputSize:o,outputSize:l}}catch(a){throw i&&(a.outputSize=i.outputSize),a}finally{n()}}async function Yi(s,t){let e,n;const r=new Promise((m,S)=>{e=m,n=S});Object.assign(s,{reader:null,writer:null,resolveResult:e,rejectResult:n,result:r});const{readable:i,options:a,scripts:o}=s,{writable:l,closed:_}=qi(s.writable),d=Ge({type:vi,scripts:o.slice(1),options:a,config:t,readable:i,writable:l},s);d||Object.assign(s,{reader:i.getReader(),writer:l.getWriter()});const w=await r;return d||await l.getWriter().close(),await _,w}function qi(s){let t;const e=new Promise(r=>t=r);return{writable:new WritableStream({async write(r){const i=s.getWriter();await i.ready,await i.write(r),i.releaseLock()},close(){t()},abort(r){return s.getWriter().abort(r)}}),closed:e}}let Rn=!0,An=!0;function Vi(s,t,e){const n={type:"module"};let r,i;typeof s==Pe&&(s=s());try{r=new URL(s,t)}catch{r=s}if(Rn)try{i=new Worker(r)}catch{Rn=!1,i=new Worker(r,n)}else i=new Worker(r,n);return i.addEventListener(Li,a=>Zi(a,e)),i}function Ge(s,{worker:t,writer:e,onTaskFinished:n,transferStreams:r}){try{const{value:i,readable:a,writable:o}=s,l=[];if(i&&(i.byteLength<i.buffer.byteLength?s.value=i.buffer.slice(0,i.byteLength):s.value=i.buffer,l.push(s.value)),r&&An?(a&&l.push(a),o&&l.push(o)):s.readable=s.writable=null,l.length)try{return t.postMessage(s,l),!0}catch{An=!1,s.readable=s.writable=null,t.postMessage(s)}else t.postMessage(s)}catch(i){throw e&&e.releaseLock(),n(),i}}async function Zi({data:s},t){const{type:e,value:n,messageId:r,result:i,error:a}=s,{reader:o,writer:l,resolveResult:_,rejectResult:d,onTaskFinished:w}=t;try{if(a){const{message:S,stack:O,code:u,name:c,outputSize:f}=a,p=new Error(S);Object.assign(p,{stack:O,code:u,name:c,outputSize:f}),m(p)}else{if(e==Fi){const{value:S,done:O}=await o.read();Ge({type:Tn,value:S,done:O,messageId:r},t)}e==Tn&&(await l.ready,await l.write(new Uint8Array(n)),Ge({type:Mi,messageId:r},t)),e==Sn&&m(null,i)}}catch(S){Ge({type:Sn,messageId:r},t),m(S)}function m(S,O){S?d(S):_(O),l&&l.releaseLock(),w()}}let ue=[];const ot=[];let On=0;async function Ki(s,t){const{options:e,config:n}=t,{transferStreams:r,useWebWorkers:i,useCompressionStream:a,codecType:o,compressed:l,signed:_,encrypted:d}=e,{workerScripts:w,maxWorkers:m}=n;t.transferStreams=r||r===G;const S=!l&&!_&&!d&&!t.transferStreams;return t.useWebWorkers=!S&&(i||i===G&&n.useWebWorkers),t.scripts=t.useWebWorkers&&w?w[o]:[],e.useCompressionStream=a||a===G&&n.useCompressionStream,(await O()).run();async function O(){const c=ue.find(f=>!f.busy);if(c)return dt(c),new it(c,s,t,u);if(ue.length<m){const f={indexWorker:On};return On++,ue.push(f),new it(f,s,t,u)}else return new Promise(f=>ot.push({resolve:f,stream:s,workerOptions:t}))}function u(c){if(ot.length){const[{resolve:f,stream:p,workerOptions:g}]=ot.splice(0,1);f(new it(c,p,g,u))}else c.worker?(dt(c),Xi(c,t)):ue=ue.filter(f=>f!=c)}}function Xi(s,t){const{config:e}=t,{terminateWorkerTimeout:n}=e;Number.isFinite(n)&&n>=0&&(s.terminated?s.terminated=!1:s.terminateTimeout=setTimeout(async()=>{ue=ue.filter(r=>r!=s);try{await s.terminate()}catch{}},n))}function dt(s){const{terminateTimeout:t}=s;t&&(clearTimeout(t),s.terminateTimeout=null)}async function $i(){await Promise.allSettled(ue.map(s=>(dt(s),s.terminate())))}const _s="HTTP error ",Le="HTTP Range not supported",hs="Writer iterator completed too soon",ps="Writer not initialized",Ji="text/plain",Qi="Content-Length",zi="Content-Range",ea="Accept-Ranges",ta="Range",na="Content-Type",sa="HEAD",At="GET",ms="bytes",ra=64*1024,Ot="writable";class Je{constructor(){this.size=0}init(){this.initialized=!0}}class _e extends Je{get readable(){const t=this,{chunkSize:e=ra}=t,n=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:i=0,size:a,diskNumberStart:o}=n,{chunkOffset:l}=this,_=a===G?e:Math.min(e,a-l),d=await Y(t,i+l,_,o);r.enqueue(d),l+e>a||a===G&&!d.length&&_?r.close():this.chunkOffset+=e}});return n}}class It extends Je{constructor(){super();const t=this,e=new WritableStream({write(n){if(!t.initialized)throw new Error(ps);return t.writeUint8Array(n)}});Object.defineProperty(t,Ot,{get(){return e}})}writeUint8Array(){}}class ia extends _e{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const n=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:n,size:Math.floor((e-n)*.75)})}readUint8Array(t,e){const{dataStart:n,dataURI:r}=this,i=new Uint8Array(e),a=Math.floor(t/3)*4,o=atob(r.substring(a+n,Math.ceil((t+e)/3)*4+n)),l=t-Math.floor(a/4)*3;let _=0;for(let d=l;d<l+e&&d<o.length;d++)i[d-l]=o.charCodeAt(d),_++;return _<i.length?i.subarray(0,_):i}}class aa extends It{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let n=0,r=e.pending;const i=e.pending.length;for(e.pending="",n=0;n<Math.floor((i+t.length)/3)*3-i;n++)r+=String.fromCharCode(t[n]);for(;n<t.length;n++)e.pending+=String.fromCharCode(t[n]);r.length&&(r.length>2?e.data+=btoa(r):e.pending+=r)}getData(){return this.data+btoa(this.pending)}}class Ct extends _e{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const n=this,r=t+e;let a=await(t||r<n.size?n.blob.slice(t,r):n.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,r)),new Uint8Array(a)}}class ws extends Je{constructor(t){super();const e=this,n=new TransformStream,r=[];t&&r.push([na,t]),Object.defineProperty(e,Ot,{get(){return n.writable}}),e.blob=new Response(n.readable,{headers:r}).blob()}getData(){return this.blob}}class oa extends Ct{constructor(t){super(new Blob([t],{type:Ji}))}}class ca extends ws{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,n=await super.getData();if(n.text&&e)return n.text();{const r=new FileReader;return new Promise((i,a)=>{Object.assign(r,{onload:({target:o})=>i(o.result),onerror:()=>a(r.error)}),r.readAsText(n,t)})}}}class la extends _e{constructor(t,e){super(),gs(this,t,e)}async init(){await bs(this,_t,In),super.init()}readUint8Array(t,e){return ys(this,t,e,_t,In)}}class fa extends _e{constructor(t,e){super(),gs(this,t,e)}async init(){await bs(this,ht,Cn),super.init()}readUint8Array(t,e){return ys(this,t,e,ht,Cn)}}function gs(s,t,e){const{preventHeadRequest:n,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(s,{url:t,options:e,preventHeadRequest:n,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a})}async function bs(s,t,e){const{url:n,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=s;if(ha(n)&&(i||a)&&(typeof r>"u"||r)){const l=await t(At,s,Es(s,o?-te:void 0));if(!a&&l.headers.get(ea)!=ms)throw new Error(Le);{o&&(s.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const d=l.headers.get(zi);if(d){const w=d.trim().split(/\s*\/\s*/);if(w.length){const m=w[1];m&&m!="*"&&(_=Number(m))}}_===G?await Nn(s,t,e):s.size=_}}else await Nn(s,t,e)}async function ys(s,t,e,n,r){const{useRangeHeader:i,forceRangeRequests:a,eocdCache:o,size:l,options:_}=s;if(i||a){if(o&&t==l-te&&e==te)return o;if(t>=l)return new Uint8Array;{t+e>l&&(e=l-t);const d=await n(At,s,Es(s,t,e));if(d.status!=206)throw new Error(Le);return new Uint8Array(await d.arrayBuffer())}}else{const{data:d}=s;return d||await r(s,_),new Uint8Array(s.data.subarray(t,t+e))}}function Es(s,t=0,e=1){return Object.assign({},Nt(s),{[ta]:ms+"="+(t<0?t:t+"-"+(t+e-1))})}function Nt({options:s}){const{headers:t}=s;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function In(s){await xs(s,_t)}async function Cn(s){await xs(s,ht)}async function xs(s,t){const e=await t(At,s,Nt(s));s.data=new Uint8Array(await e.arrayBuffer()),s.size||(s.size=s.data.length)}async function Nn(s,t,e){if(s.preventHeadRequest)await e(s,s.options);else{const r=(await t(sa,s,Nt(s))).headers.get(Qi);r?s.size=Number(r):await e(s,s.options)}}async function _t(s,{options:t,url:e},n){const r=await fetch(e,Object.assign({},t,{method:s,headers:n}));if(r.status<400)return r;throw r.status==416?new Error(Le):new Error(_s+(r.statusText||r.status))}function ht(s,{url:t},e){return new Promise((n,r)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(i.status<400){const a=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(o=>{const l=o.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new Map(a)})}else r(i.status==416?new Error(Le):new Error(_s+(i.statusText||i.status)))},!1),i.addEventListener("error",a=>r(a.detail?a.detail.error:new Error("Network error")),!1),i.open(s,t),e)for(const a of Object.entries(e))i.setRequestHeader(a[0],a[1]);i.responseType="arraybuffer",i.send()})}class Ts extends _e{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new fa(t,e):new la(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class ua extends Ts{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class da extends _e{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class _a extends It{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const n=e.array;e.array=new Uint8Array(n.length+t.length),e.array.set(n)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class Dt extends _e{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(n,r)=>{await n.init(),r!=e.length-1&&(t.lastDiskOffset+=n.size),t.size+=n.size})),super.init()}async readUint8Array(t,e,n=0){const r=this,{readers:i}=this;let a,o=n;o==-1&&(o=i.length-1);let l=t;for(;i[o]&&l>=i[o].size;)l-=i[o].size,o++;const _=i[o];if(_){const d=_.size;if(l+e<=d)a=await Y(_,l,e);else{const w=d-l;a=new Uint8Array(e);const m=await Y(_,l,w);a.set(m,0);const S=await r.readUint8Array(t+w,e-w,n);a.set(S,w),m.length+S.length<e&&(a=a.subarray(0,m.length+S.length))}}else a=new Uint8Array;return r.lastDiskNumber=Math.max(o,r.lastDiskNumber),a}}class Ke extends Je{constructor(t,e=4294967295){super();const n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let r,i,a;const o=new WritableStream({async write(d){const{availableSize:w}=n;if(a)d.length>=w?(await l(d.subarray(0,w)),await _(),n.diskOffset+=r.size,n.diskNumber++,a=null,await this.write(d.subarray(w))):await l(d);else{const{value:m,done:S}=await t.next();if(S&&!m)throw new Error(hs);r=m,r.size=0,r.maxSize&&(n.maxSize=r.maxSize),n.availableSize=n.maxSize,await De(r),i=m.writable,a=i.getWriter(),await this.write(d)}},async close(){await a.ready,await _()}});Object.defineProperty(n,Ot,{get(){return o}});async function l(d){const w=d.length;w&&(await a.ready,await a.write(d),r.size+=w,n.size+=w,n.availableSize-=w)}async function _(){await a.close()}}}class Ss{constructor(t){return Array.isArray(t)&&(t=new Dt(t)),t instanceof ReadableStream&&(t={readable:t}),t}}class Rs{constructor(t){return t.writable===G&&typeof t.next==Pe&&(t=new Ke(t)),t instanceof WritableStream&&(t={writable:t}),t.size===G&&(t.size=0),t instanceof Ke||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}}function ha(s){const{baseURL:t}=Vn(),{protocol:e}=new URL(s,t);return e=="http:"||e=="https:"}async function De(s,t){if(s.init&&!s.initialized)await s.init(t);else return Promise.resolve()}function Y(s,t,e,n){return s.readUint8Array(t,e,n)}const pa=Dt,ma=Ke,As="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),wa=As.length==256;function ga(s){if(wa){let t="";for(let e=0;e<s.length;e++)t+=As[s[e]];return t}else return new TextDecoder().decode(s)}function Ye(s,t){return t&&t.trim().toLowerCase()=="cp437"?ga(s):new TextDecoder(t).decode(s)}const Os="filename",Is="rawFilename",Cs="comment",Ns="rawComment",Ds="uncompressedSize",Ps="compressedSize",ks="offset",pt="diskNumberStart",mt="lastModDate",wt="rawLastModDate",Ls="lastAccessDate",ba="rawLastAccessDate",vs="creationDate",ya="rawCreationDate",Ea="internalFileAttribute",xa="internalFileAttributes",Ta="externalFileAttribute",Sa="externalFileAttributes",Ra="msDosCompatible",Aa="zip64",Oa="encrypted",Ia="version",Ca="versionMadeBy",Na="zipCrypto",Da="directory",Pa="executable",ka="compressionMethod",La="signature",va="extraField",Fa=[Os,Is,Ps,Ds,mt,wt,Cs,Ns,Ls,vs,ks,pt,pt,Ea,xa,Ta,Sa,Ra,Aa,Oa,Ia,Ca,Na,Da,Pa,ka,La,va,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Dn{constructor(t){Fa.forEach(e=>this[e]=t[e])}}const Ma="filenameEncoding",Ua="commentEncoding",Wa="decodeText",Ha="extractPrependedData",Ba="extractAppendedData",ja="password",Ga="rawPassword",Ya="passThrough",qa="signal",Va="checkPasswordOnly",Za="checkOverlappingEntryOnly",Ka="checkOverlappingEntry",Xa="checkSignature",$a="useWebWorkers",Ja="useCompressionStream",Qa="transferStreams",za="preventClose",qe="File format is not recognized",Fs="End of central directory not found",Ms="End of Zip64 central directory locator not found",Us="Central directory header not found",Ws="Local file header not found",Hs="Zip64 extra field not found",Bs="File contains encrypted entry",js="Encryption method not supported",gt="Compression method not supported",bt="Split zip file",Gs="Overlapping entry found",Pn="utf-8",kn="cp437",eo=[[Ds,pe],[Ps,pe],[ks,pe],[pt,le]],to={[le]:{getValue:U,bytes:4},[pe]:{getValue:ye,bytes:8}};class Ys{constructor(t,e={}){Object.assign(this,{reader:new Ss(t),options:e,config:Vn(),readRanges:[]})}async*getEntriesGenerator(t={}){const e=this;let{reader:n}=e;const{config:r}=e;if(await De(n),(n.size===G||!n.readUint8Array)&&(n=new Ct(await new Response(n.readable).blob()),await De(n)),n.size<te)throw new Error(qe);n.chunkSize=li(r);const i=await lo(n,jr,n.size,te,le*16);if(!i){const A=await Y(n,0,4),y=B(A);throw U(y)==Yn?new Error(bt):new Error(Fs)}const a=B(i);let o=U(a,12),l=U(a,16);const _=i.offset,d=q(a,20),w=_+te+d;let m=q(a,4);const S=n.lastDiskNumber||0;let O=q(a,6),u=q(a,8),c=0,f=0;if(l==pe||o==pe||u==le||O==le){const A=await Y(n,i.offset-nt,nt),y=B(A);if(U(y,0)==Gr){l=ye(y,8);let I=await Y(n,l,st,-1),C=B(I);const k=i.offset-nt-st;if(U(C,0)!=ln&&l!=k){const P=l;l=k,l>P&&(c=l-P),I=await Y(n,l,st,-1),C=B(I)}if(U(C,0)!=ln)throw new Error(Ms);m==le&&(m=U(C,16)),O==le&&(O=U(C,20)),u==le&&(u=ye(C,32)),o==pe&&(o=ye(C,40)),l-=o}}if(l>=n.size&&(c=n.size-l-o-te,l=n.size-o-te),S!=m)throw new Error(bt);if(l<0)throw new Error(qe);let p=0,g=await Y(n,l,o,O),E=B(g);if(o){const A=i.offset-o;if(U(E,p)!=cn&&l!=A){const y=l;l=A,l>y&&(c+=l-y),g=await Y(n,l,o,O),E=B(g)}}const R=i.offset-l-(n.lastDiskOffset||0);if(o!=R&&R>=0&&(o=R,g=await Y(n,l,o,O),E=B(g)),l<0||l>=n.size)throw new Error(qe);const h=V(e,t,Ma),x=V(e,t,Ua);for(let A=0;A<u;A++){const y=new so(n,r,e.options);if(U(E,p)!=cn)throw new Error(Us);qs(y,E,p+6);const I=!!y.bitFlag.languageEncodingFlag,C=p+46,k=C+y.filenameLength,P=k+y.extraFieldLength,N=q(E,p+4),H=N>>8==0,L=N>>8==3,j=g.subarray(C,k),D=q(E,p+32),K=P+D,F=g.subarray(P,K),M=I,ve=I,xe=U(E,p+38),ee=H&&(be(E,p+38)&hn)==hn||L&&(xe>>16&ti)==ni||j.length&&j.at(-1)==pn.charCodeAt(0),Q=L&&(xe>>16&si)!=0,Pt=U(E,p+42)+c;Object.assign(y,{versionMadeBy:N,msDosCompatible:H,compressedSize:0,uncompressedSize:0,commentLength:D,directory:ee,offset:Pt,diskNumberStart:q(E,p+34),internalFileAttributes:q(E,p+36),externalFileAttributes:xe,rawFilename:j,filenameUTF8:M,commentUTF8:ve,rawExtraField:g.subarray(k,P),executable:Q}),y.internalFileAttribute=y.internalFileAttributes,y.externalFileAttribute=y.externalFileAttributes;const kt=V(e,t,Wa)||Ye,Lt=M?Pn:h||kn,vt=ve?Pn:x||kn;let Fe=kt(j,Lt);Fe===G&&(Fe=Ye(j,Lt));let Qe=kt(F,vt);Qe===G&&(Qe=Ye(F,vt)),Object.assign(y,{rawComment:F,filename:Fe,comment:Qe,directory:ee||Fe.endsWith(pn)}),f=Math.max(Pt,f),Vs(y,y,E,p+6),y.zipCrypto=y.encrypted&&!y.extraFieldAES;const Te=new Dn(y);Te.getData=(Me,Ue)=>y.getData(Me,Te,e.readRanges,Ue),Te.arrayBuffer=async Me=>{const Ue=new TransformStream,[Ks]=await Promise.all([new Response(Ue.readable).arrayBuffer(),y.getData(Ue,Te,e.readRanges,Me)]);return Ks},p=K;const{onprogress:Ft}=t;if(Ft)try{await Ft(A+1,u,new Dn(y))}catch{}yield Te}const b=V(e,t,Ha),T=V(e,t,Ba);return b&&(e.prependedData=f>0?await Y(n,0,f):new Uint8Array),e.comment=d?await Y(n,_+te,d):new Uint8Array,T&&(e.appendedData=w<n.size?await Y(n,w,n.size-w):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){}}class no{constructor(t={}){const{readable:e,writable:n}=new TransformStream,r=new Ys(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(i){const{done:a,value:o}=await r.next();if(a)return i.close();const l={...o,readable:(function(){const{readable:_,writable:d}=new TransformStream;if(o.getData)return o.getData(d),_})()};delete l.getData,i.enqueue(l)}}),this.writable=n}}class so{constructor(t,e,n){Object.assign(this,{reader:t,config:e,options:n})}async getData(t,e,n,r={}){const i=this,{reader:a,offset:o,diskNumberStart:l,extraFieldAES:_,extraFieldZip64:d,compressionMethod:w,config:m,bitFlag:S,signature:O,rawLastModDate:u,uncompressedSize:c,compressedSize:f}=i,{dataDescriptor:p}=S,g=e.localDirectory={},E=await Y(a,o,rt,l),R=B(E);let h=V(i,r,ja),x=V(i,r,Ga);const b=V(i,r,Ya);if(h=h&&h.length&&h,x=x&&x.length&&x,_&&_.originalCompressionMethod!=Wr)throw new Error(gt);if(w!=Ur&&w!=Mr&&!b)throw new Error(gt);if(U(R,0)!=Hr)throw new Error(Ws);qs(g,R,4);const{extraFieldLength:T,filenameLength:A,lastAccessDate:y,creationDate:I}=g;g.rawExtraField=T?await Y(a,o+rt+A,T,l):new Uint8Array,Vs(i,g,R,4,!0),Object.assign(e,{lastAccessDate:y,creationDate:I});const C=i.encrypted&&g.encrypted&&!b,k=C&&!_;if(b||(e.zipCrypto=k),C){if(!k&&_.strength===G)throw new Error(js);if(!h&&!x)throw new Error(Bs)}const P=o+rt+A+T,N=f,H=a.readable;Object.assign(H,{diskNumberStart:l,offset:P,size:N});const L=V(i,r,qa),j=V(i,r,Va);let D=V(i,r,Ka);const K=V(i,r,Za);K&&(D=!0);const{onstart:F,onprogress:M,onend:ve}=r,xe={options:{codecType:fs,password:h,rawPassword:x,zipCrypto:k,encryptionStrength:_&&_.strength,signed:V(i,r,Xa)&&!b,passwordVerification:k&&(p?u>>>8&255:O>>>24&255),outputSize:c,signature:O,compressed:w!=0&&!b,encrypted:i.encrypted&&!b,useWebWorkers:V(i,r,$a),useCompressionStream:V(i,r,Ja),transferStreams:V(i,r,Qa),checkPasswordOnly:j},config:m,streamOptions:{signal:L,size:N,onstart:F,onprogress:M,onend:ve}};D&&await co({reader:a,fileEntry:e,offset:o,diskNumberStart:l,signature:O,compressedSize:f,uncompressedSize:c,dataOffset:P,dataDescriptor:p||g.bitFlag.dataDescriptor,extraFieldZip64:d||g.extraFieldZip64,readRanges:n});let ee;try{if(!K){j&&(t=new WritableStream),t=new Rs(t),await De(t,b?f:c),{writable:ee}=t;const{outputSize:Q}=await Ki({readable:H,writable:ee},xe);if(t.size+=Q,Q!=(b?f:c))throw new Error(Rt)}}catch(Q){if(Q.outputSize!==G&&(t.size+=Q.outputSize),!j||Q.message!=xt)throw Q}finally{!V(i,r,za)&&ee&&!ee.locked&&await ee.getWriter().close()}return j||K?G:t.getData?t.getData():ee}}function qs(s,t,e){const n=s.rawBitFlag=q(t,e+2),r=(n&un)==un,i=U(t,e+6);Object.assign(s,{encrypted:r,version:q(t,e),bitFlag:{level:(n&ei)>>1,dataDescriptor:(n&dn)==dn,languageEncodingFlag:(n&_n)==_n},rawLastModDate:i,lastModDate:fo(i),filenameLength:q(t,e+22),extraFieldLength:q(t,e+24)})}function Vs(s,t,e,n,r){const{rawExtraField:i}=t,a=t.extraField=new Map,o=B(new Uint8Array(i));let l=0;try{for(;l<i.length;){const f=q(o,l),p=q(o,l+2);a.set(f,{type:f,data:i.slice(l+4,l+4+p)}),l+=4+p}}catch{}const _=q(e,n+4);Object.assign(t,{signature:U(e,n+ri),compressedSize:U(e,n+ii),uncompressedSize:U(e,n+ai)});const d=a.get(Vr);d&&(ro(d,t),t.extraFieldZip64=d);const w=a.get(Jr);w&&(Ln(w,Os,Is,t,s),t.extraFieldUnicodePath=w);const m=a.get(Qr);m&&(Ln(m,Cs,Ns,t,s),t.extraFieldUnicodeComment=m);const S=a.get(Zr);S?(io(S,t,_),t.extraFieldAES=S):t.compressionMethod=_;const O=a.get(Kr);O&&(ao(O,t),t.extraFieldNTFS=O);const u=a.get($r);u&&(oo(u,t,r),t.extraFieldExtendedTimestamp=u);const c=a.get(zr);c&&(t.extraFieldUSDZ=c)}function ro(s,t){t.zip64=!0;const e=B(s.data),n=eo.filter(([r,i])=>t[r]==i);for(let r=0,i=0;r<n.length;r++){const[a,o]=n[r];if(t[a]==o){const l=to[o];t[a]=s[a]=l.getValue(e,i),i+=l.bytes}else if(s[a])throw new Error(Hs)}}function Ln(s,t,e,n,r){const i=B(s.data),a=new Ve;a.append(r[e]);const o=B(new Uint8Array(4));o.setUint32(0,a.get(),!0);const l=U(i,1);Object.assign(s,{version:be(i,0),[t]:Ye(s.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&l==U(o,0)}),s.valid&&(n[t]=s[t],n[t+"UTF8"]=!0)}function io(s,t,e){const n=B(s.data),r=be(n,4);Object.assign(s,{vendorVersion:be(n,0),vendorId:be(n,2),strength:r,originalCompressionMethod:e,compressionMethod:q(n,5)}),t.compressionMethod=s.compressionMethod}function ao(s,t){const e=B(s.data);let n=4,r;try{for(;n<s.data.length&&!r;){const i=q(e,n),a=q(e,n+2);i==Xr&&(r=s.data.slice(n+4,n+4+a)),n+=4+a}}catch{}try{if(r&&r.length==24){const i=B(r),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),l=i.getBigUint64(16,!0);Object.assign(s,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:l});const _=ct(a),d=ct(o),w=ct(l),m={lastModDate:_,lastAccessDate:d,creationDate:w};Object.assign(s,m),Object.assign(t,m)}}catch{}}function oo(s,t,e){const n=B(s.data),r=be(n,0),i=[],a=[];e?((r&1)==1&&(i.push(mt),a.push(wt)),(r&2)==2&&(i.push(Ls),a.push(ba)),(r&4)==4&&(i.push(vs),a.push(ya))):s.data.length>=5&&(i.push(mt),a.push(wt));let o=1;i.forEach((l,_)=>{if(s.data.length>=o+4){const d=U(n,o);t[l]=s[l]=new Date(d*1e3);const w=a[_];s[w]=d}o+=4})}async function co({reader:s,fileEntry:t,offset:e,diskNumberStart:n,signature:r,compressedSize:i,uncompressedSize:a,dataOffset:o,dataDescriptor:l,extraFieldZip64:_,readRanges:d}){let w=0;if(n)for(let O=0;O<n;O++){const u=s.readers[O];w+=u.size}let m=0;if(l&&(_?m=qr:m=Yr),m){const O=await Y(s,o+i,m+fn,n);if(U(B(O),0)==Br){const c=U(B(O),4);let f,p;_?(f=ye(B(O),8),p=ye(B(O),16)):(f=U(B(O),8),p=U(B(O),12)),(t.encrypted&&!t.zipCrypto||c==r)&&f==i&&p==a&&(m+=fn)}}const S={start:w+e,end:w+o+i+m,fileEntry:t};for(const O of d)if(O.fileEntry!=t&&S.start>=O.start&&S.start<O.end){const u=new Error(Gs);throw u.overlappingEntry=O.fileEntry,u}d.push(S)}async function lo(s,t,e,n,r){const i=new Uint8Array(4),a=B(i);uo(a,0,t);const o=n+r;return await l(n)||await l(Math.min(o,e));async function l(_){const d=e-_,w=await Y(s,d,_);for(let m=w.length-n;m>=0;m--)if(w[m]==i[0]&&w[m+1]==i[1]&&w[m+2]==i[2]&&w[m+3]==i[3])return{offset:d+m,buffer:w.slice(m,m+n).buffer}}}function V(s,t,e){return t[e]===G?s.options[e]:t[e]}function fo(s){const t=(s&4294901760)>>16,e=s&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function ct(s){return new Date(Number(s/BigInt(1e4)-BigInt(116444736e5)))}function be(s,t){return s.getUint8(t)}function q(s,t){return s.getUint16(t,!0)}function U(s,t){return s.getUint32(t,!0)}function ye(s,t){return Number(s.getBigUint64(t,!0))}function uo(s,t,e){s.setUint32(t,e,!0)}function B(s){return new DataView(s.buffer)}Zn({Inflate:Fr});const _o=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Ct,BlobWriter:ws,Data64URIReader:ia,Data64URIWriter:aa,ERR_BAD_FORMAT:qe,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Us,ERR_ENCRYPTED:Bs,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Ms,ERR_EOCDR_NOT_FOUND:Fs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Hs,ERR_HTTP_RANGE:Le,ERR_INVALID_PASSWORD:yt,ERR_INVALID_SIGNATURE:Et,ERR_INVALID_UNCOMPRESSED_SIZE:Rt,ERR_ITERATOR_COMPLETED_TOO_SOON:hs,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Ws,ERR_OVERLAPPING_ENTRY:Gs,ERR_SPLIT_ZIP_FILE:bt,ERR_UNSUPPORTED_COMPRESSION:gt,ERR_UNSUPPORTED_ENCRYPTION:js,ERR_WRITER_NOT_INITIALIZED:ps,GenericReader:Ss,GenericWriter:Rs,HttpRangeReader:ua,HttpReader:Ts,Reader:_e,SplitDataReader:Dt,SplitDataWriter:Ke,SplitZipReader:pa,SplitZipWriter:ma,TextReader:oa,TextWriter:ca,Uint8ArrayReader:da,Uint8ArrayWriter:_a,Writer:It,ZipReader:Ys,ZipReaderStream:no,configure:Zn,getMimeType:fi,initStream:De,readUint8Array:Y,terminateWorkers:$i},Symbol.toStringTag,{value:"Module"})),Ae=_o;class ho{constructor(t,e){Ae.configure({baseURL:self.location.href}),this._zipReader=new Ae.ZipReader(new Ae.HttpReader(this._resolveTraceURI(t),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:e}).then(n=>{const r=new Map;for(const i of n)r.set(i.filename,i);return r})}_resolveTraceURI(t){return t.startsWith("https://www.dropbox.com/")?"https://dl.dropboxusercontent.com/"+t.substring(24):t}isLive(){return!1}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var i;const n=(await this._entriesPromise).get(t);if(!n)return;const r=new Ae.TextWriter;return await((i=n.getData)==null?void 0:i.call(n,r)),r.getData()}async readBlob(t){const n=(await this._entriesPromise).get(t);if(!n)return;const r=new Ae.BlobWriter;return await n.getData(r),r.getData()}}class po{constructor(t){this._entriesPromise=this._readFile(t).then(async e=>{if(!e)throw new Error("File not found");const n=await e.json(),r=new Map;for(const i of n.entries)r.set(i.name,i.path);return r})}isLive(){return!0}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const n=(await this._entriesPromise).get(t);if(n)return this._readFile(n)}async _readFile(t){const e=await fetch(t);if(e.status!==404)return e}}self.addEventListener("install",function(s){self.skipWaiting()});self.addEventListener("activate",function(s){s.waitUntil(self.clients.claim())});const mo=new URL(self.registration.scope).pathname,Ee=new Map,Xe=new Map,vn=self.registration.scope.startsWith("https://");function wo(){Ee.clear(),Xe.clear()}async function Fn(s,t,e){try{return{loadedTrace:await Zs(s,t,e)}}catch(n){return{errorResponse:new Response(JSON.stringify({error:n==null?void 0:n.message}),{status:500,headers:{"Content-Type":"application/json"}})}}}function Zs(s,t,e){const n=t.searchParams.get("trace");if(!n)throw new Error("trace parameter is missing");Xe.set(s,n);const r=Ee.get(n);if(r)return r;const i=go(n,e);return Ee.set(n,i),i.catch(()=>Ee.delete(n)),i}async function go(s,t){var r;await Eo();const e=new hr;try{const[i,a]=mr(t,[.5,.4,.1]),o=To(s)||s.endsWith("traces.dir")?new po(s):new ho(s,i);await e.load(o,void 0,a)}catch(i){if(console.error(i),(r=i==null?void 0:i.message)!=null&&r.includes("Cannot find .trace file")&&await e.hasEntry("index.html"))throw new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server.");if(i instanceof Bn)throw new Error(`Could not load trace from ${s}. ${i.message}`);let a=`Could not load trace from ${s}. Make sure a valid Playwright Trace is accessible over this url.`;const o=await navigator.permissions.query({name:"local-network-access"}).catch(()=>{});throw o&&o.state!=="granted"&&(a+=`
|
|
4
4
|
|
|
5
|
-
If your trace is in a local or private network, please grant permission for Local Network Access.`),new Error(a)}const n=new
|
|
5
|
+
If your trace is in a local or private network, please grant permission for Local Network Access.`),new Error(a)}const n=new Xs(e.storage(),i=>e.resourceForSha1(i));return{traceLoader:e,snapshotServer:n}}async function bo(s){const t=s.request;if(t.url.startsWith("chrome-extension://"))return fetch(t);const e=new URL(t.url);let n;if(t.url.startsWith(self.registration.scope)&&(n=e.pathname.substring(mo.length-1)),n==="/restartServiceWorker")return wo(),new Response(null,{status:200});if(n==="/ping")return new Response(null,{status:200});const r=!!s.resultingClientId,i=s.clientId?await self.clients.get(s.clientId):void 0;if(r&&!(n!=null&&n.startsWith("/sha1/"))){if(n!=null&&n.startsWith("/snapshot/")){const{errorResponse:a,loadedTrace:o}=await Fn(s.resultingClientId,e,xo);if(a)return a;const l=n.substring(10),_=o.snapshotServer.serveSnapshot(l,e.searchParams,e.href);return vn&&_.headers.set("Content-Security-Policy","upgrade-insecure-requests"),_}return fetch(s.request)}if(!n){if(!i)return new Response("Sub-resource without a client",{status:500});const{snapshotServer:a}=await Zs(i.id,new URL(i.url),Mn(i));if(!a)return new Response(null,{status:404});const o=[t.url];return vn&&t.url.startsWith("https://")&&o.push(t.url.replace(/^https/,"http")),a.serveResource(o,t.method,i.url)}if(n==="/contexts"||n.startsWith("/snapshotInfo/")||n.startsWith("/closest-screenshot/")||n.startsWith("/sha1/")){if(!i)return new Response("Sub-resource without a client",{status:500});const{errorResponse:a,loadedTrace:o}=await Fn(i.id,e,Mn(i));if(a)return a;if(n==="/contexts")return new Response(JSON.stringify(o.traceLoader.contextEntries),{status:200,headers:{"Content-Type":"application/json"}});if(n.startsWith("/snapshotInfo/")){const l=n.substring(14);return o.snapshotServer.serveSnapshotInfo(l,e.searchParams)}if(n.startsWith("/closest-screenshot/")){const l=n.substring(20);return o.snapshotServer.serveClosestScreenshot(l,e.searchParams)}if(n.startsWith("/sha1/")){const l=await o.traceLoader.resourceForSha1(n.slice(6));return l?new Response(l,{status:200,headers:yo(e.searchParams)}):new Response(null,{status:404})}}return fetch(s.request)}function yo(s){const t=s.get("dn"),e=s.get("dct");if(!t)return;const n=new Headers;return n.set("Content-Disposition",`attachment; filename="attachment"; filename*=UTF-8''${encodeURIComponent(t)}`),e&&n.set("Content-Type",e),n}async function Eo(){const s=await self.clients.matchAll(),t=new Set;for(const[e,n]of Xe){if(!s.find(r=>r.id===e)){Xe.delete(e);continue}t.add(n)}for(const e of Ee.keys())t.has(e)||Ee.delete(e)}function Mn(s){return(t,e)=>{s.postMessage({method:"progress",params:{done:t,total:e}})}}function xo(s,t){}function To(s){const e=new URL(s,"http://localhost").searchParams.get("path");return!!(e!=null&&e.endsWith(".json"))}self.addEventListener("fetch",function(s){if(s.request.headers.get("x-pw-serviceworker")==="skip")return!1;s.respondWith(bo(s))});
|